From 6f01a8756fe38c0d6565c369005142adda4b9b57 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E2=80=9Cshentao=E2=80=9D?= Date: Thu, 26 Jan 2017 16:19:00 +0800 Subject: [PATCH] rebuild GUI structure(only changed modules' name) MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Issue-id : CLIENT-14 Change-Id: Ie4fa30f1a51393576fbdc68e12d810565cbf06eb Signed-off-by: “shentao” --- auth/pom.xml | 41 + auth/src/main/webapp/user/changePassword.html | 125 + auth/src/main/webapp/user/createUser.html | 141 + auth/src/main/webapp/user/css/component.css | 247 + auth/src/main/webapp/user/css/user.css | 95 + auth/src/main/webapp/user/images/License.txt | 362 + .../src/main/webapp/user/images/add.png | Bin .../src/main/webapp/user/images/delete.png | Bin .../src/main/webapp/user/images/edit.bak.png | Bin .../src/main/webapp/user/images/edit.png | Bin .../src/main/webapp/user/images/reset.bak.png | Bin .../src/main/webapp/user/images/reset.png | Bin auth/src/main/webapp/user/js/changePassword.js | 193 + auth/src/main/webapp/user/js/createUser.js | 189 + auth/src/main/webapp/user/js/modifyUser.js | 78 + auth/src/main/webapp/user/js/user.js | 109 + auth/src/main/webapp/user/js/userTools.js | 88 + auth/src/main/webapp/user/modifyUser.html | 77 + auth/src/main/webapp/user/user.html | 41 + catalog/pom.xml | 42 + catalog/src/main/webapp/catalog/csarPackage.html | 247 + .../src/main/webapp/catalog/css/datatable-sort.css | 30 + catalog/src/main/webapp/catalog/css/fileupload.css | 81 + catalog/src/main/webapp/catalog/css/hostMirror.css | 447 + catalog/src/main/webapp/catalog/css/package.css | 470 + .../webapp/catalog/css/platform/animate.min.css | 21 + .../src/main/webapp/catalog/css/platform/skill.css | 89 + catalog/src/main/webapp/catalog/css/software.css | 423 + catalog/src/main/webapp/catalog/css/template.css | 405 + .../src/main/webapp/catalog/css/templateDetail.css | 480 + catalog/src/main/webapp/catalog/css/topology.css | 393 + .../main/webapp/catalog/css/virtualApplication.css | 501 + catalog/src/main/webapp/catalog/css/vnfm.css | 491 + .../catalog/i18n/nfv-nso-iui-i18n-en-US.properties | 156 + .../catalog/i18n/nfv-nso-iui-i18n-zh-CN.properties | 155 + catalog/src/main/webapp/catalog/image/License.txt | 362 + .../main/webapp/catalog/image/details_close.png | Bin .../src/main/webapp/catalog/image/details_open.png | Bin .../src/main/webapp/catalog/image/down.png | Bin .../src/main/webapp/catalog/image/pointes_blue.png | Bin .../main/webapp/catalog/image/pointes_green.png | Bin .../src/main/webapp/catalog/image/sort_asc.png | Bin .../webapp/catalog/image/sort_asc_disabled.png | Bin .../src/main/webapp/catalog/image/sort_both.png | Bin .../src/main/webapp/catalog/image/sort_desc.png | Bin .../webapp/catalog/image/sort_desc_disabled.png | Bin .../src/main/webapp/catalog/image/up.png | Bin .../main/webapp/catalog/js/component/commonUtil.js | 128 + .../webapp/catalog/js/component/loadi18n_nsoc.js | 38 + .../webapp/catalog/js/component/serverPageTable.js | 490 + .../main/webapp/catalog/js/package/pmController.js | 346 + .../src/main/webapp/catalog/js/package/pmUtil.js | 221 + .../webapp/catalog/js/template/tmController.js | 100 + .../catalog/js/template/tmDetailController.js | 430 + .../webapp/catalog/js/template/tmDetailUtil.js | 72 + .../catalog/js/template/tmNodesController.js | 289 + .../catalog/js/template/tmNodesDetailUtil.js | 23 + .../webapp/catalog/js/template/tmTopoController.js | 199 + .../src/main/webapp/catalog/js/template/tmUtil.js | 42 + .../main/webapp/catalog/js/template/topoUtil.js | 618 + catalog/src/main/webapp/catalog/nodesDetail.html | 108 + catalog/src/main/webapp/catalog/template.html | 70 + .../src/main/webapp/catalog/templateDetail.html | 128 + catalog/src/main/webapp/catalog/topology.html | 122 + .../src/main/webapp/catalog/topologyDetail.html | 210 + common/pom.xml | 41 + common/src/main/webapp/framework/appserver/api.js | 287 + .../src/main/webapp/framework/appserver/server.js | 48 + .../main/webapp/framework/appserver/start_node.sh | 0 .../webapp/framework/browser/css/open-ostyle.css | 937 + .../src/main/webapp/framework/browser/index.html | 0 .../webapp/framework/browser/js/DataService.js | 0 common/src/main/webapp/framework/browser/js/app.js | 1361 + .../main/webapp/framework/browser/template.html | 376 + .../framework/browser/templates/accordion.html | 26 + .../framework/browser/templates/buttons.html | 38 + .../framework/browser/templates/checkBoxes.html | 25 + .../framework/browser/templates/courses.html | 0 .../framework/browser/templates/dropdown.html | 42 + .../framework/browser/templates/functional.html | 0 .../webapp/framework/browser/templates/home.html | 0 .../webapp/framework/browser/templates/list.html | 47 + .../webapp/framework/browser/templates/login.html | 40 + .../framework/browser/templates/management.html | 130 + .../framework/browser/templates/notification.html | 0 .../framework/browser/templates/radioButtons.html | 28 + .../framework/browser/templates/register.html | 47 + .../webapp/framework/browser/templates/table.html | 39 + .../webapp/framework/browser/templates/tabs.html | 27 + .../framework/browser/templates/textarea.html | 121 + .../webapp/framework/browser/templates/tree.html | 25 + .../framework/browser/templates/verticalTab.html | 28 + .../browser/thirdparty/css/bootstrap.min.css | 0 .../framework/browser/thirdparty/css/img/Thumbs.db | Bin .../browser/thirdparty/css}/img/diy/1_close.png | Bin .../browser/thirdparty/css}/img/diy/1_open.png | Bin .../browser/thirdparty/css}/img/diy/2.png | Bin .../browser/thirdparty/css}/img/diy/3.png | Bin .../browser/thirdparty/css}/img/diy/4.png | Bin .../browser/thirdparty/css}/img/diy/5.png | Bin .../browser/thirdparty/css}/img/diy/6.png | Bin .../browser/thirdparty/css}/img/diy/7.png | Bin .../browser/thirdparty/css}/img/diy/8.png | Bin .../browser/thirdparty/css}/img/diy/9.png | Bin .../browser/thirdparty/css}/img/line_conn.gif | Bin .../browser/thirdparty/css}/img/loading.gif | Bin .../browser/thirdparty/css}/img/zTreeStandard.gif | Bin .../browser/thirdparty/css/img/zTreeStandard.png | Bin .../browser/thirdparty/css/magic-check.css | 123 + .../browser/thirdparty/css/zTreeStyle.css | 0 .../fonts/glyphicons-halflings-regular.eot | Bin .../fonts/glyphicons-halflings-regular.svg | 0 .../fonts/glyphicons-halflings-regular.ttf | Bin .../fonts/glyphicons-halflings-regular.woff | Bin .../fonts/glyphicons-halflings-regular.woff2 | Bin .../browser/thirdparty/images}/collapse_arrow.png | Bin .../browser/thirdparty/images}/expand_arrow.png | Bin .../framework/browser/thirdparty/images}/openo.png | Bin .../browser/thirdparty/images/searchicon.png | Bin .../browser/thirdparty/js/angular-ui-router.min.js | 8 + .../framework/browser/thirdparty/js/angular.min.js | 0 .../js/bootstrap-table-filter-control.min.js | 7 + .../browser/thirdparty/js/bootstrap-table.min.js | 0 .../browser/thirdparty/js/bootstrap.min.js | 0 .../browser/thirdparty/js/jquery.ztree.core-3.5.js | 70 + .../browser/thirdparty/js/jquery_1.12.4.min.js | 5 + .../framework/browser/thirdparty/js/mustache.js | 630 + .../framework/browser/thirdparty/js/tree.jquery.js | 3616 ++ extsys/pom.xml | 40 + .../webapp/extsys/sdncontroller/conf/License.txt | 362 + .../extsys/sdncontroller/conf/dataconfig.json | 4 + .../webapp/extsys/sdncontroller/controller.html | 339 + .../main/webapp/extsys/sdncontroller/css/RMain.css | 239 + .../webapp/extsys/sdncontroller/css/VMMain.css | 758 + .../sdncontroller/css}/bootstrap-table.min.css | 0 .../extsys/sdncontroller/css/bootstrap.min.css | 7 + .../webapp/extsys/sdncontroller/images/License.txt | 362 + .../webapp/extsys/sdncontroller/images}/add.png | Bin .../sdncontroller/images}/arrow-down-enable.png | Bin .../extsys/sdncontroller/images/collapse_arrow.png | Bin .../webapp/extsys/sdncontroller/images}/delete.png | Bin .../webapp/extsys/sdncontroller/images}/edit.png | Bin .../extsys/sdncontroller/images/expand_arrow.png | Bin .../sdncontroller/images}/ideo_default_select.png | Bin .../webapp/extsys/sdncontroller/images}/import.png | Bin .../webapp/extsys/sdncontroller/images}/line.png | Bin .../sdncontroller/images}/loading-spinner-grey.gif | Bin .../webapp/extsys/sdncontroller/images/openo.png | Bin .../webapp/extsys/sdncontroller/images}/page_l.png | Bin .../sdncontroller/images}/page_left_disabled.png | Bin .../webapp/extsys/sdncontroller/images}/page_r.png | Bin .../extsys/sdncontroller/images}/sort_asc.png | Bin .../extsys/sdncontroller/images}/sort_both.png | Bin .../extsys/sdncontroller/images}/sort_desc.png | Bin .../js/bootstrap-table-filter-control.min.js | 7 + .../extsys/sdncontroller/js/bootstrap-table.min.js | 8 + .../extsys/sdncontroller/js/bootstrap.min.js | 6 + .../webapp/extsys/sdncontroller/js/controller.js | 166 + .../extsys/sdncontroller/js/jquery-1.11.2.min.js | 4 + .../src/main/webapp/extsys/vim/css/bootstrap.css | 4966 ++ extsys/src/main/webapp/extsys/vim/css/skill.css | 97 + extsys/src/main/webapp/extsys/vim/css/vim.css | 476 + extsys/src/main/webapp/extsys/vim/css/vimChart.css | 68 + .../src/main/webapp/extsys/vim/i18n/loadi18nApp.js | 42 + .../vim/i18n/roc-vim-iui-i18n-en-US.properties | 92 + .../vim/i18n/roc-vim-iui-i18n-zh-CN.properties | 95 + .../src/main/webapp/extsys/vim/js/client-cometd.js | 63 + .../webapp/extsys/vim/js/jqBootstrapValidation.js | 925 + .../src/main/webapp/extsys/vim/js/vim-validate.js | 116 + extsys/src/main/webapp/extsys/vim/js/vimChart.js | 430 + .../webapp/extsys/vim/js/vimChartController.js | 160 + .../src/main/webapp/extsys/vim/js/vimController.js | 319 + extsys/src/main/webapp/extsys/vim/js/vimUtil.js | 51 + extsys/src/main/webapp/extsys/vim/vimChart.html | 118 + extsys/src/main/webapp/extsys/vim/vimView.html | 266 + .../main/webapp/extsys/vnfm/css/animate.min.css | 21 + extsys/src/main/webapp/extsys/vnfm/css/vnfm.css | 486 + .../vnfm/i18n/nfv-nso-iui-i18n-en-US.properties | 55 + .../vnfm/i18n/nfv-nso-iui-i18n-zh-CN.properties | 55 + .../src/main/webapp/extsys/vnfm/js/commonUtil.js | 128 + .../main/webapp/extsys/vnfm/js/loadi18n_nsoc.js | 38 + .../main/webapp/extsys/vnfm/js/vnfm-validate.js | 89 + .../main/webapp/extsys/vnfm/js/vnfmController.js | 302 + extsys/src/main/webapp/extsys/vnfm/js/vnfmUtil.js | 78 + extsys/src/main/webapp/extsys/vnfm/vnfmView.html | 240 + integration/pom.xml | 230 + .../org/openo/portal/bean/MsbRegisterBean.java | 0 .../org/openo/portal/bean/ServiceNodeBean.java | 0 .../java/org/openo/portal/system/CommonUtil.java | 0 .../java/org/openo/portal/system/Constants.java | 0 .../org/openo/portal/system/RegisterService.java | 0 .../org/openo/portal/system/SystemListener.java | 0 .../src/main/resources/logback.xml | 0 .../main/resources/portalConfig/msb_register.xml | 115 + integration/src/main/webapp/WEB-INF/web.xml | 25 + lifecyclemgr/pom.xml | 43 + .../src/main/webapp/lifecyclemgr/InputData.html | 63 + .../src/main/webapp/lifecyclemgr/TopoAccor.html | 154 + .../src/main/webapp/lifecyclemgr/UnderLay_TP.html | 237 + .../src/main/webapp/lifecyclemgr/accorTables.html | 351 + .../src/main/webapp/lifecyclemgr/chartTopo.html | 268 + .../src/main/webapp/lifecyclemgr/conf/License.txt | 362 + .../main/webapp/lifecyclemgr/conf/dataconfig.json | 4 + .../src/main/webapp/lifecyclemgr/css/RMain.css | 210 + .../src/main/webapp/lifecyclemgr/css/VMMain.css | 664 + .../lifecyclemgr}/css/bootstrap-table.min.css | 0 .../main/webapp/lifecyclemgr/css/bootstrap.min.css | 7 + .../lifecyclemgr/css/jquery-ui-1.12.1.min.css | 7 + .../src/main/webapp/lifecyclemgr/gsolcmmain.html | 640 + .../lcm-template-parameters-i18n-en-US.properties | 95 + .../main/webapp/lifecyclemgr/images/License.txt | 362 + .../src/main/webapp/lifecyclemgr}/images/add.png | Bin .../lifecyclemgr}/images/arrow-down-enable.png | Bin .../webapp/lifecyclemgr/images/collapse_arrow.png | Bin .../main/webapp/lifecyclemgr}/images/delete.png | Bin .../main/webapp/lifecyclemgr/images/edit.bak.png | Bin .../src/main/webapp/lifecyclemgr}/images/edit.png | Bin .../webapp/lifecyclemgr/images/expand_arrow.png | Bin .../lifecyclemgr}/images/ideo_default_select.png | Bin .../main/webapp/lifecyclemgr}/images/import.png | Bin .../src/main/webapp/lifecyclemgr}/images/line.png | Bin .../lifecyclemgr}/images/loading-spinner-grey.gif | Bin .../main/webapp/lifecyclemgr/images/loading.gif | Bin .../src/main/webapp/lifecyclemgr/images/openo.png | Bin .../main/webapp/lifecyclemgr}/images/page_l.png | Bin .../lifecyclemgr}/images/page_left_disabled.png | Bin .../main/webapp/lifecyclemgr}/images/page_r.png | Bin .../src/main/webapp/lifecyclemgr/images/reset.png | Bin .../main/webapp/lifecyclemgr}/images/sort_asc.png | Bin .../main/webapp/lifecyclemgr}/images/sort_both.png | Bin .../main/webapp/lifecyclemgr}/images/sort_desc.png | Bin .../webapp/lifecyclemgr/images/topo/License.txt | 362 + .../webapp/lifecyclemgr/images/topo/NEDOWN.png | Bin .../lifecyclemgr/images/topo/NEDOWN_selected.png | Bin .../webapp/lifecyclemgr/images/topo/NETWORK.png | Bin .../lifecyclemgr/images/topo/NETWORK_EDGE.png | Bin .../lifecyclemgr/images/topo/NETWORK_selected.png | Bin .../main/webapp/lifecyclemgr/images/topo/NEUP.png | Bin .../lifecyclemgr/images/topo/NEUP_selected.png | Bin .../main/webapp/lifecyclemgr/images/topo/OTHER.png | Bin .../webapp/lifecyclemgr/images/topo/OTHER_0.png | Bin .../lifecyclemgr/images/topo/OTHER_0_selected.png | Bin .../webapp/lifecyclemgr/images/topo/OTHER_1.png | Bin .../lifecyclemgr/images/topo/OTHER_1_selected.png | Bin .../webapp/lifecyclemgr/images/topo/OTHER_2.png | Bin .../lifecyclemgr/images/topo/OTHER_2_selected.png | Bin .../webapp/lifecyclemgr/images/topo/OTHER_3.png | Bin .../lifecyclemgr/images/topo/OTHER_3_selected.png | Bin .../lifecyclemgr/images/topo/OTHER_selected.png | Bin .../main/webapp/lifecyclemgr/images/topo/cloud.png | Bin .../webapp/lifecyclemgr/images/topo/cloudroute.png | Bin .../lifecyclemgr/images/topo/crossSubnet.png | Bin .../lifecyclemgr/images/topo/delete_asbr.png | Bin .../webapp/lifecyclemgr/images/topo/mark_sink.png | Bin .../lifecyclemgr/images/topo/mark_source.png | Bin .../lifecyclemgr/images/topo/networkdown.png | Bin .../webapp/lifecyclemgr/images/topo/node_gray.png | Bin .../webapp/lifecyclemgr/images/topo/node_green.png | Bin .../webapp/lifecyclemgr/images/topo/node_red.png | Bin .../webapp/lifecyclemgr/images/topo/router.png | Bin .../lifecyclemgr/images/topo/router_selected.png | Bin .../main/webapp/lifecyclemgr/images/topo/site.png | Bin .../lifecyclemgr/images/topo/siteIcon_feature.png | Bin .../lifecyclemgr/images/topo/site_selected.png | Bin .../webapp/lifecyclemgr/images/topo/sitedown.png | Bin .../lifecyclemgr/images/topo/sitedown_selected.png | Bin .../main/webapp/lifecyclemgr/images/topo/u1963.png | Bin .../js/bootstrap-table-filter-control.min.js | 7 + .../webapp/lifecyclemgr/js/bootstrap-table.min.js | 8 + .../main/webapp/lifecyclemgr/js/bootstrap.min.js | 6 + .../src/main/webapp/lifecyclemgr/js/brs.js | 349 + .../src/main/webapp/lifecyclemgr/js/gsolcm.js | 626 + .../webapp/lifecyclemgr/js/jquery-1.11.2.min.js | 4 + .../webapp/lifecyclemgr/js/jquery-ui-1.12.1.min.js | 13 + .../lifecyclemgr/js/jquery.bootstrap-growl.min.js | 1 + .../webapp/lifecyclemgr/js/jquery.isloading.min.js | 39 + .../src/main/webapp/lifecyclemgr/js/rest.js | 228 + .../webapp/lifecyclemgr/js/tmNodesController.js | 194 + .../webapp/lifecyclemgr/js/tmTopoController.js | 230 + .../src/main/webapp/lifecyclemgr/js/topo/Edge.js | 33 + .../src/main/webapp/lifecyclemgr/js/topo/Node.js | 40 + .../webapp/lifecyclemgr/js/topo/OverlayTopology.js | 191 + .../webapp/lifecyclemgr/js/topo/sigma/sigma.min.js | 5 + .../topo/sigma/sigma.renderers.customShapes.min.js | 2 + .../topo/sigma/sigma.renderers.edgeLabels.min.js | 2 + .../src/main/webapp/lifecyclemgr/js/underlay.js | 126 + .../src/main/webapp/lifecyclemgr/js/vpn.js | 312 + .../lifecyclemgr/lcm_detail_nfvo_nodesinfo.html | 76 + .../lifecyclemgr/lcm_detail_nfvo_topology.html | 228 + .../src/main/webapp/lifecyclemgr/newShow.html | 179 + .../src/main/webapp/lifecyclemgr/overlayvpn.html | 291 + .../main/webapp/lifecyclemgr/overlayvpn_topo.html | 55 + .../src/main/webapp/lifecyclemgr/sdnovpn.html | 126 + .../src/main/webapp/lifecyclemgr/underlayvpn.html | 291 + login/pom.xml | 41 + login/src/main/webapp/login/html/login.html | 31 + monitor/pom.xml | 41 + monitor/src/main/webapp/monitor/css/dac.css | 220 + .../src/main/webapp/monitor/css/monitorSetting.css | 167 + monitor/src/main/webapp/monitor/dacList.html | 250 + .../i18n/umc-monitor-iui-i18n-en-US.properties | 102 + monitor/src/main/webapp/monitor/images/License.txt | 362 + .../src/main/webapp/monitor/images/throbber.gif | Bin .../src/main/webapp/monitor/js/dacController.js | 275 + .../monitor/js/loadi18nApp_ngict-umc-monitor.js | 43 + .../webapp/monitor/js/monitorSettingController.js | 429 + .../main/webapp/monitor/js/monitorSettingUtil.js | 169 + .../src/main/webapp/monitor/monitorSetting.html | 480 + .../main/webapp/monitor/monitorSettingList.html | 103 + openo-portal/pom.xml | 43 - openo-portal/portal-auth/pom.xml | 40 - .../src/main/webapp/user/changePassword.html | 125 - .../src/main/webapp/user/createUser.html | 141 - .../src/main/webapp/user/css/component.css | 247 - .../portal-auth/src/main/webapp/user/css/user.css | 95 - .../src/main/webapp/user/images/License.txt | 362 - .../src/main/webapp/user/js/changePassword.js | 193 - .../src/main/webapp/user/js/createUser.js | 189 - .../src/main/webapp/user/js/modifyUser.js | 78 - .../portal-auth/src/main/webapp/user/js/user.js | 109 - .../src/main/webapp/user/js/userTools.js | 88 - .../src/main/webapp/user/modifyUser.html | 77 - .../portal-auth/src/main/webapp/user/user.html | 41 - openo-portal/portal-catalog/pom.xml | 41 - .../src/main/webapp/catalog/csarPackage.html | 247 - .../src/main/webapp/catalog/css/datatable-sort.css | 30 - .../src/main/webapp/catalog/css/fileupload.css | 81 - .../src/main/webapp/catalog/css/hostMirror.css | 447 - .../src/main/webapp/catalog/css/package.css | 470 - .../webapp/catalog/css/platform/animate.min.css | 21 - .../src/main/webapp/catalog/css/platform/skill.css | 89 - .../src/main/webapp/catalog/css/software.css | 423 - .../src/main/webapp/catalog/css/template.css | 405 - .../src/main/webapp/catalog/css/templateDetail.css | 480 - .../src/main/webapp/catalog/css/topology.css | 393 - .../main/webapp/catalog/css/virtualApplication.css | 501 - .../src/main/webapp/catalog/css/vnfm.css | 491 - .../catalog/i18n/nfv-nso-iui-i18n-en-US.properties | 156 - .../catalog/i18n/nfv-nso-iui-i18n-zh-CN.properties | 155 - .../src/main/webapp/catalog/image/License.txt | 362 - .../main/webapp/catalog/js/component/commonUtil.js | 128 - .../webapp/catalog/js/component/loadi18n_nsoc.js | 38 - .../webapp/catalog/js/component/serverPageTable.js | 490 - .../main/webapp/catalog/js/package/pmController.js | 346 - .../src/main/webapp/catalog/js/package/pmUtil.js | 221 - .../webapp/catalog/js/template/tmController.js | 100 - .../catalog/js/template/tmDetailController.js | 430 - .../webapp/catalog/js/template/tmDetailUtil.js | 72 - .../catalog/js/template/tmNodesController.js | 289 - .../catalog/js/template/tmNodesDetailUtil.js | 23 - .../webapp/catalog/js/template/tmTopoController.js | 199 - .../src/main/webapp/catalog/js/template/tmUtil.js | 42 - .../main/webapp/catalog/js/template/topoUtil.js | 618 - .../src/main/webapp/catalog/nodesDetail.html | 108 - .../src/main/webapp/catalog/template.html | 70 - .../src/main/webapp/catalog/templateDetail.html | 128 - .../src/main/webapp/catalog/topology.html | 122 - .../src/main/webapp/catalog/topologyDetail.html | 210 - openo-portal/portal-common/pom.xml | 40 - .../src/main/webapp/common/css/RMain.css | 239 - .../src/main/webapp/common/css/VMMain.css | 758 - .../main/webapp/common/css/ZteIctIcons/Read Me.txt | 7 - .../common/css/ZteIctIcons/demo-files/demo.css | 151 - .../common/css/ZteIctIcons/demo-files/demo.js | 30 - .../main/webapp/common/css/ZteIctIcons/demo.html | 4807 -- .../common/css/ZteIctIcons/fonts/ZteIctIcons.eot | Bin 92372 -> 0 bytes .../common/css/ZteIctIcons/fonts/ZteIctIcons.svg | 308 - .../common/css/ZteIctIcons/fonts/ZteIctIcons.ttf | Bin 92192 -> 0 bytes .../common/css/ZteIctIcons/fonts/ZteIctIcons.woff | Bin 92268 -> 0 bytes .../webapp/common/css/ZteIctIcons/selection.json | 8408 --- .../main/webapp/common/css/ZteIctIcons/style.css | 921 - .../src/main/webapp/common/css/animate.css | 3278 -- .../src/main/webapp/common/css/frame-style.css | 255 - .../src/main/webapp/common/css/login-apk.css | 183 - .../src/main/webapp/common/css/login.css | 200 - .../src/main/webapp/common/css/main_page.css | 48 - .../src/main/webapp/common/css/more-operation.css | 167 - .../src/main/webapp/common/css/ngict-component.css | 789 - .../src/main/webapp/common/css/plugins.css | 1561 - .../src/main/webapp/common/css/print.css | 53 - .../src/main/webapp/common/css/style-custom.css | 1510 - .../main/webapp/common/css/style-ict-bootstrap.css | 838 - .../src/main/webapp/common/css/style-ict.css | 820 - .../main/webapp/common/css/style-responsive.css | 989 - .../src/main/webapp/common/css/style.css | 4715 -- .../src/main/webapp/common/css/themes/black.css | 388 - .../main/webapp/common/css/themes/black_ifrm.css | 207 - .../src/main/webapp/common/css/themes/blue.css | 374 - .../main/webapp/common/css/themes/blue_ifrm.css | 207 - .../src/main/webapp/common/css/themes/brown.css | 376 - .../main/webapp/common/css/themes/brown_ifrm.css | 207 - .../src/main/webapp/common/css/themes/grey.css | 372 - .../main/webapp/common/css/themes/grey_ifrm.css | 209 - .../src/main/webapp/common/css/themes/light.css | 479 - .../main/webapp/common/css/themes/light_ifrm.css | 207 - .../src/main/webapp/common/css/themes/purple.css | 375 - .../main/webapp/common/css/themes/purple_ifrm.css | 207 - .../src/main/webapp/common/css/themes/zteblue.css | 398 - .../main/webapp/common/css/themes/zteblue_ifrm.css | 206 - .../main/webapp/common/css/themes/ztebluelight.css | 450 - .../webapp/common/css/themes/ztebluelight2.css | 520 - .../common/css/themes/ztebluelight2_ifrm.css | 229 - .../webapp/common/css/themes/ztebluelight3.css | 497 - .../common/css/themes/ztebluelight3_ifrm.css | 220 - .../webapp/common/css/themes/ztebluelight4.css | 620 - .../common/css/themes/ztebluelight4_ifrm.css | 209 - .../webapp/common/css/themes/ztebluelight_ifrm.css | 228 - .../src/main/webapp/common/default.html | 174 - .../i18n/web-framework-i18n-en-US.properties | 222 - .../i18n/web-framework-login-i18n-en-US.properties | 25 - .../web-framework-mainPage-i18n-en-US.properties | 24 - .../i18n/web-framework-menu-i18n-en-US.properties | 41 - .../src/main/webapp/common/image/License.txt | 362 - .../src/main/webapp/common/image/about/License.txt | 362 - .../webapp/common/image/about/about-bg-dark.png | Bin 87487 -> 0 bytes .../webapp/common/image/about/about-bg-light.png | Bin 95527 -> 0 bytes .../webapp/common/image/about/about-netnumen.png | Bin 14772 -> 0 bytes .../webapp/common/image/accordion-plusminus.png | Bin 162 -> 0 bytes .../src/main/webapp/common/image/ajax-loading.gif | Bin 29959 -> 0 bytes .../webapp/common/image/ajax-modal-loading.gif | Bin 27953 -> 0 bytes .../src/main/webapp/common/image/arrow-down.png | Bin 966 -> 0 bytes .../src/main/webapp/common/image/avatar.png | Bin 2016 -> 0 bytes .../src/main/webapp/common/image/bg-opacity.png | Bin 130 -> 0 bytes .../src/main/webapp/common/image/bg-white-lock.png | Bin 2816 -> 0 bytes .../src/main/webapp/common/image/bg-white.png | Bin 2816 -> 0 bytes .../webapp/common/image/checkbox-radio/License.txt | 362 - .../checkbox-radio/checkbox-checked-disabled.png | Bin 3087 -> 0 bytes .../image/checkbox-radio/checkbox-checked.png | Bin 3053 -> 0 bytes .../image/checkbox-radio/checkbox-disabled.png | Bin 2830 -> 0 bytes .../common/image/checkbox-radio/checkbox-hover.png | Bin 2835 -> 0 bytes .../common/image/checkbox-radio/checkbox-init.png | Bin 2833 -> 0 bytes .../checkbox-radio/radio-checked-disabled.png | Bin 2993 -> 0 bytes .../common/image/checkbox-radio/radio-checked.png | Bin 3235 -> 0 bytes .../common/image/checkbox-radio/radio-disabled.png | Bin 3045 -> 0 bytes .../common/image/checkbox-radio/radio-hover.png | Bin 3068 -> 0 bytes .../common/image/checkbox-radio/radio-init.png | Bin 3036 -> 0 bytes .../src/main/webapp/common/image/chrome_icon.png | Bin 3856 -> 0 bytes .../common/image/datatable-row-openclose.png | Bin 299 -> 0 bytes .../src/main/webapp/common/image/empty.png | Bin 2790 -> 0 bytes .../src/main/webapp/common/image/firefox_icon.png | Bin 3759 -> 0 bytes .../common/image/hor-menu-search-close-white.png | Bin 191 -> 0 bytes .../webapp/common/image/hor-menu-search-close.png | Bin 162 -> 0 bytes .../main/webapp/common/image/hor-menu-search.jpg | Bin 306 -> 0 bytes .../main/webapp/common/image/hor-menu-search.png | Bin 299 -> 0 bytes .../main/webapp/common/image/icon-color-close.png | Bin 1031 -> 0 bytes .../src/main/webapp/common/image/icon-color.png | Bin 1240 -> 0 bytes .../src/main/webapp/common/image/icon-img-down.png | Bin 1023 -> 0 bytes .../src/main/webapp/common/image/icon-img-up.png | Bin 999 -> 0 bytes .../src/main/webapp/common/image/input-spinner.gif | Bin 1849 -> 0 bytes .../webapp/common/image/integration/License.txt | 362 - .../webapp/common/image/integration/openo_bg_1.jpg | Bin 152396 -> 0 bytes .../webapp/common/image/integration/openo_bg_2.jpg | Bin 143470 -> 0 bytes .../webapp/common/image/integration/openo_bg_3.jpg | Bin 155899 -> 0 bytes .../common/image/integration/openo_logo_black.png | Bin 27249 -> 0 bytes .../image/integration/openo_logo_pantone.png | Bin 27702 -> 0 bytes .../common/image/integration/openo_logo_white.png | Bin 26677 -> 0 bytes .../src/main/webapp/common/image/loading.gif | Bin 2906 -> 0 bytes .../main/webapp/common/image/mainpage/License.txt | 362 - .../main/webapp/common/image/mainpage/icon/1.png | Bin 4053 -> 0 bytes .../main/webapp/common/image/mainpage/icon/2.png | Bin 3397 -> 0 bytes .../main/webapp/common/image/mainpage/icon/3.png | Bin 3948 -> 0 bytes .../main/webapp/common/image/mainpage/icon/4.png | Bin 3927 -> 0 bytes .../main/webapp/common/image/mainpage/icon/5.png | Bin 3185 -> 0 bytes .../main/webapp/common/image/mainpage/icon/6.png | Bin 3361 -> 0 bytes .../src/main/webapp/common/image/mainpage/logo.png | Bin 16103 -> 0 bytes .../main/webapp/common/image/mainpage/pic/1.png | Bin 179653 -> 0 bytes .../main/webapp/common/image/mainpage/pic/2.png | Bin 64321 -> 0 bytes .../main/webapp/common/image/mainpage/pic/3.png | Bin 65383 -> 0 bytes .../main/webapp/common/image/mainpage/pic/4.png | Bin 105028 -> 0 bytes .../main/webapp/common/image/mainpage/pic/5.png | Bin 143644 -> 0 bytes .../src/main/webapp/common/image/menu-toggler.png | Bin 948 -> 0 bytes .../src/main/webapp/common/image/overlay-icon.png | Bin 514 -> 0 bytes .../common/image/portlet-collapse-icon-white.png | Bin 240 -> 0 bytes .../webapp/common/image/portlet-collapse-icon.png | Bin 269 -> 0 bytes .../common/image/portlet-config-icon-white.png | Bin 320 -> 0 bytes .../webapp/common/image/portlet-config-icon.png | Bin 330 -> 0 bytes .../common/image/portlet-expand-icon-white.png | Bin 239 -> 0 bytes .../webapp/common/image/portlet-expand-icon.png | Bin 256 -> 0 bytes .../common/image/portlet-reload-icon-white.png | Bin 324 -> 0 bytes .../webapp/common/image/portlet-reload-icon.png | Bin 345 -> 0 bytes .../common/image/portlet-remove-icon-white.png | Bin 260 -> 0 bytes .../webapp/common/image/portlet-remove-icon.png | Bin 312 -> 0 bytes .../main/webapp/common/image/remove-icon-small.png | Bin 193 -> 0 bytes .../main/webapp/common/image/reset_password.png | Bin 3516 -> 0 bytes .../main/webapp/common/image/ressvgs/License.txt | 362 - .../src/main/webapp/common/image/ressvgs/NFV.svg | 58 - .../src/main/webapp/common/image/ressvgs/NS.svg | 29 - .../src/main/webapp/common/image/ressvgs/VDU.svg | 26 - .../src/main/webapp/common/image/ressvgs/VIM.svg | 19 - .../src/main/webapp/common/image/ressvgs/VNF.svg | 14 - .../src/main/webapp/common/image/ressvgs/VNFC.svg | 20 - .../src/main/webapp/common/image/ressvgs/VNFM.svg | 17 - .../main/webapp/common/image/ressvgs/breakLink.svg | 9 - .../main/webapp/common/image/ressvgs/common_dc.svg | 72 - .../webapp/common/image/ressvgs/common_ncd.svg | 40 - .../main/webapp/common/image/ressvgs/common_sc.svg | 71 - .../src/main/webapp/common/image/ressvgs/host.svg | 14 - .../common/image/ressvgs/it-Virtual network.svg | 186 - .../webapp/common/image/ressvgs/it-app-bind.svg | 58 - .../webapp/common/image/ressvgs/it-app-dns.svg | 58 - .../webapp/common/image/ressvgs/it-app-ems.svg | 75 - .../common/image/ressvgs/it-app-mediator.svg | 78 - .../common/image/ressvgs/it-app-netnumen.svg | 57 - .../webapp/common/image/ressvgs/it-app-ntp.svg | 61 - .../webapp/common/image/ressvgs/it-app-ota.svg | 58 - .../webapp/common/image/ressvgs/it-app-tomcat.svg | 52 - .../webapp/common/image/ressvgs/it-app-trend.svg | 58 - .../webapp/common/image/ressvgs/it-app-tsm.svg | 62 - .../common/image/ressvgs/it-app-weblogic.svg | 58 - .../main/webapp/common/image/ressvgs/it-app.svg | 62 - .../common/image/ressvgs/it-cluster-hacmp.svg | 54 - .../webapp/common/image/ressvgs/it-cluster-nec.svg | 55 - .../webapp/common/image/ressvgs/it-cluster-ns.svg | 58 - .../webapp/common/image/ressvgs/it-cluster-sg.svg | 65 - .../webapp/common/image/ressvgs/it-cluster-vcs.svg | 78 - .../webapp/common/image/ressvgs/it-cluster.svg | 77 - .../common/image/ressvgs/it-database-mssql.svg | 77 - .../common/image/ressvgs/it-database-oracle.svg | 77 - .../common/image/ressvgs/it-database-sybase.svg | 71 - .../common/image/ressvgs/it-database-sybaseiq.svg | 51 - .../webapp/common/image/ressvgs/it-database.svg | 71 - .../common/image/ressvgs/it-diskraid-dellmd.svg | 199 - .../common/image/ressvgs/it-diskraid-emc.svg | 198 - .../common/image/ressvgs/it-diskraid-eternus.svg | 195 - .../common/image/ressvgs/it-diskraid-fujitsu.svg | 215 - .../common/image/ressvgs/it-diskraid-hds.svg | 103 - .../common/image/ressvgs/it-diskraid-hpaio.svg | 203 - .../common/image/ressvgs/it-diskraid-hpeva.svg | 207 - .../common/image/ressvgs/it-diskraid-hpmsa.svg | 203 - .../common/image/ressvgs/it-diskraid-ibm.svg | 203 - .../common/image/ressvgs/it-diskraid-ibmsm.svg | 95 - .../common/image/ressvgs/it-diskraid-macrosan.svg | 28 - .../common/image/ressvgs/it-diskraid-netapp.svg | 146 - .../common/image/ressvgs/it-diskraid-sun.svg | 146 - .../common/image/ressvgs/it-diskraid-zte.svg | 146 - .../image/ressvgs/it-firewall-checkpoint.svg | 95 - .../common/image/ressvgs/it-firewall-cisco.svg | 95 - .../common/image/ressvgs/it-firewall-cisco2.svg | 95 - .../common/image/ressvgs/it-firewall-h3c.svg | 116 - .../common/image/ressvgs/it-firewall-juniper.svg | 109 - .../common/image/ressvgs/it-firewall-neteye.svg | 120 - .../common/image/ressvgs/it-firewall-zte.svg | 127 - .../common/image/ressvgs/it-firewall-ztemf.svg | 127 - .../common/image/ressvgs/it-firewall-zteutm.svg | 128 - .../webapp/common/image/ressvgs/it-firewall.svg | 102 - .../main/webapp/common/image/ressvgs/it-gather.svg | 295 - .../webapp/common/image/ressvgs/it-group-dev.svg | 121 - .../webapp/common/image/ressvgs/it-ibp-ibp2000.svg | 133 - .../main/webapp/common/image/ressvgs/it-ibp.svg | 128 - .../main/webapp/common/image/ressvgs/it-net.svg | 105 - .../common/image/ressvgs/it-other-alteon.svg | 19 - .../common/image/ressvgs/it-other-appdirector.svg | 25 - .../common/image/ressvgs/it-other-atca-lb10.svg | 121 - .../common/image/ressvgs/it-other-cisco-ucs.svg | 121 - .../webapp/common/image/ressvgs/it-other-dcs.svg | 137 - .../webapp/common/image/ressvgs/it-other-delta.svg | 129 - .../webapp/common/image/ressvgs/it-other-dp.svg | 20 - .../common/image/ressvgs/it-other-f5bigip.svg | 145 - .../common/image/ressvgs/it-other-f5bigip2.svg | 161 - .../webapp/common/image/ressvgs/it-other-gbe2c.svg | 166 - .../webapp/common/image/ressvgs/it-other-hpblc.svg | 174 - .../common/image/ressvgs/it-other-ibm-blade.svg | 156 - .../webapp/common/image/ressvgs/it-other-imm.svg | 160 - .../common/image/ressvgs/it-other-secfox.svg | 20 - .../common/image/ressvgs/it-other-secsis.svg | 30 - .../webapp/common/image/ressvgs/it-other-segw.svg | 153 - .../webapp/common/image/ressvgs/it-other-vc.svg | 173 - .../common/image/ressvgs/it-other-zteatca.svg | 191 - .../common/image/ressvgs/it-other-zteips.svg | 53 - .../common/image/ressvgs/it-other-ztepower.svg | 223 - .../common/image/ressvgs/it-other-ztesgs.svg | 54 - .../common/image/ressvgs/it-other-zxsdr-nt.svg | 186 - .../main/webapp/common/image/ressvgs/it-other.svg | 110 - .../common/image/ressvgs/it-router-cisco.svg | 186 - .../common/image/ressvgs/it-router-juniper.svg | 170 - .../webapp/common/image/ressvgs/it-router-zte.svg | 178 - .../main/webapp/common/image/ressvgs/it-router.svg | 175 - .../common/image/ressvgs/it-sdn-controller.svg | 176 - .../webapp/common/image/ressvgs/it-sdn-host.svg | 167 - .../webapp/common/image/ressvgs/it-sdn-switch.svg | 167 - .../webapp/common/image/ressvgs/it-sdn-vnet.svg | 167 - .../webapp/common/image/ressvgs/it-server-aix.svg | 170 - .../webapp/common/image/ressvgs/it-server-hpux.svg | 181 - .../common/image/ressvgs/it-server-klinux.svg | 191 - .../common/image/ressvgs/it-server-redhat.svg | 171 - .../common/image/ressvgs/it-server-solaris.svg | 173 - .../webapp/common/image/ressvgs/it-server-suse.svg | 185 - .../common/image/ressvgs/it-server-windows.svg | 176 - .../webapp/common/image/ressvgs/it-server-zxve.svg | 179 - .../main/webapp/common/image/ressvgs/it-server.svg | 195 - .../common/image/ressvgs/it-storage-cisco-mds.svg | 177 - .../common/image/ressvgs/it-storage-md3000.svg | 168 - .../common/image/ressvgs/it-storage-netvault.svg | 186 - .../webapp/common/image/ressvgs/it-storage-ops.svg | 186 - .../image/ressvgs/it-storage-sanswitch-brocade.svg | 187 - .../image/ressvgs/it-storage-sanswitch-hp.svg | 187 - .../image/ressvgs/it-storage-sanswitch-zte.svg | 13 - .../webapp/common/image/ressvgs/it-storage.svg | 183 - .../webapp/common/image/ressvgs/it-switch-at.svg | 201 - .../common/image/ressvgs/it-switch-cisco.svg | 176 - .../webapp/common/image/ressvgs/it-switch-h3c.svg | 31 - .../common/image/ressvgs/it-switch-juniper.svg | 176 - .../webapp/common/image/ressvgs/it-switch-zte.svg | 177 - .../main/webapp/common/image/ressvgs/it-switch.svg | 182 - .../common/image/ressvgs/it-tapelib-hpmsl.svg | 176 - .../common/image/ressvgs/it-tapelib-ibmts.svg | 183 - .../common/image/ressvgs/it-tapelib-sunts.svg | 196 - .../src/main/webapp/common/image/ressvgs/it.svg | 111 - .../webapp/common/image/ressvgs/networkTree.svg | 349 - .../src/main/webapp/common/image/ressvgs/new.svg | 7 - .../common/image/ressvgs/popupmenufollower.svg | 15 - .../webapp/common/image/ressvgs/resourceType.svg | 211 - .../src/main/webapp/common/image/ressvgs/stop.svg | 18 - .../main/webapp/common/image/ressvgs/tree-icon.svg | 291 - .../webapp/common/image/ressvgs/uep-moc-root.svg | 355 - .../common/image/ressvgs/uep-moc-uca-public.svg | 329 - .../image/ressvgs/uep-topo-commongroup20x20.svg | 278 - .../common/image/ressvgs/uep-topo-group20x20.svg | 277 - .../webapp/common/image/ressvgs/uep-topo-root.svg | 259 - .../image/ressvgs/uep-topo-undefinedgroup20x20.svg | 342 - .../common/image/ressvgs/uep-topo-virtual20x20.svg | 355 - .../image/ressvgs/uep-topo-wsf-disconnected8x8.svg | 37 - .../common/image/ressvgs/usf-amf-try-activate.svg | 44 - .../image/ressvgs/usf-amf-try-active-wait.svg | 40 - .../main/webapp/common/image/search-icon-blue.png | Bin 318 -> 0 bytes .../main/webapp/common/image/search-icon-brown.png | Bin 357 -> 0 bytes .../webapp/common/image/search-icon-purple.png | Bin 318 -> 0 bytes .../main/webapp/common/image/search-icon-red.png | Bin 318 -> 0 bytes .../main/webapp/common/image/search-icon-white.png | Bin 317 -> 0 bytes .../src/main/webapp/common/image/search-icon.png | Bin 1132 -> 0 bytes .../src/main/webapp/common/image/select-caret.png | Bin 1027 -> 0 bytes .../common/image/sidebar-menu-arrow-right.png | Bin 247 -> 0 bytes .../webapp/common/image/sidebar-menu-arrow-rtl.png | Bin 247 -> 0 bytes .../webapp/common/image/sidebar-menu-arrow.png | Bin 3007 -> 0 bytes .../common/image/sidebar-search-close-blue.png | Bin 163 -> 0 bytes .../common/image/sidebar-search-close-brown.png | Bin 163 -> 0 bytes .../common/image/sidebar-search-close-light.png | Bin 162 -> 0 bytes .../common/image/sidebar-search-close-purple.png | Bin 163 -> 0 bytes .../webapp/common/image/sidebar-search-close.png | Bin 163 -> 0 bytes .../webapp/common/image/sidebar-toggler-grey.jpg | Bin 14801 -> 0 bytes .../webapp/common/image/sidebar-toggler-light.jpg | Bin 538 -> 0 bytes .../webapp/common/image/syncfusion-icons-white.png | Bin 5550 -> 0 bytes .../src/main/webapp/common/image/user.png | Bin 3100 -> 0 bytes .../src/main/webapp/common/js/Main2moreMenu.js | 17 - .../src/main/webapp/common/js/core/const.js | 46 - .../src/main/webapp/common/js/core/hk.min.js | 819 - .../main/webapp/common/js/core/load_menuList.js | 70 - .../main/webapp/common/js/core/openoFrameWork.js | 3701 -- .../src/main/webapp/common/js/core/pym.min.js | 16 - .../src/main/webapp/common/js/fm_light.js | 169 - .../webapp/common/js/international/loadi18n.js | 52 - .../src/main/webapp/common/js/json2.js | 341 - .../src/main/webapp/common/js/login.js | 158 - .../src/main/webapp/common/js/mainpage/about.js | 142 - .../webapp/common/js/mainpage/load_mainPage.js | 95 - .../src/main/webapp/common/js/moreOperation.js | 166 - .../main/webapp/common/js/openotopo/openotopo.js | 314 - .../webapp/common/js/openotopo/openotopo.min.js | 32 - .../src/main/webapp/common/js/security/aes.js | 44 - .../webapp/common/js/security/framework-util.js | 38 - .../src/main/webapp/common/js/security/security.js | 127 - .../src/main/webapp/common/js/tools.js | 1021 - .../src/main/webapp/common/json/License.txt | 362 - .../src/main/webapp/common/json/main_page.json | 96 - .../src/main/webapp/common/json/menu_list.json | 119 - .../src/main/webapp/common/login.html | 111 - .../common/thirdparty/animate/animate.min.css | 6 - .../main/webapp/common/thirdparty/avalon/avalon.js | 5819 -- .../common/thirdparty/avalon/avalon.modern.js | 4935 -- .../backstretch/jquery.backstretch.min.js | 4 - .../webapp/common/thirdparty/bootbox/LICENSE.md | 23 - .../webapp/common/thirdparty/bootbox/README.md | 91 - .../common/thirdparty/bootbox/bootbox.min.js | 6 - .../daterangepicker-bs3.css | 319 - .../bootstrap-daterangepicker/daterangepicker.js | 1257 - .../thirdparty/bootstrap-daterangepicker/moment.js | 2808 - .../bootstrap-daterangepicker/moment.min.js | 6 - .../bootstrap-fileinput/css/fileinput.min.css | 11 - .../bootstrap-fileinput/img/loading-sm.gif | Bin 2670 -> 0 bytes .../thirdparty/bootstrap-fileinput/img/loading.gif | Bin 847 -> 0 bytes .../bootstrap-fileinput/js/fileinput.min.js | 19 - .../js/fileinput_locale_LANG.js | 45 - .../bootstrap-fileinput/js/fileinput_locale_zh.js | 49 - .../bootstrap-growl/bootstrap-growl.min.js | 2 - .../bootstrap-growl/jquery.bootstrap-growl.min.js | 1 - .../thirdparty/bootstrap-hover-dropdown/LICENSE | 24 - .../thirdparty/bootstrap-hover-dropdown/README.md | 122 - .../bootstrap-hover-dropdown.js | 14 - .../bootstrap-hover-dropdown.min.js | 13 - .../css/bootstrap-modal-bs3patch.css | 51 - .../bootstrap-modal/css/bootstrap-modal.css | 214 - .../thirdparty/bootstrap-modal/img/ajax-loader.gif | Bin 1737 -> 0 bytes .../bootstrap-modal/js/bootstrap-modal.js | 378 - .../bootstrap-modal/js/bootstrap-modalmanager.js | 423 - .../bootstrap-select/bootstrap-select.min.css | 7 - .../bootstrap-select/bootstrap-select.min.js | 8 - .../bootstrap-table-filter-control.min.js | 7 - .../thirdparty/bootstrap-table/bootstrap-table.css | 313 - .../thirdparty/bootstrap-table/bootstrap-table.js | 3062 -- .../bootstrap-table/bootstrap-table.min.js | 8 - .../thirdparty/bootstrap-table/bootstrap.min.css | 7 - .../jquery.bootstrap.wizard.min.js | 20 - .../thirdparty/bootstrap/css/bootstrap-dt.css | 5804 -- .../thirdparty/bootstrap/css/bootstrap.min.css | 7 - .../fonts/glyphicons-halflings-regular.svg | 288 - .../common/thirdparty/bootstrap/js/bootstrap.js | 1951 - .../thirdparty/bootstrap/js/bootstrap.min.js | 6 - .../bootstrap/js/bootstrap2-typeahead.min.js | 21 - .../main/webapp/common/thirdparty/cometd/cometd.js | 3045 -- .../thirdparty/cometd/cometd/AckExtension.js | 112 - .../thirdparty/cometd/cometd/ReloadExtension.js | 234 - .../thirdparty/cometd/cometd/TimeStampExtension.js | 42 - .../thirdparty/cometd/cometd/TimeSyncExtension.js | 216 - .../thirdparty/cometd/jquery/jquery.cometd-ack.js | 34 - .../cometd/jquery/jquery.cometd-reload.js | 42 - .../cometd/jquery/jquery.cometd-timestamp.js | 34 - .../cometd/jquery/jquery.cometd-timesync.js | 34 - .../thirdparty/cometd/jquery/jquery.cometd.js | 139 - .../common/thirdparty/data-tables/DT_bootstrap.css | 240 - .../common/thirdparty/data-tables/DT_bootstrap.js | 363 - .../common/thirdparty/data-tables/DataTableICT.js | 1459 - .../thirdparty/data-tables/DataTableSmartClient.js | 1215 - .../data-tables/DataTableSmartClientApp.js | 1312 - .../data-tables/app-test-i18n-datatable-zh-CN.json | 51 - .../app-universal-i18n-datatable-en-US.json | 89 - .../app-universal-i18n-datatable-zh-CN.json | 90 - .../common/thirdparty/data-tables/dataTable.html | 155 - .../data-tables/dataTables.bootstrap.css | 331 - .../data-tables/jquery.dataTables-1.9.4.js | 12101 ---- .../data-tables/jquery.dataTables-1.9.4.min.js | 155 - .../thirdparty/data-tables/jquery.dataTables.js | 15268 ------ .../data-tables/jquery.dataTables.min.css | 1 - .../data-tables/jquery.dataTables.min.js | 166 - .../thirdparty/data-tables/style-datatable.css | 154 - .../common/thirdparty/echarts/echarts-all.js | 50 - .../webapp/common/thirdparty/echarts/echarts.js | 54502 ------------------- .../common/thirdparty/fakeLoader/fakeLoader.css | 382 - .../common/thirdparty/fakeLoader/fakeLoader.min.js | 174 - .../thirdparty/font-awesome/css/font-awesome.css | 1672 - .../font-awesome/css/font-awesome.min.css | 4 - .../thirdparty/font-awesome/fonts/FontAwesome.otf | Bin 85908 -> 0 bytes .../font-awesome/fonts/fontawesome-webfont.eot | Bin 56006 -> 0 bytes .../font-awesome/fonts/fontawesome-webfont.svg | 520 - .../font-awesome/fonts/fontawesome-webfont.ttf | Bin 112160 -> 0 bytes .../font-awesome/fonts/fontawesome-webfont.woff | Bin 65452 -> 0 bytes .../font-awesome/less/bordered-pulled.less | 16 - .../common/thirdparty/font-awesome/less/core.less | 11 - .../thirdparty/font-awesome/less/fixed-width.less | 6 - .../thirdparty/font-awesome/less/font-awesome.less | 17 - .../common/thirdparty/font-awesome/less/icons.less | 552 - .../thirdparty/font-awesome/less/larger.less | 13 - .../common/thirdparty/font-awesome/less/list.less | 19 - .../thirdparty/font-awesome/less/mixins.less | 25 - .../common/thirdparty/font-awesome/less/path.less | 14 - .../font-awesome/less/rotated-flipped.less | 20 - .../thirdparty/font-awesome/less/spinning.less | 29 - .../thirdparty/font-awesome/less/stacked.less | 20 - .../thirdparty/font-awesome/less/variables.less | 561 - .../font-awesome/scss/_bordered-pulled.scss | 16 - .../common/thirdparty/font-awesome/scss/_core.scss | 11 - .../thirdparty/font-awesome/scss/_fixed-width.scss | 6 - .../thirdparty/font-awesome/scss/_icons.scss | 552 - .../thirdparty/font-awesome/scss/_larger.scss | 13 - .../common/thirdparty/font-awesome/scss/_list.scss | 19 - .../thirdparty/font-awesome/scss/_mixins.scss | 25 - .../common/thirdparty/font-awesome/scss/_path.scss | 14 - .../font-awesome/scss/_rotated-flipped.scss | 20 - .../thirdparty/font-awesome/scss/_spinning.scss | 29 - .../thirdparty/font-awesome/scss/_stacked.scss | 20 - .../thirdparty/font-awesome/scss/_variables.scss | 561 - .../thirdparty/font-awesome/scss/font-awesome.scss | 17 - .../webapp/common/thirdparty/freewall/freewall.js | 1306 - .../webapp/common/thirdparty/icheck/bower.json | 42 - .../common/thirdparty/icheck/demo/css/Thumbs.db | Bin 5120 -> 0 bytes .../common/thirdparty/icheck/demo/css/banner.jpg | Bin 32768 -> 0 bytes .../common/thirdparty/icheck/demo/css/custom.css | 261 - .../common/thirdparty/icheck/demo/css/custom.styl | 1191 - .../common/thirdparty/icheck/demo/css/icheck.png | Bin 2382 -> 0 bytes .../thirdparty/icheck/demo/css/ie/arrow-bottom.png | Bin 184 -> 0 bytes .../thirdparty/icheck/demo/css/ie/arrow-top.png | Bin 175 -> 0 bytes .../thirdparty/icheck/demo/css/ie/header-line.png | Bin 611 -> 0 bytes .../thirdparty/icheck/demo/css/ie/icon-fork.png | Bin 213 -> 0 bytes .../thirdparty/icheck/demo/css/ie/icon-github.png | Bin 634 -> 0 bytes .../thirdparty/icheck/demo/css/ie/icon-lab.png | Bin 683 -> 0 bytes .../thirdparty/icheck/demo/css/ie/icon-options.png | Bin 666 -> 0 bytes .../thirdparty/icheck/demo/css/ie/icon-star.png | Bin 348 -> 0 bytes .../thirdparty/icheck/demo/css/montserrat-bold.eot | Bin 13099 -> 0 bytes .../thirdparty/icheck/demo/css/montserrat-bold.svg | 1490 - .../thirdparty/icheck/demo/css/montserrat-bold.ttf | Bin 32768 -> 0 bytes .../icheck/demo/css/montserrat-bold.woff | Bin 15736 -> 0 bytes .../icheck/demo/css/montserrat-regular.eot | Bin 13114 -> 0 bytes .../icheck/demo/css/montserrat-regular.svg | 1365 - .../icheck/demo/css/montserrat-regular.ttf | Bin 32768 -> 0 bytes .../icheck/demo/css/montserrat-regular.woff | Bin 15692 -> 0 bytes .../thirdparty/icheck/demo/css/normalize.css | 527 - .../common/thirdparty/icheck/demo/index.html | 1544 - .../common/thirdparty/icheck/demo/js/custom.js | 109 - .../common/thirdparty/icheck/demo/js/custom.min.js | 5 - .../common/thirdparty/icheck/demo/js/jquery.js | 4 - .../common/thirdparty/icheck/demo/js/zepto.js | 41 - .../common/thirdparty/icheck/icheck.jquery.json | 48 - .../main/webapp/common/thirdparty/icheck/icheck.js | 509 - .../webapp/common/thirdparty/icheck/icheck.min.js | 11 - .../webapp/common/thirdparty/icheck/skins/all.css | 61 - .../common/thirdparty/icheck/skins/flat/_all.css | 530 - .../common/thirdparty/icheck/skins/flat/aero.css | 53 - .../common/thirdparty/icheck/skins/flat/aero.png | Bin 1520 -> 0 bytes .../thirdparty/icheck/skins/flat/aero@2x.png | Bin 3218 -> 0 bytes .../common/thirdparty/icheck/skins/flat/blue.css | 53 - .../common/thirdparty/icheck/skins/flat/blue.png | Bin 1518 -> 0 bytes .../thirdparty/icheck/skins/flat/blue@2x.png | Bin 3217 -> 0 bytes .../common/thirdparty/icheck/skins/flat/flat.css | 53 - .../common/thirdparty/icheck/skins/flat/flat.png | Bin 1515 -> 0 bytes .../thirdparty/icheck/skins/flat/flat@2x.png | Bin 3217 -> 0 bytes .../common/thirdparty/icheck/skins/flat/green.css | 53 - .../common/thirdparty/icheck/skins/flat/green.png | Bin 1444 -> 0 bytes .../thirdparty/icheck/skins/flat/green@2x.png | Bin 3117 -> 0 bytes .../common/thirdparty/icheck/skins/flat/grey.css | 53 - .../common/thirdparty/icheck/skins/flat/grey.png | Bin 1516 -> 0 bytes .../thirdparty/icheck/skins/flat/grey@2x.png | Bin 3217 -> 0 bytes .../common/thirdparty/icheck/skins/flat/orange.css | 53 - .../common/thirdparty/icheck/skins/flat/orange.png | Bin 1518 -> 0 bytes .../thirdparty/icheck/skins/flat/orange@2x.png | Bin 3275 -> 0 bytes .../common/thirdparty/icheck/skins/flat/pink.css | 53 - .../common/thirdparty/icheck/skins/flat/pink.png | Bin 1522 -> 0 bytes .../thirdparty/icheck/skins/flat/pink@2x.png | Bin 3218 -> 0 bytes .../common/thirdparty/icheck/skins/flat/purple.css | 53 - .../common/thirdparty/icheck/skins/flat/purple.png | Bin 1519 -> 0 bytes .../thirdparty/icheck/skins/flat/purple@2x.png | Bin 3218 -> 0 bytes .../common/thirdparty/icheck/skins/flat/red.css | 53 - .../common/thirdparty/icheck/skins/flat/red.png | Bin 1516 -> 0 bytes .../common/thirdparty/icheck/skins/flat/red@2x.png | Bin 3276 -> 0 bytes .../common/thirdparty/icheck/skins/flat/yellow.css | 53 - .../common/thirdparty/icheck/skins/flat/yellow.png | Bin 1516 -> 0 bytes .../thirdparty/icheck/skins/flat/yellow@2x.png | Bin 3216 -> 0 bytes .../thirdparty/icheck/skins/futurico/futurico.css | 53 - .../thirdparty/icheck/skins/futurico/futurico.png | Bin 1734 -> 0 bytes .../icheck/skins/futurico/futurico@2x.png | Bin 3446 -> 0 bytes .../common/thirdparty/icheck/skins/line/Thumbs.db | Bin 4608 -> 0 bytes .../common/thirdparty/icheck/skins/line/_all.css | 710 - .../common/thirdparty/icheck/skins/line/aero.css | 71 - .../common/thirdparty/icheck/skins/line/blue.css | 71 - .../common/thirdparty/icheck/skins/line/green.css | 71 - .../common/thirdparty/icheck/skins/line/grey.css | 71 - .../common/thirdparty/icheck/skins/line/line.css | 71 - .../common/thirdparty/icheck/skins/line/line.png | Bin 588 -> 0 bytes .../thirdparty/icheck/skins/line/line@2x.png | Bin 1073 -> 0 bytes .../common/thirdparty/icheck/skins/line/orange.css | 71 - .../common/thirdparty/icheck/skins/line/pink.css | 71 - .../common/thirdparty/icheck/skins/line/purple.css | 71 - .../common/thirdparty/icheck/skins/line/red.css | 71 - .../common/thirdparty/icheck/skins/line/yellow.css | 71 - .../thirdparty/icheck/skins/minimal/_all.css | 590 - .../thirdparty/icheck/skins/minimal/aero.css | 59 - .../thirdparty/icheck/skins/minimal/aero.png | Bin 1151 -> 0 bytes .../thirdparty/icheck/skins/minimal/aero@2x.png | Bin 1409 -> 0 bytes .../thirdparty/icheck/skins/minimal/blue.css | 59 - .../thirdparty/icheck/skins/minimal/blue.png | Bin 1132 -> 0 bytes .../thirdparty/icheck/skins/minimal/blue@2x.png | Bin 1410 -> 0 bytes .../thirdparty/icheck/skins/minimal/green.css | 59 - .../thirdparty/icheck/skins/minimal/green.png | Bin 1143 -> 0 bytes .../thirdparty/icheck/skins/minimal/green@2x.png | Bin 1408 -> 0 bytes .../thirdparty/icheck/skins/minimal/grey.css | 59 - .../thirdparty/icheck/skins/minimal/grey.png | Bin 1142 -> 0 bytes .../thirdparty/icheck/skins/minimal/grey@2x.png | Bin 1407 -> 0 bytes .../thirdparty/icheck/skins/minimal/minimal.css | 59 - .../thirdparty/icheck/skins/minimal/minimal.png | Bin 1114 -> 0 bytes .../thirdparty/icheck/skins/minimal/minimal@2x.png | Bin 1410 -> 0 bytes .../thirdparty/icheck/skins/minimal/orange.css | 59 - .../thirdparty/icheck/skins/minimal/orange.png | Bin 1139 -> 0 bytes .../thirdparty/icheck/skins/minimal/orange@2x.png | Bin 1407 -> 0 bytes .../thirdparty/icheck/skins/minimal/pink.css | 59 - .../thirdparty/icheck/skins/minimal/pink.png | Bin 1150 -> 0 bytes .../thirdparty/icheck/skins/minimal/pink@2x.png | Bin 1409 -> 0 bytes .../thirdparty/icheck/skins/minimal/purple.css | 59 - .../thirdparty/icheck/skins/minimal/purple.png | Bin 1132 -> 0 bytes .../thirdparty/icheck/skins/minimal/purple@2x.png | Bin 1409 -> 0 bytes .../common/thirdparty/icheck/skins/minimal/red.css | 59 - .../common/thirdparty/icheck/skins/minimal/red.png | Bin 1130 -> 0 bytes .../thirdparty/icheck/skins/minimal/red@2x.png | Bin 1410 -> 0 bytes .../thirdparty/icheck/skins/minimal/yellow.css | 59 - .../thirdparty/icheck/skins/minimal/yellow.png | Bin 1135 -> 0 bytes .../thirdparty/icheck/skins/minimal/yellow@2x.png | Bin 1406 -> 0 bytes .../thirdparty/icheck/skins/polaris/polaris.css | 59 - .../thirdparty/icheck/skins/polaris/polaris.png | Bin 6401 -> 0 bytes .../thirdparty/icheck/skins/polaris/polaris@2x.png | Bin 32768 -> 0 bytes .../thirdparty/icheck/skins/square/Thumbs.db | Bin 32768 -> 0 bytes .../common/thirdparty/icheck/skins/square/_all.css | 590 - .../common/thirdparty/icheck/skins/square/aero.css | 59 - .../common/thirdparty/icheck/skins/square/aero.png | Bin 4436 -> 0 bytes .../thirdparty/icheck/skins/square/aero@2x.png | Bin 4455 -> 0 bytes .../common/thirdparty/icheck/skins/square/blue.css | 59 - .../common/thirdparty/icheck/skins/square/blue.png | Bin 2185 -> 0 bytes .../thirdparty/icheck/skins/square/blue@2x.png | Bin 4485 -> 0 bytes .../thirdparty/icheck/skins/square/green.css | 59 - .../thirdparty/icheck/skins/square/green.png | Bin 2193 -> 0 bytes .../thirdparty/icheck/skins/square/green@2x.png | Bin 4498 -> 0 bytes .../common/thirdparty/icheck/skins/square/grey.css | 59 - .../common/thirdparty/icheck/skins/square/grey.png | Bin 2186 -> 0 bytes .../thirdparty/icheck/skins/square/grey@2x.png | Bin 4483 -> 0 bytes .../thirdparty/icheck/skins/square/orange.css | 59 - .../thirdparty/icheck/skins/square/orange.png | Bin 2181 -> 0 bytes .../thirdparty/icheck/skins/square/orange@2x.png | Bin 4474 -> 0 bytes .../common/thirdparty/icheck/skins/square/pink.css | 59 - .../common/thirdparty/icheck/skins/square/pink.png | Bin 2189 -> 0 bytes .../thirdparty/icheck/skins/square/pink@2x.png | Bin 4479 -> 0 bytes .../thirdparty/icheck/skins/square/purple.css | 59 - .../thirdparty/icheck/skins/square/purple.png | Bin 2188 -> 0 bytes .../thirdparty/icheck/skins/square/purple@2x.png | Bin 4501 -> 0 bytes .../common/thirdparty/icheck/skins/square/red.css | 59 - .../common/thirdparty/icheck/skins/square/red.png | Bin 2190 -> 0 bytes .../thirdparty/icheck/skins/square/red@2x.png | Bin 4490 -> 0 bytes .../thirdparty/icheck/skins/square/square.css | 59 - .../thirdparty/icheck/skins/square/square.png | Bin 2175 -> 0 bytes .../thirdparty/icheck/skins/square/square@2x.png | Bin 4478 -> 0 bytes .../thirdparty/icheck/skins/square/yellow.css | 59 - .../thirdparty/icheck/skins/square/yellow.png | Bin 2131 -> 0 bytes .../thirdparty/icheck/skins/square/yellow@2x.png | Bin 4385 -> 0 bytes .../thirdparty/jQuery UI/jquery-ui-1.12.1.min.css | 7 - .../thirdparty/jQuery UI/jquery-ui-1.12.1.min.js | 13 - .../jQuery-File-Upload/css/jquery.fileupload.css | 37 - .../thirdparty/jQuery-File-Upload/img/loading.gif | Bin 3897 -> 0 bytes .../jQuery-File-Upload/img/progressbar.gif | Bin 3323 -> 0 bytes .../jQuery-File-Upload/js/jquery.fileupload.js | 1477 - .../js/jquery.iframe-transport.js | 217 - .../js/vendor/jquery.ui.widget.js | 572 - .../jquery-blockui/jquery.blockui.min.js | 15 - .../thirdparty/jquery-cokie/jquery.cokie.min.js | 9 - .../common/thirdparty/jquery-validation/README.md | 72 - .../jquery-validation/dist/additional-methods.js | 617 - .../dist/additional-methods.min.js | 11 - .../jquery-validation/dist/jquery.validate.js | 1231 - .../jquery-validation/dist/jquery.validate.min.js | 12 - .../jquery-validation/js/additional-methods.js | 928 - .../jquery-validation/js/additional-methods.min.js | 4 - .../jquery-validation/js/jquery.validate.js | 1357 - .../jquery-validation/js/jquery.validate.min.js | 4 - .../js/localization/messages_ar.js | 33 - .../js/localization/messages_ar.min.js | 4 - .../js/localization/messages_bg.js | 33 - .../js/localization/messages_bg.min.js | 4 - .../js/localization/messages_ca.js | 33 - .../js/localization/messages_ca.min.js | 4 - .../js/localization/messages_cs.js | 33 - .../js/localization/messages_cs.min.js | 4 - .../js/localization/messages_da.js | 30 - .../js/localization/messages_da.min.js | 4 - .../js/localization/messages_de.js | 30 - .../js/localization/messages_de.min.js | 4 - .../js/localization/messages_el.js | 33 - .../js/localization/messages_el.min.js | 4 - .../js/localization/messages_es.js | 36 - .../js/localization/messages_es.min.js | 4 - .../js/localization/messages_es_AR.js | 37 - .../js/localization/messages_es_AR.min.js | 4 - .../js/localization/messages_et.js | 31 - .../js/localization/messages_et.min.js | 4 - .../js/localization/messages_eu.js | 33 - .../js/localization/messages_eu.min.js | 4 - .../js/localization/messages_fa.js | 36 - .../js/localization/messages_fa.min.js | 4 - .../js/localization/messages_fi.js | 31 - .../js/localization/messages_fi.min.js | 4 - .../js/localization/messages_fr.js | 59 - .../js/localization/messages_fr.min.js | 4 - .../js/localization/messages_gl.js | 38 - .../js/localization/messages_gl.min.js | 4 - .../js/localization/messages_he.js | 33 - .../js/localization/messages_he.min.js | 4 - .../js/localization/messages_hr.js | 33 - .../js/localization/messages_hr.min.js | 4 - .../js/localization/messages_hu.js | 32 - .../js/localization/messages_hu.min.js | 4 - .../js/localization/messages_id.js | 32 - .../js/localization/messages_id.min.js | 4 - .../js/localization/messages_is.js | 31 - .../js/localization/messages_is.min.js | 4 - .../js/localization/messages_it.js | 36 - .../js/localization/messages_it.min.js | 4 - .../js/localization/messages_ja.js | 33 - .../js/localization/messages_ja.min.js | 4 - .../js/localization/messages_ka.js | 33 - .../js/localization/messages_ka.min.js | 4 - .../js/localization/messages_kk.js | 33 - .../js/localization/messages_kk.min.js | 4 - .../js/localization/messages_ko.js | 33 - .../js/localization/messages_ko.min.js | 4 - .../js/localization/messages_lt.js | 33 - .../js/localization/messages_lt.min.js | 4 - .../js/localization/messages_lv.js | 33 - .../js/localization/messages_lv.min.js | 4 - .../js/localization/messages_my.js | 33 - .../js/localization/messages_my.min.js | 4 - .../js/localization/messages_nl.js | 43 - .../js/localization/messages_nl.min.js | 4 - .../js/localization/messages_no.js | 33 - .../js/localization/messages_no.min.js | 4 - .../js/localization/messages_pl.js | 33 - .../js/localization/messages_pl.min.js | 4 - .../js/localization/messages_pt_BR.js | 37 - .../js/localization/messages_pt_BR.min.js | 4 - .../js/localization/messages_pt_PT.js | 37 - .../js/localization/messages_pt_PT.min.js | 4 - .../js/localization/messages_ro.js | 33 - .../js/localization/messages_ro.min.js | 4 - .../js/localization/messages_ru.js | 33 - .../js/localization/messages_ru.min.js | 4 - .../js/localization/messages_si.js | 33 - .../js/localization/messages_si.min.js | 4 - .../js/localization/messages_sk.js | 30 - .../js/localization/messages_sk.min.js | 4 - .../js/localization/messages_sl.js | 33 - .../js/localization/messages_sl.min.js | 4 - .../js/localization/messages_sr.js | 33 - .../js/localization/messages_sr.min.js | 4 - .../js/localization/messages_sr_lat.js | 33 - .../js/localization/messages_sr_lat.min.js | 4 - .../js/localization/messages_sv.js | 31 - .../js/localization/messages_sv.min.js | 4 - .../js/localization/messages_th.js | 33 - .../js/localization/messages_th.min.js | 4 - .../js/localization/messages_tj.js | 33 - .../js/localization/messages_tj.min.js | 4 - .../js/localization/messages_tr.js | 33 - .../js/localization/messages_tr.min.js | 4 - .../js/localization/messages_uk.js | 33 - .../js/localization/messages_uk.min.js | 4 - .../js/localization/messages_vi.js | 33 - .../js/localization/messages_vi.min.js | 4 - .../js/localization/messages_zh.js | 33 - .../js/localization/messages_zh.min.js | 4 - .../js/localization/messages_zh_TW.js | 34 - .../js/localization/messages_zh_TW.min.js | 4 - .../js/localization/methods_de.js | 22 - .../js/localization/methods_de.min.js | 4 - .../js/localization/methods_es_CL.js | 22 - .../js/localization/methods_es_CL.min.js | 4 - .../js/localization/methods_fi.js | 22 - .../js/localization/methods_fi.min.js | 4 - .../js/localization/methods_nl.js | 19 - .../js/localization/methods_nl.min.js | 4 - .../js/localization/methods_pt.js | 19 - .../js/localization/methods_pt.min.js | 4 - .../jquery.i18n/jquery.i18n.properties-1.0.9.js | 479 - .../common/thirdparty/jquery/jquery-1.10.2.min.js | 4 - .../common/thirdparty/jquery/jquery-1.11.2.js | 10346 ---- .../common/thirdparty/jquery/jquery-1.11.2.min.js | 4 - .../common/thirdparty/jquery/jquery-1.11.2.min.map | 1 - .../common/thirdparty/jquery/jquery-1.4.4.min.js | 167 - .../common/thirdparty/jquery/jquery-2.1.3.js | 9205 ---- .../common/thirdparty/jquery/jquery-2.1.3.min.js | 4 - .../common/thirdparty/jquery/jquery-2.1.3.min.map | 1 - .../thirdparty/jquery/jquery-migrate-1.2.1.js | 521 - .../thirdparty/jquery/jquery-migrate-1.2.1.min.js | 2 - .../common/thirdparty/jquery/jquery.reveal.js | 152 - .../common/thirdparty/select2/select2-custom.css | 234 - .../webapp/common/thirdparty/select2/select2.css | 607 - .../common/thirdparty/select2/select2.min.js | 22 - .../webapp/common/thirdparty/sigma/sigma.min.js | 5 - .../sigma/sigma.renderers.customShapes.min.js | 2 - .../sigma/sigma.renderers.edgeLabels.min.js | 2 - .../webapp/common/thirdparty/uniform/README.md | 389 - .../thirdparty/uniform/css/uniform.default.css | 366 - .../thirdparty/uniform/css/uniform.default.min.css | 1 - .../thirdparty/uniform/css/uniform.default.scss | 150 - .../thirdparty/uniform/images/bg-input-focus.png | Bin 143 -> 0 bytes .../common/thirdparty/uniform/images/bg-input.png | Bin 143 -> 0 bytes .../common/thirdparty/uniform/images/sprite.png | Bin 31815 -> 0 bytes .../thirdparty/uniform/images/sprite_original.png | Bin 34229 -> 0 bytes .../common/thirdparty/uniform/jquery.uniform.js | 1068 - .../thirdparty/uniform/jquery.uniform.min.js | 1 - .../webapp/common/thirdparty/zTree/api/API_cn.html | 103 - .../webapp/common/thirdparty/zTree/api/API_en.html | 102 - .../common/thirdparty/zTree/api/apiCss/api.js | 592 - .../common/thirdparty/zTree/api/apiCss/common.css | 219 - .../thirdparty/zTree/api/apiCss/common_ie6.css | 23 - .../thirdparty/zTree/api/apiCss/img/apiMenu.gif | Bin 1736 -> 0 bytes .../thirdparty/zTree/api/apiCss/img/apiMenu.png | Bin 3954 -> 0 bytes .../thirdparty/zTree/api/apiCss/img/background.jpg | Bin 36520 -> 0 bytes .../thirdparty/zTree/api/apiCss/img/chinese.png | Bin 1556 -> 0 bytes .../thirdparty/zTree/api/apiCss/img/close.png | Bin 1908 -> 0 bytes .../thirdparty/zTree/api/apiCss/img/contact-bg.png | Bin 177 -> 0 bytes .../thirdparty/zTree/api/apiCss/img/english.png | Bin 1356 -> 0 bytes .../thirdparty/zTree/api/apiCss/img/header-bg.png | Bin 148 -> 0 bytes .../thirdparty/zTree/api/apiCss/img/lightbulb.png | Bin 27355 -> 0 bytes .../zTree/api/apiCss/img/overlay_arrow.gif | Bin 625 -> 0 bytes .../zTree/api/apiCss/img/overlay_arrow.png | Bin 830 -> 0 bytes .../thirdparty/zTree/api/apiCss/img/overlay_bg.png | Bin 109 -> 0 bytes .../zTree/api/apiCss/img/overlay_close_IE6.gif | Bin 441 -> 0 bytes .../zTree/api/apiCss/img/zTreeStandard.gif | Bin 6851 -> 0 bytes .../zTree/api/apiCss/img/zTreeStandard.png | Bin 12573 -> 0 bytes .../zTree/api/apiCss/jquery-1.6.2.min.js | 18 - .../zTree/api/apiCss/jquery.ztree.core-3.5.js | 69 - .../zTree/api/apiCss/zTreeStyleForApi.css | 49 - .../thirdparty/zTree/api/cn/fn.zTree._z.html | 13 - .../thirdparty/zTree/api/cn/fn.zTree.destroy.html | 28 - .../zTree/api/cn/fn.zTree.getZTreeObj.html | 24 - .../thirdparty/zTree/api/cn/fn.zTree.init.html | 74 - .../zTree/api/cn/setting.async.autoParam.html | 39 - .../zTree/api/cn/setting.async.contentType.html | 29 - .../zTree/api/cn/setting.async.dataFilter.html | 45 - .../zTree/api/cn/setting.async.dataType.html | 29 - .../zTree/api/cn/setting.async.enable.html | 30 - .../zTree/api/cn/setting.async.otherParam.html | 40 - .../zTree/api/cn/setting.async.type.html | 30 - .../thirdparty/zTree/api/cn/setting.async.url.html | 50 - .../zTree/api/cn/setting.callback.beforeAsync.html | 35 - .../zTree/api/cn/setting.callback.beforeCheck.html | 34 - .../zTree/api/cn/setting.callback.beforeClick.html | 49 - .../api/cn/setting.callback.beforeCollapse.html | 34 - .../api/cn/setting.callback.beforeDblClick.html | 36 - .../zTree/api/cn/setting.callback.beforeDrag.html | 39 - .../api/cn/setting.callback.beforeDragOpen.html | 37 - .../zTree/api/cn/setting.callback.beforeDrop.html | 48 - .../api/cn/setting.callback.beforeEditName.html | 38 - .../api/cn/setting.callback.beforeExpand.html | 34 - .../api/cn/setting.callback.beforeMouseDown.html | 35 - .../api/cn/setting.callback.beforeMouseUp.html | 35 - .../api/cn/setting.callback.beforeRemove.html | 37 - .../api/cn/setting.callback.beforeRename.html | 46 - .../api/cn/setting.callback.beforeRightClick.html | 35 - .../api/cn/setting.callback.onAsyncError.html | 42 - .../api/cn/setting.callback.onAsyncSuccess.html | 38 - .../zTree/api/cn/setting.callback.onCheck.html | 34 - .../zTree/api/cn/setting.callback.onClick.html | 49 - .../zTree/api/cn/setting.callback.onCollapse.html | 34 - .../zTree/api/cn/setting.callback.onDblClick.html | 35 - .../zTree/api/cn/setting.callback.onDrag.html | 34 - .../zTree/api/cn/setting.callback.onDragMove.html | 34 - .../zTree/api/cn/setting.callback.onDrop.html | 46 - .../zTree/api/cn/setting.callback.onExpand.html | 34 - .../zTree/api/cn/setting.callback.onMouseDown.html | 35 - .../zTree/api/cn/setting.callback.onMouseUp.html | 35 - .../api/cn/setting.callback.onNodeCreated.html | 35 - .../zTree/api/cn/setting.callback.onRemove.html | 34 - .../zTree/api/cn/setting.callback.onRename.html | 40 - .../api/cn/setting.callback.onRightClick.html | 36 - .../api/cn/setting.check.autoCheckTrigger.html | 28 - .../api/cn/setting.check.chkDisabledInherit.html | 28 - .../zTree/api/cn/setting.check.chkStyle.html | 48 - .../zTree/api/cn/setting.check.chkboxType.html | 31 - .../zTree/api/cn/setting.check.enable.html | 25 - .../zTree/api/cn/setting.check.nocheckInherit.html | 28 - .../zTree/api/cn/setting.check.radioType.html | 29 - .../zTree/api/cn/setting.data.keep.leaf.html | 28 - .../zTree/api/cn/setting.data.keep.parent.html | 28 - .../zTree/api/cn/setting.data.key.checked.html | 24 - .../zTree/api/cn/setting.data.key.children.html | 23 - .../zTree/api/cn/setting.data.key.name.html | 23 - .../zTree/api/cn/setting.data.key.title.html | 24 - .../zTree/api/cn/setting.data.key.url.html | 24 - .../api/cn/setting.data.simpleData.enable.html | 38 - .../api/cn/setting.data.simpleData.idKey.html | 32 - .../api/cn/setting.data.simpleData.pIdKey.html | 32 - .../api/cn/setting.data.simpleData.rootPId.html | 32 - .../cn/setting.edit.drag.autoExpandTrigger.html | 28 - .../api/cn/setting.edit.drag.autoOpenTime.html | 25 - .../zTree/api/cn/setting.edit.drag.borderMax.html | 25 - .../zTree/api/cn/setting.edit.drag.borderMin.html | 25 - .../zTree/api/cn/setting.edit.drag.inner.html | 59 - .../zTree/api/cn/setting.edit.drag.isCopy.html | 32 - .../zTree/api/cn/setting.edit.drag.isMove.html | 32 - .../api/cn/setting.edit.drag.maxShowNodeNum.html | 25 - .../api/cn/setting.edit.drag.minMoveSize.html | 25 - .../zTree/api/cn/setting.edit.drag.next.html | 58 - .../zTree/api/cn/setting.edit.drag.prev.html | 58 - .../api/cn/setting.edit.editNameSelectAll.html | 27 - .../zTree/api/cn/setting.edit.enable.html | 38 - .../zTree/api/cn/setting.edit.removeTitle.html | 48 - .../zTree/api/cn/setting.edit.renameTitle.html | 48 - .../zTree/api/cn/setting.edit.showRemoveBtn.html | 49 - .../zTree/api/cn/setting.edit.showRenameBtn.html | 51 - .../thirdparty/zTree/api/cn/setting.treeId.html | 14 - .../thirdparty/zTree/api/cn/setting.treeObj.html | 14 - .../zTree/api/cn/setting.view.addDiyDom.html | 40 - .../zTree/api/cn/setting.view.addHoverDom.html | 45 - .../api/cn/setting.view.autoCancelSelected.html | 26 - .../zTree/api/cn/setting.view.dblClickExpand.html | 44 - .../zTree/api/cn/setting.view.expandSpeed.html | 31 - .../zTree/api/cn/setting.view.fontCss.html | 42 - .../zTree/api/cn/setting.view.nameIsHTML.html | 27 - .../zTree/api/cn/setting.view.removeHoverDom.html | 45 - .../zTree/api/cn/setting.view.selectedMulti.html | 27 - .../zTree/api/cn/setting.view.showIcon.html | 44 - .../zTree/api/cn/setting.view.showLine.html | 25 - .../zTree/api/cn/setting.view.showTitle.html | 46 - .../api/cn/setting.view.txtSelectedEnable.html | 25 - .../zTree/api/cn/treeNode.check_Child_State.html | 43 - .../zTree/api/cn/treeNode.check_Focus.html | 19 - .../thirdparty/zTree/api/cn/treeNode.checked.html | 32 - .../zTree/api/cn/treeNode.checkedOld.html | 25 - .../thirdparty/zTree/api/cn/treeNode.children.html | 35 - .../zTree/api/cn/treeNode.chkDisabled.html | 28 - .../thirdparty/zTree/api/cn/treeNode.click.html | 24 - .../thirdparty/zTree/api/cn/treeNode.diy.html | 15 - .../zTree/api/cn/treeNode.editNameFlag.html | 19 - .../zTree/api/cn/treeNode.getCheckStatus.html | 63 - .../zTree/api/cn/treeNode.getNextNode.html | 27 - .../zTree/api/cn/treeNode.getParentNode.html | 27 - .../zTree/api/cn/treeNode.getPreNode.html | 27 - .../zTree/api/cn/treeNode.halfCheck.html | 29 - .../thirdparty/zTree/api/cn/treeNode.icon.html | 33 - .../zTree/api/cn/treeNode.iconClose.html | 33 - .../thirdparty/zTree/api/cn/treeNode.iconOpen.html | 33 - .../thirdparty/zTree/api/cn/treeNode.iconSkin.html | 43 - .../zTree/api/cn/treeNode.isAjaxing.html | 26 - .../zTree/api/cn/treeNode.isFirstNode.html | 28 - .../thirdparty/zTree/api/cn/treeNode.isHidden.html | 27 - .../thirdparty/zTree/api/cn/treeNode.isHover.html | 19 - .../zTree/api/cn/treeNode.isLastNode.html | 28 - .../thirdparty/zTree/api/cn/treeNode.isParent.html | 28 - .../thirdparty/zTree/api/cn/treeNode.level.html | 25 - .../thirdparty/zTree/api/cn/treeNode.name.html | 25 - .../thirdparty/zTree/api/cn/treeNode.nocheck.html | 26 - .../thirdparty/zTree/api/cn/treeNode.open.html | 30 - .../zTree/api/cn/treeNode.parentTId.html | 27 - .../thirdparty/zTree/api/cn/treeNode.tId.html | 25 - .../thirdparty/zTree/api/cn/treeNode.target.html | 24 - .../thirdparty/zTree/api/cn/treeNode.url.html | 25 - .../thirdparty/zTree/api/cn/treeNode.zAsync.html | 28 - .../thirdparty/zTree/api/cn/zTreeObj.addNodes.html | 42 - .../zTree/api/cn/zTreeObj.cancelEditName.html | 30 - .../zTree/api/cn/zTreeObj.cancelSelectedNode.html | 35 - .../zTree/api/cn/zTreeObj.checkAllNodes.html | 29 - .../zTree/api/cn/zTreeObj.checkNode.html | 44 - .../thirdparty/zTree/api/cn/zTreeObj.copyNode.html | 44 - .../thirdparty/zTree/api/cn/zTreeObj.destroy.html | 25 - .../thirdparty/zTree/api/cn/zTreeObj.editName.html | 29 - .../zTree/api/cn/zTreeObj.expandAll.html | 30 - .../zTree/api/cn/zTreeObj.expandNode.html | 50 - .../api/cn/zTreeObj.getChangeCheckedNodes.html | 24 - .../zTree/api/cn/zTreeObj.getCheckedNodes.html | 28 - .../zTree/api/cn/zTreeObj.getNodeByParam.html | 32 - .../zTree/api/cn/zTreeObj.getNodeByTId.html | 27 - .../zTree/api/cn/zTreeObj.getNodeIndex.html | 30 - .../thirdparty/zTree/api/cn/zTreeObj.getNodes.html | 26 - .../zTree/api/cn/zTreeObj.getNodesByFilter.html | 43 - .../zTree/api/cn/zTreeObj.getNodesByParam.html | 31 - .../api/cn/zTreeObj.getNodesByParamFuzzy.html | 32 - .../zTree/api/cn/zTreeObj.getSelectedNodes.html | 23 - .../thirdparty/zTree/api/cn/zTreeObj.hideNode.html | 29 - .../zTree/api/cn/zTreeObj.hideNodes.html | 29 - .../thirdparty/zTree/api/cn/zTreeObj.moveNode.html | 46 - .../zTree/api/cn/zTreeObj.reAsyncChildNodes.html | 42 - .../thirdparty/zTree/api/cn/zTreeObj.refresh.html | 24 - .../zTree/api/cn/zTreeObj.removeChildNodes.html | 32 - .../zTree/api/cn/zTreeObj.removeNode.html | 34 - .../zTree/api/cn/zTreeObj.selectNode.html | 34 - .../zTree/api/cn/zTreeObj.setChkDisabled.html | 44 - .../zTree/api/cn/zTreeObj.setEditable.html | 27 - .../thirdparty/zTree/api/cn/zTreeObj.setting.html | 13 - .../thirdparty/zTree/api/cn/zTreeObj.showNode.html | 31 - .../zTree/api/cn/zTreeObj.showNodes.html | 29 - .../zTree/api/cn/zTreeObj.transformToArray.html | 25 - .../api/cn/zTreeObj.transformTozTreeNodes.html | 43 - .../zTree/api/cn/zTreeObj.updateNode.html | 37 - .../thirdparty/zTree/api/en/fn.zTree._z.html | 13 - .../thirdparty/zTree/api/en/fn.zTree.destroy.html | 28 - .../zTree/api/en/fn.zTree.getZTreeObj.html | 25 - .../thirdparty/zTree/api/en/fn.zTree.init.html | 75 - .../zTree/api/en/setting.async.autoParam.html | 39 - .../zTree/api/en/setting.async.contentType.html | 29 - .../zTree/api/en/setting.async.dataFilter.html | 45 - .../zTree/api/en/setting.async.dataType.html | 29 - .../zTree/api/en/setting.async.enable.html | 30 - .../zTree/api/en/setting.async.otherParam.html | 40 - .../zTree/api/en/setting.async.type.html | 30 - .../thirdparty/zTree/api/en/setting.async.url.html | 50 - .../zTree/api/en/setting.callback.beforeAsync.html | 35 - .../zTree/api/en/setting.callback.beforeCheck.html | 34 - .../zTree/api/en/setting.callback.beforeClick.html | 49 - .../api/en/setting.callback.beforeCollapse.html | 34 - .../api/en/setting.callback.beforeDblClick.html | 36 - .../zTree/api/en/setting.callback.beforeDrag.html | 39 - .../api/en/setting.callback.beforeDragOpen.html | 37 - .../zTree/api/en/setting.callback.beforeDrop.html | 50 - .../api/en/setting.callback.beforeEditName.html | 38 - .../api/en/setting.callback.beforeExpand.html | 34 - .../api/en/setting.callback.beforeMouseDown.html | 35 - .../api/en/setting.callback.beforeMouseUp.html | 35 - .../api/en/setting.callback.beforeRemove.html | 37 - .../api/en/setting.callback.beforeRename.html | 46 - .../api/en/setting.callback.beforeRightClick.html | 35 - .../api/en/setting.callback.onAsyncError.html | 42 - .../api/en/setting.callback.onAsyncSuccess.html | 38 - .../zTree/api/en/setting.callback.onCheck.html | 34 - .../zTree/api/en/setting.callback.onClick.html | 49 - .../zTree/api/en/setting.callback.onCollapse.html | 34 - .../zTree/api/en/setting.callback.onDblClick.html | 35 - .../zTree/api/en/setting.callback.onDrag.html | 34 - .../zTree/api/en/setting.callback.onDragMove.html | 34 - .../zTree/api/en/setting.callback.onDrop.html | 48 - .../zTree/api/en/setting.callback.onExpand.html | 34 - .../zTree/api/en/setting.callback.onMouseDown.html | 35 - .../zTree/api/en/setting.callback.onMouseUp.html | 35 - .../api/en/setting.callback.onNodeCreated.html | 35 - .../zTree/api/en/setting.callback.onRemove.html | 34 - .../zTree/api/en/setting.callback.onRename.html | 40 - .../api/en/setting.callback.onRightClick.html | 36 - .../api/en/setting.check.autoCheckTrigger.html | 29 - .../api/en/setting.check.chkDisabledInherit.html | 28 - .../zTree/api/en/setting.check.chkStyle.html | 48 - .../zTree/api/en/setting.check.chkboxType.html | 31 - .../zTree/api/en/setting.check.enable.html | 26 - .../zTree/api/en/setting.check.nocheckInherit.html | 28 - .../zTree/api/en/setting.check.radioType.html | 29 - .../zTree/api/en/setting.data.keep.leaf.html | 28 - .../zTree/api/en/setting.data.keep.parent.html | 28 - .../zTree/api/en/setting.data.key.checked.html | 24 - .../zTree/api/en/setting.data.key.children.html | 23 - .../zTree/api/en/setting.data.key.name.html | 23 - .../zTree/api/en/setting.data.key.title.html | 24 - .../zTree/api/en/setting.data.key.url.html | 24 - .../api/en/setting.data.simpleData.enable.html | 39 - .../api/en/setting.data.simpleData.idKey.html | 32 - .../api/en/setting.data.simpleData.pIdKey.html | 32 - .../api/en/setting.data.simpleData.rootPId.html | 32 - .../en/setting.edit.drag.autoExpandTrigger.html | 29 - .../api/en/setting.edit.drag.autoOpenTime.html | 25 - .../zTree/api/en/setting.edit.drag.borderMax.html | 25 - .../zTree/api/en/setting.edit.drag.borderMin.html | 25 - .../zTree/api/en/setting.edit.drag.inner.html | 60 - .../zTree/api/en/setting.edit.drag.isCopy.html | 32 - .../zTree/api/en/setting.edit.drag.isMove.html | 32 - .../api/en/setting.edit.drag.maxShowNodeNum.html | 25 - .../api/en/setting.edit.drag.minMoveSize.html | 25 - .../zTree/api/en/setting.edit.drag.next.html | 59 - .../zTree/api/en/setting.edit.drag.prev.html | 59 - .../api/en/setting.edit.editNameSelectAll.html | 27 - .../zTree/api/en/setting.edit.enable.html | 39 - .../zTree/api/en/setting.edit.removeTitle.html | 48 - .../zTree/api/en/setting.edit.renameTitle.html | 48 - .../zTree/api/en/setting.edit.showRemoveBtn.html | 50 - .../zTree/api/en/setting.edit.showRenameBtn.html | 52 - .../thirdparty/zTree/api/en/setting.treeId.html | 14 - .../thirdparty/zTree/api/en/setting.treeObj.html | 14 - .../zTree/api/en/setting.view.addDiyDom.html | 40 - .../zTree/api/en/setting.view.addHoverDom.html | 45 - .../api/en/setting.view.autoCancelSelected.html | 27 - .../zTree/api/en/setting.view.dblClickExpand.html | 45 - .../zTree/api/en/setting.view.expandSpeed.html | 31 - .../zTree/api/en/setting.view.fontCss.html | 42 - .../zTree/api/en/setting.view.nameIsHTML.html | 28 - .../zTree/api/en/setting.view.removeHoverDom.html | 45 - .../zTree/api/en/setting.view.selectedMulti.html | 28 - .../zTree/api/en/setting.view.showIcon.html | 45 - .../zTree/api/en/setting.view.showLine.html | 26 - .../zTree/api/en/setting.view.showTitle.html | 47 - .../api/en/setting.view.txtSelectedEnable.html | 26 - .../zTree/api/en/treeNode.check_Child_State.html | 43 - .../zTree/api/en/treeNode.check_Focus.html | 19 - .../thirdparty/zTree/api/en/treeNode.checked.html | 32 - .../zTree/api/en/treeNode.checkedOld.html | 25 - .../thirdparty/zTree/api/en/treeNode.children.html | 35 - .../zTree/api/en/treeNode.chkDisabled.html | 28 - .../thirdparty/zTree/api/en/treeNode.click.html | 24 - .../thirdparty/zTree/api/en/treeNode.diy.html | 15 - .../zTree/api/en/treeNode.editNameFlag.html | 19 - .../zTree/api/en/treeNode.getCheckStatus.html | 63 - .../zTree/api/en/treeNode.getNextNode.html | 27 - .../zTree/api/en/treeNode.getParentNode.html | 27 - .../zTree/api/en/treeNode.getPreNode.html | 27 - .../zTree/api/en/treeNode.halfCheck.html | 29 - .../thirdparty/zTree/api/en/treeNode.icon.html | 33 - .../zTree/api/en/treeNode.iconClose.html | 33 - .../thirdparty/zTree/api/en/treeNode.iconOpen.html | 33 - .../thirdparty/zTree/api/en/treeNode.iconSkin.html | 43 - .../zTree/api/en/treeNode.isAjaxing.html | 26 - .../zTree/api/en/treeNode.isFirstNode.html | 28 - .../thirdparty/zTree/api/en/treeNode.isHidden.html | 28 - .../thirdparty/zTree/api/en/treeNode.isHover.html | 19 - .../zTree/api/en/treeNode.isLastNode.html | 28 - .../thirdparty/zTree/api/en/treeNode.isParent.html | 28 - .../thirdparty/zTree/api/en/treeNode.level.html | 25 - .../thirdparty/zTree/api/en/treeNode.name.html | 25 - .../thirdparty/zTree/api/en/treeNode.nocheck.html | 26 - .../thirdparty/zTree/api/en/treeNode.open.html | 30 - .../zTree/api/en/treeNode.parentTId.html | 27 - .../thirdparty/zTree/api/en/treeNode.tId.html | 25 - .../thirdparty/zTree/api/en/treeNode.target.html | 24 - .../thirdparty/zTree/api/en/treeNode.url.html | 25 - .../thirdparty/zTree/api/en/treeNode.zAsync.html | 28 - .../thirdparty/zTree/api/en/zTreeObj.addNodes.html | 42 - .../zTree/api/en/zTreeObj.cancelEditName.html | 30 - .../zTree/api/en/zTreeObj.cancelSelectedNode.html | 35 - .../zTree/api/en/zTreeObj.checkAllNodes.html | 29 - .../zTree/api/en/zTreeObj.checkNode.html | 44 - .../thirdparty/zTree/api/en/zTreeObj.copyNode.html | 47 - .../thirdparty/zTree/api/en/zTreeObj.destroy.html | 25 - .../thirdparty/zTree/api/en/zTreeObj.editName.html | 29 - .../zTree/api/en/zTreeObj.expandAll.html | 30 - .../zTree/api/en/zTreeObj.expandNode.html | 50 - .../api/en/zTreeObj.getChangeCheckedNodes.html | 24 - .../zTree/api/en/zTreeObj.getCheckedNodes.html | 28 - .../zTree/api/en/zTreeObj.getNodeByParam.html | 32 - .../zTree/api/en/zTreeObj.getNodeByTId.html | 27 - .../zTree/api/en/zTreeObj.getNodeIndex.html | 30 - .../thirdparty/zTree/api/en/zTreeObj.getNodes.html | 26 - .../zTree/api/en/zTreeObj.getNodesByFilter.html | 43 - .../zTree/api/en/zTreeObj.getNodesByParam.html | 31 - .../api/en/zTreeObj.getNodesByParamFuzzy.html | 32 - .../zTree/api/en/zTreeObj.getSelectedNodes.html | 23 - .../thirdparty/zTree/api/en/zTreeObj.hideNode.html | 29 - .../zTree/api/en/zTreeObj.hideNodes.html | 29 - .../thirdparty/zTree/api/en/zTreeObj.moveNode.html | 49 - .../zTree/api/en/zTreeObj.reAsyncChildNodes.html | 42 - .../thirdparty/zTree/api/en/zTreeObj.refresh.html | 24 - .../zTree/api/en/zTreeObj.removeChildNodes.html | 32 - .../zTree/api/en/zTreeObj.removeNode.html | 34 - .../zTree/api/en/zTreeObj.selectNode.html | 34 - .../zTree/api/en/zTreeObj.setChkDisabled.html | 44 - .../zTree/api/en/zTreeObj.setEditable.html | 27 - .../thirdparty/zTree/api/en/zTreeObj.setting.html | 14 - .../thirdparty/zTree/api/en/zTreeObj.showNode.html | 31 - .../zTree/api/en/zTreeObj.showNodes.html | 29 - .../zTree/api/en/zTreeObj.transformToArray.html | 27 - .../api/en/zTreeObj.transformTozTreeNodes.html | 44 - .../zTree/api/en/zTreeObj.updateNode.html | 37 - .../webapp/common/thirdparty/zTree/css/demo.css | 33 - .../thirdparty/zTree/css/zTreeStyle/ReadMe.txt | 1 - .../thirdparty/zTree/css/zTreeStyle/img/Thumbs.db | Bin 23552 -> 0 bytes .../zTree/css/zTreeStyle/img/diy/Thumbs.db | Bin 19968 -> 0 bytes .../zTree/css/zTreeStyle/img/zTreeStandard.gifbak | Bin 5564 -> 0 bytes .../zTree/css/zTreeStyle/img/zTreeStandard.png | Bin 11206 -> 0 bytes .../zTree/css/zTreeStyle/img/zTreeStandard.pngbak | Bin 11173 -> 0 bytes .../zTree/css/zTreeStyle/img/zTreeStandard.psd | Bin 93494 -> 0 bytes .../thirdparty/zTree/css/zTreeStyle/zTreeStyle.css | 107 - .../common/thirdparty/zTree/js/jquery.ztree.all.js | 3506 -- .../thirdparty/zTree/js/jquery.ztree.all.min.js | 160 - .../thirdparty/zTree/js/jquery.ztree.core.js | 1684 - .../thirdparty/zTree/js/jquery.ztree.core.min.js | 69 - .../thirdparty/zTree/js/jquery.ztree.excheck.js | 629 - .../zTree/js/jquery.ztree.excheck.min.js | 34 - .../thirdparty/zTree/js/jquery.ztree.exedit.js | 1191 - .../thirdparty/zTree/js/jquery.ztree.exedit.min.js | 53 - .../thirdparty/zTree/js/jquery.ztree.exhide.js | 363 - .../thirdparty/zTree/js/jquery.ztree.exhide.min.js | 22 - .../common/thirdparty/zTree/zTree.v3.jquery.json | 35 - openo-portal/portal-extsys/pom.xml | 40 - .../webapp/extsys/sdncontroller/conf/License.txt | 362 - .../extsys/sdncontroller/conf/dataconfig.json | 4 - .../webapp/extsys/sdncontroller/controller.html | 339 - .../main/webapp/extsys/sdncontroller/css/RMain.css | 239 - .../webapp/extsys/sdncontroller/css/VMMain.css | 758 - .../extsys/sdncontroller/css/bootstrap.min.css | 7 - .../webapp/extsys/sdncontroller/images/License.txt | 362 - .../js/bootstrap-table-filter-control.min.js | 7 - .../extsys/sdncontroller/js/bootstrap-table.min.js | 8 - .../extsys/sdncontroller/js/bootstrap.min.js | 6 - .../webapp/extsys/sdncontroller/js/controller.js | 166 - .../extsys/sdncontroller/js/jquery-1.11.2.min.js | 4 - .../src/main/webapp/extsys/vim/css/bootstrap.css | 4966 -- .../src/main/webapp/extsys/vim/css/skill.css | 97 - .../src/main/webapp/extsys/vim/css/vim.css | 476 - .../src/main/webapp/extsys/vim/css/vimChart.css | 68 - .../src/main/webapp/extsys/vim/i18n/loadi18nApp.js | 42 - .../vim/i18n/roc-vim-iui-i18n-en-US.properties | 92 - .../vim/i18n/roc-vim-iui-i18n-zh-CN.properties | 95 - .../src/main/webapp/extsys/vim/js/client-cometd.js | 63 - .../webapp/extsys/vim/js/jqBootstrapValidation.js | 925 - .../src/main/webapp/extsys/vim/js/vim-validate.js | 116 - .../src/main/webapp/extsys/vim/js/vimChart.js | 430 - .../webapp/extsys/vim/js/vimChartController.js | 160 - .../src/main/webapp/extsys/vim/js/vimController.js | 319 - .../src/main/webapp/extsys/vim/js/vimUtil.js | 51 - .../src/main/webapp/extsys/vim/vimChart.html | 118 - .../src/main/webapp/extsys/vim/vimView.html | 266 - .../main/webapp/extsys/vnfm/css/animate.min.css | 21 - .../src/main/webapp/extsys/vnfm/css/vnfm.css | 486 - .../vnfm/i18n/nfv-nso-iui-i18n-en-US.properties | 55 - .../vnfm/i18n/nfv-nso-iui-i18n-zh-CN.properties | 55 - .../src/main/webapp/extsys/vnfm/js/commonUtil.js | 128 - .../main/webapp/extsys/vnfm/js/loadi18n_nsoc.js | 38 - .../main/webapp/extsys/vnfm/js/vnfm-validate.js | 89 - .../main/webapp/extsys/vnfm/js/vnfmController.js | 302 - .../src/main/webapp/extsys/vnfm/js/vnfmUtil.js | 78 - .../src/main/webapp/extsys/vnfm/vnfmView.html | 240 - openo-portal/portal-lifecyclemgr/pom.xml | 43 - .../src/main/webapp/lifecyclemgr/InputData.html | 86 - .../src/main/webapp/lifecyclemgr/TopoAccor.html | 154 - .../src/main/webapp/lifecyclemgr/UnderLay_TP.html | 237 - .../src/main/webapp/lifecyclemgr/accorTables.html | 351 - .../src/main/webapp/lifecyclemgr/chartTopo.html | 268 - .../src/main/webapp/lifecyclemgr/conf/License.txt | 362 - .../main/webapp/lifecyclemgr/conf/dataconfig.json | 4 - .../src/main/webapp/lifecyclemgr/css/RMain.css | 210 - .../src/main/webapp/lifecyclemgr/css/VMMain.css | 664 - .../main/webapp/lifecyclemgr/css/bootstrap.min.css | 7 - .../lifecyclemgr/css/jquery-ui-1.12.1.min.css | 7 - .../src/main/webapp/lifecyclemgr/gsolcmmain.html | 607 - .../lcm-template-parameters-i18n-en-US.properties | 94 - .../main/webapp/lifecyclemgr/images/License.txt | 362 - .../webapp/lifecyclemgr/images/topo/License.txt | 362 - .../webapp/lifecyclemgr/images/topo/node_gray.png | Bin 18015 -> 0 bytes .../js/bootstrap-table-filter-control.min.js | 7 - .../webapp/lifecyclemgr/js/bootstrap-table.min.js | 8 - .../main/webapp/lifecyclemgr/js/bootstrap.min.js | 6 - .../src/main/webapp/lifecyclemgr/js/brs.js | 349 - .../src/main/webapp/lifecyclemgr/js/gsolcm.js | 881 - .../webapp/lifecyclemgr/js/jquery-1.11.2.min.js | 4 - .../webapp/lifecyclemgr/js/jquery-ui-1.12.1.min.js | 13 - .../lifecyclemgr/js/jquery.bootstrap-growl.min.js | 1 - .../webapp/lifecyclemgr/js/jquery.isloading.min.js | 39 - .../src/main/webapp/lifecyclemgr/js/rest.js | 275 - .../webapp/lifecyclemgr/js/tmNodesController.js | 194 - .../webapp/lifecyclemgr/js/tmTopoController.js | 230 - .../src/main/webapp/lifecyclemgr/js/topo/Edge.js | 33 - .../src/main/webapp/lifecyclemgr/js/topo/Node.js | 40 - .../webapp/lifecyclemgr/js/topo/OverlayTopology.js | 191 - .../webapp/lifecyclemgr/js/topo/sigma/sigma.min.js | 5 - .../topo/sigma/sigma.renderers.customShapes.min.js | 2 - .../topo/sigma/sigma.renderers.edgeLabels.min.js | 2 - .../src/main/webapp/lifecyclemgr/js/underlay.js | 126 - .../src/main/webapp/lifecyclemgr/js/vpn.js | 312 - .../lifecyclemgr/lcm_detail_nfvo_nodesinfo.html | 76 - .../lifecyclemgr/lcm_detail_nfvo_topology.html | 228 - .../src/main/webapp/lifecyclemgr/newShow.html | 179 - .../src/main/webapp/lifecyclemgr/overlayvpn.html | 291 - .../main/webapp/lifecyclemgr/overlayvpn_topo.html | 55 - .../src/main/webapp/lifecyclemgr/sdnovpn.html | 126 - .../src/main/webapp/lifecyclemgr/underlayvpn.html | 291 - openo-portal/portal-monitor/pom.xml | 40 - .../src/main/webapp/monitor/css/dac.css | 220 - .../src/main/webapp/monitor/css/monitorSetting.css | 167 - .../src/main/webapp/monitor/dacList.html | 250 - .../i18n/umc-monitor-iui-i18n-en-US.properties | 102 - .../src/main/webapp/monitor/images/License.txt | 362 - .../src/main/webapp/monitor/js/dacController.js | 275 - .../monitor/js/loadi18nApp_ngict-umc-monitor.js | 43 - .../webapp/monitor/js/monitorSettingController.js | 429 - .../main/webapp/monitor/js/monitorSettingUtil.js | 169 - .../src/main/webapp/monitor/monitorSetting.html | 480 - .../main/webapp/monitor/monitorSettingList.html | 103 - openo-portal/portal-package/pom.xml | 219 - .../main/resources/portalConfig/msb_register.xml | 115 - .../portal-package/src/main/webapp/WEB-INF/web.xml | 25 - openo-portal/portal-performance/pom.xml | 40 - .../src/main/webapp/performance/alarm_view.html | 339 - .../main/webapp/performance/css/alarmsQuery.css | 752 - .../webapp/performance/css/performanceChart.css | 60 - .../webapp/performance/css/performanceQuery.css | 843 - .../src/main/webapp/performance/css/pmQueryBox.css | 310 - .../i18n/web-alarm-i18n-en-US.properties | 123 - .../i18n/web-performance-i18n-en-US.properties | 145 - .../src/main/webapp/performance/image/License.txt | 362 - .../src/main/webapp/performance/js/alarmConds.js | 276 - .../webapp/performance/js/alarmsServerPageTable.js | 529 - .../src/main/webapp/performance/js/alarmsUtil.js | 1169 - .../src/main/webapp/performance/js/commonUtil.js | 75 - .../webapp/performance/js/curAlarmsController.js | 445 - .../main/webapp/performance/js/performanceChart.js | 196 - .../performance/js/performanceQueryController.js | 810 - .../src/main/webapp/performance/js/pmUtil.js | 473 - .../main/webapp/performance/js/serverPageTable.js | 232 - .../webapp/performance/performance_query_rule.html | 156 - .../main/webapp/performance/performance_view.html | 125 - openo-portal/portal-resmgr/pom.xml | 42 - .../src/main/webapp/resmgr-nfv/conf/License.txt | 362 - .../main/webapp/resmgr-nfv/conf/globalconfig.json | 5 - .../src/main/webapp/resmgr-nfv/css/RMain.css | 239 - .../src/main/webapp/resmgr-nfv/css/VMMain.css | 758 - .../main/webapp/resmgr-nfv/css/bootstrap.min.css | 7 - .../resmgr-nfv/css/jquery.dataTables.min.css | 1 - .../src/main/webapp/resmgr-nfv/css/resmgr.css | 87 - .../src/main/webapp/resmgr-nfv/datacenter.html | 362 - .../src/main/webapp/resmgr-nfv/html/index.html | 32 - .../src/main/webapp/resmgr-nfv/images/License.txt | 362 - .../resmgr-nfv/images/loading-spinner-grey.gif | Bin 5203 -> 0 bytes .../src/main/webapp/resmgr-nfv/images/sort_asc.png | Bin 1118 -> 0 bytes .../main/webapp/resmgr-nfv/images/sort_both.png | Bin 1136 -> 0 bytes .../main/webapp/resmgr-nfv/images/sort_desc.png | Bin 1127 -> 0 bytes .../src/main/webapp/resmgr-nfv/js/SendMsg.js | 34 - .../src/main/webapp/resmgr-nfv/js/bootbox.min.js | 6 - .../webapp/resmgr-nfv/js/bootstrap-table.min.js | 8 - .../src/main/webapp/resmgr-nfv/js/bootstrap.min.js | 6 - .../src/main/webapp/resmgr-nfv/js/chart.min.js | 14 - .../src/main/webapp/resmgr-nfv/js/datacenter.js | 260 - .../src/main/webapp/resmgr-nfv/js/gconf.js | 31 - .../main/webapp/resmgr-nfv/js/jquery-1.11.2.min.js | 4 - .../webapp/resmgr-nfv/js/jquery.dataTables.min.js | 155 - .../webapp/resmgr-nfv/js/jquery.validate.min.js | 4 - .../src/main/webapp/resmgr-nfv/js/resmgr.js | 212 - .../src/main/webapp/resmgr-nfv/js/validateset.js | 42 - .../src/main/webapp/resmgr-nfv/js/vim.js | 93 - .../src/main/webapp/resmgr-nfv/location.html | 279 - .../src/main/webapp/resmgr-nfv/resource.html | 135 - .../src/main/webapp/resmgr-nfv/vim.html | 69 - .../src/main/webapp/resmgr-sdn/conf/License.txt | 362 - .../main/webapp/resmgr-sdn/conf/dataconfig.json | 5 - .../src/main/webapp/resmgr-sdn/css/RMain.css | 239 - .../src/main/webapp/resmgr-sdn/css/VMMain.css | 758 - .../webapp/resmgr-sdn/css/bootstrap-table.min.css | 1 - .../main/webapp/resmgr-sdn/css/bootstrap.min.css | 7 - .../src/main/webapp/resmgr-sdn/images/License.txt | 362 - .../src/main/webapp/resmgr-sdn/images/add.png | Bin 1104 -> 0 bytes .../webapp/resmgr-sdn/images/arrow-down-enable.png | Bin 1035 -> 0 bytes .../src/main/webapp/resmgr-sdn/images/delete.png | Bin 1100 -> 0 bytes .../src/main/webapp/resmgr-sdn/images/edit.png | Bin 3045 -> 0 bytes .../resmgr-sdn/images/ideo_default_select.png | Bin 1035 -> 0 bytes .../src/main/webapp/resmgr-sdn/images/import.png | Bin 1250 -> 0 bytes .../src/main/webapp/resmgr-sdn/images/line.png | Bin 139 -> 0 bytes .../resmgr-sdn/images/loading-spinner-grey.gif | Bin 5203 -> 0 bytes .../src/main/webapp/resmgr-sdn/images/page_l.png | Bin 1066 -> 0 bytes .../resmgr-sdn/images/page_left_disabled.png | Bin 1066 -> 0 bytes .../src/main/webapp/resmgr-sdn/images/page_r.png | Bin 1070 -> 0 bytes .../src/main/webapp/resmgr-sdn/images/sort_asc.png | Bin 1118 -> 0 bytes .../main/webapp/resmgr-sdn/images/sort_both.png | Bin 1136 -> 0 bytes .../main/webapp/resmgr-sdn/images/sort_desc.png | Bin 1127 -> 0 bytes .../js/bootstrap-table-filter-control.min.js | 7 - .../webapp/resmgr-sdn/js/bootstrap-table.min.js | 8 - .../src/main/webapp/resmgr-sdn/js/bootstrap.min.js | 6 - .../src/main/webapp/resmgr-sdn/js/brs.js | 393 - .../main/webapp/resmgr-sdn/js/jquery-1.11.2.min.js | 4 - .../src/main/webapp/resmgr-sdn/link.html | 370 - .../src/main/webapp/resmgr-sdn/ne.html | 401 - .../src/main/webapp/resmgr-sdn/port.html | 389 - .../src/main/webapp/resmgr-sdn/resource.html | 140 - .../src/main/webapp/resmgr-sdn/site.html | 247 - performance/pom.xml | 41 + .../src/main/webapp/performance/alarm_view.html | 339 + .../main/webapp/performance/css/alarmsQuery.css | 752 + .../webapp/performance/css/performanceChart.css | 60 + .../webapp/performance/css/performanceQuery.css | 843 + .../src/main/webapp/performance/css/pmQueryBox.css | 310 + .../i18n/web-alarm-i18n-en-US.properties | 123 + .../i18n/web-performance-i18n-en-US.properties | 145 + .../src/main/webapp/performance/image/License.txt | 362 + .../main/webapp/performance/image/aos_view-fm.gif | Bin .../src/main/webapp/performance/image/arrow.png | Bin .../main/webapp/performance/image/chart_icon.png | Bin .../src/main/webapp/performance/image/delete.png | Bin .../webapp/performance/image/details_close.png | Bin .../main/webapp/performance/image/details_open.png | Bin .../src/main/webapp/performance/image/down.png | Bin .../src/main/webapp/performance/image/filter.png | Bin .../main/webapp/performance/image/statistics.png | Bin .../main/webapp/performance/image/table_icon.png | Bin .../src/main/webapp/performance/image/up.png | Bin .../src/main/webapp/performance/js/alarmConds.js | 276 + .../webapp/performance/js/alarmsServerPageTable.js | 529 + .../src/main/webapp/performance/js/alarmsUtil.js | 1169 + .../src/main/webapp/performance/js/commonUtil.js | 75 + .../webapp/performance/js/curAlarmsController.js | 445 + .../main/webapp/performance/js/performanceChart.js | 196 + .../performance/js/performanceQueryController.js | 810 + .../src/main/webapp/performance/js/pmUtil.js | 473 + .../main/webapp/performance/js/serverPageTable.js | 232 + .../webapp/performance/performance_query_rule.html | 156 + .../main/webapp/performance/performance_view.html | 125 + pom.xml | 23 +- portal-auth/pom.xml | 40 - .../src/main/webapp/user/changePassword.html | 125 - portal-auth/src/main/webapp/user/createUser.html | 141 - portal-auth/src/main/webapp/user/css/component.css | 247 - portal-auth/src/main/webapp/user/css/user.css | 95 - .../src/main/webapp/user/images/License.txt | 362 - portal-auth/src/main/webapp/user/images/add.png | Bin 1104 -> 0 bytes portal-auth/src/main/webapp/user/images/delete.png | Bin 1100 -> 0 bytes .../src/main/webapp/user/images/edit.bak.png | Bin 3045 -> 0 bytes portal-auth/src/main/webapp/user/images/edit.png | Bin 3045 -> 0 bytes .../src/main/webapp/user/images/reset.bak.png | Bin 2898 -> 0 bytes portal-auth/src/main/webapp/user/images/reset.png | Bin 2863 -> 0 bytes .../src/main/webapp/user/js/changePassword.js | 193 - portal-auth/src/main/webapp/user/js/createUser.js | 189 - portal-auth/src/main/webapp/user/js/modifyUser.js | 78 - portal-auth/src/main/webapp/user/js/user.js | 109 - portal-auth/src/main/webapp/user/js/userTools.js | 88 - portal-auth/src/main/webapp/user/modifyUser.html | 77 - portal-auth/src/main/webapp/user/user.html | 41 - portal-catalog/pom.xml | 41 - .../src/main/webapp/catalog/csarPackage.html | 247 - .../src/main/webapp/catalog/css/datatable-sort.css | 30 - .../src/main/webapp/catalog/css/fileupload.css | 81 - .../src/main/webapp/catalog/css/hostMirror.css | 447 - .../src/main/webapp/catalog/css/package.css | 470 - .../webapp/catalog/css/platform/animate.min.css | 21 - .../src/main/webapp/catalog/css/platform/skill.css | 89 - .../src/main/webapp/catalog/css/software.css | 423 - .../src/main/webapp/catalog/css/template.css | 405 - .../src/main/webapp/catalog/css/templateDetail.css | 480 - .../src/main/webapp/catalog/css/topology.css | 393 - .../main/webapp/catalog/css/virtualApplication.css | 501 - .../src/main/webapp/catalog/css/vnfm.css | 491 - .../catalog/i18n/nfv-nso-iui-i18n-en-US.properties | 156 - .../catalog/i18n/nfv-nso-iui-i18n-zh-CN.properties | 155 - .../src/main/webapp/catalog/image/License.txt | 362 - .../main/webapp/catalog/image/details_close.png | Bin 3300 -> 0 bytes .../src/main/webapp/catalog/image/details_open.png | Bin 3304 -> 0 bytes .../src/main/webapp/catalog/image/down.png | Bin 2938 -> 0 bytes .../src/main/webapp/catalog/image/pointes_blue.png | Bin 7411 -> 0 bytes .../main/webapp/catalog/image/pointes_green.png | Bin 5329 -> 0 bytes .../src/main/webapp/catalog/image/sort_asc.png | Bin 1118 -> 0 bytes .../webapp/catalog/image/sort_asc_disabled.png | Bin 148 -> 0 bytes .../src/main/webapp/catalog/image/sort_both.png | Bin 1136 -> 0 bytes .../src/main/webapp/catalog/image/sort_desc.png | Bin 1127 -> 0 bytes .../webapp/catalog/image/sort_desc_disabled.png | Bin 146 -> 0 bytes .../src/main/webapp/catalog/image/up.png | Bin 2926 -> 0 bytes .../main/webapp/catalog/js/component/commonUtil.js | 128 - .../webapp/catalog/js/component/loadi18n_nsoc.js | 38 - .../webapp/catalog/js/component/serverPageTable.js | 490 - .../main/webapp/catalog/js/package/pmController.js | 346 - .../src/main/webapp/catalog/js/package/pmUtil.js | 221 - .../webapp/catalog/js/template/tmController.js | 100 - .../catalog/js/template/tmDetailController.js | 430 - .../webapp/catalog/js/template/tmDetailUtil.js | 72 - .../catalog/js/template/tmNodesController.js | 289 - .../catalog/js/template/tmNodesDetailUtil.js | 23 - .../webapp/catalog/js/template/tmTopoController.js | 199 - .../src/main/webapp/catalog/js/template/tmUtil.js | 42 - .../main/webapp/catalog/js/template/topoUtil.js | 618 - .../src/main/webapp/catalog/nodesDetail.html | 108 - .../src/main/webapp/catalog/template.html | 70 - .../src/main/webapp/catalog/templateDetail.html | 128 - .../src/main/webapp/catalog/topology.html | 122 - .../src/main/webapp/catalog/topologyDetail.html | 210 - portal-common/pom.xml | 40 - portal-common/src/main/webapp/common/css/RMain.css | 239 - .../src/main/webapp/common/css/VMMain.css | 758 - .../main/webapp/common/css/ZteIctIcons/Read Me.txt | 7 - .../common/css/ZteIctIcons/demo-files/demo.css | 151 - .../common/css/ZteIctIcons/demo-files/demo.js | 30 - .../main/webapp/common/css/ZteIctIcons/demo.html | 4807 -- .../common/css/ZteIctIcons/fonts/ZteIctIcons.eot | Bin 92372 -> 0 bytes .../common/css/ZteIctIcons/fonts/ZteIctIcons.svg | 308 - .../common/css/ZteIctIcons/fonts/ZteIctIcons.ttf | Bin 92192 -> 0 bytes .../common/css/ZteIctIcons/fonts/ZteIctIcons.woff | Bin 92268 -> 0 bytes .../webapp/common/css/ZteIctIcons/selection.json | 8408 --- .../main/webapp/common/css/ZteIctIcons/style.css | 921 - .../src/main/webapp/common/css/animate.css | 3278 -- .../src/main/webapp/common/css/frame-style.css | 255 - .../src/main/webapp/common/css/login-apk.css | 183 - portal-common/src/main/webapp/common/css/login.css | 200 - .../src/main/webapp/common/css/main_page.css | 48 - .../src/main/webapp/common/css/more-operation.css | 167 - .../src/main/webapp/common/css/ngict-component.css | 789 - .../src/main/webapp/common/css/plugins.css | 1561 - portal-common/src/main/webapp/common/css/print.css | 53 - .../src/main/webapp/common/css/style-custom.css | 1510 - .../main/webapp/common/css/style-ict-bootstrap.css | 838 - .../src/main/webapp/common/css/style-ict.css | 820 - .../main/webapp/common/css/style-responsive.css | 989 - portal-common/src/main/webapp/common/css/style.css | 4715 -- .../src/main/webapp/common/css/themes/black.css | 388 - .../main/webapp/common/css/themes/black_ifrm.css | 207 - .../src/main/webapp/common/css/themes/blue.css | 374 - .../main/webapp/common/css/themes/blue_ifrm.css | 207 - .../src/main/webapp/common/css/themes/brown.css | 376 - .../main/webapp/common/css/themes/brown_ifrm.css | 207 - .../src/main/webapp/common/css/themes/grey.css | 372 - .../main/webapp/common/css/themes/grey_ifrm.css | 209 - .../src/main/webapp/common/css/themes/light.css | 479 - .../main/webapp/common/css/themes/light_ifrm.css | 207 - .../src/main/webapp/common/css/themes/purple.css | 375 - .../main/webapp/common/css/themes/purple_ifrm.css | 207 - .../src/main/webapp/common/css/themes/zteblue.css | 398 - .../main/webapp/common/css/themes/zteblue_ifrm.css | 206 - .../main/webapp/common/css/themes/ztebluelight.css | 450 - .../webapp/common/css/themes/ztebluelight2.css | 520 - .../common/css/themes/ztebluelight2_ifrm.css | 229 - .../webapp/common/css/themes/ztebluelight3.css | 497 - .../common/css/themes/ztebluelight3_ifrm.css | 220 - .../webapp/common/css/themes/ztebluelight4.css | 620 - .../common/css/themes/ztebluelight4_ifrm.css | 209 - .../webapp/common/css/themes/ztebluelight_ifrm.css | 228 - portal-common/src/main/webapp/common/default.html | 174 - .../i18n/web-framework-i18n-en-US.properties | 222 - .../i18n/web-framework-login-i18n-en-US.properties | 25 - .../web-framework-mainPage-i18n-en-US.properties | 24 - .../i18n/web-framework-menu-i18n-en-US.properties | 41 - .../src/main/webapp/common/image/License.txt | 362 - .../src/main/webapp/common/image/about/License.txt | 362 - .../webapp/common/image/about/about-bg-dark.png | Bin 87487 -> 0 bytes .../webapp/common/image/about/about-bg-light.png | Bin 95527 -> 0 bytes .../webapp/common/image/about/about-netnumen.png | Bin 14772 -> 0 bytes .../webapp/common/image/accordion-plusminus.png | Bin 162 -> 0 bytes portal-common/src/main/webapp/common/image/add.png | Bin 1104 -> 0 bytes .../src/main/webapp/common/image/ajax-loading.gif | Bin 29959 -> 0 bytes .../webapp/common/image/ajax-modal-loading.gif | Bin 27953 -> 0 bytes .../main/webapp/common/image/arrow-down-enable.png | Bin 1035 -> 0 bytes .../src/main/webapp/common/image/arrow-down.png | Bin 966 -> 0 bytes .../src/main/webapp/common/image/avatar.png | Bin 2016 -> 0 bytes .../src/main/webapp/common/image/bg-opacity.png | Bin 130 -> 0 bytes .../src/main/webapp/common/image/bg-white-lock.png | Bin 2816 -> 0 bytes .../src/main/webapp/common/image/bg-white.png | Bin 2816 -> 0 bytes .../webapp/common/image/checkbox-radio/License.txt | 362 - .../checkbox-radio/checkbox-checked-disabled.png | Bin 3087 -> 0 bytes .../image/checkbox-radio/checkbox-checked.png | Bin 3053 -> 0 bytes .../image/checkbox-radio/checkbox-disabled.png | Bin 2830 -> 0 bytes .../common/image/checkbox-radio/checkbox-hover.png | Bin 2835 -> 0 bytes .../common/image/checkbox-radio/checkbox-init.png | Bin 2833 -> 0 bytes .../checkbox-radio/radio-checked-disabled.png | Bin 2993 -> 0 bytes .../common/image/checkbox-radio/radio-checked.png | Bin 3235 -> 0 bytes .../common/image/checkbox-radio/radio-disabled.png | Bin 3045 -> 0 bytes .../common/image/checkbox-radio/radio-hover.png | Bin 3068 -> 0 bytes .../common/image/checkbox-radio/radio-init.png | Bin 3036 -> 0 bytes .../src/main/webapp/common/image/chrome_icon.png | Bin 3856 -> 0 bytes .../main/webapp/common/image/collapse_arrow.png | Bin 1174 -> 0 bytes .../common/image/datatable-row-openclose.png | Bin 299 -> 0 bytes .../src/main/webapp/common/image/delete.png | Bin 1100 -> 0 bytes .../src/main/webapp/common/image/edit.png | Bin 3045 -> 0 bytes .../src/main/webapp/common/image/empty.png | Bin 2790 -> 0 bytes .../src/main/webapp/common/image/expand_arrow.png | Bin 1182 -> 0 bytes .../src/main/webapp/common/image/firefox_icon.png | Bin 3759 -> 0 bytes .../common/image/hor-menu-search-close-white.png | Bin 191 -> 0 bytes .../webapp/common/image/hor-menu-search-close.png | Bin 162 -> 0 bytes .../main/webapp/common/image/hor-menu-search.jpg | Bin 306 -> 0 bytes .../main/webapp/common/image/hor-menu-search.png | Bin 299 -> 0 bytes .../main/webapp/common/image/icon-color-close.png | Bin 1031 -> 0 bytes .../src/main/webapp/common/image/icon-color.png | Bin 1240 -> 0 bytes .../src/main/webapp/common/image/icon-img-down.png | Bin 1023 -> 0 bytes .../src/main/webapp/common/image/icon-img-up.png | Bin 999 -> 0 bytes .../webapp/common/image/ideo_default_select.png | Bin 1035 -> 0 bytes .../src/main/webapp/common/image/import.png | Bin 1250 -> 0 bytes .../src/main/webapp/common/image/input-spinner.gif | Bin 1849 -> 0 bytes .../webapp/common/image/integration/License.txt | 362 - .../webapp/common/image/integration/openo_bg_1.jpg | Bin 152396 -> 0 bytes .../webapp/common/image/integration/openo_bg_2.jpg | Bin 143465 -> 0 bytes .../webapp/common/image/integration/openo_bg_3.jpg | Bin 155899 -> 0 bytes .../common/image/integration/openo_logo_black.png | Bin 27249 -> 0 bytes .../image/integration/openo_logo_pantone.png | Bin 27702 -> 0 bytes .../common/image/integration/openo_logo_white.png | Bin 26677 -> 0 bytes .../src/main/webapp/common/image/line.png | Bin 139 -> 0 bytes .../webapp/common/image/loading-spinner-grey.gif | Bin 5203 -> 0 bytes .../src/main/webapp/common/image/loading.gif | Bin 2906 -> 0 bytes .../main/webapp/common/image/mainpage/License.txt | 362 - .../main/webapp/common/image/mainpage/icon/1.png | Bin 4053 -> 0 bytes .../main/webapp/common/image/mainpage/icon/2.png | Bin 3397 -> 0 bytes .../main/webapp/common/image/mainpage/icon/3.png | Bin 3948 -> 0 bytes .../main/webapp/common/image/mainpage/icon/4.png | Bin 3927 -> 0 bytes .../main/webapp/common/image/mainpage/icon/5.png | Bin 3185 -> 0 bytes .../main/webapp/common/image/mainpage/icon/6.png | Bin 3361 -> 0 bytes .../src/main/webapp/common/image/mainpage/logo.png | Bin 16103 -> 0 bytes .../main/webapp/common/image/mainpage/pic/1.png | Bin 179653 -> 0 bytes .../main/webapp/common/image/mainpage/pic/2.png | Bin 64321 -> 0 bytes .../main/webapp/common/image/mainpage/pic/3.png | Bin 65383 -> 0 bytes .../main/webapp/common/image/mainpage/pic/4.png | Bin 105028 -> 0 bytes .../main/webapp/common/image/mainpage/pic/5.png | Bin 143644 -> 0 bytes .../src/main/webapp/common/image/menu-toggler.png | Bin 948 -> 0 bytes .../src/main/webapp/common/image/openo.png | Bin 49007 -> 0 bytes .../src/main/webapp/common/image/overlay-icon.png | Bin 514 -> 0 bytes .../src/main/webapp/common/image/page_l.png | Bin 1066 -> 0 bytes .../webapp/common/image/page_left_disabled.png | Bin 1066 -> 0 bytes .../src/main/webapp/common/image/page_r.png | Bin 1070 -> 0 bytes .../common/image/portlet-collapse-icon-white.png | Bin 240 -> 0 bytes .../webapp/common/image/portlet-collapse-icon.png | Bin 269 -> 0 bytes .../common/image/portlet-config-icon-white.png | Bin 320 -> 0 bytes .../webapp/common/image/portlet-config-icon.png | Bin 330 -> 0 bytes .../common/image/portlet-expand-icon-white.png | Bin 239 -> 0 bytes .../webapp/common/image/portlet-expand-icon.png | Bin 256 -> 0 bytes .../common/image/portlet-reload-icon-white.png | Bin 324 -> 0 bytes .../webapp/common/image/portlet-reload-icon.png | Bin 345 -> 0 bytes .../common/image/portlet-remove-icon-white.png | Bin 260 -> 0 bytes .../webapp/common/image/portlet-remove-icon.png | Bin 312 -> 0 bytes .../main/webapp/common/image/remove-icon-small.png | Bin 193 -> 0 bytes .../main/webapp/common/image/reset_password.png | Bin 3516 -> 0 bytes .../main/webapp/common/image/ressvgs/License.txt | 362 - .../src/main/webapp/common/image/ressvgs/NFV.svg | 58 - .../src/main/webapp/common/image/ressvgs/NS.svg | 29 - .../src/main/webapp/common/image/ressvgs/VDU.svg | 26 - .../src/main/webapp/common/image/ressvgs/VIM.svg | 19 - .../src/main/webapp/common/image/ressvgs/VNF.svg | 14 - .../src/main/webapp/common/image/ressvgs/VNFC.svg | 20 - .../src/main/webapp/common/image/ressvgs/VNFM.svg | 17 - .../main/webapp/common/image/ressvgs/breakLink.svg | 9 - .../main/webapp/common/image/ressvgs/common_dc.svg | 72 - .../webapp/common/image/ressvgs/common_ncd.svg | 40 - .../main/webapp/common/image/ressvgs/common_sc.svg | 71 - .../src/main/webapp/common/image/ressvgs/host.svg | 14 - .../common/image/ressvgs/it-Virtual network.svg | 186 - .../webapp/common/image/ressvgs/it-app-bind.svg | 58 - .../webapp/common/image/ressvgs/it-app-dns.svg | 58 - .../webapp/common/image/ressvgs/it-app-ems.svg | 75 - .../common/image/ressvgs/it-app-mediator.svg | 78 - .../common/image/ressvgs/it-app-netnumen.svg | 57 - .../webapp/common/image/ressvgs/it-app-ntp.svg | 61 - .../webapp/common/image/ressvgs/it-app-ota.svg | 58 - .../webapp/common/image/ressvgs/it-app-tomcat.svg | 52 - .../webapp/common/image/ressvgs/it-app-trend.svg | 58 - .../webapp/common/image/ressvgs/it-app-tsm.svg | 62 - .../common/image/ressvgs/it-app-weblogic.svg | 58 - .../main/webapp/common/image/ressvgs/it-app.svg | 62 - .../common/image/ressvgs/it-cluster-hacmp.svg | 54 - .../webapp/common/image/ressvgs/it-cluster-nec.svg | 55 - .../webapp/common/image/ressvgs/it-cluster-ns.svg | 58 - .../webapp/common/image/ressvgs/it-cluster-sg.svg | 65 - .../webapp/common/image/ressvgs/it-cluster-vcs.svg | 78 - .../webapp/common/image/ressvgs/it-cluster.svg | 77 - .../common/image/ressvgs/it-database-mssql.svg | 77 - .../common/image/ressvgs/it-database-oracle.svg | 77 - .../common/image/ressvgs/it-database-sybase.svg | 71 - .../common/image/ressvgs/it-database-sybaseiq.svg | 51 - .../webapp/common/image/ressvgs/it-database.svg | 71 - .../common/image/ressvgs/it-diskraid-dellmd.svg | 199 - .../common/image/ressvgs/it-diskraid-emc.svg | 198 - .../common/image/ressvgs/it-diskraid-eternus.svg | 195 - .../common/image/ressvgs/it-diskraid-fujitsu.svg | 215 - .../common/image/ressvgs/it-diskraid-hds.svg | 103 - .../common/image/ressvgs/it-diskraid-hpaio.svg | 203 - .../common/image/ressvgs/it-diskraid-hpeva.svg | 207 - .../common/image/ressvgs/it-diskraid-hpmsa.svg | 203 - .../common/image/ressvgs/it-diskraid-ibm.svg | 203 - .../common/image/ressvgs/it-diskraid-ibmsm.svg | 95 - .../common/image/ressvgs/it-diskraid-macrosan.svg | 28 - .../common/image/ressvgs/it-diskraid-netapp.svg | 146 - .../common/image/ressvgs/it-diskraid-sun.svg | 146 - .../common/image/ressvgs/it-diskraid-zte.svg | 146 - .../image/ressvgs/it-firewall-checkpoint.svg | 95 - .../common/image/ressvgs/it-firewall-cisco.svg | 95 - .../common/image/ressvgs/it-firewall-cisco2.svg | 95 - .../common/image/ressvgs/it-firewall-h3c.svg | 116 - .../common/image/ressvgs/it-firewall-juniper.svg | 109 - .../common/image/ressvgs/it-firewall-neteye.svg | 120 - .../common/image/ressvgs/it-firewall-zte.svg | 127 - .../common/image/ressvgs/it-firewall-ztemf.svg | 127 - .../common/image/ressvgs/it-firewall-zteutm.svg | 128 - .../webapp/common/image/ressvgs/it-firewall.svg | 102 - .../main/webapp/common/image/ressvgs/it-gather.svg | 295 - .../webapp/common/image/ressvgs/it-group-dev.svg | 121 - .../webapp/common/image/ressvgs/it-ibp-ibp2000.svg | 133 - .../main/webapp/common/image/ressvgs/it-ibp.svg | 128 - .../main/webapp/common/image/ressvgs/it-net.svg | 105 - .../common/image/ressvgs/it-other-alteon.svg | 19 - .../common/image/ressvgs/it-other-appdirector.svg | 25 - .../common/image/ressvgs/it-other-atca-lb10.svg | 121 - .../common/image/ressvgs/it-other-cisco-ucs.svg | 121 - .../webapp/common/image/ressvgs/it-other-dcs.svg | 137 - .../webapp/common/image/ressvgs/it-other-delta.svg | 129 - .../webapp/common/image/ressvgs/it-other-dp.svg | 20 - .../common/image/ressvgs/it-other-f5bigip.svg | 145 - .../common/image/ressvgs/it-other-f5bigip2.svg | 161 - .../webapp/common/image/ressvgs/it-other-gbe2c.svg | 166 - .../webapp/common/image/ressvgs/it-other-hpblc.svg | 174 - .../common/image/ressvgs/it-other-ibm-blade.svg | 156 - .../webapp/common/image/ressvgs/it-other-imm.svg | 160 - .../common/image/ressvgs/it-other-secfox.svg | 20 - .../common/image/ressvgs/it-other-secsis.svg | 30 - .../webapp/common/image/ressvgs/it-other-segw.svg | 153 - .../webapp/common/image/ressvgs/it-other-vc.svg | 173 - .../common/image/ressvgs/it-other-zteatca.svg | 191 - .../common/image/ressvgs/it-other-zteips.svg | 53 - .../common/image/ressvgs/it-other-ztepower.svg | 223 - .../common/image/ressvgs/it-other-ztesgs.svg | 54 - .../common/image/ressvgs/it-other-zxsdr-nt.svg | 186 - .../main/webapp/common/image/ressvgs/it-other.svg | 110 - .../common/image/ressvgs/it-router-cisco.svg | 186 - .../common/image/ressvgs/it-router-juniper.svg | 170 - .../webapp/common/image/ressvgs/it-router-zte.svg | 178 - .../main/webapp/common/image/ressvgs/it-router.svg | 175 - .../common/image/ressvgs/it-sdn-controller.svg | 176 - .../webapp/common/image/ressvgs/it-sdn-host.svg | 167 - .../webapp/common/image/ressvgs/it-sdn-switch.svg | 167 - .../webapp/common/image/ressvgs/it-sdn-vnet.svg | 167 - .../webapp/common/image/ressvgs/it-server-aix.svg | 170 - .../webapp/common/image/ressvgs/it-server-hpux.svg | 181 - .../common/image/ressvgs/it-server-klinux.svg | 191 - .../common/image/ressvgs/it-server-redhat.svg | 171 - .../common/image/ressvgs/it-server-solaris.svg | 173 - .../webapp/common/image/ressvgs/it-server-suse.svg | 185 - .../common/image/ressvgs/it-server-windows.svg | 176 - .../webapp/common/image/ressvgs/it-server-zxve.svg | 179 - .../main/webapp/common/image/ressvgs/it-server.svg | 195 - .../common/image/ressvgs/it-storage-cisco-mds.svg | 177 - .../common/image/ressvgs/it-storage-md3000.svg | 168 - .../common/image/ressvgs/it-storage-netvault.svg | 186 - .../webapp/common/image/ressvgs/it-storage-ops.svg | 186 - .../image/ressvgs/it-storage-sanswitch-brocade.svg | 187 - .../image/ressvgs/it-storage-sanswitch-hp.svg | 187 - .../image/ressvgs/it-storage-sanswitch-zte.svg | 13 - .../webapp/common/image/ressvgs/it-storage.svg | 183 - .../webapp/common/image/ressvgs/it-switch-at.svg | 201 - .../common/image/ressvgs/it-switch-cisco.svg | 176 - .../webapp/common/image/ressvgs/it-switch-h3c.svg | 31 - .../common/image/ressvgs/it-switch-juniper.svg | 176 - .../webapp/common/image/ressvgs/it-switch-zte.svg | 177 - .../main/webapp/common/image/ressvgs/it-switch.svg | 182 - .../common/image/ressvgs/it-tapelib-hpmsl.svg | 176 - .../common/image/ressvgs/it-tapelib-ibmts.svg | 183 - .../common/image/ressvgs/it-tapelib-sunts.svg | 196 - .../src/main/webapp/common/image/ressvgs/it.svg | 111 - .../webapp/common/image/ressvgs/networkTree.svg | 349 - .../src/main/webapp/common/image/ressvgs/new.svg | 7 - .../common/image/ressvgs/popupmenufollower.svg | 15 - .../webapp/common/image/ressvgs/resourceType.svg | 211 - .../src/main/webapp/common/image/ressvgs/stop.svg | 18 - .../main/webapp/common/image/ressvgs/tree-icon.svg | 291 - .../webapp/common/image/ressvgs/uep-moc-root.svg | 355 - .../common/image/ressvgs/uep-moc-uca-public.svg | 329 - .../image/ressvgs/uep-topo-commongroup20x20.svg | 278 - .../common/image/ressvgs/uep-topo-group20x20.svg | 277 - .../webapp/common/image/ressvgs/uep-topo-root.svg | 259 - .../image/ressvgs/uep-topo-undefinedgroup20x20.svg | 342 - .../common/image/ressvgs/uep-topo-virtual20x20.svg | 355 - .../image/ressvgs/uep-topo-wsf-disconnected8x8.svg | 37 - .../common/image/ressvgs/usf-amf-try-activate.svg | 44 - .../image/ressvgs/usf-amf-try-active-wait.svg | 40 - .../main/webapp/common/image/search-icon-blue.png | Bin 318 -> 0 bytes .../main/webapp/common/image/search-icon-brown.png | Bin 357 -> 0 bytes .../webapp/common/image/search-icon-purple.png | Bin 318 -> 0 bytes .../main/webapp/common/image/search-icon-red.png | Bin 318 -> 0 bytes .../main/webapp/common/image/search-icon-white.png | Bin 317 -> 0 bytes .../src/main/webapp/common/image/search-icon.png | Bin 1132 -> 0 bytes .../src/main/webapp/common/image/select-caret.png | Bin 1027 -> 0 bytes .../common/image/sidebar-menu-arrow-right.png | Bin 247 -> 0 bytes .../webapp/common/image/sidebar-menu-arrow-rtl.png | Bin 247 -> 0 bytes .../webapp/common/image/sidebar-menu-arrow.png | Bin 3007 -> 0 bytes .../common/image/sidebar-search-close-blue.png | Bin 163 -> 0 bytes .../common/image/sidebar-search-close-brown.png | Bin 163 -> 0 bytes .../common/image/sidebar-search-close-light.png | Bin 162 -> 0 bytes .../common/image/sidebar-search-close-purple.png | Bin 163 -> 0 bytes .../webapp/common/image/sidebar-search-close.png | Bin 163 -> 0 bytes .../webapp/common/image/sidebar-toggler-grey.jpg | Bin 14801 -> 0 bytes .../webapp/common/image/sidebar-toggler-light.jpg | Bin 538 -> 0 bytes .../src/main/webapp/common/image/sort_asc.png | Bin 1118 -> 0 bytes .../src/main/webapp/common/image/sort_both.png | Bin 1136 -> 0 bytes .../src/main/webapp/common/image/sort_desc.png | Bin 1127 -> 0 bytes .../webapp/common/image/syncfusion-icons-white.png | Bin 5550 -> 0 bytes .../src/main/webapp/common/image/user.png | Bin 3100 -> 0 bytes .../src/main/webapp/common/js/Main2moreMenu.js | 17 - .../src/main/webapp/common/js/core/const.js | 46 - .../src/main/webapp/common/js/core/hk.min.js | 819 - .../main/webapp/common/js/core/load_menuList.js | 70 - .../main/webapp/common/js/core/openoFrameWork.js | 3701 -- .../src/main/webapp/common/js/core/pym.min.js | 16 - .../src/main/webapp/common/js/fm_light.js | 169 - .../webapp/common/js/international/loadi18n.js | 52 - portal-common/src/main/webapp/common/js/json2.js | 341 - portal-common/src/main/webapp/common/js/login.js | 158 - .../src/main/webapp/common/js/mainpage/about.js | 142 - .../webapp/common/js/mainpage/load_mainPage.js | 95 - .../src/main/webapp/common/js/moreOperation.js | 166 - .../main/webapp/common/js/openotopo/openotopo.js | 314 - .../webapp/common/js/openotopo/openotopo.min.js | 32 - .../src/main/webapp/common/js/security/aes.js | 44 - .../webapp/common/js/security/framework-util.js | 38 - .../src/main/webapp/common/js/security/security.js | 127 - portal-common/src/main/webapp/common/js/tools.js | 1021 - .../src/main/webapp/common/json/License.txt | 362 - .../src/main/webapp/common/json/main_page.json | 96 - .../src/main/webapp/common/json/menu_list.json | 119 - portal-common/src/main/webapp/common/login.html | 111 - .../common/thirdparty/animate/animate.min.css | 6 - .../main/webapp/common/thirdparty/avalon/avalon.js | 5819 -- .../common/thirdparty/avalon/avalon.modern.js | 4935 -- .../backstretch/jquery.backstretch.min.js | 4 - .../webapp/common/thirdparty/bootbox/LICENSE.md | 23 - .../webapp/common/thirdparty/bootbox/README.md | 91 - .../common/thirdparty/bootbox/bootbox.min.js | 6 - .../daterangepicker-bs3.css | 319 - .../bootstrap-daterangepicker/daterangepicker.js | 1257 - .../thirdparty/bootstrap-daterangepicker/moment.js | 2808 - .../bootstrap-daterangepicker/moment.min.js | 6 - .../bootstrap-fileinput/css/fileinput.min.css | 11 - .../bootstrap-fileinput/img/loading-sm.gif | Bin 2670 -> 0 bytes .../thirdparty/bootstrap-fileinput/img/loading.gif | Bin 847 -> 0 bytes .../bootstrap-fileinput/js/fileinput.min.js | 19 - .../js/fileinput_locale_LANG.js | 45 - .../bootstrap-fileinput/js/fileinput_locale_zh.js | 49 - .../bootstrap-growl/bootstrap-growl.min.js | 2 - .../bootstrap-growl/jquery.bootstrap-growl.min.js | 1 - .../thirdparty/bootstrap-hover-dropdown/LICENSE | 24 - .../thirdparty/bootstrap-hover-dropdown/README.md | 122 - .../bootstrap-hover-dropdown.js | 14 - .../bootstrap-hover-dropdown.min.js | 13 - .../css/bootstrap-modal-bs3patch.css | 51 - .../bootstrap-modal/css/bootstrap-modal.css | 214 - .../thirdparty/bootstrap-modal/img/ajax-loader.gif | Bin 1737 -> 0 bytes .../bootstrap-modal/js/bootstrap-modal.js | 378 - .../bootstrap-modal/js/bootstrap-modalmanager.js | 423 - .../bootstrap-select/bootstrap-select.min.css | 7 - .../bootstrap-select/bootstrap-select.min.js | 8 - .../bootstrap-table-filter-control.min.js | 7 - .../thirdparty/bootstrap-table/bootstrap-table.css | 313 - .../thirdparty/bootstrap-table/bootstrap-table.js | 3062 -- .../bootstrap-table/bootstrap-table.min.css | 1 - .../bootstrap-table/bootstrap-table.min.js | 8 - .../thirdparty/bootstrap-table/bootstrap.min.css | 7 - .../jquery.bootstrap.wizard.min.js | 20 - .../thirdparty/bootstrap/css/bootstrap-dt.css | 5804 -- .../thirdparty/bootstrap/css/bootstrap.min.css | 7 - .../fonts/glyphicons-halflings-regular.eot | Bin 20127 -> 0 bytes .../fonts/glyphicons-halflings-regular.svg | 288 - .../fonts/glyphicons-halflings-regular.ttf | Bin 45404 -> 0 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 23424 -> 0 bytes .../fonts/glyphicons-halflings-regular.woff2 | Bin 18028 -> 0 bytes .../common/thirdparty/bootstrap/js/bootstrap.js | 1951 - .../thirdparty/bootstrap/js/bootstrap.min.js | 6 - .../bootstrap/js/bootstrap2-typeahead.min.js | 21 - .../main/webapp/common/thirdparty/cometd/cometd.js | 3045 -- .../thirdparty/cometd/cometd/AckExtension.js | 112 - .../thirdparty/cometd/cometd/ReloadExtension.js | 234 - .../thirdparty/cometd/cometd/TimeStampExtension.js | 42 - .../thirdparty/cometd/cometd/TimeSyncExtension.js | 216 - .../thirdparty/cometd/jquery/jquery.cometd-ack.js | 34 - .../cometd/jquery/jquery.cometd-reload.js | 42 - .../cometd/jquery/jquery.cometd-timestamp.js | 34 - .../cometd/jquery/jquery.cometd-timesync.js | 34 - .../thirdparty/cometd/jquery/jquery.cometd.js | 139 - .../common/thirdparty/data-tables/DT_bootstrap.css | 240 - .../common/thirdparty/data-tables/DT_bootstrap.js | 363 - .../common/thirdparty/data-tables/DataTableICT.js | 1459 - .../thirdparty/data-tables/DataTableSmartClient.js | 1215 - .../data-tables/DataTableSmartClientApp.js | 1312 - .../data-tables/app-test-i18n-datatable-zh-CN.json | 51 - .../app-universal-i18n-datatable-en-US.json | 89 - .../app-universal-i18n-datatable-zh-CN.json | 90 - .../common/thirdparty/data-tables/dataTable.html | 155 - .../data-tables/dataTables.bootstrap.css | 331 - .../data-tables/images/loading-spinner-grey.gif | Bin 5203 -> 0 bytes .../thirdparty/data-tables/images/sort_asc.png | Bin 1118 -> 0 bytes .../thirdparty/data-tables/images/sort_both.png | Bin 1136 -> 0 bytes .../thirdparty/data-tables/images/sort_desc.png | Bin 1127 -> 0 bytes .../data-tables/jquery.dataTables-1.9.4.js | 12101 ---- .../data-tables/jquery.dataTables-1.9.4.min.js | 155 - .../thirdparty/data-tables/jquery.dataTables.js | 15268 ------ .../data-tables/jquery.dataTables.min.css | 1 - .../data-tables/jquery.dataTables.min.js | 166 - .../thirdparty/data-tables/style-datatable.css | 154 - .../common/thirdparty/echarts/echarts-all.js | 50 - .../webapp/common/thirdparty/echarts/echarts.js | 54502 ------------------- .../common/thirdparty/fakeLoader/fakeLoader.css | 382 - .../common/thirdparty/fakeLoader/fakeLoader.min.js | 174 - .../thirdparty/font-awesome/css/font-awesome.css | 1672 - .../font-awesome/css/font-awesome.min.css | 4 - .../thirdparty/font-awesome/fonts/FontAwesome.otf | Bin 85908 -> 0 bytes .../font-awesome/fonts/fontawesome-webfont.eot | Bin 56006 -> 0 bytes .../font-awesome/fonts/fontawesome-webfont.svg | 520 - .../font-awesome/fonts/fontawesome-webfont.ttf | Bin 112160 -> 0 bytes .../font-awesome/fonts/fontawesome-webfont.woff | Bin 65452 -> 0 bytes .../font-awesome/less/bordered-pulled.less | 16 - .../common/thirdparty/font-awesome/less/core.less | 11 - .../thirdparty/font-awesome/less/fixed-width.less | 6 - .../thirdparty/font-awesome/less/font-awesome.less | 17 - .../common/thirdparty/font-awesome/less/icons.less | 552 - .../thirdparty/font-awesome/less/larger.less | 13 - .../common/thirdparty/font-awesome/less/list.less | 19 - .../thirdparty/font-awesome/less/mixins.less | 25 - .../common/thirdparty/font-awesome/less/path.less | 14 - .../font-awesome/less/rotated-flipped.less | 20 - .../thirdparty/font-awesome/less/spinning.less | 29 - .../thirdparty/font-awesome/less/stacked.less | 20 - .../thirdparty/font-awesome/less/variables.less | 561 - .../font-awesome/scss/_bordered-pulled.scss | 16 - .../common/thirdparty/font-awesome/scss/_core.scss | 11 - .../thirdparty/font-awesome/scss/_fixed-width.scss | 6 - .../thirdparty/font-awesome/scss/_icons.scss | 552 - .../thirdparty/font-awesome/scss/_larger.scss | 13 - .../common/thirdparty/font-awesome/scss/_list.scss | 19 - .../thirdparty/font-awesome/scss/_mixins.scss | 25 - .../common/thirdparty/font-awesome/scss/_path.scss | 14 - .../font-awesome/scss/_rotated-flipped.scss | 20 - .../thirdparty/font-awesome/scss/_spinning.scss | 29 - .../thirdparty/font-awesome/scss/_stacked.scss | 20 - .../thirdparty/font-awesome/scss/_variables.scss | 561 - .../thirdparty/font-awesome/scss/font-awesome.scss | 17 - .../webapp/common/thirdparty/freewall/freewall.js | 1306 - .../webapp/common/thirdparty/icheck/bower.json | 42 - .../common/thirdparty/icheck/demo/css/Thumbs.db | Bin 5120 -> 0 bytes .../common/thirdparty/icheck/demo/css/banner.jpg | Bin 32768 -> 0 bytes .../common/thirdparty/icheck/demo/css/custom.css | 261 - .../common/thirdparty/icheck/demo/css/custom.styl | 1191 - .../common/thirdparty/icheck/demo/css/icheck.png | Bin 2382 -> 0 bytes .../thirdparty/icheck/demo/css/ie/arrow-bottom.png | Bin 184 -> 0 bytes .../thirdparty/icheck/demo/css/ie/arrow-top.png | Bin 175 -> 0 bytes .../thirdparty/icheck/demo/css/ie/header-line.png | Bin 611 -> 0 bytes .../thirdparty/icheck/demo/css/ie/icon-fork.png | Bin 213 -> 0 bytes .../thirdparty/icheck/demo/css/ie/icon-github.png | Bin 634 -> 0 bytes .../thirdparty/icheck/demo/css/ie/icon-lab.png | Bin 683 -> 0 bytes .../thirdparty/icheck/demo/css/ie/icon-options.png | Bin 666 -> 0 bytes .../thirdparty/icheck/demo/css/ie/icon-star.png | Bin 348 -> 0 bytes .../thirdparty/icheck/demo/css/montserrat-bold.eot | Bin 13099 -> 0 bytes .../thirdparty/icheck/demo/css/montserrat-bold.svg | 1490 - .../thirdparty/icheck/demo/css/montserrat-bold.ttf | Bin 32768 -> 0 bytes .../icheck/demo/css/montserrat-bold.woff | Bin 15736 -> 0 bytes .../icheck/demo/css/montserrat-regular.eot | Bin 13114 -> 0 bytes .../icheck/demo/css/montserrat-regular.svg | 1365 - .../icheck/demo/css/montserrat-regular.ttf | Bin 32768 -> 0 bytes .../icheck/demo/css/montserrat-regular.woff | Bin 15692 -> 0 bytes .../thirdparty/icheck/demo/css/normalize.css | 527 - .../common/thirdparty/icheck/demo/index.html | 1544 - .../common/thirdparty/icheck/demo/js/custom.js | 109 - .../common/thirdparty/icheck/demo/js/custom.min.js | 5 - .../common/thirdparty/icheck/demo/js/jquery.js | 4 - .../common/thirdparty/icheck/demo/js/zepto.js | 41 - .../common/thirdparty/icheck/icheck.jquery.json | 48 - .../main/webapp/common/thirdparty/icheck/icheck.js | 509 - .../webapp/common/thirdparty/icheck/icheck.min.js | 11 - .../webapp/common/thirdparty/icheck/skins/all.css | 61 - .../common/thirdparty/icheck/skins/flat/_all.css | 530 - .../common/thirdparty/icheck/skins/flat/aero.css | 53 - .../common/thirdparty/icheck/skins/flat/aero.png | Bin 1520 -> 0 bytes .../thirdparty/icheck/skins/flat/aero@2x.png | Bin 3218 -> 0 bytes .../common/thirdparty/icheck/skins/flat/blue.css | 53 - .../common/thirdparty/icheck/skins/flat/blue.png | Bin 1518 -> 0 bytes .../thirdparty/icheck/skins/flat/blue@2x.png | Bin 3217 -> 0 bytes .../common/thirdparty/icheck/skins/flat/flat.css | 53 - .../common/thirdparty/icheck/skins/flat/flat.png | Bin 1515 -> 0 bytes .../thirdparty/icheck/skins/flat/flat@2x.png | Bin 3217 -> 0 bytes .../common/thirdparty/icheck/skins/flat/green.css | 53 - .../common/thirdparty/icheck/skins/flat/green.png | Bin 1444 -> 0 bytes .../thirdparty/icheck/skins/flat/green@2x.png | Bin 3117 -> 0 bytes .../common/thirdparty/icheck/skins/flat/grey.css | 53 - .../common/thirdparty/icheck/skins/flat/grey.png | Bin 1516 -> 0 bytes .../thirdparty/icheck/skins/flat/grey@2x.png | Bin 3217 -> 0 bytes .../common/thirdparty/icheck/skins/flat/orange.css | 53 - .../common/thirdparty/icheck/skins/flat/orange.png | Bin 1518 -> 0 bytes .../thirdparty/icheck/skins/flat/orange@2x.png | Bin 3275 -> 0 bytes .../common/thirdparty/icheck/skins/flat/pink.css | 53 - .../common/thirdparty/icheck/skins/flat/pink.png | Bin 1522 -> 0 bytes .../thirdparty/icheck/skins/flat/pink@2x.png | Bin 3218 -> 0 bytes .../common/thirdparty/icheck/skins/flat/purple.css | 53 - .../common/thirdparty/icheck/skins/flat/purple.png | Bin 1519 -> 0 bytes .../thirdparty/icheck/skins/flat/purple@2x.png | Bin 3218 -> 0 bytes .../common/thirdparty/icheck/skins/flat/red.css | 53 - .../common/thirdparty/icheck/skins/flat/red.png | Bin 1516 -> 0 bytes .../common/thirdparty/icheck/skins/flat/red@2x.png | Bin 3276 -> 0 bytes .../common/thirdparty/icheck/skins/flat/yellow.css | 53 - .../common/thirdparty/icheck/skins/flat/yellow.png | Bin 1516 -> 0 bytes .../thirdparty/icheck/skins/flat/yellow@2x.png | Bin 3216 -> 0 bytes .../thirdparty/icheck/skins/futurico/futurico.css | 53 - .../thirdparty/icheck/skins/futurico/futurico.png | Bin 1734 -> 0 bytes .../icheck/skins/futurico/futurico@2x.png | Bin 3446 -> 0 bytes .../common/thirdparty/icheck/skins/line/Thumbs.db | Bin 4608 -> 0 bytes .../common/thirdparty/icheck/skins/line/_all.css | 710 - .../common/thirdparty/icheck/skins/line/aero.css | 71 - .../common/thirdparty/icheck/skins/line/blue.css | 71 - .../common/thirdparty/icheck/skins/line/green.css | 71 - .../common/thirdparty/icheck/skins/line/grey.css | 71 - .../common/thirdparty/icheck/skins/line/line.css | 71 - .../common/thirdparty/icheck/skins/line/line.png | Bin 588 -> 0 bytes .../thirdparty/icheck/skins/line/line@2x.png | Bin 1073 -> 0 bytes .../common/thirdparty/icheck/skins/line/orange.css | 71 - .../common/thirdparty/icheck/skins/line/pink.css | 71 - .../common/thirdparty/icheck/skins/line/purple.css | 71 - .../common/thirdparty/icheck/skins/line/red.css | 71 - .../common/thirdparty/icheck/skins/line/yellow.css | 71 - .../thirdparty/icheck/skins/minimal/_all.css | 590 - .../thirdparty/icheck/skins/minimal/aero.css | 59 - .../thirdparty/icheck/skins/minimal/aero.png | Bin 1151 -> 0 bytes .../thirdparty/icheck/skins/minimal/aero@2x.png | Bin 1409 -> 0 bytes .../thirdparty/icheck/skins/minimal/blue.css | 59 - .../thirdparty/icheck/skins/minimal/blue.png | Bin 1132 -> 0 bytes .../thirdparty/icheck/skins/minimal/blue@2x.png | Bin 1410 -> 0 bytes .../thirdparty/icheck/skins/minimal/green.css | 59 - .../thirdparty/icheck/skins/minimal/green.png | Bin 1143 -> 0 bytes .../thirdparty/icheck/skins/minimal/green@2x.png | Bin 1408 -> 0 bytes .../thirdparty/icheck/skins/minimal/grey.css | 59 - .../thirdparty/icheck/skins/minimal/grey.png | Bin 1142 -> 0 bytes .../thirdparty/icheck/skins/minimal/grey@2x.png | Bin 1407 -> 0 bytes .../thirdparty/icheck/skins/minimal/minimal.css | 59 - .../thirdparty/icheck/skins/minimal/minimal.png | Bin 1114 -> 0 bytes .../thirdparty/icheck/skins/minimal/minimal@2x.png | Bin 1410 -> 0 bytes .../thirdparty/icheck/skins/minimal/orange.css | 59 - .../thirdparty/icheck/skins/minimal/orange.png | Bin 1139 -> 0 bytes .../thirdparty/icheck/skins/minimal/orange@2x.png | Bin 1407 -> 0 bytes .../thirdparty/icheck/skins/minimal/pink.css | 59 - .../thirdparty/icheck/skins/minimal/pink.png | Bin 1150 -> 0 bytes .../thirdparty/icheck/skins/minimal/pink@2x.png | Bin 1409 -> 0 bytes .../thirdparty/icheck/skins/minimal/purple.css | 59 - .../thirdparty/icheck/skins/minimal/purple.png | Bin 1132 -> 0 bytes .../thirdparty/icheck/skins/minimal/purple@2x.png | Bin 1409 -> 0 bytes .../common/thirdparty/icheck/skins/minimal/red.css | 59 - .../common/thirdparty/icheck/skins/minimal/red.png | Bin 1130 -> 0 bytes .../thirdparty/icheck/skins/minimal/red@2x.png | Bin 1410 -> 0 bytes .../thirdparty/icheck/skins/minimal/yellow.css | 59 - .../thirdparty/icheck/skins/minimal/yellow.png | Bin 1135 -> 0 bytes .../thirdparty/icheck/skins/minimal/yellow@2x.png | Bin 1406 -> 0 bytes .../thirdparty/icheck/skins/polaris/polaris.css | 59 - .../thirdparty/icheck/skins/polaris/polaris.png | Bin 6401 -> 0 bytes .../thirdparty/icheck/skins/polaris/polaris@2x.png | Bin 32768 -> 0 bytes .../thirdparty/icheck/skins/square/Thumbs.db | Bin 32768 -> 0 bytes .../common/thirdparty/icheck/skins/square/_all.css | 590 - .../common/thirdparty/icheck/skins/square/aero.css | 59 - .../common/thirdparty/icheck/skins/square/aero.png | Bin 4436 -> 0 bytes .../thirdparty/icheck/skins/square/aero@2x.png | Bin 4455 -> 0 bytes .../common/thirdparty/icheck/skins/square/blue.css | 59 - .../common/thirdparty/icheck/skins/square/blue.png | Bin 2185 -> 0 bytes .../thirdparty/icheck/skins/square/blue@2x.png | Bin 4485 -> 0 bytes .../thirdparty/icheck/skins/square/green.css | 59 - .../thirdparty/icheck/skins/square/green.png | Bin 2193 -> 0 bytes .../thirdparty/icheck/skins/square/green@2x.png | Bin 4498 -> 0 bytes .../common/thirdparty/icheck/skins/square/grey.css | 59 - .../common/thirdparty/icheck/skins/square/grey.png | Bin 2186 -> 0 bytes .../thirdparty/icheck/skins/square/grey@2x.png | Bin 4483 -> 0 bytes .../thirdparty/icheck/skins/square/orange.css | 59 - .../thirdparty/icheck/skins/square/orange.png | Bin 2181 -> 0 bytes .../thirdparty/icheck/skins/square/orange@2x.png | Bin 4474 -> 0 bytes .../common/thirdparty/icheck/skins/square/pink.css | 59 - .../common/thirdparty/icheck/skins/square/pink.png | Bin 2189 -> 0 bytes .../thirdparty/icheck/skins/square/pink@2x.png | Bin 4479 -> 0 bytes .../thirdparty/icheck/skins/square/purple.css | 59 - .../thirdparty/icheck/skins/square/purple.png | Bin 2188 -> 0 bytes .../thirdparty/icheck/skins/square/purple@2x.png | Bin 4501 -> 0 bytes .../common/thirdparty/icheck/skins/square/red.css | 59 - .../common/thirdparty/icheck/skins/square/red.png | Bin 2190 -> 0 bytes .../thirdparty/icheck/skins/square/red@2x.png | Bin 4490 -> 0 bytes .../thirdparty/icheck/skins/square/square.css | 59 - .../thirdparty/icheck/skins/square/square.png | Bin 2175 -> 0 bytes .../thirdparty/icheck/skins/square/square@2x.png | Bin 4478 -> 0 bytes .../thirdparty/icheck/skins/square/yellow.css | 59 - .../thirdparty/icheck/skins/square/yellow.png | Bin 2131 -> 0 bytes .../thirdparty/icheck/skins/square/yellow@2x.png | Bin 4385 -> 0 bytes .../thirdparty/jQuery UI/jquery-ui-1.12.1.min.css | 7 - .../thirdparty/jQuery UI/jquery-ui-1.12.1.min.js | 13 - .../jQuery-File-Upload/css/jquery.fileupload.css | 37 - .../thirdparty/jQuery-File-Upload/img/loading.gif | Bin 3897 -> 0 bytes .../jQuery-File-Upload/img/progressbar.gif | Bin 3323 -> 0 bytes .../jQuery-File-Upload/js/jquery.fileupload.js | 1477 - .../js/jquery.iframe-transport.js | 217 - .../js/vendor/jquery.ui.widget.js | 572 - .../jquery-blockui/jquery.blockui.min.js | 15 - .../thirdparty/jquery-cokie/jquery.cokie.min.js | 9 - .../common/thirdparty/jquery-validation/README.md | 72 - .../jquery-validation/dist/additional-methods.js | 617 - .../dist/additional-methods.min.js | 11 - .../jquery-validation/dist/jquery.validate.js | 1231 - .../jquery-validation/dist/jquery.validate.min.js | 12 - .../jquery-validation/js/additional-methods.js | 928 - .../jquery-validation/js/additional-methods.min.js | 4 - .../jquery-validation/js/jquery.validate.js | 1357 - .../jquery-validation/js/jquery.validate.min.js | 4 - .../js/localization/messages_ar.js | 33 - .../js/localization/messages_ar.min.js | 4 - .../js/localization/messages_bg.js | 33 - .../js/localization/messages_bg.min.js | 4 - .../js/localization/messages_ca.js | 33 - .../js/localization/messages_ca.min.js | 4 - .../js/localization/messages_cs.js | 33 - .../js/localization/messages_cs.min.js | 4 - .../js/localization/messages_da.js | 30 - .../js/localization/messages_da.min.js | 4 - .../js/localization/messages_de.js | 30 - .../js/localization/messages_de.min.js | 4 - .../js/localization/messages_el.js | 33 - .../js/localization/messages_el.min.js | 4 - .../js/localization/messages_es.js | 36 - .../js/localization/messages_es.min.js | 4 - .../js/localization/messages_es_AR.js | 37 - .../js/localization/messages_es_AR.min.js | 4 - .../js/localization/messages_et.js | 31 - .../js/localization/messages_et.min.js | 4 - .../js/localization/messages_eu.js | 33 - .../js/localization/messages_eu.min.js | 4 - .../js/localization/messages_fa.js | 36 - .../js/localization/messages_fa.min.js | 4 - .../js/localization/messages_fi.js | 31 - .../js/localization/messages_fi.min.js | 4 - .../js/localization/messages_fr.js | 59 - .../js/localization/messages_fr.min.js | 4 - .../js/localization/messages_gl.js | 38 - .../js/localization/messages_gl.min.js | 4 - .../js/localization/messages_he.js | 33 - .../js/localization/messages_he.min.js | 4 - .../js/localization/messages_hr.js | 33 - .../js/localization/messages_hr.min.js | 4 - .../js/localization/messages_hu.js | 32 - .../js/localization/messages_hu.min.js | 4 - .../js/localization/messages_id.js | 32 - .../js/localization/messages_id.min.js | 4 - .../js/localization/messages_is.js | 31 - .../js/localization/messages_is.min.js | 4 - .../js/localization/messages_it.js | 36 - .../js/localization/messages_it.min.js | 4 - .../js/localization/messages_ja.js | 33 - .../js/localization/messages_ja.min.js | 4 - .../js/localization/messages_ka.js | 33 - .../js/localization/messages_ka.min.js | 4 - .../js/localization/messages_kk.js | 33 - .../js/localization/messages_kk.min.js | 4 - .../js/localization/messages_ko.js | 33 - .../js/localization/messages_ko.min.js | 4 - .../js/localization/messages_lt.js | 33 - .../js/localization/messages_lt.min.js | 4 - .../js/localization/messages_lv.js | 33 - .../js/localization/messages_lv.min.js | 4 - .../js/localization/messages_my.js | 33 - .../js/localization/messages_my.min.js | 4 - .../js/localization/messages_nl.js | 43 - .../js/localization/messages_nl.min.js | 4 - .../js/localization/messages_no.js | 33 - .../js/localization/messages_no.min.js | 4 - .../js/localization/messages_pl.js | 33 - .../js/localization/messages_pl.min.js | 4 - .../js/localization/messages_pt_BR.js | 37 - .../js/localization/messages_pt_BR.min.js | 4 - .../js/localization/messages_pt_PT.js | 37 - .../js/localization/messages_pt_PT.min.js | 4 - .../js/localization/messages_ro.js | 33 - .../js/localization/messages_ro.min.js | 4 - .../js/localization/messages_ru.js | 33 - .../js/localization/messages_ru.min.js | 4 - .../js/localization/messages_si.js | 33 - .../js/localization/messages_si.min.js | 4 - .../js/localization/messages_sk.js | 30 - .../js/localization/messages_sk.min.js | 4 - .../js/localization/messages_sl.js | 33 - .../js/localization/messages_sl.min.js | 4 - .../js/localization/messages_sr.js | 33 - .../js/localization/messages_sr.min.js | 4 - .../js/localization/messages_sr_lat.js | 33 - .../js/localization/messages_sr_lat.min.js | 4 - .../js/localization/messages_sv.js | 31 - .../js/localization/messages_sv.min.js | 4 - .../js/localization/messages_th.js | 33 - .../js/localization/messages_th.min.js | 4 - .../js/localization/messages_tj.js | 33 - .../js/localization/messages_tj.min.js | 4 - .../js/localization/messages_tr.js | 33 - .../js/localization/messages_tr.min.js | 4 - .../js/localization/messages_uk.js | 33 - .../js/localization/messages_uk.min.js | 4 - .../js/localization/messages_vi.js | 33 - .../js/localization/messages_vi.min.js | 4 - .../js/localization/messages_zh.js | 33 - .../js/localization/messages_zh.min.js | 4 - .../js/localization/messages_zh_TW.js | 34 - .../js/localization/messages_zh_TW.min.js | 4 - .../js/localization/methods_de.js | 22 - .../js/localization/methods_de.min.js | 4 - .../js/localization/methods_es_CL.js | 22 - .../js/localization/methods_es_CL.min.js | 4 - .../js/localization/methods_fi.js | 22 - .../js/localization/methods_fi.min.js | 4 - .../js/localization/methods_nl.js | 19 - .../js/localization/methods_nl.min.js | 4 - .../js/localization/methods_pt.js | 19 - .../js/localization/methods_pt.min.js | 4 - .../jquery.i18n/jquery.i18n.properties-1.0.9.js | 479 - .../common/thirdparty/jquery/jquery-1.10.2.min.js | 4 - .../common/thirdparty/jquery/jquery-1.11.2.js | 10346 ---- .../common/thirdparty/jquery/jquery-1.11.2.min.js | 4 - .../common/thirdparty/jquery/jquery-1.11.2.min.map | 1 - .../common/thirdparty/jquery/jquery-1.4.4.min.js | 167 - .../common/thirdparty/jquery/jquery-2.1.3.js | 9205 ---- .../common/thirdparty/jquery/jquery-2.1.3.min.js | 4 - .../common/thirdparty/jquery/jquery-2.1.3.min.map | 1 - .../thirdparty/jquery/jquery-migrate-1.2.1.js | 521 - .../thirdparty/jquery/jquery-migrate-1.2.1.min.js | 2 - .../common/thirdparty/jquery/jquery.reveal.js | 152 - .../common/thirdparty/select2/select2-custom.css | 234 - .../webapp/common/thirdparty/select2/select2.css | 607 - .../common/thirdparty/select2/select2.min.js | 22 - .../webapp/common/thirdparty/sigma/sigma.min.js | 5 - .../sigma/sigma.renderers.customShapes.min.js | 2 - .../sigma/sigma.renderers.edgeLabels.min.js | 2 - .../webapp/common/thirdparty/uniform/README.md | 389 - .../thirdparty/uniform/css/uniform.default.css | 366 - .../thirdparty/uniform/css/uniform.default.min.css | 1 - .../thirdparty/uniform/css/uniform.default.scss | 150 - .../thirdparty/uniform/images/bg-input-focus.png | Bin 143 -> 0 bytes .../common/thirdparty/uniform/images/bg-input.png | Bin 143 -> 0 bytes .../common/thirdparty/uniform/images/sprite.png | Bin 31815 -> 0 bytes .../thirdparty/uniform/images/sprite_original.png | Bin 34229 -> 0 bytes .../common/thirdparty/uniform/jquery.uniform.js | 1068 - .../thirdparty/uniform/jquery.uniform.min.js | 1 - .../webapp/common/thirdparty/zTree/api/API_cn.html | 103 - .../webapp/common/thirdparty/zTree/api/API_en.html | 102 - .../common/thirdparty/zTree/api/apiCss/api.js | 592 - .../common/thirdparty/zTree/api/apiCss/common.css | 219 - .../thirdparty/zTree/api/apiCss/common_ie6.css | 23 - .../thirdparty/zTree/api/apiCss/img/apiMenu.gif | Bin 1736 -> 0 bytes .../thirdparty/zTree/api/apiCss/img/apiMenu.png | Bin 3954 -> 0 bytes .../thirdparty/zTree/api/apiCss/img/background.jpg | Bin 36520 -> 0 bytes .../thirdparty/zTree/api/apiCss/img/chinese.png | Bin 1556 -> 0 bytes .../thirdparty/zTree/api/apiCss/img/close.png | Bin 1908 -> 0 bytes .../thirdparty/zTree/api/apiCss/img/contact-bg.png | Bin 177 -> 0 bytes .../thirdparty/zTree/api/apiCss/img/english.png | Bin 1356 -> 0 bytes .../thirdparty/zTree/api/apiCss/img/header-bg.png | Bin 148 -> 0 bytes .../thirdparty/zTree/api/apiCss/img/lightbulb.png | Bin 27355 -> 0 bytes .../zTree/api/apiCss/img/overlay_arrow.gif | Bin 625 -> 0 bytes .../zTree/api/apiCss/img/overlay_arrow.png | Bin 830 -> 0 bytes .../thirdparty/zTree/api/apiCss/img/overlay_bg.png | Bin 109 -> 0 bytes .../zTree/api/apiCss/img/overlay_close_IE6.gif | Bin 441 -> 0 bytes .../zTree/api/apiCss/img/zTreeStandard.gif | Bin 6851 -> 0 bytes .../zTree/api/apiCss/img/zTreeStandard.png | Bin 12573 -> 0 bytes .../zTree/api/apiCss/jquery-1.6.2.min.js | 18 - .../zTree/api/apiCss/jquery.ztree.core-3.5.js | 69 - .../zTree/api/apiCss/zTreeStyleForApi.css | 49 - .../thirdparty/zTree/api/cn/fn.zTree._z.html | 13 - .../thirdparty/zTree/api/cn/fn.zTree.destroy.html | 28 - .../zTree/api/cn/fn.zTree.getZTreeObj.html | 24 - .../thirdparty/zTree/api/cn/fn.zTree.init.html | 74 - .../zTree/api/cn/setting.async.autoParam.html | 39 - .../zTree/api/cn/setting.async.contentType.html | 29 - .../zTree/api/cn/setting.async.dataFilter.html | 45 - .../zTree/api/cn/setting.async.dataType.html | 29 - .../zTree/api/cn/setting.async.enable.html | 30 - .../zTree/api/cn/setting.async.otherParam.html | 40 - .../zTree/api/cn/setting.async.type.html | 30 - .../thirdparty/zTree/api/cn/setting.async.url.html | 50 - .../zTree/api/cn/setting.callback.beforeAsync.html | 35 - .../zTree/api/cn/setting.callback.beforeCheck.html | 34 - .../zTree/api/cn/setting.callback.beforeClick.html | 49 - .../api/cn/setting.callback.beforeCollapse.html | 34 - .../api/cn/setting.callback.beforeDblClick.html | 36 - .../zTree/api/cn/setting.callback.beforeDrag.html | 39 - .../api/cn/setting.callback.beforeDragOpen.html | 37 - .../zTree/api/cn/setting.callback.beforeDrop.html | 48 - .../api/cn/setting.callback.beforeEditName.html | 38 - .../api/cn/setting.callback.beforeExpand.html | 34 - .../api/cn/setting.callback.beforeMouseDown.html | 35 - .../api/cn/setting.callback.beforeMouseUp.html | 35 - .../api/cn/setting.callback.beforeRemove.html | 37 - .../api/cn/setting.callback.beforeRename.html | 46 - .../api/cn/setting.callback.beforeRightClick.html | 35 - .../api/cn/setting.callback.onAsyncError.html | 42 - .../api/cn/setting.callback.onAsyncSuccess.html | 38 - .../zTree/api/cn/setting.callback.onCheck.html | 34 - .../zTree/api/cn/setting.callback.onClick.html | 49 - .../zTree/api/cn/setting.callback.onCollapse.html | 34 - .../zTree/api/cn/setting.callback.onDblClick.html | 35 - .../zTree/api/cn/setting.callback.onDrag.html | 34 - .../zTree/api/cn/setting.callback.onDragMove.html | 34 - .../zTree/api/cn/setting.callback.onDrop.html | 46 - .../zTree/api/cn/setting.callback.onExpand.html | 34 - .../zTree/api/cn/setting.callback.onMouseDown.html | 35 - .../zTree/api/cn/setting.callback.onMouseUp.html | 35 - .../api/cn/setting.callback.onNodeCreated.html | 35 - .../zTree/api/cn/setting.callback.onRemove.html | 34 - .../zTree/api/cn/setting.callback.onRename.html | 40 - .../api/cn/setting.callback.onRightClick.html | 36 - .../api/cn/setting.check.autoCheckTrigger.html | 28 - .../api/cn/setting.check.chkDisabledInherit.html | 28 - .../zTree/api/cn/setting.check.chkStyle.html | 48 - .../zTree/api/cn/setting.check.chkboxType.html | 31 - .../zTree/api/cn/setting.check.enable.html | 25 - .../zTree/api/cn/setting.check.nocheckInherit.html | 28 - .../zTree/api/cn/setting.check.radioType.html | 29 - .../zTree/api/cn/setting.data.keep.leaf.html | 28 - .../zTree/api/cn/setting.data.keep.parent.html | 28 - .../zTree/api/cn/setting.data.key.checked.html | 24 - .../zTree/api/cn/setting.data.key.children.html | 23 - .../zTree/api/cn/setting.data.key.name.html | 23 - .../zTree/api/cn/setting.data.key.title.html | 24 - .../zTree/api/cn/setting.data.key.url.html | 24 - .../api/cn/setting.data.simpleData.enable.html | 38 - .../api/cn/setting.data.simpleData.idKey.html | 32 - .../api/cn/setting.data.simpleData.pIdKey.html | 32 - .../api/cn/setting.data.simpleData.rootPId.html | 32 - .../cn/setting.edit.drag.autoExpandTrigger.html | 28 - .../api/cn/setting.edit.drag.autoOpenTime.html | 25 - .../zTree/api/cn/setting.edit.drag.borderMax.html | 25 - .../zTree/api/cn/setting.edit.drag.borderMin.html | 25 - .../zTree/api/cn/setting.edit.drag.inner.html | 59 - .../zTree/api/cn/setting.edit.drag.isCopy.html | 32 - .../zTree/api/cn/setting.edit.drag.isMove.html | 32 - .../api/cn/setting.edit.drag.maxShowNodeNum.html | 25 - .../api/cn/setting.edit.drag.minMoveSize.html | 25 - .../zTree/api/cn/setting.edit.drag.next.html | 58 - .../zTree/api/cn/setting.edit.drag.prev.html | 58 - .../api/cn/setting.edit.editNameSelectAll.html | 27 - .../zTree/api/cn/setting.edit.enable.html | 38 - .../zTree/api/cn/setting.edit.removeTitle.html | 48 - .../zTree/api/cn/setting.edit.renameTitle.html | 48 - .../zTree/api/cn/setting.edit.showRemoveBtn.html | 49 - .../zTree/api/cn/setting.edit.showRenameBtn.html | 51 - .../thirdparty/zTree/api/cn/setting.treeId.html | 14 - .../thirdparty/zTree/api/cn/setting.treeObj.html | 14 - .../zTree/api/cn/setting.view.addDiyDom.html | 40 - .../zTree/api/cn/setting.view.addHoverDom.html | 45 - .../api/cn/setting.view.autoCancelSelected.html | 26 - .../zTree/api/cn/setting.view.dblClickExpand.html | 44 - .../zTree/api/cn/setting.view.expandSpeed.html | 31 - .../zTree/api/cn/setting.view.fontCss.html | 42 - .../zTree/api/cn/setting.view.nameIsHTML.html | 27 - .../zTree/api/cn/setting.view.removeHoverDom.html | 45 - .../zTree/api/cn/setting.view.selectedMulti.html | 27 - .../zTree/api/cn/setting.view.showIcon.html | 44 - .../zTree/api/cn/setting.view.showLine.html | 25 - .../zTree/api/cn/setting.view.showTitle.html | 46 - .../api/cn/setting.view.txtSelectedEnable.html | 25 - .../zTree/api/cn/treeNode.check_Child_State.html | 43 - .../zTree/api/cn/treeNode.check_Focus.html | 19 - .../thirdparty/zTree/api/cn/treeNode.checked.html | 32 - .../zTree/api/cn/treeNode.checkedOld.html | 25 - .../thirdparty/zTree/api/cn/treeNode.children.html | 35 - .../zTree/api/cn/treeNode.chkDisabled.html | 28 - .../thirdparty/zTree/api/cn/treeNode.click.html | 24 - .../thirdparty/zTree/api/cn/treeNode.diy.html | 15 - .../zTree/api/cn/treeNode.editNameFlag.html | 19 - .../zTree/api/cn/treeNode.getCheckStatus.html | 63 - .../zTree/api/cn/treeNode.getNextNode.html | 27 - .../zTree/api/cn/treeNode.getParentNode.html | 27 - .../zTree/api/cn/treeNode.getPreNode.html | 27 - .../zTree/api/cn/treeNode.halfCheck.html | 29 - .../thirdparty/zTree/api/cn/treeNode.icon.html | 33 - .../zTree/api/cn/treeNode.iconClose.html | 33 - .../thirdparty/zTree/api/cn/treeNode.iconOpen.html | 33 - .../thirdparty/zTree/api/cn/treeNode.iconSkin.html | 43 - .../zTree/api/cn/treeNode.isAjaxing.html | 26 - .../zTree/api/cn/treeNode.isFirstNode.html | 28 - .../thirdparty/zTree/api/cn/treeNode.isHidden.html | 27 - .../thirdparty/zTree/api/cn/treeNode.isHover.html | 19 - .../zTree/api/cn/treeNode.isLastNode.html | 28 - .../thirdparty/zTree/api/cn/treeNode.isParent.html | 28 - .../thirdparty/zTree/api/cn/treeNode.level.html | 25 - .../thirdparty/zTree/api/cn/treeNode.name.html | 25 - .../thirdparty/zTree/api/cn/treeNode.nocheck.html | 26 - .../thirdparty/zTree/api/cn/treeNode.open.html | 30 - .../zTree/api/cn/treeNode.parentTId.html | 27 - .../thirdparty/zTree/api/cn/treeNode.tId.html | 25 - .../thirdparty/zTree/api/cn/treeNode.target.html | 24 - .../thirdparty/zTree/api/cn/treeNode.url.html | 25 - .../thirdparty/zTree/api/cn/treeNode.zAsync.html | 28 - .../thirdparty/zTree/api/cn/zTreeObj.addNodes.html | 42 - .../zTree/api/cn/zTreeObj.cancelEditName.html | 30 - .../zTree/api/cn/zTreeObj.cancelSelectedNode.html | 35 - .../zTree/api/cn/zTreeObj.checkAllNodes.html | 29 - .../zTree/api/cn/zTreeObj.checkNode.html | 44 - .../thirdparty/zTree/api/cn/zTreeObj.copyNode.html | 44 - .../thirdparty/zTree/api/cn/zTreeObj.destroy.html | 25 - .../thirdparty/zTree/api/cn/zTreeObj.editName.html | 29 - .../zTree/api/cn/zTreeObj.expandAll.html | 30 - .../zTree/api/cn/zTreeObj.expandNode.html | 50 - .../api/cn/zTreeObj.getChangeCheckedNodes.html | 24 - .../zTree/api/cn/zTreeObj.getCheckedNodes.html | 28 - .../zTree/api/cn/zTreeObj.getNodeByParam.html | 32 - .../zTree/api/cn/zTreeObj.getNodeByTId.html | 27 - .../zTree/api/cn/zTreeObj.getNodeIndex.html | 30 - .../thirdparty/zTree/api/cn/zTreeObj.getNodes.html | 26 - .../zTree/api/cn/zTreeObj.getNodesByFilter.html | 43 - .../zTree/api/cn/zTreeObj.getNodesByParam.html | 31 - .../api/cn/zTreeObj.getNodesByParamFuzzy.html | 32 - .../zTree/api/cn/zTreeObj.getSelectedNodes.html | 23 - .../thirdparty/zTree/api/cn/zTreeObj.hideNode.html | 29 - .../zTree/api/cn/zTreeObj.hideNodes.html | 29 - .../thirdparty/zTree/api/cn/zTreeObj.moveNode.html | 46 - .../zTree/api/cn/zTreeObj.reAsyncChildNodes.html | 42 - .../thirdparty/zTree/api/cn/zTreeObj.refresh.html | 24 - .../zTree/api/cn/zTreeObj.removeChildNodes.html | 32 - .../zTree/api/cn/zTreeObj.removeNode.html | 34 - .../zTree/api/cn/zTreeObj.selectNode.html | 34 - .../zTree/api/cn/zTreeObj.setChkDisabled.html | 44 - .../zTree/api/cn/zTreeObj.setEditable.html | 27 - .../thirdparty/zTree/api/cn/zTreeObj.setting.html | 13 - .../thirdparty/zTree/api/cn/zTreeObj.showNode.html | 31 - .../zTree/api/cn/zTreeObj.showNodes.html | 29 - .../zTree/api/cn/zTreeObj.transformToArray.html | 25 - .../api/cn/zTreeObj.transformTozTreeNodes.html | 43 - .../zTree/api/cn/zTreeObj.updateNode.html | 37 - .../thirdparty/zTree/api/en/fn.zTree._z.html | 13 - .../thirdparty/zTree/api/en/fn.zTree.destroy.html | 28 - .../zTree/api/en/fn.zTree.getZTreeObj.html | 25 - .../thirdparty/zTree/api/en/fn.zTree.init.html | 75 - .../zTree/api/en/setting.async.autoParam.html | 39 - .../zTree/api/en/setting.async.contentType.html | 29 - .../zTree/api/en/setting.async.dataFilter.html | 45 - .../zTree/api/en/setting.async.dataType.html | 29 - .../zTree/api/en/setting.async.enable.html | 30 - .../zTree/api/en/setting.async.otherParam.html | 40 - .../zTree/api/en/setting.async.type.html | 30 - .../thirdparty/zTree/api/en/setting.async.url.html | 50 - .../zTree/api/en/setting.callback.beforeAsync.html | 35 - .../zTree/api/en/setting.callback.beforeCheck.html | 34 - .../zTree/api/en/setting.callback.beforeClick.html | 49 - .../api/en/setting.callback.beforeCollapse.html | 34 - .../api/en/setting.callback.beforeDblClick.html | 36 - .../zTree/api/en/setting.callback.beforeDrag.html | 39 - .../api/en/setting.callback.beforeDragOpen.html | 37 - .../zTree/api/en/setting.callback.beforeDrop.html | 50 - .../api/en/setting.callback.beforeEditName.html | 38 - .../api/en/setting.callback.beforeExpand.html | 34 - .../api/en/setting.callback.beforeMouseDown.html | 35 - .../api/en/setting.callback.beforeMouseUp.html | 35 - .../api/en/setting.callback.beforeRemove.html | 37 - .../api/en/setting.callback.beforeRename.html | 46 - .../api/en/setting.callback.beforeRightClick.html | 35 - .../api/en/setting.callback.onAsyncError.html | 42 - .../api/en/setting.callback.onAsyncSuccess.html | 38 - .../zTree/api/en/setting.callback.onCheck.html | 34 - .../zTree/api/en/setting.callback.onClick.html | 49 - .../zTree/api/en/setting.callback.onCollapse.html | 34 - .../zTree/api/en/setting.callback.onDblClick.html | 35 - .../zTree/api/en/setting.callback.onDrag.html | 34 - .../zTree/api/en/setting.callback.onDragMove.html | 34 - .../zTree/api/en/setting.callback.onDrop.html | 48 - .../zTree/api/en/setting.callback.onExpand.html | 34 - .../zTree/api/en/setting.callback.onMouseDown.html | 35 - .../zTree/api/en/setting.callback.onMouseUp.html | 35 - .../api/en/setting.callback.onNodeCreated.html | 35 - .../zTree/api/en/setting.callback.onRemove.html | 34 - .../zTree/api/en/setting.callback.onRename.html | 40 - .../api/en/setting.callback.onRightClick.html | 36 - .../api/en/setting.check.autoCheckTrigger.html | 29 - .../api/en/setting.check.chkDisabledInherit.html | 28 - .../zTree/api/en/setting.check.chkStyle.html | 48 - .../zTree/api/en/setting.check.chkboxType.html | 31 - .../zTree/api/en/setting.check.enable.html | 26 - .../zTree/api/en/setting.check.nocheckInherit.html | 28 - .../zTree/api/en/setting.check.radioType.html | 29 - .../zTree/api/en/setting.data.keep.leaf.html | 28 - .../zTree/api/en/setting.data.keep.parent.html | 28 - .../zTree/api/en/setting.data.key.checked.html | 24 - .../zTree/api/en/setting.data.key.children.html | 23 - .../zTree/api/en/setting.data.key.name.html | 23 - .../zTree/api/en/setting.data.key.title.html | 24 - .../zTree/api/en/setting.data.key.url.html | 24 - .../api/en/setting.data.simpleData.enable.html | 39 - .../api/en/setting.data.simpleData.idKey.html | 32 - .../api/en/setting.data.simpleData.pIdKey.html | 32 - .../api/en/setting.data.simpleData.rootPId.html | 32 - .../en/setting.edit.drag.autoExpandTrigger.html | 29 - .../api/en/setting.edit.drag.autoOpenTime.html | 25 - .../zTree/api/en/setting.edit.drag.borderMax.html | 25 - .../zTree/api/en/setting.edit.drag.borderMin.html | 25 - .../zTree/api/en/setting.edit.drag.inner.html | 60 - .../zTree/api/en/setting.edit.drag.isCopy.html | 32 - .../zTree/api/en/setting.edit.drag.isMove.html | 32 - .../api/en/setting.edit.drag.maxShowNodeNum.html | 25 - .../api/en/setting.edit.drag.minMoveSize.html | 25 - .../zTree/api/en/setting.edit.drag.next.html | 59 - .../zTree/api/en/setting.edit.drag.prev.html | 59 - .../api/en/setting.edit.editNameSelectAll.html | 27 - .../zTree/api/en/setting.edit.enable.html | 39 - .../zTree/api/en/setting.edit.removeTitle.html | 48 - .../zTree/api/en/setting.edit.renameTitle.html | 48 - .../zTree/api/en/setting.edit.showRemoveBtn.html | 50 - .../zTree/api/en/setting.edit.showRenameBtn.html | 52 - .../thirdparty/zTree/api/en/setting.treeId.html | 14 - .../thirdparty/zTree/api/en/setting.treeObj.html | 14 - .../zTree/api/en/setting.view.addDiyDom.html | 40 - .../zTree/api/en/setting.view.addHoverDom.html | 45 - .../api/en/setting.view.autoCancelSelected.html | 27 - .../zTree/api/en/setting.view.dblClickExpand.html | 45 - .../zTree/api/en/setting.view.expandSpeed.html | 31 - .../zTree/api/en/setting.view.fontCss.html | 42 - .../zTree/api/en/setting.view.nameIsHTML.html | 28 - .../zTree/api/en/setting.view.removeHoverDom.html | 45 - .../zTree/api/en/setting.view.selectedMulti.html | 28 - .../zTree/api/en/setting.view.showIcon.html | 45 - .../zTree/api/en/setting.view.showLine.html | 26 - .../zTree/api/en/setting.view.showTitle.html | 47 - .../api/en/setting.view.txtSelectedEnable.html | 26 - .../zTree/api/en/treeNode.check_Child_State.html | 43 - .../zTree/api/en/treeNode.check_Focus.html | 19 - .../thirdparty/zTree/api/en/treeNode.checked.html | 32 - .../zTree/api/en/treeNode.checkedOld.html | 25 - .../thirdparty/zTree/api/en/treeNode.children.html | 35 - .../zTree/api/en/treeNode.chkDisabled.html | 28 - .../thirdparty/zTree/api/en/treeNode.click.html | 24 - .../thirdparty/zTree/api/en/treeNode.diy.html | 15 - .../zTree/api/en/treeNode.editNameFlag.html | 19 - .../zTree/api/en/treeNode.getCheckStatus.html | 63 - .../zTree/api/en/treeNode.getNextNode.html | 27 - .../zTree/api/en/treeNode.getParentNode.html | 27 - .../zTree/api/en/treeNode.getPreNode.html | 27 - .../zTree/api/en/treeNode.halfCheck.html | 29 - .../thirdparty/zTree/api/en/treeNode.icon.html | 33 - .../zTree/api/en/treeNode.iconClose.html | 33 - .../thirdparty/zTree/api/en/treeNode.iconOpen.html | 33 - .../thirdparty/zTree/api/en/treeNode.iconSkin.html | 43 - .../zTree/api/en/treeNode.isAjaxing.html | 26 - .../zTree/api/en/treeNode.isFirstNode.html | 28 - .../thirdparty/zTree/api/en/treeNode.isHidden.html | 28 - .../thirdparty/zTree/api/en/treeNode.isHover.html | 19 - .../zTree/api/en/treeNode.isLastNode.html | 28 - .../thirdparty/zTree/api/en/treeNode.isParent.html | 28 - .../thirdparty/zTree/api/en/treeNode.level.html | 25 - .../thirdparty/zTree/api/en/treeNode.name.html | 25 - .../thirdparty/zTree/api/en/treeNode.nocheck.html | 26 - .../thirdparty/zTree/api/en/treeNode.open.html | 30 - .../zTree/api/en/treeNode.parentTId.html | 27 - .../thirdparty/zTree/api/en/treeNode.tId.html | 25 - .../thirdparty/zTree/api/en/treeNode.target.html | 24 - .../thirdparty/zTree/api/en/treeNode.url.html | 25 - .../thirdparty/zTree/api/en/treeNode.zAsync.html | 28 - .../thirdparty/zTree/api/en/zTreeObj.addNodes.html | 42 - .../zTree/api/en/zTreeObj.cancelEditName.html | 30 - .../zTree/api/en/zTreeObj.cancelSelectedNode.html | 35 - .../zTree/api/en/zTreeObj.checkAllNodes.html | 29 - .../zTree/api/en/zTreeObj.checkNode.html | 44 - .../thirdparty/zTree/api/en/zTreeObj.copyNode.html | 47 - .../thirdparty/zTree/api/en/zTreeObj.destroy.html | 25 - .../thirdparty/zTree/api/en/zTreeObj.editName.html | 29 - .../zTree/api/en/zTreeObj.expandAll.html | 30 - .../zTree/api/en/zTreeObj.expandNode.html | 50 - .../api/en/zTreeObj.getChangeCheckedNodes.html | 24 - .../zTree/api/en/zTreeObj.getCheckedNodes.html | 28 - .../zTree/api/en/zTreeObj.getNodeByParam.html | 32 - .../zTree/api/en/zTreeObj.getNodeByTId.html | 27 - .../zTree/api/en/zTreeObj.getNodeIndex.html | 30 - .../thirdparty/zTree/api/en/zTreeObj.getNodes.html | 26 - .../zTree/api/en/zTreeObj.getNodesByFilter.html | 43 - .../zTree/api/en/zTreeObj.getNodesByParam.html | 31 - .../api/en/zTreeObj.getNodesByParamFuzzy.html | 32 - .../zTree/api/en/zTreeObj.getSelectedNodes.html | 23 - .../thirdparty/zTree/api/en/zTreeObj.hideNode.html | 29 - .../zTree/api/en/zTreeObj.hideNodes.html | 29 - .../thirdparty/zTree/api/en/zTreeObj.moveNode.html | 49 - .../zTree/api/en/zTreeObj.reAsyncChildNodes.html | 42 - .../thirdparty/zTree/api/en/zTreeObj.refresh.html | 24 - .../zTree/api/en/zTreeObj.removeChildNodes.html | 32 - .../zTree/api/en/zTreeObj.removeNode.html | 34 - .../zTree/api/en/zTreeObj.selectNode.html | 34 - .../zTree/api/en/zTreeObj.setChkDisabled.html | 44 - .../zTree/api/en/zTreeObj.setEditable.html | 27 - .../thirdparty/zTree/api/en/zTreeObj.setting.html | 14 - .../thirdparty/zTree/api/en/zTreeObj.showNode.html | 31 - .../zTree/api/en/zTreeObj.showNodes.html | 29 - .../zTree/api/en/zTreeObj.transformToArray.html | 27 - .../api/en/zTreeObj.transformTozTreeNodes.html | 44 - .../zTree/api/en/zTreeObj.updateNode.html | 37 - .../webapp/common/thirdparty/zTree/css/demo.css | 33 - .../thirdparty/zTree/css/zTreeStyle/ReadMe.txt | 1 - .../thirdparty/zTree/css/zTreeStyle/img/Thumbs.db | Bin 23552 -> 0 bytes .../zTree/css/zTreeStyle/img/diy/1_close.png | Bin 601 -> 0 bytes .../zTree/css/zTreeStyle/img/diy/1_open.png | Bin 580 -> 0 bytes .../thirdparty/zTree/css/zTreeStyle/img/diy/2.png | Bin 570 -> 0 bytes .../thirdparty/zTree/css/zTreeStyle/img/diy/3.png | Bin 762 -> 0 bytes .../thirdparty/zTree/css/zTreeStyle/img/diy/4.png | Bin 399 -> 0 bytes .../thirdparty/zTree/css/zTreeStyle/img/diy/5.png | Bin 710 -> 0 bytes .../thirdparty/zTree/css/zTreeStyle/img/diy/6.png | Bin 432 -> 0 bytes .../thirdparty/zTree/css/zTreeStyle/img/diy/7.png | Bin 534 -> 0 bytes .../thirdparty/zTree/css/zTreeStyle/img/diy/8.png | Bin 529 -> 0 bytes .../thirdparty/zTree/css/zTreeStyle/img/diy/9.png | Bin 467 -> 0 bytes .../zTree/css/zTreeStyle/img/diy/Thumbs.db | Bin 19968 -> 0 bytes .../zTree/css/zTreeStyle/img/line_conn.gif | Bin 45 -> 0 bytes .../zTree/css/zTreeStyle/img/loading.gif | Bin 381 -> 0 bytes .../zTree/css/zTreeStyle/img/zTreeStandard.gif | Bin 5564 -> 0 bytes .../zTree/css/zTreeStyle/img/zTreeStandard.gifbak | Bin 5564 -> 0 bytes .../zTree/css/zTreeStyle/img/zTreeStandard.png | Bin 11206 -> 0 bytes .../zTree/css/zTreeStyle/img/zTreeStandard.pngbak | Bin 11173 -> 0 bytes .../zTree/css/zTreeStyle/img/zTreeStandard.psd | Bin 93494 -> 0 bytes .../thirdparty/zTree/css/zTreeStyle/zTreeStyle.css | 107 - .../common/thirdparty/zTree/js/jquery.ztree.all.js | 3506 -- .../thirdparty/zTree/js/jquery.ztree.all.min.js | 160 - .../thirdparty/zTree/js/jquery.ztree.core.js | 1684 - .../thirdparty/zTree/js/jquery.ztree.core.min.js | 69 - .../thirdparty/zTree/js/jquery.ztree.excheck.js | 629 - .../zTree/js/jquery.ztree.excheck.min.js | 34 - .../thirdparty/zTree/js/jquery.ztree.exedit.js | 1191 - .../thirdparty/zTree/js/jquery.ztree.exedit.min.js | 53 - .../thirdparty/zTree/js/jquery.ztree.exhide.js | 363 - .../thirdparty/zTree/js/jquery.ztree.exhide.min.js | 22 - .../common/thirdparty/zTree/zTree.v3.jquery.json | 35 - .../src/main/webapp/framework/appserver/api.js | 287 - .../src/main/webapp/framework/appserver/server.js | 48 - .../webapp/framework/browser/css/open-ostyle.css | 937 - .../src/main/webapp/framework/browser/js/app.js | 1361 - .../main/webapp/framework/browser/template.html | 376 - .../framework/browser/templates/accordion.html | 26 - .../framework/browser/templates/buttons.html | 38 - .../framework/browser/templates/checkBoxes.html | 25 - .../framework/browser/templates/dropdown.html | 42 - .../webapp/framework/browser/templates/list.html | 47 - .../webapp/framework/browser/templates/login.html | 40 - .../framework/browser/templates/management.html | 130 - .../framework/browser/templates/radioButtons.html | 28 - .../framework/browser/templates/register.html | 47 - .../webapp/framework/browser/templates/table.html | 39 - .../webapp/framework/browser/templates/tabs.html | 27 - .../framework/browser/templates/textarea.html | 121 - .../webapp/framework/browser/templates/tree.html | 25 - .../framework/browser/templates/verticalTab.html | 28 - .../browser/thirdparty/css/img/diy/1_close.png | Bin 601 -> 0 bytes .../browser/thirdparty/css/img/diy/1_open.png | Bin 580 -> 0 bytes .../framework/browser/thirdparty/css/img/diy/2.png | Bin 570 -> 0 bytes .../framework/browser/thirdparty/css/img/diy/3.png | Bin 762 -> 0 bytes .../framework/browser/thirdparty/css/img/diy/4.png | Bin 399 -> 0 bytes .../framework/browser/thirdparty/css/img/diy/5.png | Bin 710 -> 0 bytes .../framework/browser/thirdparty/css/img/diy/6.png | Bin 432 -> 0 bytes .../framework/browser/thirdparty/css/img/diy/7.png | Bin 534 -> 0 bytes .../framework/browser/thirdparty/css/img/diy/8.png | Bin 529 -> 0 bytes .../framework/browser/thirdparty/css/img/diy/9.png | Bin 467 -> 0 bytes .../browser/thirdparty/css/img/line_conn.gif | Bin 45 -> 0 bytes .../browser/thirdparty/css/img/loading.gif | Bin 381 -> 0 bytes .../browser/thirdparty/css/img/zTreeStandard.gif | Bin 5564 -> 0 bytes .../browser/thirdparty/css/magic-check.css | 123 - .../fonts/glyphicons-halflings-regular.eot | Bin 20127 -> 0 bytes .../fonts/glyphicons-halflings-regular.ttf | Bin 45404 -> 0 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 23424 -> 0 bytes .../fonts/glyphicons-halflings-regular.woff2 | Bin 18028 -> 0 bytes .../browser/thirdparty/images/collapse_arrow.png | Bin 1174 -> 0 bytes .../browser/thirdparty/images/expand_arrow.png | Bin 1182 -> 0 bytes .../framework/browser/thirdparty/images/openo.png | Bin 49007 -> 0 bytes .../browser/thirdparty/js/angular-ui-router.min.js | 8 - .../js/bootstrap-table-filter-control.min.js | 7 - .../browser/thirdparty/js/jquery.ztree.core-3.5.js | 70 - .../browser/thirdparty/js/jquery_1.12.4.min.js | 5 - .../framework/browser/thirdparty/js/mustache.js | 630 - .../framework/browser/thirdparty/js/tree.jquery.js | 3616 -- portal-extsys/pom.xml | 40 - .../webapp/extsys/sdncontroller/conf/License.txt | 362 - .../extsys/sdncontroller/conf/dataconfig.json | 4 - .../webapp/extsys/sdncontroller/controller.html | 339 - .../main/webapp/extsys/sdncontroller/css/RMain.css | 239 - .../webapp/extsys/sdncontroller/css/VMMain.css | 758 - .../sdncontroller/css/bootstrap-table.min.css | 1 - .../extsys/sdncontroller/css/bootstrap.min.css | 7 - .../webapp/extsys/sdncontroller/images/License.txt | 362 - .../webapp/extsys/sdncontroller/images/add.png | Bin 1104 -> 0 bytes .../sdncontroller/images/arrow-down-enable.png | Bin 1035 -> 0 bytes .../extsys/sdncontroller/images/collapse_arrow.png | Bin 1174 -> 0 bytes .../webapp/extsys/sdncontroller/images/delete.png | Bin 1100 -> 0 bytes .../webapp/extsys/sdncontroller/images/edit.png | Bin 3045 -> 0 bytes .../extsys/sdncontroller/images/expand_arrow.png | Bin 1182 -> 0 bytes .../sdncontroller/images/ideo_default_select.png | Bin 1035 -> 0 bytes .../webapp/extsys/sdncontroller/images/import.png | Bin 1250 -> 0 bytes .../webapp/extsys/sdncontroller/images/line.png | Bin 139 -> 0 bytes .../sdncontroller/images/loading-spinner-grey.gif | Bin 5203 -> 0 bytes .../webapp/extsys/sdncontroller/images/openo.png | Bin 49007 -> 0 bytes .../webapp/extsys/sdncontroller/images/page_l.png | Bin 1066 -> 0 bytes .../sdncontroller/images/page_left_disabled.png | Bin 1066 -> 0 bytes .../webapp/extsys/sdncontroller/images/page_r.png | Bin 1070 -> 0 bytes .../extsys/sdncontroller/images/sort_asc.png | Bin 1118 -> 0 bytes .../extsys/sdncontroller/images/sort_both.png | Bin 1136 -> 0 bytes .../extsys/sdncontroller/images/sort_desc.png | Bin 1127 -> 0 bytes .../js/bootstrap-table-filter-control.min.js | 7 - .../extsys/sdncontroller/js/bootstrap-table.min.js | 8 - .../extsys/sdncontroller/js/bootstrap.min.js | 6 - .../webapp/extsys/sdncontroller/js/controller.js | 166 - .../extsys/sdncontroller/js/jquery-1.11.2.min.js | 4 - .../src/main/webapp/extsys/vim/css/bootstrap.css | 4966 -- .../src/main/webapp/extsys/vim/css/skill.css | 97 - .../src/main/webapp/extsys/vim/css/vim.css | 476 - .../src/main/webapp/extsys/vim/css/vimChart.css | 68 - .../src/main/webapp/extsys/vim/i18n/loadi18nApp.js | 42 - .../vim/i18n/roc-vim-iui-i18n-en-US.properties | 92 - .../vim/i18n/roc-vim-iui-i18n-zh-CN.properties | 95 - .../src/main/webapp/extsys/vim/js/client-cometd.js | 63 - .../webapp/extsys/vim/js/jqBootstrapValidation.js | 925 - .../src/main/webapp/extsys/vim/js/vim-validate.js | 116 - .../src/main/webapp/extsys/vim/js/vimChart.js | 430 - .../webapp/extsys/vim/js/vimChartController.js | 160 - .../src/main/webapp/extsys/vim/js/vimController.js | 319 - .../src/main/webapp/extsys/vim/js/vimUtil.js | 51 - .../src/main/webapp/extsys/vim/vimChart.html | 118 - .../src/main/webapp/extsys/vim/vimView.html | 266 - .../main/webapp/extsys/vnfm/css/animate.min.css | 21 - .../src/main/webapp/extsys/vnfm/css/vnfm.css | 486 - .../vnfm/i18n/nfv-nso-iui-i18n-en-US.properties | 55 - .../vnfm/i18n/nfv-nso-iui-i18n-zh-CN.properties | 55 - .../src/main/webapp/extsys/vnfm/js/commonUtil.js | 128 - .../main/webapp/extsys/vnfm/js/loadi18n_nsoc.js | 38 - .../main/webapp/extsys/vnfm/js/vnfm-validate.js | 89 - .../main/webapp/extsys/vnfm/js/vnfmController.js | 302 - .../src/main/webapp/extsys/vnfm/js/vnfmUtil.js | 78 - .../src/main/webapp/extsys/vnfm/vnfmView.html | 240 - portal-lifecyclemgr/pom.xml | 43 - .../src/main/webapp/lifecyclemgr/InputData.html | 63 - .../src/main/webapp/lifecyclemgr/TopoAccor.html | 154 - .../src/main/webapp/lifecyclemgr/UnderLay_TP.html | 237 - .../src/main/webapp/lifecyclemgr/accorTables.html | 351 - .../src/main/webapp/lifecyclemgr/chartTopo.html | 268 - .../src/main/webapp/lifecyclemgr/conf/License.txt | 362 - .../main/webapp/lifecyclemgr/conf/dataconfig.json | 4 - .../src/main/webapp/lifecyclemgr/css/RMain.css | 210 - .../src/main/webapp/lifecyclemgr/css/VMMain.css | 664 - .../lifecyclemgr/css/bootstrap-table.min.css | 1 - .../main/webapp/lifecyclemgr/css/bootstrap.min.css | 7 - .../lifecyclemgr/css/jquery-ui-1.12.1.min.css | 7 - .../src/main/webapp/lifecyclemgr/gsolcmmain.html | 640 - .../lcm-template-parameters-i18n-en-US.properties | 95 - .../main/webapp/lifecyclemgr/images/License.txt | 362 - .../src/main/webapp/lifecyclemgr/images/add.png | Bin 1104 -> 0 bytes .../lifecyclemgr/images/arrow-down-enable.png | Bin 1035 -> 0 bytes .../webapp/lifecyclemgr/images/collapse_arrow.png | Bin 1174 -> 0 bytes .../src/main/webapp/lifecyclemgr/images/delete.png | Bin 1100 -> 0 bytes .../main/webapp/lifecyclemgr/images/edit.bak.png | Bin 3045 -> 0 bytes .../src/main/webapp/lifecyclemgr/images/edit.png | Bin 3045 -> 0 bytes .../webapp/lifecyclemgr/images/expand_arrow.png | Bin 1182 -> 0 bytes .../lifecyclemgr/images/ideo_default_select.png | Bin 1035 -> 0 bytes .../src/main/webapp/lifecyclemgr/images/import.png | Bin 1250 -> 0 bytes .../src/main/webapp/lifecyclemgr/images/line.png | Bin 139 -> 0 bytes .../lifecyclemgr/images/loading-spinner-grey.gif | Bin 5203 -> 0 bytes .../main/webapp/lifecyclemgr/images/loading.gif | Bin 781 -> 0 bytes .../src/main/webapp/lifecyclemgr/images/openo.png | Bin 49007 -> 0 bytes .../src/main/webapp/lifecyclemgr/images/page_l.png | Bin 1066 -> 0 bytes .../lifecyclemgr/images/page_left_disabled.png | Bin 1066 -> 0 bytes .../src/main/webapp/lifecyclemgr/images/page_r.png | Bin 1070 -> 0 bytes .../src/main/webapp/lifecyclemgr/images/reset.png | Bin 2863 -> 0 bytes .../main/webapp/lifecyclemgr/images/sort_asc.png | Bin 1118 -> 0 bytes .../main/webapp/lifecyclemgr/images/sort_both.png | Bin 1136 -> 0 bytes .../main/webapp/lifecyclemgr/images/sort_desc.png | Bin 1127 -> 0 bytes .../webapp/lifecyclemgr/images/topo/License.txt | 362 - .../webapp/lifecyclemgr/images/topo/NEDOWN.png | Bin 2354 -> 0 bytes .../lifecyclemgr/images/topo/NEDOWN_selected.png | Bin 2351 -> 0 bytes .../webapp/lifecyclemgr/images/topo/NETWORK.png | Bin 3347 -> 0 bytes .../lifecyclemgr/images/topo/NETWORK_EDGE.png | Bin 3076 -> 0 bytes .../lifecyclemgr/images/topo/NETWORK_selected.png | Bin 3347 -> 0 bytes .../main/webapp/lifecyclemgr/images/topo/NEUP.png | Bin 2823 -> 0 bytes .../lifecyclemgr/images/topo/NEUP_selected.png | Bin 2485 -> 0 bytes .../main/webapp/lifecyclemgr/images/topo/OTHER.png | Bin 2823 -> 0 bytes .../webapp/lifecyclemgr/images/topo/OTHER_0.png | Bin 2551 -> 0 bytes .../lifecyclemgr/images/topo/OTHER_0_selected.png | Bin 2108 -> 0 bytes .../webapp/lifecyclemgr/images/topo/OTHER_1.png | Bin 2619 -> 0 bytes .../lifecyclemgr/images/topo/OTHER_1_selected.png | Bin 2318 -> 0 bytes .../webapp/lifecyclemgr/images/topo/OTHER_2.png | Bin 2615 -> 0 bytes .../lifecyclemgr/images/topo/OTHER_2_selected.png | Bin 2335 -> 0 bytes .../webapp/lifecyclemgr/images/topo/OTHER_3.png | Bin 2842 -> 0 bytes .../lifecyclemgr/images/topo/OTHER_3_selected.png | Bin 2514 -> 0 bytes .../lifecyclemgr/images/topo/OTHER_selected.png | Bin 2485 -> 0 bytes .../main/webapp/lifecyclemgr/images/topo/cloud.png | Bin 2239 -> 0 bytes .../webapp/lifecyclemgr/images/topo/cloudroute.png | Bin 16526 -> 0 bytes .../lifecyclemgr/images/topo/crossSubnet.png | Bin 1093 -> 0 bytes .../lifecyclemgr/images/topo/delete_asbr.png | Bin 1315 -> 0 bytes .../webapp/lifecyclemgr/images/topo/mark_sink.png | Bin 1998 -> 0 bytes .../lifecyclemgr/images/topo/mark_source.png | Bin 2069 -> 0 bytes .../lifecyclemgr/images/topo/networkdown.png | Bin 3694 -> 0 bytes .../webapp/lifecyclemgr/images/topo/node_green.png | Bin 17995 -> 0 bytes .../webapp/lifecyclemgr/images/topo/node_red.png | Bin 17992 -> 0 bytes .../webapp/lifecyclemgr/images/topo/router.png | Bin 2823 -> 0 bytes .../lifecyclemgr/images/topo/router_selected.png | Bin 2485 -> 0 bytes .../main/webapp/lifecyclemgr/images/topo/site.png | Bin 2301 -> 0 bytes .../lifecyclemgr/images/topo/siteIcon_feature.png | Bin 1222 -> 0 bytes .../lifecyclemgr/images/topo/site_selected.png | Bin 1898 -> 0 bytes .../webapp/lifecyclemgr/images/topo/sitedown.png | Bin 2291 -> 0 bytes .../lifecyclemgr/images/topo/sitedown_selected.png | Bin 1888 -> 0 bytes .../main/webapp/lifecyclemgr/images/topo/u1963.png | Bin 238 -> 0 bytes .../js/bootstrap-table-filter-control.min.js | 7 - .../webapp/lifecyclemgr/js/bootstrap-table.min.js | 8 - .../main/webapp/lifecyclemgr/js/bootstrap.min.js | 6 - .../src/main/webapp/lifecyclemgr/js/brs.js | 349 - .../src/main/webapp/lifecyclemgr/js/gsolcm.js | 626 - .../webapp/lifecyclemgr/js/jquery-1.11.2.min.js | 4 - .../webapp/lifecyclemgr/js/jquery-ui-1.12.1.min.js | 13 - .../lifecyclemgr/js/jquery.bootstrap-growl.min.js | 1 - .../webapp/lifecyclemgr/js/jquery.isloading.min.js | 39 - .../src/main/webapp/lifecyclemgr/js/rest.js | 228 - .../webapp/lifecyclemgr/js/tmNodesController.js | 194 - .../webapp/lifecyclemgr/js/tmTopoController.js | 230 - .../src/main/webapp/lifecyclemgr/js/topo/Edge.js | 33 - .../src/main/webapp/lifecyclemgr/js/topo/Node.js | 40 - .../webapp/lifecyclemgr/js/topo/OverlayTopology.js | 191 - .../webapp/lifecyclemgr/js/topo/sigma/sigma.min.js | 5 - .../topo/sigma/sigma.renderers.customShapes.min.js | 2 - .../topo/sigma/sigma.renderers.edgeLabels.min.js | 2 - .../src/main/webapp/lifecyclemgr/js/underlay.js | 126 - .../src/main/webapp/lifecyclemgr/js/vpn.js | 312 - .../lifecyclemgr/lcm_detail_nfvo_nodesinfo.html | 76 - .../lifecyclemgr/lcm_detail_nfvo_topology.html | 228 - .../src/main/webapp/lifecyclemgr/newShow.html | 179 - .../src/main/webapp/lifecyclemgr/overlayvpn.html | 291 - .../main/webapp/lifecyclemgr/overlayvpn_topo.html | 55 - .../src/main/webapp/lifecyclemgr/sdnovpn.html | 126 - .../src/main/webapp/lifecyclemgr/underlayvpn.html | 291 - portal-monitor/pom.xml | 40 - portal-monitor/src/main/webapp/monitor/css/dac.css | 220 - .../src/main/webapp/monitor/css/monitorSetting.css | 167 - .../src/main/webapp/monitor/dacList.html | 250 - .../i18n/umc-monitor-iui-i18n-en-US.properties | 102 - .../src/main/webapp/monitor/images/License.txt | 362 - .../src/main/webapp/monitor/images/throbber.gif | Bin 9257 -> 0 bytes .../src/main/webapp/monitor/js/dacController.js | 275 - .../monitor/js/loadi18nApp_ngict-umc-monitor.js | 43 - .../webapp/monitor/js/monitorSettingController.js | 429 - .../main/webapp/monitor/js/monitorSettingUtil.js | 169 - .../src/main/webapp/monitor/monitorSetting.html | 480 - .../main/webapp/monitor/monitorSettingList.html | 103 - portal-package/pom.xml | 219 - .../org/openo/portal/bean/MsbRegisterBean.java | 80 - .../org/openo/portal/bean/ServiceNodeBean.java | 48 - .../java/org/openo/portal/system/CommonUtil.java | 27 - .../java/org/openo/portal/system/Constants.java | 20 - .../org/openo/portal/system/RegisterService.java | 146 - .../org/openo/portal/system/SystemListener.java | 39 - portal-package/src/main/resources/logback.xml | 102 - .../main/resources/portalConfig/msb_register.xml | 115 - portal-package/src/main/webapp/WEB-INF/web.xml | 25 - portal-performance/pom.xml | 40 - .../src/main/webapp/performance/alarm_view.html | 339 - .../main/webapp/performance/css/alarmsQuery.css | 752 - .../webapp/performance/css/performanceChart.css | 60 - .../webapp/performance/css/performanceQuery.css | 843 - .../src/main/webapp/performance/css/pmQueryBox.css | 310 - .../i18n/web-alarm-i18n-en-US.properties | 123 - .../i18n/web-performance-i18n-en-US.properties | 145 - .../src/main/webapp/performance/image/License.txt | 362 - .../main/webapp/performance/image/aos_view-fm.gif | Bin 205 -> 0 bytes .../src/main/webapp/performance/image/arrow.png | Bin 5680 -> 0 bytes .../main/webapp/performance/image/chart_icon.png | Bin 1727 -> 0 bytes .../src/main/webapp/performance/image/delete.png | Bin 3029 -> 0 bytes .../webapp/performance/image/details_close.png | Bin 3300 -> 0 bytes .../main/webapp/performance/image/details_open.png | Bin 3304 -> 0 bytes .../src/main/webapp/performance/image/down.png | Bin 2938 -> 0 bytes .../src/main/webapp/performance/image/filter.png | Bin 7780 -> 0 bytes .../main/webapp/performance/image/statistics.png | Bin 25116 -> 0 bytes .../main/webapp/performance/image/table_icon.png | Bin 1668 -> 0 bytes .../src/main/webapp/performance/image/up.png | Bin 2926 -> 0 bytes .../src/main/webapp/performance/js/alarmConds.js | 276 - .../webapp/performance/js/alarmsServerPageTable.js | 529 - .../src/main/webapp/performance/js/alarmsUtil.js | 1169 - .../src/main/webapp/performance/js/commonUtil.js | 75 - .../webapp/performance/js/curAlarmsController.js | 445 - .../main/webapp/performance/js/performanceChart.js | 196 - .../performance/js/performanceQueryController.js | 810 - .../src/main/webapp/performance/js/pmUtil.js | 473 - .../main/webapp/performance/js/serverPageTable.js | 232 - .../webapp/performance/performance_query_rule.html | 156 - .../main/webapp/performance/performance_view.html | 125 - portal-resmgr/pom.xml | 42 - .../src/main/webapp/resmgr-nfv/conf/License.txt | 362 - .../main/webapp/resmgr-nfv/conf/globalconfig.json | 5 - .../src/main/webapp/resmgr-nfv/css/RMain.css | 239 - .../src/main/webapp/resmgr-nfv/css/VMMain.css | 758 - .../webapp/resmgr-nfv/css/bootstrap-table.min.css | 1 - .../main/webapp/resmgr-nfv/css/bootstrap.min.css | 7 - .../resmgr-nfv/css/jquery.dataTables.min.css | 1 - .../src/main/webapp/resmgr-nfv/css/resmgr.css | 87 - .../src/main/webapp/resmgr-nfv/datacenter.html | 362 - .../src/main/webapp/resmgr-nfv/html/index.html | 32 - .../src/main/webapp/resmgr-nfv/images/License.txt | 362 - .../src/main/webapp/resmgr-nfv/images/add.png | Bin 1104 -> 0 bytes .../webapp/resmgr-nfv/images/arrow-down-enable.png | Bin 1035 -> 0 bytes .../webapp/resmgr-nfv/images/collapse_arrow.png | Bin 1174 -> 0 bytes .../src/main/webapp/resmgr-nfv/images/delete.png | Bin 1100 -> 0 bytes .../src/main/webapp/resmgr-nfv/images/edit.png | Bin 3045 -> 0 bytes .../main/webapp/resmgr-nfv/images/expand_arrow.png | Bin 1182 -> 0 bytes .../resmgr-nfv/images/ideo_default_select.png | Bin 1035 -> 0 bytes .../src/main/webapp/resmgr-nfv/images/import.png | Bin 1250 -> 0 bytes .../src/main/webapp/resmgr-nfv/images/line.png | Bin 139 -> 0 bytes .../resmgr-nfv/images/loading-spinner-grey.gif | Bin 5203 -> 0 bytes .../src/main/webapp/resmgr-nfv/images/openo.png | Bin 49007 -> 0 bytes .../src/main/webapp/resmgr-nfv/images/page_l.png | Bin 1066 -> 0 bytes .../resmgr-nfv/images/page_left_disabled.png | Bin 1066 -> 0 bytes .../src/main/webapp/resmgr-nfv/images/page_r.png | Bin 1070 -> 0 bytes .../src/main/webapp/resmgr-nfv/images/sort_asc.png | Bin 1118 -> 0 bytes .../main/webapp/resmgr-nfv/images/sort_both.png | Bin 1136 -> 0 bytes .../main/webapp/resmgr-nfv/images/sort_desc.png | Bin 1127 -> 0 bytes .../src/main/webapp/resmgr-nfv/js/SendMsg.js | 34 - .../src/main/webapp/resmgr-nfv/js/bootbox.min.js | 6 - .../webapp/resmgr-nfv/js/bootstrap-table.min.js | 8 - .../src/main/webapp/resmgr-nfv/js/bootstrap.min.js | 6 - .../src/main/webapp/resmgr-nfv/js/chart.min.js | 14 - .../src/main/webapp/resmgr-nfv/js/datacenter.js | 260 - .../src/main/webapp/resmgr-nfv/js/gconf.js | 31 - .../main/webapp/resmgr-nfv/js/jquery-1.11.2.min.js | 4 - .../webapp/resmgr-nfv/js/jquery.dataTables.min.js | 155 - .../webapp/resmgr-nfv/js/jquery.validate.min.js | 4 - .../src/main/webapp/resmgr-nfv/js/resmgr.js | 212 - .../src/main/webapp/resmgr-nfv/js/validateset.js | 42 - portal-resmgr/src/main/webapp/resmgr-nfv/js/vim.js | 93 - .../src/main/webapp/resmgr-nfv/location.html | 279 - .../src/main/webapp/resmgr-nfv/resource.html | 135 - portal-resmgr/src/main/webapp/resmgr-nfv/vim.html | 69 - portal-resmgr/src/main/webapp/resmgr-sdn.rar | Bin 165753 -> 0 bytes .../src/main/webapp/resmgr-sdn/conf/License.txt | 362 - .../main/webapp/resmgr-sdn/conf/dataconfig.json | 5 - .../src/main/webapp/resmgr-sdn/css/RMain.css | 239 - .../src/main/webapp/resmgr-sdn/css/VMMain.css | 758 - .../webapp/resmgr-sdn/css/bootstrap-table.min.css | 1 - .../main/webapp/resmgr-sdn/css/bootstrap.min.css | 7 - .../src/main/webapp/resmgr-sdn/images/License.txt | 362 - .../src/main/webapp/resmgr-sdn/images/add.png | Bin 1104 -> 0 bytes .../webapp/resmgr-sdn/images/arrow-down-enable.png | Bin 1035 -> 0 bytes .../webapp/resmgr-sdn/images/collapse_arrow.png | Bin 1174 -> 0 bytes .../src/main/webapp/resmgr-sdn/images/delete.png | Bin 1100 -> 0 bytes .../src/main/webapp/resmgr-sdn/images/edit.png | Bin 3045 -> 0 bytes .../main/webapp/resmgr-sdn/images/expand_arrow.png | Bin 1182 -> 0 bytes .../resmgr-sdn/images/ideo_default_select.png | Bin 1035 -> 0 bytes .../src/main/webapp/resmgr-sdn/images/import.png | Bin 1250 -> 0 bytes .../src/main/webapp/resmgr-sdn/images/line.png | Bin 139 -> 0 bytes .../resmgr-sdn/images/loading-spinner-grey.gif | Bin 5203 -> 0 bytes .../src/main/webapp/resmgr-sdn/images/openo.png | Bin 49007 -> 0 bytes .../src/main/webapp/resmgr-sdn/images/page_l.png | Bin 1066 -> 0 bytes .../resmgr-sdn/images/page_left_disabled.png | Bin 1066 -> 0 bytes .../src/main/webapp/resmgr-sdn/images/page_r.png | Bin 1070 -> 0 bytes .../src/main/webapp/resmgr-sdn/images/sort_asc.png | Bin 1118 -> 0 bytes .../main/webapp/resmgr-sdn/images/sort_both.png | Bin 1136 -> 0 bytes .../main/webapp/resmgr-sdn/images/sort_desc.png | Bin 1127 -> 0 bytes .../js/bootstrap-table-filter-control.min.js | 7 - .../webapp/resmgr-sdn/js/bootstrap-table.min.js | 8 - .../src/main/webapp/resmgr-sdn/js/bootstrap.min.js | 6 - portal-resmgr/src/main/webapp/resmgr-sdn/js/brs.js | 393 - .../main/webapp/resmgr-sdn/js/jquery-1.11.2.min.js | 4 - portal-resmgr/src/main/webapp/resmgr-sdn/link.html | 370 - portal-resmgr/src/main/webapp/resmgr-sdn/ne.html | 401 - portal-resmgr/src/main/webapp/resmgr-sdn/port.html | 389 - .../src/main/webapp/resmgr-sdn/resource.html | 140 - portal-resmgr/src/main/webapp/resmgr-sdn/site.html | 247 - resmgr/pom.xml | 43 + resmgr/src/main/webapp/resmgr-nfv/conf/License.txt | 362 + .../main/webapp/resmgr-nfv/conf/globalconfig.json | 5 + resmgr/src/main/webapp/resmgr-nfv/css/RMain.css | 239 + resmgr/src/main/webapp/resmgr-nfv/css/VMMain.css | 758 + .../webapp/resmgr-nfv}/css/bootstrap-table.min.css | 0 .../main/webapp/resmgr-nfv/css/bootstrap.min.css | 7 + .../resmgr-nfv/css/jquery.dataTables.min.css | 1 + resmgr/src/main/webapp/resmgr-nfv/css/resmgr.css | 87 + resmgr/src/main/webapp/resmgr-nfv/datacenter.html | 362 + resmgr/src/main/webapp/resmgr-nfv/html/index.html | 32 + .../src/main/webapp/resmgr-nfv/images/License.txt | 362 + .../src/main/webapp/resmgr-nfv}/images/add.png | Bin .../resmgr-nfv}/images/arrow-down-enable.png | Bin .../webapp/resmgr-nfv/images/collapse_arrow.png | Bin .../src/main/webapp/resmgr-nfv}/images/delete.png | Bin .../src/main/webapp/resmgr-nfv}/images/edit.png | Bin .../main/webapp/resmgr-nfv/images/expand_arrow.png | Bin .../resmgr-nfv}/images/ideo_default_select.png | Bin .../src/main/webapp/resmgr-nfv}/images/import.png | Bin .../src/main/webapp/resmgr-nfv}/images/line.png | Bin .../resmgr-nfv}/images/loading-spinner-grey.gif | Bin .../src/main/webapp/resmgr-nfv/images/openo.png | Bin .../src/main/webapp/resmgr-nfv}/images/page_l.png | Bin .../resmgr-nfv}/images/page_left_disabled.png | Bin .../src/main/webapp/resmgr-nfv}/images/page_r.png | Bin .../main/webapp/resmgr-nfv}/images/sort_asc.png | Bin .../main/webapp/resmgr-nfv}/images/sort_both.png | Bin .../main/webapp/resmgr-nfv}/images/sort_desc.png | Bin resmgr/src/main/webapp/resmgr-nfv/js/SendMsg.js | 34 + .../src/main/webapp/resmgr-nfv/js/bootbox.min.js | 6 + .../webapp/resmgr-nfv/js/bootstrap-table.min.js | 8 + .../src/main/webapp/resmgr-nfv/js/bootstrap.min.js | 6 + resmgr/src/main/webapp/resmgr-nfv/js/chart.min.js | 14 + resmgr/src/main/webapp/resmgr-nfv/js/datacenter.js | 260 + resmgr/src/main/webapp/resmgr-nfv/js/gconf.js | 31 + .../main/webapp/resmgr-nfv/js/jquery-1.11.2.min.js | 4 + .../webapp/resmgr-nfv/js/jquery.dataTables.min.js | 155 + .../webapp/resmgr-nfv/js/jquery.validate.min.js | 4 + resmgr/src/main/webapp/resmgr-nfv/js/resmgr.js | 212 + .../src/main/webapp/resmgr-nfv/js/validateset.js | 42 + resmgr/src/main/webapp/resmgr-nfv/js/vim.js | 93 + resmgr/src/main/webapp/resmgr-nfv/location.html | 279 + resmgr/src/main/webapp/resmgr-nfv/resource.html | 135 + resmgr/src/main/webapp/resmgr-nfv/vim.html | 69 + .../src/main/webapp/resmgr-sdn.rar | Bin resmgr/src/main/webapp/resmgr-sdn/conf/License.txt | 362 + .../main/webapp/resmgr-sdn/conf/dataconfig.json | 5 + resmgr/src/main/webapp/resmgr-sdn/css/RMain.css | 239 + resmgr/src/main/webapp/resmgr-sdn/css/VMMain.css | 758 + .../webapp/resmgr-sdn}/css/bootstrap-table.min.css | 0 .../main/webapp/resmgr-sdn/css/bootstrap.min.css | 7 + .../src/main/webapp/resmgr-sdn/images/License.txt | 362 + .../src/main/webapp/resmgr-sdn}/images/add.png | Bin .../resmgr-sdn}/images/arrow-down-enable.png | Bin .../webapp/resmgr-sdn/images/collapse_arrow.png | Bin .../src/main/webapp/resmgr-sdn}/images/delete.png | Bin .../src/main/webapp/resmgr-sdn}/images/edit.png | Bin .../main/webapp/resmgr-sdn/images/expand_arrow.png | Bin .../resmgr-sdn}/images/ideo_default_select.png | Bin .../src/main/webapp/resmgr-sdn}/images/import.png | Bin .../src/main/webapp/resmgr-sdn}/images/line.png | Bin .../resmgr-sdn}/images/loading-spinner-grey.gif | Bin .../src/main/webapp/resmgr-sdn/images/openo.png | Bin .../src/main/webapp/resmgr-sdn}/images/page_l.png | Bin .../resmgr-sdn}/images/page_left_disabled.png | Bin .../src/main/webapp/resmgr-sdn}/images/page_r.png | Bin .../main/webapp/resmgr-sdn}/images/sort_asc.png | Bin .../main/webapp/resmgr-sdn}/images/sort_both.png | Bin .../main/webapp/resmgr-sdn}/images/sort_desc.png | Bin .../js/bootstrap-table-filter-control.min.js | 7 + .../webapp/resmgr-sdn/js/bootstrap-table.min.js | 8 + .../src/main/webapp/resmgr-sdn/js/bootstrap.min.js | 6 + resmgr/src/main/webapp/resmgr-sdn/js/brs.js | 393 + .../main/webapp/resmgr-sdn/js/jquery-1.11.2.min.js | 4 + resmgr/src/main/webapp/resmgr-sdn/link.html | 370 + resmgr/src/main/webapp/resmgr-sdn/ne.html | 401 + resmgr/src/main/webapp/resmgr-sdn/port.html | 389 + resmgr/src/main/webapp/resmgr-sdn/resource.html | 140 + resmgr/src/main/webapp/resmgr-sdn/site.html | 247 + 3249 files changed, 55819 insertions(+), 619603 deletions(-) create mode 100644 auth/pom.xml create mode 100644 auth/src/main/webapp/user/changePassword.html create mode 100644 auth/src/main/webapp/user/createUser.html create mode 100644 auth/src/main/webapp/user/css/component.css create mode 100644 auth/src/main/webapp/user/css/user.css create mode 100644 auth/src/main/webapp/user/images/License.txt rename {openo-portal/portal-auth => auth}/src/main/webapp/user/images/add.png (100%) rename {openo-portal/portal-auth => auth}/src/main/webapp/user/images/delete.png (100%) rename {openo-portal/portal-auth => auth}/src/main/webapp/user/images/edit.bak.png (100%) rename {openo-portal/portal-auth => auth}/src/main/webapp/user/images/edit.png (100%) rename {openo-portal/portal-auth => auth}/src/main/webapp/user/images/reset.bak.png (100%) rename {openo-portal/portal-auth => auth}/src/main/webapp/user/images/reset.png (100%) create mode 100644 auth/src/main/webapp/user/js/changePassword.js create mode 100644 auth/src/main/webapp/user/js/createUser.js create mode 100644 auth/src/main/webapp/user/js/modifyUser.js create mode 100644 auth/src/main/webapp/user/js/user.js create mode 100644 auth/src/main/webapp/user/js/userTools.js create mode 100644 auth/src/main/webapp/user/modifyUser.html create mode 100644 auth/src/main/webapp/user/user.html create mode 100644 catalog/pom.xml create mode 100644 catalog/src/main/webapp/catalog/csarPackage.html create mode 100644 catalog/src/main/webapp/catalog/css/datatable-sort.css create mode 100644 catalog/src/main/webapp/catalog/css/fileupload.css create mode 100644 catalog/src/main/webapp/catalog/css/hostMirror.css create mode 100644 catalog/src/main/webapp/catalog/css/package.css create mode 100644 catalog/src/main/webapp/catalog/css/platform/animate.min.css create mode 100644 catalog/src/main/webapp/catalog/css/platform/skill.css create mode 100644 catalog/src/main/webapp/catalog/css/software.css create mode 100644 catalog/src/main/webapp/catalog/css/template.css create mode 100644 catalog/src/main/webapp/catalog/css/templateDetail.css create mode 100644 catalog/src/main/webapp/catalog/css/topology.css create mode 100644 catalog/src/main/webapp/catalog/css/virtualApplication.css create mode 100644 catalog/src/main/webapp/catalog/css/vnfm.css create mode 100644 catalog/src/main/webapp/catalog/i18n/nfv-nso-iui-i18n-en-US.properties create mode 100644 catalog/src/main/webapp/catalog/i18n/nfv-nso-iui-i18n-zh-CN.properties create mode 100644 catalog/src/main/webapp/catalog/image/License.txt rename {openo-portal/portal-catalog => catalog}/src/main/webapp/catalog/image/details_close.png (100%) rename {openo-portal/portal-catalog => catalog}/src/main/webapp/catalog/image/details_open.png (100%) rename {openo-portal/portal-catalog => catalog}/src/main/webapp/catalog/image/down.png (100%) rename {openo-portal/portal-catalog => catalog}/src/main/webapp/catalog/image/pointes_blue.png (100%) rename {openo-portal/portal-catalog => catalog}/src/main/webapp/catalog/image/pointes_green.png (100%) rename {openo-portal/portal-catalog => catalog}/src/main/webapp/catalog/image/sort_asc.png (100%) rename {openo-portal/portal-catalog => catalog}/src/main/webapp/catalog/image/sort_asc_disabled.png (100%) rename {openo-portal/portal-catalog => catalog}/src/main/webapp/catalog/image/sort_both.png (100%) rename {openo-portal/portal-catalog => catalog}/src/main/webapp/catalog/image/sort_desc.png (100%) rename {openo-portal/portal-catalog => catalog}/src/main/webapp/catalog/image/sort_desc_disabled.png (100%) rename {openo-portal/portal-catalog => catalog}/src/main/webapp/catalog/image/up.png (100%) create mode 100644 catalog/src/main/webapp/catalog/js/component/commonUtil.js create mode 100644 catalog/src/main/webapp/catalog/js/component/loadi18n_nsoc.js create mode 100644 catalog/src/main/webapp/catalog/js/component/serverPageTable.js create mode 100644 catalog/src/main/webapp/catalog/js/package/pmController.js create mode 100644 catalog/src/main/webapp/catalog/js/package/pmUtil.js create mode 100644 catalog/src/main/webapp/catalog/js/template/tmController.js create mode 100644 catalog/src/main/webapp/catalog/js/template/tmDetailController.js create mode 100644 catalog/src/main/webapp/catalog/js/template/tmDetailUtil.js create mode 100644 catalog/src/main/webapp/catalog/js/template/tmNodesController.js create mode 100644 catalog/src/main/webapp/catalog/js/template/tmNodesDetailUtil.js create mode 100644 catalog/src/main/webapp/catalog/js/template/tmTopoController.js create mode 100644 catalog/src/main/webapp/catalog/js/template/tmUtil.js create mode 100644 catalog/src/main/webapp/catalog/js/template/topoUtil.js create mode 100644 catalog/src/main/webapp/catalog/nodesDetail.html create mode 100644 catalog/src/main/webapp/catalog/template.html create mode 100644 catalog/src/main/webapp/catalog/templateDetail.html create mode 100644 catalog/src/main/webapp/catalog/topology.html create mode 100644 catalog/src/main/webapp/catalog/topologyDetail.html create mode 100644 common/pom.xml create mode 100644 common/src/main/webapp/framework/appserver/api.js create mode 100644 common/src/main/webapp/framework/appserver/server.js rename {portal-common => common}/src/main/webapp/framework/appserver/start_node.sh (100%) create mode 100644 common/src/main/webapp/framework/browser/css/open-ostyle.css rename {portal-common => common}/src/main/webapp/framework/browser/index.html (100%) rename {portal-common => common}/src/main/webapp/framework/browser/js/DataService.js (100%) create mode 100644 common/src/main/webapp/framework/browser/js/app.js create mode 100644 common/src/main/webapp/framework/browser/template.html create mode 100644 common/src/main/webapp/framework/browser/templates/accordion.html create mode 100644 common/src/main/webapp/framework/browser/templates/buttons.html create mode 100644 common/src/main/webapp/framework/browser/templates/checkBoxes.html rename {portal-common => common}/src/main/webapp/framework/browser/templates/courses.html (100%) create mode 100644 common/src/main/webapp/framework/browser/templates/dropdown.html rename {portal-common => common}/src/main/webapp/framework/browser/templates/functional.html (100%) rename {portal-common => common}/src/main/webapp/framework/browser/templates/home.html (100%) create mode 100644 common/src/main/webapp/framework/browser/templates/list.html create mode 100644 common/src/main/webapp/framework/browser/templates/login.html create mode 100644 common/src/main/webapp/framework/browser/templates/management.html rename {portal-common => common}/src/main/webapp/framework/browser/templates/notification.html (100%) create mode 100644 common/src/main/webapp/framework/browser/templates/radioButtons.html create mode 100644 common/src/main/webapp/framework/browser/templates/register.html create mode 100644 common/src/main/webapp/framework/browser/templates/table.html create mode 100644 common/src/main/webapp/framework/browser/templates/tabs.html create mode 100644 common/src/main/webapp/framework/browser/templates/textarea.html create mode 100644 common/src/main/webapp/framework/browser/templates/tree.html create mode 100644 common/src/main/webapp/framework/browser/templates/verticalTab.html rename {portal-common => common}/src/main/webapp/framework/browser/thirdparty/css/bootstrap.min.css (100%) rename {portal-common => common}/src/main/webapp/framework/browser/thirdparty/css/img/Thumbs.db (100%) rename {openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle => common/src/main/webapp/framework/browser/thirdparty/css}/img/diy/1_close.png (100%) rename {openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle => common/src/main/webapp/framework/browser/thirdparty/css}/img/diy/1_open.png (100%) rename {openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle => common/src/main/webapp/framework/browser/thirdparty/css}/img/diy/2.png (100%) rename {openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle => common/src/main/webapp/framework/browser/thirdparty/css}/img/diy/3.png (100%) rename {openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle => common/src/main/webapp/framework/browser/thirdparty/css}/img/diy/4.png (100%) rename {openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle => common/src/main/webapp/framework/browser/thirdparty/css}/img/diy/5.png (100%) rename {openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle => common/src/main/webapp/framework/browser/thirdparty/css}/img/diy/6.png (100%) rename {openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle => common/src/main/webapp/framework/browser/thirdparty/css}/img/diy/7.png (100%) rename {openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle => common/src/main/webapp/framework/browser/thirdparty/css}/img/diy/8.png (100%) rename {openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle => common/src/main/webapp/framework/browser/thirdparty/css}/img/diy/9.png (100%) rename {openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle => common/src/main/webapp/framework/browser/thirdparty/css}/img/line_conn.gif (100%) rename {openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle => common/src/main/webapp/framework/browser/thirdparty/css}/img/loading.gif (100%) rename {openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle => common/src/main/webapp/framework/browser/thirdparty/css}/img/zTreeStandard.gif (100%) rename {portal-common => common}/src/main/webapp/framework/browser/thirdparty/css/img/zTreeStandard.png (100%) create mode 100644 common/src/main/webapp/framework/browser/thirdparty/css/magic-check.css rename {portal-common => common}/src/main/webapp/framework/browser/thirdparty/css/zTreeStyle.css (100%) rename {openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap => common/src/main/webapp/framework/browser/thirdparty}/fonts/glyphicons-halflings-regular.eot (100%) rename {portal-common => common}/src/main/webapp/framework/browser/thirdparty/fonts/glyphicons-halflings-regular.svg (100%) rename {openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap => common/src/main/webapp/framework/browser/thirdparty}/fonts/glyphicons-halflings-regular.ttf (100%) rename {openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap => common/src/main/webapp/framework/browser/thirdparty}/fonts/glyphicons-halflings-regular.woff (100%) rename {openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap => common/src/main/webapp/framework/browser/thirdparty}/fonts/glyphicons-halflings-regular.woff2 (100%) rename {openo-portal/portal-common/src/main/webapp/common/image => common/src/main/webapp/framework/browser/thirdparty/images}/collapse_arrow.png (100%) rename {openo-portal/portal-common/src/main/webapp/common/image => common/src/main/webapp/framework/browser/thirdparty/images}/expand_arrow.png (100%) rename {openo-portal/portal-common/src/main/webapp/common/image => common/src/main/webapp/framework/browser/thirdparty/images}/openo.png (100%) rename {portal-common => common}/src/main/webapp/framework/browser/thirdparty/images/searchicon.png (100%) create mode 100644 common/src/main/webapp/framework/browser/thirdparty/js/angular-ui-router.min.js rename {portal-common => common}/src/main/webapp/framework/browser/thirdparty/js/angular.min.js (100%) create mode 100644 common/src/main/webapp/framework/browser/thirdparty/js/bootstrap-table-filter-control.min.js rename {portal-common => common}/src/main/webapp/framework/browser/thirdparty/js/bootstrap-table.min.js (100%) rename {portal-common => common}/src/main/webapp/framework/browser/thirdparty/js/bootstrap.min.js (100%) create mode 100644 common/src/main/webapp/framework/browser/thirdparty/js/jquery.ztree.core-3.5.js create mode 100644 common/src/main/webapp/framework/browser/thirdparty/js/jquery_1.12.4.min.js create mode 100644 common/src/main/webapp/framework/browser/thirdparty/js/mustache.js create mode 100644 common/src/main/webapp/framework/browser/thirdparty/js/tree.jquery.js create mode 100644 extsys/pom.xml create mode 100644 extsys/src/main/webapp/extsys/sdncontroller/conf/License.txt create mode 100644 extsys/src/main/webapp/extsys/sdncontroller/conf/dataconfig.json create mode 100644 extsys/src/main/webapp/extsys/sdncontroller/controller.html create mode 100644 extsys/src/main/webapp/extsys/sdncontroller/css/RMain.css create mode 100644 extsys/src/main/webapp/extsys/sdncontroller/css/VMMain.css rename {openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-table => extsys/src/main/webapp/extsys/sdncontroller/css}/bootstrap-table.min.css (100%) create mode 100644 extsys/src/main/webapp/extsys/sdncontroller/css/bootstrap.min.css create mode 100644 extsys/src/main/webapp/extsys/sdncontroller/images/License.txt rename {openo-portal/portal-common/src/main/webapp/common/image => extsys/src/main/webapp/extsys/sdncontroller/images}/add.png (100%) rename {openo-portal/portal-common/src/main/webapp/common/image => extsys/src/main/webapp/extsys/sdncontroller/images}/arrow-down-enable.png (100%) rename {openo-portal/portal-extsys => extsys}/src/main/webapp/extsys/sdncontroller/images/collapse_arrow.png (100%) rename {openo-portal/portal-common/src/main/webapp/common/image => extsys/src/main/webapp/extsys/sdncontroller/images}/delete.png (100%) rename {openo-portal/portal-common/src/main/webapp/common/image => extsys/src/main/webapp/extsys/sdncontroller/images}/edit.png (100%) rename {openo-portal/portal-extsys => extsys}/src/main/webapp/extsys/sdncontroller/images/expand_arrow.png (100%) rename {openo-portal/portal-common/src/main/webapp/common/image => extsys/src/main/webapp/extsys/sdncontroller/images}/ideo_default_select.png (100%) rename {openo-portal/portal-common/src/main/webapp/common/image => extsys/src/main/webapp/extsys/sdncontroller/images}/import.png (100%) rename {openo-portal/portal-common/src/main/webapp/common/image => extsys/src/main/webapp/extsys/sdncontroller/images}/line.png (100%) rename {openo-portal/portal-common/src/main/webapp/common/image => extsys/src/main/webapp/extsys/sdncontroller/images}/loading-spinner-grey.gif (100%) rename {openo-portal/portal-extsys => extsys}/src/main/webapp/extsys/sdncontroller/images/openo.png (100%) rename {openo-portal/portal-common/src/main/webapp/common/image => extsys/src/main/webapp/extsys/sdncontroller/images}/page_l.png (100%) rename {openo-portal/portal-common/src/main/webapp/common/image => extsys/src/main/webapp/extsys/sdncontroller/images}/page_left_disabled.png (100%) rename {openo-portal/portal-common/src/main/webapp/common/image => extsys/src/main/webapp/extsys/sdncontroller/images}/page_r.png (100%) rename {openo-portal/portal-common/src/main/webapp/common/image => extsys/src/main/webapp/extsys/sdncontroller/images}/sort_asc.png (100%) rename {openo-portal/portal-common/src/main/webapp/common/image => extsys/src/main/webapp/extsys/sdncontroller/images}/sort_both.png (100%) rename {openo-portal/portal-common/src/main/webapp/common/image => extsys/src/main/webapp/extsys/sdncontroller/images}/sort_desc.png (100%) create mode 100644 extsys/src/main/webapp/extsys/sdncontroller/js/bootstrap-table-filter-control.min.js create mode 100644 extsys/src/main/webapp/extsys/sdncontroller/js/bootstrap-table.min.js create mode 100644 extsys/src/main/webapp/extsys/sdncontroller/js/bootstrap.min.js create mode 100644 extsys/src/main/webapp/extsys/sdncontroller/js/controller.js create mode 100644 extsys/src/main/webapp/extsys/sdncontroller/js/jquery-1.11.2.min.js create mode 100644 extsys/src/main/webapp/extsys/vim/css/bootstrap.css create mode 100644 extsys/src/main/webapp/extsys/vim/css/skill.css create mode 100644 extsys/src/main/webapp/extsys/vim/css/vim.css create mode 100644 extsys/src/main/webapp/extsys/vim/css/vimChart.css create mode 100644 extsys/src/main/webapp/extsys/vim/i18n/loadi18nApp.js create mode 100644 extsys/src/main/webapp/extsys/vim/i18n/roc-vim-iui-i18n-en-US.properties create mode 100644 extsys/src/main/webapp/extsys/vim/i18n/roc-vim-iui-i18n-zh-CN.properties create mode 100644 extsys/src/main/webapp/extsys/vim/js/client-cometd.js create mode 100644 extsys/src/main/webapp/extsys/vim/js/jqBootstrapValidation.js create mode 100644 extsys/src/main/webapp/extsys/vim/js/vim-validate.js create mode 100644 extsys/src/main/webapp/extsys/vim/js/vimChart.js create mode 100644 extsys/src/main/webapp/extsys/vim/js/vimChartController.js create mode 100644 extsys/src/main/webapp/extsys/vim/js/vimController.js create mode 100644 extsys/src/main/webapp/extsys/vim/js/vimUtil.js create mode 100644 extsys/src/main/webapp/extsys/vim/vimChart.html create mode 100644 extsys/src/main/webapp/extsys/vim/vimView.html create mode 100644 extsys/src/main/webapp/extsys/vnfm/css/animate.min.css create mode 100644 extsys/src/main/webapp/extsys/vnfm/css/vnfm.css create mode 100644 extsys/src/main/webapp/extsys/vnfm/i18n/nfv-nso-iui-i18n-en-US.properties create mode 100644 extsys/src/main/webapp/extsys/vnfm/i18n/nfv-nso-iui-i18n-zh-CN.properties create mode 100644 extsys/src/main/webapp/extsys/vnfm/js/commonUtil.js create mode 100644 extsys/src/main/webapp/extsys/vnfm/js/loadi18n_nsoc.js create mode 100644 extsys/src/main/webapp/extsys/vnfm/js/vnfm-validate.js create mode 100644 extsys/src/main/webapp/extsys/vnfm/js/vnfmController.js create mode 100644 extsys/src/main/webapp/extsys/vnfm/js/vnfmUtil.js create mode 100644 extsys/src/main/webapp/extsys/vnfm/vnfmView.html create mode 100644 integration/pom.xml rename {openo-portal/portal-package => integration}/src/main/java/org/openo/portal/bean/MsbRegisterBean.java (100%) rename {openo-portal/portal-package => integration}/src/main/java/org/openo/portal/bean/ServiceNodeBean.java (100%) rename {openo-portal/portal-package => integration}/src/main/java/org/openo/portal/system/CommonUtil.java (100%) rename {openo-portal/portal-package => integration}/src/main/java/org/openo/portal/system/Constants.java (100%) rename {openo-portal/portal-package => integration}/src/main/java/org/openo/portal/system/RegisterService.java (100%) rename {openo-portal/portal-package => integration}/src/main/java/org/openo/portal/system/SystemListener.java (100%) rename {openo-portal/portal-package => integration}/src/main/resources/logback.xml (100%) create mode 100644 integration/src/main/resources/portalConfig/msb_register.xml create mode 100644 integration/src/main/webapp/WEB-INF/web.xml create mode 100644 lifecyclemgr/pom.xml create mode 100644 lifecyclemgr/src/main/webapp/lifecyclemgr/InputData.html create mode 100644 lifecyclemgr/src/main/webapp/lifecyclemgr/TopoAccor.html create mode 100644 lifecyclemgr/src/main/webapp/lifecyclemgr/UnderLay_TP.html create mode 100644 lifecyclemgr/src/main/webapp/lifecyclemgr/accorTables.html create mode 100644 lifecyclemgr/src/main/webapp/lifecyclemgr/chartTopo.html create mode 100644 lifecyclemgr/src/main/webapp/lifecyclemgr/conf/License.txt create mode 100644 lifecyclemgr/src/main/webapp/lifecyclemgr/conf/dataconfig.json create mode 100644 lifecyclemgr/src/main/webapp/lifecyclemgr/css/RMain.css create mode 100644 lifecyclemgr/src/main/webapp/lifecyclemgr/css/VMMain.css rename {openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller => lifecyclemgr/src/main/webapp/lifecyclemgr}/css/bootstrap-table.min.css (100%) create mode 100644 lifecyclemgr/src/main/webapp/lifecyclemgr/css/bootstrap.min.css create mode 100644 lifecyclemgr/src/main/webapp/lifecyclemgr/css/jquery-ui-1.12.1.min.css create mode 100644 lifecyclemgr/src/main/webapp/lifecyclemgr/gsolcmmain.html create mode 100644 lifecyclemgr/src/main/webapp/lifecyclemgr/i18n/lcm-template-parameters-i18n-en-US.properties create mode 100644 lifecyclemgr/src/main/webapp/lifecyclemgr/images/License.txt rename {openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller => lifecyclemgr/src/main/webapp/lifecyclemgr}/images/add.png (100%) rename {openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller => lifecyclemgr/src/main/webapp/lifecyclemgr}/images/arrow-down-enable.png (100%) rename {openo-portal/portal-lifecyclemgr => lifecyclemgr}/src/main/webapp/lifecyclemgr/images/collapse_arrow.png (100%) rename {openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller => lifecyclemgr/src/main/webapp/lifecyclemgr}/images/delete.png (100%) rename {openo-portal/portal-lifecyclemgr => lifecyclemgr}/src/main/webapp/lifecyclemgr/images/edit.bak.png (100%) rename {openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller => lifecyclemgr/src/main/webapp/lifecyclemgr}/images/edit.png (100%) rename {openo-portal/portal-lifecyclemgr => lifecyclemgr}/src/main/webapp/lifecyclemgr/images/expand_arrow.png (100%) rename {openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller => lifecyclemgr/src/main/webapp/lifecyclemgr}/images/ideo_default_select.png (100%) rename {openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller => lifecyclemgr/src/main/webapp/lifecyclemgr}/images/import.png (100%) rename {openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller => lifecyclemgr/src/main/webapp/lifecyclemgr}/images/line.png (100%) rename {openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables => lifecyclemgr/src/main/webapp/lifecyclemgr}/images/loading-spinner-grey.gif (100%) rename {openo-portal/portal-lifecyclemgr => lifecyclemgr}/src/main/webapp/lifecyclemgr/images/loading.gif (100%) rename {openo-portal/portal-lifecyclemgr => lifecyclemgr}/src/main/webapp/lifecyclemgr/images/openo.png (100%) rename {openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller => lifecyclemgr/src/main/webapp/lifecyclemgr}/images/page_l.png (100%) rename {openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller => lifecyclemgr/src/main/webapp/lifecyclemgr}/images/page_left_disabled.png (100%) rename {openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller => lifecyclemgr/src/main/webapp/lifecyclemgr}/images/page_r.png (100%) rename {openo-portal/portal-lifecyclemgr => lifecyclemgr}/src/main/webapp/lifecyclemgr/images/reset.png (100%) rename {openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables => lifecyclemgr/src/main/webapp/lifecyclemgr}/images/sort_asc.png (100%) rename {openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables => lifecyclemgr/src/main/webapp/lifecyclemgr}/images/sort_both.png (100%) rename {openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables => lifecyclemgr/src/main/webapp/lifecyclemgr}/images/sort_desc.png (100%) create mode 100644 lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/License.txt rename {openo-portal/portal-lifecyclemgr => lifecyclemgr}/src/main/webapp/lifecyclemgr/images/topo/NEDOWN.png (100%) rename {openo-portal/portal-lifecyclemgr => lifecyclemgr}/src/main/webapp/lifecyclemgr/images/topo/NEDOWN_selected.png (100%) rename {openo-portal/portal-lifecyclemgr => lifecyclemgr}/src/main/webapp/lifecyclemgr/images/topo/NETWORK.png (100%) rename {openo-portal/portal-lifecyclemgr => lifecyclemgr}/src/main/webapp/lifecyclemgr/images/topo/NETWORK_EDGE.png (100%) rename {openo-portal/portal-lifecyclemgr => lifecyclemgr}/src/main/webapp/lifecyclemgr/images/topo/NETWORK_selected.png (100%) rename {openo-portal/portal-lifecyclemgr => lifecyclemgr}/src/main/webapp/lifecyclemgr/images/topo/NEUP.png (100%) rename {openo-portal/portal-lifecyclemgr => lifecyclemgr}/src/main/webapp/lifecyclemgr/images/topo/NEUP_selected.png (100%) rename {openo-portal/portal-lifecyclemgr => lifecyclemgr}/src/main/webapp/lifecyclemgr/images/topo/OTHER.png (100%) rename {openo-portal/portal-lifecyclemgr => lifecyclemgr}/src/main/webapp/lifecyclemgr/images/topo/OTHER_0.png (100%) rename {openo-portal/portal-lifecyclemgr => lifecyclemgr}/src/main/webapp/lifecyclemgr/images/topo/OTHER_0_selected.png (100%) rename {openo-portal/portal-lifecyclemgr => lifecyclemgr}/src/main/webapp/lifecyclemgr/images/topo/OTHER_1.png (100%) rename {openo-portal/portal-lifecyclemgr => lifecyclemgr}/src/main/webapp/lifecyclemgr/images/topo/OTHER_1_selected.png (100%) rename {openo-portal/portal-lifecyclemgr => lifecyclemgr}/src/main/webapp/lifecyclemgr/images/topo/OTHER_2.png (100%) rename {openo-portal/portal-lifecyclemgr => lifecyclemgr}/src/main/webapp/lifecyclemgr/images/topo/OTHER_2_selected.png (100%) rename {openo-portal/portal-lifecyclemgr => lifecyclemgr}/src/main/webapp/lifecyclemgr/images/topo/OTHER_3.png (100%) rename {openo-portal/portal-lifecyclemgr => lifecyclemgr}/src/main/webapp/lifecyclemgr/images/topo/OTHER_3_selected.png (100%) rename {openo-portal/portal-lifecyclemgr => lifecyclemgr}/src/main/webapp/lifecyclemgr/images/topo/OTHER_selected.png (100%) rename {openo-portal/portal-lifecyclemgr => lifecyclemgr}/src/main/webapp/lifecyclemgr/images/topo/cloud.png (100%) rename {openo-portal/portal-lifecyclemgr => lifecyclemgr}/src/main/webapp/lifecyclemgr/images/topo/cloudroute.png (100%) rename {openo-portal/portal-lifecyclemgr => lifecyclemgr}/src/main/webapp/lifecyclemgr/images/topo/crossSubnet.png (100%) rename {openo-portal/portal-lifecyclemgr => lifecyclemgr}/src/main/webapp/lifecyclemgr/images/topo/delete_asbr.png (100%) rename {openo-portal/portal-lifecyclemgr => lifecyclemgr}/src/main/webapp/lifecyclemgr/images/topo/mark_sink.png (100%) rename {openo-portal/portal-lifecyclemgr => lifecyclemgr}/src/main/webapp/lifecyclemgr/images/topo/mark_source.png (100%) rename {openo-portal/portal-lifecyclemgr => lifecyclemgr}/src/main/webapp/lifecyclemgr/images/topo/networkdown.png (100%) rename {portal-lifecyclemgr => lifecyclemgr}/src/main/webapp/lifecyclemgr/images/topo/node_gray.png (100%) rename {openo-portal/portal-lifecyclemgr => lifecyclemgr}/src/main/webapp/lifecyclemgr/images/topo/node_green.png (100%) rename {openo-portal/portal-lifecyclemgr => lifecyclemgr}/src/main/webapp/lifecyclemgr/images/topo/node_red.png (100%) rename {openo-portal/portal-lifecyclemgr => lifecyclemgr}/src/main/webapp/lifecyclemgr/images/topo/router.png (100%) rename {openo-portal/portal-lifecyclemgr => lifecyclemgr}/src/main/webapp/lifecyclemgr/images/topo/router_selected.png (100%) rename {openo-portal/portal-lifecyclemgr => lifecyclemgr}/src/main/webapp/lifecyclemgr/images/topo/site.png (100%) rename {openo-portal/portal-lifecyclemgr => lifecyclemgr}/src/main/webapp/lifecyclemgr/images/topo/siteIcon_feature.png (100%) rename {openo-portal/portal-lifecyclemgr => lifecyclemgr}/src/main/webapp/lifecyclemgr/images/topo/site_selected.png (100%) rename {openo-portal/portal-lifecyclemgr => lifecyclemgr}/src/main/webapp/lifecyclemgr/images/topo/sitedown.png (100%) rename {openo-portal/portal-lifecyclemgr => lifecyclemgr}/src/main/webapp/lifecyclemgr/images/topo/sitedown_selected.png (100%) rename {openo-portal/portal-lifecyclemgr => lifecyclemgr}/src/main/webapp/lifecyclemgr/images/topo/u1963.png (100%) create mode 100644 lifecyclemgr/src/main/webapp/lifecyclemgr/js/bootstrap-table-filter-control.min.js create mode 100644 lifecyclemgr/src/main/webapp/lifecyclemgr/js/bootstrap-table.min.js create mode 100644 lifecyclemgr/src/main/webapp/lifecyclemgr/js/bootstrap.min.js create mode 100644 lifecyclemgr/src/main/webapp/lifecyclemgr/js/brs.js create mode 100644 lifecyclemgr/src/main/webapp/lifecyclemgr/js/gsolcm.js create mode 100644 lifecyclemgr/src/main/webapp/lifecyclemgr/js/jquery-1.11.2.min.js create mode 100644 lifecyclemgr/src/main/webapp/lifecyclemgr/js/jquery-ui-1.12.1.min.js create mode 100644 lifecyclemgr/src/main/webapp/lifecyclemgr/js/jquery.bootstrap-growl.min.js create mode 100644 lifecyclemgr/src/main/webapp/lifecyclemgr/js/jquery.isloading.min.js create mode 100644 lifecyclemgr/src/main/webapp/lifecyclemgr/js/rest.js create mode 100644 lifecyclemgr/src/main/webapp/lifecyclemgr/js/tmNodesController.js create mode 100644 lifecyclemgr/src/main/webapp/lifecyclemgr/js/tmTopoController.js create mode 100644 lifecyclemgr/src/main/webapp/lifecyclemgr/js/topo/Edge.js create mode 100644 lifecyclemgr/src/main/webapp/lifecyclemgr/js/topo/Node.js create mode 100644 lifecyclemgr/src/main/webapp/lifecyclemgr/js/topo/OverlayTopology.js create mode 100644 lifecyclemgr/src/main/webapp/lifecyclemgr/js/topo/sigma/sigma.min.js create mode 100644 lifecyclemgr/src/main/webapp/lifecyclemgr/js/topo/sigma/sigma.renderers.customShapes.min.js create mode 100644 lifecyclemgr/src/main/webapp/lifecyclemgr/js/topo/sigma/sigma.renderers.edgeLabels.min.js create mode 100644 lifecyclemgr/src/main/webapp/lifecyclemgr/js/underlay.js create mode 100644 lifecyclemgr/src/main/webapp/lifecyclemgr/js/vpn.js create mode 100644 lifecyclemgr/src/main/webapp/lifecyclemgr/lcm_detail_nfvo_nodesinfo.html create mode 100644 lifecyclemgr/src/main/webapp/lifecyclemgr/lcm_detail_nfvo_topology.html create mode 100644 lifecyclemgr/src/main/webapp/lifecyclemgr/newShow.html create mode 100644 lifecyclemgr/src/main/webapp/lifecyclemgr/overlayvpn.html create mode 100644 lifecyclemgr/src/main/webapp/lifecyclemgr/overlayvpn_topo.html create mode 100644 lifecyclemgr/src/main/webapp/lifecyclemgr/sdnovpn.html create mode 100644 lifecyclemgr/src/main/webapp/lifecyclemgr/underlayvpn.html create mode 100644 login/pom.xml create mode 100644 login/src/main/webapp/login/html/login.html create mode 100644 monitor/pom.xml create mode 100644 monitor/src/main/webapp/monitor/css/dac.css create mode 100644 monitor/src/main/webapp/monitor/css/monitorSetting.css create mode 100644 monitor/src/main/webapp/monitor/dacList.html create mode 100644 monitor/src/main/webapp/monitor/i18n/umc-monitor-iui-i18n-en-US.properties create mode 100644 monitor/src/main/webapp/monitor/images/License.txt rename {openo-portal/portal-monitor => monitor}/src/main/webapp/monitor/images/throbber.gif (100%) create mode 100644 monitor/src/main/webapp/monitor/js/dacController.js create mode 100644 monitor/src/main/webapp/monitor/js/loadi18nApp_ngict-umc-monitor.js create mode 100644 monitor/src/main/webapp/monitor/js/monitorSettingController.js create mode 100644 monitor/src/main/webapp/monitor/js/monitorSettingUtil.js create mode 100644 monitor/src/main/webapp/monitor/monitorSetting.html create mode 100644 monitor/src/main/webapp/monitor/monitorSettingList.html delete mode 100644 openo-portal/pom.xml delete mode 100644 openo-portal/portal-auth/pom.xml delete mode 100644 openo-portal/portal-auth/src/main/webapp/user/changePassword.html delete mode 100644 openo-portal/portal-auth/src/main/webapp/user/createUser.html delete mode 100644 openo-portal/portal-auth/src/main/webapp/user/css/component.css delete mode 100644 openo-portal/portal-auth/src/main/webapp/user/css/user.css delete mode 100644 openo-portal/portal-auth/src/main/webapp/user/images/License.txt delete mode 100644 openo-portal/portal-auth/src/main/webapp/user/js/changePassword.js delete mode 100644 openo-portal/portal-auth/src/main/webapp/user/js/createUser.js delete mode 100644 openo-portal/portal-auth/src/main/webapp/user/js/modifyUser.js delete mode 100644 openo-portal/portal-auth/src/main/webapp/user/js/user.js delete mode 100644 openo-portal/portal-auth/src/main/webapp/user/js/userTools.js delete mode 100644 openo-portal/portal-auth/src/main/webapp/user/modifyUser.html delete mode 100644 openo-portal/portal-auth/src/main/webapp/user/user.html delete mode 100644 openo-portal/portal-catalog/pom.xml delete mode 100644 openo-portal/portal-catalog/src/main/webapp/catalog/csarPackage.html delete mode 100644 openo-portal/portal-catalog/src/main/webapp/catalog/css/datatable-sort.css delete mode 100644 openo-portal/portal-catalog/src/main/webapp/catalog/css/fileupload.css delete mode 100644 openo-portal/portal-catalog/src/main/webapp/catalog/css/hostMirror.css delete mode 100644 openo-portal/portal-catalog/src/main/webapp/catalog/css/package.css delete mode 100644 openo-portal/portal-catalog/src/main/webapp/catalog/css/platform/animate.min.css delete mode 100644 openo-portal/portal-catalog/src/main/webapp/catalog/css/platform/skill.css delete mode 100644 openo-portal/portal-catalog/src/main/webapp/catalog/css/software.css delete mode 100644 openo-portal/portal-catalog/src/main/webapp/catalog/css/template.css delete mode 100644 openo-portal/portal-catalog/src/main/webapp/catalog/css/templateDetail.css delete mode 100644 openo-portal/portal-catalog/src/main/webapp/catalog/css/topology.css delete mode 100644 openo-portal/portal-catalog/src/main/webapp/catalog/css/virtualApplication.css delete mode 100644 openo-portal/portal-catalog/src/main/webapp/catalog/css/vnfm.css delete mode 100644 openo-portal/portal-catalog/src/main/webapp/catalog/i18n/nfv-nso-iui-i18n-en-US.properties delete mode 100644 openo-portal/portal-catalog/src/main/webapp/catalog/i18n/nfv-nso-iui-i18n-zh-CN.properties delete mode 100644 openo-portal/portal-catalog/src/main/webapp/catalog/image/License.txt delete mode 100644 openo-portal/portal-catalog/src/main/webapp/catalog/js/component/commonUtil.js delete mode 100644 openo-portal/portal-catalog/src/main/webapp/catalog/js/component/loadi18n_nsoc.js delete mode 100644 openo-portal/portal-catalog/src/main/webapp/catalog/js/component/serverPageTable.js delete mode 100644 openo-portal/portal-catalog/src/main/webapp/catalog/js/package/pmController.js delete mode 100644 openo-portal/portal-catalog/src/main/webapp/catalog/js/package/pmUtil.js delete mode 100644 openo-portal/portal-catalog/src/main/webapp/catalog/js/template/tmController.js delete mode 100644 openo-portal/portal-catalog/src/main/webapp/catalog/js/template/tmDetailController.js delete mode 100644 openo-portal/portal-catalog/src/main/webapp/catalog/js/template/tmDetailUtil.js delete mode 100644 openo-portal/portal-catalog/src/main/webapp/catalog/js/template/tmNodesController.js delete mode 100644 openo-portal/portal-catalog/src/main/webapp/catalog/js/template/tmNodesDetailUtil.js delete mode 100644 openo-portal/portal-catalog/src/main/webapp/catalog/js/template/tmTopoController.js delete mode 100644 openo-portal/portal-catalog/src/main/webapp/catalog/js/template/tmUtil.js delete mode 100644 openo-portal/portal-catalog/src/main/webapp/catalog/js/template/topoUtil.js delete mode 100644 openo-portal/portal-catalog/src/main/webapp/catalog/nodesDetail.html delete mode 100644 openo-portal/portal-catalog/src/main/webapp/catalog/template.html delete mode 100644 openo-portal/portal-catalog/src/main/webapp/catalog/templateDetail.html delete mode 100644 openo-portal/portal-catalog/src/main/webapp/catalog/topology.html delete mode 100644 openo-portal/portal-catalog/src/main/webapp/catalog/topologyDetail.html delete mode 100644 openo-portal/portal-common/pom.xml delete mode 100644 openo-portal/portal-common/src/main/webapp/common/css/RMain.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/css/VMMain.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/css/ZteIctIcons/Read Me.txt delete mode 100644 openo-portal/portal-common/src/main/webapp/common/css/ZteIctIcons/demo-files/demo.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/css/ZteIctIcons/demo-files/demo.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/css/ZteIctIcons/demo.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/css/ZteIctIcons/fonts/ZteIctIcons.eot delete mode 100644 openo-portal/portal-common/src/main/webapp/common/css/ZteIctIcons/fonts/ZteIctIcons.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/css/ZteIctIcons/fonts/ZteIctIcons.ttf delete mode 100644 openo-portal/portal-common/src/main/webapp/common/css/ZteIctIcons/fonts/ZteIctIcons.woff delete mode 100644 openo-portal/portal-common/src/main/webapp/common/css/ZteIctIcons/selection.json delete mode 100644 openo-portal/portal-common/src/main/webapp/common/css/ZteIctIcons/style.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/css/animate.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/css/frame-style.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/css/login-apk.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/css/login.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/css/main_page.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/css/more-operation.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/css/ngict-component.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/css/plugins.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/css/print.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/css/style-custom.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/css/style-ict-bootstrap.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/css/style-ict.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/css/style-responsive.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/css/style.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/css/themes/black.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/css/themes/black_ifrm.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/css/themes/blue.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/css/themes/blue_ifrm.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/css/themes/brown.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/css/themes/brown_ifrm.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/css/themes/grey.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/css/themes/grey_ifrm.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/css/themes/light.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/css/themes/light_ifrm.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/css/themes/purple.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/css/themes/purple_ifrm.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/css/themes/zteblue.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/css/themes/zteblue_ifrm.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/css/themes/ztebluelight.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/css/themes/ztebluelight2.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/css/themes/ztebluelight2_ifrm.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/css/themes/ztebluelight3.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/css/themes/ztebluelight3_ifrm.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/css/themes/ztebluelight4.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/css/themes/ztebluelight4_ifrm.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/css/themes/ztebluelight_ifrm.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/default.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/i18n/web-framework-i18n-en-US.properties delete mode 100644 openo-portal/portal-common/src/main/webapp/common/i18n/web-framework-login-i18n-en-US.properties delete mode 100644 openo-portal/portal-common/src/main/webapp/common/i18n/web-framework-mainPage-i18n-en-US.properties delete mode 100644 openo-portal/portal-common/src/main/webapp/common/i18n/web-framework-menu-i18n-en-US.properties delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/License.txt delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/about/License.txt delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/about/about-bg-dark.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/about/about-bg-light.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/about/about-netnumen.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/accordion-plusminus.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ajax-loading.gif delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ajax-modal-loading.gif delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/arrow-down.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/avatar.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/bg-opacity.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/bg-white-lock.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/bg-white.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/checkbox-radio/License.txt delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/checkbox-radio/checkbox-checked-disabled.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/checkbox-radio/checkbox-checked.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/checkbox-radio/checkbox-disabled.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/checkbox-radio/checkbox-hover.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/checkbox-radio/checkbox-init.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/checkbox-radio/radio-checked-disabled.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/checkbox-radio/radio-checked.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/checkbox-radio/radio-disabled.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/checkbox-radio/radio-hover.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/checkbox-radio/radio-init.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/chrome_icon.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/datatable-row-openclose.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/empty.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/firefox_icon.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/hor-menu-search-close-white.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/hor-menu-search-close.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/hor-menu-search.jpg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/hor-menu-search.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/icon-color-close.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/icon-color.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/icon-img-down.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/icon-img-up.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/input-spinner.gif delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/integration/License.txt delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/integration/openo_bg_1.jpg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/integration/openo_bg_2.jpg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/integration/openo_bg_3.jpg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/integration/openo_logo_black.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/integration/openo_logo_pantone.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/integration/openo_logo_white.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/loading.gif delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/mainpage/License.txt delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/mainpage/icon/1.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/mainpage/icon/2.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/mainpage/icon/3.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/mainpage/icon/4.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/mainpage/icon/5.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/mainpage/icon/6.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/mainpage/logo.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/mainpage/pic/1.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/mainpage/pic/2.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/mainpage/pic/3.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/mainpage/pic/4.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/mainpage/pic/5.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/menu-toggler.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/overlay-icon.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/portlet-collapse-icon-white.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/portlet-collapse-icon.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/portlet-config-icon-white.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/portlet-config-icon.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/portlet-expand-icon-white.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/portlet-expand-icon.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/portlet-reload-icon-white.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/portlet-reload-icon.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/portlet-remove-icon-white.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/portlet-remove-icon.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/remove-icon-small.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/reset_password.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/License.txt delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/NFV.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/NS.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/VDU.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/VIM.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/VNF.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/VNFC.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/VNFM.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/breakLink.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/common_dc.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/common_ncd.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/common_sc.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/host.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-Virtual network.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-app-bind.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-app-dns.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-app-ems.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-app-mediator.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-app-netnumen.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-app-ntp.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-app-ota.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-app-tomcat.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-app-trend.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-app-tsm.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-app-weblogic.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-app.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-cluster-hacmp.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-cluster-nec.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-cluster-ns.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-cluster-sg.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-cluster-vcs.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-cluster.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-database-mssql.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-database-oracle.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-database-sybase.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-database-sybaseiq.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-database.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-dellmd.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-emc.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-eternus.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-fujitsu.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-hds.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-hpaio.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-hpeva.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-hpmsa.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-ibm.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-ibmsm.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-macrosan.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-netapp.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-sun.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-zte.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-checkpoint.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-cisco.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-cisco2.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-h3c.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-juniper.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-neteye.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-zte.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-ztemf.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-zteutm.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-firewall.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-gather.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-group-dev.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-ibp-ibp2000.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-ibp.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-net.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-alteon.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-appdirector.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-atca-lb10.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-cisco-ucs.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-dcs.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-delta.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-dp.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-f5bigip.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-f5bigip2.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-gbe2c.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-hpblc.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-ibm-blade.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-imm.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-secfox.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-secsis.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-segw.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-vc.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-zteatca.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-zteips.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-ztepower.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-ztesgs.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-zxsdr-nt.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-router-cisco.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-router-juniper.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-router-zte.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-router.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-sdn-controller.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-sdn-host.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-sdn-switch.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-sdn-vnet.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-server-aix.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-server-hpux.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-server-klinux.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-server-redhat.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-server-solaris.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-server-suse.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-server-windows.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-server-zxve.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-server.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-storage-cisco-mds.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-storage-md3000.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-storage-netvault.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-storage-ops.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-storage-sanswitch-brocade.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-storage-sanswitch-hp.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-storage-sanswitch-zte.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-storage.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-switch-at.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-switch-cisco.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-switch-h3c.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-switch-juniper.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-switch-zte.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-switch.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-tapelib-hpmsl.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-tapelib-ibmts.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-tapelib-sunts.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/networkTree.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/new.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/popupmenufollower.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/resourceType.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/stop.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/tree-icon.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/uep-moc-root.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/uep-moc-uca-public.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/uep-topo-commongroup20x20.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/uep-topo-group20x20.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/uep-topo-root.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/uep-topo-undefinedgroup20x20.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/uep-topo-virtual20x20.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/uep-topo-wsf-disconnected8x8.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/usf-amf-try-activate.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/ressvgs/usf-amf-try-active-wait.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/search-icon-blue.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/search-icon-brown.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/search-icon-purple.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/search-icon-red.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/search-icon-white.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/search-icon.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/select-caret.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/sidebar-menu-arrow-right.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/sidebar-menu-arrow-rtl.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/sidebar-menu-arrow.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/sidebar-search-close-blue.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/sidebar-search-close-brown.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/sidebar-search-close-light.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/sidebar-search-close-purple.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/sidebar-search-close.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/sidebar-toggler-grey.jpg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/sidebar-toggler-light.jpg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/syncfusion-icons-white.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/image/user.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/js/Main2moreMenu.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/js/core/const.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/js/core/hk.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/js/core/load_menuList.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/js/core/openoFrameWork.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/js/core/pym.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/js/fm_light.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/js/international/loadi18n.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/js/json2.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/js/login.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/js/mainpage/about.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/js/mainpage/load_mainPage.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/js/moreOperation.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/js/openotopo/openotopo.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/js/openotopo/openotopo.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/js/security/aes.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/js/security/framework-util.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/js/security/security.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/js/tools.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/json/License.txt delete mode 100644 openo-portal/portal-common/src/main/webapp/common/json/main_page.json delete mode 100644 openo-portal/portal-common/src/main/webapp/common/json/menu_list.json delete mode 100644 openo-portal/portal-common/src/main/webapp/common/login.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/animate/animate.min.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/avalon/avalon.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/avalon/avalon.modern.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/backstretch/jquery.backstretch.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/bootbox/LICENSE.md delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/bootbox/README.md delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/bootbox/bootbox.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-daterangepicker/daterangepicker-bs3.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-daterangepicker/daterangepicker.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-daterangepicker/moment.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-daterangepicker/moment.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-fileinput/css/fileinput.min.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-fileinput/img/loading-sm.gif delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-fileinput/img/loading.gif delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-fileinput/js/fileinput.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-fileinput/js/fileinput_locale_LANG.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-fileinput/js/fileinput_locale_zh.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-growl/bootstrap-growl.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-growl/jquery.bootstrap-growl.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-hover-dropdown/LICENSE delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-hover-dropdown/README.md delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-hover-dropdown/bootstrap-hover-dropdown.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-hover-dropdown/bootstrap-hover-dropdown.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-modal/css/bootstrap-modal-bs3patch.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-modal/css/bootstrap-modal.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-modal/img/ajax-loader.gif delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-modal/js/bootstrap-modal.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-modal/js/bootstrap-modalmanager.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-select/bootstrap-select.min.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-select/bootstrap-select.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-table/bootstrap-table-filter-control.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-table/bootstrap-table.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-table/bootstrap-table.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-table/bootstrap-table.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-table/bootstrap.min.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-wizard/jquery.bootstrap.wizard.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap/css/bootstrap-dt.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap/css/bootstrap.min.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap/fonts/glyphicons-halflings-regular.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap/js/bootstrap.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap/js/bootstrap.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap/js/bootstrap2-typeahead.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/cometd/cometd.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/cometd/cometd/AckExtension.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/cometd/cometd/ReloadExtension.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/cometd/cometd/TimeStampExtension.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/cometd/cometd/TimeSyncExtension.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/cometd/jquery/jquery.cometd-ack.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/cometd/jquery/jquery.cometd-reload.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/cometd/jquery/jquery.cometd-timestamp.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/cometd/jquery/jquery.cometd-timesync.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/cometd/jquery/jquery.cometd.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/DT_bootstrap.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/DT_bootstrap.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/DataTableICT.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/DataTableSmartClient.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/DataTableSmartClientApp.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/app-test-i18n-datatable-zh-CN.json delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/app-universal-i18n-datatable-en-US.json delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/app-universal-i18n-datatable-zh-CN.json delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/dataTable.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/dataTables.bootstrap.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/jquery.dataTables-1.9.4.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/jquery.dataTables-1.9.4.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/jquery.dataTables.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/jquery.dataTables.min.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/jquery.dataTables.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/style-datatable.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/echarts/echarts-all.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/echarts/echarts.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/fakeLoader/fakeLoader.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/fakeLoader/fakeLoader.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/font-awesome/css/font-awesome.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/font-awesome/css/font-awesome.min.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/font-awesome/fonts/FontAwesome.otf delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/font-awesome/fonts/fontawesome-webfont.eot delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/font-awesome/fonts/fontawesome-webfont.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/font-awesome/fonts/fontawesome-webfont.ttf delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/font-awesome/fonts/fontawesome-webfont.woff delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/font-awesome/less/bordered-pulled.less delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/font-awesome/less/core.less delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/font-awesome/less/fixed-width.less delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/font-awesome/less/font-awesome.less delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/font-awesome/less/icons.less delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/font-awesome/less/larger.less delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/font-awesome/less/list.less delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/font-awesome/less/mixins.less delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/font-awesome/less/path.less delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/font-awesome/less/rotated-flipped.less delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/font-awesome/less/spinning.less delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/font-awesome/less/stacked.less delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/font-awesome/less/variables.less delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/font-awesome/scss/_bordered-pulled.scss delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/font-awesome/scss/_core.scss delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/font-awesome/scss/_fixed-width.scss delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/font-awesome/scss/_icons.scss delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/font-awesome/scss/_larger.scss delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/font-awesome/scss/_list.scss delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/font-awesome/scss/_mixins.scss delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/font-awesome/scss/_path.scss delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/font-awesome/scss/_rotated-flipped.scss delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/font-awesome/scss/_spinning.scss delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/font-awesome/scss/_stacked.scss delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/font-awesome/scss/_variables.scss delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/font-awesome/scss/font-awesome.scss delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/freewall/freewall.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/bower.json delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/demo/css/Thumbs.db delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/demo/css/banner.jpg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/demo/css/custom.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/demo/css/custom.styl delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/demo/css/icheck.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/demo/css/ie/arrow-bottom.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/demo/css/ie/arrow-top.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/demo/css/ie/header-line.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/demo/css/ie/icon-fork.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/demo/css/ie/icon-github.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/demo/css/ie/icon-lab.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/demo/css/ie/icon-options.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/demo/css/ie/icon-star.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/demo/css/montserrat-bold.eot delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/demo/css/montserrat-bold.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/demo/css/montserrat-bold.ttf delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/demo/css/montserrat-bold.woff delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/demo/css/montserrat-regular.eot delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/demo/css/montserrat-regular.svg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/demo/css/montserrat-regular.ttf delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/demo/css/montserrat-regular.woff delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/demo/css/normalize.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/demo/index.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/demo/js/custom.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/demo/js/custom.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/demo/js/jquery.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/demo/js/zepto.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/icheck.jquery.json delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/icheck.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/icheck.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/all.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/_all.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/aero.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/aero.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/aero@2x.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/blue.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/blue.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/blue@2x.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/flat.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/flat.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/flat@2x.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/green.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/green.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/green@2x.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/grey.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/grey.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/grey@2x.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/orange.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/orange.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/orange@2x.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/pink.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/pink.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/pink@2x.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/purple.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/purple.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/purple@2x.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/red.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/red.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/red@2x.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/yellow.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/yellow.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/yellow@2x.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/futurico/futurico.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/futurico/futurico.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/futurico/futurico@2x.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/line/Thumbs.db delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/line/_all.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/line/aero.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/line/blue.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/line/green.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/line/grey.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/line/line.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/line/line.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/line/line@2x.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/line/orange.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/line/pink.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/line/purple.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/line/red.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/line/yellow.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/_all.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/aero.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/aero.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/aero@2x.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/blue.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/blue.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/blue@2x.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/green.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/green.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/green@2x.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/grey.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/grey.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/grey@2x.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/minimal.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/minimal.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/minimal@2x.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/orange.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/orange.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/orange@2x.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/pink.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/pink.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/pink@2x.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/purple.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/purple.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/purple@2x.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/red.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/red.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/red@2x.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/yellow.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/yellow.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/yellow@2x.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/polaris/polaris.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/polaris/polaris.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/polaris/polaris@2x.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/Thumbs.db delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/_all.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/aero.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/aero.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/aero@2x.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/blue.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/blue.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/blue@2x.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/green.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/green.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/green@2x.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/grey.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/grey.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/grey@2x.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/orange.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/orange.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/orange@2x.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/pink.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/pink.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/pink@2x.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/purple.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/purple.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/purple@2x.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/red.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/red.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/red@2x.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/square.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/square.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/square@2x.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/yellow.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/yellow.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/yellow@2x.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jQuery UI/jquery-ui-1.12.1.min.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jQuery UI/jquery-ui-1.12.1.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jQuery-File-Upload/css/jquery.fileupload.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jQuery-File-Upload/img/loading.gif delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jQuery-File-Upload/img/progressbar.gif delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jQuery-File-Upload/js/jquery.fileupload.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jQuery-File-Upload/js/jquery.iframe-transport.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jQuery-File-Upload/js/vendor/jquery.ui.widget.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-blockui/jquery.blockui.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-cokie/jquery.cokie.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/README.md delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/dist/additional-methods.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/dist/additional-methods.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/dist/jquery.validate.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/dist/jquery.validate.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/additional-methods.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/additional-methods.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/jquery.validate.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/jquery.validate.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_ar.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_ar.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_bg.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_bg.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_ca.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_ca.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_cs.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_cs.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_da.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_da.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_de.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_de.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_el.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_el.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_es.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_es.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_es_AR.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_es_AR.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_et.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_et.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_eu.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_eu.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_fa.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_fa.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_fi.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_fi.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_fr.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_fr.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_gl.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_gl.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_he.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_he.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_hr.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_hr.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_hu.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_hu.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_id.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_id.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_is.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_is.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_it.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_it.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_ja.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_ja.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_ka.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_ka.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_kk.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_kk.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_ko.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_ko.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_lt.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_lt.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_lv.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_lv.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_my.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_my.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_nl.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_nl.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_no.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_no.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_pl.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_pl.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_pt_BR.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_pt_BR.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_pt_PT.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_pt_PT.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_ro.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_ro.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_ru.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_ru.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_si.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_si.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_sk.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_sk.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_sl.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_sl.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_sr.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_sr.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_sr_lat.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_sr_lat.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_sv.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_sv.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_th.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_th.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_tj.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_tj.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_tr.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_tr.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_uk.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_uk.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_vi.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_vi.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_zh.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_zh.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_zh_TW.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_zh_TW.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/methods_de.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/methods_de.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/methods_es_CL.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/methods_es_CL.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/methods_fi.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/methods_fi.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/methods_nl.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/methods_nl.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/methods_pt.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/methods_pt.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery.i18n/jquery.i18n.properties-1.0.9.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery/jquery-1.10.2.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery/jquery-1.11.2.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery/jquery-1.11.2.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery/jquery-1.11.2.min.map delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery/jquery-1.4.4.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery/jquery-2.1.3.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery/jquery-2.1.3.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery/jquery-2.1.3.min.map delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery/jquery-migrate-1.2.1.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery/jquery-migrate-1.2.1.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/jquery/jquery.reveal.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/select2/select2-custom.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/select2/select2.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/select2/select2.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/sigma/sigma.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/sigma/sigma.renderers.customShapes.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/sigma/sigma.renderers.edgeLabels.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/uniform/README.md delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/uniform/css/uniform.default.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/uniform/css/uniform.default.min.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/uniform/css/uniform.default.scss delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/uniform/images/bg-input-focus.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/uniform/images/bg-input.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/uniform/images/sprite.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/uniform/images/sprite_original.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/uniform/jquery.uniform.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/uniform/jquery.uniform.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/API_cn.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/API_en.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/apiCss/api.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/apiCss/common.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/apiCss/common_ie6.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/apiCss/img/apiMenu.gif delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/apiCss/img/apiMenu.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/apiCss/img/background.jpg delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/apiCss/img/chinese.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/apiCss/img/close.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/apiCss/img/contact-bg.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/apiCss/img/english.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/apiCss/img/header-bg.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/apiCss/img/lightbulb.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/apiCss/img/overlay_arrow.gif delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/apiCss/img/overlay_arrow.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/apiCss/img/overlay_bg.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/apiCss/img/overlay_close_IE6.gif delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/apiCss/img/zTreeStandard.gif delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/apiCss/img/zTreeStandard.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/apiCss/jquery-1.6.2.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/apiCss/jquery.ztree.core-3.5.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/apiCss/zTreeStyleForApi.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/fn.zTree._z.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/fn.zTree.destroy.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/fn.zTree.getZTreeObj.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/fn.zTree.init.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.async.autoParam.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.async.contentType.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.async.dataFilter.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.async.dataType.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.async.enable.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.async.otherParam.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.async.type.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.async.url.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.beforeAsync.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.beforeCheck.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.beforeClick.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.beforeCollapse.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.beforeDblClick.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.beforeDrag.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.beforeDragOpen.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.beforeDrop.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.beforeEditName.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.beforeExpand.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.beforeMouseDown.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.beforeMouseUp.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.beforeRemove.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.beforeRename.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.beforeRightClick.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.onAsyncError.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.onAsyncSuccess.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.onCheck.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.onClick.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.onCollapse.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.onDblClick.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.onDrag.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.onDragMove.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.onDrop.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.onExpand.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.onMouseDown.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.onMouseUp.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.onNodeCreated.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.onRemove.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.onRename.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.onRightClick.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.check.autoCheckTrigger.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.check.chkDisabledInherit.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.check.chkStyle.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.check.chkboxType.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.check.enable.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.check.nocheckInherit.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.check.radioType.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.data.keep.leaf.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.data.keep.parent.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.data.key.checked.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.data.key.children.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.data.key.name.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.data.key.title.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.data.key.url.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.data.simpleData.enable.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.data.simpleData.idKey.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.data.simpleData.pIdKey.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.data.simpleData.rootPId.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.edit.drag.autoExpandTrigger.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.edit.drag.autoOpenTime.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.edit.drag.borderMax.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.edit.drag.borderMin.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.edit.drag.inner.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.edit.drag.isCopy.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.edit.drag.isMove.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.edit.drag.maxShowNodeNum.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.edit.drag.minMoveSize.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.edit.drag.next.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.edit.drag.prev.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.edit.editNameSelectAll.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.edit.enable.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.edit.removeTitle.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.edit.renameTitle.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.edit.showRemoveBtn.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.edit.showRenameBtn.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.treeId.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.treeObj.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.view.addDiyDom.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.view.addHoverDom.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.view.autoCancelSelected.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.view.dblClickExpand.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.view.expandSpeed.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.view.fontCss.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.view.nameIsHTML.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.view.removeHoverDom.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.view.selectedMulti.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.view.showIcon.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.view.showLine.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.view.showTitle.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.view.txtSelectedEnable.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.check_Child_State.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.check_Focus.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.checked.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.checkedOld.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.children.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.chkDisabled.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.click.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.diy.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.editNameFlag.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.getCheckStatus.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.getNextNode.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.getParentNode.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.getPreNode.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.halfCheck.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.icon.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.iconClose.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.iconOpen.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.iconSkin.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.isAjaxing.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.isFirstNode.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.isHidden.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.isHover.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.isLastNode.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.isParent.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.level.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.name.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.nocheck.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.open.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.parentTId.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.tId.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.target.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.url.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.zAsync.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.addNodes.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.cancelEditName.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.cancelSelectedNode.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.checkAllNodes.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.checkNode.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.copyNode.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.destroy.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.editName.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.expandAll.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.expandNode.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.getChangeCheckedNodes.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.getCheckedNodes.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.getNodeByParam.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.getNodeByTId.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.getNodeIndex.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.getNodes.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.getNodesByFilter.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.getNodesByParam.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.getNodesByParamFuzzy.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.getSelectedNodes.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.hideNode.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.hideNodes.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.moveNode.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.reAsyncChildNodes.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.refresh.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.removeChildNodes.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.removeNode.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.selectNode.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.setChkDisabled.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.setEditable.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.setting.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.showNode.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.showNodes.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.transformToArray.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.transformTozTreeNodes.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.updateNode.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/fn.zTree._z.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/fn.zTree.destroy.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/fn.zTree.getZTreeObj.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/fn.zTree.init.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.async.autoParam.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.async.contentType.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.async.dataFilter.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.async.dataType.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.async.enable.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.async.otherParam.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.async.type.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.async.url.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.beforeAsync.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.beforeCheck.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.beforeClick.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.beforeCollapse.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.beforeDblClick.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.beforeDrag.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.beforeDragOpen.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.beforeDrop.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.beforeEditName.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.beforeExpand.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.beforeMouseDown.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.beforeMouseUp.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.beforeRemove.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.beforeRename.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.beforeRightClick.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.onAsyncError.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.onAsyncSuccess.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.onCheck.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.onClick.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.onCollapse.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.onDblClick.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.onDrag.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.onDragMove.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.onDrop.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.onExpand.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.onMouseDown.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.onMouseUp.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.onNodeCreated.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.onRemove.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.onRename.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.onRightClick.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.check.autoCheckTrigger.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.check.chkDisabledInherit.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.check.chkStyle.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.check.chkboxType.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.check.enable.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.check.nocheckInherit.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.check.radioType.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.data.keep.leaf.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.data.keep.parent.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.data.key.checked.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.data.key.children.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.data.key.name.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.data.key.title.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.data.key.url.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.data.simpleData.enable.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.data.simpleData.idKey.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.data.simpleData.pIdKey.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.data.simpleData.rootPId.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.edit.drag.autoExpandTrigger.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.edit.drag.autoOpenTime.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.edit.drag.borderMax.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.edit.drag.borderMin.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.edit.drag.inner.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.edit.drag.isCopy.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.edit.drag.isMove.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.edit.drag.maxShowNodeNum.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.edit.drag.minMoveSize.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.edit.drag.next.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.edit.drag.prev.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.edit.editNameSelectAll.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.edit.enable.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.edit.removeTitle.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.edit.renameTitle.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.edit.showRemoveBtn.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.edit.showRenameBtn.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.treeId.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.treeObj.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.view.addDiyDom.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.view.addHoverDom.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.view.autoCancelSelected.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.view.dblClickExpand.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.view.expandSpeed.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.view.fontCss.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.view.nameIsHTML.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.view.removeHoverDom.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.view.selectedMulti.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.view.showIcon.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.view.showLine.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.view.showTitle.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.view.txtSelectedEnable.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.check_Child_State.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.check_Focus.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.checked.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.checkedOld.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.children.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.chkDisabled.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.click.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.diy.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.editNameFlag.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.getCheckStatus.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.getNextNode.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.getParentNode.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.getPreNode.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.halfCheck.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.icon.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.iconClose.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.iconOpen.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.iconSkin.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.isAjaxing.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.isFirstNode.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.isHidden.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.isHover.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.isLastNode.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.isParent.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.level.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.name.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.nocheck.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.open.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.parentTId.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.tId.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.target.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.url.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.zAsync.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.addNodes.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.cancelEditName.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.cancelSelectedNode.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.checkAllNodes.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.checkNode.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.copyNode.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.destroy.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.editName.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.expandAll.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.expandNode.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.getChangeCheckedNodes.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.getCheckedNodes.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.getNodeByParam.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.getNodeByTId.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.getNodeIndex.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.getNodes.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.getNodesByFilter.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.getNodesByParam.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.getNodesByParamFuzzy.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.getSelectedNodes.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.hideNode.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.hideNodes.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.moveNode.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.reAsyncChildNodes.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.refresh.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.removeChildNodes.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.removeNode.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.selectNode.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.setChkDisabled.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.setEditable.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.setting.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.showNode.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.showNodes.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.transformToArray.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.transformTozTreeNodes.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.updateNode.html delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/css/demo.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle/ReadMe.txt delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle/img/Thumbs.db delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle/img/diy/Thumbs.db delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle/img/zTreeStandard.gifbak delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle/img/zTreeStandard.png delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle/img/zTreeStandard.pngbak delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle/img/zTreeStandard.psd delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle/zTreeStyle.css delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/js/jquery.ztree.all.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/js/jquery.ztree.all.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/js/jquery.ztree.core.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/js/jquery.ztree.core.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/js/jquery.ztree.excheck.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/js/jquery.ztree.excheck.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/js/jquery.ztree.exedit.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/js/jquery.ztree.exedit.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/js/jquery.ztree.exhide.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/js/jquery.ztree.exhide.min.js delete mode 100644 openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/zTree.v3.jquery.json delete mode 100644 openo-portal/portal-extsys/pom.xml delete mode 100644 openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller/conf/License.txt delete mode 100644 openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller/conf/dataconfig.json delete mode 100644 openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller/controller.html delete mode 100644 openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller/css/RMain.css delete mode 100644 openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller/css/VMMain.css delete mode 100644 openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller/css/bootstrap.min.css delete mode 100644 openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller/images/License.txt delete mode 100644 openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller/js/bootstrap-table-filter-control.min.js delete mode 100644 openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller/js/bootstrap-table.min.js delete mode 100644 openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller/js/bootstrap.min.js delete mode 100644 openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller/js/controller.js delete mode 100644 openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller/js/jquery-1.11.2.min.js delete mode 100644 openo-portal/portal-extsys/src/main/webapp/extsys/vim/css/bootstrap.css delete mode 100644 openo-portal/portal-extsys/src/main/webapp/extsys/vim/css/skill.css delete mode 100644 openo-portal/portal-extsys/src/main/webapp/extsys/vim/css/vim.css delete mode 100644 openo-portal/portal-extsys/src/main/webapp/extsys/vim/css/vimChart.css delete mode 100644 openo-portal/portal-extsys/src/main/webapp/extsys/vim/i18n/loadi18nApp.js delete mode 100644 openo-portal/portal-extsys/src/main/webapp/extsys/vim/i18n/roc-vim-iui-i18n-en-US.properties delete mode 100644 openo-portal/portal-extsys/src/main/webapp/extsys/vim/i18n/roc-vim-iui-i18n-zh-CN.properties delete mode 100644 openo-portal/portal-extsys/src/main/webapp/extsys/vim/js/client-cometd.js delete mode 100644 openo-portal/portal-extsys/src/main/webapp/extsys/vim/js/jqBootstrapValidation.js delete mode 100644 openo-portal/portal-extsys/src/main/webapp/extsys/vim/js/vim-validate.js delete mode 100644 openo-portal/portal-extsys/src/main/webapp/extsys/vim/js/vimChart.js delete mode 100644 openo-portal/portal-extsys/src/main/webapp/extsys/vim/js/vimChartController.js delete mode 100644 openo-portal/portal-extsys/src/main/webapp/extsys/vim/js/vimController.js delete mode 100644 openo-portal/portal-extsys/src/main/webapp/extsys/vim/js/vimUtil.js delete mode 100644 openo-portal/portal-extsys/src/main/webapp/extsys/vim/vimChart.html delete mode 100644 openo-portal/portal-extsys/src/main/webapp/extsys/vim/vimView.html delete mode 100644 openo-portal/portal-extsys/src/main/webapp/extsys/vnfm/css/animate.min.css delete mode 100644 openo-portal/portal-extsys/src/main/webapp/extsys/vnfm/css/vnfm.css delete mode 100644 openo-portal/portal-extsys/src/main/webapp/extsys/vnfm/i18n/nfv-nso-iui-i18n-en-US.properties delete mode 100644 openo-portal/portal-extsys/src/main/webapp/extsys/vnfm/i18n/nfv-nso-iui-i18n-zh-CN.properties delete mode 100644 openo-portal/portal-extsys/src/main/webapp/extsys/vnfm/js/commonUtil.js delete mode 100644 openo-portal/portal-extsys/src/main/webapp/extsys/vnfm/js/loadi18n_nsoc.js delete mode 100644 openo-portal/portal-extsys/src/main/webapp/extsys/vnfm/js/vnfm-validate.js delete mode 100644 openo-portal/portal-extsys/src/main/webapp/extsys/vnfm/js/vnfmController.js delete mode 100644 openo-portal/portal-extsys/src/main/webapp/extsys/vnfm/js/vnfmUtil.js delete mode 100644 openo-portal/portal-extsys/src/main/webapp/extsys/vnfm/vnfmView.html delete mode 100644 openo-portal/portal-lifecyclemgr/pom.xml delete mode 100644 openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/InputData.html delete mode 100644 openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/TopoAccor.html delete mode 100644 openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/UnderLay_TP.html delete mode 100644 openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/accorTables.html delete mode 100644 openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/chartTopo.html delete mode 100644 openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/conf/License.txt delete mode 100644 openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/conf/dataconfig.json delete mode 100644 openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/css/RMain.css delete mode 100644 openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/css/VMMain.css delete mode 100644 openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/css/bootstrap.min.css delete mode 100644 openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/css/jquery-ui-1.12.1.min.css delete mode 100644 openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/gsolcmmain.html delete mode 100644 openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/i18n/lcm-template-parameters-i18n-en-US.properties delete mode 100644 openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/License.txt delete mode 100644 openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/License.txt delete mode 100644 openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/node_gray.png delete mode 100644 openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/js/bootstrap-table-filter-control.min.js delete mode 100644 openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/js/bootstrap-table.min.js delete mode 100644 openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/js/bootstrap.min.js delete mode 100644 openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/js/brs.js delete mode 100644 openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/js/gsolcm.js delete mode 100644 openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/js/jquery-1.11.2.min.js delete mode 100644 openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/js/jquery-ui-1.12.1.min.js delete mode 100644 openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/js/jquery.bootstrap-growl.min.js delete mode 100644 openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/js/jquery.isloading.min.js delete mode 100644 openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/js/rest.js delete mode 100644 openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/js/tmNodesController.js delete mode 100644 openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/js/tmTopoController.js delete mode 100644 openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/js/topo/Edge.js delete mode 100644 openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/js/topo/Node.js delete mode 100644 openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/js/topo/OverlayTopology.js delete mode 100644 openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/js/topo/sigma/sigma.min.js delete mode 100644 openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/js/topo/sigma/sigma.renderers.customShapes.min.js delete mode 100644 openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/js/topo/sigma/sigma.renderers.edgeLabels.min.js delete mode 100644 openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/js/underlay.js delete mode 100644 openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/js/vpn.js delete mode 100644 openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/lcm_detail_nfvo_nodesinfo.html delete mode 100644 openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/lcm_detail_nfvo_topology.html delete mode 100644 openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/newShow.html delete mode 100644 openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/overlayvpn.html delete mode 100644 openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/overlayvpn_topo.html delete mode 100644 openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/sdnovpn.html delete mode 100644 openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/underlayvpn.html delete mode 100644 openo-portal/portal-monitor/pom.xml delete mode 100644 openo-portal/portal-monitor/src/main/webapp/monitor/css/dac.css delete mode 100644 openo-portal/portal-monitor/src/main/webapp/monitor/css/monitorSetting.css delete mode 100644 openo-portal/portal-monitor/src/main/webapp/monitor/dacList.html delete mode 100644 openo-portal/portal-monitor/src/main/webapp/monitor/i18n/umc-monitor-iui-i18n-en-US.properties delete mode 100644 openo-portal/portal-monitor/src/main/webapp/monitor/images/License.txt delete mode 100644 openo-portal/portal-monitor/src/main/webapp/monitor/js/dacController.js delete mode 100644 openo-portal/portal-monitor/src/main/webapp/monitor/js/loadi18nApp_ngict-umc-monitor.js delete mode 100644 openo-portal/portal-monitor/src/main/webapp/monitor/js/monitorSettingController.js delete mode 100644 openo-portal/portal-monitor/src/main/webapp/monitor/js/monitorSettingUtil.js delete mode 100644 openo-portal/portal-monitor/src/main/webapp/monitor/monitorSetting.html delete mode 100644 openo-portal/portal-monitor/src/main/webapp/monitor/monitorSettingList.html delete mode 100644 openo-portal/portal-package/pom.xml delete mode 100644 openo-portal/portal-package/src/main/resources/portalConfig/msb_register.xml delete mode 100644 openo-portal/portal-package/src/main/webapp/WEB-INF/web.xml delete mode 100644 openo-portal/portal-performance/pom.xml delete mode 100644 openo-portal/portal-performance/src/main/webapp/performance/alarm_view.html delete mode 100644 openo-portal/portal-performance/src/main/webapp/performance/css/alarmsQuery.css delete mode 100644 openo-portal/portal-performance/src/main/webapp/performance/css/performanceChart.css delete mode 100644 openo-portal/portal-performance/src/main/webapp/performance/css/performanceQuery.css delete mode 100644 openo-portal/portal-performance/src/main/webapp/performance/css/pmQueryBox.css delete mode 100644 openo-portal/portal-performance/src/main/webapp/performance/i18n/web-alarm-i18n-en-US.properties delete mode 100644 openo-portal/portal-performance/src/main/webapp/performance/i18n/web-performance-i18n-en-US.properties delete mode 100644 openo-portal/portal-performance/src/main/webapp/performance/image/License.txt delete mode 100644 openo-portal/portal-performance/src/main/webapp/performance/js/alarmConds.js delete mode 100644 openo-portal/portal-performance/src/main/webapp/performance/js/alarmsServerPageTable.js delete mode 100644 openo-portal/portal-performance/src/main/webapp/performance/js/alarmsUtil.js delete mode 100644 openo-portal/portal-performance/src/main/webapp/performance/js/commonUtil.js delete mode 100644 openo-portal/portal-performance/src/main/webapp/performance/js/curAlarmsController.js delete mode 100644 openo-portal/portal-performance/src/main/webapp/performance/js/performanceChart.js delete mode 100644 openo-portal/portal-performance/src/main/webapp/performance/js/performanceQueryController.js delete mode 100644 openo-portal/portal-performance/src/main/webapp/performance/js/pmUtil.js delete mode 100644 openo-portal/portal-performance/src/main/webapp/performance/js/serverPageTable.js delete mode 100644 openo-portal/portal-performance/src/main/webapp/performance/performance_query_rule.html delete mode 100644 openo-portal/portal-performance/src/main/webapp/performance/performance_view.html delete mode 100644 openo-portal/portal-resmgr/pom.xml delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/conf/License.txt delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/conf/globalconfig.json delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/css/RMain.css delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/css/VMMain.css delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/css/bootstrap.min.css delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/css/jquery.dataTables.min.css delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/css/resmgr.css delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/datacenter.html delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/html/index.html delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/images/License.txt delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/images/loading-spinner-grey.gif delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/images/sort_asc.png delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/images/sort_both.png delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/images/sort_desc.png delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/js/SendMsg.js delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/js/bootbox.min.js delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/js/bootstrap-table.min.js delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/js/bootstrap.min.js delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/js/chart.min.js delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/js/datacenter.js delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/js/gconf.js delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/js/jquery-1.11.2.min.js delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/js/jquery.dataTables.min.js delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/js/jquery.validate.min.js delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/js/resmgr.js delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/js/validateset.js delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/js/vim.js delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/location.html delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/resource.html delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/vim.html delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/conf/License.txt delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/conf/dataconfig.json delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/css/RMain.css delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/css/VMMain.css delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/css/bootstrap-table.min.css delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/css/bootstrap.min.css delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/License.txt delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/add.png delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/arrow-down-enable.png delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/delete.png delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/edit.png delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/ideo_default_select.png delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/import.png delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/line.png delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/loading-spinner-grey.gif delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/page_l.png delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/page_left_disabled.png delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/page_r.png delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/sort_asc.png delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/sort_both.png delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/sort_desc.png delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/js/bootstrap-table-filter-control.min.js delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/js/bootstrap-table.min.js delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/js/bootstrap.min.js delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/js/brs.js delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/js/jquery-1.11.2.min.js delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/link.html delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/ne.html delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/port.html delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/resource.html delete mode 100644 openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/site.html create mode 100644 performance/pom.xml create mode 100644 performance/src/main/webapp/performance/alarm_view.html create mode 100644 performance/src/main/webapp/performance/css/alarmsQuery.css create mode 100644 performance/src/main/webapp/performance/css/performanceChart.css create mode 100644 performance/src/main/webapp/performance/css/performanceQuery.css create mode 100644 performance/src/main/webapp/performance/css/pmQueryBox.css create mode 100644 performance/src/main/webapp/performance/i18n/web-alarm-i18n-en-US.properties create mode 100644 performance/src/main/webapp/performance/i18n/web-performance-i18n-en-US.properties create mode 100644 performance/src/main/webapp/performance/image/License.txt rename {openo-portal/portal-performance => performance}/src/main/webapp/performance/image/aos_view-fm.gif (100%) rename {openo-portal/portal-performance => performance}/src/main/webapp/performance/image/arrow.png (100%) rename {openo-portal/portal-performance => performance}/src/main/webapp/performance/image/chart_icon.png (100%) rename {openo-portal/portal-performance => performance}/src/main/webapp/performance/image/delete.png (100%) rename {openo-portal/portal-performance => performance}/src/main/webapp/performance/image/details_close.png (100%) rename {openo-portal/portal-performance => performance}/src/main/webapp/performance/image/details_open.png (100%) rename {openo-portal/portal-performance => performance}/src/main/webapp/performance/image/down.png (100%) rename {openo-portal/portal-performance => performance}/src/main/webapp/performance/image/filter.png (100%) rename {openo-portal/portal-performance => performance}/src/main/webapp/performance/image/statistics.png (100%) rename {openo-portal/portal-performance => performance}/src/main/webapp/performance/image/table_icon.png (100%) rename {openo-portal/portal-performance => performance}/src/main/webapp/performance/image/up.png (100%) create mode 100644 performance/src/main/webapp/performance/js/alarmConds.js create mode 100644 performance/src/main/webapp/performance/js/alarmsServerPageTable.js create mode 100644 performance/src/main/webapp/performance/js/alarmsUtil.js create mode 100644 performance/src/main/webapp/performance/js/commonUtil.js create mode 100644 performance/src/main/webapp/performance/js/curAlarmsController.js create mode 100644 performance/src/main/webapp/performance/js/performanceChart.js create mode 100644 performance/src/main/webapp/performance/js/performanceQueryController.js create mode 100644 performance/src/main/webapp/performance/js/pmUtil.js create mode 100644 performance/src/main/webapp/performance/js/serverPageTable.js create mode 100644 performance/src/main/webapp/performance/performance_query_rule.html create mode 100644 performance/src/main/webapp/performance/performance_view.html delete mode 100644 portal-auth/pom.xml delete mode 100644 portal-auth/src/main/webapp/user/changePassword.html delete mode 100644 portal-auth/src/main/webapp/user/createUser.html delete mode 100644 portal-auth/src/main/webapp/user/css/component.css delete mode 100644 portal-auth/src/main/webapp/user/css/user.css delete mode 100644 portal-auth/src/main/webapp/user/images/License.txt delete mode 100644 portal-auth/src/main/webapp/user/images/add.png delete mode 100644 portal-auth/src/main/webapp/user/images/delete.png delete mode 100644 portal-auth/src/main/webapp/user/images/edit.bak.png delete mode 100644 portal-auth/src/main/webapp/user/images/edit.png delete mode 100644 portal-auth/src/main/webapp/user/images/reset.bak.png delete mode 100644 portal-auth/src/main/webapp/user/images/reset.png delete mode 100644 portal-auth/src/main/webapp/user/js/changePassword.js delete mode 100644 portal-auth/src/main/webapp/user/js/createUser.js delete mode 100644 portal-auth/src/main/webapp/user/js/modifyUser.js delete mode 100644 portal-auth/src/main/webapp/user/js/user.js delete mode 100644 portal-auth/src/main/webapp/user/js/userTools.js delete mode 100644 portal-auth/src/main/webapp/user/modifyUser.html delete mode 100644 portal-auth/src/main/webapp/user/user.html delete mode 100644 portal-catalog/pom.xml delete mode 100644 portal-catalog/src/main/webapp/catalog/csarPackage.html delete mode 100644 portal-catalog/src/main/webapp/catalog/css/datatable-sort.css delete mode 100644 portal-catalog/src/main/webapp/catalog/css/fileupload.css delete mode 100644 portal-catalog/src/main/webapp/catalog/css/hostMirror.css delete mode 100644 portal-catalog/src/main/webapp/catalog/css/package.css delete mode 100644 portal-catalog/src/main/webapp/catalog/css/platform/animate.min.css delete mode 100644 portal-catalog/src/main/webapp/catalog/css/platform/skill.css delete mode 100644 portal-catalog/src/main/webapp/catalog/css/software.css delete mode 100644 portal-catalog/src/main/webapp/catalog/css/template.css delete mode 100644 portal-catalog/src/main/webapp/catalog/css/templateDetail.css delete mode 100644 portal-catalog/src/main/webapp/catalog/css/topology.css delete mode 100644 portal-catalog/src/main/webapp/catalog/css/virtualApplication.css delete mode 100644 portal-catalog/src/main/webapp/catalog/css/vnfm.css delete mode 100644 portal-catalog/src/main/webapp/catalog/i18n/nfv-nso-iui-i18n-en-US.properties delete mode 100644 portal-catalog/src/main/webapp/catalog/i18n/nfv-nso-iui-i18n-zh-CN.properties delete mode 100644 portal-catalog/src/main/webapp/catalog/image/License.txt delete mode 100644 portal-catalog/src/main/webapp/catalog/image/details_close.png delete mode 100644 portal-catalog/src/main/webapp/catalog/image/details_open.png delete mode 100644 portal-catalog/src/main/webapp/catalog/image/down.png delete mode 100644 portal-catalog/src/main/webapp/catalog/image/pointes_blue.png delete mode 100644 portal-catalog/src/main/webapp/catalog/image/pointes_green.png delete mode 100644 portal-catalog/src/main/webapp/catalog/image/sort_asc.png delete mode 100644 portal-catalog/src/main/webapp/catalog/image/sort_asc_disabled.png delete mode 100644 portal-catalog/src/main/webapp/catalog/image/sort_both.png delete mode 100644 portal-catalog/src/main/webapp/catalog/image/sort_desc.png delete mode 100644 portal-catalog/src/main/webapp/catalog/image/sort_desc_disabled.png delete mode 100644 portal-catalog/src/main/webapp/catalog/image/up.png delete mode 100644 portal-catalog/src/main/webapp/catalog/js/component/commonUtil.js delete mode 100644 portal-catalog/src/main/webapp/catalog/js/component/loadi18n_nsoc.js delete mode 100644 portal-catalog/src/main/webapp/catalog/js/component/serverPageTable.js delete mode 100644 portal-catalog/src/main/webapp/catalog/js/package/pmController.js delete mode 100644 portal-catalog/src/main/webapp/catalog/js/package/pmUtil.js delete mode 100644 portal-catalog/src/main/webapp/catalog/js/template/tmController.js delete mode 100644 portal-catalog/src/main/webapp/catalog/js/template/tmDetailController.js delete mode 100644 portal-catalog/src/main/webapp/catalog/js/template/tmDetailUtil.js delete mode 100644 portal-catalog/src/main/webapp/catalog/js/template/tmNodesController.js delete mode 100644 portal-catalog/src/main/webapp/catalog/js/template/tmNodesDetailUtil.js delete mode 100644 portal-catalog/src/main/webapp/catalog/js/template/tmTopoController.js delete mode 100644 portal-catalog/src/main/webapp/catalog/js/template/tmUtil.js delete mode 100644 portal-catalog/src/main/webapp/catalog/js/template/topoUtil.js delete mode 100644 portal-catalog/src/main/webapp/catalog/nodesDetail.html delete mode 100644 portal-catalog/src/main/webapp/catalog/template.html delete mode 100644 portal-catalog/src/main/webapp/catalog/templateDetail.html delete mode 100644 portal-catalog/src/main/webapp/catalog/topology.html delete mode 100644 portal-catalog/src/main/webapp/catalog/topologyDetail.html delete mode 100644 portal-common/pom.xml delete mode 100644 portal-common/src/main/webapp/common/css/RMain.css delete mode 100644 portal-common/src/main/webapp/common/css/VMMain.css delete mode 100644 portal-common/src/main/webapp/common/css/ZteIctIcons/Read Me.txt delete mode 100644 portal-common/src/main/webapp/common/css/ZteIctIcons/demo-files/demo.css delete mode 100644 portal-common/src/main/webapp/common/css/ZteIctIcons/demo-files/demo.js delete mode 100644 portal-common/src/main/webapp/common/css/ZteIctIcons/demo.html delete mode 100644 portal-common/src/main/webapp/common/css/ZteIctIcons/fonts/ZteIctIcons.eot delete mode 100644 portal-common/src/main/webapp/common/css/ZteIctIcons/fonts/ZteIctIcons.svg delete mode 100644 portal-common/src/main/webapp/common/css/ZteIctIcons/fonts/ZteIctIcons.ttf delete mode 100644 portal-common/src/main/webapp/common/css/ZteIctIcons/fonts/ZteIctIcons.woff delete mode 100644 portal-common/src/main/webapp/common/css/ZteIctIcons/selection.json delete mode 100644 portal-common/src/main/webapp/common/css/ZteIctIcons/style.css delete mode 100644 portal-common/src/main/webapp/common/css/animate.css delete mode 100644 portal-common/src/main/webapp/common/css/frame-style.css delete mode 100644 portal-common/src/main/webapp/common/css/login-apk.css delete mode 100644 portal-common/src/main/webapp/common/css/login.css delete mode 100644 portal-common/src/main/webapp/common/css/main_page.css delete mode 100644 portal-common/src/main/webapp/common/css/more-operation.css delete mode 100644 portal-common/src/main/webapp/common/css/ngict-component.css delete mode 100644 portal-common/src/main/webapp/common/css/plugins.css delete mode 100644 portal-common/src/main/webapp/common/css/print.css delete mode 100644 portal-common/src/main/webapp/common/css/style-custom.css delete mode 100644 portal-common/src/main/webapp/common/css/style-ict-bootstrap.css delete mode 100644 portal-common/src/main/webapp/common/css/style-ict.css delete mode 100644 portal-common/src/main/webapp/common/css/style-responsive.css delete mode 100644 portal-common/src/main/webapp/common/css/style.css delete mode 100644 portal-common/src/main/webapp/common/css/themes/black.css delete mode 100644 portal-common/src/main/webapp/common/css/themes/black_ifrm.css delete mode 100644 portal-common/src/main/webapp/common/css/themes/blue.css delete mode 100644 portal-common/src/main/webapp/common/css/themes/blue_ifrm.css delete mode 100644 portal-common/src/main/webapp/common/css/themes/brown.css delete mode 100644 portal-common/src/main/webapp/common/css/themes/brown_ifrm.css delete mode 100644 portal-common/src/main/webapp/common/css/themes/grey.css delete mode 100644 portal-common/src/main/webapp/common/css/themes/grey_ifrm.css delete mode 100644 portal-common/src/main/webapp/common/css/themes/light.css delete mode 100644 portal-common/src/main/webapp/common/css/themes/light_ifrm.css delete mode 100644 portal-common/src/main/webapp/common/css/themes/purple.css delete mode 100644 portal-common/src/main/webapp/common/css/themes/purple_ifrm.css delete mode 100644 portal-common/src/main/webapp/common/css/themes/zteblue.css delete mode 100644 portal-common/src/main/webapp/common/css/themes/zteblue_ifrm.css delete mode 100644 portal-common/src/main/webapp/common/css/themes/ztebluelight.css delete mode 100644 portal-common/src/main/webapp/common/css/themes/ztebluelight2.css delete mode 100644 portal-common/src/main/webapp/common/css/themes/ztebluelight2_ifrm.css delete mode 100644 portal-common/src/main/webapp/common/css/themes/ztebluelight3.css delete mode 100644 portal-common/src/main/webapp/common/css/themes/ztebluelight3_ifrm.css delete mode 100644 portal-common/src/main/webapp/common/css/themes/ztebluelight4.css delete mode 100644 portal-common/src/main/webapp/common/css/themes/ztebluelight4_ifrm.css delete mode 100644 portal-common/src/main/webapp/common/css/themes/ztebluelight_ifrm.css delete mode 100644 portal-common/src/main/webapp/common/default.html delete mode 100644 portal-common/src/main/webapp/common/i18n/web-framework-i18n-en-US.properties delete mode 100644 portal-common/src/main/webapp/common/i18n/web-framework-login-i18n-en-US.properties delete mode 100644 portal-common/src/main/webapp/common/i18n/web-framework-mainPage-i18n-en-US.properties delete mode 100644 portal-common/src/main/webapp/common/i18n/web-framework-menu-i18n-en-US.properties delete mode 100644 portal-common/src/main/webapp/common/image/License.txt delete mode 100644 portal-common/src/main/webapp/common/image/about/License.txt delete mode 100644 portal-common/src/main/webapp/common/image/about/about-bg-dark.png delete mode 100644 portal-common/src/main/webapp/common/image/about/about-bg-light.png delete mode 100644 portal-common/src/main/webapp/common/image/about/about-netnumen.png delete mode 100644 portal-common/src/main/webapp/common/image/accordion-plusminus.png delete mode 100644 portal-common/src/main/webapp/common/image/add.png delete mode 100644 portal-common/src/main/webapp/common/image/ajax-loading.gif delete mode 100644 portal-common/src/main/webapp/common/image/ajax-modal-loading.gif delete mode 100644 portal-common/src/main/webapp/common/image/arrow-down-enable.png delete mode 100644 portal-common/src/main/webapp/common/image/arrow-down.png delete mode 100644 portal-common/src/main/webapp/common/image/avatar.png delete mode 100644 portal-common/src/main/webapp/common/image/bg-opacity.png delete mode 100644 portal-common/src/main/webapp/common/image/bg-white-lock.png delete mode 100644 portal-common/src/main/webapp/common/image/bg-white.png delete mode 100644 portal-common/src/main/webapp/common/image/checkbox-radio/License.txt delete mode 100644 portal-common/src/main/webapp/common/image/checkbox-radio/checkbox-checked-disabled.png delete mode 100644 portal-common/src/main/webapp/common/image/checkbox-radio/checkbox-checked.png delete mode 100644 portal-common/src/main/webapp/common/image/checkbox-radio/checkbox-disabled.png delete mode 100644 portal-common/src/main/webapp/common/image/checkbox-radio/checkbox-hover.png delete mode 100644 portal-common/src/main/webapp/common/image/checkbox-radio/checkbox-init.png delete mode 100644 portal-common/src/main/webapp/common/image/checkbox-radio/radio-checked-disabled.png delete mode 100644 portal-common/src/main/webapp/common/image/checkbox-radio/radio-checked.png delete mode 100644 portal-common/src/main/webapp/common/image/checkbox-radio/radio-disabled.png delete mode 100644 portal-common/src/main/webapp/common/image/checkbox-radio/radio-hover.png delete mode 100644 portal-common/src/main/webapp/common/image/checkbox-radio/radio-init.png delete mode 100644 portal-common/src/main/webapp/common/image/chrome_icon.png delete mode 100644 portal-common/src/main/webapp/common/image/collapse_arrow.png delete mode 100644 portal-common/src/main/webapp/common/image/datatable-row-openclose.png delete mode 100644 portal-common/src/main/webapp/common/image/delete.png delete mode 100644 portal-common/src/main/webapp/common/image/edit.png delete mode 100644 portal-common/src/main/webapp/common/image/empty.png delete mode 100644 portal-common/src/main/webapp/common/image/expand_arrow.png delete mode 100644 portal-common/src/main/webapp/common/image/firefox_icon.png delete mode 100644 portal-common/src/main/webapp/common/image/hor-menu-search-close-white.png delete mode 100644 portal-common/src/main/webapp/common/image/hor-menu-search-close.png delete mode 100644 portal-common/src/main/webapp/common/image/hor-menu-search.jpg delete mode 100644 portal-common/src/main/webapp/common/image/hor-menu-search.png delete mode 100644 portal-common/src/main/webapp/common/image/icon-color-close.png delete mode 100644 portal-common/src/main/webapp/common/image/icon-color.png delete mode 100644 portal-common/src/main/webapp/common/image/icon-img-down.png delete mode 100644 portal-common/src/main/webapp/common/image/icon-img-up.png delete mode 100644 portal-common/src/main/webapp/common/image/ideo_default_select.png delete mode 100644 portal-common/src/main/webapp/common/image/import.png delete mode 100644 portal-common/src/main/webapp/common/image/input-spinner.gif delete mode 100644 portal-common/src/main/webapp/common/image/integration/License.txt delete mode 100644 portal-common/src/main/webapp/common/image/integration/openo_bg_1.jpg delete mode 100644 portal-common/src/main/webapp/common/image/integration/openo_bg_2.jpg delete mode 100644 portal-common/src/main/webapp/common/image/integration/openo_bg_3.jpg delete mode 100644 portal-common/src/main/webapp/common/image/integration/openo_logo_black.png delete mode 100644 portal-common/src/main/webapp/common/image/integration/openo_logo_pantone.png delete mode 100644 portal-common/src/main/webapp/common/image/integration/openo_logo_white.png delete mode 100644 portal-common/src/main/webapp/common/image/line.png delete mode 100644 portal-common/src/main/webapp/common/image/loading-spinner-grey.gif delete mode 100644 portal-common/src/main/webapp/common/image/loading.gif delete mode 100644 portal-common/src/main/webapp/common/image/mainpage/License.txt delete mode 100644 portal-common/src/main/webapp/common/image/mainpage/icon/1.png delete mode 100644 portal-common/src/main/webapp/common/image/mainpage/icon/2.png delete mode 100644 portal-common/src/main/webapp/common/image/mainpage/icon/3.png delete mode 100644 portal-common/src/main/webapp/common/image/mainpage/icon/4.png delete mode 100644 portal-common/src/main/webapp/common/image/mainpage/icon/5.png delete mode 100644 portal-common/src/main/webapp/common/image/mainpage/icon/6.png delete mode 100644 portal-common/src/main/webapp/common/image/mainpage/logo.png delete mode 100644 portal-common/src/main/webapp/common/image/mainpage/pic/1.png delete mode 100644 portal-common/src/main/webapp/common/image/mainpage/pic/2.png delete mode 100644 portal-common/src/main/webapp/common/image/mainpage/pic/3.png delete mode 100644 portal-common/src/main/webapp/common/image/mainpage/pic/4.png delete mode 100644 portal-common/src/main/webapp/common/image/mainpage/pic/5.png delete mode 100644 portal-common/src/main/webapp/common/image/menu-toggler.png delete mode 100644 portal-common/src/main/webapp/common/image/openo.png delete mode 100644 portal-common/src/main/webapp/common/image/overlay-icon.png delete mode 100644 portal-common/src/main/webapp/common/image/page_l.png delete mode 100644 portal-common/src/main/webapp/common/image/page_left_disabled.png delete mode 100644 portal-common/src/main/webapp/common/image/page_r.png delete mode 100644 portal-common/src/main/webapp/common/image/portlet-collapse-icon-white.png delete mode 100644 portal-common/src/main/webapp/common/image/portlet-collapse-icon.png delete mode 100644 portal-common/src/main/webapp/common/image/portlet-config-icon-white.png delete mode 100644 portal-common/src/main/webapp/common/image/portlet-config-icon.png delete mode 100644 portal-common/src/main/webapp/common/image/portlet-expand-icon-white.png delete mode 100644 portal-common/src/main/webapp/common/image/portlet-expand-icon.png delete mode 100644 portal-common/src/main/webapp/common/image/portlet-reload-icon-white.png delete mode 100644 portal-common/src/main/webapp/common/image/portlet-reload-icon.png delete mode 100644 portal-common/src/main/webapp/common/image/portlet-remove-icon-white.png delete mode 100644 portal-common/src/main/webapp/common/image/portlet-remove-icon.png delete mode 100644 portal-common/src/main/webapp/common/image/remove-icon-small.png delete mode 100644 portal-common/src/main/webapp/common/image/reset_password.png delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/License.txt delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/NFV.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/NS.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/VDU.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/VIM.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/VNF.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/VNFC.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/VNFM.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/breakLink.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/common_dc.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/common_ncd.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/common_sc.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/host.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-Virtual network.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-app-bind.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-app-dns.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-app-ems.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-app-mediator.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-app-netnumen.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-app-ntp.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-app-ota.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-app-tomcat.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-app-trend.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-app-tsm.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-app-weblogic.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-app.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-cluster-hacmp.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-cluster-nec.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-cluster-ns.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-cluster-sg.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-cluster-vcs.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-cluster.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-database-mssql.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-database-oracle.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-database-sybase.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-database-sybaseiq.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-database.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-dellmd.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-emc.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-eternus.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-fujitsu.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-hds.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-hpaio.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-hpeva.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-hpmsa.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-ibm.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-ibmsm.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-macrosan.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-netapp.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-sun.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-zte.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-firewall-checkpoint.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-firewall-cisco.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-firewall-cisco2.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-firewall-h3c.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-firewall-juniper.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-firewall-neteye.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-firewall-zte.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-firewall-ztemf.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-firewall-zteutm.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-firewall.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-gather.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-group-dev.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-ibp-ibp2000.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-ibp.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-net.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-other-alteon.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-other-appdirector.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-other-atca-lb10.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-other-cisco-ucs.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-other-dcs.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-other-delta.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-other-dp.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-other-f5bigip.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-other-f5bigip2.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-other-gbe2c.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-other-hpblc.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-other-ibm-blade.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-other-imm.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-other-secfox.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-other-secsis.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-other-segw.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-other-vc.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-other-zteatca.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-other-zteips.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-other-ztepower.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-other-ztesgs.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-other-zxsdr-nt.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-other.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-router-cisco.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-router-juniper.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-router-zte.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-router.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-sdn-controller.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-sdn-host.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-sdn-switch.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-sdn-vnet.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-server-aix.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-server-hpux.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-server-klinux.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-server-redhat.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-server-solaris.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-server-suse.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-server-windows.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-server-zxve.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-server.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-storage-cisco-mds.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-storage-md3000.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-storage-netvault.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-storage-ops.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-storage-sanswitch-brocade.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-storage-sanswitch-hp.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-storage-sanswitch-zte.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-storage.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-switch-at.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-switch-cisco.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-switch-h3c.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-switch-juniper.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-switch-zte.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-switch.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-tapelib-hpmsl.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-tapelib-ibmts.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it-tapelib-sunts.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/it.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/networkTree.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/new.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/popupmenufollower.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/resourceType.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/stop.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/tree-icon.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/uep-moc-root.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/uep-moc-uca-public.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/uep-topo-commongroup20x20.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/uep-topo-group20x20.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/uep-topo-root.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/uep-topo-undefinedgroup20x20.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/uep-topo-virtual20x20.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/uep-topo-wsf-disconnected8x8.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/usf-amf-try-activate.svg delete mode 100644 portal-common/src/main/webapp/common/image/ressvgs/usf-amf-try-active-wait.svg delete mode 100644 portal-common/src/main/webapp/common/image/search-icon-blue.png delete mode 100644 portal-common/src/main/webapp/common/image/search-icon-brown.png delete mode 100644 portal-common/src/main/webapp/common/image/search-icon-purple.png delete mode 100644 portal-common/src/main/webapp/common/image/search-icon-red.png delete mode 100644 portal-common/src/main/webapp/common/image/search-icon-white.png delete mode 100644 portal-common/src/main/webapp/common/image/search-icon.png delete mode 100644 portal-common/src/main/webapp/common/image/select-caret.png delete mode 100644 portal-common/src/main/webapp/common/image/sidebar-menu-arrow-right.png delete mode 100644 portal-common/src/main/webapp/common/image/sidebar-menu-arrow-rtl.png delete mode 100644 portal-common/src/main/webapp/common/image/sidebar-menu-arrow.png delete mode 100644 portal-common/src/main/webapp/common/image/sidebar-search-close-blue.png delete mode 100644 portal-common/src/main/webapp/common/image/sidebar-search-close-brown.png delete mode 100644 portal-common/src/main/webapp/common/image/sidebar-search-close-light.png delete mode 100644 portal-common/src/main/webapp/common/image/sidebar-search-close-purple.png delete mode 100644 portal-common/src/main/webapp/common/image/sidebar-search-close.png delete mode 100644 portal-common/src/main/webapp/common/image/sidebar-toggler-grey.jpg delete mode 100644 portal-common/src/main/webapp/common/image/sidebar-toggler-light.jpg delete mode 100644 portal-common/src/main/webapp/common/image/sort_asc.png delete mode 100644 portal-common/src/main/webapp/common/image/sort_both.png delete mode 100644 portal-common/src/main/webapp/common/image/sort_desc.png delete mode 100644 portal-common/src/main/webapp/common/image/syncfusion-icons-white.png delete mode 100644 portal-common/src/main/webapp/common/image/user.png delete mode 100644 portal-common/src/main/webapp/common/js/Main2moreMenu.js delete mode 100644 portal-common/src/main/webapp/common/js/core/const.js delete mode 100644 portal-common/src/main/webapp/common/js/core/hk.min.js delete mode 100644 portal-common/src/main/webapp/common/js/core/load_menuList.js delete mode 100644 portal-common/src/main/webapp/common/js/core/openoFrameWork.js delete mode 100644 portal-common/src/main/webapp/common/js/core/pym.min.js delete mode 100644 portal-common/src/main/webapp/common/js/fm_light.js delete mode 100644 portal-common/src/main/webapp/common/js/international/loadi18n.js delete mode 100644 portal-common/src/main/webapp/common/js/json2.js delete mode 100644 portal-common/src/main/webapp/common/js/login.js delete mode 100644 portal-common/src/main/webapp/common/js/mainpage/about.js delete mode 100644 portal-common/src/main/webapp/common/js/mainpage/load_mainPage.js delete mode 100644 portal-common/src/main/webapp/common/js/moreOperation.js delete mode 100644 portal-common/src/main/webapp/common/js/openotopo/openotopo.js delete mode 100644 portal-common/src/main/webapp/common/js/openotopo/openotopo.min.js delete mode 100644 portal-common/src/main/webapp/common/js/security/aes.js delete mode 100644 portal-common/src/main/webapp/common/js/security/framework-util.js delete mode 100644 portal-common/src/main/webapp/common/js/security/security.js delete mode 100644 portal-common/src/main/webapp/common/js/tools.js delete mode 100644 portal-common/src/main/webapp/common/json/License.txt delete mode 100644 portal-common/src/main/webapp/common/json/main_page.json delete mode 100644 portal-common/src/main/webapp/common/json/menu_list.json delete mode 100644 portal-common/src/main/webapp/common/login.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/animate/animate.min.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/avalon/avalon.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/avalon/avalon.modern.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/backstretch/jquery.backstretch.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/bootbox/LICENSE.md delete mode 100644 portal-common/src/main/webapp/common/thirdparty/bootbox/README.md delete mode 100644 portal-common/src/main/webapp/common/thirdparty/bootbox/bootbox.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/bootstrap-daterangepicker/daterangepicker-bs3.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/bootstrap-daterangepicker/daterangepicker.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/bootstrap-daterangepicker/moment.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/bootstrap-daterangepicker/moment.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/bootstrap-fileinput/css/fileinput.min.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/bootstrap-fileinput/img/loading-sm.gif delete mode 100644 portal-common/src/main/webapp/common/thirdparty/bootstrap-fileinput/img/loading.gif delete mode 100644 portal-common/src/main/webapp/common/thirdparty/bootstrap-fileinput/js/fileinput.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/bootstrap-fileinput/js/fileinput_locale_LANG.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/bootstrap-fileinput/js/fileinput_locale_zh.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/bootstrap-growl/bootstrap-growl.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/bootstrap-growl/jquery.bootstrap-growl.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/bootstrap-hover-dropdown/LICENSE delete mode 100644 portal-common/src/main/webapp/common/thirdparty/bootstrap-hover-dropdown/README.md delete mode 100644 portal-common/src/main/webapp/common/thirdparty/bootstrap-hover-dropdown/bootstrap-hover-dropdown.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/bootstrap-hover-dropdown/bootstrap-hover-dropdown.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/bootstrap-modal/css/bootstrap-modal-bs3patch.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/bootstrap-modal/css/bootstrap-modal.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/bootstrap-modal/img/ajax-loader.gif delete mode 100644 portal-common/src/main/webapp/common/thirdparty/bootstrap-modal/js/bootstrap-modal.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/bootstrap-modal/js/bootstrap-modalmanager.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/bootstrap-select/bootstrap-select.min.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/bootstrap-select/bootstrap-select.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/bootstrap-table/bootstrap-table-filter-control.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/bootstrap-table/bootstrap-table.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/bootstrap-table/bootstrap-table.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/bootstrap-table/bootstrap-table.min.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/bootstrap-table/bootstrap-table.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/bootstrap-table/bootstrap.min.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/bootstrap-wizard/jquery.bootstrap.wizard.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/bootstrap/css/bootstrap-dt.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/bootstrap/css/bootstrap.min.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/bootstrap/fonts/glyphicons-halflings-regular.eot delete mode 100644 portal-common/src/main/webapp/common/thirdparty/bootstrap/fonts/glyphicons-halflings-regular.svg delete mode 100644 portal-common/src/main/webapp/common/thirdparty/bootstrap/fonts/glyphicons-halflings-regular.ttf delete mode 100644 portal-common/src/main/webapp/common/thirdparty/bootstrap/fonts/glyphicons-halflings-regular.woff delete mode 100644 portal-common/src/main/webapp/common/thirdparty/bootstrap/fonts/glyphicons-halflings-regular.woff2 delete mode 100644 portal-common/src/main/webapp/common/thirdparty/bootstrap/js/bootstrap.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/bootstrap/js/bootstrap.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/bootstrap/js/bootstrap2-typeahead.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/cometd/cometd.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/cometd/cometd/AckExtension.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/cometd/cometd/ReloadExtension.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/cometd/cometd/TimeStampExtension.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/cometd/cometd/TimeSyncExtension.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/cometd/jquery/jquery.cometd-ack.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/cometd/jquery/jquery.cometd-reload.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/cometd/jquery/jquery.cometd-timestamp.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/cometd/jquery/jquery.cometd-timesync.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/cometd/jquery/jquery.cometd.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/data-tables/DT_bootstrap.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/data-tables/DT_bootstrap.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/data-tables/DataTableICT.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/data-tables/DataTableSmartClient.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/data-tables/DataTableSmartClientApp.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/data-tables/app-test-i18n-datatable-zh-CN.json delete mode 100644 portal-common/src/main/webapp/common/thirdparty/data-tables/app-universal-i18n-datatable-en-US.json delete mode 100644 portal-common/src/main/webapp/common/thirdparty/data-tables/app-universal-i18n-datatable-zh-CN.json delete mode 100644 portal-common/src/main/webapp/common/thirdparty/data-tables/dataTable.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/data-tables/dataTables.bootstrap.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/data-tables/images/loading-spinner-grey.gif delete mode 100644 portal-common/src/main/webapp/common/thirdparty/data-tables/images/sort_asc.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/data-tables/images/sort_both.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/data-tables/images/sort_desc.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/data-tables/jquery.dataTables-1.9.4.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/data-tables/jquery.dataTables-1.9.4.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/data-tables/jquery.dataTables.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/data-tables/jquery.dataTables.min.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/data-tables/jquery.dataTables.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/data-tables/style-datatable.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/echarts/echarts-all.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/echarts/echarts.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/fakeLoader/fakeLoader.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/fakeLoader/fakeLoader.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/font-awesome/css/font-awesome.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/font-awesome/css/font-awesome.min.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/font-awesome/fonts/FontAwesome.otf delete mode 100644 portal-common/src/main/webapp/common/thirdparty/font-awesome/fonts/fontawesome-webfont.eot delete mode 100644 portal-common/src/main/webapp/common/thirdparty/font-awesome/fonts/fontawesome-webfont.svg delete mode 100644 portal-common/src/main/webapp/common/thirdparty/font-awesome/fonts/fontawesome-webfont.ttf delete mode 100644 portal-common/src/main/webapp/common/thirdparty/font-awesome/fonts/fontawesome-webfont.woff delete mode 100644 portal-common/src/main/webapp/common/thirdparty/font-awesome/less/bordered-pulled.less delete mode 100644 portal-common/src/main/webapp/common/thirdparty/font-awesome/less/core.less delete mode 100644 portal-common/src/main/webapp/common/thirdparty/font-awesome/less/fixed-width.less delete mode 100644 portal-common/src/main/webapp/common/thirdparty/font-awesome/less/font-awesome.less delete mode 100644 portal-common/src/main/webapp/common/thirdparty/font-awesome/less/icons.less delete mode 100644 portal-common/src/main/webapp/common/thirdparty/font-awesome/less/larger.less delete mode 100644 portal-common/src/main/webapp/common/thirdparty/font-awesome/less/list.less delete mode 100644 portal-common/src/main/webapp/common/thirdparty/font-awesome/less/mixins.less delete mode 100644 portal-common/src/main/webapp/common/thirdparty/font-awesome/less/path.less delete mode 100644 portal-common/src/main/webapp/common/thirdparty/font-awesome/less/rotated-flipped.less delete mode 100644 portal-common/src/main/webapp/common/thirdparty/font-awesome/less/spinning.less delete mode 100644 portal-common/src/main/webapp/common/thirdparty/font-awesome/less/stacked.less delete mode 100644 portal-common/src/main/webapp/common/thirdparty/font-awesome/less/variables.less delete mode 100644 portal-common/src/main/webapp/common/thirdparty/font-awesome/scss/_bordered-pulled.scss delete mode 100644 portal-common/src/main/webapp/common/thirdparty/font-awesome/scss/_core.scss delete mode 100644 portal-common/src/main/webapp/common/thirdparty/font-awesome/scss/_fixed-width.scss delete mode 100644 portal-common/src/main/webapp/common/thirdparty/font-awesome/scss/_icons.scss delete mode 100644 portal-common/src/main/webapp/common/thirdparty/font-awesome/scss/_larger.scss delete mode 100644 portal-common/src/main/webapp/common/thirdparty/font-awesome/scss/_list.scss delete mode 100644 portal-common/src/main/webapp/common/thirdparty/font-awesome/scss/_mixins.scss delete mode 100644 portal-common/src/main/webapp/common/thirdparty/font-awesome/scss/_path.scss delete mode 100644 portal-common/src/main/webapp/common/thirdparty/font-awesome/scss/_rotated-flipped.scss delete mode 100644 portal-common/src/main/webapp/common/thirdparty/font-awesome/scss/_spinning.scss delete mode 100644 portal-common/src/main/webapp/common/thirdparty/font-awesome/scss/_stacked.scss delete mode 100644 portal-common/src/main/webapp/common/thirdparty/font-awesome/scss/_variables.scss delete mode 100644 portal-common/src/main/webapp/common/thirdparty/font-awesome/scss/font-awesome.scss delete mode 100644 portal-common/src/main/webapp/common/thirdparty/freewall/freewall.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/bower.json delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/demo/css/Thumbs.db delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/demo/css/banner.jpg delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/demo/css/custom.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/demo/css/custom.styl delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/demo/css/icheck.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/demo/css/ie/arrow-bottom.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/demo/css/ie/arrow-top.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/demo/css/ie/header-line.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/demo/css/ie/icon-fork.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/demo/css/ie/icon-github.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/demo/css/ie/icon-lab.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/demo/css/ie/icon-options.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/demo/css/ie/icon-star.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/demo/css/montserrat-bold.eot delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/demo/css/montserrat-bold.svg delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/demo/css/montserrat-bold.ttf delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/demo/css/montserrat-bold.woff delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/demo/css/montserrat-regular.eot delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/demo/css/montserrat-regular.svg delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/demo/css/montserrat-regular.ttf delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/demo/css/montserrat-regular.woff delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/demo/css/normalize.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/demo/index.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/demo/js/custom.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/demo/js/custom.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/demo/js/jquery.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/demo/js/zepto.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/icheck.jquery.json delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/icheck.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/icheck.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/all.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/_all.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/aero.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/aero.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/aero@2x.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/blue.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/blue.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/blue@2x.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/flat.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/flat.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/flat@2x.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/green.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/green.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/green@2x.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/grey.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/grey.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/grey@2x.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/orange.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/orange.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/orange@2x.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/pink.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/pink.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/pink@2x.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/purple.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/purple.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/purple@2x.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/red.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/red.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/red@2x.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/yellow.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/yellow.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/flat/yellow@2x.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/futurico/futurico.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/futurico/futurico.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/futurico/futurico@2x.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/line/Thumbs.db delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/line/_all.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/line/aero.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/line/blue.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/line/green.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/line/grey.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/line/line.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/line/line.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/line/line@2x.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/line/orange.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/line/pink.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/line/purple.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/line/red.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/line/yellow.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/_all.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/aero.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/aero.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/aero@2x.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/blue.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/blue.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/blue@2x.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/green.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/green.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/green@2x.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/grey.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/grey.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/grey@2x.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/minimal.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/minimal.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/minimal@2x.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/orange.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/orange.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/orange@2x.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/pink.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/pink.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/pink@2x.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/purple.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/purple.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/purple@2x.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/red.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/red.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/red@2x.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/yellow.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/yellow.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/minimal/yellow@2x.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/polaris/polaris.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/polaris/polaris.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/polaris/polaris@2x.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/Thumbs.db delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/_all.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/aero.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/aero.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/aero@2x.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/blue.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/blue.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/blue@2x.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/green.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/green.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/green@2x.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/grey.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/grey.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/grey@2x.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/orange.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/orange.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/orange@2x.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/pink.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/pink.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/pink@2x.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/purple.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/purple.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/purple@2x.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/red.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/red.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/red@2x.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/square.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/square.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/square@2x.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/yellow.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/yellow.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/icheck/skins/square/yellow@2x.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jQuery UI/jquery-ui-1.12.1.min.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jQuery UI/jquery-ui-1.12.1.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jQuery-File-Upload/css/jquery.fileupload.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jQuery-File-Upload/img/loading.gif delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jQuery-File-Upload/img/progressbar.gif delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jQuery-File-Upload/js/jquery.fileupload.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jQuery-File-Upload/js/jquery.iframe-transport.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jQuery-File-Upload/js/vendor/jquery.ui.widget.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-blockui/jquery.blockui.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-cokie/jquery.cokie.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/README.md delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/dist/additional-methods.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/dist/additional-methods.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/dist/jquery.validate.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/dist/jquery.validate.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/additional-methods.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/additional-methods.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/jquery.validate.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/jquery.validate.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_ar.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_ar.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_bg.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_bg.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_ca.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_ca.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_cs.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_cs.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_da.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_da.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_de.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_de.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_el.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_el.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_es.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_es.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_es_AR.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_es_AR.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_et.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_et.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_eu.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_eu.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_fa.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_fa.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_fi.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_fi.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_fr.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_fr.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_gl.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_gl.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_he.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_he.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_hr.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_hr.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_hu.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_hu.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_id.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_id.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_is.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_is.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_it.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_it.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_ja.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_ja.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_ka.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_ka.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_kk.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_kk.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_ko.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_ko.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_lt.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_lt.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_lv.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_lv.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_my.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_my.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_nl.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_nl.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_no.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_no.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_pl.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_pl.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_pt_BR.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_pt_BR.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_pt_PT.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_pt_PT.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_ro.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_ro.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_ru.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_ru.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_si.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_si.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_sk.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_sk.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_sl.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_sl.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_sr.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_sr.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_sr_lat.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_sr_lat.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_sv.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_sv.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_th.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_th.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_tj.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_tj.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_tr.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_tr.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_uk.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_uk.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_vi.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_vi.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_zh.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_zh.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_zh_TW.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/messages_zh_TW.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/methods_de.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/methods_de.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/methods_es_CL.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/methods_es_CL.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/methods_fi.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/methods_fi.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/methods_nl.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/methods_nl.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/methods_pt.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery-validation/js/localization/methods_pt.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery.i18n/jquery.i18n.properties-1.0.9.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery/jquery-1.10.2.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery/jquery-1.11.2.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery/jquery-1.11.2.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery/jquery-1.11.2.min.map delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery/jquery-1.4.4.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery/jquery-2.1.3.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery/jquery-2.1.3.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery/jquery-2.1.3.min.map delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery/jquery-migrate-1.2.1.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery/jquery-migrate-1.2.1.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/jquery/jquery.reveal.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/select2/select2-custom.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/select2/select2.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/select2/select2.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/sigma/sigma.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/sigma/sigma.renderers.customShapes.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/sigma/sigma.renderers.edgeLabels.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/uniform/README.md delete mode 100644 portal-common/src/main/webapp/common/thirdparty/uniform/css/uniform.default.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/uniform/css/uniform.default.min.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/uniform/css/uniform.default.scss delete mode 100644 portal-common/src/main/webapp/common/thirdparty/uniform/images/bg-input-focus.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/uniform/images/bg-input.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/uniform/images/sprite.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/uniform/images/sprite_original.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/uniform/jquery.uniform.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/uniform/jquery.uniform.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/API_cn.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/API_en.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/apiCss/api.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/apiCss/common.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/apiCss/common_ie6.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/apiCss/img/apiMenu.gif delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/apiCss/img/apiMenu.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/apiCss/img/background.jpg delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/apiCss/img/chinese.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/apiCss/img/close.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/apiCss/img/contact-bg.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/apiCss/img/english.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/apiCss/img/header-bg.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/apiCss/img/lightbulb.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/apiCss/img/overlay_arrow.gif delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/apiCss/img/overlay_arrow.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/apiCss/img/overlay_bg.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/apiCss/img/overlay_close_IE6.gif delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/apiCss/img/zTreeStandard.gif delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/apiCss/img/zTreeStandard.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/apiCss/jquery-1.6.2.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/apiCss/jquery.ztree.core-3.5.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/apiCss/zTreeStyleForApi.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/fn.zTree._z.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/fn.zTree.destroy.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/fn.zTree.getZTreeObj.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/fn.zTree.init.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.async.autoParam.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.async.contentType.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.async.dataFilter.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.async.dataType.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.async.enable.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.async.otherParam.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.async.type.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.async.url.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.beforeAsync.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.beforeCheck.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.beforeClick.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.beforeCollapse.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.beforeDblClick.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.beforeDrag.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.beforeDragOpen.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.beforeDrop.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.beforeEditName.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.beforeExpand.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.beforeMouseDown.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.beforeMouseUp.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.beforeRemove.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.beforeRename.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.beforeRightClick.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.onAsyncError.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.onAsyncSuccess.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.onCheck.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.onClick.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.onCollapse.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.onDblClick.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.onDrag.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.onDragMove.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.onDrop.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.onExpand.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.onMouseDown.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.onMouseUp.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.onNodeCreated.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.onRemove.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.onRename.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.callback.onRightClick.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.check.autoCheckTrigger.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.check.chkDisabledInherit.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.check.chkStyle.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.check.chkboxType.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.check.enable.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.check.nocheckInherit.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.check.radioType.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.data.keep.leaf.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.data.keep.parent.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.data.key.checked.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.data.key.children.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.data.key.name.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.data.key.title.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.data.key.url.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.data.simpleData.enable.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.data.simpleData.idKey.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.data.simpleData.pIdKey.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.data.simpleData.rootPId.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.edit.drag.autoExpandTrigger.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.edit.drag.autoOpenTime.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.edit.drag.borderMax.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.edit.drag.borderMin.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.edit.drag.inner.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.edit.drag.isCopy.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.edit.drag.isMove.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.edit.drag.maxShowNodeNum.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.edit.drag.minMoveSize.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.edit.drag.next.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.edit.drag.prev.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.edit.editNameSelectAll.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.edit.enable.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.edit.removeTitle.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.edit.renameTitle.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.edit.showRemoveBtn.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.edit.showRenameBtn.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.treeId.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.treeObj.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.view.addDiyDom.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.view.addHoverDom.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.view.autoCancelSelected.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.view.dblClickExpand.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.view.expandSpeed.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.view.fontCss.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.view.nameIsHTML.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.view.removeHoverDom.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.view.selectedMulti.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.view.showIcon.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.view.showLine.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.view.showTitle.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/setting.view.txtSelectedEnable.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.check_Child_State.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.check_Focus.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.checked.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.checkedOld.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.children.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.chkDisabled.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.click.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.diy.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.editNameFlag.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.getCheckStatus.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.getNextNode.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.getParentNode.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.getPreNode.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.halfCheck.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.icon.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.iconClose.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.iconOpen.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.iconSkin.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.isAjaxing.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.isFirstNode.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.isHidden.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.isHover.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.isLastNode.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.isParent.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.level.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.name.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.nocheck.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.open.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.parentTId.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.tId.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.target.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.url.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/treeNode.zAsync.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.addNodes.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.cancelEditName.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.cancelSelectedNode.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.checkAllNodes.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.checkNode.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.copyNode.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.destroy.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.editName.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.expandAll.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.expandNode.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.getChangeCheckedNodes.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.getCheckedNodes.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.getNodeByParam.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.getNodeByTId.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.getNodeIndex.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.getNodes.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.getNodesByFilter.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.getNodesByParam.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.getNodesByParamFuzzy.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.getSelectedNodes.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.hideNode.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.hideNodes.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.moveNode.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.reAsyncChildNodes.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.refresh.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.removeChildNodes.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.removeNode.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.selectNode.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.setChkDisabled.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.setEditable.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.setting.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.showNode.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.showNodes.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.transformToArray.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.transformTozTreeNodes.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/cn/zTreeObj.updateNode.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/fn.zTree._z.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/fn.zTree.destroy.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/fn.zTree.getZTreeObj.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/fn.zTree.init.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.async.autoParam.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.async.contentType.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.async.dataFilter.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.async.dataType.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.async.enable.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.async.otherParam.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.async.type.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.async.url.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.beforeAsync.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.beforeCheck.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.beforeClick.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.beforeCollapse.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.beforeDblClick.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.beforeDrag.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.beforeDragOpen.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.beforeDrop.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.beforeEditName.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.beforeExpand.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.beforeMouseDown.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.beforeMouseUp.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.beforeRemove.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.beforeRename.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.beforeRightClick.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.onAsyncError.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.onAsyncSuccess.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.onCheck.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.onClick.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.onCollapse.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.onDblClick.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.onDrag.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.onDragMove.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.onDrop.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.onExpand.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.onMouseDown.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.onMouseUp.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.onNodeCreated.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.onRemove.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.onRename.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.callback.onRightClick.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.check.autoCheckTrigger.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.check.chkDisabledInherit.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.check.chkStyle.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.check.chkboxType.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.check.enable.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.check.nocheckInherit.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.check.radioType.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.data.keep.leaf.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.data.keep.parent.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.data.key.checked.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.data.key.children.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.data.key.name.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.data.key.title.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.data.key.url.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.data.simpleData.enable.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.data.simpleData.idKey.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.data.simpleData.pIdKey.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.data.simpleData.rootPId.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.edit.drag.autoExpandTrigger.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.edit.drag.autoOpenTime.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.edit.drag.borderMax.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.edit.drag.borderMin.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.edit.drag.inner.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.edit.drag.isCopy.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.edit.drag.isMove.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.edit.drag.maxShowNodeNum.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.edit.drag.minMoveSize.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.edit.drag.next.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.edit.drag.prev.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.edit.editNameSelectAll.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.edit.enable.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.edit.removeTitle.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.edit.renameTitle.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.edit.showRemoveBtn.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.edit.showRenameBtn.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.treeId.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.treeObj.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.view.addDiyDom.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.view.addHoverDom.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.view.autoCancelSelected.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.view.dblClickExpand.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.view.expandSpeed.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.view.fontCss.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.view.nameIsHTML.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.view.removeHoverDom.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.view.selectedMulti.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.view.showIcon.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.view.showLine.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.view.showTitle.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/setting.view.txtSelectedEnable.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.check_Child_State.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.check_Focus.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.checked.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.checkedOld.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.children.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.chkDisabled.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.click.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.diy.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.editNameFlag.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.getCheckStatus.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.getNextNode.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.getParentNode.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.getPreNode.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.halfCheck.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.icon.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.iconClose.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.iconOpen.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.iconSkin.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.isAjaxing.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.isFirstNode.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.isHidden.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.isHover.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.isLastNode.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.isParent.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.level.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.name.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.nocheck.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.open.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.parentTId.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.tId.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.target.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.url.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/treeNode.zAsync.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.addNodes.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.cancelEditName.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.cancelSelectedNode.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.checkAllNodes.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.checkNode.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.copyNode.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.destroy.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.editName.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.expandAll.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.expandNode.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.getChangeCheckedNodes.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.getCheckedNodes.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.getNodeByParam.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.getNodeByTId.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.getNodeIndex.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.getNodes.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.getNodesByFilter.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.getNodesByParam.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.getNodesByParamFuzzy.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.getSelectedNodes.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.hideNode.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.hideNodes.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.moveNode.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.reAsyncChildNodes.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.refresh.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.removeChildNodes.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.removeNode.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.selectNode.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.setChkDisabled.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.setEditable.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.setting.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.showNode.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.showNodes.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.transformToArray.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.transformTozTreeNodes.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/api/en/zTreeObj.updateNode.html delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/css/demo.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle/ReadMe.txt delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle/img/Thumbs.db delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle/img/diy/1_close.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle/img/diy/1_open.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle/img/diy/2.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle/img/diy/3.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle/img/diy/4.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle/img/diy/5.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle/img/diy/6.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle/img/diy/7.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle/img/diy/8.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle/img/diy/9.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle/img/diy/Thumbs.db delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle/img/line_conn.gif delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle/img/loading.gif delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle/img/zTreeStandard.gif delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle/img/zTreeStandard.gifbak delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle/img/zTreeStandard.png delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle/img/zTreeStandard.pngbak delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle/img/zTreeStandard.psd delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle/zTreeStyle.css delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/js/jquery.ztree.all.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/js/jquery.ztree.all.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/js/jquery.ztree.core.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/js/jquery.ztree.core.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/js/jquery.ztree.excheck.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/js/jquery.ztree.excheck.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/js/jquery.ztree.exedit.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/js/jquery.ztree.exedit.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/js/jquery.ztree.exhide.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/js/jquery.ztree.exhide.min.js delete mode 100644 portal-common/src/main/webapp/common/thirdparty/zTree/zTree.v3.jquery.json delete mode 100644 portal-common/src/main/webapp/framework/appserver/api.js delete mode 100644 portal-common/src/main/webapp/framework/appserver/server.js delete mode 100644 portal-common/src/main/webapp/framework/browser/css/open-ostyle.css delete mode 100644 portal-common/src/main/webapp/framework/browser/js/app.js delete mode 100644 portal-common/src/main/webapp/framework/browser/template.html delete mode 100644 portal-common/src/main/webapp/framework/browser/templates/accordion.html delete mode 100644 portal-common/src/main/webapp/framework/browser/templates/buttons.html delete mode 100644 portal-common/src/main/webapp/framework/browser/templates/checkBoxes.html delete mode 100644 portal-common/src/main/webapp/framework/browser/templates/dropdown.html delete mode 100644 portal-common/src/main/webapp/framework/browser/templates/list.html delete mode 100644 portal-common/src/main/webapp/framework/browser/templates/login.html delete mode 100644 portal-common/src/main/webapp/framework/browser/templates/management.html delete mode 100644 portal-common/src/main/webapp/framework/browser/templates/radioButtons.html delete mode 100644 portal-common/src/main/webapp/framework/browser/templates/register.html delete mode 100644 portal-common/src/main/webapp/framework/browser/templates/table.html delete mode 100644 portal-common/src/main/webapp/framework/browser/templates/tabs.html delete mode 100644 portal-common/src/main/webapp/framework/browser/templates/textarea.html delete mode 100644 portal-common/src/main/webapp/framework/browser/templates/tree.html delete mode 100644 portal-common/src/main/webapp/framework/browser/templates/verticalTab.html delete mode 100644 portal-common/src/main/webapp/framework/browser/thirdparty/css/img/diy/1_close.png delete mode 100644 portal-common/src/main/webapp/framework/browser/thirdparty/css/img/diy/1_open.png delete mode 100644 portal-common/src/main/webapp/framework/browser/thirdparty/css/img/diy/2.png delete mode 100644 portal-common/src/main/webapp/framework/browser/thirdparty/css/img/diy/3.png delete mode 100644 portal-common/src/main/webapp/framework/browser/thirdparty/css/img/diy/4.png delete mode 100644 portal-common/src/main/webapp/framework/browser/thirdparty/css/img/diy/5.png delete mode 100644 portal-common/src/main/webapp/framework/browser/thirdparty/css/img/diy/6.png delete mode 100644 portal-common/src/main/webapp/framework/browser/thirdparty/css/img/diy/7.png delete mode 100644 portal-common/src/main/webapp/framework/browser/thirdparty/css/img/diy/8.png delete mode 100644 portal-common/src/main/webapp/framework/browser/thirdparty/css/img/diy/9.png delete mode 100644 portal-common/src/main/webapp/framework/browser/thirdparty/css/img/line_conn.gif delete mode 100644 portal-common/src/main/webapp/framework/browser/thirdparty/css/img/loading.gif delete mode 100644 portal-common/src/main/webapp/framework/browser/thirdparty/css/img/zTreeStandard.gif delete mode 100644 portal-common/src/main/webapp/framework/browser/thirdparty/css/magic-check.css delete mode 100644 portal-common/src/main/webapp/framework/browser/thirdparty/fonts/glyphicons-halflings-regular.eot delete mode 100644 portal-common/src/main/webapp/framework/browser/thirdparty/fonts/glyphicons-halflings-regular.ttf delete mode 100644 portal-common/src/main/webapp/framework/browser/thirdparty/fonts/glyphicons-halflings-regular.woff delete mode 100644 portal-common/src/main/webapp/framework/browser/thirdparty/fonts/glyphicons-halflings-regular.woff2 delete mode 100644 portal-common/src/main/webapp/framework/browser/thirdparty/images/collapse_arrow.png delete mode 100644 portal-common/src/main/webapp/framework/browser/thirdparty/images/expand_arrow.png delete mode 100644 portal-common/src/main/webapp/framework/browser/thirdparty/images/openo.png delete mode 100644 portal-common/src/main/webapp/framework/browser/thirdparty/js/angular-ui-router.min.js delete mode 100644 portal-common/src/main/webapp/framework/browser/thirdparty/js/bootstrap-table-filter-control.min.js delete mode 100644 portal-common/src/main/webapp/framework/browser/thirdparty/js/jquery.ztree.core-3.5.js delete mode 100644 portal-common/src/main/webapp/framework/browser/thirdparty/js/jquery_1.12.4.min.js delete mode 100644 portal-common/src/main/webapp/framework/browser/thirdparty/js/mustache.js delete mode 100644 portal-common/src/main/webapp/framework/browser/thirdparty/js/tree.jquery.js delete mode 100644 portal-extsys/pom.xml delete mode 100644 portal-extsys/src/main/webapp/extsys/sdncontroller/conf/License.txt delete mode 100644 portal-extsys/src/main/webapp/extsys/sdncontroller/conf/dataconfig.json delete mode 100644 portal-extsys/src/main/webapp/extsys/sdncontroller/controller.html delete mode 100644 portal-extsys/src/main/webapp/extsys/sdncontroller/css/RMain.css delete mode 100644 portal-extsys/src/main/webapp/extsys/sdncontroller/css/VMMain.css delete mode 100644 portal-extsys/src/main/webapp/extsys/sdncontroller/css/bootstrap-table.min.css delete mode 100644 portal-extsys/src/main/webapp/extsys/sdncontroller/css/bootstrap.min.css delete mode 100644 portal-extsys/src/main/webapp/extsys/sdncontroller/images/License.txt delete mode 100644 portal-extsys/src/main/webapp/extsys/sdncontroller/images/add.png delete mode 100644 portal-extsys/src/main/webapp/extsys/sdncontroller/images/arrow-down-enable.png delete mode 100644 portal-extsys/src/main/webapp/extsys/sdncontroller/images/collapse_arrow.png delete mode 100644 portal-extsys/src/main/webapp/extsys/sdncontroller/images/delete.png delete mode 100644 portal-extsys/src/main/webapp/extsys/sdncontroller/images/edit.png delete mode 100644 portal-extsys/src/main/webapp/extsys/sdncontroller/images/expand_arrow.png delete mode 100644 portal-extsys/src/main/webapp/extsys/sdncontroller/images/ideo_default_select.png delete mode 100644 portal-extsys/src/main/webapp/extsys/sdncontroller/images/import.png delete mode 100644 portal-extsys/src/main/webapp/extsys/sdncontroller/images/line.png delete mode 100644 portal-extsys/src/main/webapp/extsys/sdncontroller/images/loading-spinner-grey.gif delete mode 100644 portal-extsys/src/main/webapp/extsys/sdncontroller/images/openo.png delete mode 100644 portal-extsys/src/main/webapp/extsys/sdncontroller/images/page_l.png delete mode 100644 portal-extsys/src/main/webapp/extsys/sdncontroller/images/page_left_disabled.png delete mode 100644 portal-extsys/src/main/webapp/extsys/sdncontroller/images/page_r.png delete mode 100644 portal-extsys/src/main/webapp/extsys/sdncontroller/images/sort_asc.png delete mode 100644 portal-extsys/src/main/webapp/extsys/sdncontroller/images/sort_both.png delete mode 100644 portal-extsys/src/main/webapp/extsys/sdncontroller/images/sort_desc.png delete mode 100644 portal-extsys/src/main/webapp/extsys/sdncontroller/js/bootstrap-table-filter-control.min.js delete mode 100644 portal-extsys/src/main/webapp/extsys/sdncontroller/js/bootstrap-table.min.js delete mode 100644 portal-extsys/src/main/webapp/extsys/sdncontroller/js/bootstrap.min.js delete mode 100644 portal-extsys/src/main/webapp/extsys/sdncontroller/js/controller.js delete mode 100644 portal-extsys/src/main/webapp/extsys/sdncontroller/js/jquery-1.11.2.min.js delete mode 100644 portal-extsys/src/main/webapp/extsys/vim/css/bootstrap.css delete mode 100644 portal-extsys/src/main/webapp/extsys/vim/css/skill.css delete mode 100644 portal-extsys/src/main/webapp/extsys/vim/css/vim.css delete mode 100644 portal-extsys/src/main/webapp/extsys/vim/css/vimChart.css delete mode 100644 portal-extsys/src/main/webapp/extsys/vim/i18n/loadi18nApp.js delete mode 100644 portal-extsys/src/main/webapp/extsys/vim/i18n/roc-vim-iui-i18n-en-US.properties delete mode 100644 portal-extsys/src/main/webapp/extsys/vim/i18n/roc-vim-iui-i18n-zh-CN.properties delete mode 100644 portal-extsys/src/main/webapp/extsys/vim/js/client-cometd.js delete mode 100644 portal-extsys/src/main/webapp/extsys/vim/js/jqBootstrapValidation.js delete mode 100644 portal-extsys/src/main/webapp/extsys/vim/js/vim-validate.js delete mode 100644 portal-extsys/src/main/webapp/extsys/vim/js/vimChart.js delete mode 100644 portal-extsys/src/main/webapp/extsys/vim/js/vimChartController.js delete mode 100644 portal-extsys/src/main/webapp/extsys/vim/js/vimController.js delete mode 100644 portal-extsys/src/main/webapp/extsys/vim/js/vimUtil.js delete mode 100644 portal-extsys/src/main/webapp/extsys/vim/vimChart.html delete mode 100644 portal-extsys/src/main/webapp/extsys/vim/vimView.html delete mode 100644 portal-extsys/src/main/webapp/extsys/vnfm/css/animate.min.css delete mode 100644 portal-extsys/src/main/webapp/extsys/vnfm/css/vnfm.css delete mode 100644 portal-extsys/src/main/webapp/extsys/vnfm/i18n/nfv-nso-iui-i18n-en-US.properties delete mode 100644 portal-extsys/src/main/webapp/extsys/vnfm/i18n/nfv-nso-iui-i18n-zh-CN.properties delete mode 100644 portal-extsys/src/main/webapp/extsys/vnfm/js/commonUtil.js delete mode 100644 portal-extsys/src/main/webapp/extsys/vnfm/js/loadi18n_nsoc.js delete mode 100644 portal-extsys/src/main/webapp/extsys/vnfm/js/vnfm-validate.js delete mode 100644 portal-extsys/src/main/webapp/extsys/vnfm/js/vnfmController.js delete mode 100644 portal-extsys/src/main/webapp/extsys/vnfm/js/vnfmUtil.js delete mode 100644 portal-extsys/src/main/webapp/extsys/vnfm/vnfmView.html delete mode 100644 portal-lifecyclemgr/pom.xml delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/InputData.html delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/TopoAccor.html delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/UnderLay_TP.html delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/accorTables.html delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/chartTopo.html delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/conf/License.txt delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/conf/dataconfig.json delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/css/RMain.css delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/css/VMMain.css delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/css/bootstrap-table.min.css delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/css/bootstrap.min.css delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/css/jquery-ui-1.12.1.min.css delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/gsolcmmain.html delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/i18n/lcm-template-parameters-i18n-en-US.properties delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/License.txt delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/add.png delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/arrow-down-enable.png delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/collapse_arrow.png delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/delete.png delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/edit.bak.png delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/edit.png delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/expand_arrow.png delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/ideo_default_select.png delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/import.png delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/line.png delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/loading-spinner-grey.gif delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/loading.gif delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/openo.png delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/page_l.png delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/page_left_disabled.png delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/page_r.png delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/reset.png delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/sort_asc.png delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/sort_both.png delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/sort_desc.png delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/License.txt delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/NEDOWN.png delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/NEDOWN_selected.png delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/NETWORK.png delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/NETWORK_EDGE.png delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/NETWORK_selected.png delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/NEUP.png delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/NEUP_selected.png delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/OTHER.png delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/OTHER_0.png delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/OTHER_0_selected.png delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/OTHER_1.png delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/OTHER_1_selected.png delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/OTHER_2.png delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/OTHER_2_selected.png delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/OTHER_3.png delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/OTHER_3_selected.png delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/OTHER_selected.png delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/cloud.png delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/cloudroute.png delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/crossSubnet.png delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/delete_asbr.png delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/mark_sink.png delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/mark_source.png delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/networkdown.png delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/node_green.png delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/node_red.png delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/router.png delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/router_selected.png delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/site.png delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/siteIcon_feature.png delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/site_selected.png delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/sitedown.png delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/sitedown_selected.png delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/u1963.png delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/js/bootstrap-table-filter-control.min.js delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/js/bootstrap-table.min.js delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/js/bootstrap.min.js delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/js/brs.js delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/js/gsolcm.js delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/js/jquery-1.11.2.min.js delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/js/jquery-ui-1.12.1.min.js delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/js/jquery.bootstrap-growl.min.js delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/js/jquery.isloading.min.js delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/js/rest.js delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/js/tmNodesController.js delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/js/tmTopoController.js delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/js/topo/Edge.js delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/js/topo/Node.js delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/js/topo/OverlayTopology.js delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/js/topo/sigma/sigma.min.js delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/js/topo/sigma/sigma.renderers.customShapes.min.js delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/js/topo/sigma/sigma.renderers.edgeLabels.min.js delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/js/underlay.js delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/js/vpn.js delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/lcm_detail_nfvo_nodesinfo.html delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/lcm_detail_nfvo_topology.html delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/newShow.html delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/overlayvpn.html delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/overlayvpn_topo.html delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/sdnovpn.html delete mode 100644 portal-lifecyclemgr/src/main/webapp/lifecyclemgr/underlayvpn.html delete mode 100644 portal-monitor/pom.xml delete mode 100644 portal-monitor/src/main/webapp/monitor/css/dac.css delete mode 100644 portal-monitor/src/main/webapp/monitor/css/monitorSetting.css delete mode 100644 portal-monitor/src/main/webapp/monitor/dacList.html delete mode 100644 portal-monitor/src/main/webapp/monitor/i18n/umc-monitor-iui-i18n-en-US.properties delete mode 100644 portal-monitor/src/main/webapp/monitor/images/License.txt delete mode 100644 portal-monitor/src/main/webapp/monitor/images/throbber.gif delete mode 100644 portal-monitor/src/main/webapp/monitor/js/dacController.js delete mode 100644 portal-monitor/src/main/webapp/monitor/js/loadi18nApp_ngict-umc-monitor.js delete mode 100644 portal-monitor/src/main/webapp/monitor/js/monitorSettingController.js delete mode 100644 portal-monitor/src/main/webapp/monitor/js/monitorSettingUtil.js delete mode 100644 portal-monitor/src/main/webapp/monitor/monitorSetting.html delete mode 100644 portal-monitor/src/main/webapp/monitor/monitorSettingList.html delete mode 100644 portal-package/pom.xml delete mode 100644 portal-package/src/main/java/org/openo/portal/bean/MsbRegisterBean.java delete mode 100644 portal-package/src/main/java/org/openo/portal/bean/ServiceNodeBean.java delete mode 100644 portal-package/src/main/java/org/openo/portal/system/CommonUtil.java delete mode 100644 portal-package/src/main/java/org/openo/portal/system/Constants.java delete mode 100644 portal-package/src/main/java/org/openo/portal/system/RegisterService.java delete mode 100644 portal-package/src/main/java/org/openo/portal/system/SystemListener.java delete mode 100644 portal-package/src/main/resources/logback.xml delete mode 100644 portal-package/src/main/resources/portalConfig/msb_register.xml delete mode 100644 portal-package/src/main/webapp/WEB-INF/web.xml delete mode 100644 portal-performance/pom.xml delete mode 100644 portal-performance/src/main/webapp/performance/alarm_view.html delete mode 100644 portal-performance/src/main/webapp/performance/css/alarmsQuery.css delete mode 100644 portal-performance/src/main/webapp/performance/css/performanceChart.css delete mode 100644 portal-performance/src/main/webapp/performance/css/performanceQuery.css delete mode 100644 portal-performance/src/main/webapp/performance/css/pmQueryBox.css delete mode 100644 portal-performance/src/main/webapp/performance/i18n/web-alarm-i18n-en-US.properties delete mode 100644 portal-performance/src/main/webapp/performance/i18n/web-performance-i18n-en-US.properties delete mode 100644 portal-performance/src/main/webapp/performance/image/License.txt delete mode 100644 portal-performance/src/main/webapp/performance/image/aos_view-fm.gif delete mode 100644 portal-performance/src/main/webapp/performance/image/arrow.png delete mode 100644 portal-performance/src/main/webapp/performance/image/chart_icon.png delete mode 100644 portal-performance/src/main/webapp/performance/image/delete.png delete mode 100644 portal-performance/src/main/webapp/performance/image/details_close.png delete mode 100644 portal-performance/src/main/webapp/performance/image/details_open.png delete mode 100644 portal-performance/src/main/webapp/performance/image/down.png delete mode 100644 portal-performance/src/main/webapp/performance/image/filter.png delete mode 100644 portal-performance/src/main/webapp/performance/image/statistics.png delete mode 100644 portal-performance/src/main/webapp/performance/image/table_icon.png delete mode 100644 portal-performance/src/main/webapp/performance/image/up.png delete mode 100644 portal-performance/src/main/webapp/performance/js/alarmConds.js delete mode 100644 portal-performance/src/main/webapp/performance/js/alarmsServerPageTable.js delete mode 100644 portal-performance/src/main/webapp/performance/js/alarmsUtil.js delete mode 100644 portal-performance/src/main/webapp/performance/js/commonUtil.js delete mode 100644 portal-performance/src/main/webapp/performance/js/curAlarmsController.js delete mode 100644 portal-performance/src/main/webapp/performance/js/performanceChart.js delete mode 100644 portal-performance/src/main/webapp/performance/js/performanceQueryController.js delete mode 100644 portal-performance/src/main/webapp/performance/js/pmUtil.js delete mode 100644 portal-performance/src/main/webapp/performance/js/serverPageTable.js delete mode 100644 portal-performance/src/main/webapp/performance/performance_query_rule.html delete mode 100644 portal-performance/src/main/webapp/performance/performance_view.html delete mode 100644 portal-resmgr/pom.xml delete mode 100644 portal-resmgr/src/main/webapp/resmgr-nfv/conf/License.txt delete mode 100644 portal-resmgr/src/main/webapp/resmgr-nfv/conf/globalconfig.json delete mode 100644 portal-resmgr/src/main/webapp/resmgr-nfv/css/RMain.css delete mode 100644 portal-resmgr/src/main/webapp/resmgr-nfv/css/VMMain.css delete mode 100644 portal-resmgr/src/main/webapp/resmgr-nfv/css/bootstrap-table.min.css delete mode 100644 portal-resmgr/src/main/webapp/resmgr-nfv/css/bootstrap.min.css delete mode 100644 portal-resmgr/src/main/webapp/resmgr-nfv/css/jquery.dataTables.min.css delete mode 100644 portal-resmgr/src/main/webapp/resmgr-nfv/css/resmgr.css delete mode 100644 portal-resmgr/src/main/webapp/resmgr-nfv/datacenter.html delete mode 100644 portal-resmgr/src/main/webapp/resmgr-nfv/html/index.html delete mode 100644 portal-resmgr/src/main/webapp/resmgr-nfv/images/License.txt delete mode 100644 portal-resmgr/src/main/webapp/resmgr-nfv/images/add.png delete mode 100644 portal-resmgr/src/main/webapp/resmgr-nfv/images/arrow-down-enable.png delete mode 100644 portal-resmgr/src/main/webapp/resmgr-nfv/images/collapse_arrow.png delete mode 100644 portal-resmgr/src/main/webapp/resmgr-nfv/images/delete.png delete mode 100644 portal-resmgr/src/main/webapp/resmgr-nfv/images/edit.png delete mode 100644 portal-resmgr/src/main/webapp/resmgr-nfv/images/expand_arrow.png delete mode 100644 portal-resmgr/src/main/webapp/resmgr-nfv/images/ideo_default_select.png delete mode 100644 portal-resmgr/src/main/webapp/resmgr-nfv/images/import.png delete mode 100644 portal-resmgr/src/main/webapp/resmgr-nfv/images/line.png delete mode 100644 portal-resmgr/src/main/webapp/resmgr-nfv/images/loading-spinner-grey.gif delete mode 100644 portal-resmgr/src/main/webapp/resmgr-nfv/images/openo.png delete mode 100644 portal-resmgr/src/main/webapp/resmgr-nfv/images/page_l.png delete mode 100644 portal-resmgr/src/main/webapp/resmgr-nfv/images/page_left_disabled.png delete mode 100644 portal-resmgr/src/main/webapp/resmgr-nfv/images/page_r.png delete mode 100644 portal-resmgr/src/main/webapp/resmgr-nfv/images/sort_asc.png delete mode 100644 portal-resmgr/src/main/webapp/resmgr-nfv/images/sort_both.png delete mode 100644 portal-resmgr/src/main/webapp/resmgr-nfv/images/sort_desc.png delete mode 100644 portal-resmgr/src/main/webapp/resmgr-nfv/js/SendMsg.js delete mode 100644 portal-resmgr/src/main/webapp/resmgr-nfv/js/bootbox.min.js delete mode 100644 portal-resmgr/src/main/webapp/resmgr-nfv/js/bootstrap-table.min.js delete mode 100644 portal-resmgr/src/main/webapp/resmgr-nfv/js/bootstrap.min.js delete mode 100644 portal-resmgr/src/main/webapp/resmgr-nfv/js/chart.min.js delete mode 100644 portal-resmgr/src/main/webapp/resmgr-nfv/js/datacenter.js delete mode 100644 portal-resmgr/src/main/webapp/resmgr-nfv/js/gconf.js delete mode 100644 portal-resmgr/src/main/webapp/resmgr-nfv/js/jquery-1.11.2.min.js delete mode 100644 portal-resmgr/src/main/webapp/resmgr-nfv/js/jquery.dataTables.min.js delete mode 100644 portal-resmgr/src/main/webapp/resmgr-nfv/js/jquery.validate.min.js delete mode 100644 portal-resmgr/src/main/webapp/resmgr-nfv/js/resmgr.js delete mode 100644 portal-resmgr/src/main/webapp/resmgr-nfv/js/validateset.js delete mode 100644 portal-resmgr/src/main/webapp/resmgr-nfv/js/vim.js delete mode 100644 portal-resmgr/src/main/webapp/resmgr-nfv/location.html delete mode 100644 portal-resmgr/src/main/webapp/resmgr-nfv/resource.html delete mode 100644 portal-resmgr/src/main/webapp/resmgr-nfv/vim.html delete mode 100644 portal-resmgr/src/main/webapp/resmgr-sdn.rar delete mode 100644 portal-resmgr/src/main/webapp/resmgr-sdn/conf/License.txt delete mode 100644 portal-resmgr/src/main/webapp/resmgr-sdn/conf/dataconfig.json delete mode 100644 portal-resmgr/src/main/webapp/resmgr-sdn/css/RMain.css delete mode 100644 portal-resmgr/src/main/webapp/resmgr-sdn/css/VMMain.css delete mode 100644 portal-resmgr/src/main/webapp/resmgr-sdn/css/bootstrap-table.min.css delete mode 100644 portal-resmgr/src/main/webapp/resmgr-sdn/css/bootstrap.min.css delete mode 100644 portal-resmgr/src/main/webapp/resmgr-sdn/images/License.txt delete mode 100644 portal-resmgr/src/main/webapp/resmgr-sdn/images/add.png delete mode 100644 portal-resmgr/src/main/webapp/resmgr-sdn/images/arrow-down-enable.png delete mode 100644 portal-resmgr/src/main/webapp/resmgr-sdn/images/collapse_arrow.png delete mode 100644 portal-resmgr/src/main/webapp/resmgr-sdn/images/delete.png delete mode 100644 portal-resmgr/src/main/webapp/resmgr-sdn/images/edit.png delete mode 100644 portal-resmgr/src/main/webapp/resmgr-sdn/images/expand_arrow.png delete mode 100644 portal-resmgr/src/main/webapp/resmgr-sdn/images/ideo_default_select.png delete mode 100644 portal-resmgr/src/main/webapp/resmgr-sdn/images/import.png delete mode 100644 portal-resmgr/src/main/webapp/resmgr-sdn/images/line.png delete mode 100644 portal-resmgr/src/main/webapp/resmgr-sdn/images/loading-spinner-grey.gif delete mode 100644 portal-resmgr/src/main/webapp/resmgr-sdn/images/openo.png delete mode 100644 portal-resmgr/src/main/webapp/resmgr-sdn/images/page_l.png delete mode 100644 portal-resmgr/src/main/webapp/resmgr-sdn/images/page_left_disabled.png delete mode 100644 portal-resmgr/src/main/webapp/resmgr-sdn/images/page_r.png delete mode 100644 portal-resmgr/src/main/webapp/resmgr-sdn/images/sort_asc.png delete mode 100644 portal-resmgr/src/main/webapp/resmgr-sdn/images/sort_both.png delete mode 100644 portal-resmgr/src/main/webapp/resmgr-sdn/images/sort_desc.png delete mode 100644 portal-resmgr/src/main/webapp/resmgr-sdn/js/bootstrap-table-filter-control.min.js delete mode 100644 portal-resmgr/src/main/webapp/resmgr-sdn/js/bootstrap-table.min.js delete mode 100644 portal-resmgr/src/main/webapp/resmgr-sdn/js/bootstrap.min.js delete mode 100644 portal-resmgr/src/main/webapp/resmgr-sdn/js/brs.js delete mode 100644 portal-resmgr/src/main/webapp/resmgr-sdn/js/jquery-1.11.2.min.js delete mode 100644 portal-resmgr/src/main/webapp/resmgr-sdn/link.html delete mode 100644 portal-resmgr/src/main/webapp/resmgr-sdn/ne.html delete mode 100644 portal-resmgr/src/main/webapp/resmgr-sdn/port.html delete mode 100644 portal-resmgr/src/main/webapp/resmgr-sdn/resource.html delete mode 100644 portal-resmgr/src/main/webapp/resmgr-sdn/site.html create mode 100644 resmgr/pom.xml create mode 100644 resmgr/src/main/webapp/resmgr-nfv/conf/License.txt create mode 100644 resmgr/src/main/webapp/resmgr-nfv/conf/globalconfig.json create mode 100644 resmgr/src/main/webapp/resmgr-nfv/css/RMain.css create mode 100644 resmgr/src/main/webapp/resmgr-nfv/css/VMMain.css rename {openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr => resmgr/src/main/webapp/resmgr-nfv}/css/bootstrap-table.min.css (100%) create mode 100644 resmgr/src/main/webapp/resmgr-nfv/css/bootstrap.min.css create mode 100644 resmgr/src/main/webapp/resmgr-nfv/css/jquery.dataTables.min.css create mode 100644 resmgr/src/main/webapp/resmgr-nfv/css/resmgr.css create mode 100644 resmgr/src/main/webapp/resmgr-nfv/datacenter.html create mode 100644 resmgr/src/main/webapp/resmgr-nfv/html/index.html create mode 100644 resmgr/src/main/webapp/resmgr-nfv/images/License.txt rename {openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr => resmgr/src/main/webapp/resmgr-nfv}/images/add.png (100%) rename {openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr => resmgr/src/main/webapp/resmgr-nfv}/images/arrow-down-enable.png (100%) rename {openo-portal/portal-resmgr => resmgr}/src/main/webapp/resmgr-nfv/images/collapse_arrow.png (100%) rename {openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr => resmgr/src/main/webapp/resmgr-nfv}/images/delete.png (100%) rename {openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr => resmgr/src/main/webapp/resmgr-nfv}/images/edit.png (100%) rename {openo-portal/portal-resmgr => resmgr}/src/main/webapp/resmgr-nfv/images/expand_arrow.png (100%) rename {openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr => resmgr/src/main/webapp/resmgr-nfv}/images/ideo_default_select.png (100%) rename {openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr => resmgr/src/main/webapp/resmgr-nfv}/images/import.png (100%) rename {openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr => resmgr/src/main/webapp/resmgr-nfv}/images/line.png (100%) rename {openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller => resmgr/src/main/webapp/resmgr-nfv}/images/loading-spinner-grey.gif (100%) rename {openo-portal/portal-resmgr => resmgr}/src/main/webapp/resmgr-nfv/images/openo.png (100%) rename {openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr => resmgr/src/main/webapp/resmgr-nfv}/images/page_l.png (100%) rename {openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr => resmgr/src/main/webapp/resmgr-nfv}/images/page_left_disabled.png (100%) rename {openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr => resmgr/src/main/webapp/resmgr-nfv}/images/page_r.png (100%) rename {openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller => resmgr/src/main/webapp/resmgr-nfv}/images/sort_asc.png (100%) rename {openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller => resmgr/src/main/webapp/resmgr-nfv}/images/sort_both.png (100%) rename {openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller => resmgr/src/main/webapp/resmgr-nfv}/images/sort_desc.png (100%) create mode 100644 resmgr/src/main/webapp/resmgr-nfv/js/SendMsg.js create mode 100644 resmgr/src/main/webapp/resmgr-nfv/js/bootbox.min.js create mode 100644 resmgr/src/main/webapp/resmgr-nfv/js/bootstrap-table.min.js create mode 100644 resmgr/src/main/webapp/resmgr-nfv/js/bootstrap.min.js create mode 100644 resmgr/src/main/webapp/resmgr-nfv/js/chart.min.js create mode 100644 resmgr/src/main/webapp/resmgr-nfv/js/datacenter.js create mode 100644 resmgr/src/main/webapp/resmgr-nfv/js/gconf.js create mode 100644 resmgr/src/main/webapp/resmgr-nfv/js/jquery-1.11.2.min.js create mode 100644 resmgr/src/main/webapp/resmgr-nfv/js/jquery.dataTables.min.js create mode 100644 resmgr/src/main/webapp/resmgr-nfv/js/jquery.validate.min.js create mode 100644 resmgr/src/main/webapp/resmgr-nfv/js/resmgr.js create mode 100644 resmgr/src/main/webapp/resmgr-nfv/js/validateset.js create mode 100644 resmgr/src/main/webapp/resmgr-nfv/js/vim.js create mode 100644 resmgr/src/main/webapp/resmgr-nfv/location.html create mode 100644 resmgr/src/main/webapp/resmgr-nfv/resource.html create mode 100644 resmgr/src/main/webapp/resmgr-nfv/vim.html rename {openo-portal/portal-resmgr => resmgr}/src/main/webapp/resmgr-sdn.rar (100%) create mode 100644 resmgr/src/main/webapp/resmgr-sdn/conf/License.txt create mode 100644 resmgr/src/main/webapp/resmgr-sdn/conf/dataconfig.json create mode 100644 resmgr/src/main/webapp/resmgr-sdn/css/RMain.css create mode 100644 resmgr/src/main/webapp/resmgr-sdn/css/VMMain.css rename {openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv => resmgr/src/main/webapp/resmgr-sdn}/css/bootstrap-table.min.css (100%) create mode 100644 resmgr/src/main/webapp/resmgr-sdn/css/bootstrap.min.css create mode 100644 resmgr/src/main/webapp/resmgr-sdn/images/License.txt rename {openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv => resmgr/src/main/webapp/resmgr-sdn}/images/add.png (100%) rename {openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv => resmgr/src/main/webapp/resmgr-sdn}/images/arrow-down-enable.png (100%) rename {openo-portal/portal-resmgr => resmgr}/src/main/webapp/resmgr-sdn/images/collapse_arrow.png (100%) rename {openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv => resmgr/src/main/webapp/resmgr-sdn}/images/delete.png (100%) rename {openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv => resmgr/src/main/webapp/resmgr-sdn}/images/edit.png (100%) rename {openo-portal/portal-resmgr => resmgr}/src/main/webapp/resmgr-sdn/images/expand_arrow.png (100%) rename {openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv => resmgr/src/main/webapp/resmgr-sdn}/images/ideo_default_select.png (100%) rename {openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv => resmgr/src/main/webapp/resmgr-sdn}/images/import.png (100%) rename {openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv => resmgr/src/main/webapp/resmgr-sdn}/images/line.png (100%) rename {openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr => resmgr/src/main/webapp/resmgr-sdn}/images/loading-spinner-grey.gif (100%) rename {openo-portal/portal-resmgr => resmgr}/src/main/webapp/resmgr-sdn/images/openo.png (100%) rename {openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv => resmgr/src/main/webapp/resmgr-sdn}/images/page_l.png (100%) rename {openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv => resmgr/src/main/webapp/resmgr-sdn}/images/page_left_disabled.png (100%) rename {openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv => resmgr/src/main/webapp/resmgr-sdn}/images/page_r.png (100%) rename {openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr => resmgr/src/main/webapp/resmgr-sdn}/images/sort_asc.png (100%) rename {openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr => resmgr/src/main/webapp/resmgr-sdn}/images/sort_both.png (100%) rename {openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr => resmgr/src/main/webapp/resmgr-sdn}/images/sort_desc.png (100%) create mode 100644 resmgr/src/main/webapp/resmgr-sdn/js/bootstrap-table-filter-control.min.js create mode 100644 resmgr/src/main/webapp/resmgr-sdn/js/bootstrap-table.min.js create mode 100644 resmgr/src/main/webapp/resmgr-sdn/js/bootstrap.min.js create mode 100644 resmgr/src/main/webapp/resmgr-sdn/js/brs.js create mode 100644 resmgr/src/main/webapp/resmgr-sdn/js/jquery-1.11.2.min.js create mode 100644 resmgr/src/main/webapp/resmgr-sdn/link.html create mode 100644 resmgr/src/main/webapp/resmgr-sdn/ne.html create mode 100644 resmgr/src/main/webapp/resmgr-sdn/port.html create mode 100644 resmgr/src/main/webapp/resmgr-sdn/resource.html create mode 100644 resmgr/src/main/webapp/resmgr-sdn/site.html diff --git a/auth/pom.xml b/auth/pom.xml new file mode 100644 index 00000000..0efd0280 --- /dev/null +++ b/auth/pom.xml @@ -0,0 +1,41 @@ + + + + + org.openo.client.gui + client-gui + 1.1.0-SNAPSHOT + + 4.0.0 + auth + 1.1.0-SNAPSHOT + war + client-gui/auth + + + + org.apache.maven.plugins + maven-war-plugin + + false + + + + + diff --git a/auth/src/main/webapp/user/changePassword.html b/auth/src/main/webapp/user/changePassword.html new file mode 100644 index 00000000..86018dca --- /dev/null +++ b/auth/src/main/webapp/user/changePassword.html @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + +
+
Enter the Password Information
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ * + + User Name: + +
+ +
+
+
+ * + + Old Password: + +
+ +
+
+ +
+ * + + New Password: + +
+ +
+
+ +
+ * + + Confirm Password: + +
+ +
+
+ +
+
+
+
Password Rule:
+ + + + + + + + + + + + + +
1. Contains a minimum of 8 characters and a maximum of 32;
2. At least contains: one uppercase letter(A-Z), one lowercase letter(a-z), and one digit(0-9), one special character: ~`@#$%^&*-_=+|?/()<>[]{}",.;'!
3. Can not contain any the user name or user name in reverse order;
4. Can not contain space.
+
+
+
+ + +
+ + + diff --git a/auth/src/main/webapp/user/createUser.html b/auth/src/main/webapp/user/createUser.html new file mode 100644 index 00000000..40f8741e --- /dev/null +++ b/auth/src/main/webapp/user/createUser.html @@ -0,0 +1,141 @@ + + + + + + + + + + + + + + + +
+
Enter Basic Information
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ * + + User Name: + +
+ +
+
+ +
+ * + + Password: + +
+ +
+
+ +
+ * + + Confirm Password: + +
+ +
+
+ +
+ + + Description: + +
+ +
+
+
+
+
+
User Name Rule:
+ + + + + + + + + + + + + +
1. Contains a minimum of 5 characters and a maximum of 30;
2. Contains only alphanumeric characters(a-z\,A-Z\,0-9);
3. Can not contain any special characters except "_", which only in the middle of the user name;
4. Can not contain space.
+
Password Rule:
+ + + + + + + + + + + + + +
1. Contains a minimum of 8 characters and a maximum of 32;
2. At least contains: one uppercase letter(A-Z), one lowercase letter(a-z), and one digit(0-9), one special character: ~`@#$%^&*-_=+|?/()<>[]{}",.;'!
3. Can not contain any the user name or user name in reverse order;
4. Can not contain space.
+
+
+
+ + +
+ + + diff --git a/auth/src/main/webapp/user/css/component.css b/auth/src/main/webapp/user/css/component.css new file mode 100644 index 00000000..ee1e41ba --- /dev/null +++ b/auth/src/main/webapp/user/css/component.css @@ -0,0 +1,247 @@ +/* + * Copyright 2016-2017 Huawei Technologies Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +.button_Group { + margin: 15px 0; + overflow: hidden; +} + +.fk_button { + padding: 0 14px; + height: 24px; + float: left; + cursor: pointer; + text-decoration: none; + outline: 0; + border: 1px solid #d3d3d3; + text-align: center; + box-shadow: 0 1px 1px rgba(0,0,0,.05); + background: #fafafa; + background: -moz-linear-gradient(top,#fff,#fafafa); + background: -webkit-gradient(linear,left top,left bottom,color-stop(0,#fff),color-stop(100%,#fafafa)); + background: -webkit-linear-gradient(top,#fff,#fafafa); + background: linear-gradient(to bottom,#fff,#fafafa); + border-radius: 6px!important; +} +.fk_button:hover { + color: #009ae7; + border: 1px solid #4AC9FF +} +.fk_button:active { + color: #0000; + border: 1px solid #4AC9FF +} + +.button_Group > button { + margin-right: 10px; +} +.add_imag { + background-image: url(/openoui/user/images/add.png); +} +.delete_imag { + background-image: url(/openoui/user/images/delete.png); +} +.button_imag { + padding-left: 25px; + background-repeat: no-repeat; + background-position: 5px center; +} + + +/*table style*/ +table.dataTable thead th { + padding: 0!important; + height: 22px!important; + padding: 1px 10px 0 5px; + overflow: visible; + white-space: nowrap; + background: #f0f0f0!important; + border: 1px solid #ddd; + border-top: 1px solid #e3e3e3!important; + border-left: 1px dotted transparent!important; + border-bottom: 1px solid #e3e3e3!important; + box-sizing: content-box; + text-align: left; + font-weight: +} +table.dataTable tr td { + padding: 0 10px 0 5px!important; + height: 30px!important; + color: #000!important; + border: none!important; + border-left: 1px solid transparent!important; + border-bottom: 1px solid #e3e3e3!important; + overflow: hidden!important; + white-space: nowrap!important; + text-align: left; +} + +table.dataTable th, table.dataTable td { + font-size: 12px!important; + color: #000!important; + max-width: 95%!important; + font-weight: 400!important; +} + +.paginate_button { + color: #666!important; + font-size: 12px!important; + font-family: Lucida Grande,Verdana,Arial,Helvetica,sans-serif!important; + line-height: 24px!important; + text-align: center!important; + border: 1px solid #e0e0e0!important; + text-decoration: none!important; + padding: 0 7px!important; + border-radius: 3px!important; + background: #fff!important; +} +.paginate_button:hover { + color: #666!important; + border: 1px solid #4ac9ff!important; + cursor: pointer!important; +} +.current { + text-decoration: none!important; + color: #fff!important; + border: 1px solid #00adf5!important; + background: #4ad2ff!important; +} + +/*over write the jquery dataTable*/ +.dataTables_wrapper .dataTables_paginate .paginate_button:hover { + color: #666!important; +} +.dataTables_wrapper .dataTables_paginate .paginate_button.current, .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover { + color: #fff!important; +} +table.dataTable tr.odd, table.dataTable tr.odd>.sorting_1 { + background-color: #f9f9f9!important; +} +table.dataTable tr.even, table.dataTable tr.even>.sorting_1 { + background-color: #f7f7f7!important; +} +table.dataTable tbody tr:hover, tbody tr.odd>.sorting_1:hover, tbody tr.even>.sorting_1:hover { + background-color: #E6FBE0!important; +} +table.dataTable.no-footer { + border-bottom: none!important; +} + +/*the length information step style*/ +.dataTables_length, .dataTables_info { + display: inline-block!important; + float: left!important; +} +.left { + display: inline-block; + float: left; + overflow: hidden; + margin: 10px 20px 10px 5px; +} + .right { + display: inline-block; + float: right; + overflow: hidden; + margin-top: 10px; +} +.dataTables_length, .dataTables_info { + display: inline-block;!important; + float: left!important; + clear: none!important; + padding-top: 0!important; +} +.dataTables_length label { + font-size: 0; +} + +/*page select style*/ +.dataTables_length select { + height: 22px; + line-height: 22px; + text-align: center; + margin-right: 5px; + border: 1px solid #e0e0e0; + color: #000; + padding: 1px; +} +.dataTables_length select:active { + text-align: center; + margin-right: 5px; + border: 1px solid #e0e0e0; + color: #000; + padding: 1px; + border-radius: 5px; +} + +/* input style overwrite*/ +.fwk_input { + border: 1px solid #c3c3c3; + background-color: #fff; + padding: 0 0 0 6px; + border-radius: 4px; + color: #000; + display: inline-block; + outline: 0; + box-shadow: 1px 1px #f6f6f6 inset; + font-size: 12px; + background: #fff; + height: 24px; + width: 300px; +} + +.fwk_input:hover, .fwk_input:focus { + border-color: #4ac9ff; + box-shadow: 1px 1px rgba(74,201,255,.2) inset; +} +.fwk_input[type=password] { + -moz-user-select: none; + -khtml-user-select: none; + user-select: none; +} + +.fwk_input:disabled { + background-color: #ededed!important; + color: #666; + box-shadow: 1px 1px #ededed inset!important; + border: 1px solid #e0e0e0!important; + resize: none; +} + +/* input style textarea*/ +.fwk_textarea { + border: 1px solid #c3c3c3; + background-color: #fff; + padding: 0 0 0 6px; + border-radius: 4px; + color: #000; + display: inline-block; + outline: 0; + box-shadow: 1px 1px #f6f6f6 inset; + font-size: 12px; + background: #fff; + height: 72px; + width: 300px; +} + +.fwk_textarea:hover, .fwk_textarea:focus { + border-color: #4ac9ff; + box-shadow: 1px 1px rgba(74,201,255,.2) inset; +} + + + + + + diff --git a/auth/src/main/webapp/user/css/user.css b/auth/src/main/webapp/user/css/user.css new file mode 100644 index 00000000..6fe0b6f9 --- /dev/null +++ b/auth/src/main/webapp/user/css/user.css @@ -0,0 +1,95 @@ +/* + * Copyright 2016-2017 Huawei Technologies Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +* { + font-family: Microsoft Yahei!important; + font-size: 12px; + color: #333; +} + +.hw_body { + background-color: #fafafa!important; + padding-left: 15px; +} + +.delete, .changePsd, .edit { + padding: 0 10px; + cursor: pointer; +} + +.mt20 { + margin: 20px; +} + +#progress { + position: relative;; + display: inline-block; +} + +#serverError { + margin-left: 18px; +} + +.mandatory { + color: #F00; + width: 7px; + padding-right: 10px 5px 10px 0; +} + +.row_interval { + padding: 10px 10px 10px 0; +} + +.progress_bar { + height: 4px; + border-radius: 2px; + width: 420px; + background: -webkit-linear-gradient(left, #6fd330, #29b6eb); + background: -o-linear-gradient(right, #6fd330, #29b6eb); + background: -moz-linear-gradient(right, #6fd330, #29b6eb); + background: linear-gradient(to right, #6fd330, #29b6eb); +} + +.progress_charater { + display: block; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + color: #1fbe5c; + text-align: center; + margin-bottom: 20px; +} + +.errorTip { + color: red; +} + +.suggestion_tip { + height: auto; + background-color: #FFF5EA; + border: 1px solid #F9DFC5; + padding: 8px 10px; + margin: 3px 0; + color: #333; + line-height: 20px; + overflow: auto; +} + +.rule_label { + font-weight: 600; +} +#role_content table { + margin-left: 20px; +} \ No newline at end of file diff --git a/auth/src/main/webapp/user/images/License.txt b/auth/src/main/webapp/user/images/License.txt new file mode 100644 index 00000000..8e698ecb --- /dev/null +++ b/auth/src/main/webapp/user/images/License.txt @@ -0,0 +1,362 @@ +THIS LICENSE FILE CONTAINS THE LICENSE APPLICABLE DEPENDING ON THE TYPE OF CONTRIBUTIONS. + +APACHE LICENSE 2 IS APPLICABLE FOR SOURCE CODE, CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL FOR DOCUMENTATION + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + + +Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. + +"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. + +2. Grant of Copyright License. + +Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. + +Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. + +You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: + +You must give any other recipients of the Work or Derivative Works a copy of this License; and You must cause any modified files to carry prominent notices stating that You changed the files; and You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. + +5. Submission of Contributions. + +Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. + +6. Trademarks. + +This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. + +Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. + +In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. + +While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +Attribution 4.0 International + +https://creativecommons.org/licenses/by/4.0/legalcode + +Creative Commons Corporation ("Creative Commons") is not a law firm and does not provide legal services or legal advice. Distribution of Creative Commons public licenses does not create a lawyer-client or other relationship. Creative Commons makes its licenses and related information available on an "as-is" basis. Creative Commons gives no warranties regarding its licenses, any material licensed under their terms and conditions, or any related information. Creative Commons disclaims all liability for damages resulting from their use to the fullest extent possible. + +Using Creative Commons Public Licenses + +Creative Commons public licenses provide a standard set of terms and conditions that creators and other rights holders may use to share original works of authorship and other material subject to copyright and certain other rights specified in the public license below. The following considerations are for informational purposes only, are not exhaustive, and do not form part of our licenses. + + Considerations for licensors: Our public licenses are + intended for use by those authorized to give the public + permission to use material in ways otherwise restricted by + copyright and certain other rights. Our licenses are + irrevocable. Licensors should read and understand the terms + and conditions of the license they choose before applying it. + Licensors should also secure all rights necessary before + applying our licenses so that the public can reuse the + material as expected. Licensors should clearly mark any + material not subject to the license. This includes other CC- + licensed material, or material used under an exception or + limitation to copyright. More considerations for licensors: + wiki.creativecommons.org/Considerations_for_licensors + Considerations for the public: By using one of our public + licenses, a licensor grants the public permission to use the + licensed material under specified terms and conditions. If + the licensor's permission is not necessary for any reason--for + example, because of any applicable exception or limitation to + copyright--then that use is not regulated by the license. Our + licenses grant only permissions under copyright and certain + other rights that a licensor has authority to grant. Use of + the licensed material may still be restricted for other + reasons, including because others have copyright or other + rights in the material. A licensor may make special requests, + such as asking that all changes be marked or described. + Although not required by our licenses, you are encouraged to + respect those requests where reasonable. More_considerations + for the public: + wiki.creativecommons.org/Considerations_for_licensees +Creative Commons Attribution 4.0 International Public License + +By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions. + + +Section 1 -- Definitions. + + a. Adapted Material means material subject to Copyright and Similar + Rights that is derived from or based upon the Licensed Material + and in which the Licensed Material is translated, altered, + arranged, transformed, or otherwise modified in a manner requiring + permission under the Copyright and Similar Rights held by the + Licensor. For purposes of this Public License, where the Licensed + Material is a musical work, performance, or sound recording, + Adapted Material is always produced where the Licensed Material is + synched in timed relation with a moving image. + b. Adapter's License means the license You apply to Your Copyright + and Similar Rights in Your contributions to Adapted Material in + accordance with the terms and conditions of this Public License. + c. Copyright and Similar Rights means copyright and/or similar rights + closely related to copyright including, without limitation, + performance, broadcast, sound recording, and Sui Generis Database + Rights, without regard to how the rights are labeled or + categorized. For purposes of this Public License, the rights + specified in Section 2(b)(1)-(2) are not Copyright and Similar + Rights. + d. Effective Technological Measures means those measures that, in the + absence of proper authority, may not be circumvented under laws + fulfilling obligations under Article 11 of the WIPO Copyright + Treaty adopted on December 20, 1996, and/or similar international + agreements. + e. Exceptions and Limitations means fair use, fair dealing, and/or + any other exception or limitation to Copyright and Similar Rights + that applies to Your use of the Licensed Material. + f. Licensed Material means the artistic or literary work, database, + or other material to which the Licensor applied this Public + License. + g. Licensed Rights means the rights granted to You subject to the + terms and conditions of this Public License, which are limited to + all Copyright and Similar Rights that apply to Your use of the + Licensed Material and that the Licensor has authority to license. + h. Licensor means the individual(s) or entity(ies) granting rights + under this Public License. + i. Share means to provide material to the public by any means or + process that requires permission under the Licensed Rights, such + as reproduction, public display, public performance, distribution, + dissemination, communication, or importation, and to make material + available to the public including in ways that members of the + public may access the material from a place and at a time + individually chosen by them. + j. Sui Generis Database Rights means rights other than copyright + resulting from Directive 96/9/EC of the European Parliament and of + the Council of 11 March 1996 on the legal protection of databases, + as amended and/or succeeded, as well as other essentially + equivalent rights anywhere in the world. + k. You means the individual or entity exercising the Licensed Rights + under this Public License. Your has a corresponding meaning. + +Section 2 -- Scope. + + a. License grant. + 1. Subject to the terms and conditions of this Public License, + the Licensor hereby grants You a worldwide, royalty-free, + non-sublicensable, non-exclusive, irrevocable license to + exercise the Licensed Rights in the Licensed Material to: + a. reproduce and Share the Licensed Material, in whole or + in part; and + b. produce, reproduce, and Share Adapted Material. + 2. Exceptions and Limitations. For the avoidance of doubt, where + Exceptions and Limitations apply to Your use, this Public + License does not apply, and You do not need to comply with + its terms and conditions. + 3. Term. The term of this Public License is specified in Section + 6(a). + 4. Media and formats; technical modifications allowed. The + Licensor authorizes You to exercise the Licensed Rights in + all media and formats whether now known or hereafter created, + and to make technical modifications necessary to do so. The + Licensor waives and/or agrees not to assert any right or + authority to forbid You from making technical modifications + necessary to exercise the Licensed Rights, including + technical modifications necessary to circumvent Effective + Technological Measures. For purposes of this Public License, + simply making modifications authorized by this Section 2(a) + (4) never produces Adapted Material. + 5. Downstream recipients. + a. Offer from the Licensor -- Licensed Material. Every + recipient of the Licensed Material automatically + receives an offer from the Licensor to exercise the + Licensed Rights under the terms and conditions of this + Public License. + b. No downstream restrictions. You may not offer or impose + any additional or different terms or conditions on, or + apply any Effective Technological Measures to, the + Licensed Material if doing so restricts exercise of the + Licensed Rights by any recipient of the Licensed + Material. + 6. No endorsement. Nothing in this Public License constitutes or + may be construed as permission to assert or imply that You + are, or that Your use of the Licensed Material is, connected + with, or sponsored, endorsed, or granted official status by, + the Licensor or others designated to receive attribution as + provided in Section 3(a)(1)(A)(i). + b. Other rights. + 1. Moral rights, such as the right of integrity, are not + licensed under this Public License, nor are publicity, + privacy, and/or other similar personality rights; however, to + the extent possible, the Licensor waives and/or agrees not to + assert any such rights held by the Licensor to the limited + extent necessary to allow You to exercise the Licensed + Rights, but not otherwise. + 2. Patent and trademark rights are not licensed under this + Public License. + 3. To the extent possible, the Licensor waives any right to + collect royalties from You for the exercise of the Licensed + Rights, whether directly or through a collecting society + under any voluntary or waivable statutory or compulsory + licensing scheme. In all other cases the Licensor expressly + reserves any right to collect such royalties. + +Section 3 -- License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the following conditions. + + a. Attribution. + 1. If You Share the Licensed Material (including in modified + form), You must: + a. retain the following if it is supplied by the Licensor + with the Licensed Material: + i. identification of the creator(s) of the Licensed + Material and any others designated to receive + attribution, in any reasonable manner requested by + the Licensor (including by pseudonym if + designated); + ii. a copyright notice; + iii. a notice that refers to this Public License; + iv. a notice that refers to the disclaimer of + warranties; + v. a URI or hyperlink to the Licensed Material to the + extent reasonably practicable; + b. indicate if You modified the Licensed Material and + retain an indication of any previous modifications; and + c. indicate the Licensed Material is licensed under this + Public License, and include the text of, or the URI or + hyperlink to, this Public License. + 2. You may satisfy the conditions in Section 3(a)(1) in any + reasonable manner based on the medium, means, and context in + which You Share the Licensed Material. For example, it may be + reasonable to satisfy the conditions by providing a URI or + hyperlink to a resource that includes the required + information. + 3. If requested by the Licensor, You must remove any of the + information required by Section 3(a)(1)(A) to the extent + reasonably practicable. + 4. If You Share Adapted Material You produce, the Adapter's + License You apply must not prevent recipients of the Adapted + Material from complying with this Public License. + +Section 4 -- Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material: + + a. for the avoidance of doubt, Section 2(a)(1) grants You the right + to extract, reuse, reproduce, and Share all or a substantial + portion of the contents of the database; + b. if You include all or a substantial portion of the database + contents in a database in which You have Sui Generis Database + Rights, then the database in which You have Sui Generis Database + Rights (but not its individual contents) is Adapted Material; and + c. You must comply with the conditions in Section 3(a) if You Share + all or a substantial portion of the contents of the database. +For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights. + + +Section 5 -- Disclaimer of Warranties and Limitation of Liability. + + a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE + EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS + AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF + ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, + IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, + WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, + ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT + KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT + ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. + b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE + TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, + NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, + INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, + COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR + USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR + DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR + IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + c. The disclaimer of warranties and limitation of liability provided + above shall be interpreted in a manner that, to the extent + possible, most closely approximates an absolute disclaimer and + waiver of all liability. + +Section 6 -- Term and Termination. + + a. This Public License applies for the term of the Copyright and + Similar Rights licensed here. However, if You fail to comply with + this Public License, then Your rights under this Public License + terminate automatically. + b. Where Your right to use the Licensed Material has terminated under + Section 6(a), it reinstates: + 1. automatically as of the date the violation is cured, provided + it is cured within 30 days of Your discovery of the + violation; or + 2. upon express reinstatement by the Licensor. + For the avoidance of doubt, this Section 6(b) does not affect any + right the Licensor may have to seek remedies for Your violations + of this Public License. + c. For the avoidance of doubt, the Licensor may also offer the + Licensed Material under separate terms or conditions or stop + distributing the Licensed Material at any time; however, doing so + will not terminate this Public License. + d. Sections 1, 5, 6, 7, and 8 survive termination of this Public + License. + +Section 7 -- Other Terms and Conditions. + + a. The Licensor shall not be bound by any additional or different + terms or conditions communicated by You unless expressly agreed. + b. Any arrangements, understandings, or agreements regarding the + Licensed Material not stated herein are separate from and + independent of the terms and conditions of this Public License. + +Section 8 -- Interpretation. + + a. For the avoidance of doubt, this Public License does not, and + shall not be interpreted to, reduce, limit, restrict, or impose + conditions on any use of the Licensed Material that could lawfully + be made without permission under this Public License. + b. To the extent possible, if any provision of this Public License is + deemed unenforceable, it shall be automatically reformed to the + minimum extent necessary to make it enforceable. If the provision + cannot be reformed, it shall be severed from this Public License + without affecting the enforceability of the remaining terms and + conditions. + c. No term or condition of this Public License will be waived and no + failure to comply consented to unless expressly agreed to by the + Licensor. + d. Nothing in this Public License constitutes or may be interpreted + as a limitation upon, or waiver of, any privileges and immunities + that apply to the Licensor or You, including from the legal + processes of any jurisdiction or authority. +Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the "Licensor." The text of the Creative Commons public licenses is dedicated to the public domain under the CC0 Public Domain Dedication. Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at creativecommons.org/policies, Creative Commons does not authorize the use of the trademark "Creative Commons" or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses. + +Creative Commons may be contacted at creativecommons.org. \ No newline at end of file diff --git a/openo-portal/portal-auth/src/main/webapp/user/images/add.png b/auth/src/main/webapp/user/images/add.png similarity index 100% rename from openo-portal/portal-auth/src/main/webapp/user/images/add.png rename to auth/src/main/webapp/user/images/add.png diff --git a/openo-portal/portal-auth/src/main/webapp/user/images/delete.png b/auth/src/main/webapp/user/images/delete.png similarity index 100% rename from openo-portal/portal-auth/src/main/webapp/user/images/delete.png rename to auth/src/main/webapp/user/images/delete.png diff --git a/openo-portal/portal-auth/src/main/webapp/user/images/edit.bak.png b/auth/src/main/webapp/user/images/edit.bak.png similarity index 100% rename from openo-portal/portal-auth/src/main/webapp/user/images/edit.bak.png rename to auth/src/main/webapp/user/images/edit.bak.png diff --git a/openo-portal/portal-auth/src/main/webapp/user/images/edit.png b/auth/src/main/webapp/user/images/edit.png similarity index 100% rename from openo-portal/portal-auth/src/main/webapp/user/images/edit.png rename to auth/src/main/webapp/user/images/edit.png diff --git a/openo-portal/portal-auth/src/main/webapp/user/images/reset.bak.png b/auth/src/main/webapp/user/images/reset.bak.png similarity index 100% rename from openo-portal/portal-auth/src/main/webapp/user/images/reset.bak.png rename to auth/src/main/webapp/user/images/reset.bak.png diff --git a/openo-portal/portal-auth/src/main/webapp/user/images/reset.png b/auth/src/main/webapp/user/images/reset.png similarity index 100% rename from openo-portal/portal-auth/src/main/webapp/user/images/reset.png rename to auth/src/main/webapp/user/images/reset.png diff --git a/auth/src/main/webapp/user/js/changePassword.js b/auth/src/main/webapp/user/js/changePassword.js new file mode 100644 index 00000000..38a8ef1a --- /dev/null +++ b/auth/src/main/webapp/user/js/changePassword.js @@ -0,0 +1,193 @@ +/* + * Copyright 2016-2017 Huawei Technologies Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +$(document).ready(function() { + var USER_SERVICE = "/openoapi/auth/v1/users"; + var userId; + var $userName = $("#userName"); + var $oldPassword = $("#oldPassword"); + var $oldPasswordError = $("#oldPasswordError"); + var $password = $("#password"); + var $passwordError = $("#passwordError") + + var $cfPsdError = $("#cfPsdError"); + + function initialPage() { + userId = getId(); + getUserDetails(userId).done(function(data) { + listUserDetails(data); + }); + + /*initial the event*/ + $("#confirm").click(function(e) { + if (!checkPassword()) { + return; + } + var data = getModifyUser(); + changePsd(data).done(function() { + top.bootbox.alert("Password change successfully.", function(e) { + Rest.turn2URI("/openoui/user/user.html"); + }) + }).fail(function(e) { + if (e.statusText == "Unauthorized") { + showError($oldPasswordError, "The old password is wrong."); + } else { + showError($oldPasswordError, e.statusText); + } + }) + }) + $("#cancel").click(function(e) { + window.document.location = "/openoui/user/user.html"; + }) + } + + function checkPassword() { + if (!checkMandatory()) { + return false; + } + + if (!checkCfPassword()) { + showError($cfPsdError, "The password is not the same."); + return false; + } + + if (!checkPasswordRule()) { + return false; + } + return true; + } + + function checkMandatory() { + if ($password.val() == "") { + showError($passwordError, "Mandatory."); + return false; + } + + if ($oldPassword.val() == "") { + showError($oldPasswordError, "Mandatory."); + return false; + } + return true; + } + + function checkCfPassword() { + return $("#password").val() == $("#cfPassword").val(); + } + + function checkPasswordRule() { + var password = $password.val(); + + if (!checkLength(8, 32, password)) { + showError($passwordError, "The password length should between 8 and 32."); + return false + } + + if (!checkCotainSpecial(password)) { + showError($passwordError, "At least contain: one uppercase letter, one lowercase letter, and one digit, one special character;"); + return false + } + + if (!checkNoContainAndReverse(password, $userName.val())) { + showError($passwordError, "The password should not contain the user name or reverse."); + return false + } + + if (!checkNoSpace(password)) { + showError($passwordError, "The password should not contain space."); + return false + } + return true + } + + function checkLength(min, max, str) { + return str.length >= min && str.length <= max; + } + + function checkOnlySpecials(str, reg) { + return str.match(reg) && str.match(reg).length == str.length + } + + function checkCotainSpecial(password) { + return password.match(/\~|\`|\@|\#|\$|\%|\^|\&|\*|\-|\_|\=|\+|\||\?|\/|\(|\)|\<|\>|\[|\]|\{|\}|\"|\,|\.|\;|\'|\!/g) != null + && password.match(/[0-9]/g) != null && password.match(/[a-z]/g) != null && password.match(/[A-Z]/g) != null; + } + + function checkUderScore(str) { + return str.indexOf("_") != 0 && str.lastIndexOf("_") != str.length - 1; + } + + function checkNoSpace(str) { + return str.indexOf(" ") == -1; + } + + function checkNoContainAndReverse(str, str2) { + return str.indexOf(str2) == -1 && str.indexOf(str2.split("").reverse().join("")) == -1; + } + + function getModifyUser() { + var data = {}; + data["original_password"] = $("#oldPassword").val(); + data.password = $("#password").val(); + return data; + } + + function getUserDetails(id) { + return Rest.http({ + url: USER_SERVICE + "/" + id + "?=" + new Date().getTime(), + type: "GET", + async: false, + contentType: 'application/json', + dataType: "json" + }) + } + + function listUserDetails(data) { + $("#userName").val(data.name); + } + + + function changePsd(data) { + return Rest.http({ + url: USER_SERVICE + "/" + userId + "/password" + "?=" + new Date().getTime(), + type: "POST", + async: false, + contentType: 'application/json', + dataType: "json", + data: JSON.stringify(data) + }) + } + + function getId() { + var qs = location.search; + qs = qs.indexOf("?") === 0 ? qs : ("?" + qs); + var start = qs.indexOf("id=") + 3; + var end = qs.indexOf("&") === -1 ? qs.length : qs.indexOf("&") - start; + return qs.substr(start, end); + } + + function showError($Obj, message) { + $Obj.text(message); + $Obj.css("visibility", "visible"); + setTimeout(function() { + hideError($Obj); + }, 5000) + } + + function hideError($Obj) { + $Obj.css("visibility", "hidden"); + } + + initialPage(); +}) diff --git a/auth/src/main/webapp/user/js/createUser.js b/auth/src/main/webapp/user/js/createUser.js new file mode 100644 index 00000000..726d5993 --- /dev/null +++ b/auth/src/main/webapp/user/js/createUser.js @@ -0,0 +1,189 @@ +/* + * Copyright 2016-2017 Huawei Technologies Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +$(document).ready(function() { + + var USER_SERVICE = "/openoapi/auth/v1/users"; + var $userName = $("#userName"); + var $password = $("#password"); + var $cfPsdError = $("#cfPsdError"); + var $userNameError = $("#userNameError"); + var $passwordError = $("#passwordError"); + + function initialPage() { + /*initial the event*/ + $("#confirm").click(function(e) { + if (!checkUserRules()) { + return; + } + var data = getCreateUser(); + createUser(data).done(function() { + window.document.location = "/openoui/user/user.html"; + }) + }) + $("#cancel").click(function(e) { + window.document.location = "/openoui/user/user.html"; + }) + } + + function getCreateUser() { + var data = {}; + data.userName = $userName.val(); + data.password = $password.val(); + data.description = $("#description").val(); + data.email = "xxxx@xxxx.com"; + return data; + } + + function createUser(data) { + return Rest.http({ + url: USER_SERVICE + "?=" + new Date().getTime(), + type: "POST", + async: false, + contentType: 'application/json', + dataType: "json", + data: JSON.stringify(data) + }) + } + + function checkUserRules() { + if (!checkMandatory()) { + return false; + } + + if (!checkCfPassword()) { + return false; + } + + if (!checkUserNameRule()) { + return false; + } + + if (!checkPasswordRule()) { + return false; + } + return true; + } + + function checkMandatory() { + if ($userName.val() == "") { + showError($userNameError, "Mandatory."); + return false; + } + + if ($password.val() == "") { + showError($passwordError, "Mandatory."); + return false; + } + return true; + } + + function checkUserNameRule() { + var username = $userName.val(); + if (!checkLength(5, 30, username)) { + showError($userNameError, "The user name length should between 5 and 30."); + return false + } + + if (!checkOnlySpecials(username, /[0-9]|[a-z]|[A-Z]|_/g)) { + showError($userNameError, "Only Character(a-z\,A-Z\,0-9,_) is allowed."); + return false + } + + if(!checkUderScore(username)) { + showError($userNameError, 'The character "_" is only allowed in the middle of the user name.'); + return false + } + + if (!checkNoSpace(username)) { + showError($userNameError, "The user name should not contain space."); + return false + } + + return true + } + + function checkPasswordRule() { + var password = $password.val(); + + if (!checkLength(8, 32, password)) { + showError($passwordError, "The password length should between 8 and 32."); + return false + } + + if (!checkCotainSpecial(password)) { + showError($passwordError, "At least contain: one uppercase letter, one lowercase letter, and one digit, one special character;"); + return false + } + + if (!checkNoContainAndReverse(password, $userName.val())) { + showError($passwordError, "The password should not contain the user name or reverse."); + return false + } + + if (!checkNoSpace(password)) { + showError($passwordError, "The password should not contain space."); + return false + } + return true + } + + function checkLength(min, max, str) { + return str.length >= min && str.length <= max; + } + + function checkOnlySpecials(str, reg) { + return str.match(reg) && str.match(reg).length == str.length + } + + function checkCotainSpecial(password) { + return password.match(/\~|\`|\@|\#|\$|\%|\^|\&|\*|\-|\_|\=|\+|\||\?|\/|\(|\)|\<|\>|\[|\]|\{|\}|\"|\,|\.|\;|\'|\!/g) != null + && password.match(/[0-9]/g) != null && password.match(/[a-z]/g) != null && password.match(/[A-Z]/g) != null; + } + + function checkUderScore(str) { + return str.indexOf("_") != 0 && str.lastIndexOf("_") != str.length - 1; + } + + function checkNoContainAndReverse(str, str2) { + return str.indexOf(str2) == -1 && str.indexOf(str2.split("").reverse().join("")) == -1; + } + + function checkNoSpace(str) { + return str.indexOf(" ") == -1; + } + + function checkCfPassword() { + if ($password.val() == $("#cfPassword").val()) { + return true; + } + showError($cfPsdError, "The password is not the same."); + return false; + } + + function showError($Obj, message) { + $Obj.text(message); + $Obj.css("visibility", "visible"); + setTimeout(function() { + hideError($Obj); + }, 5000) + } + + function hideError($Obj) { + $Obj.css("visibility", "hidden"); + } + + initialPage(); +}) diff --git a/auth/src/main/webapp/user/js/modifyUser.js b/auth/src/main/webapp/user/js/modifyUser.js new file mode 100644 index 00000000..04cf054f --- /dev/null +++ b/auth/src/main/webapp/user/js/modifyUser.js @@ -0,0 +1,78 @@ +/* + * Copyright 2016-2017 Huawei Technologies Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +$(document).ready(function() { + var USER_SERVICE = "/openoapi/auth/v1/users"; + var userId; + function initialPage() { + userId = getId(); + getUserDetails(userId).done(function(data) { + listUserDetails(data); + }); + + /*initial the event*/ + $("#confirm").click(function(e) { + var data = getModifyUser(); + modifyUser(data).done(function() { + window.document.location = "/openoui/user/user.html"; + }) + }) + $("#cancel").click(function(e) { + window.document.location = "/openoui/user/user.html"; + }) + } + + function getModifyUser() { + var data = {}; + data.description = $("#description").val(); + data.email = "xxxx@xxxx.com"; + return data; + } + function getUserDetails(id) { + return Rest.http({ + url: USER_SERVICE + "/" + id + "?=" + new Date().getTime(), + type: "GET", + async: false, + contentType: 'application/json', + dataType: "json" + }) + } + + function listUserDetails(data) { + $("#userName").val(data.name); + $("#description").val(data.description); + } + + function modifyUser(data) { + return Rest.http({ + url: USER_SERVICE + "/" + userId + "?=" + new Date().getTime(), + type: "PATCH", + async: false, + contentType: 'application/json', + dataType: "json", + data: JSON.stringify(data) + }) + } + + function getId() { + var qs = location.search; + qs = qs.indexOf("?") === 0 ? qs : ("?" + qs); + var start = qs.indexOf("id=") + 3; + var end = qs.indexOf("&") === -1 ? qs.length : qs.indexOf("&") - start; + return qs.substr(start, end); + } + + initialPage(); +}) \ No newline at end of file diff --git a/auth/src/main/webapp/user/js/user.js b/auth/src/main/webapp/user/js/user.js new file mode 100644 index 00000000..aa0dc729 --- /dev/null +++ b/auth/src/main/webapp/user/js/user.js @@ -0,0 +1,109 @@ +/* + * Copyright 2016-2017 Huawei Technologies Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +$(document).ready(function() { + var USER_SERVICE = "/openoapi/auth/v1/users"; + var deleteEditOpt = ""; + var editOpt = ""; + + var userListHeader = [ + { title: "User", data: "User",width: "20%"}, + { title: "Description", data: "Description",width: "60%"}, + { title: "Operations", data: "Operations",width: "20%"} + ]; + function initialPage() { + /*get the user list data;*/ + getUserList().done(function(data) { + var data = formatUsers(data); + Table.create(data, "table_id", userListHeader); + $(".hw_body").css("visibility", "visible"); + }).error(function(data) { + if (data.status == 403) { + $(".hw_body").html("" + JSON.parse(data.responseText).error.message + ""); + } + }); + + /*add the listener*/ + $("#table_id tbody").on("click", "td", function(e) { + var classname = e.target.className; + var id = $("#table_id").DataTable().row(this).data().rowid; + if (classname == "delete") { + top.bootbox.confirm("Are you sure to delete this user?", function(result) { + if (result) { + deleteUser(id).done(function() { + getUserList().done(function(data) { + var data = formatUsers(data); + var datatable = $("#table_id").dataTable().api(); + datatable.clear(); + datatable.rows.add(data); + datatable.draw(); + }) + }) + } + }) + } else if (classname == "edit") { + window.document.location = "/openoui/user/modifyUser.html" + "?id=" + id; + } else if (classname == "changePsd") { + window.document.location = "/openoui/user/changePassword.html" + "?id=" + id; + } + }) + + $("#create").click(function(e) { + window.document.location = "/openoui/user/createUser.html"; + }) + } + + function getUserList() { + return Rest.http({ + url: USER_SERVICE + "?=" + new Date().getTime(), + type: "GET", + async: false, + contentType: 'application/json', + dataType: "json" + }) + } + + function deleteUser(id) { + return Rest.http({ + url: USER_SERVICE + "/" + id + "?=" + new Date().getTime(), + type: "DELETE", + async: false, + contentType: 'application/json', + dataType: "json" + }) + } + + function formatUsers(data) { + var tableData = []; + for (var i = 0; i < data.length; i++) { + var temp = {}; + temp.rowid = data[i].id; + temp.User = data[i].name; + temp.Description = data[i].description; + if (data[i].name == "admin") { + temp.Operations = editOpt; + } else { + temp.Operations = deleteEditOpt; + } + tableData.push(temp); + } + return tableData; + } + initialPage(); + + setTimeout(function() { + Table.enableToolTips("table_id"); + }, 0) +}); diff --git a/auth/src/main/webapp/user/js/userTools.js b/auth/src/main/webapp/user/js/userTools.js new file mode 100644 index 00000000..7e5400c3 --- /dev/null +++ b/auth/src/main/webapp/user/js/userTools.js @@ -0,0 +1,88 @@ +/* + * Copyright 2016-2017 Huawei Technologies Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +var Table = {}; +Table.create = function(data, id, columns) { + $('#' + id).DataTable({ + data: data, + bSort: false, + "sDom": "<'right'p>>", + columns: columns + }); + } + /** + * update the table data, the cloumns must be same with the create one. + * data: the update data. as the create structure + * id: the table id. + */ +Table.updata = function(data, id) { + var datatable = $('#' + id).dataTable().api(); + datatable.clear(); + datatable.rows.add(data); + datatable.draw(); +} + +Table.enableToolTips = function(id) { + $("#" + id + " tr th").each(function(index, sdom){ + sdom.title = sdom.textContent; + }) + $("#" + id + " tbody tr td").each(function(index, sdom){ + sdom.title = sdom.textContent; + }) +} + +var Rest = {}; + +Rest.http = function(setting) { + var ret = $.ajax(setting); + ret.fail(function(data) { + try { + if (data.responseText.indexOf("login") != -1) { + top.window.document.location.reload() + } + var result = JSON.parse(data.responseText); + if (result.error && result.error.message) { + top.bootbox.alert(result.error.message, function() {}); + } + } catch (e) { + } + + }) + return ret; +} + +Rest.turn2URI = function(url) { + var cookies = document.cookie.split(";"); + var cookie = ""; + for (var i = 0; i < cookies.length; i++) { + if (cookies[i].split("=")[0] == "X-Auth-Token") { + cookie = cookies[i].split("=")[1]; + break; + } + } + $.ajax({ + url: "/openoapi/auth/v1/tokens", + type: "HEAD", + headers: { + "X-Auth-Token": cookie + }, + success: function(data) { + window.document.location = url; + }, + error: function(data) { + top.window.document.location.reload(); + } + }) +} diff --git a/auth/src/main/webapp/user/modifyUser.html b/auth/src/main/webapp/user/modifyUser.html new file mode 100644 index 00000000..2e16c8cb --- /dev/null +++ b/auth/src/main/webapp/user/modifyUser.html @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + +
+
Enter Basic Information
+
+
+
+ + + + + + + + + + + + + +
+ * + + User Name: + +
+ +
+
+ +
+ + + Description: + +
+ +
+
+ +
+
+
+ + +
+ + + diff --git a/auth/src/main/webapp/user/user.html b/auth/src/main/webapp/user/user.html new file mode 100644 index 00000000..44afe1f9 --- /dev/null +++ b/auth/src/main/webapp/user/user.html @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+ + + diff --git a/catalog/pom.xml b/catalog/pom.xml new file mode 100644 index 00000000..3dcd1a66 --- /dev/null +++ b/catalog/pom.xml @@ -0,0 +1,42 @@ + + + + + org.openo.client.gui + client-gui + 1.1.0-SNAPSHOT + + + 4.0.0 + catalog + war + client-gui/catalog + + + + + org.apache.maven.plugins + maven-war-plugin + + false + + + + + diff --git a/catalog/src/main/webapp/catalog/csarPackage.html b/catalog/src/main/webapp/catalog/csarPackage.html new file mode 100644 index 00000000..e200e91e --- /dev/null +++ b/catalog/src/main/webapp/catalog/csarPackage.html @@ -0,0 +1,247 @@ + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+
+
+
+
+
+ + + + + + + + +
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+

+ {{packageDetail.detailTitle}} +

+
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/catalog/src/main/webapp/catalog/css/datatable-sort.css b/catalog/src/main/webapp/catalog/css/datatable-sort.css new file mode 100644 index 00000000..d84888e4 --- /dev/null +++ b/catalog/src/main/webapp/catalog/css/datatable-sort.css @@ -0,0 +1,30 @@ +/** + * Copyright 2016-2017 ZTE Corporation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +table.table thead .sorting, +table.table thead .sorting_asc, +table.table thead .sorting_desc, +table.table thead .sorting_asc_disabled, +table.table thead .sorting_desc_disabled { + cursor: pointer; + *cursor: hand; +} + +table.table thead .sorting { background: url('../image/sort_both.png') no-repeat center right; } +table.table thead .sorting_asc { background: url('../image/sort_asc.png') no-repeat center right; } +table.table thead .sorting_desc { background: url('../image/sort_desc.png') no-repeat center right; } + +table.table thead .sorting_asc_disabled { background: url('../image/sort_asc_disabled.png') no-repeat center right; } +table.table thead .sorting_desc_disabled { background: url('../image/sort_desc_disabled.png') no-repeat center right; } \ No newline at end of file diff --git a/catalog/src/main/webapp/catalog/css/fileupload.css b/catalog/src/main/webapp/catalog/css/fileupload.css new file mode 100644 index 00000000..ebe91f80 --- /dev/null +++ b/catalog/src/main/webapp/catalog/css/fileupload.css @@ -0,0 +1,81 @@ +/** + * Copyright 2016-2017 ZTE Corporation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +@charset "UTF-8"; + +.file-caption { + display: inline-block; + overflow: hidden; + text-overflow: ellipsis; +} + +.file-caption .glyphicon { + display: inline-block; + min-width: 18px; + margin-top: 2px; +} + +.file-caption-name { + display: inline-block; + overflow: hidden; + max-height: 20px; + padding-right: 10px; + word-break: break-all; +} + +.file-caption-ellipsis { + position: absolute; + right: 10px; + margin-top: -6px; + font-size: 1.2em; + display: none; + font-weight: bold; + cursor: default; +} + +.file-drop-zone{ + border:1px dashed #aaa; + border-radius:4px; + height:100%; + text-align:center; + vertical-align:middle; + margin:12px 15px 12px 12px; + padding:5px +} +.file-drop-zone-title{ + color:#aaa; + font-size:20px; + padding:20px 10px +} +.fileupload-btn { + padding-bottom: 10px; +} + +.fileupload-input { + position: relative; + display: table; +} + +.file-preview { + border-radius:5px; + border:1px solid #ddd; + padding:5px; + width:100%; + margin-bottom:5px +} + +.upload { + width: 50%; +} \ No newline at end of file diff --git a/catalog/src/main/webapp/catalog/css/hostMirror.css b/catalog/src/main/webapp/catalog/css/hostMirror.css new file mode 100644 index 00000000..b17585d6 --- /dev/null +++ b/catalog/src/main/webapp/catalog/css/hostMirror.css @@ -0,0 +1,447 @@ +/** + * Copyright 2016-2017 ZTE Corporation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +body { + font-family: microsoft yahei !important; +} + +/* blue pill (inspired by iTunes) +*******************************************************************************/ +.redFont{ + color:red; +} +.blue { + + background-color: #5b9bd1; + border-radius: 20px; + color: #fff; + font-weight: bold; + padding: 8px 0; + text-align: center; + width: 100px; +} + +.blue:hover { + background-color: #e8f3fd; + color: #5b9bd1; +} + +.blue.selected { + border: 0; + background-color: #5b9bd1; + color: #fff; +} + +.blue.selected:hover { + border: 0; + background-color: #5b9bd1; + color: #fff; +} + +p { + color: #444; + font-size: 14px; + font-weight: normal; + line-height: 21px; + margin: 0 0 12px 0; +} + +p.credit { + border-top: 1px solid #ccc; + font-size: 14px; + line-height: 140%; + margin: 36px 0 12px 0; + padding: 8px 0 0 0; + text-align: center; +} + +ul.column { + float: left; + list-style: none; + width: 675px; +} + +ul.column li { + background: #eee; + -webkit-border-radius: 5px; + border-radius: 5px; + -webkit-box-shadow: inset 0 1px 1px 0 #c7c7c7; + box-shadow: inset 0 1px 1px 0 #c7c7c7; + float: left; + margin: 10px 0 0 10px; + display: block; + height: 150px; + text-align: center; + width: 215px; +} + +/* Clear Floated Elements +------------------------------------------------------------------------------*/ +.column:after,.button-collection:after,.clearfix:after,div.project-info:after + { + clear: both; + content: ' '; + display: block; + font-size: 0; + line-height: 0; + visibility: hidden; + width: 0; + height: 0; +} + +.container-fluid { + background-color:white !important; + min-height:500px; +} + +.nav-tabs { + border: 0; +} + +.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus + { + border: 0; + border-top: 3px solid #F3565D; +} + +.nav-tabs>li>a { + border-radius: 0; +} + +.nav-tabs>li>a:hover { + background-color: #f1f3fa; + border: 1Px solid #f1f3fa; +} + +.c3 { + margin-top: 120px; +} + +.skills-chart-breadcrumb { + +} + +.blue:selected { + border: 0; + background-color: #5b9bd1; +} + +.btn { + /* border-width: 0; */ + /* padding: 7px 14px; */ + /* font-size: 14px; */ + /* outline: none !important; */ + /* background-image: none !important; */ + /* filter: none; */ + /* -webkit-box-shadow: none; */ + -moz-box-shadow: none; + /* box-shadow: none; */ + /* text-shadow: none; */ +} + +select { + border-width: 1px; + padding: 4px 1px; + border-radius: 4px; +} + +.input-sm { + padding: 4px 10px; +} + +.btn-block { + display: block; + width: 100%; + padding-left: 0; + padding-right: 0; +} + +/* Bootstrap buttons */ +.btn-default { + color: #5b9bd1; + background-color: #fff; + border-color: #ccc; +} + +.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active + { + color: #333; + background-color: #ededed; + border-color: #b3b3b3; +} + +.open .btn-default.dropdown-toggle { + color: #333; + background-color: #ededed; + border-color: #b3b3b3; +} + +.btn-default:active,.btn-default.active { + background-image: none; + background-color: #e0e0e0; + font-weight: bold; +} + +.btn-default:active:hover,.btn-default.active:hover { + background-color: #e6e6e6; +} + +.open .btn-default.dropdown-toggle { + background-image: none; +} + +.btn-default.disabled,.btn-default.disabled:hover,.btn-default.disabled:focus,.btn-default.disabled:active,.btn-default.disabled.active,.btn-default[disabled],.btn-default[disabled]:hover,.btn-default[disabled]:focus,.btn-default[disabled]:active,.btn-default[disabled].active,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default:hover,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default.active + { + background-color: #fff; + border-color: #ccc; +} + +.btn-default .badge { + color: #fff; + background-color: #333; +} + +.btn-default>i { + color: #aaa; +} + +.btn-default>i[class^="icon-"],.btn-default>i[class*="icon-"] { + color: #8c8c8c; +} + +div[data-name="tab_zone"] div { + background-color: #f1f3fa; + padding: 0px; +} + +div[data-name="cond_zone"] div { + background-color: #fff; + margin-top: 15px; + margin-bottom: 15px; +} + +div[data-name="res-conds-zone"] { + display: inline; +} + +div[data-name="res-conds-zone"] select,div[data-name="res-conds-zone"] span + { + /**height:33px;*/ + margin-left: 15px; + color: #5b9bd1; + border-color: #ccc; + font-weight: bold; +} + +.input{ + width:250px; + height: 34px; + padding: 6px 12px; + font-size: 14px; + line-height: 1.42857143; + color: #555; + background-color: #fff; + background-image: none; + border: 1px solid #ccc; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075); + box-shadow: inset 0 1px 1px rgba(0,0,0,.075); + -webkit-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; + transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; +} + +div.separator { + margin: 20px; +} + +div.separator div { + text-align: center; + line-height: 0; +} + +div.separator-line { + height: 1px !important; + width: 100%; + background: #ddd; + overflow: hidden; +} + +.dropdown-toggle { + color: #5b9bd1; +} + +.calendar-date { + color: #5b9bd1; +} + +.range_inputs { + color: #5b9bd1; +} + +.btn.dropdown-toggle,.btn-group .btn.dropdown-toggle,.btn:hover,.btn:disabled,.btn[disabled],.btn:focus,.btn:active,.btn.active + { + outline: none !important; + background-image: none !important; + filter: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + text-shadow: none; +} + +#skills-chart-breadcrumb { + margin-bottom: 10px +} + +/*increase daterangepicker's css*/ +input[name="daterange"] { + width: 220px; + line-height: 0; + height: 31px; + vertical-align: top; + margin-top: 2px; +} + +.daterangepicker .ranges { + width: 205px; +} + +.daterangepicker .ranges input { + width: 95px !important; +} + +td.details-control { + background: url('../image/details_open.png') no-repeat center center; + cursor: pointer; +} + +tr.shown td.details-control { + background: url('../image/details_close.png') no-repeat center center; +} + +.details table td { + word-wrap: break-word; + word-break: normal; + border-top: 1px solid #dddddd; +} + +.details table tr:first-child td { + border-top: none; +} + +.details table { + table-layout: fixed; + width: 100%; +} + +td.title { + width: 10%; +} + +table.dataTable tbody th,table.dataTable tbody td { + padding: 8px 10px; +} + +div.dataTables_length,div.dataTables_info { + display: inline; +} + +div.dataTables_paginate { + display: inline; + float: right; +} + +div.pagination-panel { + margin-right: 10px; +} + +input.pagination-panel-input { + width: 50px; +} + +.daterangepicker .daterangepicker_start_input label,.daterangepicker .daterangepicker_end_input label + { + color: #5b9bd1; +} + +.daterangepicker .ranges .input-mini { + color: #5b9bd1; +} + +.cancelBtn { + padding: 5px 10px 5px 10px; +} + +.btn:focus,.btn:active:focus,.btn.active:focus { + outline: 0; +} + +#ict_host_table_div { + margin-top: 15px; +} + +#ict_host_table_div label { + font-weight: 100; +}s + +#ict_host_table_div table { + width: 100% !important; +} + +.upload { + width:60%; +} +.myPreview { + height: 100px; +} + +.uploadBtn { + margin-top:10px; +} + +.input-group .form-control { + height: 34px !important; +} + +.input-group .btn { + font-size: 14px !important; +} + +.form-horizontal .btn-center { + text-align: center; + margin-bottom: 15px; +} + +.blueactive { + color: #ffffff !important; + background-color: #5b9bd1; +} + +/* .process-modal { + position:fixed; + top:0; + right:0; + bottom:0; + left:0; + z-index:1000; +} +.process-content { + width: 200px; + margin: 200px auto; + padding:15px; + border: 1px solid #ddd; + background-color: #eee; + text-align:center; +} */ \ No newline at end of file diff --git a/catalog/src/main/webapp/catalog/css/package.css b/catalog/src/main/webapp/catalog/css/package.css new file mode 100644 index 00000000..42edc479 --- /dev/null +++ b/catalog/src/main/webapp/catalog/css/package.css @@ -0,0 +1,470 @@ +/** + * Copyright 2016-2017 ZTE Corporation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +body { + font-family: microsoft yahei !important; +} + +/* blue pill (inspired by iTunes) +*******************************************************************************/ +.redFont{ + color:red; +} +.blue { + + background-color: #5b9bd1; + border-radius: 20px; + color: #fff; + font-weight: bold; + padding: 8px 0; + text-align: center; + width: 100px; +} + +.blue:hover { + background-color: #e8f3fd; + color: #5b9bd1; +} + +.blue.selected { + border: 0; + background-color: #5b9bd1; + color: #fff; +} + +.blue.selected:hover { + border: 0; + background-color: #5b9bd1; + color: #fff; +} + +p { + color: #444; + font-size: 14px; + font-weight: normal; + line-height: 21px; + margin: 0 0 12px 0; +} + +p.credit { + border-top: 1px solid #ccc; + font-size: 14px; + line-height: 140%; + margin: 36px 0 12px 0; + padding: 8px 0 0 0; + text-align: center; +} + +ul.column { + float: left; + list-style: none; + width: 675px; +} + +ul.column li { + background: #eee; + -webkit-border-radius: 5px; + border-radius: 5px; + -webkit-box-shadow: inset 0 1px 1px 0 #c7c7c7; + box-shadow: inset 0 1px 1px 0 #c7c7c7; + float: left; + margin: 10px 0 0 10px; + display: block; + height: 150px; + text-align: center; + width: 215px; +} + +/* Clear Floated Elements +------------------------------------------------------------------------------*/ +.column:after,.button-collection:after,.clearfix:after,div.project-info:after + { + clear: both; + content: ' '; + display: block; + font-size: 0; + line-height: 0; + visibility: hidden; + width: 0; + height: 0; +} + +.container-fluid { + background-color:white !important; + min-height:500px; +} + +.nav-tabs { + border: 0; +} + +.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus + { + border: 0; + border-top: 3px solid #F3565D; +} + +.nav-tabs>li>a { + border-radius: 0; +} + +.nav-tabs>li>a:hover { + background-color: #f1f3fa; + border: 1Px solid #f1f3fa; +} + +.c3 { + margin-top: 120px; +} + +.skills-chart-breadcrumb { + +} + +.blue:selected { + border: 0; + background-color: #5b9bd1; +} + +select { + border-width: 1px; + padding: 4px 1px; + border-radius: 4px; +} + +.input-sm { + padding: 4px 10px; +} + +.btn-block { + display: block; + width: 100%; + padding-left: 0; + padding-right: 0; +} + +/* Bootstrap buttons */ +.btn-default { + color: #5b9bd1; + background-color: #fff; + border-color: #ccc; +} + +.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active + { + color: #333; + background-color: #ededed; + border-color: #b3b3b3; +} + +.open .btn-default.dropdown-toggle { + color: #333; + background-color: #ededed; + border-color: #b3b3b3; +} + +.btn-default:active,.btn-default.active { + background-image: none; + background-color: #e0e0e0; + font-weight: bold; +} + +.btn-default:active:hover,.btn-default.active:hover { + background-color: #e6e6e6; +} + +.open .btn-default.dropdown-toggle { + background-image: none; +} + +.btn-default.disabled,.btn-default.disabled:hover,.btn-default.disabled:focus,.btn-default.disabled:active,.btn-default.disabled.active,.btn-default[disabled],.btn-default[disabled]:hover,.btn-default[disabled]:focus,.btn-default[disabled]:active,.btn-default[disabled].active,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default:hover,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default.active + { + background-color: #fff; + border-color: #ccc; +} + +.btn-default .badge { + color: #fff; + background-color: #333; +} + +.btn-default>i { + color: #aaa; +} + +.btn-default>i[class^="icon-"],.btn-default>i[class*="icon-"] { + color: #8c8c8c; +} + +div[data-name="tab_zone"] div { + background-color: #f1f3fa; + padding: 0px; +} + +div[data-name="cond_zone"] div { + background-color: #fff; + margin-top: 15px; + margin-bottom: 15px; +} + +div[data-name="res-conds-zone"] { + display: inline; +} + +div[data-name="res-conds-zone"] select,div[data-name="res-conds-zone"] span + { + /**height:33px;*/ + margin-left: 15px; + color: #5b9bd1; + border-color: #ccc; + font-weight: bold; +} + +.input{ + width:250px; + height: 34px; + padding: 6px 12px; + font-size: 14px; + line-height: 1.42857143; + color: #555; + background-color: #fff; + background-image: none; + border: 1px solid #ccc; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075); + box-shadow: inset 0 1px 1px rgba(0,0,0,.075); + -webkit-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; + transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; +} + +div.separator { + margin: 20px; +} + +div.separator div { + text-align: center; + line-height: 0; +} + +div.separator-line { + height: 1px !important; + width: 100%; + background: #ddd; + overflow: hidden; +} + +.dropdown-toggle { + color: #5b9bd1; +} + +.calendar-date { + color: #5b9bd1; +} + +.range_inputs { + color: #5b9bd1; +} + +.btn.dropdown-toggle,.btn-group .btn.dropdown-toggle,.btn:hover,.btn:disabled,.btn[disabled],.btn:focus,.btn:active,.btn.active + { + outline: none !important; + background-image: none !important; + filter: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + text-shadow: none; +} + +#skills-chart-breadcrumb { + margin-bottom: 10px +} + +/*daterangepicker css*/ +input[name="daterange"] { + width: 220px; + line-height: 0; + height: 31px; + vertical-align: top; + margin-top: 2px; +} + +.daterangepicker .ranges { + width: 205px; +} + +.daterangepicker .ranges input { + width: 95px !important; +} + +td.details-control { + background: url('../image/details_open.png') no-repeat center center; + cursor: pointer; +} + +tr.shown td.details-control { + background: url('../image/details_close.png') no-repeat center center; +} + +.details table td { + word-wrap: break-word; + word-break: normal; + border-top: 1px solid #dddddd; +} + +.details table tr:first-child td { + border-top: none; +} + +.details table { + table-layout: fixed; + width: 100%; +} + +td.title { + width: 10%; +} + +table.dataTable tbody th,table.dataTable tbody td { + padding: 8px 10px; +} + +div.dataTables_length,div.dataTables_info { + display: inline; +} + +div.dataTables_paginate { + display: inline; + float: right; +} + +div.pagination-panel { + margin-right: 10px; +} + +input.pagination-panel-input { + width: 50px; +} + +#ict_package_table_div { + margin-top: 15px; +} + +#ict_package_table_div label { + font-weight: 100; +} + +.daterangepicker .daterangepicker_start_input label,.daterangepicker .daterangepicker_end_input label + { + color: #5b9bd1; +} + +.daterangepicker .ranges .input-mini { + color: #5b9bd1; +} + +.cancelBtn { + padding: 5px 10px 5px 10px; +} + +.btn:focus,.btn:active:focus,.btn.active:focus { + outline: 0; +} + +#ict_package_table_div table { + width: 100% !important; +} + +.upload { + width:60%; + margin-top: 10px; +} +.myPreview { + height: 100px; +} + +span.status:hover { + color: #2A69AC; + cursor: pointer; +} + +.input-group .form-control { + height: 34px !important; +} + +.input-group .btn { + font-size: 14px !important; +} + +.package-drop-zone-title{ + color:#aaa; + font-size:20px; + padding:15px 10px +} + +#right-menu { + position:absolute; + top:0; + right:0; + width:420px; + height:100%; + border-left:4px solid rgb(58,174,218); + background-color:rgba(255,255,255,.95); + padding-left:19px; + padding-right:15px; + padding-top:20px; + z-index:9999; + overflow-y: auto; +} + +#right-menu .btn{ + min-width: 30px !important; + letter-spacing :normal !important; +} + +.rigth { + float: right; +} +.right-button-pointer { + display:inline-block; + cursor:pointer +} +.floating-panel { + width:400px; + display:none +} + +.packageDetail { + margin-top:15px; +} + +.packageDetail label { + font-weight: 100; +} + +.packageDetail table { + width:100%; + table-layout: fixed; + word-wrap:break-word; +} + +.tdCenter +{ + display: block; + min-height: 20px; + margin-top: 10px; + margin-bottom: 10px; + text-align:center; +} \ No newline at end of file diff --git a/catalog/src/main/webapp/catalog/css/platform/animate.min.css b/catalog/src/main/webapp/catalog/css/platform/animate.min.css new file mode 100644 index 00000000..3b04801a --- /dev/null +++ b/catalog/src/main/webapp/catalog/css/platform/animate.min.css @@ -0,0 +1,21 @@ +/** + * Copyright 2016-2017 ZTE Corporation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +@charset "UTF-8";/*! +Animate.css - http://daneden.me/animate +Licensed under the MIT license - http://opensource.org/licenses/MIT + +Copyright (c) 2014 Daniel Eden +*/.animated{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animated.infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.animated.hinge{-webkit-animation-duration:2s;animation-duration:2s}@-webkit-keyframes bounce{0%,100%,20%,53%,80%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1);-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}40%,43%{-webkit-transition-timing-function:cubic-bezier(0.755,.050,.855,.060);transition-timing-function:cubic-bezier(0.755,.050,.855,.060);-webkit-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}70%{-webkit-transition-timing-function:cubic-bezier(0.755,.050,.855,.060);transition-timing-function:cubic-bezier(0.755,.050,.855,.060);-webkit-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}@keyframes bounce{0%,100%,20%,53%,80%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1);-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}40%,43%{-webkit-transition-timing-function:cubic-bezier(0.755,.050,.855,.060);transition-timing-function:cubic-bezier(0.755,.050,.855,.060);-webkit-transform:translate3d(0,-30px,0);-ms-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}70%{-webkit-transition-timing-function:cubic-bezier(0.755,.050,.855,.060);transition-timing-function:cubic-bezier(0.755,.050,.855,.060);-webkit-transform:translate3d(0,-15px,0);-ms-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);-ms-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}.bounce{-webkit-animation-name:bounce;animation-name:bounce;-webkit-transform-origin:center bottom;-ms-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes flash{0%,100%,50%{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,100%,50%{opacity:1}25%,75%{opacity:0}}.flash{-webkit-animation-name:flash;animation-name:flash}@-webkit-keyframes pulse{0%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}100%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes pulse{0%{-webkit-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);-ms-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}100%{-webkit-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.pulse{-webkit-animation-name:pulse;animation-name:pulse}@-webkit-keyframes rubberBand{0%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(0.75,1.25,1);transform:scale3d(0.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}100%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes rubberBand{0%{-webkit-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}30%{-webkit-transform:scale3d(1.25,.75,1);-ms-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(0.75,1.25,1);-ms-transform:scale3d(0.75,1.25,1);transform:scale3d(0.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);-ms-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);-ms-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);-ms-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}100%{-webkit-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.rubberBand{-webkit-animation-name:rubberBand;animation-name:rubberBand}@-webkit-keyframes shake{0%,100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}@keyframes shake{0%,100%{-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);-ms-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);-ms-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}.shake{-webkit-animation-name:shake;animation-name:shake}@-webkit-keyframes swing{20%{-webkit-transform:rotate3d(0,0,1,15deg);transform:rotate3d(0,0,1,15deg)}40%{-webkit-transform:rotate3d(0,0,1,-10deg);transform:rotate3d(0,0,1,-10deg)}60%{-webkit-transform:rotate3d(0,0,1,5deg);transform:rotate3d(0,0,1,5deg)}80%{-webkit-transform:rotate3d(0,0,1,-5deg);transform:rotate3d(0,0,1,-5deg)}100%{-webkit-transform:rotate3d(0,0,1,0deg);transform:rotate3d(0,0,1,0deg)}}@keyframes swing{20%{-webkit-transform:rotate3d(0,0,1,15deg);-ms-transform:rotate3d(0,0,1,15deg);transform:rotate3d(0,0,1,15deg)}40%{-webkit-transform:rotate3d(0,0,1,-10deg);-ms-transform:rotate3d(0,0,1,-10deg);transform:rotate3d(0,0,1,-10deg)}60%{-webkit-transform:rotate3d(0,0,1,5deg);-ms-transform:rotate3d(0,0,1,5deg);transform:rotate3d(0,0,1,5deg)}80%{-webkit-transform:rotate3d(0,0,1,-5deg);-ms-transform:rotate3d(0,0,1,-5deg);transform:rotate3d(0,0,1,-5deg)}100%{-webkit-transform:rotate3d(0,0,1,0deg);-ms-transform:rotate3d(0,0,1,0deg);transform:rotate3d(0,0,1,0deg)}}.swing{-webkit-transform-origin:top center;-ms-transform-origin:top center;transform-origin:top center;-webkit-animation-name:swing;animation-name:swing}@-webkit-keyframes tada{0%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg);transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg)}100%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes tada{0%{-webkit-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg);-ms-transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg);transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg);-ms-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg);-ms-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg)}100%{-webkit-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.tada{-webkit-animation-name:tada;animation-name:tada}@-webkit-keyframes wobble{0%{-webkit-transform:none;transform:none}15%{-webkit-transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg);transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg);transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg);transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg);transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg);transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg)}100%{-webkit-transform:none;transform:none}}@keyframes wobble{0%{-webkit-transform:none;-ms-transform:none;transform:none}15%{-webkit-transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg);-ms-transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg);transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg);-ms-transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg);transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg);-ms-transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg);transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg);-ms-transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg);transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg);-ms-transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg);transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg)}100%{-webkit-transform:none;-ms-transform:none;transform:none}}.wobble{-webkit-animation-name:wobble;animation-name:wobble}@-webkit-keyframes bounceIn{0%,100%,20%,40%,60%,80%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}100%{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes bounceIn{0%,100%,20%,40%,60%,80%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);-ms-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);-ms-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);-ms-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);-ms-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);-ms-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}100%{opacity:1;-webkit-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.bounceIn{-webkit-animation-name:bounceIn;animation-name:bounceIn;-webkit-animation-duration:.75s;animation-duration:.75s}@-webkit-keyframes bounceInDown{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}100%{-webkit-transform:none;transform:none}}@keyframes bounceInDown{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);-ms-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);-ms-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);-ms-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);-ms-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}100%{-webkit-transform:none;-ms-transform:none;transform:none}}.bounceInDown{-webkit-animation-name:bounceInDown;animation-name:bounceInDown}@-webkit-keyframes bounceInLeft{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}100%{-webkit-transform:none;transform:none}}@keyframes bounceInLeft{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);-ms-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);-ms-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);-ms-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);-ms-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}100%{-webkit-transform:none;-ms-transform:none;transform:none}}.bounceInLeft{-webkit-animation-name:bounceInLeft;animation-name:bounceInLeft}@-webkit-keyframes bounceInRight{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}100%{-webkit-transform:none;transform:none}}@keyframes bounceInRight{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0);-ms-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);-ms-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);-ms-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);-ms-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}100%{-webkit-transform:none;-ms-transform:none;transform:none}}.bounceInRight{-webkit-animation-name:bounceInRight;animation-name:bounceInRight}@-webkit-keyframes bounceInUp{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes bounceInUp{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0);-ms-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);-ms-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);-ms-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);-ms-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}100%{-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.bounceInUp{-webkit-animation-name:bounceInUp;animation-name:bounceInUp}@-webkit-keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}100%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);-ms-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);-ms-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}100%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);-ms-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}.bounceOut{-webkit-animation-name:bounceOut;animation-name:bounceOut;-webkit-animation-duration:.75s;animation-duration:.75s}@-webkit-keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}100%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);-ms-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);-ms-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}100%{opacity:0;-webkit-transform:translate3d(0,2000px,0);-ms-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.bounceOutDown{-webkit-animation-name:bounceOutDown;animation-name:bounceOutDown}@-webkit-keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}100%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);-ms-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}100%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);-ms-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.bounceOutLeft{-webkit-animation-name:bounceOutLeft;animation-name:bounceOutLeft}@-webkit-keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}100%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);-ms-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}100%{opacity:0;-webkit-transform:translate3d(2000px,0,0);-ms-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.bounceOutRight{-webkit-animation-name:bounceOutRight;animation-name:bounceOutRight}@-webkit-keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}100%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);-ms-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);-ms-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}100%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);-ms-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.bounceOutUp{-webkit-animation-name:bounceOutUp;animation-name:bounceOutUp}@-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}.fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);-ms-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInDown{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}@-webkit-keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);-ms-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInDownBig{-webkit-animation-name:fadeInDownBig;animation-name:fadeInDownBig}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);-ms-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInLeft{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}@-webkit-keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);-ms-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInLeftBig{-webkit-animation-name:fadeInLeftBig;animation-name:fadeInLeftBig}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);-ms-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInRight{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}@-webkit-keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);-ms-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInRightBig{-webkit-animation-name:fadeInRightBig;animation-name:fadeInRightBig}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);-ms-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInUp{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}@-webkit-keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);-ms-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInUpBig{-webkit-animation-name:fadeInUpBig;animation-name:fadeInUpBig}@-webkit-keyframes fadeOut{0%{opacity:1}100%{opacity:0}}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}.fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}@-webkit-keyframes fadeOutDown{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes fadeOutDown{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,100%,0);-ms-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.fadeOutDown{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}@-webkit-keyframes fadeOutDownBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes fadeOutDownBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,2000px,0);-ms-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.fadeOutDownBig{-webkit-animation-name:fadeOutDownBig;animation-name:fadeOutDownBig}@-webkit-keyframes fadeOutLeft{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes fadeOutLeft{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-100%,0,0);-ms-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.fadeOutLeft{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}@-webkit-keyframes fadeOutLeftBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes fadeOutLeftBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);-ms-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.fadeOutLeftBig{-webkit-animation-name:fadeOutLeftBig;animation-name:fadeOutLeftBig}@-webkit-keyframes fadeOutRight{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes fadeOutRight{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%,0,0);-ms-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.fadeOutRight{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeOutRightBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes fadeOutRightBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(2000px,0,0);-ms-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.fadeOutRightBig{-webkit-animation-name:fadeOutRightBig;animation-name:fadeOutRightBig}@-webkit-keyframes fadeOutUp{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes fadeOutUp{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,-100%,0);-ms-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.fadeOutUp{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}@-webkit-keyframes fadeOutUpBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes fadeOutUpBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);-ms-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.fadeOutUpBig{-webkit-animation-name:fadeOutUpBig;animation-name:fadeOutUpBig}@-webkit-keyframes flip{0%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-360deg);transform:perspective(400px) rotate3d(0,1,0,-360deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95);transform:perspective(400px) scale3d(.95,.95,.95);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}100%{-webkit-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}@keyframes flip{0%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-360deg);-ms-transform:perspective(400px) rotate3d(0,1,0,-360deg);transform:perspective(400px) rotate3d(0,1,0,-360deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);-ms-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);-ms-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95);-ms-transform:perspective(400px) scale3d(.95,.95,.95);transform:perspective(400px) scale3d(.95,.95,.95);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}100%{-webkit-transform:perspective(400px);-ms-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}.animated.flip{-webkit-backface-visibility:visible;-ms-backface-visibility:visible;backface-visibility:visible;-webkit-animation-name:flip;animation-name:flip}@-webkit-keyframes flipInX{0%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1,0,0,10deg);transform:perspective(400px) rotate3d(1,0,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-5deg);transform:perspective(400px) rotate3d(1,0,0,-5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInX{0%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);-ms-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);-ms-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1,0,0,10deg);-ms-transform:perspective(400px) rotate3d(1,0,0,10deg);transform:perspective(400px) rotate3d(1,0,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-5deg);-ms-transform:perspective(400px) rotate3d(1,0,0,-5deg);transform:perspective(400px) rotate3d(1,0,0,-5deg)}100%{-webkit-transform:perspective(400px);-ms-transform:perspective(400px);transform:perspective(400px)}}.flipInX{-webkit-backface-visibility:visible!important;-ms-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInX;animation-name:flipInX}@-webkit-keyframes flipInY{0%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-20deg);transform:perspective(400px) rotate3d(0,1,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(0,1,0,10deg);transform:perspective(400px) rotate3d(0,1,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-5deg);transform:perspective(400px) rotate3d(0,1,0,-5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInY{0%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);-ms-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-20deg);-ms-transform:perspective(400px) rotate3d(0,1,0,-20deg);transform:perspective(400px) rotate3d(0,1,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(0,1,0,10deg);-ms-transform:perspective(400px) rotate3d(0,1,0,10deg);transform:perspective(400px) rotate3d(0,1,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-5deg);-ms-transform:perspective(400px) rotate3d(0,1,0,-5deg);transform:perspective(400px) rotate3d(0,1,0,-5deg)}100%{-webkit-transform:perspective(400px);-ms-transform:perspective(400px);transform:perspective(400px)}}.flipInY{-webkit-backface-visibility:visible!important;-ms-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInY;animation-name:flipInY}@-webkit-keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);opacity:0}}@keyframes flipOutX{0%{-webkit-transform:perspective(400px);-ms-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);-ms-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);-ms-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);opacity:0}}.flipOutX{-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-backface-visibility:visible!important;-ms-backface-visibility:visible!important;backface-visibility:visible!important}@-webkit-keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-15deg);transform:perspective(400px) rotate3d(0,1,0,-15deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);opacity:0}}@keyframes flipOutY{0%{-webkit-transform:perspective(400px);-ms-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-15deg);-ms-transform:perspective(400px) rotate3d(0,1,0,-15deg);transform:perspective(400px) rotate3d(0,1,0,-15deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);-ms-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);opacity:0}}.flipOutY{-webkit-backface-visibility:visible!important;-ms-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipOutY;animation-name:flipOutY;-webkit-animation-duration:.75s;animation-duration:.75s}@-webkit-keyframes lightSpeedIn{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg);opacity:1}100%{-webkit-transform:none;transform:none;opacity:1}}@keyframes lightSpeedIn{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);-ms-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);-ms-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);-ms-transform:skewX(-5deg);transform:skewX(-5deg);opacity:1}100%{-webkit-transform:none;-ms-transform:none;transform:none;opacity:1}}.lightSpeedIn{-webkit-animation-name:lightSpeedIn;animation-name:lightSpeedIn;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedOut{0%{opacity:1}100%{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}@keyframes lightSpeedOut{0%{opacity:1}100%{-webkit-transform:translate3d(100%,0,0) skewX(30deg);-ms-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}.lightSpeedOut{-webkit-animation-name:lightSpeedOut;animation-name:lightSpeedOut;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes rotateIn{0%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,-200deg);transform:rotate3d(0,0,1,-200deg);opacity:0}100%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateIn{0%{-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,-200deg);-ms-transform:rotate3d(0,0,1,-200deg);transform:rotate3d(0,0,1,-200deg);opacity:0}100%{-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;-webkit-transform:none;-ms-transform:none;transform:none;opacity:1}}.rotateIn{-webkit-animation-name:rotateIn;animation-name:rotateIn}@-webkit-keyframes rotateInDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInDownLeft{0%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);-ms-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}100%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;-ms-transform:none;transform:none;opacity:1}}.rotateInDownLeft{-webkit-animation-name:rotateInDownLeft;animation-name:rotateInDownLeft}@-webkit-keyframes rotateInDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInDownRight{0%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,45deg);-ms-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}100%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;-ms-transform:none;transform:none;opacity:1}}.rotateInDownRight{-webkit-animation-name:rotateInDownRight;animation-name:rotateInDownRight}@-webkit-keyframes rotateInUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInUpLeft{0%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,45deg);-ms-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}100%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;-ms-transform:none;transform:none;opacity:1}}.rotateInUpLeft{-webkit-animation-name:rotateInUpLeft;animation-name:rotateInUpLeft}@-webkit-keyframes rotateInUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-90deg);transform:rotate3d(0,0,1,-90deg);opacity:0}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInUpRight{0%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-90deg);-ms-transform:rotate3d(0,0,1,-90deg);transform:rotate3d(0,0,1,-90deg);opacity:0}100%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;-ms-transform:none;transform:none;opacity:1}}.rotateInUpRight{-webkit-animation-name:rotateInUpRight;animation-name:rotateInUpRight}@-webkit-keyframes rotateOut{0%{-webkit-transform-origin:center;transform-origin:center;opacity:1}100%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,200deg);transform:rotate3d(0,0,1,200deg);opacity:0}}@keyframes rotateOut{0%{-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;opacity:1}100%{-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,200deg);-ms-transform:rotate3d(0,0,1,200deg);transform:rotate3d(0,0,1,200deg);opacity:0}}.rotateOut{-webkit-animation-name:rotateOut;animation-name:rotateOut}@-webkit-keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(0,0,1,45deg);transform:rotate(0,0,1,45deg);opacity:0}}@keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;opacity:1}100%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(0,0,1,45deg);-ms-transform:rotate(0,0,1,45deg);transform:rotate(0,0,1,45deg);opacity:0}}.rotateOutDownLeft{-webkit-animation-name:rotateOutDownLeft;animation-name:rotateOutDownLeft}@-webkit-keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}@keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;opacity:1}100%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-45deg);-ms-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}.rotateOutDownRight{-webkit-animation-name:rotateOutDownRight;animation-name:rotateOutDownRight}@-webkit-keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}@keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;opacity:1}100%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);-ms-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}.rotateOutUpLeft{-webkit-animation-name:rotateOutUpLeft;animation-name:rotateOutUpLeft}@-webkit-keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,90deg);transform:rotate3d(0,0,1,90deg);opacity:0}}@keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;opacity:1}100%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,90deg);-ms-transform:rotate3d(0,0,1,90deg);transform:rotate3d(0,0,1,90deg);opacity:0}}.rotateOutUpRight{-webkit-animation-name:rotateOutUpRight;animation-name:rotateOutUpRight}@-webkit-keyframes hinge{0%{-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate3d(0,0,1,80deg);transform:rotate3d(0,0,1,80deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate3d(0,0,1,60deg);transform:rotate3d(0,0,1,60deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}100%{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}@keyframes hinge{0%{-webkit-transform-origin:top left;-ms-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate3d(0,0,1,80deg);-ms-transform:rotate3d(0,0,1,80deg);transform:rotate3d(0,0,1,80deg);-webkit-transform-origin:top left;-ms-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate3d(0,0,1,60deg);-ms-transform:rotate3d(0,0,1,60deg);transform:rotate3d(0,0,1,60deg);-webkit-transform-origin:top left;-ms-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}100%{-webkit-transform:translate3d(0,700px,0);-ms-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}.hinge{-webkit-animation-name:hinge;animation-name:hinge}@-webkit-keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg);transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg);-ms-transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg);transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.rollIn{-webkit-animation-name:rollIn;animation-name:rollIn}@-webkit-keyframes rollOut{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg);transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg)}}@keyframes rollOut{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg);-ms-transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg);transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg)}}.rollOut{-webkit-animation-name:rollOut;animation-name:rollOut}@-webkit-keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);-ms-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}.zoomIn{-webkit-animation-name:zoomIn;animation-name:zoomIn}@-webkit-keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-ms-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-ms-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.zoomInDown{-webkit-animation-name:zoomInDown;animation-name:zoomInDown}@-webkit-keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-ms-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-ms-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.zoomInLeft{-webkit-animation-name:zoomInLeft;animation-name:zoomInLeft}@-webkit-keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-ms-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-ms-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.zoomInRight{-webkit-animation-name:zoomInRight;animation-name:zoomInRight}@-webkit-keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-ms-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-ms-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.zoomInUp{-webkit-animation-name:zoomInUp;animation-name:zoomInUp}@-webkit-keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}100%{opacity:0}}@keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);-ms-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}100%{opacity:0}}.zoomOut{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}100%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-ms-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}100%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-ms-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;-ms-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.zoomOutDown{-webkit-animation-name:zoomOutDown;animation-name:zoomOutDown}@-webkit-keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}100%{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;transform-origin:left center}}@keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);-ms-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}100%{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);-ms-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;-ms-transform-origin:left center;transform-origin:left center}}.zoomOutLeft{-webkit-animation-name:zoomOutLeft;animation-name:zoomOutLeft}@-webkit-keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}100%{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;transform-origin:right center}}@keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);-ms-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}100%{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);-ms-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;-ms-transform-origin:right center;transform-origin:right center}}.zoomOutRight{-webkit-animation-name:zoomOutRight;animation-name:zoomOutRight}@-webkit-keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}100%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-ms-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}100%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-ms-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;-ms-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.zoomOutUp{-webkit-animation-name:zoomOutUp;animation-name:zoomOutUp} \ No newline at end of file diff --git a/catalog/src/main/webapp/catalog/css/platform/skill.css b/catalog/src/main/webapp/catalog/css/platform/skill.css new file mode 100644 index 00000000..c68a7359 --- /dev/null +++ b/catalog/src/main/webapp/catalog/css/platform/skill.css @@ -0,0 +1,89 @@ +/** + * Copyright 2016-2017 ZTE Corporation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +body { + font-family: 'Open Sans', sans-serif; + background-color: #f1f3fa; + width: '100%'; + height: '100%'; + margin-top: 10px; +} +div.skills-sunburst{ + font-size: 12px; + font-weight: 400; + text-align:center; +} + +#skillmap .skills-wrapper { + margin-top: 10px; + overflow: auto; +} +#skillmap .skills-sunburst { + float: left; + width: 500px; + margin-left: -80px; +} +#skillmap .skills-sunburst svg { + font: 11px 'Source Sans Pro', sans-serif; + font-weight: 900; + + cursor: pointer; +} +#skillmap .skills-chart { + float: right; + font-family: 'Source Sans Pro', sans-serif; + font-size: 15px; + margin: 80px 20px 0 0; +} +#skillmap .skills-chart .breadcumb-text { + font-size: 13px; + font-weight: 700; +} +#skillmap .skills-chart #skills-chart-line { + fill: none; + stroke-width: 3.5px; +} +#skillmap .skills-chart .axis path, +#skillmap .skills-chart .axis line { + fill: none; +} +#skillmap .skills-chart .x-axis path, +#skillmap .skills-chart .y-axis path { + stroke: #444; + stroke-width: 1px; + shape-rendering: geometricPrecision; +} + +#explanation { + position: absolute; + top: 165px; + left: 170px; + width: 140px; + text-align: center; + color: #666; + margin-top:30px; +} + +#percentage { + font-size: 2em; +} + +#endlabel{ + font-sizte:1.5em; +} + +div.skills-sunburst text{ + text-anchor: middle; +} \ No newline at end of file diff --git a/catalog/src/main/webapp/catalog/css/software.css b/catalog/src/main/webapp/catalog/css/software.css new file mode 100644 index 00000000..7db97ff2 --- /dev/null +++ b/catalog/src/main/webapp/catalog/css/software.css @@ -0,0 +1,423 @@ +/** + * Copyright 2016-2017 ZTE Corporation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +body { + font-family: microsoft yahei !important; +} + +/* blue pill (inspired by iTunes) +*******************************************************************************/ +.redFont{ + color:red; +} +.blue { + + background-color: #5b9bd1; + border-radius: 20px; + color: #fff; + font-weight: bold; + padding: 8px 0; + text-align: center; + width: 100px; +} + +.blue:hover { + background-color: #e8f3fd; + color: #5b9bd1; +} + +.blue.selected { + border: 0; + background-color: #5b9bd1; + color: #fff; +} + +.blue.selected:hover { + border: 0; + background-color: #5b9bd1; + color: #fff; +} + +p { + color: #444; + font-size: 14px; + font-weight: normal; + line-height: 21px; + margin: 0 0 12px 0; +} + +p.credit { + border-top: 1px solid #ccc; + font-size: 14px; + line-height: 140%; + margin: 36px 0 12px 0; + padding: 8px 0 0 0; + text-align: center; +} + +ul.column { + float: left; + list-style: none; + width: 675px; +} + +ul.column li { + background: #eee; + -webkit-border-radius: 5px; + border-radius: 5px; + -webkit-box-shadow: inset 0 1px 1px 0 #c7c7c7; + box-shadow: inset 0 1px 1px 0 #c7c7c7; + float: left; + margin: 10px 0 0 10px; + display: block; + height: 150px; + text-align: center; + width: 215px; +} + +/* Clear Floated Elements +------------------------------------------------------------------------------*/ +.column:after,.button-collection:after,.clearfix:after,div.project-info:after + { + clear: both; + content: ' '; + display: block; + font-size: 0; + line-height: 0; + visibility: hidden; + width: 0; + height: 0; +} + +.container-fluid { + background-color:white !important; + min-height:500px; +} + +.nav-tabs { + border: 0; +} + +.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus + { + border: 0; + border-top: 3px solid #F3565D; +} + +.nav-tabs>li>a { + border-radius: 0; +} + +.nav-tabs>li>a:hover { + background-color: #f1f3fa; + border: 1Px solid #f1f3fa; +} + +.c3 { + margin-top: 120px; +} + +.skills-chart-breadcrumb { + +} + +.blue:selected { + border: 0; + background-color: #5b9bd1; +} + +.btn { + /* border-width: 0; */ + /* padding: 7px 14px; */ + /* font-size: 14px; */ + /* outline: none !important; */ + /* background-image: none !important; */ + /* filter: none; */ + /* -webkit-box-shadow: none; */ + -moz-box-shadow: none; + /* box-shadow: none; */ + /* text-shadow: none; */ +} + +select { + border-width: 1px; + padding: 4px 1px; + border-radius: 4px; +} + +.input-sm { + padding: 4px 10px; +} + +.btn-block { + display: block; + width: 100%; + padding-left: 0; + padding-right: 0; +} + +/* Bootstrap buttons */ +.btn-default { + color: #5b9bd1; + background-color: #fff; + border-color: #ccc; +} + +.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active + { + color: #333; + background-color: #ededed; + border-color: #b3b3b3; +} + +.open .btn-default.dropdown-toggle { + color: #333; + background-color: #ededed; + border-color: #b3b3b3; +} + +.btn-default:active,.btn-default.active { + background-image: none; + background-color: #e0e0e0; + font-weight: bold; +} + +.btn-default:active:hover,.btn-default.active:hover { + background-color: #e6e6e6; +} + +.open .btn-default.dropdown-toggle { + background-image: none; +} + +.btn-default.disabled,.btn-default.disabled:hover,.btn-default.disabled:focus,.btn-default.disabled:active,.btn-default.disabled.active,.btn-default[disabled],.btn-default[disabled]:hover,.btn-default[disabled]:focus,.btn-default[disabled]:active,.btn-default[disabled].active,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default:hover,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default.active + { + background-color: #fff; + border-color: #ccc; +} + +.btn-default .badge { + color: #fff; + background-color: #333; +} + +.btn-default>i { + color: #aaa; +} + +.btn-default>i[class^="icon-"],.btn-default>i[class*="icon-"] { + color: #8c8c8c; +} + +div[data-name="tab_zone"] div { + background-color: #f1f3fa; + padding: 0px; +} + +div[data-name="cond_zone"] div { + background-color: #fff; + margin-top: 15px; + margin-bottom: 15px; +} + +div[data-name="res-conds-zone"] { + display: inline; +} + +div[data-name="res-conds-zone"] select,div[data-name="res-conds-zone"] span + { + /**height:33px;*/ + margin-left: 15px; + color: #5b9bd1; + border-color: #ccc; + font-weight: bold; +} + +.input{ + width:250px; + height: 34px; + padding: 6px 12px; + font-size: 14px; + line-height: 1.42857143; + color: #555; + background-color: #fff; + background-image: none; + border: 1px solid #ccc; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075); + box-shadow: inset 0 1px 1px rgba(0,0,0,.075); + -webkit-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; + transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; +} + +div.separator { + margin: 20px; +} + +div.separator div { + text-align: center; + line-height: 0; +} + +div.separator-line { + height: 1px !important; + width: 100%; + background: #ddd; + overflow: hidden; +} + +.dropdown-toggle { + color: #5b9bd1; +} + +.calendar-date { + color: #5b9bd1; +} + +.range_inputs { + color: #5b9bd1; +} + +.btn.dropdown-toggle,.btn-group .btn.dropdown-toggle,.btn:hover,.btn:disabled,.btn[disabled],.btn:focus,.btn:active,.btn.active + { + outline: none !important; + background-image: none !important; + filter: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + text-shadow: none; +} + +#skills-chart-breadcrumb { + margin-bottom: 10px +} + +/*increase daterangepicker's css*/ +input[name="daterange"] { + width: 220px; + line-height: 0; + height: 31px; + vertical-align: top; + margin-top: 2px; +} + +.daterangepicker .ranges { + width: 205px; +} + +.daterangepicker .ranges input { + width: 95px !important; +} + +td.details-control { + background: url('../image/details_open.png') no-repeat center center; + cursor: pointer; +} + +tr.shown td.details-control { + background: url('../image/details_close.png') no-repeat center center; +} + +.details table td { + word-wrap: break-word; + word-break: normal; + border-top: 1px solid #dddddd; +} + +.details table tr:first-child td { + border-top: none; +} + +.details table { + table-layout: fixed; + width: 100%; +} + +td.title { + width: 10%; +} + +table.dataTable tbody th,table.dataTable tbody td { + padding: 8px 10px; +} + +div.dataTables_length,div.dataTables_info { + display: inline; +} + +div.dataTables_paginate { + display: inline; + float: right; +} + +div.pagination-panel { + margin-right: 10px; +} + +input.pagination-panel-input { + width: 50px; +} + +.daterangepicker .daterangepicker_start_input label,.daterangepicker .daterangepicker_end_input label + { + color: #5b9bd1; +} + +.daterangepicker .ranges .input-mini { + color: #5b9bd1; +} + +.cancelBtn { + padding: 5px 10px 5px 10px; +} + +.btn:focus,.btn:active:focus,.btn.active:focus { + outline: 0; +} + +#ict_software_table_div { + margin-top: 10px; +} + +#ict_software_table_div label { + font-weight: 100; +}s + +#ict_software_table_div table { + width: 100% !important; +} + +.upload { + width:60%; +} +.myPreview { + height: 100px; +} + +.uploadBtn { + margin-top:10px; +} + +.file-input { + display: inline; + overflow: hidden; + word-break: break-all; + text-overflow: ellipsis; +} + +.input-group .btn { + font-size: 14px !important; +} \ No newline at end of file diff --git a/catalog/src/main/webapp/catalog/css/template.css b/catalog/src/main/webapp/catalog/css/template.css new file mode 100644 index 00000000..0fcb7c5f --- /dev/null +++ b/catalog/src/main/webapp/catalog/css/template.css @@ -0,0 +1,405 @@ +/** + * Copyright 2016-2017 ZTE Corporation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +body { + font-family: microsoft yahei !important; +} + +/* blue pill (inspired by iTunes) +*******************************************************************************/ +.redFont{ + color:red; +} +.blue { + + background-color: #5b9bd1; + border-radius: 20px; + color: #fff; + font-weight: bold; + padding: 8px 0; + text-align: center; + width: 100px; +} + +.blue:hover { + background-color: #e8f3fd; + color: #5b9bd1; +} + +.blue.selected { + border: 0; + background-color: #5b9bd1; + color: #fff; +} + +.blue.selected:hover { + border: 0; + background-color: #5b9bd1; + color: #fff; +} + +a { + text-decoration: none !important; +} + +p { + color: #444; + font-size: 14px; + font-weight: normal; + line-height: 21px; + margin: 0 0 12px 0; +} + +p.credit { + border-top: 1px solid #ccc; + font-size: 14px; + line-height: 140%; + margin: 36px 0 12px 0; + padding: 8px 0 0 0; + text-align: center; +} + +ul.column { + float: left; + list-style: none; + width: 675px; +} + +ul.column li { + background: #eee; + -webkit-border-radius: 5px; + border-radius: 5px; + -webkit-box-shadow: inset 0 1px 1px 0 #c7c7c7; + box-shadow: inset 0 1px 1px 0 #c7c7c7; + float: left; + margin: 10px 0 0 10px; + display: block; + height: 150px; + text-align: center; + width: 215px; +} + +/* Clear Floated Elements +------------------------------------------------------------------------------*/ +.column:after,.button-collection:after,.clearfix:after,div.project-info:after + { + clear: both; + content: ' '; + display: block; + font-size: 0; + line-height: 0; + visibility: hidden; + width: 0; + height: 0; +} + +.container-fluid { + background-color:white !important; + min-height:500px; +} + +.nav-tabs { + border: 0; +} + +.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus + { + border: 0; + border-top: 3px solid #F3565D; +} + +.nav-tabs>li>a { + border-radius: 0; +} + +.nav-tabs>li>a:hover { + background-color: #f1f3fa; + border: 1Px solid #f1f3fa; +} + +.c3 { + margin-top: 120px; +} + +.skills-chart-breadcrumb { + +} + +.blue:selected { + border: 0; + background-color: #5b9bd1; +} + +.btn { + /* border-width: 0; */ + /* padding: 7px 14px; */ + /* font-size: 14px; */ + /* outline: none !important; */ + /* background-image: none !important; */ + /* filter: none; */ + /* -webkit-box-shadow: none; */ + -moz-box-shadow: none; + /* box-shadow: none; */ + /* text-shadow: none; */ +} + +select { + border-width: 1px; + padding: 4px 1px; + border-radius: 4px; +} + +.input-sm { + padding: 4px 10px; +} + +.btn-block { + display: block; + width: 100%; + padding-left: 0; + padding-right: 0; +} + +/* Bootstrap buttons */ +.btn-default { + color: #5b9bd1; + background-color: #fff; + border-color: #ccc; +} + +.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active + { + color: #333; + background-color: #ededed; + border-color: #b3b3b3; +} + +.open .btn-default.dropdown-toggle { + color: #333; + background-color: #ededed; + border-color: #b3b3b3; +} + +.btn-default:active,.btn-default.active { + background-image: none; + background-color: #e0e0e0; + font-weight: bold; +} + +.btn-default:active:hover,.btn-default.active:hover { + background-color: #e6e6e6; +} + +.open .btn-default.dropdown-toggle { + background-image: none; +} + +.btn-default.disabled,.btn-default.disabled:hover,.btn-default.disabled:focus,.btn-default.disabled:active,.btn-default.disabled.active,.btn-default[disabled],.btn-default[disabled]:hover,.btn-default[disabled]:focus,.btn-default[disabled]:active,.btn-default[disabled].active,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default:hover,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default.active + { + background-color: #fff; + border-color: #ccc; +} + +.btn-default .badge { + color: #fff; + background-color: #333; +} + +.btn-default>i { + color: #aaa; +} + +.btn-default>i[class^="icon-"],.btn-default>i[class*="icon-"] { + color: #8c8c8c; +} + +div[data-name="tab_zone"] div { + background-color: #f1f3fa; + padding: 0px; +} + +div[data-name="cond_zone"] div { + background-color: #fff; + margin-top: 15px; + margin-bottom: 15px; +} + +div[data-name="res-conds-zone"] { + display: inline; +} + +div[data-name="res-conds-zone"] select,div[data-name="res-conds-zone"] span + { + /**height:33px;*/ + margin-left: 15px; + color: #5b9bd1; + border-color: #ccc; + font-weight: bold; +} + +.input{ + width:250px; + height: 34px; + padding: 6px 12px; + font-size: 14px; + line-height: 1.42857143; + color: #555; + background-color: #fff; + background-image: none; + border: 1px solid #ccc; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075); + box-shadow: inset 0 1px 1px rgba(0,0,0,.075); + -webkit-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; + transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; +} + +div.separator { + margin: 20px; +} + +div.separator div { + text-align: center; + line-height: 0; +} + +div.separator-line { + height: 1px !important; + width: 100%; + background: #ddd; + overflow: hidden; +} + +.dropdown-toggle { + color: #5b9bd1; +} + +.calendar-date { + color: #5b9bd1; +} + +.range_inputs { + color: #5b9bd1; +} + +.btn.dropdown-toggle,.btn-group .btn.dropdown-toggle,.btn:hover,.btn:disabled,.btn[disabled],.btn:focus,.btn:active,.btn.active + { + outline: none !important; + background-image: none !important; + filter: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + text-shadow: none; +} + +#skills-chart-breadcrumb { + margin-bottom: 10px +} + +/*increase daterangepicker's css*/ +input[name="daterange"] { + width: 220px; + line-height: 0; + height: 31px; + vertical-align: top; + margin-top: 2px; +} + +.daterangepicker .ranges { + width: 205px; +} + +.daterangepicker .ranges input { + width: 95px !important; +} + +td.details-control { + background: url('../image/details_open.png') no-repeat center center; + cursor: pointer; +} + +tr.shown td.details-control { + background: url('../image/details_close.png') no-repeat center center; +} + +.details table td { + word-wrap: break-word; + word-break: normal; + border-top: 1px solid #dddddd; +} + +.details table tr:first-child td { + border-top: none; +} + +.details table { + table-layout: fixed; + width: 100%; +} + +td.title { + width: 10%; +} + +table.dataTable tbody th,table.dataTable tbody td { + padding: 8px 10px; +} + +div.dataTables_length,div.dataTables_info { + display: inline; +} + +div.dataTables_paginate { + display: inline; + float: right; +} + +div.pagination-panel { + margin-right: 10px; +} + +input.pagination-panel-input { + width: 50px; +} + +#ict_template_table_div { + margin-top: 15px; +} + +#ict_template_table_div label { + font-weight: 100; +} + +.daterangepicker .daterangepicker_start_input label,.daterangepicker .daterangepicker_end_input label + { + color: #5b9bd1; +} + +.daterangepicker .ranges .input-mini { + color: #5b9bd1; +} + +.cancelBtn { + padding: 5px 10px 5px 10px; +} + +.btn:focus,.btn:active:focus,.btn.active:focus { + outline: 0; +} + +#ict_template_table_div table { + width: 100% !important; +} \ No newline at end of file diff --git a/catalog/src/main/webapp/catalog/css/templateDetail.css b/catalog/src/main/webapp/catalog/css/templateDetail.css new file mode 100644 index 00000000..3462aa0c --- /dev/null +++ b/catalog/src/main/webapp/catalog/css/templateDetail.css @@ -0,0 +1,480 @@ +/** + * Copyright 2016-2017 ZTE Corporation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +body { + font-family: microsoft yahei !important; +} + +/* blue pill (inspired by iTunes) +*******************************************************************************/ +.redFont{ + color:red; +} +.blue { + + background-color: #5b9bd1; + border-radius: 20px; + color: #fff; + font-weight: bold; + padding: 8px 0; + text-align: center; + width: 100px; +} + +.blue:hover { + background-color: #e8f3fd; + color: #5b9bd1; +} + +.blue.selected { + border: 0; + background-color: #5b9bd1; + color: #fff; +} + +.blue.selected:hover { + border: 0; + background-color: #5b9bd1; + color: #fff; +} + +a { + text-decoration: none !important; +} + +p { + color: #444; + font-size: 14px; + font-weight: normal; + line-height: 21px; + margin: 0 0 12px 0; +} + +p.credit { + border-top: 1px solid #ccc; + font-size: 14px; + line-height: 140%; + margin: 36px 0 12px 0; + padding: 8px 0 0 0; + text-align: center; +} + +ul.column { + float: left; + list-style: none; + width: 675px; +} + +ul.column li { + background: #eee; + -webkit-border-radius: 5px; + border-radius: 5px; + -webkit-box-shadow: inset 0 1px 1px 0 #c7c7c7; + box-shadow: inset 0 1px 1px 0 #c7c7c7; + float: left; + margin: 10px 0 0 10px; + display: block; + height: 150px; + text-align: center; + width: 215px; +} + +/* Clear Floated Elements +------------------------------------------------------------------------------*/ +.column:after,.button-collection:after,.clearfix:after,div.project-info:after + { + clear: both; + content: ' '; + display: block; + font-size: 0; + line-height: 0; + visibility: hidden; + width: 0; + height: 0; +} + +.container-fluid { + background-color:white !important; + min-height:800px; +} + +.nav-tabs { + border: 0; +} + +.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus + { + border: 0; + border-top: 3px solid #F3565D; +} + +.nav-tabs>li>a { + border-radius: 0; +} + +.nav-tabs>li>a:hover { + background-color: #f1f3fa; + border: 1Px solid #f1f3fa; +} + +.c3 { + margin-top: 120px; +} + +.skills-chart-breadcrumb { + +} + +.blue:selected { + border: 0; + background-color: #5b9bd1; +} + +.btn { + /* border-width: 0; */ + /* padding: 7px 14px; */ + /* font-size: 14px; */ + /* outline: none !important; */ + /* background-image: none !important; */ + /* filter: none; */ + /* -webkit-box-shadow: none; */ + -moz-box-shadow: none; + /* box-shadow: none; */ + /* text-shadow: none; */ +} + +select { + border-width: 1px; + padding: 4px 1px; + border-radius: 4px; +} + +.input-sm { + padding: 4px 10px; +} + +.btn-block { + display: block; + width: 100%; + padding-left: 0; + padding-right: 0; +} + +/* Bootstrap buttons */ +.btn-default { + color: #5b9bd1; + background-color: #fff; + border-color: #ccc; +} + +.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active + { + color: #333; + background-color: #ededed; + border-color: #b3b3b3; +} + +.open .btn-default.dropdown-toggle { + color: #333; + background-color: #ededed; + border-color: #b3b3b3; +} + +.btn-default:active,.btn-default.active { + background-image: none; + background-color: #e0e0e0; + font-weight: bold; +} + +.btn-default:active:hover,.btn-default.active:hover { + background-color: #e6e6e6; +} + +.open .btn-default.dropdown-toggle { + background-image: none; +} + +.btn-default.disabled,.btn-default.disabled:hover,.btn-default.disabled:focus,.btn-default.disabled:active,.btn-default.disabled.active,.btn-default[disabled],.btn-default[disabled]:hover,.btn-default[disabled]:focus,.btn-default[disabled]:active,.btn-default[disabled].active,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default:hover,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default.active + { + background-color: #fff; + border-color: #ccc; +} + +.btn-default .badge { + color: #fff; + background-color: #333; +} + +.btn-default>i { + color: #aaa; +} + +.btn-default>i[class^="icon-"],.btn-default>i[class*="icon-"] { + color: #8c8c8c; +} + +div[data-name="tab_zone"] div { + background-color: #f1f3fa; + padding: 0px; +} + +div[data-name="cond_zone"] div { + background-color: #fff; + margin-top: 15px; + margin-bottom: 15px; +} + +div[data-name="detail-conds-zone"] { + display: inline; +} + +div[data-name="detail-conds-zone"] select,div[data-name="detail-conds-zone"] span + { + /**height:33px;*/ + margin-left: 15px; + color: #5b9bd1; + border-color: #ccc; + font-weight: bold; +} + +.input{ + width:250px; + height: 34px; + padding: 6px 12px; + font-size: 14px; + line-height: 1.42857143; + color: #555; + background-color: #fff; + background-image: none; + border: 1px solid #ccc; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075); + box-shadow: inset 0 1px 1px rgba(0,0,0,.075); + -webkit-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; + transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; +} + +div.separator { + margin: 20px; +} + +div.separator div { + text-align: center; + line-height: 0; +} + +div.separator-line { + height: 1px !important; + width: 100%; + background: #ddd; + overflow: hidden; +} + +.dropdown-toggle { + color: #5b9bd1; +} + +.calendar-date { + color: #5b9bd1; +} + +.range_inputs { + color: #5b9bd1; +} + +.btn.dropdown-toggle,.btn-group .btn.dropdown-toggle,.btn:hover,.btn:disabled,.btn[disabled],.btn:focus,.btn:active,.btn.active + { + outline: none !important; + background-image: none !important; + filter: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + text-shadow: none; +} + +#skills-chart-breadcrumb { + margin-bottom: 10px +} + +/*increase daterangepicker's css*/ +input[name="daterange"] { + width: 220px; + line-height: 0; + height: 31px; + vertical-align: top; + margin-top: 2px; +} + +.daterangepicker .ranges { + width: 205px; +} + +.daterangepicker .ranges input { + width: 95px !important; +} + +td.details-control { + background: url('../image/details_open.png') no-repeat center center; + cursor: pointer; +} + +tr.shown td.details-control { + background: url('../image/details_close.png') no-repeat center center; +} + +.details table td { + word-wrap: break-word; + word-break: normal; + border-top: 1px solid #dddddd; +} + +.details table tr:first-child td { + border-top: none; +} + +.details table { + table-layout: fixed; + width: 100%; +} + +td.title { + width: 10%; +} + +table.dataTable tbody th,table.dataTable tbody td { + padding: 8px 10px; +} + +div.dataTables_length,div.dataTables_info { + display: inline; +} + +div.dataTables_paginate { + display: inline; + float: right; +} + +div.pagination-panel { + margin-right: 10px; +} + +input.pagination-panel-input { + width: 50px; +} + +.daterangepicker .daterangepicker_start_input label,.daterangepicker .daterangepicker_end_input label + { + color: #5b9bd1; +} + +.daterangepicker .ranges .input-mini { + color: #5b9bd1; +} + +.cancelBtn { + padding: 5px 10px 5px 10px; +} + +.btn:focus,.btn:active:focus,.btn.active:focus { + outline: 0; +} + +#right-menu { + position:absolute; + top:0; + right:0; + width:420px; + height:100%; + border-left:4px solid rgb(58,174,218); + background-color:rgba(255,255,255,.95); + padding-left:19px; + padding-right:15px; + padding-top:20px; + z-index:9999; + overflow-y: auto; +} + +#right-menu .btn{ + min-width: 30px !important; + letter-spacing :normal !important; +} + +.rigth { + float: right; +} +.right-button-pointer { + display:inline-block; + cursor:pointer +} +.floating-panel { + width:400px; + display:none +} + +title{height:25px;position:relative;top:20px;font-size:15px} + +#ict_nodes_table_div { + margin-top: 15px; +} + +#ict_nodes_table_div label { + font-weight: 100; +} + +#ict_nodes_table_div table { + width: 100% !important; +} + +.nodesDetail { + margin-top: 15px; +} + +.nodesDetail label { + font-weight: 100; +} + +.nodesDetail table { + width:100%; + table-layout: fixed; + word-wrap:break-word; +} + +.step { + text-align: center; + padding-top: 60px; +} + +.step div { + text-align: left; +} + +div.separator-sline { + height:28px ; + width:3px; +} + +.titlefont { + font-size:16px; +} + +.td_nodeId { + font-size: small; +} + +.iconBtn { + margin-left:15px; + min-width:30px; +} \ No newline at end of file diff --git a/catalog/src/main/webapp/catalog/css/topology.css b/catalog/src/main/webapp/catalog/css/topology.css new file mode 100644 index 00000000..ece70245 --- /dev/null +++ b/catalog/src/main/webapp/catalog/css/topology.css @@ -0,0 +1,393 @@ +/** + * Copyright 2016-2017 ZTE Corporation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +.container-fluid { + background-color: #fff; + padding: 0; +} + + +div[data-name="topo_zone"] { + background-color: #fff; + margin-top: 15px; + margin-bottom: 15px; +} + +p[tooltip], div[tooltip], td { + overflow: hidden; + text-overflow: ellipsis; +} + + + +.bpContainer { + position: relative; + display: block; + height: 100%; + padding: 40px; +} + + +.box { + position: relative; + display: inline-block; + min-width: 260px; + min-height: 170px; + border-width: 2px; + border-color: #136e9d; + border-style: solid; + background-color: #fff; + vertical-align: top; + padding: 2px; + border-radius: 6px; + margin: 0 60px 40px 0; +} + + +.box .piProgress, .line .piProgress { + position: absolute; + top: -12px; + left: -27px; + z-index: 1; +} +/* .piProgress { + position: relative; + display: inline-block; +} */ +.box .piProgress .circle, .line .piProgress .circle { + background: #136e9d; + border: 2px solid #d3dfe2; + width: 43px; + height: 43px; + top: 5.5px; + left: 5.5px; + border-radius: 21px; + font-size: 14px; +} +.box .piProgress .smallCircle { + background: #136e9d; + border: 2px solid #d3dfe2; + width: 30px; + height: 30px; + left: 11px; + border-radius: 21px; + font-size: 12px; + cursor: pointer; +} +.piProgress .circle, .piProgress .smallCircle { + position: absolute; + display: box; + box-pack: center; + box-align: center; + background-color: #46b8da; + color: #fff; + font-size: 100%; + z-index: 3; +} + +.bpContainer i.gs-node-icon { + position: absolute; + top: 10px; + left: 9px; + font-size: 23px; +} + +.bpContainer i.gs-cp-icon { + position: absolute; + top: 5px; + left: 5px; + font-size: 15px; +} + +.bpContainer .box .head, .bpContainer .line .head { + display: block; + background-color: #136e9d; + color: #fff; + padding: 2px 10px 3px 25px; + border-radius: 3px; + font-size: 20px; + height: 35px; +} + +.bpContainer .box .holder { + display: block; + padding: 5px 25px; + margin-top: 1px; + background-color: #fff; +} + +.bpContainer .box .nest { + min-height:130px; + cursor:pointer; +} + +.bpContainer .box .nest .plus { + position: absolute; + bottom:0; + right:5px; +} + +.bpContainer .box .boxHover~div { + background-color:#eaf1f7; +} + +.bpContainer .boxHover{ + cursor:pointer; +} + +.bpContainer .box .box .appHover{ + cursor:pointer; +} + + +.bpContainer .box .box .appHover p { + background-color:#eaf1f7; +} + +.bpContainer .box .box { + border-color: #3aaeda; + min-width: 170px; + margin: 15px; +} + +.bpContainer .box .box .head { + background-color: #3aaeda; +} + +.bpContainer .box .box .piProgress .circle { + background-color: #3aaeda; +} + +.bpContainer .box .box .holder { + text-align: center; + background-color: #fff; + min-height: 126px; +} + +.bpContainer .box .box .boxHover~div { + background-color:#eaf1f7; +} + +.bpContainer .app { + position: relative; + display: inline-block; + width: 47px; + height: 47px; + text-align: center; + border-radius: 3px; + margin: 10px 0; +} + +.bpContainer .app .piProgress { + top: 0; + left: -6px; +} + +.bpContainer .box .box .piProgress .circle{ + background-color: #3aaeda; +} + +.bpContainer .app p { + position: relative; + top: 50px; + margin: 0; + color: #555869; + text-align: center; + font-size: 15px; +} + + + .coordinates { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + pointer-events: none; +} + +.bpContainer .box .piProgress .circle>.badge, .bpContainer .line .piProgress .circle>.badge { + position:absolute; + display:inline-block; + z-index:1; + top:-8px; + left:20px; + min-width:20px; + border-radius:10px; + padding:3px!important; + vertical-align:baseline; + white-space:nowrap; + text-align:center; + background-color:#2f3334; + text-decoration:none; + font-size:14px; + color:#fff; + line-height:15px; + font-style:normal; + font-weight:400; + opacity:1 +} + +.header { + border-top:2px solid #4b6b8b; + background-color:#e8edf2; + height:40px; + padding:5px 20px +} + +.header .title { + display:inline-block; + font-size:18px; + color:#29AAEE; + line-height:28px +} + +.containList { + overflow-y:scroll; +} + +div.separator-icon { + text-align: center; + line-height: 0 +} + +.networksContainer{ + white-space:nowrap; + margin:40px 0 0 20px; + height:100% +} + +.networksContainer .network{ + position: relative; + display:inline-block; + text-align:center; + min-width:70px; + margin:0 10px 0 0 +} + +.networksContainer .subnet{ + display:inline-block; + text-align:center; + min-width:70px; + margin:0 10px 0 0 +} + +.networksContainer .subnet .line{ + position:relative; + display:inline-block; + vertical-align:top +} + +.networksContainer .name { + display:block; + width:100%; + background-color:#797B86; + color:#fff; + padding:2px 6px; + border-radius:5px; + text-align:center; + margin:0 0 10px; + overflow:hidden; + cursor: pointer; + text-overflow:ellipsis +} + +.networksContainer .network .name>.badge { + position:absolute; + display:inline-block; + z-index:1; + top:-9px; + right:-9px; + min-width:20px; + border-radius:10px; + padding:3px!important; + vertical-align:baseline; + white-space:nowrap; + text-align:center; + background-color:#2f3334; + text-decoration:none; + font-size:14px; + color:#fff; + line-height:15px; + font-style:normal; + font-weight:400; + opacity:1 +} + +.networksContainer .subnet .line .vlan{ + position:relative; + display:inline-block; + width:21px; + height:500px; + background-color:#149bdf; + color:#fff; + border-radius:5px; + vertical-align:top; + margin:0 10px 0 0; + cursor:pointer +} + +.networksContainer .subnet .vlan .badge { + position:absolute; + display:inline-block; + z-index:1; + top:-8px; + left:10px; + min-width:20px; + border-radius:10px; + padding:3px!important; + vertical-align:baseline; + white-space:nowrap; + text-align:center; + background-color:#2f3334; + text-decoration:none; + font-size:14px; + color:#fff; + line-height:15px; + font-style:normal; + font-weight:400; + opacity:1 +} + +.networksContainer .subnet .line .vlan:last-child{ + margin:0 +} + +.networksContainer .subnet .line .vlan>p{ + position:absolute; + display:block; + transform:rotate(90deg); + -ms-transform:rotate(90deg); + -webkit-transform:rotate(90deg); + white-space:nowrap; + color:#fff; + top:5px; + right:0; + left:1px +} + +.networksContainer .subnet .line .vlan>p.cidr{ + width:200px; + top:auto; + left:-90px; + bottom:85px; + color:#fff; + text-align:right +} + +.topoZone { + display: inline-block; + float: left; +} \ No newline at end of file diff --git a/catalog/src/main/webapp/catalog/css/virtualApplication.css b/catalog/src/main/webapp/catalog/css/virtualApplication.css new file mode 100644 index 00000000..c7223e4d --- /dev/null +++ b/catalog/src/main/webapp/catalog/css/virtualApplication.css @@ -0,0 +1,501 @@ +/** + * Copyright 2016-2017 ZTE Corporation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +body { + font-family: microsoft yahei !important; +} + +/* blue pill (inspired by iTunes) +*******************************************************************************/ +.redFont{ + color:red; +} +.blue { + + background-color: #5b9bd1; + border-radius: 20px; + color: #fff; + font-weight: bold; + padding: 8px 0; + text-align: center; + width: 100px; +} + +.blue:hover { + background-color: #e8f3fd; + color: #5b9bd1; +} + +.blue.selected { + border: 0; + background-color: #5b9bd1; + color: #fff; +} + +.blue.selected:hover { + border: 0; + background-color: #5b9bd1; + color: #fff; +} + +a { + text-decoration: none !important; +} + +p { + color: #444; + font-size: 14px; + font-weight: normal; + line-height: 21px; + margin: 0 0 12px 0; +} + +p.credit { + border-top: 1px solid #ccc; + font-size: 14px; + line-height: 140%; + margin: 36px 0 12px 0; + padding: 8px 0 0 0; + text-align: center; +} + +ul.column { + float: left; + list-style: none; + width: 675px; +} + +ul.column li { + background: #eee; + -webkit-border-radius: 5px; + border-radius: 5px; + -webkit-box-shadow: inset 0 1px 1px 0 #c7c7c7; + box-shadow: inset 0 1px 1px 0 #c7c7c7; + float: left; + margin: 10px 0 0 10px; + display: block; + height: 150px; + text-align: center; + width: 215px; +} + +/* Clear Floated Elements +------------------------------------------------------------------------------*/ +.column:after,.button-collection:after,.clearfix:after,div.project-info:after + { + clear: both; + content: ' '; + display: block; + font-size: 0; + line-height: 0; + visibility: hidden; + width: 0; + height: 0; +} + +.container-fluid { + background-color:white !important; + min-height:500px; +} + +.nav-tabs { + border: 0; +} + +.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus + { + border: 0; + border-top: 3px solid #F3565D; +} + +.nav-tabs>li>a { + border-radius: 0; +} + +.nav-tabs>li>a:hover { + background-color: #f1f3fa; + border: 1Px solid #f1f3fa; +} + +.c3 { + margin-top: 120px; +} + +.skills-chart-breadcrumb { + +} + +.blue:selected { + border: 0; + background-color: #5b9bd1; +} + +select { + border-width: 1px; + padding: 2px 1px; + border-radius: 4px; +} + +.input-sm { + padding: 4px 10px; +} + +.btn-block { + display: block; + width: 100%; + padding-left: 0; + padding-right: 0; +} + +/* Bootstrap buttons */ +.btn-default { + color: #5b9bd1; + background-color: #fff; + border-color: #ccc; +} + +.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active + { + color: #333; + background-color: #ededed; + border-color: #b3b3b3; +} + +.open .btn-default.dropdown-toggle { + color: #333; + background-color: #ededed; + border-color: #b3b3b3; +} + +.btn-default:active,.btn-default.active { + background-image: none; + background-color: #e0e0e0; + font-weight: bold; +} + +.btn-default:active:hover,.btn-default.active:hover { + background-color: #e6e6e6; +} + +.open .btn-default.dropdown-toggle { + background-image: none; +} + +.btn-default.disabled,.btn-default.disabled:hover,.btn-default.disabled:focus,.btn-default.disabled:active,.btn-default.disabled.active,.btn-default[disabled],.btn-default[disabled]:hover,.btn-default[disabled]:focus,.btn-default[disabled]:active,.btn-default[disabled].active,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default:hover,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default.active + { + background-color: #fff; + border-color: #ccc; +} + +.btn-default .badge { + color: #fff; + background-color: #333; +} + +.btn-default>i { + color: #aaa; +} + +.btn-default>i[class^="icon-"],.btn-default>i[class*="icon-"] { + color: #8c8c8c; +} + +div[data-name="tab_zone"] div { + background-color: #f1f3fa; + padding: 0px; +} + +div[data-name="cond_zone"] div { + background-color: #fff; + margin-top: 15px; + margin-bottom: 15px; +} + +div[data-name="res-conds-zone"] { + display: inline; +} + +div[data-name="res-conds-zone"] select,div[data-name="res-conds-zone"] span + { + /**height:33px;*/ + margin-left: 15px; + color: #5b9bd1; + border-color: #ccc; + font-weight: bold; +} + +.input{ + width:250px; + height: 34px; + padding: 6px 12px; + font-size: 14px; + line-height: 1.42857143; + color: #555; + background-color: #fff; + background-image: none; + border: 1px solid #ccc; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075); + box-shadow: inset 0 1px 1px rgba(0,0,0,.075); + -webkit-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; + transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; +} + +div.separator { + margin: 20px; +} + +div.separator div { + text-align: center; + line-height: 0; +} + +div.separator-line { + height: 1px !important; + width: 100%; + background: #ddd; + overflow: hidden; +} + +.dropdown-toggle { + color: #5b9bd1; +} + +.calendar-date { + color: #5b9bd1; +} + +.range_inputs { + color: #5b9bd1; +} + +.btn.dropdown-toggle,.btn-group .btn.dropdown-toggle,.btn:hover,.btn:disabled,.btn[disabled],.btn:focus,.btn:active,.btn.active + { + outline: none !important; + background-image: none !important; + filter: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + text-shadow: none; +} + +#skills-chart-breadcrumb { + margin-bottom: 10px +} + +/*increase daterangepicker's css*/ +input[name="daterange"] { + width: 220px; + line-height: 0; + height: 31px; + vertical-align: top; + margin-top: 2px; +} + +.daterangepicker .ranges { + width: 205px; +} + +.daterangepicker .ranges input { + width: 95px !important; +} + +td.details-control { + background: url('../image/details_open.png') no-repeat center center; + cursor: pointer; +} + +tr.shown td.details-control { + background: url('../image/details_close.png') no-repeat center center; +} + +.details table td { + word-wrap: break-word; + word-break: normal; + border-top: 1px solid #dddddd; +} + +.details table tr:first-child td { + border-top: none; +} + +.details table { + table-layout: fixed; + width: 100%; +} + +td.title { + width: 10%; +} + +table.dataTable tbody th,table.dataTable tbody td { + padding: 8px 10px; +} + +div.dataTables_length,div.dataTables_info { + display: inline; +} + +div.dataTables_paginate { + display: inline; + float: right; +} + +div.pagination-panel { + margin-right: 10px; +} + +input.pagination-panel-input { + width: 50px; +} + +#ict_virtualApplication_table_div { + margin-top: 15px; +} + +#ict_virtualApplication_table_div label { + font-weight: 100; +} + +.daterangepicker .daterangepicker_start_input label,.daterangepicker .daterangepicker_end_input label + { + color: #5b9bd1; +} + +.daterangepicker .ranges .input-mini { + color: #5b9bd1; +} + +.cancelBtn { + padding: 5px 10px 5px 10px; +} + +.btn:focus,.btn:active:focus,.btn.active:focus { + outline: 0; +} + +#ict_virtualApplication_table_div table { + width: 100% !important; +} + +.uploadBtn { + margin-top:10px; +} + +.btn-operation { + min-width: 30px; + line-height: 1; +} + +tr select { + width: 80px; +} + +.span-action { + float:left; +} + +.btn i { + padding-right: 0 !important; +} + +.vmapp-margin { + margin-bottom: 20px; +} + +.vmapp-form-title { + padding:8px; + margin-bottom:5px; + margin-left:20px; + border-left: 2px solid #5b9bd1; + color:#1A78CA; +} + +.input-group .input-control { + height : 34px !important; +} + +.input-group .input-control[disabled] { + cursor: default; + background-color: #fff; +} + +.input-group .input-group-btn .btn-default { + color: #333; + font-size: 14px; + min-width: 34px; +} + +.modal-scrollable { + overflow: auto !important; +} + +td.icheckbox { + text-align: center; +} + +td .icheckbox_square-aero { + margin-right: 0; +} + +.hpanel { + background-color: none; + border: none; + box-shadow: none; + margin-bottom: 5px; +} + +.hpanel .panel-body { + border: 1px solid #e4e5e7; + border-radius: 2px; + position: relative; +} + +.hpanel > .panel-footer { + color: inherit; + border: 1px solid #e4e5e7; + border-top: none; + font-size: 90%; + background: #f7f9fa; + height:40px; + padding: 5px 10px; +} + +.hpanel > .panel-footer .pull-right a{ + margin-left: 5px; +} + +.hpanel > .panel-footer .pull-right .btn{ + min-width: 30px !important; +} + +.hpanel_show { + background-color: #f7f9fa; +} + +.hpanel .panel-info { + overflow:hidden; + white-space:nowrap; + text-overflow:ellipsis; +} + +.tipArea { + border-bottom: 1px solid #d4d4d4; + width: 95%; + margin-bottom: 15px; + margin-left: 15px; + padding-bottom: 5px; +} \ No newline at end of file diff --git a/catalog/src/main/webapp/catalog/css/vnfm.css b/catalog/src/main/webapp/catalog/css/vnfm.css new file mode 100644 index 00000000..abec5936 --- /dev/null +++ b/catalog/src/main/webapp/catalog/css/vnfm.css @@ -0,0 +1,491 @@ +/** + * Copyright 2016-2017 ZTE Corporation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +body { + font-family: microsoft yahei !important; +} + +/* blue pill (inspired by iTunes) +*******************************************************************************/ + +.grey { + background-color: #e5e5e5; + color: #333; +} + +.blue { + + background-color: #5b9bd1; + border-radius: 20px; + color: #fff; + font-weight: bold; + padding: 8px 0; + text-align: center; + width: 100px; +} + +.blue:hover { + background-color: #e8f3fd; + color: #5b9bd1; +} + +.blue.selected { + border: 0; + background-color: #5b9bd1; + color: #fff; +} + +.blue.selected:hover { + border: 0; + background-color: #5b9bd1; + color: #fff; +} + +p { + color: #444; + font-size: 14px; + font-weight: normal; + line-height: 21px; + margin: 0 0 12px 0; +} + +p.credit { + border-top: 1px solid #ccc; + font-size: 14px; + line-height: 140%; + margin: 36px 0 12px 0; + padding: 8px 0 0 0; + text-align: center; +} + +ul.column { + float: left; + list-style: none; + width: 675px; +} + +ul.column li { + background: #eee; + -webkit-border-radius: 5px; + border-radius: 5px; + -webkit-box-shadow: inset 0 1px 1px 0 #c7c7c7; + box-shadow: inset 0 1px 1px 0 #c7c7c7; + float: left; + margin: 10px 0 0 10px; + display: block; + height: 150px; + text-align: center; + width: 215px; +} + +/* Clear Floated Elements +------------------------------------------------------------------------------*/ +.column:after,.button-collection:after,.clearfix:after,div.project-info:after + { + clear: both; + content: ' '; + display: block; + font-size: 0; + line-height: 0; + visibility: hidden; + width: 0; + height: 0; +} + +.container-fluid { + background-color:white !important; + min-height:500px; +} + +.nav-tabs { + border: 0; +} + +.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus + { + border: 0; + border-top: 3px solid #F3565D; +} + +.nav-tabs>li>a { + border-radius: 0; +} + +.nav-tabs>li>a:hover { + background-color: #f1f3fa; + border: 1Px solid #f1f3fa; +} + +.c3 { + margin-top: 120px; +} + +.skills-chart-breadcrumb { + +} + +.blue:selected { + border: 0; + background-color: #5b9bd1; +} + +.btn { + /* border-width: 0; */ + /* padding: 7px 14px; */ + /* font-size: 14px; */ + /* outline: none !important; */ + /* background-image: none !important; */ + /* filter: none; */ + /* -webkit-box-shadow: none; */ + -moz-box-shadow: none; + /* box-shadow: none; */ + /* text-shadow: none; */ +} + +select { + border-width: 1px; + padding: 4px 1px; + border-radius: 4px; +} + +.input-sm { + padding: 4px 10px; +} + +.btn-block { + display: block; + width: 100%; + padding-left: 0; + padding-right: 0; +} + +/* Bootstrap buttons */ + + +.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active + { + color: #333; + background-color: #ededed; + border-color: #b3b3b3; +} + +.open .btn-default.dropdown-toggle { + color: #333; + background-color: #ededed; + border-color: #b3b3b3; +} + +.btn-default:active,.btn-default.active { + background-image: none; + background-color: #e0e0e0; + font-weight: bold; +} + +.btn-default:active:hover,.btn-default.active:hover { + background-color: #e6e6e6; +} + +.open .btn-default.dropdown-toggle { + background-image: none; +} + +.btn-default.disabled,.btn-default.disabled:hover,.btn-default.disabled:focus,.btn-default.disabled:active,.btn-default.disabled.active,.btn-default[disabled],.btn-default[disabled]:hover,.btn-default[disabled]:focus,.btn-default[disabled]:active,.btn-default[disabled].active,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default:hover,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default.active + { + background-color: #fff; + border-color: #ccc; +} + +.btn-default .badge { + color: #fff; + background-color: #333; +} + + +.btn-default>i[class^="icon-"],.btn-default>i[class*="icon-"] { + color: #8c8c8c; +} + +div[data-name="tab_zone"] div { + background-color: #f1f3fa; + padding: 0px; +} + +div[data-name="cond_zone"] div { + background-color: #fff; + margin-top: 15px; + margin-bottom: 15px; +} + +div[data-name="res-conds-zone"] { + display: inline; +} + +div[data-name="res-conds-zone"] select,div[data-name="res-conds-zone"] span + { + /**height:33px;*/ + margin-left: 15px; + color: #5b9bd1; + border-color: #ccc; + font-weight: bold; +} + +.input{ + width:250px; + height: 34px; + padding: 6px 12px; + font-size: 14px; + line-height: 1.42857143; + color: #555; + background-color: #fff; + background-image: none; + border: 1px solid #ccc; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075); + box-shadow: inset 0 1px 1px rgba(0,0,0,.075); + -webkit-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; + transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; +} + +div.separator { + margin: 20px; +} + +div.separator div { + text-align: center; + line-height: 0; +} + +div.separator-line { + height: 1px !important; + width: 100%; + background: #ddd; + overflow: hidden; +} + +.dropdown-toggle { + color: #5b9bd1; +} + +.calendar-date { + color: #5b9bd1; +} + +.range_inputs { + color: #5b9bd1; +} + +.btn.dropdown-toggle,.btn-group .btn.dropdown-toggle,.btn:hover,.btn:disabled,.btn[disabled],.btn:focus,.btn:active,.btn.active + { + outline: none !important; + background-image: none !important; + filter: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + text-shadow: none; +} + +#skills-chart-breadcrumb { + margin-bottom: 10px +} + +/*increase daterangepicker's css*/ +input[name="daterange"] { + width: 220px; + line-height: 0; + height: 31px; + vertical-align: top; + margin-top: 2px; +} + +.daterangepicker .ranges { + width: 205px; +} + +.daterangepicker .ranges input { + width: 95px !important; +} + +td.details-control { + background: url('../image/details_open.png') no-repeat center center; + cursor: pointer; +} + +tr.shown td.details-control { + background: url('../image/details_close.png') no-repeat center center; +} + +.details table td { + word-wrap: break-word; + word-break: normal; + border-top: 1px solid #dddddd; +} + +.details table tr:first-child td { + border-top: none; +} + +.details table { + table-layout: fixed; + width: 100%; +} + +td.title { + width: 10%; +} + +table.dataTable tbody th,table.dataTable tbody td { + padding: 8px 10px; +} + +div.dataTables_length,div.dataTables_info { + display: inline; +} + +div.dataTables_paginate { + display: inline; + float: right; +} + +div.pagination-panel { + margin-right: 10px; +} + +input.pagination-panel-input { + width: 50px; +} + +#ict_res_table_div { + margin-top: 15px; +} + +#ict_res_table_div label { + font-weight: 100; +} + +.daterangepicker .daterangepicker_start_input label,.daterangepicker .daterangepicker_end_input label + { + color: #5b9bd1; +} + +.daterangepicker .ranges .input-mini { + color: #5b9bd1; +} + +.cancelBtn { + padding: 5px 10px 5px 10px; +} + +.btn:focus,.btn:active:focus,.btn.active:focus { + outline: 0; +} + +#ict_res_table_div table { + width: 100% !important; +} + +.control-label .required { + color: #e02222; + font-size: 12px; + padding-left: 2px; +} + +#ict_vim_table tbody tr{ + cursor:pointer; +} + + +.animated-panel { + -webkit-animation-duration: .5s; + animation-duration: .5s; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; +} + +.hpanel { + background-color: none; + border: none; + box-shadow: none; + margin-bottom: 25px; + +} + +.hpanel .panel-body { + border: 1px solid #e4e5e7; + border-radius: 2px; + padding: 20px; + position: relative; +} +.h-200 { + min-height: 220px; +} + +.m-t-xl { + margin-top: 40px; +} + +.m-t-xl div { + margin-bottom: 15px; +} + +.text-success { + color: #0d638f; +} +.hpanel > .panel-footer { + color: inherit; + border: 1px solid #e4e5e7; + border-top: none; + font-size: 90%; + background: #f7f9fa; + height:40px; + padding: 5px 15px; +} +.color_cloud{ + color:#ccc; +} +.stats-title{ + +} + +h3{ + margin-top: 10px; + margin-bottom: 40px; + font-weight: 200; +} + +.blue-font{ + color:#428bca; +} + +.hpanel > .panel-footer .pull-right a{ + margin-left: 5px; +} + +.hpanel > .panel-footer .pull-right .btn{ + min-width: 30px !important; +} + +.font-bold { + font-weight: 600; + margin-bottom: 15px; +} + +.hpanel_show{ + background-color: #f7f9fa; +} + +.vnfm-padding { + padding-left: 0; +} \ No newline at end of file diff --git a/catalog/src/main/webapp/catalog/i18n/nfv-nso-iui-i18n-en-US.properties b/catalog/src/main/webapp/catalog/i18n/nfv-nso-iui-i18n-en-US.properties new file mode 100644 index 00000000..78aca883 --- /dev/null +++ b/catalog/src/main/webapp/catalog/i18n/nfv-nso-iui-i18n-en-US.properties @@ -0,0 +1,156 @@ +# +# Copyright 2016-2017 ZTE Corporation. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +//table +nfv-nso-iui-table-sLengthMenu=View _MENU_ records +nfv-nso-iui-table-sZeroRecords=No matching records found +nfv-nso-iui-table-sInfo=Found total _TOTAL_ records +nfv-nso-iui-table-sInfoEmpty=No records found to show +nfv-nso-iui-table-sGroupActions=_TOTAL_ records selected: +nfv-nso-iui-table-sAjaxRequestGeneralError=Could not complete request. Please check your internet connection. +nfv-nso-iui-table-sEmptyTable=No data available in table +nfv-nso-iui-table-sPrevious=Prev +nfv-nso-iui-table-sNext=Next +nfv-nso-iui-table-sPage=Page +nfv-nso-iui-table-sPageOf=of +nfv-nso-iui-table-sProcess=Processing... + +//common +nfv-nso-iui-common-tip=Tip: + +//package table colums +nfv-package-iui-title=Package +nfv-package-iui-field-sn=Index +nfv-package-iui-field-name=Name +nfv-package-iui-field-type=Type +nfv-package-iui-field-usagestate=Usage State +nfv-package-iui-field-processstate=Process State +nfv-package-iui-field-operationalstate=Operational State +nfv-package-iui-field-onboardstate=OnBoard State +nfv-package-iui-field-deletionpending=Deletion Pending +nfv-package-iui-field-operation=Operation + +nfv-package-iui-field-detail-name=Name +nfv-package-iui-field-detail-type=Type +nfv-package-iui-field-detail-usagestate=Usage State +nfv-package-iui-field-detail-processstate=Process State +nfv-package-iui-field-detail-operationalstate=Operational State +nfv-package-iui-field-detail-onboardstate=Onboard State +nfv-package-iui-field-detail-deletionpending=Deletion Pending +nfv-package-iui-field-detail-operation=Operation +nfv-package-iui-field-detail-size=Size +nfv-package-iui-field-detail-csarid=ID +nfv-package-iui-field-detail-version=Version +nfv-package-iui-field-detail-provider=Provider +nfv-package-iui-field-detail-downloaduri=Download Uri +nfv-package-iui-field-detail-createtime=Create Time +nfv-package-iui-field-detail-modifytime=Modify Time +nfv-package-iui-field-detail-format=Format + +nfv-package-iui-status-tip=Taps to Activate +nfv-package-iui-status-active=Activate +nfv-package-iui-status-activating=Activating +nfv-package-iui-status-inactive=Nonactivate +nfv-package-iui-status-deleting =Deleting +nfv-package-iui-status-deletefail = Delete Fail +nfv-package-iui-status-onBoarding = Onboarding + +nfv-package-iui_packageview_packageDetail=Package Detail +nfv-package-iui_packageview_btn_close=Close +nfv-package-iui_packageview_key=Key +nfv-package-iui_packageview_value=Value +nfv-package-iui-selectvim-title=Select VIM Onboard Image +nfv-package-iui-btn-cancel=Cancel +nfv-package-iui-btn-ok=Ok + +nfv-package-iui-message-upload-success=Csar package imported successfully. +nfv-package-iui-message-upload-fail=Csar package imported failed. +nfv-package-iui-message-delete-confirm=Do you want to delete the current package? +nfv-package-iui-message-delete-success=Csar package deleted successfully. +nfv-package-iui-message-upload-csar-exist=There is a package in the same name, they may be the same package, whether still upload this package? +nfv-package-iui-message-upload-csar-deletionpending=This package is referenced in an instance. whether to re upload? +nfv-package-iui-message-onBoarded = Onboarding operation successfully. +nfv-package-iui-message-onBoard-error = Onboarding error. +nfv-package-iui-message-delete-error = Package delete error. +nfv-package-iui-message-select-vim-error = Can not select more than one VIM to be test environment. +nfv-package-iui-onboard-dialog-vimname = VIM Name +nfv-package-iui-product-env = Product Environment +nfv-package-iui-test-env = Test Environment +nfv-package-iui-http-delete-error = Delete package from HTTP server failed! +nfv-package-iui-template-delete-error = Delete template data failed! +nfv-package-iui-package-delete-error = Delete package data failed! + +nfv-package-iui-drop-zone-title=Drag & drop files here … +nfv-package-iui-drop-zone-selectBtn=Browse +nfv-package-iui-drop-zone-removeBtn=Remove +nfv-package-iui-drop-zone-uploadBtn=Upload + +nfv-template-topo-iui-title=Topology +nfv-template-nodes-iui-title=Nodes + +//template table colums +nfv-template-iui-title=Service Template +nfv-template-iui-field-order=Order +nfv-template-iui-field-templatename=Name +nfv-template-iui-field-templatename-topo=Name(Topo) +nfv-template-iui-field-templatename-nodes=Name(Nodes) +nfv-template-iui-field-producttype=Type +nfv-template-iui-field-vendor=Vendor +nfv-template-iui-field-version=Version +nfv-template-iui-field-inputs=Inputs +nfv-template-iui-field-outputs=Outputs +nfv-template-iui-field-operations=Operations +nfv-template-iui-field-download-uri=Download Uri +nfv-template-iui-field-type=Node Type + +//template detail table colums +nfv-templateDetail-iui-index=Index +nfv-templateDetail-iui-title=Node Template +nfv-templateDetail-iui-field-nodeId=ID +nfv-templateDetail-iui-field-nodetypename=Name +nfv-templateDetail-iui-field-type=Type +nfv-templateDetail-iui-field-containedin=Contained In +nfv-templateDetail-iui-field-deployedon=Deployed On +nfv-templateDetail-iui-field-connectedto=Conected To +nfv-templateDetail-iui-field-virtuallinksto=Virtual Links To + +nfv-templateDetail-nodesTab-iui-tab-general=General +nfv-templateDetail-nodesTab-iui-tab-properties=Properties +nfv-templateDetail-nodesTab-iui-tab-relationShips=RelationShips +nfv-templateDetail-nodesTab-iui-field-key=Key +nfv-templateDetail-nodesTab-iui-field-value=Value +nfv-templateDetail-nodesTab-iui-field-property=Property +nfv-templateDetail-nodesTab-iui-field-sourceNodeName=Source Node +nfv-templateDetail-nodesTab-iui-field-targetNodeName=Target Node +nfv-templateDetail-nodesTab-iui-field-type=Type +nfv-templateDetail-nodesTab-iui-btn-close=Close +nfv-templateDetail-nodesTab-iui-title-nodeDetail=Node Detail + +nfv-templateDetail-executionTab-iui-field-currentStepName=Name +nfv-templateDetail-executionTab-iui-field-currentStepStatus=Status +nfv-templateDetail-executionTab-iui-field-currentStepDesc=Description +nfv-templateDetail-executionTab-iui-field-executionTime=Execution Time + +//topo +nfv-topology-iui-vnf-tip=Click to view the nested topology +nfv-topology-iui-btn-return-tip=Return +nfv-topology-iui-message-error=Query Topology Information failed. + +nfv-software-iui-action-delete=Delete +nfv-software-iui-action-onboard=Onboard + +com_zte_openo_umc_monitor_monitorList_total=total +com_zte_openo_umc_monitor_monitorList_records=records \ No newline at end of file diff --git a/catalog/src/main/webapp/catalog/i18n/nfv-nso-iui-i18n-zh-CN.properties b/catalog/src/main/webapp/catalog/i18n/nfv-nso-iui-i18n-zh-CN.properties new file mode 100644 index 00000000..738fbef5 --- /dev/null +++ b/catalog/src/main/webapp/catalog/i18n/nfv-nso-iui-i18n-zh-CN.properties @@ -0,0 +1,155 @@ +# +# Copyright 2016-2017 ZTE Corporation. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +//table +nfv-nso-iui-table-sLengthMenu=每页 _MENU_ 条结果 +nfv-nso-iui-table-sZeroRecords=没有匹配结果 +nfv-nso-iui-table-sInfo=总共找到 _TOTAL_ 条结果 +nfv-nso-iui-table-sInfoEmpty=共 0 项 +nfv-nso-iui-table-sGroupActions=_TOTAL_ 条结果被选择: +nfv-nso-iui-table-sAjaxRequestGeneralError=不能完成请求,请检查您的网络连接情况。 +nfv-nso-iui-table-sEmptyTable=表中数据为空 +nfv-nso-iui-table-sPrevious=前页 +nfv-nso-iui-table-sNext=下页 +nfv-nso-iui-table-sPage=第 +nfv-nso-iui-table-sPageOf=页,总页数: +nfv-nso-iui-table-sProcess=处理中... + +//common +nfv-nso-iui-common-tip=提示: + +//package table colums +nfv-package-iui-title=包管理 +nfv-package-iui-field-sn=序号 +nfv-package-iui-field-name=名称 +nfv-package-iui-field-type=类型 +nfv-package-iui-field-usagestate=使用状态 +nfv-package-iui-field-processstate=中间状态 +nfv-package-iui-field-operationalstate=操作状态 +nfv-package-iui-field-onboardstate=上载状态 +nfv-package-iui-field-deletionpending=待删除 +nfv-package-iui-field-operation=操作 + +//package detail message +nfv-package-iui-field-detail-name=名称 +nfv-package-iui-field-detail-type=类型 +nfv-package-iui-field-detail-usagestate=使用状态 +nfv-package-iui-field-detail-processstate=中间状态 +nfv-package-iui-field-detail-operationalstate=操作状态 +nfv-package-iui-field-detail-onboardstate=上载状态 +nfv-package-iui-field-detail-deletionpending=待删除状态 +nfv-package-iui-field-detail-operation=操作 +nfv-package-iui-field-detail-size=大小 +nfv-package-iui-field-detail-csarid=ID +nfv-package-iui-field-detail-version=版本 +nfv-package-iui-field-detail-provider=提供商 +nfv-package-iui-field-detail-downloaduri=下载Uri +nfv-package-iui-field-detail-createtime=创建时间 +nfv-package-iui-field-detail-modifytime=更改时间 +nfv-package-iui-field-detail-format=格式 + +nfv-package-iui-status-tip=点击激活 +nfv-package-iui-status-active=激活 +nfv-package-iui-status-activating=激活中 +nfv-package-iui-status-inactive=未激活 +nfv-package-iui-status-deleting=删除中 +nfv-package-iui-status-deletefail=删除失败 +nfv-package-iui-status-onBoarding=正在上载 + +nfv-package-iui_packageview_packageDetail=包详情 +nfv-package-iui_packageview_btn_close=关闭 +nfv-package-iui_packageview_key=关键字 +nfv-package-iui_packageview_value=值 +nfv-package-iui-selectvim-title=选择VIM上载镜像 +nfv-package-iui-btn-cancel=取消 +nfv-package-iui-btn-ok=确认 + +nfv-package-iui-message-upload-success=包导入成功。 +nfv-package-iui-message-upload-fail=包导入失败。 +nfv-package-iui-message-delete-confirm=确定要删除当前包? +nfv-package-iui-message-delete-success=包删除成功。 +nfv-package-iui-message-upload-csar-exist=存在同名包,是否继续上传? +nfv-package-iui-message-upload-csar-deletionpending=实例中引用了此包,是否重新上传? +nfv-package-iui-message-onBoarded = 上载操作成功。 +nfv-package-iui-message-onBoard-error = 上载失败。 +nfv-package-iui-message-delete-error = 包删除失败。 +nfv-package-iui-message-select-vim-error = 最多只能选择一个VIM做为测试环境 +nfv-package-iui-onboard-dialog-vimname = VIM名称 +nfv-package-iui-product-env = 生产环境 +nfv-package-iui-test-env = 测试环境 +nfv-package-iui-http-delete-error = 从HTTP服务器上删除包失败! +nfv-package-iui-template-delete-error = 删除模板数据失败! +nfv-package-iui-package-delete-error = 删除包数据失败! + + +nfv-package-iui-drop-zone-title=拖拽文件到这里 … +nfv-package-iui-drop-zone-selectBtn=选择 +nfv-package-iui-drop-zone-removeBtn=移除 +nfv-package-iui-drop-zone-uploadBtn=上传 + +nfv-template-topo-iui-title=拓扑 +nfv-template-nodes-iui-title=节点 + +//template table colums +nfv-template-iui-title=模板管理 +nfv-template-iui-field-order=序号 +nfv-template-iui-field-templatename=名称 +nfv-template-iui-field-templatename-topo=名称(拓扑) +nfv-template-iui-field-templatename-nodes=名称(节点) +nfv-template-iui-field-producttype=类型 +nfv-template-iui-field-vendor=厂商 +nfv-template-iui-field-version=版本 +nfv-template-iui-field-inputs=输入 +nfv-template-iui-field-outputs=输出 +nfv-template-iui-field-operations=操作 +nfv-template-iui-field-download-uri=下载Uri +nfv-template-iui-field-type=节点类型 + +//template detail table colums +nfv-templateDetail-iui-index=序号 +nfv-templateDetail-iui-title=节点模板 +nfv-templateDetail-iui-field-nodeId=ID +nfv-templateDetail-iui-field-nodetypename=名称 +nfv-templateDetail-iui-field-type=类型 +nfv-templateDetail-iui-field-containedin=归属 +nfv-templateDetail-iui-field-deployedon=部署 +nfv-templateDetail-iui-field-connectedto=业务连接 +nfv-templateDetail-iui-field-virtuallinksto=网络连接 + +nfv-templateDetail-nodesTab-iui-tab-general=概况 +nfv-templateDetail-nodesTab-iui-tab-properties=属性 +nfv-templateDetail-nodesTab-iui-tab-relationShips=关系 +nfv-templateDetail-nodesTab-iui-field-key=关键字 +nfv-templateDetail-nodesTab-iui-field-value=值 +nfv-templateDetail-nodesTab-iui-field-property=属性 +nfv-templateDetail-nodesTab-iui-field-sourceNodeName=源节点 +nfv-templateDetail-nodesTab-iui-field-targetNodeName=目标节点 +nfv-templateDetail-nodesTab-iui-field-type=类型 +nfv-templateDetail-nodesTab-iui-btn-close=关闭 +nfv-templateDetail-nodesTab-iui-title-nodeDetail=节点详情 + +nfv-templateDetail-executionTab-iui-field-currentStepName=名称 +nfv-templateDetail-executionTab-iui-field-currentStepStatus=状态 +nfv-templateDetail-executionTab-iui-field-currentStepDesc=描述 +nfv-templateDetail-executionTab-iui-field-executionTime=执行时间 + +//topo +nfv-topology-iui-vnf-tip=点击查看嵌套拓扑图 +nfv-topology-iui-btn-return-tip=返回 +nfv-topology-iui-message-error=查询拓扑图模板信息失败 + +nfv-software-iui-action-delete=删除 +nfv-software-iui-action-onboard=Onboard diff --git a/catalog/src/main/webapp/catalog/image/License.txt b/catalog/src/main/webapp/catalog/image/License.txt new file mode 100644 index 00000000..8e698ecb --- /dev/null +++ b/catalog/src/main/webapp/catalog/image/License.txt @@ -0,0 +1,362 @@ +THIS LICENSE FILE CONTAINS THE LICENSE APPLICABLE DEPENDING ON THE TYPE OF CONTRIBUTIONS. + +APACHE LICENSE 2 IS APPLICABLE FOR SOURCE CODE, CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL FOR DOCUMENTATION + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + + +Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. + +"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. + +2. Grant of Copyright License. + +Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. + +Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. + +You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: + +You must give any other recipients of the Work or Derivative Works a copy of this License; and You must cause any modified files to carry prominent notices stating that You changed the files; and You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. + +5. Submission of Contributions. + +Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. + +6. Trademarks. + +This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. + +Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. + +In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. + +While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +Attribution 4.0 International + +https://creativecommons.org/licenses/by/4.0/legalcode + +Creative Commons Corporation ("Creative Commons") is not a law firm and does not provide legal services or legal advice. Distribution of Creative Commons public licenses does not create a lawyer-client or other relationship. Creative Commons makes its licenses and related information available on an "as-is" basis. Creative Commons gives no warranties regarding its licenses, any material licensed under their terms and conditions, or any related information. Creative Commons disclaims all liability for damages resulting from their use to the fullest extent possible. + +Using Creative Commons Public Licenses + +Creative Commons public licenses provide a standard set of terms and conditions that creators and other rights holders may use to share original works of authorship and other material subject to copyright and certain other rights specified in the public license below. The following considerations are for informational purposes only, are not exhaustive, and do not form part of our licenses. + + Considerations for licensors: Our public licenses are + intended for use by those authorized to give the public + permission to use material in ways otherwise restricted by + copyright and certain other rights. Our licenses are + irrevocable. Licensors should read and understand the terms + and conditions of the license they choose before applying it. + Licensors should also secure all rights necessary before + applying our licenses so that the public can reuse the + material as expected. Licensors should clearly mark any + material not subject to the license. This includes other CC- + licensed material, or material used under an exception or + limitation to copyright. More considerations for licensors: + wiki.creativecommons.org/Considerations_for_licensors + Considerations for the public: By using one of our public + licenses, a licensor grants the public permission to use the + licensed material under specified terms and conditions. If + the licensor's permission is not necessary for any reason--for + example, because of any applicable exception or limitation to + copyright--then that use is not regulated by the license. Our + licenses grant only permissions under copyright and certain + other rights that a licensor has authority to grant. Use of + the licensed material may still be restricted for other + reasons, including because others have copyright or other + rights in the material. A licensor may make special requests, + such as asking that all changes be marked or described. + Although not required by our licenses, you are encouraged to + respect those requests where reasonable. More_considerations + for the public: + wiki.creativecommons.org/Considerations_for_licensees +Creative Commons Attribution 4.0 International Public License + +By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions. + + +Section 1 -- Definitions. + + a. Adapted Material means material subject to Copyright and Similar + Rights that is derived from or based upon the Licensed Material + and in which the Licensed Material is translated, altered, + arranged, transformed, or otherwise modified in a manner requiring + permission under the Copyright and Similar Rights held by the + Licensor. For purposes of this Public License, where the Licensed + Material is a musical work, performance, or sound recording, + Adapted Material is always produced where the Licensed Material is + synched in timed relation with a moving image. + b. Adapter's License means the license You apply to Your Copyright + and Similar Rights in Your contributions to Adapted Material in + accordance with the terms and conditions of this Public License. + c. Copyright and Similar Rights means copyright and/or similar rights + closely related to copyright including, without limitation, + performance, broadcast, sound recording, and Sui Generis Database + Rights, without regard to how the rights are labeled or + categorized. For purposes of this Public License, the rights + specified in Section 2(b)(1)-(2) are not Copyright and Similar + Rights. + d. Effective Technological Measures means those measures that, in the + absence of proper authority, may not be circumvented under laws + fulfilling obligations under Article 11 of the WIPO Copyright + Treaty adopted on December 20, 1996, and/or similar international + agreements. + e. Exceptions and Limitations means fair use, fair dealing, and/or + any other exception or limitation to Copyright and Similar Rights + that applies to Your use of the Licensed Material. + f. Licensed Material means the artistic or literary work, database, + or other material to which the Licensor applied this Public + License. + g. Licensed Rights means the rights granted to You subject to the + terms and conditions of this Public License, which are limited to + all Copyright and Similar Rights that apply to Your use of the + Licensed Material and that the Licensor has authority to license. + h. Licensor means the individual(s) or entity(ies) granting rights + under this Public License. + i. Share means to provide material to the public by any means or + process that requires permission under the Licensed Rights, such + as reproduction, public display, public performance, distribution, + dissemination, communication, or importation, and to make material + available to the public including in ways that members of the + public may access the material from a place and at a time + individually chosen by them. + j. Sui Generis Database Rights means rights other than copyright + resulting from Directive 96/9/EC of the European Parliament and of + the Council of 11 March 1996 on the legal protection of databases, + as amended and/or succeeded, as well as other essentially + equivalent rights anywhere in the world. + k. You means the individual or entity exercising the Licensed Rights + under this Public License. Your has a corresponding meaning. + +Section 2 -- Scope. + + a. License grant. + 1. Subject to the terms and conditions of this Public License, + the Licensor hereby grants You a worldwide, royalty-free, + non-sublicensable, non-exclusive, irrevocable license to + exercise the Licensed Rights in the Licensed Material to: + a. reproduce and Share the Licensed Material, in whole or + in part; and + b. produce, reproduce, and Share Adapted Material. + 2. Exceptions and Limitations. For the avoidance of doubt, where + Exceptions and Limitations apply to Your use, this Public + License does not apply, and You do not need to comply with + its terms and conditions. + 3. Term. The term of this Public License is specified in Section + 6(a). + 4. Media and formats; technical modifications allowed. The + Licensor authorizes You to exercise the Licensed Rights in + all media and formats whether now known or hereafter created, + and to make technical modifications necessary to do so. The + Licensor waives and/or agrees not to assert any right or + authority to forbid You from making technical modifications + necessary to exercise the Licensed Rights, including + technical modifications necessary to circumvent Effective + Technological Measures. For purposes of this Public License, + simply making modifications authorized by this Section 2(a) + (4) never produces Adapted Material. + 5. Downstream recipients. + a. Offer from the Licensor -- Licensed Material. Every + recipient of the Licensed Material automatically + receives an offer from the Licensor to exercise the + Licensed Rights under the terms and conditions of this + Public License. + b. No downstream restrictions. You may not offer or impose + any additional or different terms or conditions on, or + apply any Effective Technological Measures to, the + Licensed Material if doing so restricts exercise of the + Licensed Rights by any recipient of the Licensed + Material. + 6. No endorsement. Nothing in this Public License constitutes or + may be construed as permission to assert or imply that You + are, or that Your use of the Licensed Material is, connected + with, or sponsored, endorsed, or granted official status by, + the Licensor or others designated to receive attribution as + provided in Section 3(a)(1)(A)(i). + b. Other rights. + 1. Moral rights, such as the right of integrity, are not + licensed under this Public License, nor are publicity, + privacy, and/or other similar personality rights; however, to + the extent possible, the Licensor waives and/or agrees not to + assert any such rights held by the Licensor to the limited + extent necessary to allow You to exercise the Licensed + Rights, but not otherwise. + 2. Patent and trademark rights are not licensed under this + Public License. + 3. To the extent possible, the Licensor waives any right to + collect royalties from You for the exercise of the Licensed + Rights, whether directly or through a collecting society + under any voluntary or waivable statutory or compulsory + licensing scheme. In all other cases the Licensor expressly + reserves any right to collect such royalties. + +Section 3 -- License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the following conditions. + + a. Attribution. + 1. If You Share the Licensed Material (including in modified + form), You must: + a. retain the following if it is supplied by the Licensor + with the Licensed Material: + i. identification of the creator(s) of the Licensed + Material and any others designated to receive + attribution, in any reasonable manner requested by + the Licensor (including by pseudonym if + designated); + ii. a copyright notice; + iii. a notice that refers to this Public License; + iv. a notice that refers to the disclaimer of + warranties; + v. a URI or hyperlink to the Licensed Material to the + extent reasonably practicable; + b. indicate if You modified the Licensed Material and + retain an indication of any previous modifications; and + c. indicate the Licensed Material is licensed under this + Public License, and include the text of, or the URI or + hyperlink to, this Public License. + 2. You may satisfy the conditions in Section 3(a)(1) in any + reasonable manner based on the medium, means, and context in + which You Share the Licensed Material. For example, it may be + reasonable to satisfy the conditions by providing a URI or + hyperlink to a resource that includes the required + information. + 3. If requested by the Licensor, You must remove any of the + information required by Section 3(a)(1)(A) to the extent + reasonably practicable. + 4. If You Share Adapted Material You produce, the Adapter's + License You apply must not prevent recipients of the Adapted + Material from complying with this Public License. + +Section 4 -- Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material: + + a. for the avoidance of doubt, Section 2(a)(1) grants You the right + to extract, reuse, reproduce, and Share all or a substantial + portion of the contents of the database; + b. if You include all or a substantial portion of the database + contents in a database in which You have Sui Generis Database + Rights, then the database in which You have Sui Generis Database + Rights (but not its individual contents) is Adapted Material; and + c. You must comply with the conditions in Section 3(a) if You Share + all or a substantial portion of the contents of the database. +For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights. + + +Section 5 -- Disclaimer of Warranties and Limitation of Liability. + + a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE + EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS + AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF + ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, + IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, + WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, + ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT + KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT + ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. + b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE + TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, + NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, + INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, + COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR + USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR + DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR + IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + c. The disclaimer of warranties and limitation of liability provided + above shall be interpreted in a manner that, to the extent + possible, most closely approximates an absolute disclaimer and + waiver of all liability. + +Section 6 -- Term and Termination. + + a. This Public License applies for the term of the Copyright and + Similar Rights licensed here. However, if You fail to comply with + this Public License, then Your rights under this Public License + terminate automatically. + b. Where Your right to use the Licensed Material has terminated under + Section 6(a), it reinstates: + 1. automatically as of the date the violation is cured, provided + it is cured within 30 days of Your discovery of the + violation; or + 2. upon express reinstatement by the Licensor. + For the avoidance of doubt, this Section 6(b) does not affect any + right the Licensor may have to seek remedies for Your violations + of this Public License. + c. For the avoidance of doubt, the Licensor may also offer the + Licensed Material under separate terms or conditions or stop + distributing the Licensed Material at any time; however, doing so + will not terminate this Public License. + d. Sections 1, 5, 6, 7, and 8 survive termination of this Public + License. + +Section 7 -- Other Terms and Conditions. + + a. The Licensor shall not be bound by any additional or different + terms or conditions communicated by You unless expressly agreed. + b. Any arrangements, understandings, or agreements regarding the + Licensed Material not stated herein are separate from and + independent of the terms and conditions of this Public License. + +Section 8 -- Interpretation. + + a. For the avoidance of doubt, this Public License does not, and + shall not be interpreted to, reduce, limit, restrict, or impose + conditions on any use of the Licensed Material that could lawfully + be made without permission under this Public License. + b. To the extent possible, if any provision of this Public License is + deemed unenforceable, it shall be automatically reformed to the + minimum extent necessary to make it enforceable. If the provision + cannot be reformed, it shall be severed from this Public License + without affecting the enforceability of the remaining terms and + conditions. + c. No term or condition of this Public License will be waived and no + failure to comply consented to unless expressly agreed to by the + Licensor. + d. Nothing in this Public License constitutes or may be interpreted + as a limitation upon, or waiver of, any privileges and immunities + that apply to the Licensor or You, including from the legal + processes of any jurisdiction or authority. +Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the "Licensor." The text of the Creative Commons public licenses is dedicated to the public domain under the CC0 Public Domain Dedication. Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at creativecommons.org/policies, Creative Commons does not authorize the use of the trademark "Creative Commons" or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses. + +Creative Commons may be contacted at creativecommons.org. \ No newline at end of file diff --git a/openo-portal/portal-catalog/src/main/webapp/catalog/image/details_close.png b/catalog/src/main/webapp/catalog/image/details_close.png similarity index 100% rename from openo-portal/portal-catalog/src/main/webapp/catalog/image/details_close.png rename to catalog/src/main/webapp/catalog/image/details_close.png diff --git a/openo-portal/portal-catalog/src/main/webapp/catalog/image/details_open.png b/catalog/src/main/webapp/catalog/image/details_open.png similarity index 100% rename from openo-portal/portal-catalog/src/main/webapp/catalog/image/details_open.png rename to catalog/src/main/webapp/catalog/image/details_open.png diff --git a/openo-portal/portal-catalog/src/main/webapp/catalog/image/down.png b/catalog/src/main/webapp/catalog/image/down.png similarity index 100% rename from openo-portal/portal-catalog/src/main/webapp/catalog/image/down.png rename to catalog/src/main/webapp/catalog/image/down.png diff --git a/openo-portal/portal-catalog/src/main/webapp/catalog/image/pointes_blue.png b/catalog/src/main/webapp/catalog/image/pointes_blue.png similarity index 100% rename from openo-portal/portal-catalog/src/main/webapp/catalog/image/pointes_blue.png rename to catalog/src/main/webapp/catalog/image/pointes_blue.png diff --git a/openo-portal/portal-catalog/src/main/webapp/catalog/image/pointes_green.png b/catalog/src/main/webapp/catalog/image/pointes_green.png similarity index 100% rename from openo-portal/portal-catalog/src/main/webapp/catalog/image/pointes_green.png rename to catalog/src/main/webapp/catalog/image/pointes_green.png diff --git a/openo-portal/portal-catalog/src/main/webapp/catalog/image/sort_asc.png b/catalog/src/main/webapp/catalog/image/sort_asc.png similarity index 100% rename from openo-portal/portal-catalog/src/main/webapp/catalog/image/sort_asc.png rename to catalog/src/main/webapp/catalog/image/sort_asc.png diff --git a/openo-portal/portal-catalog/src/main/webapp/catalog/image/sort_asc_disabled.png b/catalog/src/main/webapp/catalog/image/sort_asc_disabled.png similarity index 100% rename from openo-portal/portal-catalog/src/main/webapp/catalog/image/sort_asc_disabled.png rename to catalog/src/main/webapp/catalog/image/sort_asc_disabled.png diff --git a/openo-portal/portal-catalog/src/main/webapp/catalog/image/sort_both.png b/catalog/src/main/webapp/catalog/image/sort_both.png similarity index 100% rename from openo-portal/portal-catalog/src/main/webapp/catalog/image/sort_both.png rename to catalog/src/main/webapp/catalog/image/sort_both.png diff --git a/openo-portal/portal-catalog/src/main/webapp/catalog/image/sort_desc.png b/catalog/src/main/webapp/catalog/image/sort_desc.png similarity index 100% rename from openo-portal/portal-catalog/src/main/webapp/catalog/image/sort_desc.png rename to catalog/src/main/webapp/catalog/image/sort_desc.png diff --git a/openo-portal/portal-catalog/src/main/webapp/catalog/image/sort_desc_disabled.png b/catalog/src/main/webapp/catalog/image/sort_desc_disabled.png similarity index 100% rename from openo-portal/portal-catalog/src/main/webapp/catalog/image/sort_desc_disabled.png rename to catalog/src/main/webapp/catalog/image/sort_desc_disabled.png diff --git a/openo-portal/portal-catalog/src/main/webapp/catalog/image/up.png b/catalog/src/main/webapp/catalog/image/up.png similarity index 100% rename from openo-portal/portal-catalog/src/main/webapp/catalog/image/up.png rename to catalog/src/main/webapp/catalog/image/up.png diff --git a/catalog/src/main/webapp/catalog/js/component/commonUtil.js b/catalog/src/main/webapp/catalog/js/component/commonUtil.js new file mode 100644 index 00000000..c7f1b6b7 --- /dev/null +++ b/catalog/src/main/webapp/catalog/js/component/commonUtil.js @@ -0,0 +1,128 @@ +/* + * Copyright 2016-2017 ZTE Corporation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +var commonUtil = {}; +commonUtil.arrayRemove = function( aryInstance , index ){ + if(aryInstance == undefined || aryInstance == null){ + return; + } + for(var i=0,n=0;i 2006-07-02 08:09:04.423 +// (new Date()).Format("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18 +commonUtil.parseDate = function( dateObj , format){ + var o = { + "M+" : dateObj.getMonth()+1, //month + "d+" : dateObj.getDate(), //day + "h+" : dateObj.getHours(), //hour + "m+" : dateObj.getMinutes(), //minute + "s+" : dateObj.getSeconds(), //second + "q+" : Math.floor((dateObj.getMonth()+3)/3), //quarter + "S" : dateObj.getMilliseconds() //millisecond + } + if(/(y+)/.test(format)) format=format.replace(RegExp.$1, + (dateObj.getFullYear()+"").substr(4 - RegExp.$1.length)); + for(var k in o) + if(new RegExp("("+ k +")").test(format)) + format = format.replace(RegExp.$1, RegExp.$1.length==1 ? o[k] : + ("00"+ o[k]).substr((""+ o[k]).length)); + return format; +}; + +//tooltip +commonUtil.showMessage = function(message, type) { + $.growl({ + icon: "fa fa-envelope-o fa-lg", + title: "  " + $.i18n.prop("nfv-nso-iui-common-tip"), + message: message + },{ + type: type + }); +}; + +commonUtil.registerCometdMessage = function(url, channel, callback) { + var cometd = new $.Cometd(); + var cometdURL = location.protocol + "//" + location.host + url; + cometd.configure({ + url : cometdURL, + logLevel : "info" + }); + // unregister websocket transport, use long-polling transport + cometd.unregisterTransport('websocket'); + // store channel object parameters(this object include channel and callback function), start from arguments[1] + var _args = arguments; + + cometd.addListener("/meta/handshake", function(handshake){ + if(handshake.successful === true) { + cometd.batch(function() { + //subscribe channel + cometd.subscribe(channel, function(message){ + callback.call(this, message.data); + }); + }); + } + }); + cometd.handshake(); +} + +commonUtil.format = function() { + if(arguments.length == 0) { + return null; + } + var str = arguments[0]; + for(var i=0; i ' + oLang.sPage + ' ' + + '' + + '' + + ' ' + + oLang.sPageOf + ' ' + + '' + ); + + var els = $('a', nPaging); + + $(els[0]).bind('click.DT', { action: "previous" }, fnClickHandler ); + $(els[1]).bind('click.DT', { action: "next" }, fnClickHandler); + + $('.pagination-panel-input', nPaging).bind('change.DT', function(e) { + var oPaging = oSettings.oInstance.fnPagingInfo(); + e.preventDefault(); + var page = parseInt($(this).val()); + if (page > 0 && page < oPaging.iTotalPages) { + if ( oSettings.oApi._fnPageChange(oSettings, page-1) ) { + fnDraw( oSettings ); + } + } else { + $(this).val(oPaging.iPage + 1); + } + }); + + $('.pagination-panel-input', nPaging).bind('keypress.DT', function(e) { + var oPaging = oSettings.oInstance.fnPagingInfo(); + if (e.which == 13) { + var page = parseInt($(this).val()); + if (page > 0 && page < oSettings.oInstance.fnPagingInfo().iTotalPages) { + if ( oSettings.oApi._fnPageChange(oSettings, page-1) ) { + fnDraw( oSettings ); + } + } else { + $(this).val(oPaging.iPage + 1); + } + e.preventDefault(); + } + }); + }, + + "fnUpdate": function ( oSettings, fnDraw ) { + var iListLength = 5; + var oPaging = oSettings.oInstance.fnPagingInfo(); + var an = oSettings.aanFeatures.p; + var i, j, sClass, iStart, iEnd, iHalf=Math.floor(iListLength/2); + + if ( oPaging.iTotalPages < iListLength) { + iStart = 1; + iEnd = oPaging.iTotalPages; + } + else if ( oPaging.iPage <= iHalf ) { + iStart = 1; + iEnd = iListLength; + } else if ( oPaging.iPage >= (oPaging.iTotalPages-iHalf) ) { + iStart = oPaging.iTotalPages - iListLength + 1; + iEnd = oPaging.iTotalPages; + } else { + iStart = oPaging.iPage - iHalf + 1; + iEnd = iStart + iListLength - 1; + } + + + for ( i=0, iLen=an.length ; i'+j+'') + .insertBefore( $('li.next:first', an[i])[0] ) + .bind('click', function (e) { + e.preventDefault(); + oSettings._iDisplayStart = (parseInt($('a', this).text(),10)-1) * oPaging.iLength; + fnDraw( oSettings ); + } ); + } + + // Add / remove disabled classes from the static elements + if ( oPaging.iPage === 0 ) { + $('a.prev', an[i]).addClass('disabled'); + } else { + $('a.prev', an[i]).removeClass('disabled'); + } + + if ( oPaging.iPage === oPaging.iTotalPages-1 || oPaging.iTotalPages === 0 ) { + $('a.next', an[i]).addClass('disabled'); + } else { + $('a.next', an[i]).removeClass('disabled'); + } + } + } + } +} ); + +serverPageTable.getRestPara = function( cond , tableSetting ){ + var pageNo=tableSetting._iDisplayStart/tableSetting._iDisplayLength+1; + var pageSize = tableSetting._iDisplayLength; + var queryParameter={"pageNo":pageNo,"pageSize":tableSetting._iDisplayLength,groupId:["it.group.database=02","it.group.server=01"]}, + newData={"data":JSON.stringify(queryParameter)}; + //put the pageinfo in cond if there is a pageinfo + var pageInfo = vm.logInfo[vm.logType].pageInfo; + if(pageInfo != null && serverPageTable.perpagenumber == pageSize){ + cond.idEnd = pageInfo.pageStart[pageNo - 1]; + cond.idStart = pageInfo.pageStart[pageNo]; + if(!cond.idStart){ //the last page + cond.idStart = 0; + } + + }else{ + delete cond.idStart; + delete cond.idEnd; + vm.logInfo[vm.logType].pageInfo = null; + pageNo = 1; + tableSetting._iDisplayStart = 0; + } + var data = { + cond:JSON.stringify(cond), + perpagenumber:pageSize, + pageNo:pageNo, + needPageInfo:vm.logInfo[vm.logType].pageInfo == null + }; + serverPageTable.perpagenumber = pageSize; + return data; +}; + +serverPageTable.initTableWithoutLib = function( setting ,cond , divId) { + //transform colomn + var column = setting.columns; + //empty table + $('#'+ divId).children().remove(); + var tableId = setting.tableId; + var tableEleStr = '' + + '' + +'' + + '' + + '' + +'' + +'' + +'
'; + $('#'+ divId).append(tableEleStr); + //$('#'+ tableId).append(' '); + var trEle = $('#'+ tableId + ' > thead >tr'); + //var dataTableColumn = []; + for ( var one in column){ + var th = '' + column[one].name + ''; + trEle.append(th); + } + var table = $("#" + tableId).dataTable({ + //"sDom" : "tr<'row'<'col-md-6 col-sm-12'><'col-md-6 col-sm-12'pli>>", // datatable layout + //"sDom" : "<'row'<'col-md-12 col-sm-12'lip>r><'table-scrollable't>>", + //"sDom": '<"top"rt><"bottom"lip>', + "sDom": '<"top"rt>', + "oLanguage": setting.language,//language + //"bJQueryUI": true, + "bPaginate": setting.paginate,// page button + "bFilter": false,// search bar + "bAutoWidth":true,//automatically set colum width + "bLengthChange": true,// record number in each row + "iDisplayLength": 10,// row number in each page + "bSort": setting.sort ? true : false,// sort + "bInfo": setting.info,// Showing 1 to 10 of 23 entries + "bWidth": true, + "bScrollCollapse": true, + "sPaginationType": "bootstrap_extended", // page, a total of two kinds of style, another one is two_button + "bProcessing": true, + "bServerSide": false, + "bDestroy": true, + "bSortCellsTop": true, + "sAjaxSource": setting.restUrl, + "aoColumns": setting.columns, + "aoColumnDefs": [ + { + sDefaultContent: '', + aTargets: [ '_all' ] + } + ], + "fnServerData": function (sSource, aoData, fnCallback, oSettings) { + oSettings.jqXHR = $.ajax({ + "type": 'get', + "url": sSource, + "dataType": "json", + //"data":serverPageTable.getRestPara(cond,oSettings), + "success": function (resp) { + oSettings.iDraw = oSettings.iDraw + 1; + + resp = resp || []; + var data = {}; + data.aaData = resp; + var totalCounts = resp.length; + + data.iTotalRecords = totalCounts; + data.iTotalDisplayRecords = totalCounts; + data.sEcho = oSettings; + fnCallback(data); + }, + "error": function(resp) { + var data = {}; + data.aaData = []; + var totalCounts = 0; + + data.iTotalRecords = totalCounts; + data.iTotalDisplayRecords = totalCounts; + data.sEcho = oSettings; + fnCallback(data); + } + }); + } + }); +}; + +serverPageTable.initDataTable = function( setting ,cond , divId) { + //transform colomn + var column = setting.columns; + //empty table + $('#'+ divId).children().remove(); + var tableId = setting.tableId; + var tableEleStr = '' + + '' + +'' + + '' + + '' + +'' + +'' + +'
'; + $('#'+ divId).append(tableEleStr); + //$('#'+ tableId).append(' '); + var trEle = $('#'+ tableId + ' > thead >tr'); + //var dataTableColumn = []; + for ( var one in column){ + var th = '' + column[one].name + ''; + trEle.append(th); + } + var table = $("#" + tableId).dataTable({ + //"sDom" : "tr<'row'<'col-md-6 col-sm-12'><'col-md-6 col-sm-12'pli>>", // datatable layout + //"sDom" : "<'row'<'col-md-12 col-sm-12'lip>r><'table-scrollable't>>", + "sDom": '<"top"rt><"bottom"lip>', + "oLanguage": setting.language,//language + //"bJQueryUI": true, + "bPaginate": setting.paginate,// page button + "bFilter": false,// search bar + "bAutoWidth":true,//automatically set colum width + "bLengthChange": true,// record number in each row + "iDisplayLength": 10,// row number in each page + "bSort": setting.sort ? true : false,// sort + "bInfo": setting.info,// Showing 1 to 10 of 23 entries + "bWidth": true, + "bScrollCollapse": true, + "sPaginationType": "bootstrap_extended", // page, a total of two kinds of style, another one is two_button + "bProcessing": true, + "bServerSide": false, + "bDestroy": true, + "bSortCellsTop": true, + "sAjaxSource": setting.restUrl, + "aoColumns": setting.columns, + "aoColumnDefs": [ + { + sDefaultContent: '', + aTargets: [ '_all' ] + } + ], + "fnServerData": function (sSource, aoData, fnCallback, oSettings) { + oSettings.jqXHR = $.ajax({ + "type": 'get', + "url": sSource, + "dataType": "json", + //"data":serverPageTable.getRestPara(cond,oSettings), + "success": function (resp) { + oSettings.iDraw = oSettings.iDraw + 1; + + resp = resp || []; + var data = {}; + data.aaData = resp; + var totalCounts = resp.length; + + data.iTotalRecords = totalCounts; + data.iTotalDisplayRecords = totalCounts; + data.sEcho = oSettings; + fnCallback(data); + }, + "error": function(resp) { + var data = {}; + data.aaData = []; + var totalCounts = 0; + + data.iTotalRecords = totalCounts; + data.iTotalDisplayRecords = totalCounts; + data.sEcho = oSettings; + fnCallback(data); + } + }); + } + }); +}; + +serverPageTable.initTableWithData = function( setting , divId , tableData) { + //transform colomn + var column = setting.columns; + //empty table + $('#'+ divId).children().remove(); + var tableId = setting.tableId; + var tableEleStr = '' + + '' + +'' + + '' + + '' + +'' + +'' + +'
'; + $('#'+ divId).append(tableEleStr); + var trEle = $('#'+ tableId + ' > thead >tr'); + for ( var one in column){ + var th = '' + column[one].name + ''; + trEle.append(th); + } + var table = $("#" + tableId).dataTable({ + "sDom" : "<'row'<'col-md-12 col-sm-12'lip>r>>", + "oLanguage": setting.language,//language + //"bJQueryUI": true, + "bPaginate": setting.paginate,// page button + "bFilter": false,// search bar + "bAutoWidth":true,//automatically set the column width + "bLengthChange": true,// record number in each row + "iDisplayLength": 10,// row number in each page + "bSort": setting.sort ? true : false,// sort + "bInfo": setting.info,// Showing 1 to 10 of 23 entries + "bWidth": true, + "bScrollCollapse": true, + "sPaginationType": "bootstrap_extended", // page, a total of two kinds of style, another one is two_button + "bProcessing": false, + "bServerSide": false, + "bDestroy": true, + "bSortCellsTop": true, + "sAjaxSource": tableData, + "aoColumns": setting.columns, + "fnServerData": function (sSource, aoData, fnCallback, oSettings) { + oSettings.iDraw = oSettings.iDraw + 1; + var resp = tableData || []; + var data = {}; + data.aaData = resp; + var totalCounts = resp.length; + + data.iTotalRecords = totalCounts; + data.iTotalDisplayRecords = totalCounts; + data.sEcho = oSettings; + fnCallback(data); + } + }); +}; + + +serverPageTable.initDataTableForEvent = function( setting ,cond , divId) { + //transform colomn + var column = setting.columns; + //empty table + $('#'+ divId).children().remove(); + var tableId = setting.tableId; + var tableEleStr = '' + + '' + +'' + + '' + + '' + +'' + +'' + +'
'; + $('#'+ divId).append(tableEleStr); + var trEle = $('#'+ tableId + ' > thead >tr'); + for ( var one in column){ + var th = '' + column[one].name + ''; + trEle.append(th); + } + var table = $("#" + tableId).dataTable({ + "sDom": '<"top"rt><"bottom"lip>', + "oLanguage": setting.language,//language + //"bJQueryUI": true, + "bPaginate": setting.paginate,// page button + "bFilter": false,// search bar + "bAutoWidth":true,//automatically set the column width + "bLengthChange": true,// record number in each row + "iDisplayLength": 10,// row number in each page + "bSort": setting.sort ? true : false, + "bInfo": setting.info,// Showing 1 to 10 of 23 entries + "bWidth": true, + "bScrollCollapse": true, + "sPaginationType": "bootstrap_extended", // page, a total of two kinds of style, another one is two_button + "bProcessing": true, + "bServerSide": false, + "bDestroy": true, + "bSortCellsTop": true, + "sAjaxSource": setting.restUrl, + "aoColumns": setting.columns, + "aoColumnDefs": [ + { + sDefaultContent: '', + aTargets: [ '_all' ] + } + ], + "fnServerData": function (sSource, aoData, fnCallback, oSettings) { + oSettings.jqXHR = $.ajax({ + "type": 'get', + "url": sSource, + "dataType": "json", + //"data":serverPageTable.getRestPara(cond,oSettings), + "success": function (resp) { + oSettings.iDraw = oSettings.iDraw + 1; + + var result = []; + for(var i=0;i  " + +$.i18n.prop("nfv-nso-iui-table-sProcess")+"", + "sLengthMenu": $.i18n.prop("nfv-nso-iui-table-sLengthMenu"), + "sZeroRecords": $.i18n.prop("nfv-nso-iui-table-sZeroRecords"), + "sInfo": " " + $.i18n.prop("nfv-nso-iui-table-sInfo"), + "sInfoEmpty": $.i18n.prop("nfv-nso-iui-table-sInfoEmpty"), + "sGroupActions": $.i18n.prop("nfv-nso-iui-table-sGroupActions"), + "sAjaxRequestGeneralError":$.i18n.prop("nfv-nso-iui-table-sAjaxRequestGeneralError"), + "sEmptyTable": $.i18n.prop("nfv-nso-iui-table-sEmptyTable"), + "oPaginate": { + "sPrevious": $.i18n.prop("nfv-nso-iui-table-sPrevious"), + "sNext": $.i18n.prop("nfv-nso-iui-table-sNext"), + "sPage": $.i18n.prop("nfv-nso-iui-table-sPage"), + "sPageOf": $.i18n.prop("nfv-nso-iui-table-sPageOf") + } + }, + $restUrl:{ + queryPackageInfoUrl: "/openoapi/catalog/v1/csars", + uploadPackageUrl: "/openoapi/catalog/v1/csars", + gsarDelPackageUrl: "/openoapi/gso/v1/nspackages", + ssarDelPackageUrl: "/openoapi/catalog/v1/csars", + nsarDelPackageUrl: "/openoapi/nslcm/v1/nspackage", + nfarDelPackageUrl: "/openoapi/nslcm/v1/vnfpackage", + gsarOnboardUrl: "/openoapi/gso/v1/nspackages", + ssarOnboardUrl: "/openoapi/catalog/v1/csars", + nsarOnboardUrl: "/openoapi/nslcm/v1/nspackage", + nfarOnboardUrl: "/openoapi/nslcm/v1/vnfpackage", + changePackageStatusUrl : "/openoapi/catalog/v1/csars", + queryVimInfoUrl : "/openoapi/extsys/v1/vims" + }, + $getPackageCond: function() { + var cond = {}; + return cond; + }, + //$initTable: function() { + // var url=vm.$restUrl.queryPackageInfoUrl; + // commonUtil.get(url,null,function(resp) { + // if (resp) { + // vm.resource.packageInfo=resp; + // } + // }) + //}, + $initTable: function() { + var setting = {}; + setting.language = vm.$language; + setting.paginate = true; + setting.info = true; + setting.sort = true; + setting.columns = vm.$packageTableFields.table; + setting.restUrl = vm.$restUrl.queryPackageInfoUrl; + setting.tableId = vm.$tableId; + serverPageTable.initDataTable(setting,{},vm.$tableId + '_div'); + }, + packageDetail : { + detailTitle : "", + isShow : "none", + detailIndex : 0, + detailData : [{ + id : "general", + name : $.i18n.prop("com_zte_ums_eco_roc_rsview_info"), + isActive : true + }, { + id : "relationShips", + name : $.i18n.prop("com_zte_ums_eco_roc_rsview_relation"), + isActive : false + } + ], + $showDetails : function (isShow, csarId, name) { + vm.packageDetail.isShow = isShow; + vm.packageDetail.detailCondChange(0); + if (isShow == "block") { + vm.packageDetail.detailTitle = name + "-" + $.i18n.prop("nfv-package-iui_packageview_packageDetail"), + $('#' + vm.packageDetail.detailData[0].id).click(); + vm.packageDetail.detailData[0].isActive = true; + vm.packageDetail.$initPackageDetailTable(csarId); + } + }, + detailCondChange : function (index) { + vm.packageDetail.detailIndex = index; + for (var i = 0; i < vm.packageDetail.detailData.length; i++) { + vm.packageDetail.detailData[i].isActive = false; + } + vm.packageDetail.detailData[index].isActive = true; + }, + $initPackageDetailTable : function (csarId) { + var url=vm.$restUrl.queryPackageInfoUrl + "/" + csarId; + commonUtil.get(url,null,function(resp) { + if (resp) { + vm.resource.packageDetails=resp; + } + }) + + }, + $isRowDeletingStatus : function(name) { + var table = $("#" + vm.$tableId).dataTable(); + var tableData = table.fnGetData(); + for (var i=0; i -1) { + return true; + } + } + return false; + }, + }, + selectVimDialog : { + currentRadioClicked : [], + clickedIndex : "", + nfarOnBoardParam : { + csarId : "", + vimIds : [], + labVimId : "", + }, + $initData : function(csarId) { + var url=vm.$restUrl.queryVimInfoUrl; + commonUtil.get(url,null,function(resp) { + if (resp) { + vm.resource.vimSelectItems=resp; + } + }) + vm.selectVimDialog.nfarOnBoardParam.csarId = csarId; + }, + $confirmBtnClick : function () { + var labVimId = ""; + var vimIds = []; + var testEnvCount = 0; + for(var i=0; i -1) { + return true; + } + } + return false; + }, + + onBoardPackage : function(csarId,type,onBoardState) { + var param = { + csarId : csarId + }; + if(type == "NSAR") { + var url = vm.$restUrl.nsarOnboardUrl; + pmUtil.doOnBoard(url, param); + } else if(type == "NFAR") { + vm.csarIdSelected = csarId; + vm.showOnboardDialog(csarId); + } else if(type == "GSAR") { + var url = vm.$restUrl.gsarOnboardUrl; + pmUtil.doOnBoard(url, param); + } else if(type == "SSAR") { + var ssarTarOnbardState=""; + var operationalState=""; + if(onBoardState =="onBoarded") { + ssarTarOnbardState = "non-onBoarded"; + operationalState = "Disabled"; + } else { + ssarTarOnbardState = "onBoarded"; + operationalState = "Enabled"; + } + var url = vm.$restUrl.ssarOnboardUrl+"/"+csarId+"?onBoardState="+ssarTarOnbardState+"&operationalState="+operationalState; + pmUtil.doSSAROnboard(url); + } + }, + showOnboardDialog : function(csarId) { + vm.selectVimDialog.$initData(csarId); + $("#selectVimDialog").modal("show"); + }, + $initUpload : function() { + $("#fileupload").fileupload({ + url : vm.$restUrl.uploadPackageUrl, + dropZone: $('#dropzone'), + maxNumberOfFiles : 1, + maxChunkSize : 20000000, //20M + autoUpload : false, + add : function(e, data) { + $("#bar").css('width', '0%'); + $("#persent").text('0%'); + $("#fileName").text(data.files[0].name); + $("#fileremove").attr("disabled", false); + $("#filesubmit").attr("disabled", false); + + $("#filesubmit").remove(); + $(' + + +
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/catalog/src/main/webapp/catalog/template.html b/catalog/src/main/webapp/catalog/template.html new file mode 100644 index 00000000..1d319df0 --- /dev/null +++ b/catalog/src/main/webapp/catalog/template.html @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + +
+
+
+ +
+
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/catalog/src/main/webapp/catalog/templateDetail.html b/catalog/src/main/webapp/catalog/templateDetail.html new file mode 100644 index 00000000..061aa9b3 --- /dev/null +++ b/catalog/src/main/webapp/catalog/templateDetail.html @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + + + + +
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+ +
+
+

{{nodesDetail.detailTitle}}

+
+ +
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/catalog/src/main/webapp/catalog/topology.html b/catalog/src/main/webapp/catalog/topology.html new file mode 100644 index 00000000..141c6c7d --- /dev/null +++ b/catalog/src/main/webapp/catalog/topology.html @@ -0,0 +1,122 @@ + +
+
+
+
+
+
0
+ {{network.name}} +
+
+
+
+
0
+

{{subnet.name}}

+

+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
1
+
+
+ +
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+ +
1
+
+
+ +
+
+
+
+
+ +
+
+
+
+ +
1
+
+
+

+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+ + + + +
+
+ + + + + + + + + +
+
+
\ No newline at end of file diff --git a/catalog/src/main/webapp/catalog/topologyDetail.html b/catalog/src/main/webapp/catalog/topologyDetail.html new file mode 100644 index 00000000..df89c180 --- /dev/null +++ b/catalog/src/main/webapp/catalog/topologyDetail.html @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + +
+
+
+ +
+
+
+
+
+
+
+
+
0
+ {{network.name}} +
+
+
+
+
0
+

{{subnet.name}}

+

+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
1
+
+
+ +
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+ +
1
+
+
+ +
+
+
+
+
+ +
+
+
+
+ +
1
+
+
+

+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+ + + + +
+
+ + + + + + + + + +
+
+
+ +
+
+

{{nodesDetail.detailTitle}}

+
+ +
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + +
+ + \ No newline at end of file diff --git a/common/pom.xml b/common/pom.xml new file mode 100644 index 00000000..1bd9db79 --- /dev/null +++ b/common/pom.xml @@ -0,0 +1,41 @@ + + + + + org.openo.client.gui + client-gui + 1.1.0-SNAPSHOT + + + 4.0.0 + common + 1.1.0-SNAPSHOT + war + client-gui/common + + + + + org.apache.maven.plugins + maven-war-plugin + + false + + + + + diff --git a/common/src/main/webapp/framework/appserver/api.js b/common/src/main/webapp/framework/appserver/api.js new file mode 100644 index 00000000..e4a237b7 --- /dev/null +++ b/common/src/main/webapp/framework/appserver/api.js @@ -0,0 +1,287 @@ +/* + + Copyright 2016-2017, Huawei Technologies Co., Ltd. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +*/ + +var express = require('express'); +var router = express.Router(); +/*var js2xmlparser = require("js2xmlparser"); +var xml2js = require('xml2js');*/ +var fs = require('fs'); +var http = require('http'); +var bodyParser = require('body-parser'); +var path=require('path'); + +var MongoClient = require('mongodb').MongoClient; +var ObjectId = require('mongodb').ObjectId; + +var url = 'mongodb://localhost/rest_test'; + +/*var exists = require('file-exists');*/ + +// ############################################ Sign In code ################################################# +// Routes +router.post('/signin', function (req, res) { + console.log("signin"); + var obj = { + "name": req.body.name, + "pswd": req.body.pswd + }; + + var ObjLst =[] ; + var nameExist =0; + console.log(obj); + ObjLst = JSON.parse(fs.readFileSync('input.json', 'utf8')); + for(var index = 0; index < ObjLst.length; index++) { + if (ObjLst[index].name === req.body.name && ObjLst[index].pswd === req.body.pswd) { + console.log("success"); + nameExist++; + res.statusCode=200; + res.statusMessage="Sucessfully loged in"; + break; + } + } + if (nameExist != 1) { + console.log("failed"); + res.statusCode=404; + res.statusMessage="failed to login"; + } + res.send(); +}); + +// ############################################ Sign Up Code ################################################# + +router.post('/signup', function (req, res) { + + console.log("in api.js"); + + var ObjLst =[] ; + var nameNotExist =0; + var obj = { + "name": req.body.name, + "pswd": req.body.pswd, + "email": req.body.email + }; + if(fs.existsSync("input.json")) { + console.log("File Exist"); + ObjLst = JSON.parse(fs.readFileSync('input.json', 'utf8')); + } + + for(var index = 0; index < ObjLst.length; index++) { + if (ObjLst[index].name === req.body.name && ObjLst[index].email === req.body.email) { + console.log("success"); + nameNotExist++; + break; + } + } + if (nameNotExist == 0) { + ObjLst.push(obj); + console.log(ObjLst); + fs.writeFile('input.json', JSON.stringify(ObjLst), function(err) { + if (err) { + return console.error(err); + } + console.log("Data written successfully!"); + console.log("Let's read newly written data"); + res.statusCode=200; + res.statusMessage="Sucessfully signed up"; + }); + } + res.send(); +}); + +function getDataFrmProvince() { + var provinceData =[] ; + if(fs.existsSync("provinceData.json")) { + console.log("File Exist"); + provinceData = JSON.parse(fs.readFileSync('provinceData.json', 'utf8')); + } + return provinceData; +} + +function saveDataToProvince(provinceData) { + fs.writeFile('provinceData.json', JSON.stringify(provinceData), function(err) { + var statueCode = 0; + if (err) { + console.error(err); + return statueCode = 404; + } + console.log("Data written successfully!"); + console.log("Let's read newly written data"); + return statueCode = 200; + }); +} + +function getIndexOfIdProvince(id) { + var provinceData = getDataFrmProvince(); + var returnIndx = -1; + for (var index = 0; index < provinceData.length; index++) { + if(provinceData[index].id == id) { + returnIndx = index; + break; + } + } + return returnIndx; +} + +function deleteIdFromProvince(idList) { + var provinceData = getDataFrmProvince(); + /*for (var index = 0; index < provinceData.length; index++) { + if(provinceData[index].id == id) { + console.log("Deleting id : " + index); + provinceData.splice(index, 1); + break; + } + }*/ + for(var i = 0; i < idList.length; i++) { + for (var index = 0; index < provinceData.length; index++) { + if(provinceData[index].id == idList[i]) { + console.log("Deleting id : " + index); + provinceData.splice(index, 1); + break; + } + } + } + return provinceData; +} + +router.get('/getAllProvinceData', function (req, res) { + var provinceData = getDataFrmProvince(); + if(provinceData) { + output = '{"provinceData" : ' + JSON.stringify(provinceData) + '}'; + + res.setHeader("Content-Type", "application/json"); + console.log("output : " + JSON.stringify(output)); + res.end(output); + } + /*MongoClient.connect(url, function(err, db) { + console.log("Connected... :-)"); + var cursor = db.collection('ProvinceData').find({},function(err, cursor) { + cursor.toArray(function (err, items) { + output = '{"provinceData" : ' + JSON.stringify(items) + '}'; + + res.setHeader("Content-Type", "application/json"); + //console.log("output : " + JSON.stringify(output)); + res.end(output); + }); + }); + db.close(function(){ + console.log("Connection Closed... :-)"); + }); + });*/ +}); + + +router.post('/addProvinceData', function(req, res) { + var provinceData = getDataFrmProvince(); + var gen_id = Math.floor(Math.random() * (9999 - 1000 + 1)) + 1000; + provinceData.push({ + "id": gen_id, + "province_name": req.body.province_name, + "ip": req.body.ip, + "port": req.body.port + }); + var statusCode = saveDataToProvince(provinceData); + res.statusCode=statusCode; + + if(statusCode == 200) { + res.statusMessage="Sucessfully signed up"; + } + else { + res.statusMessage="Error"; + } + + /*MongoClient.connect(url, function(err, db) { + db.collection('ProvinceData').insertOne({ + province_name: req.body.province_name, + ip: req.body.ip, + port: req.body.port + }); + db.close(); + });*/ + res.statusCode=200; + res.statusMessage="Sucessfully signed up"; + res.send(); +}); + +router.post('/deleteProvinceData', function (req, res) { + //var provinceData = getDataFrmProvince(); + console.log("IdList: "+ req.body.idList); + /*for(var i = req.body.idList.length - 1; i >= 0; i--) { + var index = getIndexOfIdProvince(req.body.idList[i]); + console.log("Deleting id : " + index); + if(index != -1) { + provinceData.splice(index, 1); + } + //deleteIdFromProvince(req.body.idList[i]); + };*/ + + var provinceData = deleteIdFromProvince(req.body.idList); + + saveDataToProvince(provinceData); + + /*MongoClient.connect(url, function(err, db) { + + console.log("Deleting Province Data... " + req.body.idList); + for(var i = 0; i < req.body.idList.length; i++) { + db.collection('ProvinceData').deleteOne({ "_id": ObjectId(req.body.idList[i])}); + } + /!*db.collection('ProvinceData').deleteOne({ "_id": ObjectId(req.body.idList)});*!/ + + db.close(function(){ + console.log("Connection Closed... :-)"); + }); + res.send(); + });*/ + res.statusCode=200; + res.statusMessage="Sucessfully signed up"; + res.send(); +}); + +router.post('/editProvinceData', function (req, res) { + var provinceData = getDataFrmProvince(); + var index = getIndexOfIdProvince(req.body.id); + console.log("Editing id : " + index); + if(index != -1) { + provinceData[index].province_name = req.body.province_name; + provinceData[index].ip = req.body.ip; + provinceData[index].port = req.body.port; + } + saveDataToProvince(provinceData); + + res.statusCode=200; + res.statusMessage="Sucessfully signed up"; + res.send(); + /*MongoClient.connect(url, function(err, db) { + + console.log("Editing Province Data... " + req.body._id); + db.collection('ProvinceData').updateOne( + { "_id": ObjectId(req.body._id)}, + { + $set: {'province_name': req.body.province_name, 'ip': req.body.ip, 'port': req.body.port} + } + ); + + db.close(function(){ + console.log("Connection Closed... :-)"); + }); + res.send(); + });*/ +}); + +// Return router +module.exports = router; + diff --git a/common/src/main/webapp/framework/appserver/server.js b/common/src/main/webapp/framework/appserver/server.js new file mode 100644 index 00000000..3d58f120 --- /dev/null +++ b/common/src/main/webapp/framework/appserver/server.js @@ -0,0 +1,48 @@ +/* + + Copyright 2016-2017, Huawei Technologies Co., Ltd. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +*/ + +// Dependencies +var express = require('express'); +var bodyParser = require('body-parser'); +var http=require("http"); +var path=require('path'); + + +// Express +var app = express(); +app.use(bodyParser.urlencoded({ extended: true})); +app.use(bodyParser.json()); +app.use(function(req, res, next) { + res.header("Access-Control-Allow-Origin", "*"); + res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); + next(); +}); +app.use(express.static(__dirname + '/POC_Angular')); + +// Routes +app.use('/api', require('./api')); + +// viewed at http://localhost:3000 +app.get('/', function(req, res) { + res.sendFile(path.join(__dirname + '/POC_Angular/index.html')); +}); + +// Start server +app.listen(3000); +console.log('API is running on port 3000'); +console.log('API @@@@'); \ No newline at end of file diff --git a/portal-common/src/main/webapp/framework/appserver/start_node.sh b/common/src/main/webapp/framework/appserver/start_node.sh similarity index 100% rename from portal-common/src/main/webapp/framework/appserver/start_node.sh rename to common/src/main/webapp/framework/appserver/start_node.sh diff --git a/common/src/main/webapp/framework/browser/css/open-ostyle.css b/common/src/main/webapp/framework/browser/css/open-ostyle.css new file mode 100644 index 00000000..763797a5 --- /dev/null +++ b/common/src/main/webapp/framework/browser/css/open-ostyle.css @@ -0,0 +1,937 @@ +/* + + Copyright 2016-2017, Huawei Technologies Co., Ltd. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +*/ + +body { + margin: 0; + padding: 0; + width: 100%; + height: 100%; + font-family: "Microsoft Yahei",Arial,Tahoma,Verdana,SimSun; + font-size: 12px; +} + +.container{ + background: #fafafa; +} + +.accordion_parent { + position: relative; + width: 220px; + background-color: #f5f5f5; +} + +.openo-accordion-resizable-handle { + z-index: 1 !important; + cursor: e-resize; + width: 7px; + right: -5px; + top: 0; + height: 100%; + position: absolute; + font-size: .1px; + display: block; +} + +.openoAccordian_accordionmenu { + width: 100%; + margin: 0; + padding: 0; + list-style-type: none; + line-height: 17px; +} + +.openoAccordian_accordionmenu li { + min-width: 75px; + margin: 0; + padding: 0; + list-style-type: none; + color: #000; + clear: both; +} + +.openo_accordion_ui-icon-collapse, .openo_accordion_ui-icon-expand { + display: block; + float: left; + margin-bottom: -1px; + border-bottom: 1px solid #e5e5e5; + cursor: pointer; + width: 13px; + padding-top: 26px; +} + +.openo_accordion_ui-icon-expand { + background: url(../thirdparty/images/collapse_arrow.png) right 20px no-repeat; + margin-top: 8px; +} + +.openo_accordion_ui-icon-expand.current { + background: url(../thirdparty/images/expand_arrow.png) right 20px no-repeat; +} + +.openoAccordian_showHideArrow_hide, .openoAccordian_showHideArrow_show { + display: block; + position: absolute; + right: 0; + top: 4px; + width: 18px; + height: 41px; + cursor: pointer; + background-color: #f5f5f5; +} + +.openoAccordian_showHideArrow_hide { + background-image: url(../images/openo.png); + background-position: -7px 0 !important; + border-collapse: separate; + /*box-shadow: inset -1px 0 0 #e5e5e5;*/ +} + +a.header.opened, a.header.closed { + font-size: 16px; + padding-top: 24px; + padding-bottom: 25px; + color: #999999; +} + +.openoAccordian_accordionmenu .closed, .openoAccordian_accordionmenu .opened { + padding-right: 10px; + background-position: 98% 50%; + background-repeat: no-repeat; +} + + +.openoAccordian_accordionmenu li a { + padding: 11px 10px 12px; + color: #333333; + margin-top: -1px; + text-align: left !important; + font-family: "Microsoft Yahei",Arial,Tahoma,Verdana,SimSun; + font-size: 14px; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + border-top: 1px solid #e5e5e5; + border-bottom: 1px solid #e5e5e5; + /*height: 19px;*/ +} + +.openoAccordian_accordionmenu ul { + margin: 0; + padding: 0; + overflow: hidden; +} + +.openoAccordian_accordionmenu a { + display: block; + text-decoration: none; +} + +a { + color: #428bca; + text-decoration: none; + background: 0 0; +} + +.bar { + height: 834px; + width: 18px; + background: #f8f8f8; + display: none; +} + +.bar span { + width: 13px; + height: 34px; + background-image: url(../images/openo.png); + background-position: -39px 0 !important; + display: block; + /*margin-top: -430px;*/ +} + +li { + cursor: pointer; +} + +#puer_base_openo { + border: 1px solid #ddd; +} + +.openo_accordion_selected { + margin-left: 0; + margin-right: 0; + background: #fafafa; + border-left: 3px solid #4ac9ff !important; + box-shadow: none; + position: relative; +} + +a:hover { + color: #4ac9ff; +} + +.openoAccordian_accordionmenu li.openo_accordion_selected a { + position: relative; + left: -3px; + color: #009ae7; +} + +.openo-accordion-resizable-handle { + z-index: 1 !important; + cursor: e-resize; + width: 7px; + right: -5px; + top: 0; + height: 100%; + position: absolute; + font-size: .1px; + display: block; +} + +#iframeContainer iframe { + width: 100%; + height: 100%; + border: 0; +} + +#accordionContent, #iframeContainer { + margin: 0; + padding: 0; + border: 0; + width: 100%; + height: 100%; +} + +.openoAccordian_showHideArrow_show { + background-image: url(../images/openo.png); + background-position: -39px 0 !important; + box-shadow: inset 1px 0 0 #e5e5e5, inset -1px 0 0 #e5e5e5; +} + +.homecontent { + text-align: center; + letter-spacing: 1.4px; +} + +.homecontent h3, .homecontent h4, .homecontent h5{ + font-size: 24px; + color: #333; + text-transform: capitalize; + border-top: 2px solid #f1f1f1; + border-bottom: 2px solid #f1f1f1; + padding: 13px 5px; + display: inline-block; + letter-spacing: 5px; + -webkit-animation: textScroll 500ms linear; + animation: textScroll 500ms linear; +} +.homecontent h4 { + font-size: 28px; + font-weight: bold; +} +.homecontent h5 { + font-size: 16px; + text-align: left; + border: none; +} +@-webkit-keyframes textScroll { + from {opacity: 0;} + to {opacity: 1;} + } + +@keyframes textScroll { + from {opacity: 0;} + to {opacity: 1;} +} + +/*.modal-body span { + font-size: 18px; + color: #00f; +}*/ + +#msgModal .modal-body .container { + width: 100%; +} +#msgModal .modal-body .icon { + /*color: red;*/ + font-size: 37px; +} +#msgModal .modal-body .icon_error { + color: red; +} +#msgModal .modal-body .icon_info { + color: green; +} +#msgModal .modal-body .icon_warning{ + color: orange; +} +#msgModal .modal-body .icon_confirm { + color: blue; +} +#msgModal .modal-body .msg { + color: #333; + padding-left: 30px; +} +/*#msgModal .modal-body .container .row { +}*/ +#msgModal .modal-body .row { + height: 100%; + white-space: nowrap; +} +#msgModal .modal-body .row:before{ + content: ""; + display: inline-block; + vertical-align: middle; + width: 0; + /* adjust for white space between pseudo element and next sibling */ + margin-right: -.25em; + /* stretch line height */ + height: 100%; +} + +#msgModal .modal-body .row .msg { + /*display: inline-block; + vertical-align: middle; + white-space: normal;*/ + /* vertical-align: middle; */ + position: absolute; + top: 50%; + -webkit-transform: translateY(-50%); + -ms-transform: translateY(-50%); + transform: translateY(-50%); + padding-left: 70px; + white-space: normal; +} + +/* Functional */ + +#funModal .modal-content .modal-header{ + padding-bottom: 4px; + border-radius: 5px 5px 0 0; +} + + +/* Buttons */ +.btnDefault { + border-radius: 6px; + /*height: 24px;*/ + font-size: 12px; + font-family: "Microsoft Yahei",Arial,Tahoma,Verdana,SimSun; + line-height: 24px; + color: #000; + border: 1px solid #d3d3d3; + text-align: center; + box-shadow: 0 1px 1px rgba(0, 0, 0, .05); + -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .05); + background: linear-gradient(to bottom, #fff, #fafafa); + padding: 0 19px; +} +.btnDefault:hover { + border-color: #4ac9ff; + color: #009ae7; +} +#iconBtn { + padding: 0 15px; +} +#iconBtn span { + font-size: 12px; + margin-top: 4px; + width: 16px; + height: 16px; +} +#iconBtn span.pull-left { + margin-right: 5px; +} +#iconBtn span.pull-right { + margin-left: 5px; +} + +#buttonArea { + text-align: left; +} +#buttonArea div { + margin: 10px 0 20px; +} + +#buttonArea div .btn-block{ + margin: 10px 0; +} + +/* Dropdown*/ + +#dropdown { + text-align: left; +} + +#dropdown div { + margin: 10px 0 20px; +} + +#dropdown .dropup .dropdown-menu { + top: auto; + bottom: 34% !important; + margin-bottom: 1px; +} +#dropdown .dropdown-menu { + top: auto; + left: auto; + margin-bottom: 1px; +} + +#plainDropDown > .dropdownplain { + position: relative; + clear: both; + float: left; + width: 100%; +} +#plainDropDown > .dropdownplain > ul > li { + border: 1px solid #c3c3c3; + border-radius: 4px; + min-width: 200px; +} +#plainDropDown ul li a { + padding: 5px 10px; + color: #333; +} +#plainDropDown > .dropdownplain > ul > li > a > span { + top: 4px; +} +#plainDropDown ul li a:hover { + color: #333; +} +#plainDropDown .dropdown-menu { + width: 100%; +} + + + +/* Credit to bootsnipp.com for the css for the color graph */ +.colorgraph { + height: 5px; + border-top: 0; + background: #c4e17f; + border-radius: 5px; + background-image: -webkit-linear-gradient(left, #c4e17f, #c4e17f 12.5%, #f7fdca 12.5%, #f7fdca 25%, #fecf71 25%, #fecf71 37.5%, #f0776c 37.5%, #f0776c 50%, #db9dbe 50%, #db9dbe 62.5%, #c49cde 62.5%, #c49cde 75%, #669ae1 75%, #669ae1 87.5%, #62c2e4 87.5%, #62c2e4); + background-image: -moz-linear-gradient(left, #c4e17f, #c4e17f 12.5%, #f7fdca 12.5%, #f7fdca 25%, #fecf71 25%, #fecf71 37.5%, #f0776c 37.5%, #f0776c 50%, #db9dbe 50%, #db9dbe 62.5%, #c49cde 62.5%, #c49cde 75%, #669ae1 75%, #669ae1 87.5%, #62c2e4 87.5%, #62c2e4); + background-image: -o-linear-gradient(left, #c4e17f, #c4e17f 12.5%, #f7fdca 12.5%, #f7fdca 25%, #fecf71 25%, #fecf71 37.5%, #f0776c 37.5%, #f0776c 50%, #db9dbe 50%, #db9dbe 62.5%, #c49cde 62.5%, #c49cde 75%, #669ae1 75%, #669ae1 87.5%, #62c2e4 87.5%, #62c2e4); + background-image: linear-gradient(to right, #c4e17f, #c4e17f 12.5%, #f7fdca 12.5%, #f7fdca 25%, #fecf71 25%, #fecf71 37.5%, #f0776c 37.5%, #f0776c 50%, #db9dbe 50%, #db9dbe 62.5%, #c49cde 62.5%, #c49cde 75%, #669ae1 75%, #669ae1 87.5%, #62c2e4 87.5%, #62c2e4); +} + +/* Radio and CheckBoxes------------*/ + + +.funkyradio div { + clear: both; + overflow: hidden; +} + +.funkyradio label { + width: 100%; + border-radius: 3px; + border: 1px solid #D1D3D4; + font-weight: normal; +} + +.funkyradio input[type="radio"]:empty, +.funkyradio input[type="checkbox"]:empty { + display: none; +} + +.funkyradio input[type="radio"]:empty ~ label, +.funkyradio input[type="checkbox"]:empty ~ label { + position: relative; + line-height: 2.5em; + text-indent: 3.25em; + margin-top: 2em; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.funkyradio input[type="radio"]:empty ~ label:before, +.funkyradio input[type="checkbox"]:empty ~ label:before { + position: absolute; + display: block; + top: 0; + bottom: 0; + left: 0; + content: ''; + width: 2.5em; + background: #D1D3D4; + border-radius: 3px 0 0 3px; +} + +.funkyradio input[type="radio"]:hover:not(:checked) ~ label, +.funkyradio input[type="checkbox"]:hover:not(:checked) ~ label { + color: #888; +} + +.funkyradio input[type="radio"]:hover:not(:checked) ~ label:before, +.funkyradio input[type="checkbox"]:hover:not(:checked) ~ label:before { + content: '\2714'; + text-indent: .9em; + color: #C2C2C2; +} + +.funkyradio input[type="radio"]:checked ~ label, +.funkyradio input[type="checkbox"]:checked ~ label { + color: #777; +} + +.funkyradio input[type="radio"]:checked ~ label:before, +.funkyradio input[type="checkbox"]:checked ~ label:before { + content: '\2714'; + text-indent: .9em; + color: #333; + background-color: #ccc; +} + +.funkyradio input[type="radio"]:focus ~ label:before, +.funkyradio input[type="checkbox"]:focus ~ label:before { + box-shadow: 0 0 0 3px #999; +} + +.funkyradio-default input[type="radio"]:checked ~ label:before, +.funkyradio-default input[type="checkbox"]:checked ~ label:before { + color: #333; + background-color: #ccc; +} + +.funkyradio-primary input[type="radio"]:checked ~ label:before, +.funkyradio-primary input[type="checkbox"]:checked ~ label:before { + color: #fff; + background-color: #337ab7; +} + +.funkyradio-success input[type="radio"]:checked ~ label:before, +.funkyradio-success input[type="checkbox"]:checked ~ label:before { + color: #fff; + background-color: #5cb85c; +} + +.funkyradio-danger input[type="radio"]:checked ~ label:before, +.funkyradio-danger input[type="checkbox"]:checked ~ label:before { + color: #fff; + background-color: #d9534f; +} + +.funkyradio-warning input[type="radio"]:checked ~ label:before, +.funkyradio-warning input[type="checkbox"]:checked ~ label:before { + color: #fff; + background-color: #f0ad4e; +} + +.funkyradio-info input[type="radio"]:checked ~ label:before, +.funkyradio-info input[type="checkbox"]:checked ~ label:before { + color: #fff; + background-color: #5bc0de; +} + +.btn-primary { + color: #fff; + background-color: #428bca; + border-color: #357ebd; + min-width:70px +} + +.btn.outline { + background: none; + +} +.btn-primary.outline { + border: 2px solid #0099cc; + color: #0099cc; +} +.modal-header { + /*background-color: #cccccc;*/ + background: linear-gradient(to bottom, #fbfbfb 0, #f6f6f6 70%, #f0f0f0 100%); +} + +/* Tree */ + +#tree1 ul li { + list-style: none; + text-align: left; + margin-top: 7px; +} + +/* Accordian Area */ +#accordionArea .panel-group .panel-title a:before { + font-family: "Glyphicons Halflings"; + content:"\e259";/*\e094*/ + /*position: absolute; + right: 20px;*/ + font-size: 20px; + margin-right: 20px; + text-decoration: none !important; +} +#accordionArea .panel-group .panel-title a.collapsed:before { + content:"\e258";/*\e092*/ +} + +#accordionArea h3 { + width: 100%; + text-align: left; + background-color: #eaeaea; + border: none; + padding: 8px; + font-size: 20px; +} +#accordionArea h3 a { + text-decoration: none; +} +#accordionArea .panel-group .panel { + border: none; + box-shadow: none; + -webkit-box-shadow: none; +} + div.panel-body { + text-align: justify; +} + +/* Tab */ +#tabArea .tab-content div p { + text-align: justify; +} + +/*Table*/ +#tableArea h3 { + text-align: left; + border: none; + padding-top: 5px; +} + +#tableArea h3 span { + font-size: 12px; +} + +/* Vertical Tab */ +.nav-stacked { + margin-top: 20px; + text-align: left; + border:none; +} + +.nav-tabs>li.active>a { + border-top: 3px solid #4ac9ff; +} +.nav-tabs>li.active>a:hover, .nav-tabs>li.active>a:focus { + border-top: 3px solid #4ac9ff; +} +.nav-tabs>li>a:hover { + border-color: transparent; + background-color: transparent; +} +.nav-stacked>li.active>a { + background-color: #ccc; + border: none; + border-radius: 4px; +} + +#vtabArea .tab-content .tab-pane { + text-align: left; +} +#vtabArea .tab-content .tab-pane p { + text-align: justify; +} + +.link_active { + /*background-color: lightslategrey;*/ + font-style: italic; + color: #4ac9ff !important; + background:#fafafa; + border-left: 3px solid #4ac9ff; + + +} + +/*input.ng-invalid { + background-color:yellow; +}*/ + +/* Functional & Notification*/ + +#myModal .modal-header, #msgModal .modal-header, #funModal .modal-header { + padding: 9px 15px; + border-radius: 5px 5px 0 0; + color: #666; +} + +#msgModal .modal-content { + width: 70%; + position: absolute; + left: 15%; + box-shadow: 0 6px 10px rgba(0,0,0,.3); + -webkit-box-shadow: 0 6px 10px rgba(0,0,0,.3); +} +#msgModal .modal-footer, #funModal .modal-footer { + border: none; + margin: 0 auto; + width: 100%; + text-align: center; +} + + +#myInput { + background-image: url('../thirdparty/images/searchicon.png'); /* Add a search icon to input */ + background-position: 10px 9px; /* Position the search icon */ + background-repeat: no-repeat; /* Do not repeat the icon image */ + width: 100%; /* Full-width */ + font-size: 16px; /* Increase font-size */ + padding: 5px 20px 5px 40px; /* Add some padding */ + border: 1px solid #ddd; /* Add a grey border */ + margin-bottom: 12px; /* Add some space below the input */ +} + +#myTable_search { + border-collapse: collapse; /* Collapse borders */ + width: 100%; /* Full-width */ + border: 1px solid #ddd; /* Add a grey border */ + font-size: 18px; /* Increase font-size */ +} + +#myTable_search th, #myTable td { + text-align: left; /* Left-align text */ + padding: 12px; /* Add padding */ +} + +#myTable_search tr { + /* Add a bottom border to all table rows */ + border-bottom: 1px solid #ddd; +} + +#myTable_search tr.header, #myTable tr:hover { + /* Add a grey background color to the table header and on hover */ + background-color: #f1f1f1; +} + +/* List */ +#listArea { + margin-top: 25px; +} +#listArea .list { + /*border: 1px solid #333;*/ + padding: 5px; +} +#listArea .list div { + margin: 5px 0; +} + +#menu_accordion { + margin-top: 20px; +} + +#menu_accordion li a{ + padding-left: 42px; +} +#menu_accordion li a:hover { + color: #4ac9ff; +} + +#rightContainer { + margin-top:20px; +} + +#panel1 li:first-child{ + margin-top:1px; +} + +#menu_accordion #container, #menu_accordion #widgets, #menu_accordion #notifications, #menu_accordion #functional{ + margin-bottom : 0px; + text-align : left; + background-color: #F5F5F5; +} + +#menu_accordion h5{ + margin-bottom : 0px; + text-align : left; + padding-left : 10px; + cursor: pointer; + letter-spacing: 3px; + width:100%; +} + +.tableAlign{ + text-align:left; +} + +.chkboxAlign{ + text-align:center; +} + +#provinceAction { + text-align: left; +} +#provinceTable th { + background-color: #e3e3e3; +} + +#provinceTable.table-striped>tbody>tr:nth-child(even)>td { + background-color:#fafafa; +} + +#provinceTable.table-striped>tbody>tr:nth-child(odd)>td { + background-color:#f7f7f7 +} +#provinceTable.table-striped>tbody>tr:hover { + background-color: red; +} + +.prvdel{ + margin-left:20px; +} + +.shortnoteHeader{ + margin-top:50px; + text-align:left; + font-weight: bold; + font-family: "Microsoft Yahei",Arial,Tahoma,Verdana,SimSun; +} +.shortnoteText{ + margin-top:20px; + text-align:left; + font-size:10px; + font-family: "Microsoft Yahei",Arial,Tahoma,Verdana,SimSun; + +} + +.ztree *{ + font-family: "Microsoft Yahei",Arial,Tahoma,Verdana,SimSun; +} + +.noChild_link_active { + /*background-color: lightslategrey;*/ + font-style: italic; + color: #4ac9ff !important; + background:#fafafa; +} + +.rmpadding{ + padding-left:0px !important; + padding-right:0px !important; +} + +#menu_accordion .collapsed span { + background: url(../thirdparty/images/expand_arrow.png) 1px 3px no-repeat; + display: block; + float: left; + margin-bottom: -1px; + cursor: pointer; + width: 100%; + padding-left: 20px; +} +#menu_accordion span { + background: url(../thirdparty/images/collapse_arrow.png) 1px 3px no-repeat; + display: block; + float: left; + margin-bottom: -1px; + cursor: pointer; + width: 100%; + padding-left: 20px; +} + +.magic-radio + label{ + font-size:14px; +} + +.panelbr{ + border-left:0px; + border-right:0px; +} + +.popover-title { + margin: 0; + padding: 8px 14px; + font-size: 14px; + font-weight: normal; + line-height: 18px;} + +.customPopover{ + padding:10px 20px; +} + + +.css-form input.ng-invalid.ng-touched, textarea.ng-invalid.ng-touched { + background-color: #FA787E; +} + +.css-form input.ng-valid.ng-touched, textarea.ng-valid.ng-touched { + background-color: white; +} + +.errMsg{ + + color:red; + float: left; +} + +.customtable thead{ + background: #ECECEC; +} + +.customtable th,.table td{ + /* padding-top: 3px!important; */ + padding-bottom: 3px!important; +} + +.customtable tr,.customtable td, .customtable th{ + text-align:left; + +} + +.ng-table th.sortable .sort-indicator { + width:100%; + float:right; +} + +.btn-group>.btn.active{ + z-index: 2; + color: #fff; + background-color: #428bca; + border-color: #428bca; + cursor: default; +} + +.customtable tbody tr:hover td{ + background-color: #e6fbe0 !important; +} + +.shortnote{ + width:100%; + float:left; +} + +.pagination{ + float:left; +} + +.btnmrg{ + margin:0 5px 0 5px; +} + +.labelstyle{ + text-align:left; + font-size:12px; + font-family: "Microsoft Yahei",Arial,Tahoma,Verdana,SimSun; +} + +.titlestyle{ + font-size:14px !important; + font-family: "Microsoft Yahei",Arial,Tahoma,Verdana,SimSun; +} \ No newline at end of file diff --git a/portal-common/src/main/webapp/framework/browser/index.html b/common/src/main/webapp/framework/browser/index.html similarity index 100% rename from portal-common/src/main/webapp/framework/browser/index.html rename to common/src/main/webapp/framework/browser/index.html diff --git a/portal-common/src/main/webapp/framework/browser/js/DataService.js b/common/src/main/webapp/framework/browser/js/DataService.js similarity index 100% rename from portal-common/src/main/webapp/framework/browser/js/DataService.js rename to common/src/main/webapp/framework/browser/js/DataService.js diff --git a/common/src/main/webapp/framework/browser/js/app.js b/common/src/main/webapp/framework/browser/js/app.js new file mode 100644 index 00000000..558722b1 --- /dev/null +++ b/common/src/main/webapp/framework/browser/js/app.js @@ -0,0 +1,1361 @@ +/* + + Copyright 2016-2017, Huawei Technologies Co., Ltd. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +*/ + + +var app = angular.module("POCApp", ["ui.router", "ngTable"]) + + /*.run(function($rootScope, $location, $state, LoginService) { + $rootScope.$on("$stateChangeStart", function(event, toState, toParams, fromState, fromParams){ + if (toState.authenticate && !LoginService.isAuthenticated()){ + // User isn’t authenticated + $state.transitionTo("login"); + event.preventDefault(); + } + }); + })*/ + .config(function($stateProvider, $urlRouterProvider, $urlMatcherFactoryProvider){ + //$routeProvider.caseInsensitiveMatch = true; + $urlMatcherFactoryProvider.caseInsensitive(true); + $urlRouterProvider.otherwise('/login'); + //$locationProvider.html5Mode(true).hashPrefix('!'); + $stateProvider + .state('login', { + url : '/login', + templateUrl : 'templates/login.html', + controller : 'LoginController', + authenticate: false + }) + .state('register', { + url : '/register', + templateUrl : 'templates/register.html', + controller : 'registerController', + authenticate: false + }) + .state("home", { + url: "/home", + templateUrl : "templates/home.html", + controller : "homeCtrl", + authenticate: true + }) + .state("home.tree", { + url: "/tree", + templateUrl : "templates/tree.html", + controller : "treeCtrl", + authenticate: true + }) + .state("home.accordion", { + url: "/accordion", + templateUrl : "templates/accordion.html", + controller : "accordionCtrl", + authenticate: true + }) + .state("home.tabs", { + url: "/tabs", + templateUrl : "templates/tabs.html", + controller : "tabsCtrl", + authenticate: true + }) + .state("home.vtabs", { + url: "/vtabs", + templateUrl : "templates/verticalTab.html", + controller : "vTabCtrl", + authenticate: true + }) + .state("home.table", { + url: "/table", + templateUrl : "templates/table.html", + controller : "tableCtrl", + authenticate: true + }) + .state("home.buttons", { + url: "/buttons", + templateUrl : "templates/buttons.html", + controller : "buttonsCtrl", + authenticate: true + }) + /*state for radio button and checkboxes-------------------------------------------------*/ + .state("home.radiobuttons", { + url: "/radiobuttons", + templateUrl : "templates/radioButtons.html", + controller : "radioCtrl", + authenticate: true + }) + .state("home.checkboxes", { + url: "/checkboxes", + templateUrl : "templates/checkBoxes.html", + controller : "checkBoxCtrl", + authenticate: true + }) + .state("home.dropdown", { + url: "/dropdown", + templateUrl: "templates/dropdown.html", + controller: "dropdownCtrl", + authenticate: true + }) + + .state("home.list", { + url: "/list", + /*template:"

Under Progress

",*/ + templateUrl : "templates/list.html", + controller : "listCtrl", + authenticate: true + }) + + .state("home.provinceMgmt", { + url: "/management", + templateUrl : "templates/management.html", + controller : "managementCtrl", + authenticate: true + }) + .state("home.tooltip", { + url: "/textarea", + templateUrl : "templates/textarea.html", + controller : "toolCtrl", + authenticate: true + }) + + .state("home.notification", { + url: "/notification", + templateUrl : "templates/notification.html", + controller : "notificationCtrl", + authenticate: true + }) + .state("home.functional", { + url: "/functional", + templateUrl : "templates/functional.html", + controller : "functionalCtrl", + authenticate: true + }) + + + }) + .controller('LoginController', function($scope, $rootScope, $stateParams, $state, LoginService) { + $rootScope.title = "AngularJS Login Sample"; + + $scope.formSubmit = function() { + LoginService.login($scope.user) + .then(function (data) { + if (data) { + $scope.error = ''; + $scope.user.username = ''; + $scope.user.password = ''; + $state.transitionTo('home.tree'); + } + else { + $scope.error = "Incorrect username/password !"; + } + }, function (reason) { + $scope.error = "Incorrect username/password !"; + }); + }; + + }) + .controller('registerController', function($scope, $state, LoginService){ + $scope.formSubmit = function() { + if($scope.user.password === $scope.user.confpassword) { + LoginService.registerUser($scope.user) + .then(function (data) { + $state.transitionTo("login"); + }, function () { + console.log("Failed to register"); + }); + } + else { + console.log("Password not matched..."); + var dialog_tpl = $(modelTemplate).filter('#personDialog').html(); + var data = {'title':'Error',showClose:true, 'closeBtnTxt':'Ok', 'icon':'glyphicon glyphicon-exclamation-sign','iconColor':'icon_error','msg':'Password and Confirm password does not match.', buttons:[]}; + var html = Mustache.to_html(dialog_tpl, data); + $(html).modal({backdrop: "static"}); //backdrop: "static" - for grayed out and no outside click work, backdrop: false - no grayed out*/ + } + }; + }) + .controller("homeCtrl", function($scope, $state, DataService){ + $scope.message = "Home Page"; + + /*$scope.geticonClass = function() { + if($( "#panel1" ).hasClass( "in" )){ + return "openo_accordion_ui-icon-expand"; + } + else{ + return "openo_accordion_ui-icon-expand.current"; + } + + + }*/ + + + + /* $scope.accordionLoaded = function() { + if(modelTemplate != null) { + console.log("left menu loading.."); + menuaccordion(); + return true; + } + console.log("left menu not loading.."); + return false; + } + + function menuaccordion() { + var accordion_tpl = $(modelTemplate).filter('#menu_accordion').html(); + + $.getJSON('./data/homelinks.json', function (accordion) { + var html = Mustache.to_html(accordion_tpl, accordion.accordion_data); + $('#accordionmenuid').html(html); + }); + }*/ + + }) + + /* Tree Controller */ + .controller("treeCtrl", function($scope,DataService,$log){ + $scope.message = "Tree Data"; + var setting = {}; + /*$scope.treeLoaded = function() { + if(modelTemplate != null) { + console.log("Tree data loading.."); + tree(); + return true; + } + console.log("Tree data not loading.."); + return false; + }*/ + $scope.init = function() { + $scope.param="treeData"; + $scope.shortNote="shortNote"; + DataService.getAllData($scope.param) + .then(function(data){ + $scope.treeData = data; + tree(); + console.log("inside tree"); + $log.info($scope.treeData); + }); + DataService.getAllData($scope.shortNote) + .then(function(data1){ + $scope.treeTip = data1.treeTip; + console.log("inside treeTip"); + $log.info(data1); + }); + } + function tree() { + zNodes = $scope.treeData; + $.fn.zTree.init($("#tree1"), setting, zNodes); + + } + }) + + /* Accordian Controller */ + .controller("accordionCtrl", function($scope,DataService, $log){ + + $scope.message = "Accordion"; + + $scope.accordionLoaded = function() { + if(modelTemplate != null) { + console.log("accordion loading.."); + + accordion(); + return true; + } + console.log("accordion not loading.."); + return false; + } + + $scope.init = function() { + $scope.param="accordionData"; + $scope.accordionTip="shortNote"; + DataService.getAllData($scope.param) + .then(function(data){ + $scope.accordion = data; + accordion(); + console.log("inside accordion"); + $log.info(data); + }); + DataService.getAllData($scope.accordionTip) + .then(function(data){ + $scope.accordionTipData = data.accordionTip; + console.log("inside accordion"); + $log.info(data); + }); + } + + function accordion() { + + var accordion_tpl = $(modelTemplate).filter('#accordion').html(); + console.log("in acc" ); + var html = Mustache.to_html(accordion_tpl, $scope.accordion.accordion_data); + $('#accordion').html(html); + } + }) + .controller("tabsCtrl", function($scope, $state, DataService, $log){ + $scope.message = "Tabs"; + $scope.tabLoaded = function() { + if(modelTemplate != null) { + console.log("Tab is loading.."); + loadTabData(); + return true; + } + console.log("Not ready.."); + return false; + } + + $scope.init = function() { + $scope.param="tabData"; + $scope.tabTip="shortNote"; + DataService.getAllData($scope.param) + .then(function(data){ + $scope.tabdata = data; + loadTabData(); + console.log("inside tabs"); + $log.info(data); + }); + DataService.getAllData($scope.tabTip) + .then(function(data){ + $scope.tabTipData = data.tabTip; + $log.info(data); + }); + } + + function loadTabData() { + var tab_tpl = $(modelTemplate).filter('#tabs').html(); + var html = Mustache.to_html(tab_tpl, $scope.tabdata.tabData); + $('#tabArea').html(html); + } + + }) + .controller("vTabCtrl", function($scope, $state, DataService){ + $scope.message = "Vertical Tabs"; + + $scope.vtabLoaded = function() { + if(modelTemplate != null) { + console.log("Vertical Tab is loading.."); + loadvTabData(); + return true; + } + console.log("Not ready.."); + return false; + } + + $scope.init = function() { + $scope.param="vtabData"; + $scope.vtabTip="shortNote"; + DataService.getAllData($scope.param) + .then(function(vtabdata){ + $scope.data = vtabdata; + loadvTabData(); + console.log("inside vTab"); + }); + DataService.getAllData($scope.vtabTip) + .then(function(vtabdata){ + $scope.vtabTipdata = vtabdata.vtabTip; + console.log("inside vTab"); + }); + } + + function loadvTabData() { + + var vtab_tpl = $(modelTemplate).filter('#vtabs').html(); + var html = Mustache.to_html(vtab_tpl, $scope.data.vtabData); + $('#vtabArea').html(html); + } + }) + .controller("tableCtrl", function($scope, $state, DataService){ + $scope.message = "Tables"; + + $scope.tableLoaded = function() { + if(modelTemplate != null) { + console.log("Table is loading.."); + loadTableData(); + return true; + } + console.log("Not ready.."); + return false; + } + + $scope.init = function() { + $scope.param="tableData"; + $scope.tableTip="shortNote"; + DataService.getAllData($scope.param) + .then(function(data){ + $scope.tableData = data; + loadTableData(); + console.log("inside table"); + }); + + DataService.getAllData($scope.tableTip) + .then(function(data){ + $scope.tableTipData = data.tableTip; + console.log("inside table"); + }); + } + + function loadTableData() { + + var table_tpl = $(modelTemplate).filter('#table').html(); + + var html = Mustache.to_html(table_tpl, $scope.tableData.basic_table_data); + $('#basictableArea').html(html); + + var html = Mustache.to_html(table_tpl, $scope.tableData.str_table_data); + $('#strippedtableArea').html(html); + + var html = Mustache.to_html(table_tpl, $scope.tableData.cond_table_data); + $('#condensedtableArea').html(html); + } + }) + + /* Buttons Controller */ + .controller("buttonsCtrl", function($scope,DataService,$log){ + $scope.message = "Types of Buttons"; + $scope.buttonTip="shortNote"; + + $scope.init = function() { + $scope.param="buttonsData"; + DataService.getAllData($scope.param) + .then(function(data){ + $scope.buttons = data; + defaultButtons(); + visualButtons(); + sizeButtons(); + iconButtons(); + console.log("inside accordion"); + $log.info(data); + }); + DataService.getAllData($scope.buttonTip) + .then(function(data){ + $scope.buttonTipData = data.buttonTip; + console.log("inside table"); + }); + } + + function defaultButtons(){ + console.log("Default buttons Loaded.."); + //Here your view content is fully loaded !! + var def_button_tpl = $(modelTemplate).filter('#defaultButtons').html(); + var def_icon_button_tpl = $(modelTemplate).filter('#defaultIconButtons').html(); + + var html = Mustache.to_html(def_button_tpl, $scope.buttons.default_btn_data.def_button); + $('#defaultButtonArea').html(html); + + var html = Mustache.to_html(def_icon_button_tpl, $scope.buttons.default_btn_data.def_print_button); + $('#defaultButtonArea').append(html); + + var html = Mustache.to_html(def_icon_button_tpl, $scope.buttons.default_btn_data.def_print_button_right); + $('#defaultButtonArea').append(html); + } + + + function visualButtons(){ + console.log("Loaded.."); + //Here your view content is fully loaded !! + var visual_button_tpl = $(modelTemplate).filter('#visualButtons').html(); + + var html = Mustache.to_html(visual_button_tpl, $scope.buttons.visual_btn_data.vis_pri_btn_data); + $('#visualButtonArea').html(html); + + var html = Mustache.to_html(visual_button_tpl, $scope.buttons.visual_btn_data.vis_sec_btn_data); + $('#visualButtonArea').append(html); + + var html = Mustache.to_html(visual_button_tpl, $scope.buttons.visual_btn_data.vis_succ_btn_data); + $('#visualButtonArea').append(html); + + var html = Mustache.to_html(visual_button_tpl, $scope.buttons.visual_btn_data.vis_inf_btn_data); + $('#visualButtonArea').append(html); + + var html = Mustache.to_html(visual_button_tpl, $scope.buttons.visual_btn_data.vis_warn_btn_data); + $('#visualButtonArea').append(html); + + var html = Mustache.to_html(visual_button_tpl, $scope.buttons.visual_btn_data.vis_dang_btn_data); + $('#visualButtonArea').append(html); + + var html = Mustache.to_html(visual_button_tpl, $scope.buttons.visual_btn_data.vis_link_btn_data); + $('#visualButtonArea').append(html); + } + + function sizeButtons() { + var size_button_tpl = $(modelTemplate).filter('#sizeButtons').html(); + + var html = Mustache.to_html(size_button_tpl, $scope.buttons.diffSize_btn_data.size_small_btn_data); + $('#sizeButtonArea').html(html); + + var html = Mustache.to_html(size_button_tpl, $scope.buttons.diffSize_btn_data.size_large_btn_data); + $('#sizeButtonArea').append(html); + + var html = Mustache.to_html(size_button_tpl, $scope.buttons.diffSize_btn_data.size_block_btn_data); + $('#sizeButtonArea').append(html); + + } + + function iconButtons() { + var icon_button_tpl = $(modelTemplate).filter('#iconButtons').html(); + + var html = Mustache.to_html(icon_button_tpl, $scope.buttons.icon_btn_data.search_icon_btn_data); + $('#iconButtonArea').html(html); + + var html = Mustache.to_html(icon_button_tpl, $scope.buttons.icon_btn_data.search_icon_styled_btn_data); + $('#iconButtonArea').append(html); + + var html = Mustache.to_html(icon_button_tpl, $scope.buttons.icon_btn_data.print_icon_btn_data); + $('#iconButtonArea').append(html); + + } + + $scope.defaultButtonsLoaded = function() { + if(modelTemplate != null) { + console.log("default buttons loading.."); + defaultButtons(); + return true; + } + console.log("default buttons not loading.."); + return false; + } + + $scope.visualButtonsLoaded = function() { + if(modelTemplate != null) { + console.log("visual buttons loading.."); + visualButtons(); + return true; + } + console.log("visual buttons not loading.."); + return false; + } + + $scope.sizeButtonsLoaded = function() { + if(modelTemplate != null) { + console.log("size buttons loading.."); + sizeButtons(); + return true; + } + console.log("size buttons not loading.."); + return false; + } + + $scope.iconButtonsLoaded = function() { + if(modelTemplate != null) { + console.log("icon buttons loading.."); + iconButtons(); + return true; + } + console.log("icon buttons not loading.."); + return false; + } + }) + /* Drop down----------------------*/ + .controller("dropdownCtrl", function($scope, DataService) { + $scope.message = "You selected drop down"; + $scope.subIsLoaded = function () { + if (modelTemplate != null) { + console.log("Loading.."); + loadDrop(); + return true; + } + console.log("Not Loaded.."); + return false; + } + + $scope.init = function() { + $scope.param="dropdownData"; + $scope.dropdownTip="shortNote"; + DataService.getAllData($scope.param) + .then(function(data){ + $scope.dropdown = data; + loadDrop(); + }); + DataService.getAllData($scope.dropdownTip) + .then(function(data){ + $scope.dropdownTipData = data.dropdownTip; + console.log("inside table"); + }); + } + function loadDrop() { + var drop_tpl = $(modelTemplate).filter('#dropDown').html(); + var dropHeader_tpl = $(modelTemplate).filter('#dropDownHeader').html(); + var dropSimple_tpl = $(modelTemplate).filter('#simpleDropdownTmpl').html(); + + var html = Mustache.to_html(drop_tpl, $scope.dropdown.dropped_down_data); + $('#dropArea').html(html); + + var html = Mustache.to_html(drop_tpl, $scope.dropdown.dropped_up_data); + $('#dropAreaUP').html(html); + + var html = Mustache.to_html(dropHeader_tpl, $scope.dropdown.dropHeader_data); + $('#dropAreaHeader').html(html); + + var html = Mustache.to_html(dropSimple_tpl, $scope.dropdown.dropSimple_data); + $('#plainDropDown').html(html); + + } + }) + .controller("radioCtrl", function($scope, DataService, $log) { + $scope.message = "You selected radio button tab"; + var lodedOnce = false; + $scope.subIsLoaded = function() { + if(modelTemplate != null) { + console.log("Loading.."); + loadRadioBtn(); + return true; + } + console.log("Not Loaded.."); + return false; + } + + $scope.init = function() { + $scope.param="radioData"; + $scope.radioTip="shortNote"; + DataService.getAllData($scope.param) + .then(function(data){ + $scope.radioButton = data; + loadRadioBtn(); + console.log("inside button"); + $log.info(data); + }); + + DataService.getAllData($scope.radioTip) + .then(function(data){ + $scope.radioTipData = data.radioTip; + console.log("inside table"); + }); + } + function loadRadioBtn(){ + console.log("lodedOnce : "+lodedOnce); + + var radio_button_tpl = $(modelTemplate).filter('#radioButtons').html(); + var html = Mustache.to_html(radio_button_tpl, $scope.radioButton .radio_btn_default_data); + $('#radioBtnArea').html(html); + + var html = Mustache.to_html(radio_button_tpl, $scope.radioButton .radio_btn_primary_data); + $('#radioBtnArea').append(html); + + var html = Mustache.to_html(radio_button_tpl, $scope.radioButton .radio_btn_success_data); + $('#radioBtnArea').append(html); + + var html = Mustache.to_html(radio_button_tpl, $scope.radioButton .radio_btn_danger_data); + $('#radioBtnArea').append(html); + + var html = Mustache.to_html(radio_button_tpl, $scope.radioButton .radio_btn_Warn_data); + $('#radioBtnArea').append(html); + + var html = Mustache.to_html(radio_button_tpl, $scope.radioButton .radio_btn_info_data); + $('#radioBtnArea').append(html); + + } + }) + .controller("checkBoxCtrl", function($scope, DataService) { + $scope.message = "You selected checkbox tab"; + $scope.subIsLoaded = function() { + if(modelTemplate != null) { + console.log("Loading.."); + loadCheckBox(); + return true; + } + console.log("Not Loaded.."); + return false; + } + $scope.init = function() { + $scope.param="checkboxData"; + $scope.checkboxTip="shortNote"; + DataService.getAllData($scope.param) + .then(function(data){ + $scope.checkBox = data; + loadCheckBox(); + }); + DataService.getAllData($scope.checkboxTip) + .then(function(data){ + $scope.checkboxTipData = data.checkboxTip; + console.log("inside table"); + }); + } + function loadCheckBox() { + var check_box_tpl = $(modelTemplate).filter('#checkBoxes').html(); + + var html = Mustache.to_html(check_box_tpl, $scope.checkBox.checkbox_default_data); + $('#CheckBoxArea').html(html); + + var html = Mustache.to_html(check_box_tpl, $scope.checkBox.checkbox_primary_data); + $('#CheckBoxArea').append(html); + + var html = Mustache.to_html(check_box_tpl, $scope.checkBox.checkbox_success_data); + $('#CheckBoxArea').append(html); + + var html = Mustache.to_html(check_box_tpl, $scope.checkBox.checkbox_danger_data); + $('#CheckBoxArea').append(html); + + var html = Mustache.to_html(check_box_tpl, $scope.checkBox.checkbox_warn_data); + $('#CheckBoxArea').append(html); + + var html = Mustache.to_html(check_box_tpl, $scope.checkBox.checkbox_info_data); + $('#CheckBoxArea').append(html); + + /*$.getJSON('./data/checkboxData.json', function(c_data) { + var html = Mustache.to_html(check_box_tpl, c_data.checkbox_default_data); + $('#CheckBoxArea').html(html); + + var html = Mustache.to_html(check_box_tpl, c_data.checkbox_primary_data); + $('#CheckBoxArea').append(html); + + var html = Mustache.to_html(check_box_tpl, c_data.checkbox_success_data); + $('#CheckBoxArea').append(html); + + var html = Mustache.to_html(check_box_tpl, c_data.checkbox_danger_data); + $('#CheckBoxArea').append(html); + + var html = Mustache.to_html(check_box_tpl, c_data.checkbox_warn_data); + $('#CheckBoxArea').append(html); + + var html = Mustache.to_html(check_box_tpl, c_data.checkbox_info_data); + $('#CheckBoxArea').append(html); + });*/ + } + }) + + /* Reference Code -- Remove after use */ + .controller("coursesCtrl", function($scope, DataService){ + $scope.message = "Courses Offered"; + $scope.courses = ["Java", "C/C++", "JavaScript", "AngularJS", "NodeJS", "HTML", "Python", "Action Script"]; + $scope.showDialog = function() { + /*var dialog_tpl = $(modelTemplate).filter('#personDialog').html(); + var data = {'title':'Shahid Noor','showClose':true,'closeBtnTxt':'Cancel','icon':'glyphicon glyphicon-off','iconColor':'icon_warn','msg':'Good! There is a message that can be used to show on the screen. There is a message that can be used to show on the screen', buttons:[{"text": "Ok", 'action':'callThis()'},{"text": "Show"}]}; + var html = Mustache.to_html(dialog_tpl, data); + $(html).modal({backdrop: "static"}); //backdrop: "static" - for grayed out and no outside click work, backdrop: false - no grayed out*/ + + var def_button_tpl = $(modelTemplate).filter('#visualButtons').html(); + var def_btn_data = {'title':"asas", 'type':'primary'}; + var html = Mustache.to_html(def_button_tpl, def_btn_data); + $('#sampleArea').html(html); + }; + + // $scope.$on('$viewContentLoaded', function(){ + function loaded(){ + console.log("Loaded.."); + //Here your view content is fully loaded !! + var def_button_tpl = $(modelTemplate).filter('#dropDown').html(); + var def_btn_data = {'title':'Shahid Noor','position':'down', items:[{"itemLabel": "Ok"},{"itemLabel": "Show"}]}; + var html = Mustache.to_html(def_button_tpl, def_btn_data); + $('#sampleArea').html(html); + + } + $scope.subIsLoaded = function() { + if(modelTemplate != null) { + console.log("Loading.."); + loaded(); + return true; + } + console.log("Not Loaded.."); + return false; + } + }) + + .controller("toolCtrl", function($scope, DataService, $compile, $log){ + $scope.toolTip = "shortNote"; + $scope.toolTipContent = "textArea"; + + DataService.getAllData($scope.toolTipContent) + .then(function(data){ + $log.info(data.Note.placement); + $scope.noteContent = data.Note.message; + $scope.notePlacement = data.Note.placement; + $scope.errMsg = data.ErrMsg; + console.log($scope.noteContent + " " + $scope.notePlacement); + loadTextArea(); + }); + DataService.getAllData($scope.toolTip) + .then(function(data){ + $scope.toolTipData = data.toolTip; + //loadTextArea(); + }); + + //$('[data-toggle="popover"]').popover(); + + + + function loadTextArea() { + var text = $(modelTemplate).filter('#textfield').html(); + var email = $(modelTemplate).filter('#email').html(); + var url = $(modelTemplate).filter('#url').html(); + var password = $(modelTemplate).filter('#password').html(); + var numeric = $(modelTemplate).filter('#numeric').html(); + var dot = $(modelTemplate).filter('#dot').html(); + var dateinput = $(modelTemplate).filter('#dateinput').html(); + var monthinput = $(modelTemplate).filter('#monthinput').html(); + var weekinput = $(modelTemplate).filter('#weekinput').html(); + var timeinput = $(modelTemplate).filter('#timeinput').html(); + var ipv4 = $(modelTemplate).filter('#ipv4').html(); + var ipv6 = $(modelTemplate).filter('#ipv6').html(); + var textarea = $(modelTemplate).filter('#textarea').html(); + + var note = $(modelTemplate).filter('#note').html(); + + var dataText = {"errMsg" : {"textboxErr" : "The name is required.", "modalVar":"province.province_name", "placeholder":""}}; + var html = Mustache.to_html(text, dataText.errMsg); + $('#fname').html($compile(html)($scope)); + + var html = Mustache.to_html(email, $scope.errMsg); + $('#email').html($compile(html)($scope)); + + var html = Mustache.to_html(url, $scope.errMsg); + $('#url').html($compile(html)($scope)); + + var html = Mustache.to_html(password, $scope.errMsg); + $('#password').html($compile(html)($scope)); + + var dataNum = {"errMsg" : {"numericErr" : "The number is required.", "modalVar":"province.port", "placeholder":""}}; + var html = Mustache.to_html(numeric, dataNum.errMsg); + $('#numeric').html($compile(html)($scope)); + + + var html = Mustache.to_html(dot, $scope.errMsg); + $('#dot').html($compile(html)($scope)); + + var html = Mustache.to_html(dateinput, $scope.errMsg); + $('#dateinput').html($compile(html)($scope)); + + var html = Mustache.to_html(monthinput, $scope.errMsg); + $('#monthinput').html($compile(html)($scope)); + + var html = Mustache.to_html(weekinput, $scope.errMsg); + $('#weekinput').html($compile(html)($scope)); + + var html = Mustache.to_html(timeinput, $scope.errMsg); + $('#timeinput').html($compile(html)($scope)); + + var dataIP = {"errMsg" : {"ipv4Err" : "The ipv4 is required.", "modalVar":"province.ip", "placeholder":""}}; + var html = Mustache.to_html(ipv4, dataIP.errMsg); + $('#ipv4').html($compile(html)($scope)); + + var html = Mustache.to_html(ipv6, $scope.errMsg); + $('#ipv6').html($compile(html)($scope)); + + var html = Mustache.to_html(textarea, $scope.errMsg); + $('#textarea').html($compile(html)($scope)); + + + + var html = Mustache.to_html(note, {"placement":$scope.notePlacement}); + $('#note').html(html); + $("#noteanchor").popover({ + template: '
'+$scope.noteContent+'
' + }); + + $scope.validatetextbox = function (value){ + if($scope.textbox) { + $scope.textboxErr = false; + } + else + $scope.textboxErr = true; + + } + $scope.validateemail = function (value){ + if($scope.email) { + $scope.emailErr = false; + } + else + $scope.emailErr = true; + + } + $scope.validateurl = function (value){ + if($scope.url) { + $scope.urlErr = false; + } + else + $scope.urlErr = true; + + } + $scope.validatepassword = function (value){ + if($scope.password) { + $scope.passwordErr = false; + } + else + $scope.passwordErr = true; + + } + $scope.validatenumeric = function (value){ + if($scope.number) { + $scope.numericErr = false; + } + else + $scope.numericErr = true; + + } + $scope.validatedot = function (value){ + if($scope.datetime) { + $scope.dotErr = false; + } + else + $scope.dotErr = true; + + } + $scope.validatedateinput = function (value){ + if($scope.date) { + $scope.dateinputErr = false; + } + else + $scope.dateinputErr = true; + + } + $scope.validatemonthinput = function (value){ + if($scope.month) { + $scope.monthinputErr = false; + } + else + $scope.monthinputErr = true; + + } + $scope.validateweek = function (value){ + if($scope.week) { + $scope.weekinputErr = false; + } + else + $scope.weekinputErr = true; + + } + $scope.validatetime = function (value){ + if($scope.time) { + $scope.timeinputErr = false; + } + else + $scope.timeinputErr = true; + + } + $scope.validateipv4 = function (value){ + if($scope.ipv4) { + $scope.ipv4Err = false; + } + else + $scope.ipv4Err = true; + + } + $scope.validateipv6 = function (value){ + if($scope.ipv6) { + $scope.ipv6Err = false; + } + else + $scope.ipv6Err = true; + + } + + $scope.validatetextarea = function (value){ + if($scope.textarea) { + $scope.textareaErr = false; + } + else + $scope.textareaErr = true; + + } + + + + } + + + }) + + + + + + + + .controller("notificationCtrl", function($scope, DataService){ + $scope.message = "Notification and Messages"; + $scope.notificationTip = "shortNote"; + + var dialog_tpl; + $scope.templateLoaded = function() { + if(modelTemplate != null) { + console.log("Loading.."); + + return true; + } + console.log("Not Loaded.."); + return false; + } + $scope.init = function() { + $scope.param="notificationData"; + $scope.notificationTip="shortNote"; + DataService.getAllData($scope.param) + .then(function(data){ + $scope.notification = data; + }); + DataService.getAllData($scope.notificationTip) + .then(function(data){ + $scope.notificationTipData = data.notificationTip; + }); + } + + $scope.showError = function() { + dialog_tpl = $(modelTemplate).filter('#personDialog').html(); + var html = Mustache.to_html(dialog_tpl, $scope.notification.err_data); + $(html).modal({backdrop: "static"});//backdrop: "static" - for grayed out and no outside click work, backdrop: false - no grayed out*! + } + + $scope.showWarning = function() { + dialog_tpl = $(modelTemplate).filter('#personDialog').html(); + var html = Mustache.to_html(dialog_tpl, $scope.notification.warn_data); + $(html).modal(); + } + + $scope.showInfo = function() { + dialog_tpl = $(modelTemplate).filter('#personDialog').html(); + var html = Mustache.to_html(dialog_tpl, $scope.notification.info_data); + $(html).modal(); + } + $scope.showConfirm = function() { + dialog_tpl = $(modelTemplate).filter('#personDialog').html(); + var html = Mustache.to_html(dialog_tpl, $scope.notification.confirm_data); + $(html).modal({backdrop: "static"}); //backdrop: "static" - for grayed out and no outside click work, backdrop: false - no grayed out*!/ + } + + }) + + .controller("functionalCtrl", function($scope, DataService){ + $scope.message = "Functional Flow"; + + var dialog_tpl; + $scope.templateLoaded = function() { + if(modelTemplate != null) { + console.log("Loading.."); + + return true; + } + console.log("Not Loaded.."); + return false; + } + + $scope.init = function() { + $scope.param="functionalData"; + $scope.functionalTip="shortNote"; + DataService.getAllData($scope.param) + .then(function(data){ + $scope.functional = data; + }); + DataService.getAllData($scope.functionalTip) + .then(function(data){ + $scope.functionalTipData = data.functionalTip; + }); + } + $scope.showCreate = function() { + dialog_tpl = $(modelTemplate).filter('#functionalDialog').html(); + var html = Mustache.to_html(dialog_tpl, $scope.functional.create_data); + $(html).modal(); + } + $scope.showModify = function() { + dialog_tpl = $(modelTemplate).filter('#functionalDialog').html(); + var html = Mustache.to_html(dialog_tpl, $scope.functional.modify_data); + $(html).modal(); + } + $scope.showDelete = function() { + dialog_tpl = $(modelTemplate).filter('#functionalDialog').html(); + var html = Mustache.to_html(dialog_tpl, $scope.functional.delete_data); + $(html).modal(); + } + $scope.showWorkflow = function() { + dialog_tpl = $(modelTemplate).filter('#functionalDialog').html(); + var html = Mustache.to_html(dialog_tpl, $scope.functional.workflow_data); + $(html).modal(); + } + }) + + .controller("listCtrl", function($scope, $log, DataService){ + $scope.message = "List Page"; + $scope.listTip = "shortNote"; + $scope.init = function() { + console.log("Shahid... ng-init"); + $scope.param="list"; + DataService.getAllData($scope.param) + .then(function(data){ + $scope.mainlistItem = data; + }, function(reason){ + $scope.portfolios = []; + + }); + + DataService.getAllData($scope.listTip) + .then(function(data){ + $scope.listTipData = data.listTip; + }); + } + $scope.loadSubMenuPage = function(index) { + $log.info($scope.mainlistItem); + $scope.subMenuListItem = $scope.mainlistItem[index].subMenu; + $scope.subsubMenuListItem = []; + } + $scope.loadSubSubMenuPage = function(index) { + $log.info($scope.subMenuListItem); + console.log("index: "+index); + $scope.subsubMenuListItem = $scope.subMenuListItem[index].subsubMenu; + } + }) + + .controller("managementCtrl", function($scope, $log, DataService, $state, $compile, NgTableParams){ + $scope.message = "Management"; + $scope.provinceTip = "shortNote"; + /*$scope.provinceData = [ + {id:1, province_name:'First', ip:'192.168.1.45', port:'8080'}, + {id:2, province_name:'Second', ip:'192.168.1.5', port:'8081'}, + {id:3, province_name:'Third', ip:'192.168.1.15', port:'8082'}, + {id:4, province_name:'Fourth', ip:'192.168.1.28', port:'8083'}, + {id:5, province_name:'Fifth', ip:'192.168.1.19', port:'8084'} + ];*/ + + $scope.init = function() { + console.log("Shahid... ng-init"); + DataService.getAllProvinceData() + .then(function(data){ + $scope.provinceData = data.provinceData; + console.log("Data: "); + loadButtons(); + $log.info(data.provinceData); + }, function(reason){ + $scope.message = "Error is :" + JSON.stringify(reason); + }); + + DataService.getAllData($scope.provinceTip) + .then(function(data){ + $scope.provinceTipData = data.provinceTip; + }); + } + + /*DataService.getAllProvinceData() + .then(function(data){ + $scope.provinceData = data.provinceData; + console.log("Data: "); + $log.info(data.provinceData); + }, function(reason){ + $scope.message = "Error is :" + JSON.stringify(reason); + });*/ + /*DataService.getAllData($scope.provinceTip) + .then(function(data){ + $scope.provinceTipData = data.provinceTip; + });*/ + + function loadButtons() { + var def_button_tpl = $(modelTemplate).filter('#defaultButtons').html(); + var add_data = {"title":"Add", "clickAction":"showAddModal()"}; + var delete_data = {"title":"Delete Selected", "clickAction":"deleteData()"}; + var addhtml = Mustache.to_html(def_button_tpl, add_data); + var deletehtml = Mustache.to_html(def_button_tpl, delete_data); + $('#provinceAction').html($compile(addhtml)($scope)); + $('#provinceAction').append($compile(deletehtml)($scope)); + + $scope.checkboxes = { 'checked': false, items: {} }; + + //var data = [{id: 1, name: "Moroni", age: 50}, {id: 2, name: "ABC", age: 30}, {id: 3, name: "Morhoni", age: 10}, {id: 4, name: "DABC", age: 31}, {id: 5, name: "Noor", age: 30}, {id: 6, name: "ABCD", age: 40}, {id: 7, name: "DABC", age: 31}, {id: 8, name: "Noor", age: 30}, {id: 9, name: "ABCD", age: 40}, {id: 10, name: "DABC", age: 31}, {id: 11, name: "Noor", age: 30}, {id: 12, name: "ABCD", age: 40}]; + $scope.tableParams = new NgTableParams({count: 5, sorting: {province_name: 'asc'} //{page: 1,count: 10,filter: {name: 'M'},sorting: {name: 'desc'} + }, { counts:[5, 10, 20, 50], dataset: $scope.provinceData}); + + $scope.$watch('checkboxes.checked', function(value) { + angular.forEach($scope.provinceData, function(item) { + if (angular.isDefined(item.id)) { + $scope.checkboxes.items[item.id] = value; + } + }); + }); + + var text = $(modelTemplate).filter('#textfield').html(); + var ipv4 = $(modelTemplate).filter('#ipv4').html(); + var number = $(modelTemplate).filter('#numeric').html(); + + var dataText = {"ErrMsg" : {"textboxErr" : "The name is required.", "modalVar":"province.province_name", "placeholder":"Name"}}; + $('#myModal .provinceName').html($compile(Mustache.to_html(text, dataText.ErrMsg))($scope)); + + var dataIP = {"ErrMsg" : {"ipv4Err" : "The ipv4 is required.", "modalVar":"province.ip", "placeholder":"IP Address"}}; + $('#myModal .ipAddress').html($compile(Mustache.to_html(ipv4, dataIP.ErrMsg))($scope)); + + var dataNum = {"ErrMsg" : {"numericErr" : "The number is required.", "modalVar":"province.port", "placeholder":"Port"}}; + $('#myModal .port').html($compile(Mustache.to_html(number, dataNum.ErrMsg))($scope)); + + var modelSubmit_data = {"title":"Submit", "clickAction":"saveData(province.id)"}; + var modelSubmit_html = Mustache.to_html(def_button_tpl, modelSubmit_data); + $('#myModal #footerBtns').html($compile(modelSubmit_html)($scope)); + + var modelDelete_data = {"title":"Close", "clickAction":"closeModal()"}; + var modelDelete_html = Mustache.to_html(def_button_tpl, modelDelete_data); + $('#myModal #footerBtns').append($compile(modelDelete_html)($scope)); + } + + $scope.validatetextbox = function (value){ + if($scope.province.province_name) { + $scope.textboxErr = false; + } + else + $scope.textboxErr = true; + } + $scope.validateipv4 = function (value){ + if($scope.province.ip) { + $scope.ipv4Err = false; + } + else + $scope.ipv4Err = true; + } + $scope.validatenumeric = function (value){ + if($scope.province.port) { + $scope.numericErr = false; + } + else + $scope.numericErr = true; + } + + $scope.closeModal = function() { + console.log("Closing Modal..."); + $('#myModal').modal('hide'); + } + + + $scope.checkAll = function() { + console.log("Checked .."); + angular.forEach($scope.provinceData, function(data) { + //data.select = $scope.selectAll; + $scope.checkboxes.items[user.id] + }); + }; + + $scope.showAddModal = function() { + console.log("Showing Modal to Add data"); + $scope.province = {}; + $scope.textboxErr = false; + $scope.ipv4Err = false; + $scope.numericErr = false; + $("#myModal").modal(); + } + $scope.saveData = function(id) { + if(id) { + //edit data + console.log("Editing data.." + JSON.stringify($scope.province)); + DataService.editProvinceData($scope.province) + .then(function (data) { + $scope.message = "Success :-)"; + $state.reload(); + //$state.go($state.current.name, {}, {reload: true}) + }, + function (reason) { + //$log.info(reason); + $scope.message = reason.status + " " + reason.statusText; + }); + } + else { + console.log("Adding data.." + JSON.stringify($scope.province)); + DataService.addProvinceData($scope.province) + .then(function (data) { + $scope.message = "Success :-)"; + $state.reload(); + //$state.go($state.current.name, {}, {reload: true}) + }, + function (reason) { + //$log.info(reason); + $scope.message = reason.status + " " + reason.statusText; + }); + } + $('#myModal').modal('hide'); + } + + $scope.deleteData = function() { + var deleteArr = []; + //$log.info($scope.checkboxes); + angular.forEach($scope.checkboxes.items, function(value , key) { + //$log.info(data); + if(value) { + deleteArr.push(key); + } + }); + + console.log("To be deleted : "+deleteArr); + //$log.info(deleteArr); + DataService.deleteProvinceData(deleteArr) + .then(function(data){ + $scope.message = "Successfully deleted :-)"; + $state.reload(); + }, + function(reason){ + //$log.info(reason); + $scope.message = reason.status + " " + reason.statusText; + }); + } + + $scope.deleteIndividualData = function(id) { + var deleteArr = []; + //$log.info($scope.checkboxes); + deleteArr.push(id); + + console.log("To be deleted : "+deleteArr); + //$log.info(deleteArr); + DataService.deleteProvinceData(deleteArr) + .then(function(data){ + $scope.message = "Successfully deleted :-)"; + $state.reload(); + }, + function(reason){ + //$log.info(reason); + $scope.message = reason.status + " " + reason.statusText; + }); + } + + $scope.editData = function(id) { + $scope.textboxErr = false; + $scope.ipv4Err = false; + $scope.numericErr = false; + console.log("To be edited : " + id); + var dataFound = false; + angular.forEach($scope.provinceData, function(data) { + if(!dataFound) { + if (data.id == id) { + console.log("Found : " + data.id); + $scope.province = data; + /*$scope.province.province_name = data.province_name; + $scope.province.ip = data.ip; + $scope.province.port = data.port;*/ + + $("#myModal").modal(); + dataFound = true; + } + } + }); + } + + }) + +var modelTemplate; +function loadTemplate() { + $.get('template.html', function(template) { + modelTemplate = template; + }); +} + +function callThis() { + alert("Going Great!"); +} + +function searchTable() { + var filter, table, tr, td; + filter = $("#myInput").val().toUpperCase(); + table = $("#myTable_search"); + tr = $("#myTable_search tr"); + + // Loop through all table rows, and hide those who don't match the search query + for (var i = 0; i < tr.length; i++) { + td = tr[i].getElementsByTagName("td")[0]; + if (td) { + if (td.innerHTML.toUpperCase().indexOf(filter) > -1) { + tr[i].style.display = ""; + } else { + tr[i].style.display = "none"; + } + } + } +} + +function linkClicked(state) { + console.log("State to : " + state); +} \ No newline at end of file diff --git a/common/src/main/webapp/framework/browser/template.html b/common/src/main/webapp/framework/browser/template.html new file mode 100644 index 00000000..5a7900b5 --- /dev/null +++ b/common/src/main/webapp/framework/browser/template.html @@ -0,0 +1,376 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/main/webapp/framework/browser/templates/accordion.html b/common/src/main/webapp/framework/browser/templates/accordion.html new file mode 100644 index 00000000..dcc75473 --- /dev/null +++ b/common/src/main/webapp/framework/browser/templates/accordion.html @@ -0,0 +1,26 @@ + + +
+

Accordion

+
+
+
ShortNote
+
{{accordionTipData}}
+
+
diff --git a/common/src/main/webapp/framework/browser/templates/buttons.html b/common/src/main/webapp/framework/browser/templates/buttons.html new file mode 100644 index 00000000..b80d2e46 --- /dev/null +++ b/common/src/main/webapp/framework/browser/templates/buttons.html @@ -0,0 +1,38 @@ + + +

Types of Buttons

+ +
+

Default Buttons

+
+

Visual Buttons

+
+

Different Sized Buttons

+
+

Icon Buttons

+
+ +
+
+
ShortNote
+
{{buttonTipData}}
+
+ + + diff --git a/common/src/main/webapp/framework/browser/templates/checkBoxes.html b/common/src/main/webapp/framework/browser/templates/checkBoxes.html new file mode 100644 index 00000000..10cf18ab --- /dev/null +++ b/common/src/main/webapp/framework/browser/templates/checkBoxes.html @@ -0,0 +1,25 @@ + + +

Checkboxes

+ +
+
+
ShortNote
+
{{checkboxTipData}}
+
diff --git a/portal-common/src/main/webapp/framework/browser/templates/courses.html b/common/src/main/webapp/framework/browser/templates/courses.html similarity index 100% rename from portal-common/src/main/webapp/framework/browser/templates/courses.html rename to common/src/main/webapp/framework/browser/templates/courses.html diff --git a/common/src/main/webapp/framework/browser/templates/dropdown.html b/common/src/main/webapp/framework/browser/templates/dropdown.html new file mode 100644 index 00000000..1dd3d271 --- /dev/null +++ b/common/src/main/webapp/framework/browser/templates/dropdown.html @@ -0,0 +1,42 @@ + + + +
+

Drop Down

+ + +
+
ShortNote
+
{{dropdownTipData}}
+
+
+ + + + diff --git a/portal-common/src/main/webapp/framework/browser/templates/functional.html b/common/src/main/webapp/framework/browser/templates/functional.html similarity index 100% rename from portal-common/src/main/webapp/framework/browser/templates/functional.html rename to common/src/main/webapp/framework/browser/templates/functional.html diff --git a/portal-common/src/main/webapp/framework/browser/templates/home.html b/common/src/main/webapp/framework/browser/templates/home.html similarity index 100% rename from portal-common/src/main/webapp/framework/browser/templates/home.html rename to common/src/main/webapp/framework/browser/templates/home.html diff --git a/common/src/main/webapp/framework/browser/templates/list.html b/common/src/main/webapp/framework/browser/templates/list.html new file mode 100644 index 00000000..ede8b833 --- /dev/null +++ b/common/src/main/webapp/framework/browser/templates/list.html @@ -0,0 +1,47 @@ + + +
+

{{message}}

+ +
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+ +
+ + +
+
ShortNote
+
{{listTipData}}
+
+
+ diff --git a/common/src/main/webapp/framework/browser/templates/login.html b/common/src/main/webapp/framework/browser/templates/login.html new file mode 100644 index 00000000..3b058c8b --- /dev/null +++ b/common/src/main/webapp/framework/browser/templates/login.html @@ -0,0 +1,40 @@ + + +
+

Login

+ +
+
+
+ +
+ +
+ +
+ +
+ + {{ error }} +
+ Register + +
+
+
\ No newline at end of file diff --git a/common/src/main/webapp/framework/browser/templates/management.html b/common/src/main/webapp/framework/browser/templates/management.html new file mode 100644 index 00000000..d6fbcb2c --- /dev/null +++ b/common/src/main/webapp/framework/browser/templates/management.html @@ -0,0 +1,130 @@ + + +

{{message}}

+

+
+ + +
+
+
+ + + + + + + + + + +
+ + + {{provinceData.province_name}} + + {{provinceData.ip}} + + {{provinceData.port}} + + + +
+ + + + +
+ + + + + +
+
ShortNote
+
{{provinceTipData}}
+
diff --git a/portal-common/src/main/webapp/framework/browser/templates/notification.html b/common/src/main/webapp/framework/browser/templates/notification.html similarity index 100% rename from portal-common/src/main/webapp/framework/browser/templates/notification.html rename to common/src/main/webapp/framework/browser/templates/notification.html diff --git a/common/src/main/webapp/framework/browser/templates/radioButtons.html b/common/src/main/webapp/framework/browser/templates/radioButtons.html new file mode 100644 index 00000000..ce87d2e4 --- /dev/null +++ b/common/src/main/webapp/framework/browser/templates/radioButtons.html @@ -0,0 +1,28 @@ + + + +

Radio Buttons

+ +
+
+
ShortNote
+
{{radioTipData}}
+
+ + diff --git a/common/src/main/webapp/framework/browser/templates/register.html b/common/src/main/webapp/framework/browser/templates/register.html new file mode 100644 index 00000000..1e92385c --- /dev/null +++ b/common/src/main/webapp/framework/browser/templates/register.html @@ -0,0 +1,47 @@ + + +
+

Register

+ +
+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ Login + +
+
+
\ No newline at end of file diff --git a/common/src/main/webapp/framework/browser/templates/table.html b/common/src/main/webapp/framework/browser/templates/table.html new file mode 100644 index 00000000..603c13a8 --- /dev/null +++ b/common/src/main/webapp/framework/browser/templates/table.html @@ -0,0 +1,39 @@ + + +
+

{{message}}

+ +
+

Basic Table (with hover)

+
+ +

Stripped Table (Condensed & with border)

+
+ +

Search Table

+
+ + + +
+
+
ShortNote
+
{{tableTipData}}
+
+
diff --git a/common/src/main/webapp/framework/browser/templates/tabs.html b/common/src/main/webapp/framework/browser/templates/tabs.html new file mode 100644 index 00000000..d2527da7 --- /dev/null +++ b/common/src/main/webapp/framework/browser/templates/tabs.html @@ -0,0 +1,27 @@ + + +
+

{{message}}

+
+ +
+
ShortNote
+
{{tabTipData}}
+
+
\ No newline at end of file diff --git a/common/src/main/webapp/framework/browser/templates/textarea.html b/common/src/main/webapp/framework/browser/templates/textarea.html new file mode 100644 index 00000000..6f263f9d --- /dev/null +++ b/common/src/main/webapp/framework/browser/templates/textarea.html @@ -0,0 +1,121 @@ + + +

Text Area

+ +
+
+ +
+
+ +
+
+ +
+ +
+
+
+
+
+ +
+
+
+
+
+ +
+
+
+
+
+ +
+
+
+
+
+ +
+
+
+
+
+ +
+
+
+
+
+ +
+
+
+
+
+ +
+
+
+
+
+ +
+
+
+
+
+ +
+
+
+
+
+ +
+
+
+
+ + +
+ +
+
+ +
+
+ +
+ +
+
+
+ +
+
+ +
+
+
ShortNote
+
{{toolTipData}}
+
+ + diff --git a/common/src/main/webapp/framework/browser/templates/tree.html b/common/src/main/webapp/framework/browser/templates/tree.html new file mode 100644 index 00000000..47cb1952 --- /dev/null +++ b/common/src/main/webapp/framework/browser/templates/tree.html @@ -0,0 +1,25 @@ + + +

{{message}}

+
+ +
+
ShortNote
+
{{treeTip}}
+
diff --git a/common/src/main/webapp/framework/browser/templates/verticalTab.html b/common/src/main/webapp/framework/browser/templates/verticalTab.html new file mode 100644 index 00000000..41c6b71d --- /dev/null +++ b/common/src/main/webapp/framework/browser/templates/verticalTab.html @@ -0,0 +1,28 @@ + + +
+

{{message}}

+ +
+ +
+
ShortNote
+
{{vtabTipdata}}
+
+
\ No newline at end of file diff --git a/portal-common/src/main/webapp/framework/browser/thirdparty/css/bootstrap.min.css b/common/src/main/webapp/framework/browser/thirdparty/css/bootstrap.min.css similarity index 100% rename from portal-common/src/main/webapp/framework/browser/thirdparty/css/bootstrap.min.css rename to common/src/main/webapp/framework/browser/thirdparty/css/bootstrap.min.css diff --git a/portal-common/src/main/webapp/framework/browser/thirdparty/css/img/Thumbs.db b/common/src/main/webapp/framework/browser/thirdparty/css/img/Thumbs.db similarity index 100% rename from portal-common/src/main/webapp/framework/browser/thirdparty/css/img/Thumbs.db rename to common/src/main/webapp/framework/browser/thirdparty/css/img/Thumbs.db diff --git a/openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle/img/diy/1_close.png b/common/src/main/webapp/framework/browser/thirdparty/css/img/diy/1_close.png similarity index 100% rename from openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle/img/diy/1_close.png rename to common/src/main/webapp/framework/browser/thirdparty/css/img/diy/1_close.png diff --git a/openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle/img/diy/1_open.png b/common/src/main/webapp/framework/browser/thirdparty/css/img/diy/1_open.png similarity index 100% rename from openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle/img/diy/1_open.png rename to common/src/main/webapp/framework/browser/thirdparty/css/img/diy/1_open.png diff --git a/openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle/img/diy/2.png b/common/src/main/webapp/framework/browser/thirdparty/css/img/diy/2.png similarity index 100% rename from openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle/img/diy/2.png rename to common/src/main/webapp/framework/browser/thirdparty/css/img/diy/2.png diff --git a/openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle/img/diy/3.png b/common/src/main/webapp/framework/browser/thirdparty/css/img/diy/3.png similarity index 100% rename from openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle/img/diy/3.png rename to common/src/main/webapp/framework/browser/thirdparty/css/img/diy/3.png diff --git a/openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle/img/diy/4.png b/common/src/main/webapp/framework/browser/thirdparty/css/img/diy/4.png similarity index 100% rename from openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle/img/diy/4.png rename to common/src/main/webapp/framework/browser/thirdparty/css/img/diy/4.png diff --git a/openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle/img/diy/5.png b/common/src/main/webapp/framework/browser/thirdparty/css/img/diy/5.png similarity index 100% rename from openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle/img/diy/5.png rename to common/src/main/webapp/framework/browser/thirdparty/css/img/diy/5.png diff --git a/openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle/img/diy/6.png b/common/src/main/webapp/framework/browser/thirdparty/css/img/diy/6.png similarity index 100% rename from openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle/img/diy/6.png rename to common/src/main/webapp/framework/browser/thirdparty/css/img/diy/6.png diff --git a/openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle/img/diy/7.png b/common/src/main/webapp/framework/browser/thirdparty/css/img/diy/7.png similarity index 100% rename from openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle/img/diy/7.png rename to common/src/main/webapp/framework/browser/thirdparty/css/img/diy/7.png diff --git a/openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle/img/diy/8.png b/common/src/main/webapp/framework/browser/thirdparty/css/img/diy/8.png similarity index 100% rename from openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle/img/diy/8.png rename to common/src/main/webapp/framework/browser/thirdparty/css/img/diy/8.png diff --git a/openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle/img/diy/9.png b/common/src/main/webapp/framework/browser/thirdparty/css/img/diy/9.png similarity index 100% rename from openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle/img/diy/9.png rename to common/src/main/webapp/framework/browser/thirdparty/css/img/diy/9.png diff --git a/openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle/img/line_conn.gif b/common/src/main/webapp/framework/browser/thirdparty/css/img/line_conn.gif similarity index 100% rename from openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle/img/line_conn.gif rename to common/src/main/webapp/framework/browser/thirdparty/css/img/line_conn.gif diff --git a/openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle/img/loading.gif b/common/src/main/webapp/framework/browser/thirdparty/css/img/loading.gif similarity index 100% rename from openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle/img/loading.gif rename to common/src/main/webapp/framework/browser/thirdparty/css/img/loading.gif diff --git a/openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle/img/zTreeStandard.gif b/common/src/main/webapp/framework/browser/thirdparty/css/img/zTreeStandard.gif similarity index 100% rename from openo-portal/portal-common/src/main/webapp/common/thirdparty/zTree/css/zTreeStyle/img/zTreeStandard.gif rename to common/src/main/webapp/framework/browser/thirdparty/css/img/zTreeStandard.gif diff --git a/portal-common/src/main/webapp/framework/browser/thirdparty/css/img/zTreeStandard.png b/common/src/main/webapp/framework/browser/thirdparty/css/img/zTreeStandard.png similarity index 100% rename from portal-common/src/main/webapp/framework/browser/thirdparty/css/img/zTreeStandard.png rename to common/src/main/webapp/framework/browser/thirdparty/css/img/zTreeStandard.png diff --git a/common/src/main/webapp/framework/browser/thirdparty/css/magic-check.css b/common/src/main/webapp/framework/browser/thirdparty/css/magic-check.css new file mode 100644 index 00000000..4a4ccf70 --- /dev/null +++ b/common/src/main/webapp/framework/browser/thirdparty/css/magic-check.css @@ -0,0 +1,123 @@ +@keyframes hover-color { + from { + border-color: #c0c0c0; } + to { + border-color: #3e97eb; } } + +.magic-radio, +.magic-checkbox { + position: absolute; + display: none; } + +.magic-radio[disabled], +.magic-checkbox[disabled] { + cursor: not-allowed; } + +.magic-radio + label, +.magic-checkbox + label { + position: relative; + display: block; + padding-left: 30px; + cursor: pointer; + vertical-align: middle; + font-weight:normal; + text-align: left;} +.magic-radio + label:hover:before, +.magic-checkbox + label:hover:before { + animation-duration: 0.4s; + animation-fill-mode: both; + animation-name: hover-color; } +.magic-radio + label:before, +.magic-checkbox + label:before { + position: absolute; + top: 0; + left: 0; + display: inline-block; + width: 20px; + height: 20px; + content: ''; + border: 1px solid #4ac9ff; } +.magic-radio + label:after, +.magic-checkbox + label:after { + position: absolute; + display: none; + content: ''; } + +.magic-radio[disabled] + label, +.magic-checkbox[disabled] + label { + cursor: not-allowed; + color: #e4e4e4; } +.magic-radio[disabled] + label:hover, .magic-radio[disabled] + label:before, .magic-radio[disabled] + label:after, +.magic-checkbox[disabled] + label:hover, +.magic-checkbox[disabled] + label:before, +.magic-checkbox[disabled] + label:after { + cursor: not-allowed; } +.magic-radio[disabled] + label:hover:before, +.magic-checkbox[disabled] + label:hover:before { + border: 1px solid #e4e4e4; + animation-name: none; } +.magic-radio[disabled] + label:before, +.magic-checkbox[disabled] + label:before { + border-color: #e4e4e4; } + +.magic-radio:checked + label:before, +.magic-checkbox:checked + label:before { + animation-name: none; } + +.magic-radio:checked + label:after, +.magic-checkbox:checked + label:after { + display: block; } + +.magic-radio + label:before { + border-radius: 50%; } + +.magic-radio + label:after { + top: 6px; + left: 6px; + width: 8px; + height: 8px; + border-radius: 50%; + background: #3e97eb; } + +.magic-radio:checked + label:before { + border: 1px solid #3e97eb; } + +.magic-radio:checked[disabled] + label:before { + border: 1px solid #c9e2f9; } + +.magic-radio:checked[disabled] + label:after { + background: #c9e2f9; } + +.magic-checkbox + label:before { + border-radius: 3px; } + +.magic-checkbox + label:after { + top: 2px; + left: 7px; + box-sizing: border-box; + width: 6px; + height: 12px; + transform: rotate(45deg); + border-width: 2px; + border-style: solid; + border-color: #fff; + border-top: 0; + border-left: 0; } + +.magic-checkbox:checked + label:before { + border: #3e97eb; + background: #3e97eb; } + +.magic-checkbox:checked[disabled] + label:before { + border: #c9e2f9; + background: #c9e2f9; } + +.radio-toolbar label { + background:Red; + border:1px solid green; + padding:2px 10px; +} + +.magic-radio:checked + label { + font-weight: bold; +} diff --git a/portal-common/src/main/webapp/framework/browser/thirdparty/css/zTreeStyle.css b/common/src/main/webapp/framework/browser/thirdparty/css/zTreeStyle.css similarity index 100% rename from portal-common/src/main/webapp/framework/browser/thirdparty/css/zTreeStyle.css rename to common/src/main/webapp/framework/browser/thirdparty/css/zTreeStyle.css diff --git a/openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap/fonts/glyphicons-halflings-regular.eot b/common/src/main/webapp/framework/browser/thirdparty/fonts/glyphicons-halflings-regular.eot similarity index 100% rename from openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap/fonts/glyphicons-halflings-regular.eot rename to common/src/main/webapp/framework/browser/thirdparty/fonts/glyphicons-halflings-regular.eot diff --git a/portal-common/src/main/webapp/framework/browser/thirdparty/fonts/glyphicons-halflings-regular.svg b/common/src/main/webapp/framework/browser/thirdparty/fonts/glyphicons-halflings-regular.svg similarity index 100% rename from portal-common/src/main/webapp/framework/browser/thirdparty/fonts/glyphicons-halflings-regular.svg rename to common/src/main/webapp/framework/browser/thirdparty/fonts/glyphicons-halflings-regular.svg diff --git a/openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap/fonts/glyphicons-halflings-regular.ttf b/common/src/main/webapp/framework/browser/thirdparty/fonts/glyphicons-halflings-regular.ttf similarity index 100% rename from openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap/fonts/glyphicons-halflings-regular.ttf rename to common/src/main/webapp/framework/browser/thirdparty/fonts/glyphicons-halflings-regular.ttf diff --git a/openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap/fonts/glyphicons-halflings-regular.woff b/common/src/main/webapp/framework/browser/thirdparty/fonts/glyphicons-halflings-regular.woff similarity index 100% rename from openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap/fonts/glyphicons-halflings-regular.woff rename to common/src/main/webapp/framework/browser/thirdparty/fonts/glyphicons-halflings-regular.woff diff --git a/openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap/fonts/glyphicons-halflings-regular.woff2 b/common/src/main/webapp/framework/browser/thirdparty/fonts/glyphicons-halflings-regular.woff2 similarity index 100% rename from openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap/fonts/glyphicons-halflings-regular.woff2 rename to common/src/main/webapp/framework/browser/thirdparty/fonts/glyphicons-halflings-regular.woff2 diff --git a/openo-portal/portal-common/src/main/webapp/common/image/collapse_arrow.png b/common/src/main/webapp/framework/browser/thirdparty/images/collapse_arrow.png similarity index 100% rename from openo-portal/portal-common/src/main/webapp/common/image/collapse_arrow.png rename to common/src/main/webapp/framework/browser/thirdparty/images/collapse_arrow.png diff --git a/openo-portal/portal-common/src/main/webapp/common/image/expand_arrow.png b/common/src/main/webapp/framework/browser/thirdparty/images/expand_arrow.png similarity index 100% rename from openo-portal/portal-common/src/main/webapp/common/image/expand_arrow.png rename to common/src/main/webapp/framework/browser/thirdparty/images/expand_arrow.png diff --git a/openo-portal/portal-common/src/main/webapp/common/image/openo.png b/common/src/main/webapp/framework/browser/thirdparty/images/openo.png similarity index 100% rename from openo-portal/portal-common/src/main/webapp/common/image/openo.png rename to common/src/main/webapp/framework/browser/thirdparty/images/openo.png diff --git a/portal-common/src/main/webapp/framework/browser/thirdparty/images/searchicon.png b/common/src/main/webapp/framework/browser/thirdparty/images/searchicon.png similarity index 100% rename from portal-common/src/main/webapp/framework/browser/thirdparty/images/searchicon.png rename to common/src/main/webapp/framework/browser/thirdparty/images/searchicon.png diff --git a/common/src/main/webapp/framework/browser/thirdparty/js/angular-ui-router.min.js b/common/src/main/webapp/framework/browser/thirdparty/js/angular-ui-router.min.js new file mode 100644 index 00000000..ef1e08e2 --- /dev/null +++ b/common/src/main/webapp/framework/browser/thirdparty/js/angular-ui-router.min.js @@ -0,0 +1,8 @@ +/** + * State-based routing for AngularJS + * @version v0.3.1 + * @link http://angular-ui.github.com/ + * @license MIT License, http://www.opensource.org/licenses/MIT + */ +"undefined"!=typeof module&&"undefined"!=typeof exports&&module.exports===exports&&(module.exports="ui.router"),function(a,b,c){"use strict";function d(a,b){return R(new(R(function(){},{prototype:a})),b)}function e(a){return Q(arguments,function(b){b!==a&&Q(b,function(b,c){a.hasOwnProperty(c)||(a[c]=b)})}),a}function f(a,b){var c=[];for(var d in a.path){if(a.path[d]!==b.path[d])break;c.push(a.path[d])}return c}function g(a){if(Object.keys)return Object.keys(a);var b=[];return Q(a,function(a,c){b.push(c)}),b}function h(a,b){if(Array.prototype.indexOf)return a.indexOf(b,Number(arguments[2])||0);var c=a.length>>>0,d=Number(arguments[2])||0;for(d=0>d?Math.ceil(d):Math.floor(d),0>d&&(d+=c);c>d;d++)if(d in a&&a[d]===b)return d;return-1}function i(a,b,c,d){var e,i=f(c,d),j={},k=[];for(var l in i)if(i[l]&&i[l].params&&(e=g(i[l].params),e.length))for(var m in e)h(k,e[m])>=0||(k.push(e[m]),j[e[m]]=a[e[m]]);return R({},j,b)}function j(a,b,c){if(!c){c=[];for(var d in a)c.push(d)}for(var e=0;e "));if(s[c]=d,N(a))q.push(c,[function(){return b.get(a)}],j);else{var e=b.annotate(a);Q(e,function(a){a!==c&&i.hasOwnProperty(a)&&n(i[a],a)}),q.push(c,a,e)}r.pop(),s[c]=f}}function o(a){return O(a)&&a.then&&a.$$promises}if(!O(i))throw new Error("'invocables' must be an object");var p=g(i||{}),q=[],r=[],s={};return Q(i,n),i=r=s=null,function(d,f,g){function h(){--u||(v||e(t,f.$$values),r.$$values=t,r.$$promises=r.$$promises||!0,delete r.$$inheritedValues,n.resolve(t))}function i(a){r.$$failure=a,n.reject(a)}function j(c,e,f){function j(a){l.reject(a),i(a)}function k(){if(!L(r.$$failure))try{l.resolve(b.invoke(e,g,t)),l.promise.then(function(a){t[c]=a,h()},j)}catch(a){j(a)}}var l=a.defer(),m=0;Q(f,function(a){s.hasOwnProperty(a)&&!d.hasOwnProperty(a)&&(m++,s[a].then(function(b){t[a]=b,--m||k()},j))}),m||k(),s[c]=l.promise}if(o(d)&&g===c&&(g=f,f=d,d=null),d){if(!O(d))throw new Error("'locals' must be an object")}else d=k;if(f){if(!o(f))throw new Error("'parent' must be a promise returned by $resolve.resolve()")}else f=l;var n=a.defer(),r=n.promise,s=r.$$promises={},t=R({},d),u=1+q.length/3,v=!1;if(L(f.$$failure))return i(f.$$failure),r;f.$$inheritedValues&&e(t,m(f.$$inheritedValues,p)),R(s,f.$$promises),f.$$values?(v=e(t,m(f.$$values,p)),r.$$inheritedValues=m(f.$$values,p),h()):(f.$$inheritedValues&&(r.$$inheritedValues=m(f.$$inheritedValues,p)),f.then(h,i));for(var w=0,x=q.length;x>w;w+=3)d.hasOwnProperty(q[w])?h():j(q[w],q[w+1],q[w+2]);return r}},this.resolve=function(a,b,c,d){return this.study(a)(b,c,d)}}function q(a,b,c){this.fromConfig=function(a,b,c){return L(a.template)?this.fromString(a.template,b):L(a.templateUrl)?this.fromUrl(a.templateUrl,b):L(a.templateProvider)?this.fromProvider(a.templateProvider,b,c):null},this.fromString=function(a,b){return M(a)?a(b):a},this.fromUrl=function(c,d){return M(c)&&(c=c(d)),null==c?null:a.get(c,{cache:b,headers:{Accept:"text/html"}}).then(function(a){return a.data})},this.fromProvider=function(a,b,d){return c.invoke(a,null,d||{params:b})}}function r(a,b,e){function f(b,c,d,e){if(q.push(b),o[b])return o[b];if(!/^\w+([-.]+\w+)*(?:\[\])?$/.test(b))throw new Error("Invalid parameter name '"+b+"' in pattern '"+a+"'");if(p[b])throw new Error("Duplicate parameter name '"+b+"' in pattern '"+a+"'");return p[b]=new U.Param(b,c,d,e),p[b]}function g(a,b,c,d){var e=["",""],f=a.replace(/[\\\[\]\^$*+?.()|{}]/g,"\\$&");if(!b)return f;switch(c){case!1:e=["(",")"+(d?"?":"")];break;case!0:f=f.replace(/\/$/,""),e=["(?:/(",")|/)?"];break;default:e=["("+c+"|",")?"]}return f+e[0]+b+e[1]}function h(e,f){var g,h,i,j,k;return g=e[2]||e[3],k=b.params[g],i=a.substring(m,e.index),h=f?e[4]:e[4]||("*"==e[1]?".*":null),h&&(j=U.type(h)||d(U.type("string"),{pattern:new RegExp(h,b.caseInsensitive?"i":c)})),{id:g,regexp:h,segment:i,type:j,cfg:k}}b=R({params:{}},O(b)?b:{});var i,j=/([:*])([\w\[\]]+)|\{([\w\[\]]+)(?:\:\s*((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g,k=/([:]?)([\w\[\].-]+)|\{([\w\[\].-]+)(?:\:\s*((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g,l="^",m=0,n=this.segments=[],o=e?e.params:{},p=this.params=e?e.params.$$new():new U.ParamSet,q=[];this.source=a;for(var r,s,t;(i=j.exec(a))&&(r=h(i,!1),!(r.segment.indexOf("?")>=0));)s=f(r.id,r.type,r.cfg,"path"),l+=g(r.segment,s.type.pattern.source,s.squash,s.isOptional),n.push(r.segment),m=j.lastIndex;t=a.substring(m);var u=t.indexOf("?");if(u>=0){var v=this.sourceSearch=t.substring(u);if(t=t.substring(0,u),this.sourcePath=a.substring(0,m+u),v.length>0)for(m=0;i=k.exec(v);)r=h(i,!0),s=f(r.id,r.type,r.cfg,"search"),m=j.lastIndex}else this.sourcePath=a,this.sourceSearch="";l+=g(t)+(b.strict===!1?"/?":"")+"$",n.push(t),this.regexp=new RegExp(l,b.caseInsensitive?"i":c),this.prefix=n[0],this.$$paramNames=q}function s(a){R(this,a)}function t(){function a(a){return null!=a?a.toString().replace(/~/g,"~~").replace(/\//g,"~2F"):a}function e(a){return null!=a?a.toString().replace(/~2F/g,"/").replace(/~~/g,"~"):a}function f(){return{strict:p,caseInsensitive:m}}function i(a){return M(a)||P(a)&&M(a[a.length-1])}function j(){for(;w.length;){var a=w.shift();if(a.pattern)throw new Error("You cannot override a type's .pattern at runtime.");b.extend(u[a.name],l.invoke(a.def))}}function k(a){R(this,a||{})}U=this;var l,m=!1,p=!0,q=!1,u={},v=!0,w=[],x={string:{encode:a,decode:e,is:function(a){return null==a||!L(a)||"string"==typeof a},pattern:/[^\/]*/},"int":{encode:a,decode:function(a){return parseInt(a,10)},is:function(a){return L(a)&&this.decode(a.toString())===a},pattern:/\d+/},bool:{encode:function(a){return a?1:0},decode:function(a){return 0!==parseInt(a,10)},is:function(a){return a===!0||a===!1},pattern:/0|1/},date:{encode:function(a){return this.is(a)?[a.getFullYear(),("0"+(a.getMonth()+1)).slice(-2),("0"+a.getDate()).slice(-2)].join("-"):c},decode:function(a){if(this.is(a))return a;var b=this.capture.exec(a);return b?new Date(b[1],b[2]-1,b[3]):c},is:function(a){return a instanceof Date&&!isNaN(a.valueOf())},equals:function(a,b){return this.is(a)&&this.is(b)&&a.toISOString()===b.toISOString()},pattern:/[0-9]{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])/,capture:/([0-9]{4})-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/},json:{encode:b.toJson,decode:b.fromJson,is:b.isObject,equals:b.equals,pattern:/[^\/]*/},any:{encode:b.identity,decode:b.identity,equals:b.equals,pattern:/.*/}};t.$$getDefaultValue=function(a){if(!i(a.value))return a.value;if(!l)throw new Error("Injectable functions cannot be called at configuration time");return l.invoke(a.value)},this.caseInsensitive=function(a){return L(a)&&(m=a),m},this.strictMode=function(a){return L(a)&&(p=a),p},this.defaultSquashPolicy=function(a){if(!L(a))return q;if(a!==!0&&a!==!1&&!N(a))throw new Error("Invalid squash policy: "+a+". Valid policies: false, true, arbitrary-string");return q=a,a},this.compile=function(a,b){return new r(a,R(f(),b))},this.isMatcher=function(a){if(!O(a))return!1;var b=!0;return Q(r.prototype,function(c,d){M(c)&&(b=b&&L(a[d])&&M(a[d]))}),b},this.type=function(a,b,c){if(!L(b))return u[a];if(u.hasOwnProperty(a))throw new Error("A type named '"+a+"' has already been defined.");return u[a]=new s(R({name:a},b)),c&&(w.push({name:a,def:c}),v||j()),this},Q(x,function(a,b){u[b]=new s(R({name:b},a))}),u=d(u,{}),this.$get=["$injector",function(a){return l=a,v=!1,j(),Q(x,function(a,b){u[b]||(u[b]=new s(a))}),this}],this.Param=function(a,d,e,f){function j(a){var b=O(a)?g(a):[],c=-1===h(b,"value")&&-1===h(b,"type")&&-1===h(b,"squash")&&-1===h(b,"array");return c&&(a={value:a}),a.$$fn=i(a.value)?a.value:function(){return a.value},a}function k(c,d,e){if(c.type&&d)throw new Error("Param '"+a+"' has two type configurations.");return d?d:c.type?b.isString(c.type)?u[c.type]:c.type instanceof s?c.type:new s(c.type):"config"===e?u.any:u.string}function m(){var b={array:"search"===f?"auto":!1},c=a.match(/\[\]$/)?{array:!0}:{};return R(b,c,e).array}function p(a,b){var c=a.squash;if(!b||c===!1)return!1;if(!L(c)||null==c)return q;if(c===!0||N(c))return c;throw new Error("Invalid squash policy: '"+c+"'. Valid policies: false, true, or arbitrary string")}function r(a,b,d,e){var f,g,i=[{from:"",to:d||b?c:""},{from:null,to:d||b?c:""}];return f=P(a.replace)?a.replace:[],N(e)&&f.push({from:e,to:c}),g=o(f,function(a){return a.from}),n(i,function(a){return-1===h(g,a.from)}).concat(f)}function t(){if(!l)throw new Error("Injectable functions cannot be called at configuration time");var a=l.invoke(e.$$fn);if(null!==a&&a!==c&&!x.type.is(a))throw new Error("Default value ("+a+") for parameter '"+x.id+"' is not an instance of Type ("+x.type.name+")");return a}function v(a){function b(a){return function(b){return b.from===a}}function c(a){var c=o(n(x.replace,b(a)),function(a){return a.to});return c.length?c[0]:a}return a=c(a),L(a)?x.type.$normalize(a):t()}function w(){return"{Param:"+a+" "+d+" squash: '"+A+"' optional: "+z+"}"}var x=this;e=j(e),d=k(e,d,f);var y=m();d=y?d.$asArray(y,"search"===f):d,"string"!==d.name||y||"path"!==f||e.value!==c||(e.value="");var z=e.value!==c,A=p(e,z),B=r(e,y,z,A);R(this,{id:a,type:d,location:f,array:y,squash:A,replace:B,isOptional:z,value:v,dynamic:c,config:e,toString:w})},k.prototype={$$new:function(){return d(this,R(new k,{$$parent:this}))},$$keys:function(){for(var a=[],b=[],c=this,d=g(k.prototype);c;)b.push(c),c=c.$$parent;return b.reverse(),Q(b,function(b){Q(g(b),function(b){-1===h(a,b)&&-1===h(d,b)&&a.push(b)})}),a},$$values:function(a){var b={},c=this;return Q(c.$$keys(),function(d){b[d]=c[d].value(a&&a[d])}),b},$$equals:function(a,b){var c=!0,d=this;return Q(d.$$keys(),function(e){var f=a&&a[e],g=b&&b[e];d[e].type.equals(f,g)||(c=!1)}),c},$$validates:function(a){var d,e,f,g,h,i=this.$$keys();for(d=0;de;e++)if(b(j[e]))return;k&&b(k)}}function o(){return i=i||e.$on("$locationChangeSuccess",n)}var p,q=g.baseHref(),r=d.url();return l||o(),{sync:function(){n()},listen:function(){return o()},update:function(a){return a?void(r=d.url()):void(d.url()!==r&&(d.url(r),d.replace()))},push:function(a,b,e){var f=a.format(b||{});null!==f&&b&&b["#"]&&(f+="#"+b["#"]),d.url(f),p=e&&e.$$avoidResync?d.url():c,e&&e.replace&&d.replace()},href:function(c,e,f){if(!c.validates(e))return null;var g=a.html5Mode();b.isObject(g)&&(g=g.enabled),g=g&&h.history;var i=c.format(e);if(f=f||{},g||null===i||(i="#"+a.hashPrefix()+i),null!==i&&e&&e["#"]&&(i+="#"+e["#"]),i=m(i,g,f.absolute),!f.absolute||!i)return i;var j=!g&&i?"/":"",k=d.port();return k=80===k||443===k?"":":"+k,[d.protocol(),"://",d.host(),k,j,i].join("")}}}var i,j=[],k=null,l=!1;this.rule=function(a){if(!M(a))throw new Error("'rule' must be a function");return j.push(a),this},this.otherwise=function(a){if(N(a)){var b=a;a=function(){return b}}else if(!M(a))throw new Error("'rule' must be a function");return k=a,this},this.when=function(a,b){var c,h=N(b);if(N(a)&&(a=d.compile(a)),!h&&!M(b)&&!P(b))throw new Error("invalid 'handler' in when()");var i={matcher:function(a,b){return h&&(c=d.compile(b),b=["$match",function(a){return c.format(a)}]),R(function(c,d){return g(c,b,a.exec(d.path(),d.search()))},{prefix:N(a.prefix)?a.prefix:""})},regex:function(a,b){if(a.global||a.sticky)throw new Error("when() RegExp must not be global or sticky");return h&&(c=b,b=["$match",function(a){return f(c,a)}]),R(function(c,d){return g(c,b,a.exec(d.path()))},{prefix:e(a)})}},j={matcher:d.isMatcher(a),regex:a instanceof RegExp};for(var k in j)if(j[k])return this.rule(i[k](a,b));throw new Error("invalid 'what' in when()")},this.deferIntercept=function(a){a===c&&(a=!0),l=a},this.$get=h,h.$inject=["$location","$rootScope","$injector","$browser","$sniffer"]}function v(a,e){function f(a){return 0===a.indexOf(".")||0===a.indexOf("^")}function m(a,b){if(!a)return c;var d=N(a),e=d?a:a.name,g=f(e);if(g){if(!b)throw new Error("No reference point given for path '"+e+"'");b=m(b);for(var h=e.split("."),i=0,j=h.length,k=b;j>i;i++)if(""!==h[i]||0!==i){if("^"!==h[i])break;if(!k.parent)throw new Error("Path '"+e+"' not valid for state '"+b.name+"'");k=k.parent}else k=b;h=h.slice(i).join("."),e=k.name+(k.name&&h?".":"")+h}var l=z[e];return!l||!d&&(d||l!==a&&l.self!==a)?c:l}function n(a,b){A[a]||(A[a]=[]),A[a].push(b)}function p(a){for(var b=A[a]||[];b.length;)q(b.shift())}function q(b){b=d(b,{self:b,resolve:b.resolve||{},toString:function(){return this.name}});var c=b.name;if(!N(c)||c.indexOf("@")>=0)throw new Error("State must have a valid name");if(z.hasOwnProperty(c))throw new Error("State '"+c+"' is already defined");var e=-1!==c.indexOf(".")?c.substring(0,c.lastIndexOf(".")):N(b.parent)?b.parent:O(b.parent)&&N(b.parent.name)?b.parent.name:"";if(e&&!z[e])return n(e,b.self);for(var f in C)M(C[f])&&(b[f]=C[f](b,C.$delegates[f]));return z[c]=b,!b[B]&&b.url&&a.when(b.url,["$match","$stateParams",function(a,c){y.$current.navigable==b&&j(a,c)||y.transitionTo(b,a,{inherit:!0,location:!1})}]),p(c),b}function r(a){return a.indexOf("*")>-1}function s(a){for(var b=a.split("."),c=y.$current.name.split("."),d=0,e=b.length;e>d;d++)"*"===b[d]&&(c[d]="*");return"**"===b[0]&&(c=c.slice(h(c,b[1])),c.unshift("**")),"**"===b[b.length-1]&&(c.splice(h(c,b[b.length-2])+1,Number.MAX_VALUE),c.push("**")),b.length!=c.length?!1:c.join("")===b.join("")}function t(a,b){return N(a)&&!L(b)?C[a]:M(b)&&N(a)?(C[a]&&!C.$delegates[a]&&(C.$delegates[a]=C[a]),C[a]=b,this):this}function u(a,b){return O(a)?b=a:b.name=a,q(b),this}function v(a,e,f,h,l,n,p,q,t){function u(b,c,d,f){var g=a.$broadcast("$stateNotFound",b,c,d);if(g.defaultPrevented)return p.update(),D;if(!g.retry)return null;if(f.$retry)return p.update(),E;var h=y.transition=e.when(g.retry);return h.then(function(){return h!==y.transition?A:(b.options.$retry=!0,y.transitionTo(b.to,b.toParams,b.options))},function(){return D}),p.update(),h}function v(a,c,d,g,i,j){function m(){var c=[];return Q(a.views,function(d,e){var g=d.resolve&&d.resolve!==a.resolve?d.resolve:{};g.$template=[function(){return f.load(e,{view:d,locals:i.globals,params:n,notify:j.notify})||""}],c.push(l.resolve(g,i.globals,i.resolve,a).then(function(c){if(M(d.controllerProvider)||P(d.controllerProvider)){var f=b.extend({},g,i.globals);c.$$controller=h.invoke(d.controllerProvider,null,f)}else c.$$controller=d.controller;c.$$state=a,c.$$controllerAs=d.controllerAs,c.$$resolveAs=d.resolveAs,i[e]=c}))}),e.all(c).then(function(){return i.globals})}var n=d?c:k(a.params.$$keys(),c),o={$stateParams:n};i.resolve=l.resolve(a.resolve,o,i.resolve,a);var p=[i.resolve.then(function(a){i.globals=a})];return g&&p.push(g),e.all(p).then(m).then(function(a){return i})}var A=e.reject(new Error("transition superseded")),C=e.reject(new Error("transition prevented")),D=e.reject(new Error("transition aborted")),E=e.reject(new Error("transition failed"));return x.locals={resolve:null,globals:{$stateParams:{}}},y={params:{},current:x.self,$current:x,transition:null},y.reload=function(a){return y.transitionTo(y.current,n,{reload:a||!0,inherit:!1,notify:!0})},y.go=function(a,b,c){return y.transitionTo(a,b,R({inherit:!0,relative:y.$current},c))},y.transitionTo=function(b,c,f){c=c||{},f=R({location:!0,inherit:!1,relative:null,notify:!0,reload:!1,$retry:!1},f||{});var g,j=y.$current,l=y.params,o=j.path,q=m(b,f.relative),r=c["#"];if(!L(q)){var s={to:b,toParams:c,options:f},t=u(s,j.self,l,f);if(t)return t;if(b=s.to,c=s.toParams,f=s.options,q=m(b,f.relative),!L(q)){if(!f.relative)throw new Error("No such state '"+b+"'");throw new Error("Could not resolve '"+b+"' from state '"+f.relative+"'")}}if(q[B])throw new Error("Cannot transition to abstract state '"+b+"'");if(f.inherit&&(c=i(n,c||{},y.$current,q)),!q.params.$$validates(c))return E;c=q.params.$$values(c),b=q;var z=b.path,D=0,F=z[D],G=x.locals,H=[];if(f.reload){if(N(f.reload)||O(f.reload)){if(O(f.reload)&&!f.reload.name)throw new Error("Invalid reload state object");var I=f.reload===!0?o[0]:m(f.reload);if(f.reload&&!I)throw new Error("No such reload state '"+(N(f.reload)?f.reload:f.reload.name)+"'");for(;F&&F===o[D]&&F!==I;)G=H[D]=F.locals,D++,F=z[D]}}else for(;F&&F===o[D]&&F.ownParams.$$equals(c,l);)G=H[D]=F.locals,D++,F=z[D];if(w(b,c,j,l,G,f))return r&&(c["#"]=r),y.params=c,S(y.params,n),S(k(b.params.$$keys(),n),b.locals.globals.$stateParams),f.location&&b.navigable&&b.navigable.url&&(p.push(b.navigable.url,c,{$$avoidResync:!0,replace:"replace"===f.location}),p.update(!0)),y.transition=null,e.when(y.current);if(c=k(b.params.$$keys(),c||{}),r&&(c["#"]=r),f.notify&&a.$broadcast("$stateChangeStart",b.self,c,j.self,l,f).defaultPrevented)return a.$broadcast("$stateChangeCancel",b.self,c,j.self,l),null==y.transition&&p.update(),C;for(var J=e.when(G),K=D;K=D;d--)g=o[d],g.self.onExit&&h.invoke(g.self.onExit,g.self,g.locals.globals),g.locals=null;for(d=D;d2?k.enter(a,null,c).then(d):k.enter(a,null,c,d)},leave:function(a,c){b.version.minor>2?k.leave(a).then(c):k.leave(a,c)}};if(j){var e=j&&j(c,a);return{enter:function(a,b,c){e.enter(a,null,b),c()},leave:function(a,b){e.leave(a),b()}}}return d()}var i=g(),j=i("$animator"),k=i("$animate"),l={restrict:"ECA",terminal:!0,priority:400,transclude:"element",compile:function(c,g,i){return function(c,g,j){function k(){if(m&&(m.remove(),m=null),o&&(o.$destroy(),o=null),n){var a=n.data("$uiViewAnim");s.leave(n,function(){a.$$animLeave.resolve(),m=null}),m=n,n=null}}function l(h){var l,m=A(c,j,g,e),t=m&&a.$current&&a.$current.locals[m];if(h||t!==p){l=c.$new(),p=a.$current.locals[m],l.$emit("$viewContentLoading",m);var u=i(l,function(a){var e=f.defer(),h=f.defer(),i={$animEnter:e.promise,$animLeave:h.promise,$$animLeave:h};a.data("$uiViewAnim",i),s.enter(a,g,function(){e.resolve(),o&&o.$emit("$viewContentAnimationEnded"),(b.isDefined(r)&&!r||c.$eval(r))&&d(a)}),k()});n=u,o=l,o.$emit("$viewContentLoaded",m),o.$eval(q)}}var m,n,o,p,q=j.onload||"",r=j.autoscroll,s=h(j,c);g.inheritedData("$uiView");c.$on("$stateChangeSuccess",function(){l(!1)}),l(!0)}}};return l}function z(a,c,d,e){return{restrict:"ECA",priority:-400,compile:function(f){var g=f.html();return function(f,h,i){var j=d.$current,k=A(f,i,h,e),l=j&&j.locals[k];if(l){h.data("$uiView",{name:k,state:l.$$state}),h.html(l.$template?l.$template:g);var m=b.extend({},l);f[l.$$resolveAs]=m;var n=a(h.contents());if(l.$$controller){l.$scope=f,l.$element=h;var o=c(l.$$controller,l);l.$$controllerAs&&(f[l.$$controllerAs]=o,f[l.$$controllerAs][l.$$resolveAs]=m),M(o.$onInit)&&o.$onInit(),h.data("$ngControllerController",o),h.children().data("$ngControllerController",o)}n(f)}}}}}function A(a,b,c,d){var e=d(b.uiView||b.name||"")(a),f=c.inheritedData("$uiView");return e.indexOf("@")>=0?e:e+"@"+(f?f.state.name:"")}function B(a,b){var c,d=a.match(/^\s*({[^}]*})\s*$/);if(d&&(a=b+"("+d[1]+")"),c=a.replace(/\n/g," ").match(/^([^(]+?)\s*(\((.*)\))?$/),!c||4!==c.length)throw new Error("Invalid state ref '"+a+"'");return{state:c[1],paramExpr:c[3]||null}}function C(a){var b=a.parent().inheritedData("$uiView");return b&&b.state&&b.state.name?b.state:void 0}function D(a){var b="[object SVGAnimatedString]"===Object.prototype.toString.call(a.prop("href")),c="FORM"===a[0].nodeName;return{attr:c?"action":b?"xlink:href":"href",isAnchor:"A"===a.prop("tagName").toUpperCase(),clickable:!c}}function E(a,b,c,d,e){return function(f){var g=f.which||f.button,h=e();if(!(g>1||f.ctrlKey||f.metaKey||f.shiftKey||a.attr("target"))){var i=c(function(){b.go(h.state,h.params,h.options)});f.preventDefault();var j=d.isAnchor&&!h.href?1:0;f.preventDefault=function(){j--<=0&&c.cancel(i)}}}}function F(a,b){return{relative:C(a)||b.$current,inherit:!0}}function G(a,c){return{restrict:"A",require:["?^uiSrefActive","?^uiSrefActiveEq"],link:function(d,e,f,g){var h,i=B(f.uiSref,a.current.name),j={state:i.state,href:null,params:null},k=D(e),l=g[1]||g[0],m=null;j.options=R(F(e,a),f.uiSrefOpts?d.$eval(f.uiSrefOpts):{});var n=function(c){c&&(j.params=b.copy(c)),j.href=a.href(i.state,j.params,j.options),m&&m(),l&&(m=l.$$addStateInfo(i.state,j.params)),null!==j.href&&f.$set(k.attr,j.href)};i.paramExpr&&(d.$watch(i.paramExpr,function(a){a!==j.params&&n(a)},!0),j.params=b.copy(d.$eval(i.paramExpr))),n(),k.clickable&&(h=E(e,a,c,k,function(){return j}),e.bind("click",h),d.$on("$destroy",function(){e.unbind("click",h)}))}}}function H(a,b){return{restrict:"A",require:["?^uiSrefActive","?^uiSrefActiveEq"],link:function(c,d,e,f){function g(b){m.state=b[0],m.params=b[1],m.options=b[2],m.href=a.href(m.state,m.params,m.options),n&&n(),j&&(n=j.$$addStateInfo(m.state,m.params)),m.href&&e.$set(i.attr,m.href)}var h,i=D(d),j=f[1]||f[0],k=[e.uiState,e.uiStateParams||null,e.uiStateOpts||null],l="["+k.map(function(a){return a||"null"}).join(", ")+"]",m={state:null,params:null,options:null,href:null},n=null;c.$watch(l,g,!0),g(c.$eval(l)),i.clickable&&(h=E(d,a,b,i,function(){return m}),d.bind("click",h),c.$on("$destroy",function(){d.unbind("click",h)}))}}}function I(a,b,c){return{restrict:"A",controller:["$scope","$element","$attrs","$timeout",function(b,d,e,f){function g(b,c,e){var f=a.get(b,C(d)),g=h(b,c),i={state:f||{name:b},params:c,hash:g};return p.push(i),q[g]=e,function(){var a=p.indexOf(i);-1!==a&&p.splice(a,1)}}function h(a,c){if(!N(a))throw new Error("state should be a string");return O(c)?a+T(c):(c=b.$eval(c),O(c)?a+T(c):a)}function i(){for(var a=0;a0)){var c=g(a,b,o);return i(),c}},b.$on("$stateChangeSuccess",i),i()}]}}function J(a){var b=function(b,c){return a.is(b,c)};return b.$stateful=!0,b}function K(a){var b=function(b,c,d){return a.includes(b,c,d)};return b.$stateful=!0,b}var L=b.isDefined,M=b.isFunction,N=b.isString,O=b.isObject,P=b.isArray,Q=b.forEach,R=b.extend,S=b.copy,T=b.toJson;b.module("ui.router.util",["ng"]),b.module("ui.router.router",["ui.router.util"]),b.module("ui.router.state",["ui.router.router","ui.router.util"]),b.module("ui.router",["ui.router.state"]),b.module("ui.router.compat",["ui.router"]),p.$inject=["$q","$injector"],b.module("ui.router.util").service("$resolve",p),q.$inject=["$http","$templateCache","$injector"],b.module("ui.router.util").service("$templateFactory",q);var U;r.prototype.concat=function(a,b){var c={caseInsensitive:U.caseInsensitive(),strict:U.strictMode(),squash:U.defaultSquashPolicy()};return new r(this.sourcePath+a+this.sourceSearch,R(c,b),this)},r.prototype.toString=function(){return this.source},r.prototype.exec=function(a,b){function c(a){function b(a){return a.split("").reverse().join("")}function c(a){return a.replace(/\\-/g,"-")}var d=b(a).split(/-(?!\\)/),e=o(d,b);return o(e,c).reverse()}var d=this.regexp.exec(a);if(!d)return null;b=b||{};var e,f,g,h=this.parameters(),i=h.length,j=this.segments.length-1,k={};if(j!==d.length-1)throw new Error("Unbalanced capture group in route '"+this.source+"'");var l,m;for(e=0;j>e;e++){for(g=h[e],l=this.params[g],m=d[e+1],f=0;fe;e++){for(g=h[e],k[g]=this.params[g].value(b[g]),l=this.params[g],m=b[g],f=0;ff;f++){var k=h>f,l=d[f],m=e[l],n=m.value(a[l]),p=m.isOptional&&m.type.equals(m.value(),n),q=p?m.squash:!1,r=m.type.encode(n);if(k){var s=c[f+1],t=f+1===h;if(q===!1)null!=r&&(j+=P(r)?o(r,b).join("-"):encodeURIComponent(r)),j+=s;else if(q===!0){var u=j.match(/\/$/)?/\/?(.*)/:/(.*)/;j+=s.match(u)[1]}else N(q)&&(j+=q+s);t&&m.squash===!0&&"/"===j.slice(-1)&&(j=j.slice(0,-1))}else{if(null==r||p&&q!==!1)continue;if(P(r)||(r=[r]),0===r.length)continue;r=o(r,encodeURIComponent).join("&"+l+"="),j+=(g?"&":"?")+(l+"="+r),g=!0}}return j},s.prototype.is=function(a,b){return!0},s.prototype.encode=function(a,b){return a},s.prototype.decode=function(a,b){return a},s.prototype.equals=function(a,b){return a==b},s.prototype.$subPattern=function(){var a=this.pattern.toString();return a.substr(1,a.length-2)},s.prototype.pattern=/.*/,s.prototype.toString=function(){return"{Type:"+this.name+"}"},s.prototype.$normalize=function(a){return this.is(a)?a:this.decode(a)},s.prototype.$asArray=function(a,b){function d(a,b){function d(a,b){return function(){return a[b].apply(a,arguments)}}function e(a){return P(a)?a:L(a)?[a]:[]}function f(a){switch(a.length){case 0:return c;case 1:return"auto"===b?a[0]:a;default:return a}}function g(a){return!a}function h(a,b){return function(c){if(P(c)&&0===c.length)return c;c=e(c);var d=o(c,a);return b===!0?0===n(d,g).length:f(d)}}function i(a){return function(b,c){var d=e(b),f=e(c);if(d.length!==f.length)return!1;for(var g=0;g").attr("value",c).text(a("
").html(d).text()))},e=function(b){var c=b.find("option:gt(0)");c.sort(function(b,c){return b=a(b).text().toLowerCase(),c=a(c).text().toLowerCase(),a.isNumeric(b)&&a.isNumeric(c)&&(b=parseFloat(b),c=parseFloat(c)),b>c?1:c>b?-1:0}),b.find("option:gt(0)").remove(),b.append(c)},f=function(a,b){for(var c=a.get(a.length-1).options,d=0;d0&&e.find(f).each(function(){c=a(this).closest("[data-field]").data("field"),d=a.grep(b.options.valuesFilterControl,function(a){return a.field===c}),d.length>0&&(a(this).val(d[0].value),k(a(this).get(0),d[0].position))})},n=function(){var b=[],c=document.cookie.match(/(?:bs.table.)(\w*)/g);return c?(a.each(c,function(c,d){/./.test(d)&&(d=d.split(".").pop()),-1===a.inArray(d,b)&&b.push(d)}),b):void 0},o=function(b){var c=b.options.data,f=(b.pageTo0},i=b.options.pagination?"server"===b.options.sidePagination?b.pageTo:b.options.totalRows:b.pageTo;a.each(b.header.fields,function(j,k){var l=b.columns[a.fn.bootstrapTable.utils.getFieldIndex(b.columns,k)],m=a(".bootstrap-table-filter-control-"+p(l.field));if(f(l)&&g(l)&&h(m)){0===m.get(m.length-1).options.length&&d(m,"","");for(var n={},o=0;i>o;o++){var q=c[o][k],r=a.fn.bootstrapTable.utils.calculateObjectValue(b.header,b.header.formatters[j],[q,c[o],o],q);n[r]=q}for(var s in n)d(m,n[s],s);e(m)}})},p=function(a){return String(a).replace(/(:|\.|\[|\]|,)/g,"\\$1")},q=function(b,c){var f,g,h=!1,i=0;a.each(b.columns,function(i,j){if(f="hidden",g=[],j.visible){if(j.filterControl){g.push('
');var k=j.filterControl.toLowerCase();j.searchable&&b.options.filterTemplate[k]&&(h=!0,f="visible",g.push(b.options.filterTemplate[k](b,j.field,f)))}else g.push('
');if(a.each(c.children().children(),function(b,c){return c=a(c),c.data("field")===j.field?(c.find(".fht-cell").append(g.join("")),!1):void 0}),void 0!==j.filterData&&"column"!==j.filterData.toLowerCase()){var l,m,n=t(s,j.filterData.substring(0,j.filterData.indexOf(":")));if(null===n)throw new SyntaxError('Error. You should use any of these allowed filter data methods: var, json, url. Use like this: var: {key: "value"}');l=j.filterData.substring(j.filterData.indexOf(":")+1,j.filterData.length),m=a(".bootstrap-table-filter-control-"+p(j.field)),d(m,"",""),n(l,m);var o,q;switch(n){case"url":a.ajax({url:l,dataType:"json",success:function(a){for(var b in a)d(m,b,a[b]);e(m)}});break;case"var":o=window[l];for(q in o)d(m,q,o[q]);e(m);break;case"jso":o=JSON.parse(l);for(q in o)d(m,q,o[q]);e(m)}}}}),h?(c.off("keyup","input").on("keyup","input",function(a){clearTimeout(i),i=setTimeout(function(){b.onColumnSearch(a)},b.options.searchTimeOut)}),c.off("change","select").on("change","select",function(a){clearTimeout(i),i=setTimeout(function(){b.onColumnSearch(a)},b.options.searchTimeOut)}),c.off("mouseup","input").on("mouseup","input",function(c){var d=a(this),e=d.val();""!==e&&setTimeout(function(){var a=d.val();""===a&&(clearTimeout(i),i=setTimeout(function(){b.onColumnSearch(c)},b.options.searchTimeOut))},1)}),c.find(".date-filter-control").length>0&&a.each(b.columns,function(b,d){void 0!==d.filterControl&&"datepicker"===d.filterControl.toLowerCase()&&c.find(".date-filter-control.bootstrap-table-filter-control-"+d.field).datepicker(d.filterDatepickerOptions).on("changeDate",function(b){a(b.currentTarget).keyup()})})):c.find(".filterControl").hide()},r=function(a){switch(a=void 0===a?"left":a.toLowerCase()){case"left":return"ltr";case"right":return"rtl";case"auto":return"auto";default:return"ltr"}},s={"var":function(a,b){var c=window[a];for(var f in c)d(b,f,c[f]);e(b)},url:function(b,c){a.ajax({url:b,dataType:"json",success:function(a){for(var b in a)d(c,b,a[b]);e(c)}})},json:function(a,b){var c=JSON.parse(a);for(var f in c)d(b,f,c[f]);e(b)}},t=function(a,b){for(var c=Object.keys(a),d=0;d',c,d)},select:function(a,c,d){return b('',c,d,r(a.options.alignmentSelectControlOptions))},datepicker:function(a,c,d){return b('',c,d)}},valuesFilterControl:[]}),a.extend(a.fn.bootstrapTable.COLUMN_DEFAULTS,{filterControl:void 0,filterData:void 0,filterDatepickerOptions:void 0,filterStrictSearch:!1,filterStartsWithSearch:!1}),a.extend(a.fn.bootstrapTable.Constructor.EVENTS,{"column-search.bs.table":"onColumnSearch"}),a.extend(a.fn.bootstrapTable.defaults.icons,{clear:"glyphicon-trash icon-clear"}),a.extend(a.fn.bootstrapTable.locales,{formatClearFilters:function(){return"Clear Filters"}}),a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales);var u=a.fn.bootstrapTable.Constructor,v=u.prototype.init,w=u.prototype.initToolbar,x=u.prototype.initHeader,y=u.prototype.initBody,z=u.prototype.initSearch;u.prototype.init=function(){if(this.options.filterControl){var a=this;Object.keys||c(),this.options.valuesFilterControl=[],this.$el.on("reset-view.bs.table",function(){a.options.height&&(a.$tableHeader.find("select").length>0||a.$tableHeader.find("input").length>0||q(a,a.$tableHeader))}).on("post-header.bs.table",function(){m(a)}).on("post-body.bs.table",function(){a.options.height&&g(a)}).on("column-switch.bs.table",function(){m(a)})}v.apply(this,Array.prototype.slice.apply(arguments))},u.prototype.initToolbar=function(){if(this.showToolbar=this.options.filterControl&&this.options.filterShowClear,w.apply(this,Array.prototype.slice.apply(arguments)),this.options.filterControl&&this.options.filterShowClear){var c=this.$toolbar.find(">.btn-group"),d=c.find(".filter-show-clear");d.length||(d=a(['"].join("")).appendTo(c),d.off("click").on("click",a.proxy(this.clearFilterControl,this)))}},u.prototype.initHeader=function(){x.apply(this,Array.prototype.slice.apply(arguments)),this.options.filterControl&&q(this,this.$header)},u.prototype.initBody=function(){y.apply(this,Array.prototype.slice.apply(arguments)),o(this)},u.prototype.initSearch=function(){if(z.apply(this,Array.prototype.slice.apply(arguments)),"server"!==this.options.sidePagination){var b=this,c=a.isEmptyObject(this.filterColumnsPartial)?null:this.filterColumnsPartial;this.data=c?a.grep(this.data,function(d,e){for(var f in c){var g=b.columns[a.fn.bootstrapTable.utils.getFieldIndex(b.columns,f)],h=c[f].toLowerCase(),i=d[f];if(g&&g.searchFormatter&&(i=a.fn.bootstrapTable.utils.calculateObjectValue(b.header,b.header.formatters[a.inArray(f,b.header.fields)],[i,d,e],i)),g.filterStrictSearch){if(-1===a.inArray(f,b.header.fields)||"string"!=typeof i&&"number"!=typeof i||i.toString().toLowerCase()!==h.toString().toLowerCase())return!1}else if(g.filterStartsWithSearch){if(-1===a.inArray(f,b.header.fields)||"string"!=typeof i&&"number"!=typeof i||0!==(i+"").toLowerCase().indexOf(h))return!1}else if(-1===a.inArray(f,b.header.fields)||"string"!=typeof i&&"number"!=typeof i||-1===(i+"").toLowerCase().indexOf(h))return!1}return!0}):this.data}},u.prototype.initColumnSearch=function(a){if(l(this),a){this.filterColumnsPartial=a,this.updatePagination();for(var b in a)this.trigger("column-search",b,a[b])}},u.prototype.onColumnSearch=function(b){if(!(a.inArray(b.keyCode,[37,38,39,40])>-1)){l(this);var c=a.trim(a(b.currentTarget).val()),d=a(b.currentTarget).closest("[data-field]").data("field");a.isEmptyObject(this.filterColumnsPartial)&&(this.filterColumnsPartial={}),c?this.filterColumnsPartial[d]=c:delete this.filterColumnsPartial[d],this.searchText+="randomText",this.options.pageNumber=1,this.onSearch(b),this.trigger("column-search",d,c)}},u.prototype.clearFilterControl=function(){if(this.options.filterControl&&this.options.filterShowClear){var c=this,d=n(),e=h(c),f=e.closest("table"),g=e.find(i(c)),j=c.$toolbar.find(".search input"),k=0;if(a.each(c.options.valuesFilterControl,function(a,b){b.value=""}),m(c),!(g.length>0))return;if(this.filterColumnsPartial={},a(g[0]).trigger("INPUT"===g[0].tagName?"keyup":"change"),j.length>0&&c.resetSearch(),c.options.sortName!==f.data("sortName")||c.options.sortOrder!==f.data("sortOrder")){var l=e.find(b('[data-field="%s"]',a(g[0]).closest("table").data("sortName")));l.length>0&&(c.onSort(f.data("sortName"),f.data("sortName")),a(l).find(".sortable").trigger("click"))}clearTimeout(k),k=setTimeout(function(){d&&d.length>0&&a.each(d,function(a,b){void 0!==c.deleteCookie&&c.deleteCookie(b)})},c.options.searchTimeOut)}}}(jQuery); \ No newline at end of file diff --git a/portal-common/src/main/webapp/framework/browser/thirdparty/js/bootstrap-table.min.js b/common/src/main/webapp/framework/browser/thirdparty/js/bootstrap-table.min.js similarity index 100% rename from portal-common/src/main/webapp/framework/browser/thirdparty/js/bootstrap-table.min.js rename to common/src/main/webapp/framework/browser/thirdparty/js/bootstrap-table.min.js diff --git a/portal-common/src/main/webapp/framework/browser/thirdparty/js/bootstrap.min.js b/common/src/main/webapp/framework/browser/thirdparty/js/bootstrap.min.js similarity index 100% rename from portal-common/src/main/webapp/framework/browser/thirdparty/js/bootstrap.min.js rename to common/src/main/webapp/framework/browser/thirdparty/js/bootstrap.min.js diff --git a/common/src/main/webapp/framework/browser/thirdparty/js/jquery.ztree.core-3.5.js b/common/src/main/webapp/framework/browser/thirdparty/js/jquery.ztree.core-3.5.js new file mode 100644 index 00000000..f1c21275 --- /dev/null +++ b/common/src/main/webapp/framework/browser/thirdparty/js/jquery.ztree.core-3.5.js @@ -0,0 +1,70 @@ +/* + * JQuery zTree core v3.5.18 + * http://zTree.me/ + * + * Copyright (c) 2010 Hunter.z + * + * Licensed same as jquery - MIT License + * http://www.opensource.org/licenses/mit-license.php + * + * email: hunter.z@263.net + * Date: 2015-06-18 + */ +(function(p){var G,H,I,J,K,L,r={},u={},v={},M={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}},w=[function(b){var a=b.treeObj,c=e.event;a.bind(c.NODECREATED,function(a,c,g){j.apply(b.callback.onNodeCreated, +[a,c,g])});a.bind(c.CLICK,function(a,c,g,l,h){j.apply(b.callback.onClick,[c,g,l,h])});a.bind(c.EXPAND,function(a,c,g){j.apply(b.callback.onExpand,[a,c,g])});a.bind(c.COLLAPSE,function(a,c,g){j.apply(b.callback.onCollapse,[a,c,g])});a.bind(c.ASYNC_SUCCESS,function(a,c,g,l){j.apply(b.callback.onAsyncSuccess,[a,c,g,l])});a.bind(c.ASYNC_ERROR,function(a,c,g,l,h,e){j.apply(b.callback.onAsyncError,[a,c,g,l,h,e])});a.bind(c.REMOVE,function(a,c,g){j.apply(b.callback.onRemove,[a,c,g])});a.bind(c.SELECTED, +function(a,c,g,l){j.apply(b.callback.onSelected,[c,g,l])});a.bind(c.UNSELECTED,function(a,c,g,l){j.apply(b.callback.onUnSelected,[c,g,l])})}],x=[function(b){var a=e.event;b.treeObj.unbind(a.NODECREATED).unbind(a.CLICK).unbind(a.EXPAND).unbind(a.COLLAPSE).unbind(a.ASYNC_SUCCESS).unbind(a.ASYNC_ERROR).unbind(a.REMOVE).unbind(a.SELECTED).unbind(a.UNSELECTED)}],y=[function(b){var a=h.getCache(b);a||(a={},h.setCache(b,a));a.nodes=[];a.doms=[]}],z=[function(b,a,c,d,f,g){if(c){var l=h.getRoot(b),e=b.data.key.children; +c.level=a;c.tId=b.treeId+"_"+ ++l.zId;c.parentTId=d?d.tId:null;c.open=typeof c.open=="string"?j.eqs(c.open,"true"):!!c.open;c[e]&&c[e].length>0?(c.isParent=!0,c.zAsync=!0):(c.isParent=typeof c.isParent=="string"?j.eqs(c.isParent,"true"):!!c.isParent,c.open=c.isParent&&!b.async.enable?c.open:!1,c.zAsync=!c.isParent);c.isFirstNode=f;c.isLastNode=g;c.getParentNode=function(){return h.getNodeCache(b,c.parentTId)};c.getPreNode=function(){return h.getPreNode(b,c)};c.getNextNode=function(){return h.getNextNode(b, +c)};c.isAjaxing=!1;h.fixPIdKeyValue(b,c)}}],s=[function(b){var a=b.target,c=h.getSetting(b.data.treeId),d="",f=null,g="",l="",i=null,o=null,k=null;if(j.eqs(b.type,"mousedown"))l="mousedown";else if(j.eqs(b.type,"mouseup"))l="mouseup";else if(j.eqs(b.type,"contextmenu"))l="contextmenu";else if(j.eqs(b.type,"click"))if(j.eqs(a.tagName,"span")&&a.getAttribute("treeNode"+e.id.SWITCH)!==null)d=j.getNodeMainDom(a).id,g="switchNode";else{if(k=j.getMDom(c,a,[{tagName:"a",attrName:"treeNode"+e.id.A}]))d=j.getNodeMainDom(k).id, +g="clickNode"}else if(j.eqs(b.type,"dblclick")&&(l="dblclick",k=j.getMDom(c,a,[{tagName:"a",attrName:"treeNode"+e.id.A}])))d=j.getNodeMainDom(k).id,g="switchNode";if(l.length>0&&d.length==0&&(k=j.getMDom(c,a,[{tagName:"a",attrName:"treeNode"+e.id.A}])))d=j.getNodeMainDom(k).id;if(d.length>0)switch(f=h.getNodeCache(c,d),g){case "switchNode":f.isParent?j.eqs(b.type,"click")||j.eqs(b.type,"dblclick")&&j.apply(c.view.dblClickExpand,[c.treeId,f],c.view.dblClickExpand)?i=G:g="":g="";break;case "clickNode":i= +H}switch(l){case "mousedown":o=I;break;case "mouseup":o=J;break;case "dblclick":o=K;break;case "contextmenu":o=L}return{stop:!1,node:f,nodeEventType:g,nodeEventCallback:i,treeEventType:l,treeEventCallback:o}}],A=[function(b){var a=h.getRoot(b);a||(a={},h.setRoot(b,a));a[b.data.key.children]=[];a.expandTriggerFlag=!1;a.curSelectedList=[];a.noSelection=!0;a.createdNodes=[];a.zId=0;a._ver=(new Date).getTime()}],B=[],C=[],D=[],E=[],F=[],h={addNodeCache:function(b,a){h.getCache(b).nodes[h.getNodeCacheId(a.tId)]= +a},getNodeCacheId:function(b){return b.substring(b.lastIndexOf("_")+1)},addAfterA:function(b){C.push(b)},addBeforeA:function(b){B.push(b)},addInnerAfterA:function(b){E.push(b)},addInnerBeforeA:function(b){D.push(b)},addInitBind:function(b){w.push(b)},addInitUnBind:function(b){x.push(b)},addInitCache:function(b){y.push(b)},addInitNode:function(b){z.push(b)},addInitProxy:function(b,a){a?s.splice(0,0,b):s.push(b)},addInitRoot:function(b){A.push(b)},addNodesData:function(b,a,c){var d=b.data.key.children; +a[d]||(a[d]=[]);if(a[d].length>0)a[d][a[d].length-1].isLastNode=!1,i.setNodeLineIcos(b,a[d][a[d].length-1]);a.isParent=!0;a[d]=a[d].concat(c)},addSelectedNode:function(b,a){var c=h.getRoot(b);h.isSelectedNode(b,a)||c.curSelectedList.push(a)},addCreatedNode:function(b,a){(b.callback.onNodeCreated||b.view.addDiyDom)&&h.getRoot(b).createdNodes.push(a)},addZTreeTools:function(b){F.push(b)},exSetting:function(b){p.extend(!0,M,b)},fixPIdKeyValue:function(b,a){b.data.simpleData.enable&&(a[b.data.simpleData.pIdKey]= +a.parentTId?a.getParentNode()[b.data.simpleData.idKey]:b.data.simpleData.rootPId)},getAfterA:function(b,a,c){for(var d=0,f=C.length;d-1&&g.push(a[l]),g=g.concat(h.getNodesByParamFuzzy(b,a[l][f],c,d));return g},getNodesByFilter:function(b,a,c,d,f){if(!a)return d?null:[];for(var g=b.data.key.children,e=d?null:[],i=0,o=a.length;i0)},clone:function(b){if(b===null)return null;var a=j.isArray(b)?[]:{},c;for(c in b)a[c]=b[c]instanceof Date?new Date(b[c].getTime()):typeof b[c]==="object"?arguments.callee(b[c]):b[c];return a},eqs:function(b,a){return b.toLowerCase()===a.toLowerCase()},isArray:function(b){return Object.prototype.toString.apply(b)==="[object Array]"},$:function(b,a,c){a&&typeof a!="string"&&(c=a,a="");return typeof b=="string"?p(b,c?c.treeObj.get(0).ownerDocument: +null):p("#"+b.tId+a,c?c.treeObj:null)},getMDom:function(b,a,c){if(!a)return null;for(;a&&a.id!==b.treeId;){for(var d=0,f=c.length;a.tagName&&d0},uCanDo:function(){return!0}},i={addNodes:function(b,a,c,d){if(!b.data.keep.leaf|| +!a||a.isParent)if(j.isArray(c)||(c=[c]),b.data.simpleData.enable&&(c=h.transformTozTreeFormat(b,c)),a){var f=k(a,e.id.SWITCH,b),g=k(a,e.id.ICON,b),l=k(a,e.id.UL,b);if(!a.open)i.replaceSwitchClass(a,f,e.folder.CLOSE),i.replaceIcoClass(a,g,e.folder.CLOSE),a.open=!1,l.css({display:"none"});h.addNodesData(b,a,c);i.createNodes(b,a.level+1,c,a);d||i.expandCollapseParentNode(b,a,!0)}else h.addNodesData(b,h.getRoot(b),c),i.createNodes(b,0,c,null)},appendNodes:function(b,a,c,d,f,g){if(!c)return[];for(var e= +[],j=b.data.key.children,k=0,m=c.length;k0&&(t=i.appendNodes(b,a+1,n[j],n,f,g&&n.open));g&&(i.makeDOMNodeMainBefore(e,b,n),i.makeDOMNodeLine(e,b,n),h.getBeforeA(b,n,e),i.makeDOMNodeNameBefore(e,b,n),h.getInnerBeforeA(b,n,e),i.makeDOMNodeIcon(e,b,n),h.getInnerAfterA(b,n,e),i.makeDOMNodeNameAfter(e,b,n),h.getAfterA(b,n,e),n.isParent&&n.open&&i.makeUlHtml(b, +n,e,t.join("")),i.makeDOMNodeMainAfter(e,b,n),h.addCreatedNode(b,n))}return e},appendParentULDom:function(b,a){var c=[],d=k(a,b);!d.get(0)&&a.parentTId&&(i.appendParentULDom(b,a.getParentNode()),d=k(a,b));var f=k(a,e.id.UL,b);f.get(0)&&f.remove();f=i.appendNodes(b,a.level+1,a[b.data.key.children],a,!1,!0);i.makeUlHtml(b,a,c,f.join(""));d.append(c.join(""))},asyncNode:function(b,a,c,d){var f,g;if(a&&!a.isParent)return j.apply(d),!1;else if(a&&a.isAjaxing)return!1;else if(j.apply(b.callback.beforeAsync, +[b.treeId,a],!0)==!1)return j.apply(d),!1;if(a)a.isAjaxing=!0,k(a,e.id.ICON,b).attr({style:"","class":e.className.BUTTON+" "+e.className.ICO_LOADING});var l={};for(f=0,g=b.async.autoParam.length;a&&f1&&(o=q[1],q=q[0]);l[o]=a[q]}if(j.isArray(b.async.otherParam))for(f=0,g=b.async.otherParam.length;f=0;f--)if(g=d[f],a===g||!a&&(!c||c!==g))if(k(g,e.id.A,b).removeClass(e.node.CURSELECTED),a){h.removeSelectedNode(b,a);b.treeObj.trigger(e.event.UNSELECTED,[m,b.treeId,g]);break}else d.splice(f,1),b.treeObj.trigger(e.event.UNSELECTED, +[m,b.treeId,g])},createNodeCallback:function(b){if(b.callback.onNodeCreated||b.view.addDiyDom)for(var a=h.getRoot(b);a.createdNodes.length>0;){var c=a.createdNodes.shift();j.apply(b.view.addDiyDom,[b.treeId,c]);b.callback.onNodeCreated&&b.treeObj.trigger(e.event.NODECREATED,[b.treeId,c])}},createNodes:function(b,a,c,d){if(c&&c.length!=0){var f=h.getRoot(b),g=b.data.key.children,g=!d||d.open||!!k(d[g][0],b).get(0);f.createdNodes=[];a=i.appendNodes(b,a,c,d,!0,g);d?(d=k(d,e.id.UL,b),d.get(0)&&d.append(a.join(""))): +b.treeObj.append(a.join(""));i.createNodeCallback(b)}},destroy:function(b){b&&(h.initCache(b),h.initRoot(b),m.unbindTree(b),m.unbindEvent(b),b.treeObj.empty(),delete r[b.treeId])},expandCollapseNode:function(b,a,c,d,f){var g=h.getRoot(b),l=b.data.key.children;if(a){if(g.expandTriggerFlag){var q=f,f=function(){q&&q();a.open?b.treeObj.trigger(e.event.EXPAND,[b.treeId,a]):b.treeObj.trigger(e.event.COLLAPSE,[b.treeId,a])};g.expandTriggerFlag=!1}if(!a.open&&a.isParent&&(!k(a,e.id.UL,b).get(0)||a[l]&&a[l].length> +0&&!k(a[l][0],b).get(0)))i.appendParentULDom(b,a),i.createNodeCallback(b);if(a.open==c)j.apply(f,[]);else{var c=k(a,e.id.UL,b),g=k(a,e.id.SWITCH,b),o=k(a,e.id.ICON,b);a.isParent?(a.open=!a.open,a.iconOpen&&a.iconClose&&o.attr("style",i.makeNodeIcoStyle(b,a)),a.open?(i.replaceSwitchClass(a,g,e.folder.OPEN),i.replaceIcoClass(a,o,e.folder.OPEN),d==!1||b.view.expandSpeed==""?(c.show(),j.apply(f,[])):a[l]&&a[l].length>0?c.slideDown(b.view.expandSpeed,f):(c.show(),j.apply(f,[]))):(i.replaceSwitchClass(a, +g,e.folder.CLOSE),i.replaceIcoClass(a,o,e.folder.CLOSE),d==!1||b.view.expandSpeed==""||!(a[l]&&a[l].length>0)?(c.hide(),j.apply(f,[])):c.slideUp(b.view.expandSpeed,f))):j.apply(f,[])}}else j.apply(f,[])},expandCollapseParentNode:function(b,a,c,d,f){a&&(a.parentTId?(i.expandCollapseNode(b,a,c,d),a.parentTId&&i.expandCollapseParentNode(b,a.getParentNode(),c,d,f)):i.expandCollapseNode(b,a,c,d,f))},expandCollapseSonNode:function(b,a,c,d,f){var g=h.getRoot(b),e=b.data.key.children,g=a?a[e]:g[e],e=a?!1: +d,j=h.getRoot(b).expandTriggerFlag;h.getRoot(b).expandTriggerFlag=!1;if(g)for(var k=0,m=g.length;k=0;d--)if(a===c[d])return!0;return!1},makeDOMNodeIcon:function(b,a,c){var d=h.getNodeName(a,c),d=a.view.nameIsHTML?d:d.replace(/&/g,"&").replace(//g,">");b.push("",d,"")},makeDOMNodeLine:function(b,a,c){b.push("")},makeDOMNodeMainAfter:function(b){b.push("")},makeDOMNodeMainBefore:function(b,a,c){b.push("
  • ")}, +makeDOMNodeNameAfter:function(b){b.push("")},makeDOMNodeNameBefore:function(b,a,c){var d=h.getNodeTitle(a,c),f=i.makeNodeUrl(a,c),g=i.makeNodeFontCss(a,c),l=[],k;for(k in g)l.push(k,":",g[k],";");b.push("0?"href='"+f+"'":""," target='",i.makeNodeTarget(c),"' style='",l.join(""),"'");j.apply(a.view.showTitle,[a.treeId,c],a.view.showTitle)&&d&&b.push("title='",d.replace(/'/g, +"'").replace(//g,">"),"'");b.push(">")},makeNodeFontCss:function(b,a){var c=j.apply(b.view.fontCss,[b.treeId,a],b.view.fontCss);return c&&typeof c!="function"?c:{}},makeNodeIcoClass:function(b,a){var c=["ico"];a.isAjaxing||(c[0]=(a.iconSkin?a.iconSkin+"_":"")+c[0],a.isParent?c.push(a.open?e.folder.OPEN:e.folder.CLOSE):c.push(e.folder.DOCU));return e.className.BUTTON+" "+c.join("_")},makeNodeIcoStyle:function(b,a){var c=[];if(!a.isAjaxing){var d=a.isParent&&a.iconOpen&& +a.iconClose?a.open?a.iconOpen:a.iconClose:a.icon;d&&c.push("background:url(",d,") 0 0 no-repeat;");(b.view.showIcon==!1||!j.apply(b.view.showIcon,[b.treeId,a],!0))&&c.push("width:0px;height:0px;")}return c.join("")},makeNodeLineClass:function(b,a){var c=[];b.view.showLine?a.level==0&&a.isFirstNode&&a.isLastNode?c.push(e.line.ROOT):a.level==0&&a.isFirstNode?c.push(e.line.ROOTS):a.isLastNode?c.push(e.line.BOTTOM):c.push(e.line.CENTER):c.push(e.line.NOLINE);a.isParent?c.push(a.open?e.folder.OPEN:e.folder.CLOSE): +c.push(e.folder.DOCU);return i.makeNodeLineClassEx(a)+c.join("_")},makeNodeLineClassEx:function(b){return e.className.BUTTON+" "+e.className.LEVEL+b.level+" "+e.className.SWITCH+" "},makeNodeTarget:function(b){return b.target||"_blank"},makeNodeUrl:function(b,a){var c=b.data.key.url;return a[c]?a[c]:null},makeUlHtml:function(b,a,c,d){c.push("
      ");c.push(d);c.push("
    ")}, +makeUlLineClass:function(b,a){return b.view.showLine&&!a.isLastNode?e.line.LINE:""},removeChildNodes:function(b,a){if(a){var c=b.data.key.children,d=a[c];if(d){for(var f=0,g=d.length;f0)a[c][0].isFirstNode=!0},setLastNode:function(b,a){var c=b.data.key.children,d=a[c].length;if(d>0)a[c][d-1].isLastNode=!0},removeNode:function(b,a){var c=h.getRoot(b),d=b.data.key.children,f=a.parentTId?a.getParentNode():c;a.isFirstNode=!1;a.isLastNode=!1;a.getPreNode=function(){return null};a.getNextNode=function(){return null};if(h.getNodeCache(b,a.tId)){k(a,b).remove();h.removeNodeCache(b,a);h.removeSelectedNode(b,a);for(var g=0,l=f[d].length;g0){var o=f[d][g-1],g=k(o,e.id.UL,b),l=k(o,e.id.SWITCH,b);j=k(o,e.id.ICON,b);f==c?f[d].length==1?i.replaceSwitchClass(o,l,e.line.ROOT):(c=k(f[d][0],e.id.SWITCH,b),i.replaceSwitchClass(f[d][0],c,e.line.ROOTS), +i.replaceSwitchClass(o,l,e.line.BOTTOM)):i.replaceSwitchClass(o,l,e.line.BOTTOM);g.removeClass(e.line.LINE)}}},replaceIcoClass:function(b,a,c){if(a&&!b.isAjaxing&&(b=a.attr("class"),b!=void 0)){b=b.split("_");switch(c){case e.folder.OPEN:case e.folder.CLOSE:case e.folder.DOCU:b[b.length-1]=c}a.attr("class",b.join("_"))}},replaceSwitchClass:function(b,a,c){if(a){var d=a.attr("class");if(d!=void 0){d=d.split("_");switch(c){case e.line.ROOT:case e.line.ROOTS:case e.line.CENTER:case e.line.BOTTOM:case e.line.NOLINE:d[0]= +i.makeNodeLineClassEx(b)+c;break;case e.folder.OPEN:case e.folder.CLOSE:case e.folder.DOCU:d[1]=c}a.attr("class",d.join("_"));c!==e.folder.DOCU?a.removeAttr("disabled"):a.attr("disabled","disabled")}}},selectNode:function(b,a,c){c||i.cancelPreSelectedNode(b,null,a);k(a,e.id.A,b).addClass(e.node.CURSELECTED);h.addSelectedNode(b,a);b.treeObj.trigger(e.event.SELECTED,[m,b.treeId,a])},setNodeFontCss:function(b,a){var c=k(a,e.id.A,b),d=i.makeNodeFontCss(b,a);d&&c.css(d)},setNodeLineIcos:function(b,a){if(a){var c= +k(a,e.id.SWITCH,b),d=k(a,e.id.UL,b),f=k(a,e.id.ICON,b),g=i.makeUlLineClass(b,a);g.length==0?d.removeClass(e.line.LINE):d.addClass(g);c.attr("class",i.makeNodeLineClass(b,a));a.isParent?c.removeAttr("disabled"):c.attr("disabled","disabled");f.removeAttr("style");f.attr("style",i.makeNodeIcoStyle(b,a));f.attr("class",i.makeNodeIcoClass(b,a))}},setNodeName:function(b,a){var c=h.getNodeTitle(b,a),d=k(a,e.id.SPAN,b);d.empty();b.view.nameIsHTML?d.html(h.getNodeName(b,a)):d.text(h.getNodeName(b,a));j.apply(b.view.showTitle, +[b.treeId,a],b.view.showTitle)&&k(a,e.id.A,b).attr("title",!c?"":c)},setNodeTarget:function(b,a){k(a,e.id.A,b).attr("target",i.makeNodeTarget(a))},setNodeUrl:function(b,a){var c=k(a,e.id.A,b),d=i.makeNodeUrl(b,a);d==null||d.length==0?c.removeAttr("href"):c.attr("href",d)},switchNode:function(b,a){a.open||!j.canAsync(b,a)?i.expandCollapseNode(b,a,!a.open):b.async.enable?i.asyncNode(b,a)||i.expandCollapseNode(b,a,!a.open):a&&i.expandCollapseNode(b,a,!a.open)}};p.fn.zTree={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"}},_z:{tools:j,view:i,event:m,data:h},getZTreeObj:function(b){return(b=h.getZTreeTools(b))?b:null},destroy:function(b){if(b&&b.length>0)i.destroy(h.getSetting(b));else for(var a in r)i.destroy(r[a])},init:function(b,a,c){var d=j.clone(M);p.extend(!0,d,a);d.treeId=b.attr("id");d.treeObj=b;d.treeObj.empty();r[d.treeId]=d;if(typeof document.body.style.maxHeight==="undefined")d.view.expandSpeed="";h.initRoot(d);b=h.getRoot(d);a=d.data.key.children;c=c?j.clone(j.isArray(c)? +c:[c]):[];b[a]=d.data.simpleData.enable?h.transformTozTreeFormat(d,c):c;h.initCache(d);m.unbindTree(d);m.bindTree(d);m.unbindEvent(d);m.bindEvent(d);c={setting:d,addNodes:function(a,b,c){function e(){i.addNodes(d,a,h,c==!0)}if(!b)return null;a||(a=null);if(a&&!a.isParent&&d.data.keep.leaf)return null;var h=j.clone(j.isArray(b)?b:[b]);j.canAsync(d,a)?i.asyncNode(d,a,c,e):e();return h},cancelSelectedNode:function(a){i.cancelPreSelectedNode(d,a)},destroy:function(){i.destroy(d)},expandAll:function(a){a= +!!a;i.expandCollapseSonNode(d,null,a,!0);return a},expandNode:function(a,b,c,e,m){if(!a||!a.isParent)return null;b!==!0&&b!==!1&&(b=!a.open);if((m=!!m)&&b&&j.apply(d.callback.beforeExpand,[d.treeId,a],!0)==!1)return null;else if(m&&!b&&j.apply(d.callback.beforeCollapse,[d.treeId,a],!0)==!1)return null;b&&a.parentTId&&i.expandCollapseParentNode(d,a.getParentNode(),b,!1);if(b===a.open&&!c)return null;h.getRoot(d).expandTriggerFlag=m;if(!j.canAsync(d,a)&&c)i.expandCollapseSonNode(d,a,b,!0,function(){if(e!== +!1)try{k(a,d).focus().blur()}catch(b){}});else if(a.open=!b,i.switchNode(this.setting,a),e!==!1)try{k(a,d).focus().blur()}catch(p){}return b},getNodes:function(){return h.getNodes(d)},getNodeByParam:function(a,b,c){return!a?null:h.getNodeByParam(d,c?c[d.data.key.children]:h.getNodes(d),a,b)},getNodeByTId:function(a){return h.getNodeCache(d,a)},getNodesByParam:function(a,b,c){return!a?null:h.getNodesByParam(d,c?c[d.data.key.children]:h.getNodes(d),a,b)},getNodesByParamFuzzy:function(a,b,c){return!a? +null:h.getNodesByParamFuzzy(d,c?c[d.data.key.children]:h.getNodes(d),a,b)},getNodesByFilter:function(a,b,c,e){b=!!b;return!a||typeof a!="function"?b?null:[]:h.getNodesByFilter(d,c?c[d.data.key.children]:h.getNodes(d),a,b,e)},getNodeIndex:function(a){if(!a)return null;for(var b=d.data.key.children,c=a.parentTId?a.getParentNode():h.getRoot(d),e=0,i=c[b].length;e0?i.createNodes(d,0,b[a]):d.async.enable&& +d.async.url&&d.async.url!==""&&i.asyncNode(d);return c}};var N=p.fn.zTree,k=j.$,e=N.consts})(jQuery); diff --git a/common/src/main/webapp/framework/browser/thirdparty/js/jquery_1.12.4.min.js b/common/src/main/webapp/framework/browser/thirdparty/js/jquery_1.12.4.min.js new file mode 100644 index 00000000..bfe47d63 --- /dev/null +++ b/common/src/main/webapp/framework/browser/thirdparty/js/jquery_1.12.4.min.js @@ -0,0 +1,5 @@ +/*! jQuery v1.12.4 | (c) jQuery Foundation | jquery.org/license */ +!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=a.document,e=c.slice,f=c.concat,g=c.push,h=c.indexOf,i={},j=i.toString,k=i.hasOwnProperty,l={},m="1.12.4",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return e.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:e.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a){return n.each(this,a)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(e.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:g,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(n.isPlainObject(c)||(b=n.isArray(c)))?(b?(b=!1,f=a&&n.isArray(a)?a:[]):f=a&&n.isPlainObject(a)?a:{},g[d]=n.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray||function(a){return"array"===n.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){var b=a&&a.toString();return!n.isArray(a)&&b-parseFloat(b)+1>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==n.type(a)||a.nodeType||n.isWindow(a))return!1;try{if(a.constructor&&!k.call(a,"constructor")&&!k.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(!l.ownFirst)for(b in a)return k.call(a,b);for(b in a);return void 0===b||k.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?i[j.call(a)]||"object":typeof a},globalEval:function(b){b&&n.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b){var c,d=0;if(s(a)){for(c=a.length;c>d;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):g.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(h)return h.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,g=0,h=[];if(s(a))for(d=a.length;d>g;g++)e=b(a[g],g,c),null!=e&&h.push(e);else for(g in a)e=b(a[g],g,c),null!=e&&h.push(e);return f.apply([],h)},guid:1,proxy:function(a,b){var c,d,f;return"string"==typeof b&&(f=a[b],b=a,a=f),n.isFunction(a)?(c=e.call(arguments,2),d=function(){return a.apply(b||this,c.concat(e.call(arguments)))},d.guid=a.guid=a.guid||n.guid++,d):void 0},now:function(){return+new Date},support:l}),"function"==typeof Symbol&&(n.fn[Symbol.iterator]=c[Symbol.iterator]),n.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){i["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=!!a&&"length"in a&&a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ga(),z=ga(),A=ga(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+M+"))|)"+L+"*\\]",O=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+N+")*)|.*)\\)|)",P=new RegExp(L+"+","g"),Q=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),R=new RegExp("^"+L+"*,"+L+"*"),S=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),T=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),U=new RegExp(O),V=new RegExp("^"+M+"$"),W={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M+"|[*])"),ATTR:new RegExp("^"+N),PSEUDO:new RegExp("^"+O),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},X=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Z=/^[^{]+\{\s*\[native \w/,$=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,_=/[+~]/,aa=/'|\\/g,ba=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),ca=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},da=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(ea){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fa(a,b,d,e){var f,h,j,k,l,o,r,s,w=b&&b.ownerDocument,x=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==x&&9!==x&&11!==x)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==x&&(o=$.exec(a)))if(f=o[1]){if(9===x){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(w&&(j=w.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(o[2])return H.apply(d,b.getElementsByTagName(a)),d;if((f=o[3])&&c.getElementsByClassName&&b.getElementsByClassName)return H.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==x)w=b,s=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(aa,"\\$&"):b.setAttribute("id",k=u),r=g(a),h=r.length,l=V.test(k)?"#"+k:"[id='"+k+"']";while(h--)r[h]=l+" "+qa(r[h]);s=r.join(","),w=_.test(a)&&oa(b.parentNode)||b}if(s)try{return H.apply(d,w.querySelectorAll(s)),d}catch(y){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(Q,"$1"),b,d,e)}function ga(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ha(a){return a[u]=!0,a}function ia(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ja(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function ka(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function la(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function na(a){return ha(function(b){return b=+b,ha(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function oa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=fa.support={},f=fa.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fa.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ia(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ia(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Z.test(n.getElementsByClassName),c.getById=ia(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return"undefined"!=typeof b.getElementsByClassName&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=Z.test(n.querySelectorAll))&&(ia(function(a){o.appendChild(a).innerHTML="
    ",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ia(function(a){var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Z.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ia(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",O)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Z.test(o.compareDocumentPosition),t=b||Z.test(o.contains)?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)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return ka(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?ka(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},fa.matches=function(a,b){return fa(a,null,null,b)},fa.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(T,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fa(b,n,null,[a]).length>0},fa.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fa.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fa.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fa.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fa.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fa.selectors={cacheLength:50,createPseudo:ha,match:W,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ba,ca),a[3]=(a[3]||a[4]||a[5]||"").replace(ba,ca),"~="===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]||fa.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]&&fa.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return W.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&U.test(c)&&(b=g(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){var b=a.replace(ba,ca).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fa.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.replace(P," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},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,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fa.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ha(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ha(function(a){var b=[],c=[],d=h(a.replace(Q,"$1"));return d[u]?ha(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ha(function(a){return function(b){return fa(a,b).length>0}}),contains:ha(function(a){return a=a.replace(ba,ca),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ha(function(a){return V.test(a||"")||fa.error("unsupported lang: "+a),a=a.replace(ba,ca).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("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===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.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.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Y.test(a.nodeName)},input:function(a){return X.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"))||"text"===b.toLowerCase())},first:na(function(){return[0]}),last:na(function(a,b){return[b-1]}),eq:na(function(a,b,c){return[0>c?c+b:c]}),even:na(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:na(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:na(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:na(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function ra(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j,k=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(j=b[u]||(b[u]={}),i=j[b.uniqueID]||(j[b.uniqueID]={}),(h=i[d])&&h[0]===w&&h[1]===f)return k[2]=h[2];if(i[d]=k,k[2]=a(b,c,g))return!0}}}function sa(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ta(a,b,c){for(var d=0,e=b.length;e>d;d++)fa(a,b[d],c);return c}function ua(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function va(a,b,c,d,e,f){return d&&!d[u]&&(d=va(d)),e&&!e[u]&&(e=va(e,f)),ha(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ta(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ua(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ua(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ua(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function wa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ra(function(a){return a===b},h,!0),l=ra(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[ra(sa(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return va(i>1&&sa(m),i>1&&qa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(Q,"$1"),c,e>i&&wa(a.slice(i,e)),f>e&&wa(a=a.slice(e)),f>e&&qa(a))}m.push(c)}return sa(m)}function xa(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=F.call(i));u=ua(u)}H.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&fa.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ha(f):f}return h=fa.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xa(e,d)),f.selector=a}return f},i=fa.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ba,ca),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=W.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ba,ca),_.test(j[0].type)&&oa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qa(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,!b||_.test(a)&&oa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ia(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ia(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ja("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ia(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ja("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ia(function(a){return null==a.getAttribute("disabled")})||ja(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fa}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.uniqueSort=n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},v=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},w=n.expr.match.needsContext,x=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,y=/^.[^:#\[\.,]*$/;function z(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(y.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return n.inArray(a,b)>-1!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;e>b;b++)if(n.contains(d[b],this))return!0}));for(b=0;e>b;b++)n.find(a,d[b],c);return c=this.pushStack(e>1?n.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(z(this,a||[],!1))},not:function(a){return this.pushStack(z(this,a||[],!0))},is:function(a){return!!z(this,"string"==typeof a&&w.test(a)?n(a):a||[],!1).length}});var A,B=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=n.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||A,"string"==typeof a){if(e="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:B.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),x.test(e[1])&&n.isPlainObject(b))for(e in b)n.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}if(f=d.getElementById(e[2]),f&&f.parentNode){if(f.id!==e[2])return A.find(a);this.length=1,this[0]=f}return this.context=d,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof c.ready?c.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};C.prototype=n.fn,A=n(d);var D=/^(?:parents|prev(?:Until|All))/,E={children:!0,contents:!0,next:!0,prev:!0};n.fn.extend({has:function(a){var b,c=n(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(n.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=w.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?n.inArray(this[0],n(a)):n.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.uniqueSort(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function F(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return u(a,"parentNode")},parentsUntil:function(a,b,c){return u(a,"parentNode",c)},next:function(a){return F(a,"nextSibling")},prev:function(a){return F(a,"previousSibling")},nextAll:function(a){return u(a,"nextSibling")},prevAll:function(a){return u(a,"previousSibling")},nextUntil:function(a,b,c){return u(a,"nextSibling",c)},prevUntil:function(a,b,c){return u(a,"previousSibling",c)},siblings:function(a){return v((a.parentNode||{}).firstChild,a)},children:function(a){return v(a.firstChild)},contents:function(a){return n.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(E[a]||(e=n.uniqueSort(e)),D.test(a)&&(e=e.reverse())),this.pushStack(e)}});var G=/\S+/g;function H(a){var b={};return n.each(a.match(G)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?H(a):n.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h-1)f.splice(c,1),h>=c&&h--}),this},has:function(a){return a?n.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=!0,c||j.disable(),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().progress(c.notify).done(c.resolve).fail(c.reject):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.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=0,c=e.call(arguments),d=c.length,f=1!==d||a&&n.isFunction(a.promise)?d:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?e.call(arguments):d,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(d>1)for(i=new Array(d),j=new Array(d),k=new Array(d);d>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().progress(h(b,j,i)).done(h(b,k,c)).fail(g.reject):--f;return f||g.resolveWith(k,c),g.promise()}});var I;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(I.resolveWith(d,[n]),n.fn.triggerHandler&&(n(d).triggerHandler("ready"),n(d).off("ready"))))}});function J(){d.addEventListener?(d.removeEventListener("DOMContentLoaded",K),a.removeEventListener("load",K)):(d.detachEvent("onreadystatechange",K),a.detachEvent("onload",K))}function K(){(d.addEventListener||"load"===a.event.type||"complete"===d.readyState)&&(J(),n.ready())}n.ready.promise=function(b){if(!I)if(I=n.Deferred(),"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll)a.setTimeout(n.ready);else if(d.addEventListener)d.addEventListener("DOMContentLoaded",K),a.addEventListener("load",K);else{d.attachEvent("onreadystatechange",K),a.attachEvent("onload",K);var c=!1;try{c=null==a.frameElement&&d.documentElement}catch(e){}c&&c.doScroll&&!function f(){if(!n.isReady){try{c.doScroll("left")}catch(b){return a.setTimeout(f,50)}J(),n.ready()}}()}return I.promise(b)},n.ready.promise();var L;for(L in n(l))break;l.ownFirst="0"===L,l.inlineBlockNeedsLayout=!1,n(function(){var a,b,c,e;c=d.getElementsByTagName("body")[0],c&&c.style&&(b=d.createElement("div"),e=d.createElement("div"),e.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(e).appendChild(b),"undefined"!=typeof b.style.zoom&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",l.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(e))}),function(){var a=d.createElement("div");l.deleteExpando=!0;try{delete a.test}catch(b){l.deleteExpando=!1}a=null}();var M=function(a){var b=n.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b},N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(O,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}n.data(a,b,c)}else c=void 0; +}return c}function Q(a){var b;for(b in a)if(("data"!==b||!n.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function R(a,b,d,e){if(M(a)){var f,g,h=n.expando,i=a.nodeType,j=i?n.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||n.guid++:h),j[k]||(j[k]=i?{}:{toJSON:n.noop}),"object"!=typeof b&&"function"!=typeof b||(e?j[k]=n.extend(j[k],b):j[k].data=n.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[n.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[n.camelCase(b)])):f=g,f}}function S(a,b,c){if(M(a)){var d,e,f=a.nodeType,g=f?n.cache:a,h=f?a[n.expando]:n.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){n.isArray(b)?b=b.concat(n.map(b,n.camelCase)):b in d?b=[b]:(b=n.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!Q(d):!n.isEmptyObject(d))return}(c||(delete g[h].data,Q(g[h])))&&(f?n.cleanData([a],!0):l.deleteExpando||g!=g.window?delete g[h]:g[h]=void 0)}}}n.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?n.cache[a[n.expando]]:a[n.expando],!!a&&!Q(a)},data:function(a,b,c){return R(a,b,c)},removeData:function(a,b){return S(a,b)},_data:function(a,b,c){return R(a,b,c,!0)},_removeData:function(a,b){return S(a,b,!0)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=n.data(f),1===f.nodeType&&!n._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));n._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){n.data(this,a)}):arguments.length>1?this.each(function(){n.data(this,a,b)}):f?P(f,a,n.data(f,a)):void 0},removeData:function(a){return this.each(function(){n.removeData(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=n._data(a,b),c&&(!d||n.isArray(c)?d=n._data(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),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 n._data(a,c)||n._data(a,c,{empty:n.Callbacks("once memory").add(function(){n._removeData(a,b+"queue"),n._removeData(a,c)})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthh;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},Z=/^(?:checkbox|radio)$/i,$=/<([\w:-]+)/,_=/^$|\/(?:java|ecma)script/i,aa=/^\s+/,ba="abbr|article|aside|audio|bdi|canvas|data|datalist|details|dialog|figcaption|figure|footer|header|hgroup|main|mark|meter|nav|output|picture|progress|section|summary|template|time|video";function ca(a){var b=ba.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}!function(){var a=d.createElement("div"),b=d.createDocumentFragment(),c=d.createElement("input");a.innerHTML="
    a",l.leadingWhitespace=3===a.firstChild.nodeType,l.tbody=!a.getElementsByTagName("tbody").length,l.htmlSerialize=!!a.getElementsByTagName("link").length,l.html5Clone="<:nav>"!==d.createElement("nav").cloneNode(!0).outerHTML,c.type="checkbox",c.checked=!0,b.appendChild(c),l.appendChecked=c.checked,a.innerHTML="",l.noCloneChecked=!!a.cloneNode(!0).lastChild.defaultValue,b.appendChild(a),c=d.createElement("input"),c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),a.appendChild(c),l.checkClone=a.cloneNode(!0).cloneNode(!0).lastChild.checked,l.noCloneEvent=!!a.addEventListener,a[n.expando]=1,l.attributes=!a.getAttribute(n.expando)}();var da={option:[1,""],legend:[1,"
    ","
    "],area:[1,"",""],param:[1,"",""],thead:[1,"","
    "],tr:[2,"","
    "],col:[2,"","
    "],td:[3,"","
    "],_default:l.htmlSerialize?[0,"",""]:[1,"X
    ","
    "]};da.optgroup=da.option,da.tbody=da.tfoot=da.colgroup=da.caption=da.thead,da.th=da.td;function ea(a,b){var c,d,e=0,f="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||n.nodeName(d,b)?f.push(d):n.merge(f,ea(d,b));return void 0===b||b&&n.nodeName(a,b)?n.merge([a],f):f}function fa(a,b){for(var c,d=0;null!=(c=a[d]);d++)n._data(c,"globalEval",!b||n._data(b[d],"globalEval"))}var ga=/<|&#?\w+;/,ha=/r;r++)if(g=a[r],g||0===g)if("object"===n.type(g))n.merge(q,g.nodeType?[g]:g);else if(ga.test(g)){i=i||p.appendChild(b.createElement("div")),j=($.exec(g)||["",""])[1].toLowerCase(),m=da[j]||da._default,i.innerHTML=m[1]+n.htmlPrefilter(g)+m[2],f=m[0];while(f--)i=i.lastChild;if(!l.leadingWhitespace&&aa.test(g)&&q.push(b.createTextNode(aa.exec(g)[0])),!l.tbody){g="table"!==j||ha.test(g)?""!==m[1]||ha.test(g)?0:i:i.firstChild,f=g&&g.childNodes.length;while(f--)n.nodeName(k=g.childNodes[f],"tbody")&&!k.childNodes.length&&g.removeChild(k)}n.merge(q,i.childNodes),i.textContent="";while(i.firstChild)i.removeChild(i.firstChild);i=p.lastChild}else q.push(b.createTextNode(g));i&&p.removeChild(i),l.appendChecked||n.grep(ea(q,"input"),ia),r=0;while(g=q[r++])if(d&&n.inArray(g,d)>-1)e&&e.push(g);else if(h=n.contains(g.ownerDocument,g),i=ea(p.appendChild(g),"script"),h&&fa(i),c){f=0;while(g=i[f++])_.test(g.type||"")&&c.push(g)}return i=null,p}!function(){var b,c,e=d.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(l[b]=c in a)||(e.setAttribute(c,"t"),l[b]=e.attributes[c].expando===!1);e=null}();var ka=/^(?:input|select|textarea)$/i,la=/^key/,ma=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,na=/^(?:focusinfocus|focusoutblur)$/,oa=/^([^.]*)(?:\.(.+)|)/;function pa(){return!0}function qa(){return!1}function ra(){try{return d.activeElement}catch(a){}}function sa(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)sa(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=qa;else if(!e)return a;return 1===f&&(g=e,e=function(a){return n().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=n.guid++)),a.each(function(){n.event.add(this,b,e,d,c)})}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=n.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return"undefined"==typeof n||a&&n.event.triggered===a.type?void 0:n.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(G)||[""],h=b.length;while(h--)f=oa.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=n.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=n.event.special[o]||{},l=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},i),(m=g[o])||(m=g[o]=[],m.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,l):m.push(l),n.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n.hasData(a)&&n._data(a);if(r&&(k=r.events)){b=(b||"").match(G)||[""],j=b.length;while(j--)if(h=oa.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=m.length;while(f--)g=m[f],!e&&q!==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,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(k)&&(delete r.handle,n._removeData(a,"events"))}},trigger:function(b,c,e,f){var g,h,i,j,l,m,o,p=[e||d],q=k.call(b,"type")?b.type:b,r=k.call(b,"namespace")?b.namespace.split("."):[];if(i=m=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!na.test(q+n.event.triggered)&&(q.indexOf(".")>-1&&(r=q.split("."),q=r.shift(),r.sort()),h=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=r.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:n.makeArray(c,[b]),l=n.event.special[q]||{},f||!l.trigger||l.trigger.apply(e,c)!==!1)){if(!f&&!l.noBubble&&!n.isWindow(e)){for(j=l.delegateType||q,na.test(j+q)||(i=i.parentNode);i;i=i.parentNode)p.push(i),m=i;m===(e.ownerDocument||d)&&p.push(m.defaultView||m.parentWindow||a)}o=0;while((i=p[o++])&&!b.isPropagationStopped())b.type=o>1?j:l.bindType||q,g=(n._data(i,"events")||{})[b.type]&&n._data(i,"handle"),g&&g.apply(i,c),g=h&&i[h],g&&g.apply&&M(i)&&(b.result=g.apply(i,c),b.result===!1&&b.preventDefault());if(b.type=q,!f&&!b.isDefaultPrevented()&&(!l._default||l._default.apply(p.pop(),c)===!1)&&M(e)&&h&&e[q]&&!n.isWindow(e)){m=e[h],m&&(e[h]=null),n.event.triggered=q;try{e[q]()}catch(s){}n.event.triggered=void 0,m&&(e[h]=m)}return b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,d,f,g,h=[],i=e.call(arguments),j=(n._data(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())a.rnamespace&&!a.rnamespace.test(g.namespace)||(a.handleObj=g,a.data=g.data,d=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==d&&(a.result=d)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&("click"!==a.type||isNaN(a.button)||a.button<1))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>-1:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h]","i"),va=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,wa=/\s*$/g,Aa=ca(d),Ba=Aa.appendChild(d.createElement("div"));function Ca(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function Da(a){return a.type=(null!==n.find.attr(a,"type"))+"/"+a.type,a}function Ea(a){var b=ya.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Fa(a,b){if(1===b.nodeType&&n.hasData(a)){var c,d,e,f=n._data(a),g=n._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)n.event.add(b,c,h[c][d])}g.data&&(g.data=n.extend({},g.data))}}function Ga(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!l.noCloneEvent&&b[n.expando]){e=n._data(b);for(d in e.events)n.removeEvent(b,d,e.handle);b.removeAttribute(n.expando)}"script"===c&&b.text!==a.text?(Da(b).text=a.text,Ea(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),l.html5Clone&&a.innerHTML&&!n.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&Z.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}}function Ha(a,b,c,d){b=f.apply([],b);var e,g,h,i,j,k,m=0,o=a.length,p=o-1,q=b[0],r=n.isFunction(q);if(r||o>1&&"string"==typeof q&&!l.checkClone&&xa.test(q))return a.each(function(e){var f=a.eq(e);r&&(b[0]=q.call(this,e,f.html())),Ha(f,b,c,d)});if(o&&(k=ja(b,a[0].ownerDocument,!1,a,d),e=k.firstChild,1===k.childNodes.length&&(k=e),e||d)){for(i=n.map(ea(k,"script"),Da),h=i.length;o>m;m++)g=k,m!==p&&(g=n.clone(g,!0,!0),h&&n.merge(i,ea(g,"script"))),c.call(a[m],g,m);if(h)for(j=i[i.length-1].ownerDocument,n.map(i,Ea),m=0;h>m;m++)g=i[m],_.test(g.type||"")&&!n._data(g,"globalEval")&&n.contains(j,g)&&(g.src?n._evalUrl&&n._evalUrl(g.src):n.globalEval((g.text||g.textContent||g.innerHTML||"").replace(za,"")));k=e=null}return a}function Ia(a,b,c){for(var d,e=b?n.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||n.cleanData(ea(d)),d.parentNode&&(c&&n.contains(d.ownerDocument,d)&&fa(ea(d,"script")),d.parentNode.removeChild(d));return a}n.extend({htmlPrefilter:function(a){return a.replace(va,"<$1>")},clone:function(a,b,c){var d,e,f,g,h,i=n.contains(a.ownerDocument,a);if(l.html5Clone||n.isXMLDoc(a)||!ua.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(Ba.innerHTML=a.outerHTML,Ba.removeChild(f=Ba.firstChild)),!(l.noCloneEvent&&l.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(d=ea(f),h=ea(a),g=0;null!=(e=h[g]);++g)d[g]&&Ga(e,d[g]);if(b)if(c)for(h=h||ea(a),d=d||ea(f),g=0;null!=(e=h[g]);g++)Fa(e,d[g]);else Fa(a,f);return d=ea(f,"script"),d.length>0&&fa(d,!i&&ea(a,"script")),d=h=e=null,f},cleanData:function(a,b){for(var d,e,f,g,h=0,i=n.expando,j=n.cache,k=l.attributes,m=n.event.special;null!=(d=a[h]);h++)if((b||M(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)m[e]?n.event.remove(d,e):n.removeEvent(d,e,g.handle);j[f]&&(delete j[f],k||"undefined"==typeof d.removeAttribute?d[i]=void 0:d.removeAttribute(i),c.push(f))}}}),n.fn.extend({domManip:Ha,detach:function(a){return Ia(this,a,!0)},remove:function(a){return Ia(this,a)},text:function(a){return Y(this,function(a){return void 0===a?n.text(this):this.empty().append((this[0]&&this[0].ownerDocument||d).createTextNode(a))},null,a,arguments.length)},append:function(){return Ha(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ca(this,a);b.appendChild(a)}})},prepend:function(){return Ha(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ca(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ha(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ha(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&n.cleanData(ea(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&n.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return Y(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(ta,""):void 0;if("string"==typeof a&&!wa.test(a)&&(l.htmlSerialize||!ua.test(a))&&(l.leadingWhitespace||!aa.test(a))&&!da[($.exec(a)||["",""])[1].toLowerCase()]){a=n.htmlPrefilter(a);try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(ea(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return Ha(this,arguments,function(b){var c=this.parentNode;n.inArray(this,a)<0&&(n.cleanData(ea(this)),c&&c.replaceChild(b,this))},a)}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=0,e=[],f=n(a),h=f.length-1;h>=d;d++)c=d===h?this:this.clone(!0),n(f[d])[b](c),g.apply(e,c.get());return this.pushStack(e)}});var Ja,Ka={HTML:"block",BODY:"block"};function La(a,b){var c=n(b.createElement(a)).appendTo(b.body),d=n.css(c[0],"display");return c.detach(),d}function Ma(a){var b=d,c=Ka[a];return c||(c=La(a,b),"none"!==c&&c||(Ja=(Ja||n("--> + + + + +
    + + + + +
    + +
    + + +
    +
    +

    NFVO

    +
    +
    +
    + + + +
    +
    +
    +
    + + + + + +
    + + + \ No newline at end of file diff --git a/lifecyclemgr/src/main/webapp/lifecyclemgr/chartTopo.html b/lifecyclemgr/src/main/webapp/lifecyclemgr/chartTopo.html new file mode 100644 index 00000000..9423b584 --- /dev/null +++ b/lifecyclemgr/src/main/webapp/lifecyclemgr/chartTopo.html @@ -0,0 +1,268 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + + + + diff --git a/lifecyclemgr/src/main/webapp/lifecyclemgr/conf/License.txt b/lifecyclemgr/src/main/webapp/lifecyclemgr/conf/License.txt new file mode 100644 index 00000000..8e698ecb --- /dev/null +++ b/lifecyclemgr/src/main/webapp/lifecyclemgr/conf/License.txt @@ -0,0 +1,362 @@ +THIS LICENSE FILE CONTAINS THE LICENSE APPLICABLE DEPENDING ON THE TYPE OF CONTRIBUTIONS. + +APACHE LICENSE 2 IS APPLICABLE FOR SOURCE CODE, CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL FOR DOCUMENTATION + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + + +Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. + +"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. + +2. Grant of Copyright License. + +Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. + +Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. + +You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: + +You must give any other recipients of the Work or Derivative Works a copy of this License; and You must cause any modified files to carry prominent notices stating that You changed the files; and You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. + +5. Submission of Contributions. + +Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. + +6. Trademarks. + +This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. + +Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. + +In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. + +While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +Attribution 4.0 International + +https://creativecommons.org/licenses/by/4.0/legalcode + +Creative Commons Corporation ("Creative Commons") is not a law firm and does not provide legal services or legal advice. Distribution of Creative Commons public licenses does not create a lawyer-client or other relationship. Creative Commons makes its licenses and related information available on an "as-is" basis. Creative Commons gives no warranties regarding its licenses, any material licensed under their terms and conditions, or any related information. Creative Commons disclaims all liability for damages resulting from their use to the fullest extent possible. + +Using Creative Commons Public Licenses + +Creative Commons public licenses provide a standard set of terms and conditions that creators and other rights holders may use to share original works of authorship and other material subject to copyright and certain other rights specified in the public license below. The following considerations are for informational purposes only, are not exhaustive, and do not form part of our licenses. + + Considerations for licensors: Our public licenses are + intended for use by those authorized to give the public + permission to use material in ways otherwise restricted by + copyright and certain other rights. Our licenses are + irrevocable. Licensors should read and understand the terms + and conditions of the license they choose before applying it. + Licensors should also secure all rights necessary before + applying our licenses so that the public can reuse the + material as expected. Licensors should clearly mark any + material not subject to the license. This includes other CC- + licensed material, or material used under an exception or + limitation to copyright. More considerations for licensors: + wiki.creativecommons.org/Considerations_for_licensors + Considerations for the public: By using one of our public + licenses, a licensor grants the public permission to use the + licensed material under specified terms and conditions. If + the licensor's permission is not necessary for any reason--for + example, because of any applicable exception or limitation to + copyright--then that use is not regulated by the license. Our + licenses grant only permissions under copyright and certain + other rights that a licensor has authority to grant. Use of + the licensed material may still be restricted for other + reasons, including because others have copyright or other + rights in the material. A licensor may make special requests, + such as asking that all changes be marked or described. + Although not required by our licenses, you are encouraged to + respect those requests where reasonable. More_considerations + for the public: + wiki.creativecommons.org/Considerations_for_licensees +Creative Commons Attribution 4.0 International Public License + +By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions. + + +Section 1 -- Definitions. + + a. Adapted Material means material subject to Copyright and Similar + Rights that is derived from or based upon the Licensed Material + and in which the Licensed Material is translated, altered, + arranged, transformed, or otherwise modified in a manner requiring + permission under the Copyright and Similar Rights held by the + Licensor. For purposes of this Public License, where the Licensed + Material is a musical work, performance, or sound recording, + Adapted Material is always produced where the Licensed Material is + synched in timed relation with a moving image. + b. Adapter's License means the license You apply to Your Copyright + and Similar Rights in Your contributions to Adapted Material in + accordance with the terms and conditions of this Public License. + c. Copyright and Similar Rights means copyright and/or similar rights + closely related to copyright including, without limitation, + performance, broadcast, sound recording, and Sui Generis Database + Rights, without regard to how the rights are labeled or + categorized. For purposes of this Public License, the rights + specified in Section 2(b)(1)-(2) are not Copyright and Similar + Rights. + d. Effective Technological Measures means those measures that, in the + absence of proper authority, may not be circumvented under laws + fulfilling obligations under Article 11 of the WIPO Copyright + Treaty adopted on December 20, 1996, and/or similar international + agreements. + e. Exceptions and Limitations means fair use, fair dealing, and/or + any other exception or limitation to Copyright and Similar Rights + that applies to Your use of the Licensed Material. + f. Licensed Material means the artistic or literary work, database, + or other material to which the Licensor applied this Public + License. + g. Licensed Rights means the rights granted to You subject to the + terms and conditions of this Public License, which are limited to + all Copyright and Similar Rights that apply to Your use of the + Licensed Material and that the Licensor has authority to license. + h. Licensor means the individual(s) or entity(ies) granting rights + under this Public License. + i. Share means to provide material to the public by any means or + process that requires permission under the Licensed Rights, such + as reproduction, public display, public performance, distribution, + dissemination, communication, or importation, and to make material + available to the public including in ways that members of the + public may access the material from a place and at a time + individually chosen by them. + j. Sui Generis Database Rights means rights other than copyright + resulting from Directive 96/9/EC of the European Parliament and of + the Council of 11 March 1996 on the legal protection of databases, + as amended and/or succeeded, as well as other essentially + equivalent rights anywhere in the world. + k. You means the individual or entity exercising the Licensed Rights + under this Public License. Your has a corresponding meaning. + +Section 2 -- Scope. + + a. License grant. + 1. Subject to the terms and conditions of this Public License, + the Licensor hereby grants You a worldwide, royalty-free, + non-sublicensable, non-exclusive, irrevocable license to + exercise the Licensed Rights in the Licensed Material to: + a. reproduce and Share the Licensed Material, in whole or + in part; and + b. produce, reproduce, and Share Adapted Material. + 2. Exceptions and Limitations. For the avoidance of doubt, where + Exceptions and Limitations apply to Your use, this Public + License does not apply, and You do not need to comply with + its terms and conditions. + 3. Term. The term of this Public License is specified in Section + 6(a). + 4. Media and formats; technical modifications allowed. The + Licensor authorizes You to exercise the Licensed Rights in + all media and formats whether now known or hereafter created, + and to make technical modifications necessary to do so. The + Licensor waives and/or agrees not to assert any right or + authority to forbid You from making technical modifications + necessary to exercise the Licensed Rights, including + technical modifications necessary to circumvent Effective + Technological Measures. For purposes of this Public License, + simply making modifications authorized by this Section 2(a) + (4) never produces Adapted Material. + 5. Downstream recipients. + a. Offer from the Licensor -- Licensed Material. Every + recipient of the Licensed Material automatically + receives an offer from the Licensor to exercise the + Licensed Rights under the terms and conditions of this + Public License. + b. No downstream restrictions. You may not offer or impose + any additional or different terms or conditions on, or + apply any Effective Technological Measures to, the + Licensed Material if doing so restricts exercise of the + Licensed Rights by any recipient of the Licensed + Material. + 6. No endorsement. Nothing in this Public License constitutes or + may be construed as permission to assert or imply that You + are, or that Your use of the Licensed Material is, connected + with, or sponsored, endorsed, or granted official status by, + the Licensor or others designated to receive attribution as + provided in Section 3(a)(1)(A)(i). + b. Other rights. + 1. Moral rights, such as the right of integrity, are not + licensed under this Public License, nor are publicity, + privacy, and/or other similar personality rights; however, to + the extent possible, the Licensor waives and/or agrees not to + assert any such rights held by the Licensor to the limited + extent necessary to allow You to exercise the Licensed + Rights, but not otherwise. + 2. Patent and trademark rights are not licensed under this + Public License. + 3. To the extent possible, the Licensor waives any right to + collect royalties from You for the exercise of the Licensed + Rights, whether directly or through a collecting society + under any voluntary or waivable statutory or compulsory + licensing scheme. In all other cases the Licensor expressly + reserves any right to collect such royalties. + +Section 3 -- License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the following conditions. + + a. Attribution. + 1. If You Share the Licensed Material (including in modified + form), You must: + a. retain the following if it is supplied by the Licensor + with the Licensed Material: + i. identification of the creator(s) of the Licensed + Material and any others designated to receive + attribution, in any reasonable manner requested by + the Licensor (including by pseudonym if + designated); + ii. a copyright notice; + iii. a notice that refers to this Public License; + iv. a notice that refers to the disclaimer of + warranties; + v. a URI or hyperlink to the Licensed Material to the + extent reasonably practicable; + b. indicate if You modified the Licensed Material and + retain an indication of any previous modifications; and + c. indicate the Licensed Material is licensed under this + Public License, and include the text of, or the URI or + hyperlink to, this Public License. + 2. You may satisfy the conditions in Section 3(a)(1) in any + reasonable manner based on the medium, means, and context in + which You Share the Licensed Material. For example, it may be + reasonable to satisfy the conditions by providing a URI or + hyperlink to a resource that includes the required + information. + 3. If requested by the Licensor, You must remove any of the + information required by Section 3(a)(1)(A) to the extent + reasonably practicable. + 4. If You Share Adapted Material You produce, the Adapter's + License You apply must not prevent recipients of the Adapted + Material from complying with this Public License. + +Section 4 -- Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material: + + a. for the avoidance of doubt, Section 2(a)(1) grants You the right + to extract, reuse, reproduce, and Share all or a substantial + portion of the contents of the database; + b. if You include all or a substantial portion of the database + contents in a database in which You have Sui Generis Database + Rights, then the database in which You have Sui Generis Database + Rights (but not its individual contents) is Adapted Material; and + c. You must comply with the conditions in Section 3(a) if You Share + all or a substantial portion of the contents of the database. +For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights. + + +Section 5 -- Disclaimer of Warranties and Limitation of Liability. + + a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE + EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS + AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF + ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, + IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, + WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, + ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT + KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT + ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. + b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE + TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, + NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, + INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, + COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR + USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR + DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR + IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + c. The disclaimer of warranties and limitation of liability provided + above shall be interpreted in a manner that, to the extent + possible, most closely approximates an absolute disclaimer and + waiver of all liability. + +Section 6 -- Term and Termination. + + a. This Public License applies for the term of the Copyright and + Similar Rights licensed here. However, if You fail to comply with + this Public License, then Your rights under this Public License + terminate automatically. + b. Where Your right to use the Licensed Material has terminated under + Section 6(a), it reinstates: + 1. automatically as of the date the violation is cured, provided + it is cured within 30 days of Your discovery of the + violation; or + 2. upon express reinstatement by the Licensor. + For the avoidance of doubt, this Section 6(b) does not affect any + right the Licensor may have to seek remedies for Your violations + of this Public License. + c. For the avoidance of doubt, the Licensor may also offer the + Licensed Material under separate terms or conditions or stop + distributing the Licensed Material at any time; however, doing so + will not terminate this Public License. + d. Sections 1, 5, 6, 7, and 8 survive termination of this Public + License. + +Section 7 -- Other Terms and Conditions. + + a. The Licensor shall not be bound by any additional or different + terms or conditions communicated by You unless expressly agreed. + b. Any arrangements, understandings, or agreements regarding the + Licensed Material not stated herein are separate from and + independent of the terms and conditions of this Public License. + +Section 8 -- Interpretation. + + a. For the avoidance of doubt, this Public License does not, and + shall not be interpreted to, reduce, limit, restrict, or impose + conditions on any use of the Licensed Material that could lawfully + be made without permission under this Public License. + b. To the extent possible, if any provision of this Public License is + deemed unenforceable, it shall be automatically reformed to the + minimum extent necessary to make it enforceable. If the provision + cannot be reformed, it shall be severed from this Public License + without affecting the enforceability of the remaining terms and + conditions. + c. No term or condition of this Public License will be waived and no + failure to comply consented to unless expressly agreed to by the + Licensor. + d. Nothing in this Public License constitutes or may be interpreted + as a limitation upon, or waiver of, any privileges and immunities + that apply to the Licensor or You, including from the legal + processes of any jurisdiction or authority. +Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the "Licensor." The text of the Creative Commons public licenses is dedicated to the public domain under the CC0 Public Domain Dedication. Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at creativecommons.org/policies, Creative Commons does not authorize the use of the trademark "Creative Commons" or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses. + +Creative Commons may be contacted at creativecommons.org. \ No newline at end of file diff --git a/lifecyclemgr/src/main/webapp/lifecyclemgr/conf/dataconfig.json b/lifecyclemgr/src/main/webapp/lifecyclemgr/conf/dataconfig.json new file mode 100644 index 00000000..b39c904e --- /dev/null +++ b/lifecyclemgr/src/main/webapp/lifecyclemgr/conf/dataconfig.json @@ -0,0 +1,4 @@ +{ + "url": "http://localhost", + "port": "8080" +} \ No newline at end of file diff --git a/lifecyclemgr/src/main/webapp/lifecyclemgr/css/RMain.css b/lifecyclemgr/src/main/webapp/lifecyclemgr/css/RMain.css new file mode 100644 index 00000000..03af0a2b --- /dev/null +++ b/lifecyclemgr/src/main/webapp/lifecyclemgr/css/RMain.css @@ -0,0 +1,210 @@ +/* Copyright 2016-2017, Huawei Technologies Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#iemp_layout_container { + padding: 0px; + margin: 1px auto; + width: 100%; + height: 100%; +} +#iemp_layout_container .three-cols-layout { + width: 100%; + height: 100%; + border-collapse: collapse; + margin-left: 0px; + margin-top: 0px; + margin-right: 0px; + margin-bottom: 0px; +} +#iemp_layout_container .three-cols-layout { + width: 100%; + height: 100%; + border-collapse: collapse; + margin-left: 0px; + margin-top: 0px; + margin-right: 0px; + margin-bottom: 0px; +} +#iemp_layout_container .three-cols-column.three-cols-left { + width: 215px; + background-color: #f5f5f5; +} +.accordion_parent { + position: relative; + width: 220px; + background-color: #f5f5f5; +} +.openo-accordion-resizable-handle { + z-index: 1!important; + cursor: e-resize; + width: 7px; + right: -5px; + top: 0; + height: 100%; + position: absolute; + font-size: .1px; + display: block; +} +.openoAccordian_accordionmenu { + width: 100%; + margin: 0; + padding: 0; + list-style-type: none; + line-height: 17px; +} +.openoAccordian_accordionmenu li { + min-width: 75px; + margin: 0; + padding: 0; + list-style-type: none; + color: #000; + clear: both; +} +.openo_accordion_ui-icon-collapse, .openo_accordion_ui-icon-expand { + display: block; + float: left; + margin-bottom: -1px; + border-bottom: 1px solid #e5e5e5; + cursor: pointer; + width: 13px; + padding-top: 26px; +} +.openo_accordion_ui-icon-expand { + background: url(../images/collapse_arrow.png) right 20px no-repeat; + margin-top: 8px; +} +.openo_accordion_ui-icon-expand.current{ + background: url(../images/expand_arrow.png) right 20px no-repeat; +} +.openoAccordian_showHideArrow_hide, .openoAccordian_showHideArrow_show { + display: block; + position: absolute; + right: 0; + top: 4px; + width: 18px; + height: 41px; + cursor: pointer; + background-color: #f5f5f5; +} +.openoAccordian_showHideArrow_hide { + background-image: url(../images/openo.png); + background-position: -7px 0!important; + border-collapse: separate; + /*box-shadow: inset -1px 0 0 #e5e5e5;*/ +} +a.header.opened, a.header.closed { + font-size: 16px; + padding-top: 24px; + padding-bottom: 25px; + color: #999999; +} +.openoAccordian_accordionmenu .closed, .openoAccordian_accordionmenu .opened { + padding-right: 10px; + background-position: 98% 50%; + background-repeat: no-repeat; +} +.openoAccordian_accordionmenu li a { + padding: 11px 10px 12px; + color: #333333; + margin-right: 1px; + margin-top: -1px; + text-align: left!important; + font-family: "Microsoft Yahei",SimSun,Arial,Tahoma; + font-size: 14px; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + border-top: 1px solid #e5e5e5; + border-bottom: 1px solid #e5e5e5; + /*height: 19px;*/ +} +.openoAccordian_accordionmenu ul { + margin: 0; + padding: 0; + overflow: hidden; +} +.openoAccordian_accordionmenu a { + display: block; + text-decoration: none; +} +a { + color: #428bca; + text-decoration: none; + background: 0 0; +} +.bar{ + height: 834px; + width: 18px; + background: #f8f8f8; + display: none; +} +.bar span{ + width: 13px; + height: 34px; + background-image: url(../images/openo.png); + background-position: -39px 0!important; + display: block; + /*margin-top: -430px;*/ +} +#accordionmenuid_ul_0_0_brAppTopMenuID_UL li{ + cursor: pointer; +} +#puer_base_openo{ + border: 1px solid #ddd; +} +.openo_accordion_selected { + margin-left: 0; + margin-right: 0; + background: #fafafa; + border-left: 3px solid #4ac9ff!important; + box-shadow: none; + position: relative; +} +a:hover{ + color: #4ac9ff!important; +} +.openoAccordian_accordionmenu li.openo_accordion_selected a { + position: relative; + left: -3px; + color: #009ae7; +} +.openo-accordion-resizable-handle { + z-index: 1!important; + cursor: e-resize; + width: 7px; + right: -5px; + top: 0; + height: 100%; + position: absolute; + font-size: .1px; + display: block; +} +#iframeContainer iframe { + width: 100%; + height: 100%; + border: 0; +} +#accordionContent, #iframeContainer { + margin: 0; + padding: 0; + border: 0; + width: 100%; + height: 100%; +} +.openoAccordian_showHideArrow_show { + background-image: url(../images/openo.png); + background-position: -39px 0!important; + box-shadow: inset 1px 0 0 #e5e5e5,inset -1px 0 0 #e5e5e5; +} \ No newline at end of file diff --git a/lifecyclemgr/src/main/webapp/lifecyclemgr/css/VMMain.css b/lifecyclemgr/src/main/webapp/lifecyclemgr/css/VMMain.css new file mode 100644 index 00000000..399f1a58 --- /dev/null +++ b/lifecyclemgr/src/main/webapp/lifecyclemgr/css/VMMain.css @@ -0,0 +1,664 @@ +/* Copyright 2016-2017, Huawei Technologies Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +body{ + font-family: '微软雅黑'; + font-size: 12px; + color: #333; + background: #fafafa; +} +button{ + outline: none; +} +ul,li{ + list-style: none; + padding:0; + margin:0; +} +.titleFont{ + font-size: 16px; +} +.separator-line{ + height: 1px; + width: 100%; + border:1px solid #ddd; + margin: 6px 0 15px 0; +} +.uploadBtn{ + overflow: hidden; +} +.creat-btn { + padding: 0 14px; + height: 24px; + float: left; + cursor: pointer; + text-decoration: none; + outline: 0; + border: 1px solid #d3d3d3; + text-align: center; + box-shadow: 0 1px 1px rgba(0,0,0,.05); + background: #fafafa; + background: -moz-linear-gradient(top,#fff,#fafafa); + background: -webkit-gradient(linear,left top,left bottom,color-stop(0,#fff),color-stop(100%,#fafafa)); + background: -webkit-linear-gradient(top,#fff,#fafafa); + background: linear-gradient(to bottom,#fff,#fafafa); + border-radius: 6px; + background: #fff url(../images/add.png) no-repeat 5px center; + padding-left: 20px; +} +.creat-btn:hover { + color: #009ae7; + border: 1px solid #4AC9FF +} +.creat-btn:active { + color: #000; + border: 1px solid #4AC9FF +} + +.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th { + background-color:#f5f5f5 +} + +.nav-tabs>li.active>a, .nav-tabs>li.active>a:hover, .nav-tabs>li.active>a:focus { + color: #009ae7; + background-color: #fff; + +} + +.search{ + width: 310px; + height: 30px; + float:right; +} +.search-text{ + width: 250px; + float: left; + margin-right: 6px; +} +.search-btn{ + height: 30px; + background: #fff; + border: 1px solid #ddd; + float: left; +} +#ict_virtualApplication_table_div{ + margin-top: 15px; +} +.table>thead>tr.active>th{ + border: 1px solid #ddd!important; + border-bottom: 0; + background: #f0f0f0; +} +/*.table tbody tr:hover{ + background: #e6fbe0!important; +}*/ +.table tbody tr:last-child{ + border-bottom: 1px solid #ddd; +} +.table-btn{ + border: 1px solid #ccc; + border-radius: 3px; +} +.delete-btn{ + background: url(../image/delete.png) no-repeat; + width: 16px; + height: 16px; + border: none; +} +.detail-btn{ + background: url(../image/openo.png) no-repeat -343px -283px; + width: 16px; + height: 16px; + border: none; +} +.detail-btn.current{ + background-position: -7px -314px; +} + +.detail-top ul li:hover{ + color: #4ac9ff; +} +.detail{ + + border: 1px solid #ddd; + margin-top: 60px; + +} + +.detailModal{ + height: 200px; + border: 1px solid #ddd; + +} + +.detail-top ul{ + height: 30px; + line-height: 30px; + border-bottom: 1px solid #ddd; + padding-left: 0px; + background: #fafafa; +} +.detail-top ul li{ + float:left; + width: 120px; + text-align: center; + border-right: 1px solid #ddd; + cursor: pointer; +} +.detail-top ul li.current{ + background: #fff; +} +.vmapp-margin{ + margin-bottom: 10px; +} +.control-label .required{ + color: #e02222; + font-size: 12px; + padding-left: 2px; +} +.form-group .control-label{ + font-size: 12px; + font-weight: 400; +} +legend{ + font-size: 12px; + font-weight: bold; +} +.pageGro{ + width: 250px; + float: right; +} +.pageUp,.pageDown,.pageList,.pageList li{ + float: left; + cursor: pointer; +} +.pageUp,.pageDown{ + width: 60px; + height: 30px; + border: 1px solid #ddd; + text-align: center; + line-height: 30px; +} +.pageList li{ + width: 30px; + height: 30px; + border: 1px solid #ddd; + text-align: center; + line-height: 30px; + border-left: none; +} +.pageList li.active{ + background: #428bca; + color: #fff; + border-color: #428bca; +} +.pageDown{ + border-left: none; +} +.headerLinkP{ + padding-top: 17px; +} +.headerLinkP span{ + font-size: 12px; + color: #666; + font-weight: normal!important; +} +label{ + font-weight: normal!important; +} +table.userform tbody tr td { + display: table-cell; + padding-right: 10px; + padding-top: 10px; + font-size: 12px; + color: #333; +} +.table th,.table td{ + padding-top: 3px!important; + padding-bottom: 3px!important; +} +.openoBrowseButton_element { + display: table; +} +.openo { + font-family: "Microsoft Yahei",SimSun,Arial,Tahoma; + font-size: 12px; + color: #000; +} +.openoBrowseButton_input { + width: 198px; + position: relative; + border: 1px solid #c3c3c3!important; + height: 26px; + background-color: #f3f3f3; + border-radius: 4px 0 0 4px; + border-right: none; + padding: 0; +} +.buttonClassDefault, .buttonClassDefault:active { + cursor: pointer; + background-image: url(../images/openo.png); + background-position: -154px -7px!important; +} +.openoBrowseButton_button { + width: 27px; + border: 0; + float: right; + position: relative; + height: 26px; + right: 0; + top: 0; + border-radius: 0 4px 4px 0; + border-right: 1px solid #c3c3c3; + border-left: none; +} +.openo .openo-input, .openo.openo-input { + outline: 0; + border: 1px solid #c3c3c3; + box-shadow: 1px 1px #f6f6f6 inset; + background-color: #fff; + height: 26px; +} +.openoInput_openoDefaultText { + padding: 0 0 0 6px; + border-radius: 4px; + color: #000; + display: inline-block; + outline: 0; + box-shadow: 1px 1px #f6f6f6 inset; + font-size: 12px; + background: #fff; +} +div.openo-select { + border: 1px solid #c3c3c3; + border-radius: 4px; + background: url(../images/arrow-down-enable.png) right no-repeat #fff; + line-height: 24px; + padding-left: 3px; + display: block; +} +div.openo-select>input.openo-select-input { + border: none; + outline: 0; + line-height: 21px; + height: 21px; + padding-left: 3px; + border-right: solid 1px #c3c3c3; +} +.openo .openo-ellipsis, .openo.openo-ellipsis { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +a.openoButton_buttonClass, a.openoButton_buttonDisableClass, div.openoButton_buttonClass, div.openoButton_buttonDisableClass { + height: 26px; + float: left; + cursor: pointer; + text-decoration: none; + outline: 0; + border: 1px solid #d3d3d3; + text-align: center; + box-shadow: 0 1px 1px rgba(0,0,0,.05); + background: #fafafa; + background: -moz-linear-gradient(top,#fff,#fafafa); + background: -webkit-gradient(linear,left top,left bottom,color-stop(0,#fff),color-stop(100%,#fafafa)); + background: -webkit-linear-gradient(top,#fff,#fafafa); + background: linear-gradient(to bottom,#fff,#fafafa); + border-radius: 6px; +} +.openoButton_buttonInnerClass{ + padding: 0 19px; + border-radius: 6px; +} +.openoButton_buttonCenterText { + color: #000; + line-height: 24px; + white-space: nowrap; + width: auto!important; +} +.userHeader { + clear: left; + overflow: hidden; + margin-bottom: 10px; + padding: 10px 10px 0px 0px; +} +.openoButton_buttonGroupClass { + display: inline; +} +.openoButton_buttonGroupClass div.openoButton_buttonClass_parent:first-child { + margin-left: 0; +} +.openoButton_buttonLeftImg { + margin-right: 5px; +} +.openoButton_buttonLeftImg, .openoButton_buttonRightImg { + display: inline-block; + vertical-align: top; + width: 16px; + height: 16px; + margin-top: 4px; +} +.openo-table-pagination-wrapper { + height: 37px; +} +.openo-pagination { + display: block; + float: left; + overflow: hidden; + padding: 5px 0 0; + margin-top: 8px; +} +.openoPagination_openoPaginationLengthOptions:not(msie8) { + line-height: 24px; +} +.openoPagination_openoPaginationLengthOptions { + white-space: normal; + height: 24px; + float: left; + outline: 0; + line-height: 20px; + margin: 0 5px; +} +.openo-pagination-select { + height: 26px; + line-height: 22px; + text-align: center; + margin-right: -2px; + border: 1px solid #e0e0e0; + border-radius: 5px 0 0 5px; + padding: 1px; +} +.openoPagination_openoPaginationLengthOptions span { + background-color: #fff!important; +} +.openo-pagination-theme a, .openo-pagination-theme span { + float: left; + color: #666; + font: 12px Lucida Grande,Verdana,Arial,Helvetica,sans-serif; + line-height: 24px; + font-weight: 400; + text-align: center; + border: 1px solid #e0e0e0; + text-decoration: none!important; + padding: 0 7px; + border-radius: 3px; + background: #fff; +} +.openo-pagination-selectspan { + background: url(../images/ideo_default_select.png) left no-repeat!important; + float: right!important; + width: 26px; + height: 26px; + cursor: pointer; +} +.openo-pagination-theme label { + padding-top: 6px; + vertical-align: middle; + margin-right: 20px; + margin-top: -1px; + float: left; + display: inline-block; + height: 20px; + font: 12px Lucida Grande,Verdana,Arial,Helvetica,sans-serif; +} +.openo-pagination li, .openo-pagination ul { + list-style: none; + padding: 0; + margin: 0; + float: left; +} +dd, dl, dt, li { + color: #000; +} +.openo-pagination-theme a, .openo-pagination-theme span.current { + margin: 0 5px 0 0; +} +.openo .openo-disabled, .openo.openo-disabled { + border-color: #c3c3c3!important; + color: #666!important; + opacity: .3; + filter: alpha(opacity=30); +} +.openo-pagination-theme .prev { + background: 0 0; + float: left; +} +.openo-pagination-theme .current { + text-decoration: none!important; + float: left; + padding-left: 6px; + height: 24px; + color: #fff; + display: inline; + border-color: #00adf5; + background: #4ad2ff; +} +.openo-pagination-theme a, .openo-pagination-theme span { + float: left; + color: #666; + font: 12px Lucida Grande,Verdana,Arial,Helvetica,sans-serif; + line-height: 24px; + font-weight: 400; + text-align: center; + border: 1px solid #e0e0e0; + text-decoration: none!important; + padding: 0 7px; + border-radius: 3px; + background: #fff; +} +.openo-pagination-theme .prev.openo-disabled:before { + background: url(../images/page_left_disabled.png) 50% 45% no-repeat; +} +.openo-pagination-theme .prev.openo-disabled:before { + background: url(../images/page_left_disabled.png) 50% 45% no-repeat; +} +.openo-pagination-theme .prev:before { + background: url(../images/page_l.png) 50% 45% no-repeat; +} +.openo-pagination-theme .next:after, .openo-pagination-theme .prev:before { + display: inline-block; + content: ""; + vertical-align: middle; + width: 10px; + height: 24px; +} +.openo-pagination-theme .prev:before { + background: url(../images/page_l.png) 50% 45% no-repeat; +} +.openo-pagination-theme .next:after, .openo-pagination-theme .prev:before { + display: inline-block; + content: ""; + vertical-align: middle; + width: 10px; + height: 24px; +} +pagination ul { + list-style: none; + padding: 0; + margin: 0; + float: left; +} +.openo-pagination li, .openo-pagination ul { + list-style: none; + padding: 0; + margin: 0; + float: left; +} +.openoPagination_gototext { + background: #FFF; + outline: 0; + width: 29px; + float: left; + height: 26px; + line-height: 24px; + border-radius: 4px; + border: 1px solid #c3c3c3; + padding: 0 0 0 5px; + margin: 0; + color: #666; + min-width: 50px; +} +.openoPagination_gotoimage { + width: 29px; + height: 26px; + line-height: 26px; + background-color: #FFF; + background-image: url(/portal/themes/default/components/openo/images/openo.png); + padding-left: 21px; + float: left; + margin-left: 5px; + border: 1px solid #e0e0e0; + border-radius: 4px; + box-sizing: border-box; + -moz-box-sizing: border-box; + background-position: -184px -181px!important; +} +.openo-pagination-theme .ellipse { + float: left; + margin-left: -8px; + margin-right: -4px; + background: 0 0; + border: none; + border-radius: 0; + box-shadow: none; + font-weight: 700; + cursor: default; +} +.openo.openo-disabled { + border-color: #c3c3c3!important; + color: #666!important; + opacity: .3; + filter: alpha(opacity=30); +} +.openo-pagination-theme .prev { + background: 0 0; + float: left; +} +.openo-pagination-theme .current { + text-decoration: none!important; + float: left; + padding-left: 6px; + height: 26px; + color: #fff; + display: inline; + /*border-color: #00adf5; + background: #4ad2ff;*/ + border: 1px solid #e0e0e0; +} +.openo-pagination-theme .next:after { + background: url(../images/page_r.png) 50% 45% no-repeat; +} +.openoButton_buttonGroupClass div.openoButton_buttonClass_parent, .openoButton_buttonRightImg { + margin-left: 5px; +} + +html, body { + height: 99%; + width: 98%; +} +.cotentBody { + padding: 0px 20px 0px 20px; +} + +div.openoButton_buttonClass:hover { + border: 1px solid #4ac9ff; +} +div.openoButton_button_default:hover .openoButton_buttonCenterText { + color: #009ae7; +} +.header_lineimg { + height: 1px; + width: 100%; + margin-top: 17px; +} +.openo.openo-hide { + display: none; +} +div.openo-select-popup-container { + position: absolute; + border: 1px solid #4ac9ff; + border-top: none; + border-radius: 0 0 4px 4px; + max-height: 202px; + overflow-y: auto; + background-color: #fff; + z-index: 880; +} +div.openo-select-popup-container>div.openo-select-item { + display: block; +} +.openo .openo-ellipsis, .openo.openo-ellipsis { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +div.openo-select-popup-container>div.openo-select-item>label { + padding-top: 3px; + padding-bottom: 3px; + line-height: 20px; +} +.openo .openo-ellipsis, .openo.openo-ellipsis { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +.openo-select-item label { + margin-left: 4px; + margin-right: 4px; + white-space: nowrap; +} +div.openo-select-popup-container>div.openo-select-item.openo-item-selected, div.openo-select-popup-container>div.openo-select-item:hover { + background-color: #f1f1f1; + color: #008fd6; +} +div.openo-select.openo-focus { + border: 1px solid #4ac9ff; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; + border-bottom-color: #ddd; +} +.openo-pagination-theme a:hover { + border-color: #4ac9ff; + cursor: pointer; +} +.SDBtn{ + background: #fff; + color: #333; + border: 1px solid #ddd; +} +.SDBtn:hover{ + color: #009ae7; + border: 1px solid #4AC9FF +} +/*table tbody tr.even:hover td, table tbody tr.odd:hover td { + background-color: #e6fbe0; +}*/ +table tr.openoTable_row_selected td { + background: #e8f8fe!important; + border-bottom: 1px solid #e8e8e8!important; +} +.modal-body{ + padding: 0!important; +} +.form-control{ + height: 26px!important; +} +.form-group .control-label { + margin-left: 20px; +} + +.form-horizontal .control-label { + text-align: left; +} \ No newline at end of file diff --git a/openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller/css/bootstrap-table.min.css b/lifecyclemgr/src/main/webapp/lifecyclemgr/css/bootstrap-table.min.css similarity index 100% rename from openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller/css/bootstrap-table.min.css rename to lifecyclemgr/src/main/webapp/lifecyclemgr/css/bootstrap-table.min.css diff --git a/lifecyclemgr/src/main/webapp/lifecyclemgr/css/bootstrap.min.css b/lifecyclemgr/src/main/webapp/lifecyclemgr/css/bootstrap.min.css new file mode 100644 index 00000000..679272d2 --- /dev/null +++ b/lifecyclemgr/src/main/webapp/lifecyclemgr/css/bootstrap.min.css @@ -0,0 +1,7 @@ +/*! + * Bootstrap v3.1.1 (http://getbootstrap.com) + * Copyright 2011-2014 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ + +/*! normalize.css v3.0.0 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:0 0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}@media print{*{text-shadow:none!important;color:#000!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff!important}.navbar{display:none}.table td,.table th{background-color:#fff!important}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table-bordered th,.table-bordered td{border:1px solid #ddd!important}}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:before,:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#428bca;text-decoration:none}a:hover,a:focus{color:#2a6496;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:400;line-height:1;color:#999}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:200;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}cite{font-style:normal}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-muted{color:#999}.text-primary{color:#428bca}a.text-primary:hover{color:#3071a9}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#428bca}a.bg-primary:hover{background-color:#3071a9}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#999}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}blockquote:before,blockquote:after{content:""}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;white-space:nowrap;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:0}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:0}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:0}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:0}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:0}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:0}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:0}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:0}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{max-width:100%;background-color:transparent}th{text-align:left}.table{width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5}table col[class*=col-]{position:static;float:none;display:table-column}table td[class*=col-],table th[class*=col-]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}@media (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;overflow-x:scroll;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd;-webkit-overflow-scrolling:touch}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=radio],input[type=checkbox]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=radio]:focus,input[type=checkbox]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee;opacity:1}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}input[type=date]{line-height:34px}.form-group{margin-bottom:15px}.radio,.checkbox{display:block;min-height:20px;margin-top:10px;margin-bottom:10px;padding-left:20px}.radio label,.checkbox label{display:inline;font-weight:400;cursor:pointer}.radio input[type=radio],.radio-inline input[type=radio],.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox]{float:left;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type=radio][disabled],input[type=checkbox][disabled],.radio[disabled],.radio-inline[disabled],.checkbox[disabled],.checkbox-inline[disabled],fieldset[disabled] input[type=radio],fieldset[disabled] input[type=checkbox],fieldset[disabled] .radio,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm,select[multiple].input-sm{height:auto}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg{height:46px;line-height:46px}textarea.input-lg,select[multiple].input-lg{height:auto}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.has-feedback .form-control-feedback{position:absolute;top:25px;right:0;display:block;width:34px;height:34px;line-height:34px;text-align:center}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-success .form-control-feedback{color:#3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.has-error .form-control-feedback{color:#a94442}.form-control-static{margin-bottom:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;vertical-align:middle}.form-inline .radio input[type=radio],.form-inline .checkbox input[type=checkbox]{float:none;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .control-label,.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.form-horizontal .form-control-static{padding-top:7px}@media (min-width:768px){.form-horizontal .control-label{text-align:right}}.form-horizontal .has-feedback .form-control-feedback{top:0;right:15px}.btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus{color:#333;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{color:#333;background-color:#ebebeb;border-color:#adadad}.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{color:#fff;background-color:#3276b1;border-color:#285e8e}.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#428bca;border-color:#357ebd}.btn-primary .badge{color:#428bca;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{color:#fff;background-color:#47a447;border-color:#398439}.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{color:#fff;background-color:#39b3d7;border-color:#269abc}.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{color:#428bca;font-weight:400;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%;padding-left:0;padding-right:0}.btn-block+.btn-block{margin-top:5px}input[type=submit].btn-block,input[type=reset].btn-block,input[type=button].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#262626;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;outline:0;background-color:#428bca}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#999}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:0}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}[data-toggle=buttons]>.btn>input[type=radio],[data-toggle=buttons]>.btn>input[type=checkbox]{display:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=radio],.input-group-addon input[type=checkbox]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#999}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#999;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#428bca}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#428bca}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{max-height:340px;overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px;font-size:18px;line-height:20px;height:50px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}.navbar-nav.navbar-right:last-child{margin-right:-15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin-top:8px;margin-bottom:8px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;vertical-align:middle}.navbar-form .radio input[type=radio],.navbar-form .checkbox input[type=checkbox]{float:none;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}.navbar-form.navbar-right:last-child{margin-right:-15px}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}.navbar-text.navbar-right:last-child{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#e7e7e7;color:#555}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#999}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .navbar-nav>li>a{color:#999}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#080808;color:#fff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover{color:#fff}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.42857143;text-decoration:none;color:#428bca;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{color:#2a6496;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;background-color:#fff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label[href]:hover,.label[href]:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#999}.label-default[href]:hover,.label-default[href]:focus{background-color:gray}.label-primary{background-color:#428bca}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;color:#fff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#999;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#428bca;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.container .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#428bca}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable{padding-right:35px}.alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:40px 40px}.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;background-color:#f5f5f5}a.list-group-item.active,a.list-group-item.active:hover,a.list-group-item.active:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}a.list-group-item.active .list-group-item-heading,a.list-group-item.active:hover .list-group-item-heading,a.list-group-item.active:focus .list-group-item-heading{color:inherit}a.list-group-item.active .list-group-item-text,a.list-group-item.active:hover .list-group-item-text,a.list-group-item.active:focus .list-group-item-text{color:#e1edf7}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px;overflow:hidden}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#ddd}.panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca}.panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#faebcc}.panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#ebccd1}.panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ebccd1}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:auto;overflow-y:scroll;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;-moz-transition:-moz-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5);background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.42857143px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:20px}.modal-footer{margin-top:15px;padding:19px 20px 20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;font-size:12px;line-height:1.4;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;right:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);white-space:normal}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;font-weight:400;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:.5;filter:alpha(opacity=50);font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,.5) 0),color-stop(rgba(0,0,0,.0001) 100%));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,.0001) 0),color-stop(rgba(0,0,0,.5) 100%));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;margin-left:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #fff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#fff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;margin-left:-15px;font-size:30px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important;visibility:hidden!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}th.visible-xs,td.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}th.visible-sm,td.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}th.visible-md,td.visible-md{display:table-cell!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}th.visible-lg,td.visible-lg{display:table-cell!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table}tr.visible-print{display:table-row!important}th.visible-print,td.visible-print{display:table-cell!important}}@media print{.hidden-print{display:none!important}} \ No newline at end of file diff --git a/lifecyclemgr/src/main/webapp/lifecyclemgr/css/jquery-ui-1.12.1.min.css b/lifecyclemgr/src/main/webapp/lifecyclemgr/css/jquery-ui-1.12.1.min.css new file mode 100644 index 00000000..24a2b737 --- /dev/null +++ b/lifecyclemgr/src/main/webapp/lifecyclemgr/css/jquery-ui-1.12.1.min.css @@ -0,0 +1,7 @@ +/*! jQuery UI - v1.12.1 - 2016-2017-09-26 +* http://jqueryui.com +* Includes: draggable.css, core.css, resizable.css, selectable.css, sortable.css, accordion.css, autocomplete.css, menu.css, button.css, controlgroup.css, checkboxradio.css, datepicker.css, dialog.css, progressbar.css, selectmenu.css, slider.css, spinner.css, tabs.css, tooltip.css, theme.css +* To view and modify this theme, visit http://jqueryui.com/themeroller/?scope=&folderName=smoothness&cornerRadiusShadow=8px&offsetLeftShadow=-8px&offsetTopShadow=-8px&thicknessShadow=8px&opacityShadow=30&bgImgOpacityShadow=0&bgTextureShadow=flat&bgColorShadow=aaaaaa&opacityOverlay=30&bgImgOpacityOverlay=0&bgTextureOverlay=flat&bgColorOverlay=aaaaaa&iconColorError=cd0a0a&fcError=cd0a0a&borderColorError=cd0a0a&bgImgOpacityError=95&bgTextureError=glass&bgColorError=fef1ec&iconColorHighlight=2e83ff&fcHighlight=363636&borderColorHighlight=fcefa1&bgImgOpacityHighlight=55&bgTextureHighlight=glass&bgColorHighlight=fbf9ee&iconColorActive=454545&fcActive=212121&borderColorActive=aaaaaa&bgImgOpacityActive=65&bgTextureActive=glass&bgColorActive=ffffff&iconColorHover=454545&fcHover=212121&borderColorHover=999999&bgImgOpacityHover=75&bgTextureHover=glass&bgColorHover=dadada&iconColorDefault=888888&fcDefault=555555&borderColorDefault=d3d3d3&bgImgOpacityDefault=75&bgTextureDefault=glass&bgColorDefault=e6e6e6&iconColorContent=222222&fcContent=222222&borderColorContent=aaaaaa&bgImgOpacityContent=75&bgTextureContent=flat&bgColorContent=ffffff&iconColorHeader=222222&fcHeader=222222&borderColorHeader=aaaaaa&bgImgOpacityHeader=75&bgTextureHeader=highlight_soft&bgColorHeader=cccccc&cornerRadius=4px&fsDefault=1.1em&fwDefault=normal&ffDefault=Verdana%2CArial%2Csans-serif +* Copyright jQuery Foundation and other contributors; Licensed MIT */ + +.ui-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block;-ms-touch-action:none;touch-action:none}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable{-ms-touch-action:none;touch-action:none}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}.ui-sortable-handle{-ms-touch-action:none;touch-action:none}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin:2px 0 0 0;padding:.5em .5em .5em .7em;font-size:100%}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:0}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{margin:0;cursor:pointer;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-item-wrapper{position:relative;padding:3px 1em 3px .4em}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item-wrapper{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-button{padding:.4em 1em;display:inline-block;position:relative;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2em;box-sizing:border-box;text-indent:-9999px;white-space:nowrap}input.ui-button.ui-button-icon-only{text-indent:0}.ui-button-icon-only .ui-icon{position:absolute;top:50%;left:50%;margin-top:-8px;margin-left:-8px}.ui-button.ui-icon-notext .ui-icon{padding:0;width:2.1em;height:2.1em;text-indent:-9999px;white-space:nowrap}input.ui-button.ui-icon-notext .ui-icon{width:auto;height:auto;text-indent:0;white-space:normal;padding:.4em 1em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-controlgroup{vertical-align:middle;display:inline-block}.ui-controlgroup > .ui-controlgroup-item{float:left;margin-left:0;margin-right:0}.ui-controlgroup > .ui-controlgroup-item:focus,.ui-controlgroup > .ui-controlgroup-item.ui-visual-focus{z-index:9999}.ui-controlgroup-vertical > .ui-controlgroup-item{display:block;float:none;width:100%;margin-top:0;margin-bottom:0;text-align:left}.ui-controlgroup-vertical .ui-controlgroup-item{box-sizing:border-box}.ui-controlgroup .ui-controlgroup-label{padding:.4em 1em}.ui-controlgroup .ui-controlgroup-label span{font-size:80%}.ui-controlgroup-horizontal .ui-controlgroup-label + .ui-controlgroup-item{border-left:none}.ui-controlgroup-vertical .ui-controlgroup-label + .ui-controlgroup-item{border-top:none}.ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content{border-right:none}.ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content{border-bottom:none}.ui-controlgroup-vertical .ui-spinner-input{width:75%;width:calc( 100% - 2.4em )}.ui-controlgroup-vertical .ui-spinner .ui-spinner-up{border-top-style:solid}.ui-checkboxradio-label .ui-icon-background{box-shadow:inset 1px 1px 1px #ccc;border-radius:.12em;border:none}.ui-checkboxradio-radio-label .ui-icon-background{width:16px;height:16px;border-radius:1em;overflow:visible;border:none}.ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon,.ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon{background-image:none;width:8px;height:8px;border-width:4px;border-style:solid}.ui-checkboxradio-disabled{pointer-events:none}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-datepicker .ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;left:.5em;top:.3em}.ui-dialog{position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-n{height:2px;top:0}.ui-dialog .ui-resizable-e{width:2px;right:0}.ui-dialog .ui-resizable-s{height:2px;bottom:0}.ui-dialog .ui-resizable-w{width:2px;left:0}.ui-dialog .ui-resizable-se,.ui-dialog .ui-resizable-sw,.ui-dialog .ui-resizable-ne,.ui-dialog .ui-resizable-nw{width:7px;height:7px}.ui-dialog .ui-resizable-se{right:0;bottom:0}.ui-dialog .ui-resizable-sw{left:0;bottom:0}.ui-dialog .ui-resizable-ne{right:0;top:0}.ui-dialog .ui-resizable-nw{left:0;top:0}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url("data:image/gif;base64,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");height:100%;filter:alpha(opacity=25);opacity:0.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-selectmenu-menu{padding:0;margin:0;position:absolute;top:0;left:0;display:none}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{font-size:1em;font-weight:bold;line-height:1.5;padding:2px 0.4em;margin:0.5em 0 0 0;height:auto;border:0}.ui-selectmenu-open{display:block}.ui-selectmenu-text{display:block;margin-right:20px;overflow:hidden;text-overflow:ellipsis}.ui-selectmenu-button.ui-button{text-align:left;white-space:nowrap;width:14em}.ui-selectmenu-icon.ui-icon{float:right;margin-top:0}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;-ms-touch-action:none;touch-action:none}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;color:inherit;padding:.222em 0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:2em}.ui-spinner-button{width:1.6em;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top-style:none;border-bottom-style:none;border-right-style:none}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px}body .ui-tooltip{border-width:2px}.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget.ui-widget-content{border:1px solid #d3d3d3}.ui-widget-content{border:1px solid #aaa;background:#fff;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #aaa;background:#ccc url("images/ui-bg_highlight-soft_75_cccccc_1x100.png") 50% 50% repeat-x;color:#222;font-weight:bold}.ui-widget-header a{color:#222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default,.ui-button,html .ui-button.ui-state-disabled:hover,html .ui-button.ui-state-disabled:active{border:1px solid #d3d3d3;background:#e6e6e6 url("images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited,a.ui-button,a:link.ui-button,a:visited.ui-button,.ui-button{color:#555;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus,.ui-button:hover,.ui-button:focus{border:1px solid #999;background:#dadada url("images/ui-bg_glass_75_dadada_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited,a.ui-button:hover,a.ui-button:focus{color:#212121;text-decoration:none}.ui-visual-focus{box-shadow:0 0 3px 1px rgb(94,158,214)}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active,a.ui-button:active,.ui-button:active,.ui-button.ui-state-active:hover{border:1px solid #aaa;background:#fff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-icon-background,.ui-state-active .ui-icon-background{border:#aaa;background-color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url("images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x;color:#363636}.ui-state-checked{border:1px solid #fcefa1;background:#fbf9ee}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url("images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon,.ui-button:hover .ui-icon,.ui-button:focus .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-state-active .ui-icon,.ui-button:active .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-state-highlight .ui-icon,.ui-button .ui-state-highlight.ui-icon{background-image:url("images/ui-icons_2e83ff_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_cd0a0a_256x240.png")}.ui-button .ui-icon{background-image:url("images/ui-icons_888888_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-caret-1-n{background-position:0 0}.ui-icon-caret-1-ne{background-position:-16px 0}.ui-icon-caret-1-e{background-position:-32px 0}.ui-icon-caret-1-se{background-position:-48px 0}.ui-icon-caret-1-s{background-position:-65px 0}.ui-icon-caret-1-sw{background-position:-80px 0}.ui-icon-caret-1-w{background-position:-96px 0}.ui-icon-caret-1-nw{background-position:-112px 0}.ui-icon-caret-2-n-s{background-position:-128px 0}.ui-icon-caret-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-65px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-65px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:1px -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:4px}.ui-widget-overlay{background:#aaa;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{-webkit-box-shadow:-8px -8px 8px #aaa;box-shadow:-8px -8px 8px #aaa} \ No newline at end of file diff --git a/lifecyclemgr/src/main/webapp/lifecyclemgr/gsolcmmain.html b/lifecyclemgr/src/main/webapp/lifecyclemgr/gsolcmmain.html new file mode 100644 index 00000000..e457f291 --- /dev/null +++ b/lifecyclemgr/src/main/webapp/lifecyclemgr/gsolcmmain.html @@ -0,0 +1,640 @@ + + + + + + + Lifecycle Manager + + + + + + + + + + + + + + + + + + + + +
    +

    Life Cycle Manager

    +
    +
    +
    +
    +
    +
    + + Create + +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + +
    +
    +
    + Service Name + +
    +
    +
    +
    + Template Name + +
    +
    +
    +
    + Create Time + +
    +
    +
    +
    + Creator + +
    +
    +
    +
    + Action +
    +
    +
  • +
    + + + + + +
    + + + + +
    + + + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + + + + + diff --git a/lifecyclemgr/src/main/webapp/lifecyclemgr/i18n/lcm-template-parameters-i18n-en-US.properties b/lifecyclemgr/src/main/webapp/lifecyclemgr/i18n/lcm-template-parameters-i18n-en-US.properties new file mode 100644 index 00000000..31819ae4 --- /dev/null +++ b/lifecyclemgr/src/main/webapp/lifecyclemgr/i18n/lcm-template-parameters-i18n-en-US.properties @@ -0,0 +1,95 @@ +domainHost=Domain +tosca.nodes.sdn.ext.NS.ns_underlayervpn.ac1_ip=Left AC +tosca.nodes.sdn.ext.NS.ns_underlayervpn.ac1_peer_ip=Left CE IP +tosca.nodes.sdn.ext.NS.ns_underlayervpn.ac1_port=Left Port +tosca.nodes.sdn.ext.NS.ns_underlayervpn.ac1_route=Left Route +tosca.nodes.sdn.ext.NS.ns_underlayervpn.ac1_svlan=Left VLAN +tosca.nodes.sdn.ext.NS.ns_underlayervpn.ac2_ip=Right AC +tosca.nodes.sdn.ext.NS.ns_underlayervpn.ac2_peer_ip=Right CE IP +tosca.nodes.sdn.ext.NS.ns_underlayervpn.ac2_port=Right Port +tosca.nodes.sdn.ext.NS.ns_underlayervpn.ac2_route=Right Route +tosca.nodes.sdn.ext.NS.ns_underlayervpn.ac2_svlan=Right VLAN +tosca.nodes.sdn.ext.NS.ns_underlayervpn.description=Description +tosca.nodes.sdn.ext.NS.ns_underlayervpn.name=Service Name +tosca.nodes.sdn.ext.NS.ns_underlayervpn.pe1_ip=Left PE IP +tosca.nodes.sdn.ext.NS.ns_underlayervpn.pe2_ip=Right PE IP +tosca.nodes.sdn.ext.NS.ns_underlayervpn.serviceType=Service Type +tosca.nodes.sdn.ext.NS.ns_underlayervpn.technology=Technology +tosca.nodes.sdn.ext.NS.ns_underlayervpn.topology=Topology +tosca.nodes.sdn.ext.NS.enterprise2DC.dcFWIP=Firewall IP +tosca.nodes.sdn.ext.NS.enterprise2DC.dcGWIP=Gateway IP +tosca.nodes.sdn.ext.NS.enterprise2DC.dcLBIP=Load Balancer IP +tosca.nodes.sdn.ext.NS.enterprise2DC.description=Description +tosca.nodes.sdn.ext.NS.enterprise2DC.id=ID +tosca.nodes.sdn.ext.NS.enterprise2DC.name=Service Name +tosca.nodes.sdn.ext.NS.enterprise2DC.siteAccessPortVlan=ThinCPE VLAN +tosca.nodes.sdn.ext.NS.enterprise2DC.siteCidr=Enterprise cidr +tosca.nodes.sdn.ext.NS.enterprise2DC.siteThinCpeIP=ThinCPE IP +tosca.nodes.sdn.ext.NS.enterprise2DC.siteVNI=ThinCPE VxLAN ID +tosca.nodes.sdn.ext.NS.enterprise2DC.vCPE_MgrIp=vCPE IP +tosca.nodes.sdn.ext.NS.enterprise2DC.vpcName=VPC Name +tosca.nodes.sdn.ext.NS.enterprise2DC.vpcSubnetCidr=VPC cidr +tosca.nodes.sdn.ext.NS.enterprise2DC.vpcSubnetName=VPC Subnet Name +tosca.nodes.sdn.ext.NS.enterprise2DC.vpcVNI=VPC VxLAN ID +tosca.nodes.nfv.NS.VBRAS_NS.externalDataNetworkName=External Data Network Name +tosca.nodes.nfv.NS.VBRAS_NS.externalManageNetworkName=External Management Network Name +tosca.nodes.nfv.NS.VCPE_NS.sfc_data_network=SFC Data Network Name +tosca.nodes.nfv.NS.VCPE_NS.externalManageNetworkName=External Management Network Name +tosca.nodes.nfv.NS.VCPE_NS.NatIpRange=Nat Ip Range +tosca.nodes.nfv.NS.VCPE_NS.m6000_mng_ip=M6000 Mng IP +tosca.nodes.nfv.NS.VCPE_NS.externalPluginManageNetworkName=External Plugin Management Network Name +tosca.nodes.nfv.NS.VCPE_NS.externalDataNetworkName=External Data Network Name +tosca.nodes.nfv.NS.POP_NS.sfc_data_network=SFC Data Network Name +tosca.nodes.nfv.NS.POP_NS.externalManageNetworkName=External Management Network Name +tosca.nodes.nfv.NS.POP_NS.NatIpRange=Nat Ip Range +tosca.nodes.nfv.NS.POP_NS.m6000_mng_ip=M6000 Mng IP +tosca.nodes.nfv.NS.POP_NS.externalPluginManageNetworkName=External Plugin Management Network Name +tosca.nodes.nfv.NS.POP_NS.externalCompanyFtpDataNetworkName=External Company Ftp Data Network Name +tosca.nodes.nfv.NS.POP_NS.externalDataNetworkName=External Data Network Name +ac1_ip=Left AC +ac1_peer_ip=Left CE IP +ac1_port=Left Port +ac1_route=Left Route +ac1_svlan=Left VLAN +ac2_ip=Right AC +ac2_peer_ip=Right CE IP +ac2_port=Right Port +ac2_route=Right Route +ac2_svlan=Right VLAN +description=Description +name=Service Name +pe1_ip=Left PE IP +pe2_ip=Right PE IP +serviceType=Service Type +technology=Technology +topology=Topology +dcFWIP=Firewall IP +dcGWIP=Gateway IP +dcLBIP=Load Balancer IP +description=Description +id=ID +name=Service Name +siteAccessPortVlan=ThinCPE VLAN +siteCidr=Enterprise cidr +siteThinCpeIP=ThinCPE IP +siteVNI=ThinCPE VxLAN ID +vCPE_MgrIp=vCPE IP +vpcName=VPC Name +vpcSubnetCidr=VPC cidr +vpcSubnetName=VPC Subnet Name +vpcVNI=VPC VxLAN ID +externalDataNetworkName=External Data Network Name +externalManageNetworkName=External Management Network Name +sfc_data_network=SFC Data Network Name +externalManageNetworkName=External Management Network Name +NatIpRange=Nat Ip Range +m6000_mng_ip=M6000 Mng IP +externalPluginManageNetworkName=External Plugin Management Network Name +externalDataNetworkName=External Data Network Name +sfc_data_network=SFC Data Network Name +externalManageNetworkName=External Management Network Name +NatIpRange=Nat Ip Range +m6000_mng_ip=M6000 Mng IP +externalPluginManageNetworkName=External Plugin Management Network Name +externalCompanyFtpDataNetworkName=External Company Ftp Data Network Name +externalDataNetworkName=External Data Network Name \ No newline at end of file diff --git a/lifecyclemgr/src/main/webapp/lifecyclemgr/images/License.txt b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/License.txt new file mode 100644 index 00000000..8e698ecb --- /dev/null +++ b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/License.txt @@ -0,0 +1,362 @@ +THIS LICENSE FILE CONTAINS THE LICENSE APPLICABLE DEPENDING ON THE TYPE OF CONTRIBUTIONS. + +APACHE LICENSE 2 IS APPLICABLE FOR SOURCE CODE, CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL FOR DOCUMENTATION + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + + +Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. + +"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. + +2. Grant of Copyright License. + +Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. + +Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. + +You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: + +You must give any other recipients of the Work or Derivative Works a copy of this License; and You must cause any modified files to carry prominent notices stating that You changed the files; and You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. + +5. Submission of Contributions. + +Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. + +6. Trademarks. + +This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. + +Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. + +In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. + +While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +Attribution 4.0 International + +https://creativecommons.org/licenses/by/4.0/legalcode + +Creative Commons Corporation ("Creative Commons") is not a law firm and does not provide legal services or legal advice. Distribution of Creative Commons public licenses does not create a lawyer-client or other relationship. Creative Commons makes its licenses and related information available on an "as-is" basis. Creative Commons gives no warranties regarding its licenses, any material licensed under their terms and conditions, or any related information. Creative Commons disclaims all liability for damages resulting from their use to the fullest extent possible. + +Using Creative Commons Public Licenses + +Creative Commons public licenses provide a standard set of terms and conditions that creators and other rights holders may use to share original works of authorship and other material subject to copyright and certain other rights specified in the public license below. The following considerations are for informational purposes only, are not exhaustive, and do not form part of our licenses. + + Considerations for licensors: Our public licenses are + intended for use by those authorized to give the public + permission to use material in ways otherwise restricted by + copyright and certain other rights. Our licenses are + irrevocable. Licensors should read and understand the terms + and conditions of the license they choose before applying it. + Licensors should also secure all rights necessary before + applying our licenses so that the public can reuse the + material as expected. Licensors should clearly mark any + material not subject to the license. This includes other CC- + licensed material, or material used under an exception or + limitation to copyright. More considerations for licensors: + wiki.creativecommons.org/Considerations_for_licensors + Considerations for the public: By using one of our public + licenses, a licensor grants the public permission to use the + licensed material under specified terms and conditions. If + the licensor's permission is not necessary for any reason--for + example, because of any applicable exception or limitation to + copyright--then that use is not regulated by the license. Our + licenses grant only permissions under copyright and certain + other rights that a licensor has authority to grant. Use of + the licensed material may still be restricted for other + reasons, including because others have copyright or other + rights in the material. A licensor may make special requests, + such as asking that all changes be marked or described. + Although not required by our licenses, you are encouraged to + respect those requests where reasonable. More_considerations + for the public: + wiki.creativecommons.org/Considerations_for_licensees +Creative Commons Attribution 4.0 International Public License + +By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions. + + +Section 1 -- Definitions. + + a. Adapted Material means material subject to Copyright and Similar + Rights that is derived from or based upon the Licensed Material + and in which the Licensed Material is translated, altered, + arranged, transformed, or otherwise modified in a manner requiring + permission under the Copyright and Similar Rights held by the + Licensor. For purposes of this Public License, where the Licensed + Material is a musical work, performance, or sound recording, + Adapted Material is always produced where the Licensed Material is + synched in timed relation with a moving image. + b. Adapter's License means the license You apply to Your Copyright + and Similar Rights in Your contributions to Adapted Material in + accordance with the terms and conditions of this Public License. + c. Copyright and Similar Rights means copyright and/or similar rights + closely related to copyright including, without limitation, + performance, broadcast, sound recording, and Sui Generis Database + Rights, without regard to how the rights are labeled or + categorized. For purposes of this Public License, the rights + specified in Section 2(b)(1)-(2) are not Copyright and Similar + Rights. + d. Effective Technological Measures means those measures that, in the + absence of proper authority, may not be circumvented under laws + fulfilling obligations under Article 11 of the WIPO Copyright + Treaty adopted on December 20, 1996, and/or similar international + agreements. + e. Exceptions and Limitations means fair use, fair dealing, and/or + any other exception or limitation to Copyright and Similar Rights + that applies to Your use of the Licensed Material. + f. Licensed Material means the artistic or literary work, database, + or other material to which the Licensor applied this Public + License. + g. Licensed Rights means the rights granted to You subject to the + terms and conditions of this Public License, which are limited to + all Copyright and Similar Rights that apply to Your use of the + Licensed Material and that the Licensor has authority to license. + h. Licensor means the individual(s) or entity(ies) granting rights + under this Public License. + i. Share means to provide material to the public by any means or + process that requires permission under the Licensed Rights, such + as reproduction, public display, public performance, distribution, + dissemination, communication, or importation, and to make material + available to the public including in ways that members of the + public may access the material from a place and at a time + individually chosen by them. + j. Sui Generis Database Rights means rights other than copyright + resulting from Directive 96/9/EC of the European Parliament and of + the Council of 11 March 1996 on the legal protection of databases, + as amended and/or succeeded, as well as other essentially + equivalent rights anywhere in the world. + k. You means the individual or entity exercising the Licensed Rights + under this Public License. Your has a corresponding meaning. + +Section 2 -- Scope. + + a. License grant. + 1. Subject to the terms and conditions of this Public License, + the Licensor hereby grants You a worldwide, royalty-free, + non-sublicensable, non-exclusive, irrevocable license to + exercise the Licensed Rights in the Licensed Material to: + a. reproduce and Share the Licensed Material, in whole or + in part; and + b. produce, reproduce, and Share Adapted Material. + 2. Exceptions and Limitations. For the avoidance of doubt, where + Exceptions and Limitations apply to Your use, this Public + License does not apply, and You do not need to comply with + its terms and conditions. + 3. Term. The term of this Public License is specified in Section + 6(a). + 4. Media and formats; technical modifications allowed. The + Licensor authorizes You to exercise the Licensed Rights in + all media and formats whether now known or hereafter created, + and to make technical modifications necessary to do so. The + Licensor waives and/or agrees not to assert any right or + authority to forbid You from making technical modifications + necessary to exercise the Licensed Rights, including + technical modifications necessary to circumvent Effective + Technological Measures. For purposes of this Public License, + simply making modifications authorized by this Section 2(a) + (4) never produces Adapted Material. + 5. Downstream recipients. + a. Offer from the Licensor -- Licensed Material. Every + recipient of the Licensed Material automatically + receives an offer from the Licensor to exercise the + Licensed Rights under the terms and conditions of this + Public License. + b. No downstream restrictions. You may not offer or impose + any additional or different terms or conditions on, or + apply any Effective Technological Measures to, the + Licensed Material if doing so restricts exercise of the + Licensed Rights by any recipient of the Licensed + Material. + 6. No endorsement. Nothing in this Public License constitutes or + may be construed as permission to assert or imply that You + are, or that Your use of the Licensed Material is, connected + with, or sponsored, endorsed, or granted official status by, + the Licensor or others designated to receive attribution as + provided in Section 3(a)(1)(A)(i). + b. Other rights. + 1. Moral rights, such as the right of integrity, are not + licensed under this Public License, nor are publicity, + privacy, and/or other similar personality rights; however, to + the extent possible, the Licensor waives and/or agrees not to + assert any such rights held by the Licensor to the limited + extent necessary to allow You to exercise the Licensed + Rights, but not otherwise. + 2. Patent and trademark rights are not licensed under this + Public License. + 3. To the extent possible, the Licensor waives any right to + collect royalties from You for the exercise of the Licensed + Rights, whether directly or through a collecting society + under any voluntary or waivable statutory or compulsory + licensing scheme. In all other cases the Licensor expressly + reserves any right to collect such royalties. + +Section 3 -- License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the following conditions. + + a. Attribution. + 1. If You Share the Licensed Material (including in modified + form), You must: + a. retain the following if it is supplied by the Licensor + with the Licensed Material: + i. identification of the creator(s) of the Licensed + Material and any others designated to receive + attribution, in any reasonable manner requested by + the Licensor (including by pseudonym if + designated); + ii. a copyright notice; + iii. a notice that refers to this Public License; + iv. a notice that refers to the disclaimer of + warranties; + v. a URI or hyperlink to the Licensed Material to the + extent reasonably practicable; + b. indicate if You modified the Licensed Material and + retain an indication of any previous modifications; and + c. indicate the Licensed Material is licensed under this + Public License, and include the text of, or the URI or + hyperlink to, this Public License. + 2. You may satisfy the conditions in Section 3(a)(1) in any + reasonable manner based on the medium, means, and context in + which You Share the Licensed Material. For example, it may be + reasonable to satisfy the conditions by providing a URI or + hyperlink to a resource that includes the required + information. + 3. If requested by the Licensor, You must remove any of the + information required by Section 3(a)(1)(A) to the extent + reasonably practicable. + 4. If You Share Adapted Material You produce, the Adapter's + License You apply must not prevent recipients of the Adapted + Material from complying with this Public License. + +Section 4 -- Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material: + + a. for the avoidance of doubt, Section 2(a)(1) grants You the right + to extract, reuse, reproduce, and Share all or a substantial + portion of the contents of the database; + b. if You include all or a substantial portion of the database + contents in a database in which You have Sui Generis Database + Rights, then the database in which You have Sui Generis Database + Rights (but not its individual contents) is Adapted Material; and + c. You must comply with the conditions in Section 3(a) if You Share + all or a substantial portion of the contents of the database. +For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights. + + +Section 5 -- Disclaimer of Warranties and Limitation of Liability. + + a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE + EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS + AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF + ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, + IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, + WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, + ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT + KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT + ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. + b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE + TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, + NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, + INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, + COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR + USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR + DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR + IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + c. The disclaimer of warranties and limitation of liability provided + above shall be interpreted in a manner that, to the extent + possible, most closely approximates an absolute disclaimer and + waiver of all liability. + +Section 6 -- Term and Termination. + + a. This Public License applies for the term of the Copyright and + Similar Rights licensed here. However, if You fail to comply with + this Public License, then Your rights under this Public License + terminate automatically. + b. Where Your right to use the Licensed Material has terminated under + Section 6(a), it reinstates: + 1. automatically as of the date the violation is cured, provided + it is cured within 30 days of Your discovery of the + violation; or + 2. upon express reinstatement by the Licensor. + For the avoidance of doubt, this Section 6(b) does not affect any + right the Licensor may have to seek remedies for Your violations + of this Public License. + c. For the avoidance of doubt, the Licensor may also offer the + Licensed Material under separate terms or conditions or stop + distributing the Licensed Material at any time; however, doing so + will not terminate this Public License. + d. Sections 1, 5, 6, 7, and 8 survive termination of this Public + License. + +Section 7 -- Other Terms and Conditions. + + a. The Licensor shall not be bound by any additional or different + terms or conditions communicated by You unless expressly agreed. + b. Any arrangements, understandings, or agreements regarding the + Licensed Material not stated herein are separate from and + independent of the terms and conditions of this Public License. + +Section 8 -- Interpretation. + + a. For the avoidance of doubt, this Public License does not, and + shall not be interpreted to, reduce, limit, restrict, or impose + conditions on any use of the Licensed Material that could lawfully + be made without permission under this Public License. + b. To the extent possible, if any provision of this Public License is + deemed unenforceable, it shall be automatically reformed to the + minimum extent necessary to make it enforceable. If the provision + cannot be reformed, it shall be severed from this Public License + without affecting the enforceability of the remaining terms and + conditions. + c. No term or condition of this Public License will be waived and no + failure to comply consented to unless expressly agreed to by the + Licensor. + d. Nothing in this Public License constitutes or may be interpreted + as a limitation upon, or waiver of, any privileges and immunities + that apply to the Licensor or You, including from the legal + processes of any jurisdiction or authority. +Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the "Licensor." The text of the Creative Commons public licenses is dedicated to the public domain under the CC0 Public Domain Dedication. Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at creativecommons.org/policies, Creative Commons does not authorize the use of the trademark "Creative Commons" or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses. + +Creative Commons may be contacted at creativecommons.org. \ No newline at end of file diff --git a/openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller/images/add.png b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/add.png similarity index 100% rename from openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller/images/add.png rename to lifecyclemgr/src/main/webapp/lifecyclemgr/images/add.png diff --git a/openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller/images/arrow-down-enable.png b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/arrow-down-enable.png similarity index 100% rename from openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller/images/arrow-down-enable.png rename to lifecyclemgr/src/main/webapp/lifecyclemgr/images/arrow-down-enable.png diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/collapse_arrow.png b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/collapse_arrow.png similarity index 100% rename from openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/collapse_arrow.png rename to lifecyclemgr/src/main/webapp/lifecyclemgr/images/collapse_arrow.png diff --git a/openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller/images/delete.png b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/delete.png similarity index 100% rename from openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller/images/delete.png rename to lifecyclemgr/src/main/webapp/lifecyclemgr/images/delete.png diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/edit.bak.png b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/edit.bak.png similarity index 100% rename from openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/edit.bak.png rename to lifecyclemgr/src/main/webapp/lifecyclemgr/images/edit.bak.png diff --git a/openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller/images/edit.png b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/edit.png similarity index 100% rename from openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller/images/edit.png rename to lifecyclemgr/src/main/webapp/lifecyclemgr/images/edit.png diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/expand_arrow.png b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/expand_arrow.png similarity index 100% rename from openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/expand_arrow.png rename to lifecyclemgr/src/main/webapp/lifecyclemgr/images/expand_arrow.png diff --git a/openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller/images/ideo_default_select.png b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/ideo_default_select.png similarity index 100% rename from openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller/images/ideo_default_select.png rename to lifecyclemgr/src/main/webapp/lifecyclemgr/images/ideo_default_select.png diff --git a/openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller/images/import.png b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/import.png similarity index 100% rename from openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller/images/import.png rename to lifecyclemgr/src/main/webapp/lifecyclemgr/images/import.png diff --git a/openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller/images/line.png b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/line.png similarity index 100% rename from openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller/images/line.png rename to lifecyclemgr/src/main/webapp/lifecyclemgr/images/line.png diff --git a/openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/images/loading-spinner-grey.gif b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/loading-spinner-grey.gif similarity index 100% rename from openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/images/loading-spinner-grey.gif rename to lifecyclemgr/src/main/webapp/lifecyclemgr/images/loading-spinner-grey.gif diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/loading.gif b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/loading.gif similarity index 100% rename from openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/loading.gif rename to lifecyclemgr/src/main/webapp/lifecyclemgr/images/loading.gif diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/openo.png b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/openo.png similarity index 100% rename from openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/openo.png rename to lifecyclemgr/src/main/webapp/lifecyclemgr/images/openo.png diff --git a/openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller/images/page_l.png b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/page_l.png similarity index 100% rename from openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller/images/page_l.png rename to lifecyclemgr/src/main/webapp/lifecyclemgr/images/page_l.png diff --git a/openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller/images/page_left_disabled.png b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/page_left_disabled.png similarity index 100% rename from openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller/images/page_left_disabled.png rename to lifecyclemgr/src/main/webapp/lifecyclemgr/images/page_left_disabled.png diff --git a/openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller/images/page_r.png b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/page_r.png similarity index 100% rename from openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller/images/page_r.png rename to lifecyclemgr/src/main/webapp/lifecyclemgr/images/page_r.png diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/reset.png b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/reset.png similarity index 100% rename from openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/reset.png rename to lifecyclemgr/src/main/webapp/lifecyclemgr/images/reset.png diff --git a/openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/images/sort_asc.png b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/sort_asc.png similarity index 100% rename from openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/images/sort_asc.png rename to lifecyclemgr/src/main/webapp/lifecyclemgr/images/sort_asc.png diff --git a/openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/images/sort_both.png b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/sort_both.png similarity index 100% rename from openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/images/sort_both.png rename to lifecyclemgr/src/main/webapp/lifecyclemgr/images/sort_both.png diff --git a/openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/images/sort_desc.png b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/sort_desc.png similarity index 100% rename from openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/images/sort_desc.png rename to lifecyclemgr/src/main/webapp/lifecyclemgr/images/sort_desc.png diff --git a/lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/License.txt b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/License.txt new file mode 100644 index 00000000..8e698ecb --- /dev/null +++ b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/License.txt @@ -0,0 +1,362 @@ +THIS LICENSE FILE CONTAINS THE LICENSE APPLICABLE DEPENDING ON THE TYPE OF CONTRIBUTIONS. + +APACHE LICENSE 2 IS APPLICABLE FOR SOURCE CODE, CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL FOR DOCUMENTATION + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + + +Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. + +"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. + +2. Grant of Copyright License. + +Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. + +Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. + +You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: + +You must give any other recipients of the Work or Derivative Works a copy of this License; and You must cause any modified files to carry prominent notices stating that You changed the files; and You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. + +5. Submission of Contributions. + +Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. + +6. Trademarks. + +This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. + +Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. + +In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. + +While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +Attribution 4.0 International + +https://creativecommons.org/licenses/by/4.0/legalcode + +Creative Commons Corporation ("Creative Commons") is not a law firm and does not provide legal services or legal advice. Distribution of Creative Commons public licenses does not create a lawyer-client or other relationship. Creative Commons makes its licenses and related information available on an "as-is" basis. Creative Commons gives no warranties regarding its licenses, any material licensed under their terms and conditions, or any related information. Creative Commons disclaims all liability for damages resulting from their use to the fullest extent possible. + +Using Creative Commons Public Licenses + +Creative Commons public licenses provide a standard set of terms and conditions that creators and other rights holders may use to share original works of authorship and other material subject to copyright and certain other rights specified in the public license below. The following considerations are for informational purposes only, are not exhaustive, and do not form part of our licenses. + + Considerations for licensors: Our public licenses are + intended for use by those authorized to give the public + permission to use material in ways otherwise restricted by + copyright and certain other rights. Our licenses are + irrevocable. Licensors should read and understand the terms + and conditions of the license they choose before applying it. + Licensors should also secure all rights necessary before + applying our licenses so that the public can reuse the + material as expected. Licensors should clearly mark any + material not subject to the license. This includes other CC- + licensed material, or material used under an exception or + limitation to copyright. More considerations for licensors: + wiki.creativecommons.org/Considerations_for_licensors + Considerations for the public: By using one of our public + licenses, a licensor grants the public permission to use the + licensed material under specified terms and conditions. If + the licensor's permission is not necessary for any reason--for + example, because of any applicable exception or limitation to + copyright--then that use is not regulated by the license. Our + licenses grant only permissions under copyright and certain + other rights that a licensor has authority to grant. Use of + the licensed material may still be restricted for other + reasons, including because others have copyright or other + rights in the material. A licensor may make special requests, + such as asking that all changes be marked or described. + Although not required by our licenses, you are encouraged to + respect those requests where reasonable. More_considerations + for the public: + wiki.creativecommons.org/Considerations_for_licensees +Creative Commons Attribution 4.0 International Public License + +By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions. + + +Section 1 -- Definitions. + + a. Adapted Material means material subject to Copyright and Similar + Rights that is derived from or based upon the Licensed Material + and in which the Licensed Material is translated, altered, + arranged, transformed, or otherwise modified in a manner requiring + permission under the Copyright and Similar Rights held by the + Licensor. For purposes of this Public License, where the Licensed + Material is a musical work, performance, or sound recording, + Adapted Material is always produced where the Licensed Material is + synched in timed relation with a moving image. + b. Adapter's License means the license You apply to Your Copyright + and Similar Rights in Your contributions to Adapted Material in + accordance with the terms and conditions of this Public License. + c. Copyright and Similar Rights means copyright and/or similar rights + closely related to copyright including, without limitation, + performance, broadcast, sound recording, and Sui Generis Database + Rights, without regard to how the rights are labeled or + categorized. For purposes of this Public License, the rights + specified in Section 2(b)(1)-(2) are not Copyright and Similar + Rights. + d. Effective Technological Measures means those measures that, in the + absence of proper authority, may not be circumvented under laws + fulfilling obligations under Article 11 of the WIPO Copyright + Treaty adopted on December 20, 1996, and/or similar international + agreements. + e. Exceptions and Limitations means fair use, fair dealing, and/or + any other exception or limitation to Copyright and Similar Rights + that applies to Your use of the Licensed Material. + f. Licensed Material means the artistic or literary work, database, + or other material to which the Licensor applied this Public + License. + g. Licensed Rights means the rights granted to You subject to the + terms and conditions of this Public License, which are limited to + all Copyright and Similar Rights that apply to Your use of the + Licensed Material and that the Licensor has authority to license. + h. Licensor means the individual(s) or entity(ies) granting rights + under this Public License. + i. Share means to provide material to the public by any means or + process that requires permission under the Licensed Rights, such + as reproduction, public display, public performance, distribution, + dissemination, communication, or importation, and to make material + available to the public including in ways that members of the + public may access the material from a place and at a time + individually chosen by them. + j. Sui Generis Database Rights means rights other than copyright + resulting from Directive 96/9/EC of the European Parliament and of + the Council of 11 March 1996 on the legal protection of databases, + as amended and/or succeeded, as well as other essentially + equivalent rights anywhere in the world. + k. You means the individual or entity exercising the Licensed Rights + under this Public License. Your has a corresponding meaning. + +Section 2 -- Scope. + + a. License grant. + 1. Subject to the terms and conditions of this Public License, + the Licensor hereby grants You a worldwide, royalty-free, + non-sublicensable, non-exclusive, irrevocable license to + exercise the Licensed Rights in the Licensed Material to: + a. reproduce and Share the Licensed Material, in whole or + in part; and + b. produce, reproduce, and Share Adapted Material. + 2. Exceptions and Limitations. For the avoidance of doubt, where + Exceptions and Limitations apply to Your use, this Public + License does not apply, and You do not need to comply with + its terms and conditions. + 3. Term. The term of this Public License is specified in Section + 6(a). + 4. Media and formats; technical modifications allowed. The + Licensor authorizes You to exercise the Licensed Rights in + all media and formats whether now known or hereafter created, + and to make technical modifications necessary to do so. The + Licensor waives and/or agrees not to assert any right or + authority to forbid You from making technical modifications + necessary to exercise the Licensed Rights, including + technical modifications necessary to circumvent Effective + Technological Measures. For purposes of this Public License, + simply making modifications authorized by this Section 2(a) + (4) never produces Adapted Material. + 5. Downstream recipients. + a. Offer from the Licensor -- Licensed Material. Every + recipient of the Licensed Material automatically + receives an offer from the Licensor to exercise the + Licensed Rights under the terms and conditions of this + Public License. + b. No downstream restrictions. You may not offer or impose + any additional or different terms or conditions on, or + apply any Effective Technological Measures to, the + Licensed Material if doing so restricts exercise of the + Licensed Rights by any recipient of the Licensed + Material. + 6. No endorsement. Nothing in this Public License constitutes or + may be construed as permission to assert or imply that You + are, or that Your use of the Licensed Material is, connected + with, or sponsored, endorsed, or granted official status by, + the Licensor or others designated to receive attribution as + provided in Section 3(a)(1)(A)(i). + b. Other rights. + 1. Moral rights, such as the right of integrity, are not + licensed under this Public License, nor are publicity, + privacy, and/or other similar personality rights; however, to + the extent possible, the Licensor waives and/or agrees not to + assert any such rights held by the Licensor to the limited + extent necessary to allow You to exercise the Licensed + Rights, but not otherwise. + 2. Patent and trademark rights are not licensed under this + Public License. + 3. To the extent possible, the Licensor waives any right to + collect royalties from You for the exercise of the Licensed + Rights, whether directly or through a collecting society + under any voluntary or waivable statutory or compulsory + licensing scheme. In all other cases the Licensor expressly + reserves any right to collect such royalties. + +Section 3 -- License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the following conditions. + + a. Attribution. + 1. If You Share the Licensed Material (including in modified + form), You must: + a. retain the following if it is supplied by the Licensor + with the Licensed Material: + i. identification of the creator(s) of the Licensed + Material and any others designated to receive + attribution, in any reasonable manner requested by + the Licensor (including by pseudonym if + designated); + ii. a copyright notice; + iii. a notice that refers to this Public License; + iv. a notice that refers to the disclaimer of + warranties; + v. a URI or hyperlink to the Licensed Material to the + extent reasonably practicable; + b. indicate if You modified the Licensed Material and + retain an indication of any previous modifications; and + c. indicate the Licensed Material is licensed under this + Public License, and include the text of, or the URI or + hyperlink to, this Public License. + 2. You may satisfy the conditions in Section 3(a)(1) in any + reasonable manner based on the medium, means, and context in + which You Share the Licensed Material. For example, it may be + reasonable to satisfy the conditions by providing a URI or + hyperlink to a resource that includes the required + information. + 3. If requested by the Licensor, You must remove any of the + information required by Section 3(a)(1)(A) to the extent + reasonably practicable. + 4. If You Share Adapted Material You produce, the Adapter's + License You apply must not prevent recipients of the Adapted + Material from complying with this Public License. + +Section 4 -- Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material: + + a. for the avoidance of doubt, Section 2(a)(1) grants You the right + to extract, reuse, reproduce, and Share all or a substantial + portion of the contents of the database; + b. if You include all or a substantial portion of the database + contents in a database in which You have Sui Generis Database + Rights, then the database in which You have Sui Generis Database + Rights (but not its individual contents) is Adapted Material; and + c. You must comply with the conditions in Section 3(a) if You Share + all or a substantial portion of the contents of the database. +For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights. + + +Section 5 -- Disclaimer of Warranties and Limitation of Liability. + + a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE + EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS + AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF + ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, + IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, + WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, + ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT + KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT + ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. + b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE + TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, + NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, + INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, + COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR + USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR + DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR + IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + c. The disclaimer of warranties and limitation of liability provided + above shall be interpreted in a manner that, to the extent + possible, most closely approximates an absolute disclaimer and + waiver of all liability. + +Section 6 -- Term and Termination. + + a. This Public License applies for the term of the Copyright and + Similar Rights licensed here. However, if You fail to comply with + this Public License, then Your rights under this Public License + terminate automatically. + b. Where Your right to use the Licensed Material has terminated under + Section 6(a), it reinstates: + 1. automatically as of the date the violation is cured, provided + it is cured within 30 days of Your discovery of the + violation; or + 2. upon express reinstatement by the Licensor. + For the avoidance of doubt, this Section 6(b) does not affect any + right the Licensor may have to seek remedies for Your violations + of this Public License. + c. For the avoidance of doubt, the Licensor may also offer the + Licensed Material under separate terms or conditions or stop + distributing the Licensed Material at any time; however, doing so + will not terminate this Public License. + d. Sections 1, 5, 6, 7, and 8 survive termination of this Public + License. + +Section 7 -- Other Terms and Conditions. + + a. The Licensor shall not be bound by any additional or different + terms or conditions communicated by You unless expressly agreed. + b. Any arrangements, understandings, or agreements regarding the + Licensed Material not stated herein are separate from and + independent of the terms and conditions of this Public License. + +Section 8 -- Interpretation. + + a. For the avoidance of doubt, this Public License does not, and + shall not be interpreted to, reduce, limit, restrict, or impose + conditions on any use of the Licensed Material that could lawfully + be made without permission under this Public License. + b. To the extent possible, if any provision of this Public License is + deemed unenforceable, it shall be automatically reformed to the + minimum extent necessary to make it enforceable. If the provision + cannot be reformed, it shall be severed from this Public License + without affecting the enforceability of the remaining terms and + conditions. + c. No term or condition of this Public License will be waived and no + failure to comply consented to unless expressly agreed to by the + Licensor. + d. Nothing in this Public License constitutes or may be interpreted + as a limitation upon, or waiver of, any privileges and immunities + that apply to the Licensor or You, including from the legal + processes of any jurisdiction or authority. +Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the "Licensor." The text of the Creative Commons public licenses is dedicated to the public domain under the CC0 Public Domain Dedication. Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at creativecommons.org/policies, Creative Commons does not authorize the use of the trademark "Creative Commons" or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses. + +Creative Commons may be contacted at creativecommons.org. \ No newline at end of file diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/NEDOWN.png b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/NEDOWN.png similarity index 100% rename from openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/NEDOWN.png rename to lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/NEDOWN.png diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/NEDOWN_selected.png b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/NEDOWN_selected.png similarity index 100% rename from openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/NEDOWN_selected.png rename to lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/NEDOWN_selected.png diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/NETWORK.png b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/NETWORK.png similarity index 100% rename from openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/NETWORK.png rename to lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/NETWORK.png diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/NETWORK_EDGE.png b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/NETWORK_EDGE.png similarity index 100% rename from openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/NETWORK_EDGE.png rename to lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/NETWORK_EDGE.png diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/NETWORK_selected.png b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/NETWORK_selected.png similarity index 100% rename from openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/NETWORK_selected.png rename to lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/NETWORK_selected.png diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/NEUP.png b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/NEUP.png similarity index 100% rename from openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/NEUP.png rename to lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/NEUP.png diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/NEUP_selected.png b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/NEUP_selected.png similarity index 100% rename from openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/NEUP_selected.png rename to lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/NEUP_selected.png diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/OTHER.png b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/OTHER.png similarity index 100% rename from openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/OTHER.png rename to lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/OTHER.png diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/OTHER_0.png b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/OTHER_0.png similarity index 100% rename from openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/OTHER_0.png rename to lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/OTHER_0.png diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/OTHER_0_selected.png b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/OTHER_0_selected.png similarity index 100% rename from openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/OTHER_0_selected.png rename to lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/OTHER_0_selected.png diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/OTHER_1.png b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/OTHER_1.png similarity index 100% rename from openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/OTHER_1.png rename to lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/OTHER_1.png diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/OTHER_1_selected.png b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/OTHER_1_selected.png similarity index 100% rename from openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/OTHER_1_selected.png rename to lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/OTHER_1_selected.png diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/OTHER_2.png b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/OTHER_2.png similarity index 100% rename from openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/OTHER_2.png rename to lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/OTHER_2.png diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/OTHER_2_selected.png b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/OTHER_2_selected.png similarity index 100% rename from openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/OTHER_2_selected.png rename to lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/OTHER_2_selected.png diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/OTHER_3.png b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/OTHER_3.png similarity index 100% rename from openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/OTHER_3.png rename to lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/OTHER_3.png diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/OTHER_3_selected.png b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/OTHER_3_selected.png similarity index 100% rename from openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/OTHER_3_selected.png rename to lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/OTHER_3_selected.png diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/OTHER_selected.png b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/OTHER_selected.png similarity index 100% rename from openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/OTHER_selected.png rename to lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/OTHER_selected.png diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/cloud.png b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/cloud.png similarity index 100% rename from openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/cloud.png rename to lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/cloud.png diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/cloudroute.png b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/cloudroute.png similarity index 100% rename from openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/cloudroute.png rename to lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/cloudroute.png diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/crossSubnet.png b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/crossSubnet.png similarity index 100% rename from openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/crossSubnet.png rename to lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/crossSubnet.png diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/delete_asbr.png b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/delete_asbr.png similarity index 100% rename from openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/delete_asbr.png rename to lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/delete_asbr.png diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/mark_sink.png b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/mark_sink.png similarity index 100% rename from openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/mark_sink.png rename to lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/mark_sink.png diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/mark_source.png b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/mark_source.png similarity index 100% rename from openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/mark_source.png rename to lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/mark_source.png diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/networkdown.png b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/networkdown.png similarity index 100% rename from openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/networkdown.png rename to lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/networkdown.png diff --git a/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/node_gray.png b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/node_gray.png similarity index 100% rename from portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/node_gray.png rename to lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/node_gray.png diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/node_green.png b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/node_green.png similarity index 100% rename from openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/node_green.png rename to lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/node_green.png diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/node_red.png b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/node_red.png similarity index 100% rename from openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/node_red.png rename to lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/node_red.png diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/router.png b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/router.png similarity index 100% rename from openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/router.png rename to lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/router.png diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/router_selected.png b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/router_selected.png similarity index 100% rename from openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/router_selected.png rename to lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/router_selected.png diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/site.png b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/site.png similarity index 100% rename from openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/site.png rename to lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/site.png diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/siteIcon_feature.png b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/siteIcon_feature.png similarity index 100% rename from openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/siteIcon_feature.png rename to lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/siteIcon_feature.png diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/site_selected.png b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/site_selected.png similarity index 100% rename from openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/site_selected.png rename to lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/site_selected.png diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/sitedown.png b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/sitedown.png similarity index 100% rename from openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/sitedown.png rename to lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/sitedown.png diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/sitedown_selected.png b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/sitedown_selected.png similarity index 100% rename from openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/sitedown_selected.png rename to lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/sitedown_selected.png diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/u1963.png b/lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/u1963.png similarity index 100% rename from openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/u1963.png rename to lifecyclemgr/src/main/webapp/lifecyclemgr/images/topo/u1963.png diff --git a/lifecyclemgr/src/main/webapp/lifecyclemgr/js/bootstrap-table-filter-control.min.js b/lifecyclemgr/src/main/webapp/lifecyclemgr/js/bootstrap-table-filter-control.min.js new file mode 100644 index 00000000..d321a08e --- /dev/null +++ b/lifecyclemgr/src/main/webapp/lifecyclemgr/js/bootstrap-table-filter-control.min.js @@ -0,0 +1,7 @@ +/* + * bootstrap-table - v1.11.0 - 2016-07-02 + * https://github.com/wenzhixin/bootstrap-table + * Copyright (c) 2016 zhixin wen + * Licensed MIT License + */ +!function(a){"use strict";var b=a.fn.bootstrapTable.utils.sprintf,c=a.fn.bootstrapTable.utils.objectKeys,d=function(b,c,d){c=a.trim(c),b=a(b.get(b.length-1)),f(b,c)||b.append(a("").attr("value",c).text(a("
    ").html(d).text()))},e=function(b){var c=b.find("option:gt(0)");c.sort(function(b,c){return b=a(b).text().toLowerCase(),c=a(c).text().toLowerCase(),a.isNumeric(b)&&a.isNumeric(c)&&(b=parseFloat(b),c=parseFloat(c)),b>c?1:c>b?-1:0}),b.find("option:gt(0)").remove(),b.append(c)},f=function(a,b){for(var c=a.get(a.length-1).options,d=0;d0&&e.find(f).each(function(){c=a(this).closest("[data-field]").data("field"),d=a.grep(b.options.valuesFilterControl,function(a){return a.field===c}),d.length>0&&(a(this).val(d[0].value),k(a(this).get(0),d[0].position))})},n=function(){var b=[],c=document.cookie.match(/(?:bs.table.)(\w*)/g);return c?(a.each(c,function(c,d){/./.test(d)&&(d=d.split(".").pop()),-1===a.inArray(d,b)&&b.push(d)}),b):void 0},o=function(b){var c=b.options.data,f=(b.pageTo0},i=b.options.pagination?"server"===b.options.sidePagination?b.pageTo:b.options.totalRows:b.pageTo;a.each(b.header.fields,function(j,k){var l=b.columns[a.fn.bootstrapTable.utils.getFieldIndex(b.columns,k)],m=a(".bootstrap-table-filter-control-"+p(l.field));if(f(l)&&g(l)&&h(m)){0===m.get(m.length-1).options.length&&d(m,"","");for(var n={},o=0;i>o;o++){var q=c[o][k],r=a.fn.bootstrapTable.utils.calculateObjectValue(b.header,b.header.formatters[j],[q,c[o],o],q);n[r]=q}for(var s in n)d(m,n[s],s);e(m)}})},p=function(a){return String(a).replace(/(:|\.|\[|\]|,)/g,"\\$1")},q=function(b,c){var f,g,h=!1,i=0;a.each(b.columns,function(i,j){if(f="hidden",g=[],j.visible){if(j.filterControl){g.push('
    ');var k=j.filterControl.toLowerCase();j.searchable&&b.options.filterTemplate[k]&&(h=!0,f="visible",g.push(b.options.filterTemplate[k](b,j.field,f)))}else g.push('
    ');if(a.each(c.children().children(),function(b,c){return c=a(c),c.data("field")===j.field?(c.find(".fht-cell").append(g.join("")),!1):void 0}),void 0!==j.filterData&&"column"!==j.filterData.toLowerCase()){var l,m,n=t(s,j.filterData.substring(0,j.filterData.indexOf(":")));if(null===n)throw new SyntaxError('Error. You should use any of these allowed filter data methods: var, json, url. Use like this: var: {key: "value"}');l=j.filterData.substring(j.filterData.indexOf(":")+1,j.filterData.length),m=a(".bootstrap-table-filter-control-"+p(j.field)),d(m,"",""),n(l,m);var o,q;switch(n){case"url":a.ajax({url:l,dataType:"json",success:function(a){for(var b in a)d(m,b,a[b]);e(m)}});break;case"var":o=window[l];for(q in o)d(m,q,o[q]);e(m);break;case"jso":o=JSON.parse(l);for(q in o)d(m,q,o[q]);e(m)}}}}),h?(c.off("keyup","input").on("keyup","input",function(a){clearTimeout(i),i=setTimeout(function(){b.onColumnSearch(a)},b.options.searchTimeOut)}),c.off("change","select").on("change","select",function(a){clearTimeout(i),i=setTimeout(function(){b.onColumnSearch(a)},b.options.searchTimeOut)}),c.off("mouseup","input").on("mouseup","input",function(c){var d=a(this),e=d.val();""!==e&&setTimeout(function(){var a=d.val();""===a&&(clearTimeout(i),i=setTimeout(function(){b.onColumnSearch(c)},b.options.searchTimeOut))},1)}),c.find(".date-filter-control").length>0&&a.each(b.columns,function(b,d){void 0!==d.filterControl&&"datepicker"===d.filterControl.toLowerCase()&&c.find(".date-filter-control.bootstrap-table-filter-control-"+d.field).datepicker(d.filterDatepickerOptions).on("changeDate",function(b){a(b.currentTarget).keyup()})})):c.find(".filterControl").hide()},r=function(a){switch(a=void 0===a?"left":a.toLowerCase()){case"left":return"ltr";case"right":return"rtl";case"auto":return"auto";default:return"ltr"}},s={"var":function(a,b){var c=window[a];for(var f in c)d(b,f,c[f]);e(b)},url:function(b,c){a.ajax({url:b,dataType:"json",success:function(a){for(var b in a)d(c,b,a[b]);e(c)}})},json:function(a,b){var c=JSON.parse(a);for(var f in c)d(b,f,c[f]);e(b)}},t=function(a,b){for(var c=Object.keys(a),d=0;d',c,d)},select:function(a,c,d){return b('',c,d,r(a.options.alignmentSelectControlOptions))},datepicker:function(a,c,d){return b('',c,d)}},valuesFilterControl:[]}),a.extend(a.fn.bootstrapTable.COLUMN_DEFAULTS,{filterControl:void 0,filterData:void 0,filterDatepickerOptions:void 0,filterStrictSearch:!1,filterStartsWithSearch:!1}),a.extend(a.fn.bootstrapTable.Constructor.EVENTS,{"column-search.bs.table":"onColumnSearch"}),a.extend(a.fn.bootstrapTable.defaults.icons,{clear:"glyphicon-trash icon-clear"}),a.extend(a.fn.bootstrapTable.locales,{formatClearFilters:function(){return"Clear Filters"}}),a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales);var u=a.fn.bootstrapTable.Constructor,v=u.prototype.init,w=u.prototype.initToolbar,x=u.prototype.initHeader,y=u.prototype.initBody,z=u.prototype.initSearch;u.prototype.init=function(){if(this.options.filterControl){var a=this;Object.keys||c(),this.options.valuesFilterControl=[],this.$el.on("reset-view.bs.table",function(){a.options.height&&(a.$tableHeader.find("select").length>0||a.$tableHeader.find("input").length>0||q(a,a.$tableHeader))}).on("post-header.bs.table",function(){m(a)}).on("post-body.bs.table",function(){a.options.height&&g(a)}).on("column-switch.bs.table",function(){m(a)})}v.apply(this,Array.prototype.slice.apply(arguments))},u.prototype.initToolbar=function(){if(this.showToolbar=this.options.filterControl&&this.options.filterShowClear,w.apply(this,Array.prototype.slice.apply(arguments)),this.options.filterControl&&this.options.filterShowClear){var c=this.$toolbar.find(">.btn-group"),d=c.find(".filter-show-clear");d.length||(d=a(['"].join("")).appendTo(c),d.off("click").on("click",a.proxy(this.clearFilterControl,this)))}},u.prototype.initHeader=function(){x.apply(this,Array.prototype.slice.apply(arguments)),this.options.filterControl&&q(this,this.$header)},u.prototype.initBody=function(){y.apply(this,Array.prototype.slice.apply(arguments)),o(this)},u.prototype.initSearch=function(){if(z.apply(this,Array.prototype.slice.apply(arguments)),"server"!==this.options.sidePagination){var b=this,c=a.isEmptyObject(this.filterColumnsPartial)?null:this.filterColumnsPartial;this.data=c?a.grep(this.data,function(d,e){for(var f in c){var g=b.columns[a.fn.bootstrapTable.utils.getFieldIndex(b.columns,f)],h=c[f].toLowerCase(),i=d[f];if(g&&g.searchFormatter&&(i=a.fn.bootstrapTable.utils.calculateObjectValue(b.header,b.header.formatters[a.inArray(f,b.header.fields)],[i,d,e],i)),g.filterStrictSearch){if(-1===a.inArray(f,b.header.fields)||"string"!=typeof i&&"number"!=typeof i||i.toString().toLowerCase()!==h.toString().toLowerCase())return!1}else if(g.filterStartsWithSearch){if(-1===a.inArray(f,b.header.fields)||"string"!=typeof i&&"number"!=typeof i||0!==(i+"").toLowerCase().indexOf(h))return!1}else if(-1===a.inArray(f,b.header.fields)||"string"!=typeof i&&"number"!=typeof i||-1===(i+"").toLowerCase().indexOf(h))return!1}return!0}):this.data}},u.prototype.initColumnSearch=function(a){if(l(this),a){this.filterColumnsPartial=a,this.updatePagination();for(var b in a)this.trigger("column-search",b,a[b])}},u.prototype.onColumnSearch=function(b){if(!(a.inArray(b.keyCode,[37,38,39,40])>-1)){l(this);var c=a.trim(a(b.currentTarget).val()),d=a(b.currentTarget).closest("[data-field]").data("field");a.isEmptyObject(this.filterColumnsPartial)&&(this.filterColumnsPartial={}),c?this.filterColumnsPartial[d]=c:delete this.filterColumnsPartial[d],this.searchText+="randomText",this.options.pageNumber=1,this.onSearch(b),this.trigger("column-search",d,c)}},u.prototype.clearFilterControl=function(){if(this.options.filterControl&&this.options.filterShowClear){var c=this,d=n(),e=h(c),f=e.closest("table"),g=e.find(i(c)),j=c.$toolbar.find(".search input"),k=0;if(a.each(c.options.valuesFilterControl,function(a,b){b.value=""}),m(c),!(g.length>0))return;if(this.filterColumnsPartial={},a(g[0]).trigger("INPUT"===g[0].tagName?"keyup":"change"),j.length>0&&c.resetSearch(),c.options.sortName!==f.data("sortName")||c.options.sortOrder!==f.data("sortOrder")){var l=e.find(b('[data-field="%s"]',a(g[0]).closest("table").data("sortName")));l.length>0&&(c.onSort(f.data("sortName"),f.data("sortName")),a(l).find(".sortable").trigger("click"))}clearTimeout(k),k=setTimeout(function(){d&&d.length>0&&a.each(d,function(a,b){void 0!==c.deleteCookie&&c.deleteCookie(b)})},c.options.searchTimeOut)}}}(jQuery); \ No newline at end of file diff --git a/lifecyclemgr/src/main/webapp/lifecyclemgr/js/bootstrap-table.min.js b/lifecyclemgr/src/main/webapp/lifecyclemgr/js/bootstrap-table.min.js new file mode 100644 index 00000000..b6602c3f --- /dev/null +++ b/lifecyclemgr/src/main/webapp/lifecyclemgr/js/bootstrap-table.min.js @@ -0,0 +1,8 @@ +/* +* bootstrap-table - v1.11.0 - 2016-07-02 +* https://github.com/wenzhixin/bootstrap-table +* Copyright 2016 zhixin wen +* Licensed MIT License +*/ +!function(a){"use strict";var b=null,c=function(a){var b=arguments,c=!0,d=1;return a=a.replace(/%s/g,function(){var a=b[d++];return"undefined"==typeof a?(c=!1,""):a}),c?a:""},d=function(b,c,d,e){var f="";return a.each(b,function(a,b){return b[c]===e?(f=b[d],!1):!0}),f},e=function(b,c){var d=-1;return a.each(b,function(a,b){return b.field===c?(d=a,!1):!0}),d},f=function(b){var c,d,e,f=0,g=[];for(c=0;cd;d++)g[c][d]=!1;for(c=0;ce;e++)g[c+e][k]=!0;for(e=0;j>e;e++)g[c][k+e]=!0}},g=function(){if(null===b){var c,d,e=a("

    ").addClass("fixed-table-scroll-inner"),f=a("

    ").addClass("fixed-table-scroll-outer");f.append(e),a("body").append(f),c=e[0].offsetWidth,f.css("overflow","scroll"),d=e[0].offsetWidth,c===d&&(d=f[0].clientWidth),f.remove(),b=c-d}return b},h=function(b,d,e,f){var g=d;if("string"==typeof d){var h=d.split(".");h.length>1?(g=window,a.each(h,function(a,b){g=g[b]})):g=window[d]}return"object"==typeof g?g:"function"==typeof g?g.apply(b,e):!g&&"string"==typeof d&&c.apply(this,[d].concat(e))?c.apply(this,[d].concat(e)):f},i=function(b,c,d){var e=Object.getOwnPropertyNames(b),f=Object.getOwnPropertyNames(c),g="";if(d&&e.length!==f.length)return!1;for(var h=0;h-1&&b[g]!==c[g])return!1;return!0},j=function(a){return"string"==typeof a?a.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/`/g,"`"):a},k=function(b){var c=0;return b.children().each(function(){c0||navigator.userAgent.match(/Trident.*rv\:11\./))},o=function(){Object.keys||(Object.keys=function(){var a=Object.prototype.hasOwnProperty,b=!{toString:null}.propertyIsEnumerable("toString"),c=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],d=c.length;return function(e){if("object"!=typeof e&&("function"!=typeof e||null===e))throw new TypeError("Object.keys called on non-object");var f,g,h=[];for(f in e)a.call(e,f)&&h.push(f);if(b)for(g=0;d>g;g++)a.call(e,c[g])&&h.push(c[g]);return h}}())},p=function(b,c){this.options=c,this.$el=a(b),this.$el_=this.$el.clone(),this.timeoutId_=0,this.timeoutFooter_=0,this.init()};p.DEFAULTS={classes:"table table-hover",locale:void 0,height:void 0,undefinedText:"-",sortName:void 0,sortOrder:"asc",sortStable:!1,striped:!1,columns:[[]],data:[],dataField:"rows",method:"get",url:void 0,ajax:void 0,cache:!0,contentType:"application/json",dataType:"json",ajaxOptions:{},queryParams:function(a){return a},queryParamsType:"limit",responseHandler:function(a){return a},pagination:!1,onlyInfoPagination:!1,sidePagination:"client",totalRows:0,pageNumber:1,pageSize:10,pageList:[10,25,50,100],paginationHAlign:"right",paginationVAlign:"bottom",paginationDetailHAlign:"left",paginationPreText:"‹",paginationNextText:"›",search:!1,searchOnEnterKey:!1,strictSearch:!1,searchAlign:"right",selectItemName:"btSelectItem",showHeader:!0,showFooter:!1,showColumns:!1,showPaginationSwitch:!1,showRefresh:!1,showToggle:!1,buttonsAlign:"right",smartDisplay:!0,escape:!1,minimumCountColumns:1,idField:void 0,uniqueId:void 0,cardView:!1,detailView:!1,detailFormatter:function(){return""},trimOnSearch:!0,clickToSelect:!1,singleSelect:!1,toolbar:void 0,toolbarAlign:"left",checkboxHeader:!0,sortable:!0,silentSort:!0,maintainSelected:!1,searchTimeOut:500,searchText:"",iconSize:void 0,buttonsClass:"default",iconsPrefix:"glyphicon",icons:{paginationSwitchDown:"glyphicon-collapse-down icon-chevron-down",paginationSwitchUp:"glyphicon-collapse-up icon-chevron-up",refresh:"glyphicon-refresh icon-refresh",toggle:"glyphicon-list-alt icon-list-alt",columns:"glyphicon-th icon-th",detailOpen:"glyphicon-plus icon-plus",detailClose:"glyphicon-minus icon-minus"},customSearch:a.noop,customSort:a.noop,rowStyle:function(){return{}},rowAttributes:function(){return{}},footerStyle:function(){return{}},onAll:function(){return!1},onClickCell:function(){return!1},onDblClickCell:function(){return!1},onClickRow:function(){return!1},onDblClickRow:function(){return!1},onSort:function(){return!1},onCheck:function(){return!1},onUncheck:function(){return!1},onCheckAll:function(){return!1},onUncheckAll:function(){return!1},onCheckSome:function(){return!1},onUncheckSome:function(){return!1},onLoadSuccess:function(){return!1},onLoadError:function(){return!1},onColumnSwitch:function(){return!1},onPageChange:function(){return!1},onSearch:function(){return!1},onToggle:function(){return!1},onPreBody:function(){return!1},onPostBody:function(){return!1},onPostHeader:function(){return!1},onExpandRow:function(){return!1},onCollapseRow:function(){return!1},onRefreshOptions:function(){return!1},onRefresh:function(){return!1},onResetView:function(){return!1}},p.LOCALES={},p.LOCALES["en-US"]=p.LOCALES.en={formatLoadingMessage:function(){return"Loading, please wait..."},formatRecordsPerPage:function(a){return c("%s rows per page",a)},formatShowingRows:function(a,b,d){return c("Showing %s to %s of %s rows",a,b,d)},formatDetailPagination:function(a){return c("Showing %s rows",a)},formatSearch:function(){return"Search"},formatNoMatches:function(){return"No matching records found"},formatPaginationSwitch:function(){return"Hide/Show pagination"},formatRefresh:function(){return"Refresh"},formatToggle:function(){return"Toggle"},formatColumns:function(){return"Columns"},formatAllRows:function(){return"All"}},a.extend(p.DEFAULTS,p.LOCALES["en-US"]),p.COLUMN_DEFAULTS={radio:!1,checkbox:!1,checkboxEnabled:!0,field:void 0,title:void 0,titleTooltip:void 0,"class":void 0,align:void 0,halign:void 0,falign:void 0,valign:void 0,width:void 0,sortable:!1,order:"asc",visible:!0,switchable:!0,clickToSelect:!0,formatter:void 0,footerFormatter:void 0,events:void 0,sorter:void 0,sortName:void 0,cellStyle:void 0,searchable:!0,searchFormatter:!0,cardVisible:!0},p.EVENTS={"all.bs.table":"onAll","click-cell.bs.table":"onClickCell","dbl-click-cell.bs.table":"onDblClickCell","click-row.bs.table":"onClickRow","dbl-click-row.bs.table":"onDblClickRow","sort.bs.table":"onSort","check.bs.table":"onCheck","uncheck.bs.table":"onUncheck","check-all.bs.table":"onCheckAll","uncheck-all.bs.table":"onUncheckAll","check-some.bs.table":"onCheckSome","uncheck-some.bs.table":"onUncheckSome","load-success.bs.table":"onLoadSuccess","load-error.bs.table":"onLoadError","column-switch.bs.table":"onColumnSwitch","page-change.bs.table":"onPageChange","search.bs.table":"onSearch","toggle.bs.table":"onToggle","pre-body.bs.table":"onPreBody","post-body.bs.table":"onPostBody","post-header.bs.table":"onPostHeader","expand-row.bs.table":"onExpandRow","collapse-row.bs.table":"onCollapseRow","refresh-options.bs.table":"onRefreshOptions","reset-view.bs.table":"onResetView","refresh.bs.table":"onRefresh"},p.prototype.init=function(){this.initLocale(),this.initContainer(),this.initTable(),this.initHeader(),this.initData(),this.initFooter(),this.initToolbar(),this.initPagination(),this.initBody(),this.initSearchText(),this.initServer()},p.prototype.initLocale=function(){if(this.options.locale){var b=this.options.locale.split(/-|_/);b[0].toLowerCase(),b[1]&&b[1].toUpperCase(),a.fn.bootstrapTable.locales[this.options.locale]?a.extend(this.options,a.fn.bootstrapTable.locales[this.options.locale]):a.fn.bootstrapTable.locales[b.join("-")]?a.extend(this.options,a.fn.bootstrapTable.locales[b.join("-")]):a.fn.bootstrapTable.locales[b[0]]&&a.extend(this.options,a.fn.bootstrapTable.locales[b[0]])}},p.prototype.initContainer=function(){this.$container=a(['
    ','
    ',"top"===this.options.paginationVAlign||"both"===this.options.paginationVAlign?'
    ':"",'
    ','
    ','
    ','
    ',this.options.formatLoadingMessage(),"
    ","
    ",'',"bottom"===this.options.paginationVAlign||"both"===this.options.paginationVAlign?'
    ':"","
    ","
    "].join("")),this.$container.insertAfter(this.$el),this.$tableContainer=this.$container.find(".fixed-table-container"),this.$tableHeader=this.$container.find(".fixed-table-header"),this.$tableBody=this.$container.find(".fixed-table-body"),this.$tableLoading=this.$container.find(".fixed-table-loading"),this.$tableFooter=this.$container.find(".fixed-table-footer"),this.$toolbar=this.$container.find(".fixed-table-toolbar"),this.$pagination=this.$container.find(".fixed-table-pagination"),this.$tableBody.append(this.$el),this.$container.after('
    '),this.$el.addClass(this.options.classes),this.options.striped&&this.$el.addClass("table-striped"),-1!==a.inArray("table-no-bordered",this.options.classes.split(" "))&&this.$tableContainer.addClass("table-no-bordered")},p.prototype.initTable=function(){var b=this,c=[],d=[];if(this.$header=this.$el.find(">thead"),this.$header.length||(this.$header=a("").appendTo(this.$el)),this.$header.find("tr").each(function(){var b=[];a(this).find("th").each(function(){"undefined"!=typeof a(this).data("field")&&a(this).data("field",a(this).data("field")+""),b.push(a.extend({},{title:a(this).html(),"class":a(this).attr("class"),titleTooltip:a(this).attr("title"),rowspan:a(this).attr("rowspan")?+a(this).attr("rowspan"):void 0,colspan:a(this).attr("colspan")?+a(this).attr("colspan"):void 0},a(this).data()))}),c.push(b)}),a.isArray(this.options.columns[0])||(this.options.columns=[this.options.columns]),this.options.columns=a.extend(!0,[],c,this.options.columns),this.columns=[],f(this.options.columns),a.each(this.options.columns,function(c,d){a.each(d,function(d,e){e=a.extend({},p.COLUMN_DEFAULTS,e),"undefined"!=typeof e.fieldIndex&&(b.columns[e.fieldIndex]=e),b.options.columns[c][d]=e})}),!this.options.data.length){var e=[];this.$el.find(">tbody>tr").each(function(c){var f={};f._id=a(this).attr("id"),f._class=a(this).attr("class"),f._data=l(a(this).data()),a(this).find(">td").each(function(d){for(var g,h,i=a(this),j=+i.attr("colspan")||1,k=+i.attr("rowspan")||1;e[c]&&e[c][d];d++);for(g=d;d+j>g;g++)for(h=c;c+k>h;h++)e[h]||(e[h]=[]),e[h][g]=!0;var m=b.columns[d].field;f[m]=a(this).html(),f["_"+m+"_id"]=a(this).attr("id"),f["_"+m+"_class"]=a(this).attr("class"),f["_"+m+"_rowspan"]=a(this).attr("rowspan"),f["_"+m+"_colspan"]=a(this).attr("colspan"),f["_"+m+"_title"]=a(this).attr("title"),f["_"+m+"_data"]=l(a(this).data())}),d.push(f)}),this.options.data=d,d.length&&(this.fromHtml=!0)}},p.prototype.initHeader=function(){var b=this,d={},e=[];this.header={fields:[],styles:[],classes:[],formatters:[],events:[],sorters:[],sortNames:[],cellStyles:[],searchables:[]},a.each(this.options.columns,function(f,g){e.push(""),0===f&&!b.options.cardView&&b.options.detailView&&e.push(c('
    ',b.options.columns.length)),a.each(g,function(a,f){var g="",h="",i="",j="",k=c(' class="%s"',f["class"]),l=(b.options.sortOrder||f.order,"px"),m=f.width;if(void 0===f.width||b.options.cardView||"string"==typeof f.width&&-1!==f.width.indexOf("%")&&(l="%"),f.width&&"string"==typeof f.width&&(m=f.width.replace("%","").replace("px","")),h=c("text-align: %s; ",f.halign?f.halign:f.align),i=c("text-align: %s; ",f.align),j=c("vertical-align: %s; ",f.valign),j+=c("width: %s; ",!f.checkbox&&!f.radio||m?m?m+l:void 0:"36px"),"undefined"!=typeof f.fieldIndex){if(b.header.fields[f.fieldIndex]=f.field,b.header.styles[f.fieldIndex]=i+j,b.header.classes[f.fieldIndex]=k,b.header.formatters[f.fieldIndex]=f.formatter,b.header.events[f.fieldIndex]=f.events,b.header.sorters[f.fieldIndex]=f.sorter,b.header.sortNames[f.fieldIndex]=f.sortName,b.header.cellStyles[f.fieldIndex]=f.cellStyle,b.header.searchables[f.fieldIndex]=f.searchable,!f.visible)return;if(b.options.cardView&&!f.cardVisible)return;d[f.field]=f}e.push(""),e.push(c('
    ',b.options.sortable&&f.sortable?"sortable both":"")),g=f.title,f.checkbox&&(!b.options.singleSelect&&b.options.checkboxHeader&&(g=''),b.header.stateField=f.field),f.radio&&(g="",b.header.stateField=f.field,b.options.singleSelect=!0),e.push(g),e.push("
    "),e.push('
    '),e.push("
    "),e.push("")}),e.push("")}),this.$header.html(e.join("")),this.$header.find("th[data-field]").each(function(){a(this).data(d[a(this).data("field")])}),this.$container.off("click",".th-inner").on("click",".th-inner",function(c){var d=a(this);return b.options.detailView&&d.closest(".bootstrap-table")[0]!==b.$container[0]?!1:void(b.options.sortable&&d.parent().data().sortable&&b.onSort(c))}),this.$header.children().children().off("keypress").on("keypress",function(c){if(b.options.sortable&&a(this).data().sortable){var d=c.keyCode||c.which;13==d&&b.onSort(c)}}),a(window).off("resize.bootstrap-table"),!this.options.showHeader||this.options.cardView?(this.$header.hide(),this.$tableHeader.hide(),this.$tableLoading.css("top",0)):(this.$header.show(),this.$tableHeader.show(),this.$tableLoading.css("top",this.$header.outerHeight()+1),this.getCaret(),a(window).on("resize.bootstrap-table",a.proxy(this.resetWidth,this))),this.$selectAll=this.$header.find('[name="btSelectAll"]'),this.$selectAll.off("click").on("click",function(){var c=a(this).prop("checked");b[c?"checkAll":"uncheckAll"](),b.updateSelected()})},p.prototype.initFooter=function(){!this.options.showFooter||this.options.cardView?this.$tableFooter.hide():this.$tableFooter.show()},p.prototype.initData=function(a,b){this.data="append"===b?this.data.concat(a):"prepend"===b?[].concat(a).concat(this.data):a||this.options.data,this.options.data="append"===b?this.options.data.concat(a):"prepend"===b?[].concat(a).concat(this.options.data):this.data,"server"!==this.options.sidePagination&&this.initSort()},p.prototype.initSort=function(){var b=this,c=this.options.sortName,d="desc"===this.options.sortOrder?-1:1,e=a.inArray(this.options.sortName,this.header.fields);return this.options.customSort!==a.noop?void this.options.customSort.apply(this,[this.options.sortName,this.options.sortOrder]):void(-1!==e&&(this.options.sortStable&&a.each(this.data,function(a,b){b.hasOwnProperty("_position")||(b._position=a)}),this.data.sort(function(f,g){b.header.sortNames[e]&&(c=b.header.sortNames[e]);var i=m(f,c,b.options.escape),j=m(g,c,b.options.escape),k=h(b.header,b.header.sorters[e],[i,j]);return void 0!==k?d*k:((void 0===i||null===i)&&(i=""),(void 0===j||null===j)&&(j=""),b.options.sortStable&&i===j&&(i=f._position,j=g._position),a.isNumeric(i)&&a.isNumeric(j)?(i=parseFloat(i),j=parseFloat(j),j>i?-1*d:d):i===j?0:("string"!=typeof i&&(i=i.toString()),-1===i.localeCompare(j)?-1*d:d))})))},p.prototype.onSort=function(b){var c="keypress"===b.type?a(b.currentTarget):a(b.currentTarget).parent(),d=this.$header.find("th").eq(c.index());return this.$header.add(this.$header_).find("span.order").remove(),this.options.sortName===c.data("field")?this.options.sortOrder="asc"===this.options.sortOrder?"desc":"asc":(this.options.sortName=c.data("field"),this.options.sortOrder="asc"===c.data("order")?"desc":"asc"),this.trigger("sort",this.options.sortName,this.options.sortOrder),c.add(d).data("order",this.options.sortOrder),this.getCaret(),"server"===this.options.sidePagination?void this.initServer(this.options.silentSort):(this.initSort(),void this.initBody())},p.prototype.initToolbar=function(){var b,d,e=this,f=[],g=0,i=0;this.$toolbar.find(".bs-bars").children().length&&a("body").append(a(this.options.toolbar)),this.$toolbar.html(""),("string"==typeof this.options.toolbar||"object"==typeof this.options.toolbar)&&a(c('
    ',this.options.toolbarAlign)).appendTo(this.$toolbar).append(a(this.options.toolbar)),f=[c('
    ',this.options.buttonsAlign,this.options.buttonsAlign)],"string"==typeof this.options.icons&&(this.options.icons=h(null,this.options.icons)),this.options.showPaginationSwitch&&f.push(c('"),this.options.showRefresh&&f.push(c('"),this.options.showToggle&&f.push(c('"),this.options.showColumns&&(f.push(c('
    ',this.options.formatColumns()),'",'","
    ")),f.push("
    "),(this.showToolbar||f.length>2)&&this.$toolbar.append(f.join("")),this.options.showPaginationSwitch&&this.$toolbar.find('button[name="paginationSwitch"]').off("click").on("click",a.proxy(this.togglePagination,this)),this.options.showRefresh&&this.$toolbar.find('button[name="refresh"]').off("click").on("click",a.proxy(this.refresh,this)),this.options.showToggle&&this.$toolbar.find('button[name="toggle"]').off("click").on("click",function(){e.toggleView()}),this.options.showColumns&&(b=this.$toolbar.find(".keep-open"),i<=this.options.minimumCountColumns&&b.find("input").prop("disabled",!0),b.find("li").off("click").on("click",function(a){a.stopImmediatePropagation()}),b.find("input").off("click").on("click",function(){var b=a(this);e.toggleColumn(a(this).val(),b.prop("checked"),!1),e.trigger("column-switch",a(this).data("field"),b.prop("checked"))})),this.options.search&&(f=[],f.push('"),this.$toolbar.append(f.join("")),d=this.$toolbar.find(".search input"),d.off("keyup drop").on("keyup drop",function(b){e.options.searchOnEnterKey&&13!==b.keyCode||a.inArray(b.keyCode,[37,38,39,40])>-1||(clearTimeout(g),g=setTimeout(function(){e.onSearch(b)},e.options.searchTimeOut))}),n()&&d.off("mouseup").on("mouseup",function(a){clearTimeout(g),g=setTimeout(function(){e.onSearch(a)},e.options.searchTimeOut)}))},p.prototype.onSearch=function(b){var c=a.trim(a(b.currentTarget).val());this.options.trimOnSearch&&a(b.currentTarget).val()!==c&&a(b.currentTarget).val(c),c!==this.searchText&&(this.searchText=c,this.options.searchText=c,this.options.pageNumber=1,this.initSearch(),this.updatePagination(),this.trigger("search",c))},p.prototype.initSearch=function(){var b=this;if("server"!==this.options.sidePagination){if(this.options.customSearch!==a.noop)return void this.options.customSearch.apply(this,[this.searchText]);var c=this.searchText&&(this.options.escape?j(this.searchText):this.searchText).toLowerCase(),d=a.isEmptyObject(this.filterColumns)?null:this.filterColumns;this.data=d?a.grep(this.options.data,function(b){for(var c in d)if(a.isArray(d[c])&&-1===a.inArray(b[c],d[c])||b[c]!==d[c])return!1;return!0}):this.options.data,this.data=c?a.grep(this.data,function(d,f){for(var g=0;g-1&&(n=!0)}this.totalPages=~~((this.options.totalRows-1)/this.options.pageSize)+1,this.options.totalPages=this.totalPages}if(this.totalPages>0&&this.options.pageNumber>this.totalPages&&(this.options.pageNumber=this.totalPages),this.pageFrom=(this.options.pageNumber-1)*this.options.pageSize+1,this.pageTo=this.options.pageNumber*this.options.pageSize,this.pageTo>this.options.totalRows&&(this.pageTo=this.options.totalRows),m.push('
    ','',this.options.onlyInfoPagination?this.options.formatDetailPagination(this.options.totalRows):this.options.formatShowingRows(this.pageFrom,this.pageTo,this.options.totalRows),""),!this.options.onlyInfoPagination){m.push('');var r=[c('',"top"===this.options.paginationVAlign||"both"===this.options.paginationVAlign?"dropdown":"dropup"),'",'"),m.push(this.options.formatRecordsPerPage(r.join(""))),m.push(""),m.push("
    ",'")}this.$pagination.html(m.join("")),this.options.onlyInfoPagination||(f=this.$pagination.find(".page-list a"),g=this.$pagination.find(".page-first"),h=this.$pagination.find(".page-pre"),i=this.$pagination.find(".page-next"),j=this.$pagination.find(".page-last"),k=this.$pagination.find(".page-number"),this.options.smartDisplay&&(this.totalPages<=1&&this.$pagination.find("div.pagination").hide(),(p.length<2||this.options.totalRows<=p[0])&&this.$pagination.find("span.page-list").hide(),this.$pagination[this.getData().length?"show":"hide"]()),n&&(this.options.pageSize=this.options.formatAllRows()),f.off("click").on("click",a.proxy(this.onPageListChange,this)),g.off("click").on("click",a.proxy(this.onPageFirst,this)),h.off("click").on("click",a.proxy(this.onPagePre,this)),i.off("click").on("click",a.proxy(this.onPageNext,this)),j.off("click").on("click",a.proxy(this.onPageLast,this)),k.off("click").on("click",a.proxy(this.onPageNumber,this)))},p.prototype.updatePagination=function(b){b&&a(b.currentTarget).hasClass("disabled")||(this.options.maintainSelected||this.resetRows(),this.initPagination(),"server"===this.options.sidePagination?this.initServer():this.initBody(),this.trigger("page-change",this.options.pageNumber,this.options.pageSize))},p.prototype.onPageListChange=function(b){var c=a(b.currentTarget);c.parent().addClass("active").siblings().removeClass("active"),this.options.pageSize=c.text().toUpperCase()===this.options.formatAllRows().toUpperCase()?this.options.formatAllRows():+c.text(),this.$toolbar.find(".page-size").text(this.options.pageSize),this.updatePagination(b)},p.prototype.onPageFirst=function(a){this.options.pageNumber=1,this.updatePagination(a)},p.prototype.onPagePre=function(a){this.options.pageNumber-1===0?this.options.pageNumber=this.options.totalPages:this.options.pageNumber--,this.updatePagination(a)},p.prototype.onPageNext=function(a){this.options.pageNumber+1>this.options.totalPages?this.options.pageNumber=1:this.options.pageNumber++,this.updatePagination(a)},p.prototype.onPageLast=function(a){this.options.pageNumber=this.totalPages,this.updatePagination(a)},p.prototype.onPageNumber=function(b){this.options.pageNumber!==+a(b.currentTarget).text()&&(this.options.pageNumber=+a(b.currentTarget).text(),this.updatePagination(b))},p.prototype.initBody=function(b){var f=this,g=[],i=this.getData();this.trigger("pre-body",i),this.$body=this.$el.find(">tbody"),this.$body.length||(this.$body=a("").appendTo(this.$el)),this.options.pagination&&"server"!==this.options.sidePagination||(this.pageFrom=1,this.pageTo=i.length);for(var k=this.pageFrom-1;k"),this.options.cardView&&g.push(c('
    ',this.header.fields.length)),!this.options.cardView&&this.options.detailView&&g.push("",'',c('',this.options.iconsPrefix,this.options.icons.detailOpen),"",""),a.each(this.header.fields,function(b,e){var i="",j=m(n,e,f.options.escape),l="",q={},r="",s=f.header.classes[b],t="",u="",v="",w="",x=f.columns[b];if(!(f.fromHtml&&"undefined"==typeof j||!x.visible||f.options.cardView&&!x.cardVisible)){if(o=c('style="%s"',p.concat(f.header.styles[b]).join("; ")),n["_"+e+"_id"]&&(r=c(' id="%s"',n["_"+e+"_id"])),n["_"+e+"_class"]&&(s=c(' class="%s"',n["_"+e+"_class"])),n["_"+e+"_rowspan"]&&(u=c(' rowspan="%s"',n["_"+e+"_rowspan"])),n["_"+e+"_colspan"]&&(v=c(' colspan="%s"',n["_"+e+"_colspan"])),n["_"+e+"_title"]&&(w=c(' title="%s"',n["_"+e+"_title"])),q=h(f.header,f.header.cellStyles[b],[j,n,k,e],q),q.classes&&(s=c(' class="%s"',q.classes)),q.css){var y=[];for(var z in q.css)y.push(z+": "+q.css[z]);o=c('style="%s"',y.concat(f.header.styles[b]).join("; "))}j=h(x,f.header.formatters[b],[j,n,k],j),n["_"+e+"_data"]&&!a.isEmptyObject(n["_"+e+"_data"])&&a.each(n["_"+e+"_data"],function(a,b){"index"!==a&&(t+=c(' data-%s="%s"',a,b))}),x.checkbox||x.radio?(l=x.checkbox?"checkbox":l,l=x.radio?"radio":l,i=[c(f.options.cardView?'
    ':'',x["class"]||""),"",f.header.formatters[b]&&"string"==typeof j?j:"",f.options.cardView?"
    ":""].join(""),n[f.header.stateField]=j===!0||j&&j.checked):(j="undefined"==typeof j||null===j?f.options.undefinedText:j,i=f.options.cardView?['
    ',f.options.showHeader?c('%s',o,d(f.columns,"field","title",e)):"",c('%s',j),"
    "].join(""):[c("",r,s,o,t,u,v,w),j,""].join(""),f.options.cardView&&f.options.smartDisplay&&""===j&&(i='
    ')),g.push(i)}}),this.options.cardView&&g.push("
    "),g.push("")}g.length||g.push('',c('%s',this.$header.find("th").length,this.options.formatNoMatches()),""),this.$body.html(g.join("")),b||this.scrollTo(0),this.$body.find("> tr[data-index] > td").off("click dblclick").on("click dblclick",function(b){var d=a(this),g=d.parent(),h=f.data[g.data("index")],i=d[0].cellIndex,j=f.getVisibleFields(),k=j[f.options.detailView&&!f.options.cardView?i-1:i],l=f.columns[e(f.columns,k)],n=m(h,k,f.options.escape);if(!d.find(".detail-icon").length&&(f.trigger("click"===b.type?"click-cell":"dbl-click-cell",k,n,h,d),f.trigger("click"===b.type?"click-row":"dbl-click-row",h,g,k), +"click"===b.type&&f.options.clickToSelect&&l.clickToSelect)){var o=g.find(c('[name="%s"]',f.options.selectItemName));o.length&&o[0].click()}}),this.$body.find("> tr[data-index] > td > .detail-icon").off("click").on("click",function(){var b=a(this),d=b.parent().parent(),e=d.data("index"),g=i[e];if(d.next().is("tr.detail-view"))b.find("i").attr("class",c("%s %s",f.options.iconsPrefix,f.options.icons.detailOpen)),d.next().remove(),f.trigger("collapse-row",e,g);else{b.find("i").attr("class",c("%s %s",f.options.iconsPrefix,f.options.icons.detailClose)),d.after(c('',d.find("td").length));var j=d.next().find("td"),k=h(f.options,f.options.detailFormatter,[e,g,j],"");1===j.length&&j.append(k),f.trigger("expand-row",e,g,j)}f.resetView()}),this.$selectItem=this.$body.find(c('[name="%s"]',this.options.selectItemName)),this.$selectItem.off("click").on("click",function(b){b.stopImmediatePropagation();var c=a(this),d=c.prop("checked"),e=f.data[c.data("index")];f.options.maintainSelected&&a(this).is(":radio")&&a.each(f.options.data,function(a,b){b[f.header.stateField]=!1}),e[f.header.stateField]=d,f.options.singleSelect&&(f.$selectItem.not(this).each(function(){f.data[a(this).data("index")][f.header.stateField]=!1}),f.$selectItem.filter(":checked").not(this).prop("checked",!1)),f.updateSelected(),f.trigger(d?"check":"uncheck",e,c)}),a.each(this.header.events,function(b,c){if(c){"string"==typeof c&&(c=h(null,c));var d=f.header.fields[b],e=a.inArray(d,f.getVisibleFields());f.options.detailView&&!f.options.cardView&&(e+=1);for(var g in c)f.$body.find(">tr:not(.no-records-found)").each(function(){var b=a(this),h=b.find(f.options.cardView?".card-view":"td").eq(e),i=g.indexOf(" "),j=g.substring(0,i),k=g.substring(i+1),l=c[g];h.find(k).off(j).on(j,function(a){var c=b.data("index"),e=f.data[c],g=e[d];l.apply(this,[a,g,e,c])})})}}),this.updateSelected(),this.resetView(),this.trigger("post-body",i)},p.prototype.initServer=function(b,c,d){var e,f=this,g={},i={searchText:this.searchText,sortName:this.options.sortName,sortOrder:this.options.sortOrder};this.options.pagination&&(i.pageSize=this.options.pageSize===this.options.formatAllRows()?this.options.totalRows:this.options.pageSize,i.pageNumber=this.options.pageNumber),(d||this.options.url||this.options.ajax)&&("limit"===this.options.queryParamsType&&(i={search:i.searchText,sort:i.sortName,order:i.sortOrder},this.options.pagination&&(i.offset=this.options.pageSize===this.options.formatAllRows()?0:this.options.pageSize*(this.options.pageNumber-1),i.limit=this.options.pageSize===this.options.formatAllRows()?this.options.totalRows:this.options.pageSize)),a.isEmptyObject(this.filterColumnsPartial)||(i.filter=JSON.stringify(this.filterColumnsPartial,null)),g=h(this.options,this.options.queryParams,[i],g),a.extend(g,c||{}),g!==!1&&(b||this.$tableLoading.show(),e=a.extend({},h(null,this.options.ajaxOptions),{type:this.options.method,url:d||this.options.url,data:"application/json"===this.options.contentType&&"post"===this.options.method?JSON.stringify(g):g,cache:this.options.cache,contentType:this.options.contentType,dataType:this.options.dataType,success:function(a){a=h(f.options,f.options.responseHandler,[a],a),f.load(a),f.trigger("load-success",a),b||f.$tableLoading.hide()},error:function(a){f.trigger("load-error",a.status,a),b||f.$tableLoading.hide()}}),this.options.ajax?h(this,this.options.ajax,[e],null):(this._xhr&&4!==this._xhr.readyState&&this._xhr.abort(),this._xhr=a.ajax(e))))},p.prototype.initSearchText=function(){if(this.options.search&&""!==this.options.searchText){var a=this.$toolbar.find(".search input");a.val(this.options.searchText),this.onSearch({currentTarget:a})}},p.prototype.getCaret=function(){var b=this;a.each(this.$header.find("th"),function(c,d){a(d).find(".sortable").removeClass("desc asc").addClass(a(d).data("field")===b.options.sortName?b.options.sortOrder:"both")})},p.prototype.updateSelected=function(){var b=this.$selectItem.filter(":enabled").length&&this.$selectItem.filter(":enabled").length===this.$selectItem.filter(":enabled").filter(":checked").length;this.$selectAll.add(this.$selectAll_).prop("checked",b),this.$selectItem.each(function(){a(this).closest("tr")[a(this).prop("checked")?"addClass":"removeClass"]("selected")})},p.prototype.updateRows=function(){var b=this;this.$selectItem.each(function(){b.data[a(this).data("index")][b.header.stateField]=a(this).prop("checked")})},p.prototype.resetRows=function(){var b=this;a.each(this.data,function(a,c){b.$selectAll.prop("checked",!1),b.$selectItem.prop("checked",!1),b.header.stateField&&(c[b.header.stateField]=!1)})},p.prototype.trigger=function(b){var c=Array.prototype.slice.call(arguments,1);b+=".bs.table",this.options[p.EVENTS[b]].apply(this.options,c),this.$el.trigger(a.Event(b),c),this.options.onAll(b,c),this.$el.trigger(a.Event("all.bs.table"),[b,c])},p.prototype.resetHeader=function(){clearTimeout(this.timeoutId_),this.timeoutId_=setTimeout(a.proxy(this.fitHeader,this),this.$el.is(":hidden")?100:0)},p.prototype.fitHeader=function(){var b,d,e,f,h=this;if(h.$el.is(":hidden"))return void(h.timeoutId_=setTimeout(a.proxy(h.fitHeader,h),100));if(b=this.$tableBody.get(0),d=b.scrollWidth>b.clientWidth&&b.scrollHeight>b.clientHeight+this.$header.outerHeight()?g():0,this.$el.css("margin-top",-this.$header.outerHeight()),e=a(":focus"),e.length>0){var i=e.parents("th");if(i.length>0){var j=i.attr("data-field");if(void 0!==j){var k=this.$header.find("[data-field='"+j+"']");k.length>0&&k.find(":input").addClass("focus-temp")}}}this.$header_=this.$header.clone(!0,!0),this.$selectAll_=this.$header_.find('[name="btSelectAll"]'),this.$tableHeader.css({"margin-right":d}).find("table").css("width",this.$el.outerWidth()).html("").attr("class",this.$el.attr("class")).append(this.$header_),f=a(".focus-temp:visible:eq(0)"),f.length>0&&(f.focus(),this.$header.find(".focus-temp").removeClass("focus-temp")),this.$header.find("th[data-field]").each(function(){h.$header_.find(c('th[data-field="%s"]',a(this).data("field"))).data(a(this).data())});var l=this.getVisibleFields(),m=this.$header_.find("th");this.$body.find(">tr:first-child:not(.no-records-found) > *").each(function(b){var d=a(this),e=b;h.options.detailView&&!h.options.cardView&&(0===b&&h.$header_.find("th.detail").find(".fht-cell").width(d.innerWidth()),e=b-1);var f=h.$header_.find(c('th[data-field="%s"]',l[e]));f.length>1&&(f=a(m[d[0].cellIndex])),f.find(".fht-cell").width(d.innerWidth())}),this.$tableBody.off("scroll").on("scroll",function(){h.$tableHeader.scrollLeft(a(this).scrollLeft()),h.options.showFooter&&!h.options.cardView&&h.$tableFooter.scrollLeft(a(this).scrollLeft())}),h.trigger("post-header")},p.prototype.resetFooter=function(){var b=this,d=b.getData(),e=[];this.options.showFooter&&!this.options.cardView&&(!this.options.cardView&&this.options.detailView&&e.push('
     
    '),a.each(this.columns,function(a,f){var g,i="",j="",k=[],l={},m=c(' class="%s"',f["class"]);if(f.visible&&(!b.options.cardView||f.cardVisible)){if(i=c("text-align: %s; ",f.falign?f.falign:f.align),j=c("vertical-align: %s; ",f.valign),l=h(null,b.options.footerStyle),l&&l.css)for(g in l.css)k.push(g+": "+l.css[g]);e.push(""),e.push('
    '),e.push(h(f,f.footerFormatter,[d]," ")||" "),e.push("
    "),e.push('
    '),e.push("
    "),e.push("")}}),this.$tableFooter.find("tr").html(e.join("")),this.$tableFooter.show(),clearTimeout(this.timeoutFooter_),this.timeoutFooter_=setTimeout(a.proxy(this.fitFooter,this),this.$el.is(":hidden")?100:0))},p.prototype.fitFooter=function(){var b,c,d;return clearTimeout(this.timeoutFooter_),this.$el.is(":hidden")?void(this.timeoutFooter_=setTimeout(a.proxy(this.fitFooter,this),100)):(c=this.$el.css("width"),d=c>this.$tableBody.width()?g():0,this.$tableFooter.css({"margin-right":d}).find("table").css("width",c).attr("class",this.$el.attr("class")),b=this.$tableFooter.find("td"),void this.$body.find(">tr:first-child:not(.no-records-found) > *").each(function(c){var d=a(this);b.eq(c).find(".fht-cell").width(d.innerWidth())}))},p.prototype.toggleColumn=function(a,b,d){if(-1!==a&&(this.columns[a].visible=b,this.initHeader(),this.initSearch(),this.initPagination(),this.initBody(),this.options.showColumns)){var e=this.$toolbar.find(".keep-open input").prop("disabled",!1);d&&e.filter(c('[value="%s"]',a)).prop("checked",b),e.filter(":checked").length<=this.options.minimumCountColumns&&e.filter(":checked").prop("disabled",!0)}},p.prototype.toggleRow=function(a,b,d){-1!==a&&this.$body.find("undefined"!=typeof a?c('tr[data-index="%s"]',a):c('tr[data-uniqueid="%s"]',b))[d?"show":"hide"]()},p.prototype.getVisibleFields=function(){var b=this,c=[];return a.each(this.header.fields,function(a,d){var f=b.columns[e(b.columns,d)];f.visible&&c.push(d)}),c},p.prototype.resetView=function(a){var b=0;if(a&&a.height&&(this.options.height=a.height),this.$selectAll.prop("checked",this.$selectItem.length>0&&this.$selectItem.length===this.$selectItem.filter(":checked").length),this.options.height){var c=k(this.$toolbar),d=k(this.$pagination),e=this.options.height-c-d;this.$tableContainer.css("height",e+"px")}return this.options.cardView?(this.$el.css("margin-top","0"),this.$tableContainer.css("padding-bottom","0"),void this.$tableFooter.hide()):(this.options.showHeader&&this.options.height?(this.$tableHeader.show(),this.resetHeader(),b+=this.$header.outerHeight()):(this.$tableHeader.hide(),this.trigger("post-header")),this.options.showFooter&&(this.resetFooter(),this.options.height&&(b+=this.$tableFooter.outerHeight()+1)),this.getCaret(),this.$tableContainer.css("padding-bottom",b+"px"),void this.trigger("reset-view"))},p.prototype.getData=function(b){return!this.searchText&&a.isEmptyObject(this.filterColumns)&&a.isEmptyObject(this.filterColumnsPartial)?b?this.options.data.slice(this.pageFrom-1,this.pageTo):this.options.data:b?this.data.slice(this.pageFrom-1,this.pageTo):this.data},p.prototype.load=function(b){var c=!1;"server"===this.options.sidePagination?(this.options.totalRows=b.total,c=b.fixedScroll,b=b[this.options.dataField]):a.isArray(b)||(c=b.fixedScroll,b=b.data),this.initData(b),this.initSearch(),this.initPagination(),this.initBody(c)},p.prototype.append=function(a){this.initData(a,"append"),this.initSearch(),this.initPagination(),this.initSort(),this.initBody(!0)},p.prototype.prepend=function(a){this.initData(a,"prepend"),this.initSearch(),this.initPagination(),this.initSort(),this.initBody(!0)},p.prototype.remove=function(b){var c,d,e=this.options.data.length;if(b.hasOwnProperty("field")&&b.hasOwnProperty("values")){for(c=e-1;c>=0;c--)d=this.options.data[c],d.hasOwnProperty(b.field)&&-1!==a.inArray(d[b.field],b.values)&&this.options.data.splice(c,1);e!==this.options.data.length&&(this.initSearch(),this.initPagination(),this.initSort(),this.initBody(!0))}},p.prototype.removeAll=function(){this.options.data.length>0&&(this.options.data.splice(0,this.options.data.length),this.initSearch(),this.initPagination(),this.initBody(!0))},p.prototype.getRowByUniqueId=function(a){var b,c,d,e=this.options.uniqueId,f=this.options.data.length,g=null;for(b=f-1;b>=0;b--){if(c=this.options.data[b],c.hasOwnProperty(e))d=c[e];else{if(!c._data.hasOwnProperty(e))continue;d=c._data[e]}if("string"==typeof d?a=a.toString():"number"==typeof d&&(Number(d)===d&&d%1===0?a=parseInt(a):d===Number(d)&&0!==d&&(a=parseFloat(a))),d===a){g=c;break}}return g},p.prototype.removeByUniqueId=function(a){var b=this.options.data.length,c=this.getRowByUniqueId(a);c&&this.options.data.splice(this.options.data.indexOf(c),1),b!==this.options.data.length&&(this.initSearch(),this.initPagination(),this.initBody(!0))},p.prototype.updateByUniqueId=function(b){var c=this,d=a.isArray(b)?b:[b];a.each(d,function(b,d){var e;d.hasOwnProperty("id")&&d.hasOwnProperty("row")&&(e=a.inArray(c.getRowByUniqueId(d.id),c.options.data),-1!==e&&a.extend(c.options.data[e],d.row))}),this.initSearch(),this.initSort(),this.initBody(!0)},p.prototype.insertRow=function(a){a.hasOwnProperty("index")&&a.hasOwnProperty("row")&&(this.data.splice(a.index,0,a.row),this.initSearch(),this.initPagination(),this.initSort(),this.initBody(!0))},p.prototype.updateRow=function(b){var c=this,d=a.isArray(b)?b:[b];a.each(d,function(b,d){d.hasOwnProperty("index")&&d.hasOwnProperty("row")&&a.extend(c.options.data[d.index],d.row)}),this.initSearch(),this.initSort(),this.initBody(!0)},p.prototype.showRow=function(a){(a.hasOwnProperty("index")||a.hasOwnProperty("uniqueId"))&&this.toggleRow(a.index,a.uniqueId,!0)},p.prototype.hideRow=function(a){(a.hasOwnProperty("index")||a.hasOwnProperty("uniqueId"))&&this.toggleRow(a.index,a.uniqueId,!1)},p.prototype.getRowsHidden=function(b){var c=a(this.$body[0]).children().filter(":hidden"),d=0;if(b)for(;dtr");if(this.options.detailView&&!this.options.cardView&&(g+=1),e=j.eq(f).find(">td").eq(g),!(0>f||0>g||f>=this.data.length)){for(c=f;f+h>c;c++)for(d=g;g+i>d;d++)j.eq(c).find(">td").eq(d).hide();e.attr("rowspan",h).attr("colspan",i).show()}},p.prototype.updateCell=function(a){a.hasOwnProperty("index")&&a.hasOwnProperty("field")&&a.hasOwnProperty("value")&&(this.data[a.index][a.field]=a.value,a.reinit!==!1&&(this.initSort(),this.initBody(!0)))},p.prototype.getOptions=function(){return this.options},p.prototype.getSelections=function(){var b=this;return a.grep(this.options.data,function(a){return a[b.header.stateField]})},p.prototype.getAllSelections=function(){var b=this;return a.grep(this.options.data,function(a){return a[b.header.stateField]})},p.prototype.checkAll=function(){this.checkAll_(!0)},p.prototype.uncheckAll=function(){this.checkAll_(!1)},p.prototype.checkInvert=function(){var b=this,c=b.$selectItem.filter(":enabled"),d=c.filter(":checked");c.each(function(){a(this).prop("checked",!a(this).prop("checked"))}),b.updateRows(),b.updateSelected(),b.trigger("uncheck-some",d),d=b.getSelections(),b.trigger("check-some",d)},p.prototype.checkAll_=function(a){var b;a||(b=this.getSelections()),this.$selectAll.add(this.$selectAll_).prop("checked",a),this.$selectItem.filter(":enabled").prop("checked",a),this.updateRows(),a&&(b=this.getSelections()),this.trigger(a?"check-all":"uncheck-all",b)},p.prototype.check=function(a){this.check_(!0,a)},p.prototype.uncheck=function(a){this.check_(!1,a)},p.prototype.check_=function(a,b){var d=this.$selectItem.filter(c('[data-index="%s"]',b)).prop("checked",a);this.data[b][this.header.stateField]=a,this.updateSelected(),this.trigger(a?"check":"uncheck",this.data[b],d)},p.prototype.checkBy=function(a){this.checkBy_(!0,a)},p.prototype.uncheckBy=function(a){this.checkBy_(!1,a)},p.prototype.checkBy_=function(b,d){if(d.hasOwnProperty("field")&&d.hasOwnProperty("values")){var e=this,f=[];a.each(this.options.data,function(g,h){if(!h.hasOwnProperty(d.field))return!1;if(-1!==a.inArray(h[d.field],d.values)){var i=e.$selectItem.filter(":enabled").filter(c('[data-index="%s"]',g)).prop("checked",b);h[e.header.stateField]=b,f.push(h),e.trigger(b?"check":"uncheck",h,i)}}),this.updateSelected(),this.trigger(b?"check-some":"uncheck-some",f)}},p.prototype.destroy=function(){this.$el.insertBefore(this.$container),a(this.options.toolbar).insertBefore(this.$el),this.$container.next().remove(),this.$container.remove(),this.$el.html(this.$el_.html()).css("margin-top","0").attr("class",this.$el_.attr("class")||"")},p.prototype.showLoading=function(){this.$tableLoading.show()},p.prototype.hideLoading=function(){this.$tableLoading.hide()},p.prototype.togglePagination=function(){this.options.pagination=!this.options.pagination;var a=this.$toolbar.find('button[name="paginationSwitch"] i');this.options.pagination?a.attr("class",this.options.iconsPrefix+" "+this.options.icons.paginationSwitchDown):a.attr("class",this.options.iconsPrefix+" "+this.options.icons.paginationSwitchUp),this.updatePagination()},p.prototype.refresh=function(a){a&&a.url&&(this.options.pageNumber=1),this.initServer(a&&a.silent,a&&a.query,a&&a.url),this.trigger("refresh",a)},p.prototype.resetWidth=function(){this.options.showHeader&&this.options.height&&this.fitHeader(),this.options.showFooter&&this.fitFooter()},p.prototype.showColumn=function(a){this.toggleColumn(e(this.columns,a),!0,!0)},p.prototype.hideColumn=function(a){this.toggleColumn(e(this.columns,a),!1,!0)},p.prototype.getHiddenColumns=function(){return a.grep(this.columns,function(a){return!a.visible})},p.prototype.getVisibleColumns=function(){return a.grep(this.columns,function(a){return a.visible})},p.prototype.toggleAllColumns=function(b){if(a.each(this.columns,function(a){this.columns[a].visible=b}),this.initHeader(),this.initSearch(),this.initPagination(),this.initBody(),this.options.showColumns){var c=this.$toolbar.find(".keep-open input").prop("disabled",!1);c.filter(":checked").length<=this.options.minimumCountColumns&&c.filter(":checked").prop("disabled",!0)}},p.prototype.showAllColumns=function(){this.toggleAllColumns(!0)},p.prototype.hideAllColumns=function(){this.toggleAllColumns(!1)},p.prototype.filterBy=function(b){this.filterColumns=a.isEmptyObject(b)?{}:b,this.options.pageNumber=1,this.initSearch(),this.updatePagination()},p.prototype.scrollTo=function(a){return"string"==typeof a&&(a="bottom"===a?this.$tableBody[0].scrollHeight:0),"number"==typeof a&&this.$tableBody.scrollTop(a),"undefined"==typeof a?this.$tableBody.scrollTop():void 0},p.prototype.getScrollPosition=function(){return this.scrollTo()},p.prototype.selectPage=function(a){a>0&&a<=this.options.totalPages&&(this.options.pageNumber=a,this.updatePagination())},p.prototype.prevPage=function(){this.options.pageNumber>1&&(this.options.pageNumber--,this.updatePagination())},p.prototype.nextPage=function(){this.options.pageNumber tr[data-index="%s"]',b));d.next().is("tr.detail-view")===(a?!1:!0)&&d.find("> td > .detail-icon").click()},p.prototype.expandRow=function(a){this.expandRow_(!0,a)},p.prototype.collapseRow=function(a){this.expandRow_(!1,a)},p.prototype.expandAllRows=function(b){if(b){var d=this.$body.find(c('> tr[data-index="%s"]',0)),e=this,f=null,g=!1,h=-1;if(d.next().is("tr.detail-view")?d.next().next().is("tr.detail-view")||(d.next().find(".detail-icon").click(),g=!0):(d.find("> td > .detail-icon").click(),g=!0),g)try{h=setInterval(function(){f=e.$body.find("tr.detail-view").last().find(".detail-icon"),f.length>0?f.click():clearInterval(h)},1)}catch(i){clearInterval(h)}}else for(var j=this.$body.children(),k=0;kthis.$items.length-1||0>b?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){c.to(b)}):d==b?this.pause().cycle():this.slide(b>d?"next":"prev",a(this.$items[b]))},b.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},b.prototype.next=function(){return this.sliding?void 0:this.slide("next")},b.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},b.prototype.slide=function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,g="next"==b?"left":"right",h="next"==b?"first":"last",i=this;if(!e.length){if(!this.options.wrap)return;e=this.$element.find(".item")[h]()}if(e.hasClass("active"))return this.sliding=!1;var j=a.Event("slide.bs.carousel",{relatedTarget:e[0],direction:g});return this.$element.trigger(j),j.isDefaultPrevented()?void 0:(this.sliding=!0,f&&this.pause(),this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid.bs.carousel",function(){var b=a(i.$indicators.children()[i.getActiveIndex()]);b&&b.addClass("active")})),a.support.transition&&this.$element.hasClass("slide")?(e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),d.one(a.support.transition.end,function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger("slid.bs.carousel")},0)}).emulateTransitionEnd(1e3*d.css("transition-duration").slice(0,-1))):(d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger("slid.bs.carousel")),f&&this.cycle(),this)};var c=a.fn.carousel;a.fn.carousel=function(c){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c),g="string"==typeof c?c:f.slide;e||d.data("bs.carousel",e=new b(this,f)),"number"==typeof c?e.to(c):g?e[g]():f.interval&&e.pause().cycle()})},a.fn.carousel.Constructor=b,a.fn.carousel.noConflict=function(){return a.fn.carousel=c,this},a(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(b){var c,d=a(this),e=a(d.attr("data-target")||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"")),f=a.extend({},e.data(),d.data()),g=d.attr("data-slide-to");g&&(f.interval=!1),e.carousel(f),(g=d.attr("data-slide-to"))&&e.data("bs.carousel").to(g),b.preventDefault()}),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var b=a(this);b.carousel(b.data())})})}(jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.DEFAULTS={toggle:!0},b.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},b.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b=a.Event("show.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.$parent&&this.$parent.find("> .panel > .in");if(c&&c.length){var d=c.data("bs.collapse");if(d&&d.transitioning)return;c.collapse("hide"),d||c.data("bs.collapse",null)}var e=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[e](0),this.transitioning=1;var f=function(){this.$element.removeClass("collapsing").addClass("collapse in")[e]("auto"),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return f.call(this);var g=a.camelCase(["scroll",e].join("-"));this.$element.one(a.support.transition.end,a.proxy(f,this)).emulateTransitionEnd(350)[e](this.$element[0][g])}}},b.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var d=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};return a.support.transition?void this.$element[c](0).one(a.support.transition.end,a.proxy(d,this)).emulateTransitionEnd(350):d.call(this)}}},b.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var c=a.fn.collapse;a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c);!e&&f.toggle&&"show"==c&&(c=!c),e||d.data("bs.collapse",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.collapse.Constructor=b,a.fn.collapse.noConflict=function(){return a.fn.collapse=c,this},a(document).on("click.bs.collapse.data-api","[data-toggle=collapse]",function(b){var c,d=a(this),e=d.attr("data-target")||b.preventDefault()||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,""),f=a(e),g=f.data("bs.collapse"),h=g?"toggle":d.data(),i=d.attr("data-parent"),j=i&&a(i);g&&g.transitioning||(j&&j.find('[data-toggle=collapse][data-parent="'+i+'"]').not(d).addClass("collapsed"),d[f.hasClass("in")?"addClass":"removeClass"]("collapsed")),f.collapse(h)})}(jQuery),+function(a){"use strict";function b(b){a(d).remove(),a(e).each(function(){var d=c(a(this)),e={relatedTarget:this};d.hasClass("open")&&(d.trigger(b=a.Event("hide.bs.dropdown",e)),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dropdown",e))})}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}var d=".dropdown-backdrop",e="[data-toggle=dropdown]",f=function(b){a(b).on("click.bs.dropdown",this.toggle)};f.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(''}),b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),b.prototype.constructor=b,b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content")[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},b.prototype.hasContent=function(){return this.getTitle()||this.getContent()},b.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},b.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var c=a.fn.popover;a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof c&&c;(e||"destroy"!=c)&&(e||d.data("bs.popover",e=new b(this,f)),"string"==typeof c&&e[c]())})},a.fn.popover.Constructor=b,a.fn.popover.noConflict=function(){return a.fn.popover=c,this}}(jQuery),+function(a){"use strict";function b(c,d){var e,f=a.proxy(this.process,this);this.$element=a(a(c).is("body")?window:c),this.$body=a("body"),this.$scrollElement=this.$element.on("scroll.bs.scroll-spy.data-api",f),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||(e=a(c).attr("href"))&&e.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.offsets=a([]),this.targets=a([]),this.activeTarget=null,this.refresh(),this.process()}b.DEFAULTS={offset:10},b.prototype.refresh=function(){var b=this.$element[0]==window?"offset":"position";this.offsets=a([]),this.targets=a([]);{var c=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[b]().top+(!a.isWindow(c.$scrollElement.get(0))&&c.$scrollElement.scrollTop()),e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){c.offsets.push(this[0]),c.targets.push(this[1])})}},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,d=c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(b>=d)return g!=(a=f.last()[0])&&this.activate(a);if(g&&b<=e[0])return g!=(a=f[0])&&this.activate(a);for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,a(this.selector).parentsUntil(this.options.target,".active").removeClass("active");var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")};var c=a.fn.scrollspy;a.fn.scrollspy=function(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=c,this},a(window).on("load",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);b.scrollspy(b.data())})})}(jQuery),+function(a){"use strict";var b=function(b){this.element=a(b)};b.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a")[0],f=a.Event("show.bs.tab",{relatedTarget:e});if(b.trigger(f),!f.isDefaultPrevented()){var g=a(d);this.activate(b.parent("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})}}},b.prototype.activate=function(b,c,d){function e(){f.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),g?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var f=c.find("> .active"),g=d&&a.support.transition&&f.hasClass("fade");g?f.one(a.support.transition.end,e).emulateTransitionEnd(150):e(),f.removeClass("in")};var c=a.fn.tab;a.fn.tab=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new b(this)),"string"==typeof c&&e[c]()})},a.fn.tab.Constructor=b,a.fn.tab.noConflict=function(){return a.fn.tab=c,this},a(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(b){b.preventDefault(),a(this).tab("show")})}(jQuery),+function(a){"use strict";var b=function(c,d){this.options=a.extend({},b.DEFAULTS,d),this.$window=a(window).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(c),this.affixed=this.unpin=this.pinnedOffset=null,this.checkPosition()};b.RESET="affix affix-top affix-bottom",b.DEFAULTS={offset:0},b.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(b.RESET).addClass("affix");var a=this.$window.scrollTop(),c=this.$element.offset();return this.pinnedOffset=c.top-a},b.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},b.prototype.checkPosition=function(){if(this.$element.is(":visible")){var c=a(document).height(),d=this.$window.scrollTop(),e=this.$element.offset(),f=this.options.offset,g=f.top,h=f.bottom;"top"==this.affixed&&(e.top+=d),"object"!=typeof f&&(h=g=f),"function"==typeof g&&(g=f.top(this.$element)),"function"==typeof h&&(h=f.bottom(this.$element));var i=null!=this.unpin&&d+this.unpin<=e.top?!1:null!=h&&e.top+this.$element.height()>=c-h?"bottom":null!=g&&g>=d?"top":!1;if(this.affixed!==i){this.unpin&&this.$element.css("top","");var j="affix"+(i?"-"+i:""),k=a.Event(j+".bs.affix");this.$element.trigger(k),k.isDefaultPrevented()||(this.affixed=i,this.unpin="bottom"==i?this.getPinnedOffset():null,this.$element.removeClass(b.RESET).addClass(j).trigger(a.Event(j.replace("affix","affixed"))),"bottom"==i&&this.$element.offset({top:c-h-this.$element.height()}))}}};var c=a.fn.affix;a.fn.affix=function(c){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof c&&c;e||d.data("bs.affix",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.affix.Constructor=b,a.fn.affix.noConflict=function(){return a.fn.affix=c,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var b=a(this),c=b.data();c.offset=c.offset||{},c.offsetBottom&&(c.offset.bottom=c.offsetBottom),c.offsetTop&&(c.offset.top=c.offsetTop),b.affix(c)})})}(jQuery); \ No newline at end of file diff --git a/lifecyclemgr/src/main/webapp/lifecyclemgr/js/brs.js b/lifecyclemgr/src/main/webapp/lifecyclemgr/js/brs.js new file mode 100644 index 00000000..039c7e2d --- /dev/null +++ b/lifecyclemgr/src/main/webapp/lifecyclemgr/js/brs.js @@ -0,0 +1,349 @@ +/* Copyright 2016-2017, Huawei Technologies Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +var url = ""; +$.getJSON("./conf/dataconfig.json", function (jsonData){ + url = jsonData.url +":"+ jsonData.port; + console.log("URL = " + url); +}); + +$('.siteDeleteImg').click(function () { + var data = $(this).parent().parent().parent().find('td:last').find('div:last').html(); + alert(data); + var jsonObj = JSON.parse(data); + for (var i = 0; i < jsonObj.length; i++) { + var obj = jsonObj[i]; + var rowData = [obj.tpName, obj.peName, obj.vlanId, obj.siteCidr, obj.ip]; + $('#underlayTpDataTable').DataTable(); + $('#underlayTpDataTable').dataTable().fnAddData(rowData); + } +}); + + +function deleteSite(objectId) { + var requestUrl = url + "/openoapi/sdnobrs/v1/sites/" + objectId; + $ + .ajax({ + type: "DELETE", + url: requestUrl, + contentType: "application/json", + success: function (jsonobj) { + $('#site').bootstrapTable('remove', { + field: 'id', + values: [objectId] + }); + alert("Delete Site successfull !!!"); + }, + error: function (xhr, ajaxOptions, thrownError) { + alert("Error on deleting site: " + xhr.responseText); + } + }); +} +function deleteLink(objectId) { + var requestUrl = url + "/openoapi/sdnobrs/v1/topological-links/" + objectId; + $ + .ajax({ + type: "DELETE", + url: requestUrl, + contentType: "application/json", + success: function (jsonobj) { + $('#link').bootstrapTable('remove', { + field: 'id', + values: [objectId] + }); + alert("Delete Link successfull !!!"); + }, + error: function (xhr, ajaxOptions, thrownError) { + alert("Error on deleting link : " + xhr.responseText); + } + }); +} + +function deleteNe(objectId) { + var requestUrl = url + "/openoapi/sdnobrs/v1/managed-elements/" + objectId; + $ + .ajax({ + type: "DELETE", + url: requestUrl, + contentType: "application/json", + success: function (jsonobj) { + $('#ne').bootstrapTable('remove', { + field: 'id', + values: [objectId] + }); + alert("Delete NE successfull !!!"); + }, + error: function (xhr, ajaxOptions, thrownError) { + alert("Error on deleting ne : " + xhr.responseText); + } + }); +} + +function deletePort(objectId) { + var requestUrl = url + "/openoapi/sdnobrs/v1/logical-termination-points/" + objectId; + $ + .ajax({ + type: "DELETE", + url: requestUrl, + contentType: "application/json", + success: function (jsonobj) { + $('#port').bootstrapTable('remove', { + field: 'id', + values: [objectId] + }); + alert("Delete Port successfull !!!"); + }, + error: function (xhr, ajaxOptions, thrownError) { + alert("Error on deleting port : " + xhr.responseText); + } + }); +} +function loadSiteData() { + var requestUrl = url + "/openoapi/sdnobrs/v1/sites"; + $ + .ajax({ + type: "GET", + url: requestUrl, + contentType: "application/json", + success: function (jsonobj) { + $('#site').bootstrapTable({ + data: jsonobj.sites + }); + }, + error: function (xhr, ajaxOptions, thrownError) { + alert("Error on getting site data : " + xhr.responseText); + } + }); +} +function loadLinkData() { + var requestUrl = url + "/openoapi/sdnobrs/v1/topological-links"; + $ + .ajax({ + type: "GET", + url: requestUrl, + contentType: "application/json", + success: function (jsonobj) { + $('#link').bootstrapTable({ + data: jsonobj.topologicalLinks + }); + }, + error: function (xhr, ajaxOptions, thrownError) { + alert("Error on getting link data : " + xhr.responseText); + } + }); +} +function loadNeData() { + var requestUrl = url + "/openoapi/sdnobrs/v1/managed-elements"; + $ + .ajax({ + type: "GET", + url: requestUrl, + contentType: "application/json", + success: function (jsonobj) { + $('#ne').bootstrapTable({ + data: jsonobj.managedElements + }); + }, + error: function (xhr, ajaxOptions, thrownError) { + alert("Error on getting ne data : " + xhr.responseText); + } + }); +} +function loadPortData() { + var requestUrl = url + "/openoapi/sdnobrs/v1/logical-termination-points"; + $ + .ajax({ + type: "GET", + url: requestUrl, + contentType: "application/json", + success: function (jsonobj) { + $('#port').bootstrapTable({ + data: jsonobj.logicalTerminationPoints + }); + }, + error: function (xhr, ajaxOptions, thrownError) { + alert("Error on getting port data : " + xhr.responseText); + } + }); +} +$(function () { + $('.creat-btn').click(function () { + /*$('#vmAppDialog').addClass('in').css({'display': 'block'});*/ + $('#vmAppDialog').modal(); + }); + $('.close,.button-previous').click(function () { + $('#vmAppDialog').removeClass('in').css('display', 'none'); + }); + $('.detail-top ul li').click(function () { + $(this).addClass('current').siblings().removeClass('current'); + }); + $('.para').click(function () { + if ($('#serviceTemplateName').val() == '') { + alert('Please choose the service templet!'); + $('#flavorTab').css('display', 'none'); + } else { + $('#flavorTab').css('display', 'block'); + } + $('#basicTab').css('display', 'block'); + }); + $('.basic').click(function () { + $('#flavorTab').css('display', 'none'); + }); + + /*$('.table tbody tr').click(function(){ + $(this).addClass('openoTable_row_selected').siblings().removeClass('openoTable_row_selected'); + });*/ + $('.table tr:odd').addClass('active'); + $('#false').click(function () { + /*$('#vmAppDialog').addClass('in').css({'display': 'block'});*/ + $('#vmAppDialog').modal(); + }); + $('.close,.button-previous').click(function () { + $('#vmAppDialog').removeClass('in').css('display', 'none'); + }); + $('#filterTpLogicalType').click(function () { + $('#filterTpLogicalType_select_popupcontainer').toggleClass('openo-hide'); + $('#filterTpLogicalType').toggleClass('openo-focus'); + var oLeft = $('#open_base_tpL_td6').offset().left; + var oTop = $('#open_base_tpL_td6').offset().top; + var oHeight = $('#open_base_tpL_td6').height(); + $('#filterTpLogicalType_select_popupcontainer').css({'left': oLeft, 'top': oTop + oHeight + 10}); + }); + $('div.openo-select-popup-container>div.openo-select-item>label').click(function () { + var Lvalue = $(this).html(); + $('#filterTpLogicalType_select_input').attr('value', Lvalue); + $('#filterTpLogicalType_select_popupcontainer').addClass('openo-hide'); + $('#filterTpLogicalType').removeClass('openo-focus'); + }); + $.fn.serializeObject = function () { + var o = {}; + var a = this.serializeArray(); + $.each(a, function () { + if (o[this.name] !== undefined) { + if (!o[this.name].push) { + o[this.name] = [o[this.name]]; + } + o[this.name].push(this.value || ''); + } else { + o[this.name] = this.value || ''; + } + }); + return o; + }; + $('#createSite').click(function () { + var formData = JSON.stringify($("#vmAppForm").serializeObject()); + var jsonobj = JSON.parse(formData); + var newJson = {"site": jsonobj}; + formData = JSON.stringify(newJson); + var requestUrl = url + "/openoapi/sdnobrs/v1/sites"; + $ + .ajax({ + type: "POST", + url: requestUrl, + contentType: "application/json", + dataType: "json", + data: formData, + success: function (jsonResp) { + alert("Site saved successfully!!!"); + jsonobj["id"] = jsonResp.site.id; + $('#site').bootstrapTable("append", jsonobj); + $('#vmAppDialog').removeClass('in').css('display', 'none'); + }, + error: function (xhr, ajaxOptions, thrownError) { + alert("Error on page : " + xhr.responseText); + } + }); + }); + + $('#createNe').click(function () { + var formData = JSON.stringify($("#neForm").serializeObject()); + var jsonobj = JSON.parse(formData); + var newJson = {"managedElement": jsonobj}; + formData = JSON.stringify(newJson); + var requestUrl = url + "/openoapi/sdnobrs/v1/managed-elements"; + $ + .ajax({ + type: "POST", + url: requestUrl, + contentType: "application/json", + dataType: "json", + data: formData, + success: function (jsonResp) { + alert("NE saved successfully!!!"); + jsonobj["id"] = jsonResp.managedElement.id; + $('#ne').bootstrapTable("append", jsonobj); + $('#vmAppDialog').removeClass('in').css('display', 'none'); + + }, + error: function (xhr, ajaxOptions, thrownError) { + alert("Error on page : " + xhr.responseText); + } + }); + }); + + $('#createPort').click(function () { + var formData = JSON.stringify($("#portForm").serializeObject()); + var jsonobj = JSON.parse(formData); + var newJson = {"logicalTerminationPoint": jsonobj}; + formData = JSON.stringify(newJson); + var requestUrl = url + "/openoapi/sdnobrs/v1/logical-termination-points"; + $ + .ajax({ + type: "POST", + url: requestUrl, + contentType: "application/json", + dataType: "json", + data: formData, + success: function (jsonResp) { + alert("Port saved successfully!!!"); + //TODO : hide model data window. + jsonobj["id"] = jsonResp.logicalTerminationPoint.id; + $('#port').bootstrapTable("append", jsonobj); + $('#vmAppDialog').removeClass('in').css('display', 'none'); + + }, + error: function (xhr, ajaxOptions, thrownError) { + alert("Error on page : " + xhr.responseText); + } + }); + }); + + $('#createLink').click(function () { + var formData = JSON.stringify($("#linkForm").serializeObject()); + var jsonobj = JSON.parse(formData); + var newJson = {"topologicalLink": jsonobj}; + formData = JSON.stringify(newJson); + var requestUrl = url + "/openoapi/sdnobrs/v1/topological-links"; + $ + .ajax({ + type: "POST", + url: requestUrl, + contentType: "application/json", + dataType: "json", + data: formData, + success: function (jsonResp) { + alert("Link saved successfully!!!"); + jsonobj["id"] = jsonResp.topologicalLink.id; + $('#link').bootstrapTable("append", jsonobj); + $('#vmAppDialog').removeClass('in').css('display', 'none'); + + }, + error: function (xhr, ajaxOptions, thrownError) { + alert("Error on page : " + xhr.responseText); + } + }); + }); + +}) diff --git a/lifecyclemgr/src/main/webapp/lifecyclemgr/js/gsolcm.js b/lifecyclemgr/src/main/webapp/lifecyclemgr/js/gsolcm.js new file mode 100644 index 00000000..09c8dc0e --- /dev/null +++ b/lifecyclemgr/src/main/webapp/lifecyclemgr/js/gsolcm.js @@ -0,0 +1,626 @@ +/* + * Copyright 2016-2017 ZTE Corporation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +var templateParameters = { + changed : true, + // the create params used for ui + paramJsonObj : {} +}; + +var lcmHandler = function() { + this._addOwnEvents(); + jQuery.i18n.properties({ + language : 'en-US', + name : 'lcm-template-parameters-i18n', + path : 'i18n/', + mode : 'map' + }); +}; + +lcmHandler.prototype = { + _addOwnEvents : function() { + $('#createNS').click(this.okAction); + }, + okAction : function() { + if (!checkInputs('create', templateParameters.paramJsonObj)) { + return; + } + var sengMsgObj = collectCreateParamfromUI('', 'create', templateParameters.paramJsonObj); + var gatewayService = '/openoapi/servicegateway/v1/services'; + $.when(createServiceInstance(sengMsgObj)) + .then(function(response) { + if (response.status === 'finished') { + $.when(queryService()).then(function(serviceInstance){ + $('#sai').bootstrapTable("append", serviceInstance); + }); + $('#vmAppDialog').removeClass('in').css('display','none'); + } else { + showErrorMessage('Create service failed',response); + } + }); + } +}; + +/** + * init parameter tab + * @returns + */ +function initParameterTab() { + // Service template was not changed. Do not re-initiate the parameter tab. + if (!templateParameters.changed) { + return; + } + var templateId = $("#svcTempl").val(); + if ('select' === templateId) { + document.getElementById("templateParameterTab").innerHTML = ''; + return; + } + $.when(fetchCreateParameters(templateId)) + .then(function(createParam) { + // set the create param object + templateParameters.paramJsonObj = createParam.parameters; + // convert the create param to UI. + var components = convertCreateParamsToUI('create', createParam.parameters); + document.getElementById("templateParameterTab").innerHTML = components; + templateParameters.changed = false; + }); +} + +/** + * generate the template to create parameters object + * + * @param templateId + * the template id + * @returns + */ +function fetchCreateParameters(templateId) { + //return $.getJSON("./conf/queryCreateParams.json"); + var uri = '/openoapi/servicegateway/v1/createparameters/' + templateId; + return $.ajax({ + type : "GET", + url : uri + }); +} + +/** + * convert the template params obj to html UI string + * + * @param identify the object identify, it should be '' when called + * @return the html component string + */ +function convertCreateParamsToUI(identify, createParam) { + var components = ''; + // convert host to UI + if (undefined != createParam.domainHost && 'enum' === createParam.domainHost.type) { + components = components + + generateParamComponent(createParam.nodeType, identify, + createParam.domainHost, false); + } + // convert own param to UI + createParam.additionalParamForNs + .forEach(function(param) { + components = components + + generateParamComponent(createParam.nodeType, + identify, param, false); + }); + // convert segments to UI + createParam.segments.forEach(function(segment) { + // each segment in a field set. + components = components + '
    ' + + segment.nodeTemplateName + ''; + // the identify for segment + var segmentIdentify = '' == identify ? segment.nodeTemplateName + : identify + '_' + segment.nodeTemplateName; + // convert segment to UI + components = components + + convertCreateParamsToUI(segmentIdentify, segment); + components = components + '
    '; + }); + return components; +} + + +/** + * for each required parameter it could not be empty + * @param identify the identify of a segment + * @param createParam the create param object + * @returns the check result + */ +function checkInputs(identify, createParam) { + //check domain host + if (undefined != createParam.domainHost && 'enum' === createParam.domainHost.type) { + var value = collectParamValue(identify, createParam.domainHost); + if ('select' == value) { + var name = getParamLabel(createParam.nodeType, createParam.domainHost); + alert( name + ' is required.') + return false; + } + } + // check parameters + for(var i= 0; i < createParam.additionalParamForNs.length; i++){ + var param = createParam.additionalParamForNs[i]; + var value = collectParamValue(identify, param); + if(param.required && ('' === value || ('enum' == param.type && 'select' == value))){ + // the param resource key is nodeType.paramName + var name = getParamLabel(createParam.nodeType, param); + alert(name + ' is required.') + return false; + } + } + // get segments param value from UI + var segmentcheckResult = true; + for(var i= 0; i < createParam.segments.length; i++){ + var segment = createParam.segments[i]; + // the identify for segment + var segmentIdentify = '' == identify ? segment.nodeTemplateName + : identify + '_' + segment.nodeTemplateName; + segmentcheckResult = checkInputs(segmentIdentify, segment); + if (!segmentcheckResult) { + break; + } + } + return segmentcheckResult; +} + + +/** + * convert the template params obj to html UI string + * + * @param identify the object identify, it should be different every time + * @return the html component string + */ +function collectCreateParamfromUI(parentHost,identify, createParam) { + // the create params used for create msg + var paramSentObj = { + domainHost:'', + nodeTemplateName:'', + nodeType:'', + segments:[], + additionalParamForNs:{} + }; + // get the domain value + if (undefined != createParam.domainHost && 'enum' === createParam.domainHost.type) { + var domain = collectParamValue(identify, createParam.domainHost); + paramSentObj.domainHost = collectParamValue(identify, createParam.domainHost) + } + //if parent domainHost is not '' and local domain host is'', it should be setted as parent + if('' != parentHost && '' == paramSentObj.domainHost){ + paramSentObj.domainHost = parentHost; + } + paramSentObj.nodeTemplateName = createParam.nodeTemplateName; + paramSentObj.nodeType = createParam.nodeType; + + // get own param value from UI + createParam.additionalParamForNs.forEach(function(param) { + paramSentObj.additionalParamForNs[param.name] = collectParamValue(identify, param); + }); + // get segments param value from UI + createParam.segments.forEach(function(segment) { + // the identify for segment + var segmentIdentify = '' == identify ? segment.nodeTemplateName + : identify + '_' + segment.nodeTemplateName; + var segmentObj = collectCreateParamfromUI(paramSentObj.domainHost, segmentIdentify, segment); + paramSentObj.segments.push(segmentObj); + }); + return paramSentObj; +} + +/** + * get a param value + * @param identify the identify of a segment + * @param param the param object + * @returns the value of the param + */ +function collectParamValue(identify, param) { + var value = $('#' + getParamId(identify, param)).val(); + return value; +} + +/** + * get the param id in ui + * @param identify + * @param param + * @returns + */ +function getParamId(identify, param) { + return '' ===identify ? param.name : identify + '_' + param.name; +} + +/** + * get the resource string of a param. + * @param nodeType node type + * @param param param object + * @returns resource string + */ +function getParamLabel(nodeType, param) { + var name = $.i18n.prop(nodeType + '.' + param.name); + if (name.length === 0 || name.slice(0, 1) === '[') { + name = param.name; + } + return name; +} +/** + * convert combox component + * + * @param inputPara + * @param items + * @param stringReadOnly + * @returns + */ +function generateParamComponent(nodeType, identify, param, strReadOnly) { + // the param resource key is nodeType.paramName + var name = getParamLabel(nodeType, param); + var id = getParamId(identify,param); + var component = ''; + if (param.type === 'string') { + component = '
    ' + + '' + + '
    '+ '
    '; + }else{ + component = component + '"/>'+ '
    '; + } + + } else if (param.type === 'enum') { + component = '
    ' + + '' + + '
    ' + + '
    '; + } + return component; +} + +/** + * transfer the enum range to html body + * @param items the map of the range + * @returns the html string + */ +function transformToOptions(items) { + var options = ''; + var i; + for ( var key in items) { + var option = ''; + options = options + option; + } + return options; +} + +/** + * generate required identify to html string + * @param parameter the parameter object + * @returns the html string + */ +function generateRequiredLabel(parameter) { + var requiredLabel = ''; + if (parameter.required === 'true') { + requiredLabel = '*'; + } + return requiredLabel; +} + +/** + * create service + * @param sengMsgObj the parameters + * @returns + */ +function createServiceInstance(sengMsgObj) { + var defer = $.Deferred(); + var parameter = { + 'service' : { + 'name' : $('#svcName').val(), + 'description' : $('#svcDesc').val(), + 'serviceDefId' : '', //no need now, reserved + 'templateId' : $("#svcTempl").val(), + 'parameters' : sengMsgObj + } + }; + var serviceGatewayUri = '/openoapi/servicegateway/v1/services'; + $.when($.ajax({ + type : "POST", + url : serviceGatewayUri, + contentType : "application/json", + dataType : "json", + data : JSON.stringify(parameter) + })) + .then(function(response) { + return queryProgress('create service', response.service.serviceId,response.service.operationId); + }).then(function(result){ + defer.resolve(result); + }); + return defer; +} + +/** + * + * @param rowId + * @param row + * @returns + */ +function deleteService(rowId, row) { + var deleteHandle = function(result) { + if (result) { + var serviceId = row.serviceId; + var remove = function() { + $('#sai').bootstrapTable('remove', { + field : 'serviceId', + values : [ serviceId ] + }); + }; + var failFun = function(responseDesc) { + $.isLoading("hide"); + showErrorMessage("Delete service failed", responseDesc); + } + $.when(deleteServiceInstance(serviceId)) + .then(function(response) { + if (response.status === 'finished') { + remove(); + } else { + showErrorMessage('Create service failed',response); + } + }); + ; + } + }; + bootbox.confirm("Do you confirm to delete service?", deleteHandle); +} + +/** + * sent delete instance msg + * @param serviceId the service id + * @returns + */ +function deleteServiceInstance(serviceId) { + var defer = $.Deferred(); + var deleteUrl = '/openoapi/servicegateway/v1/services/' + serviceId; + $.when($.ajax({ + type : "DELETE", + url : deleteUrl, + contentType : "application/json", + dataType : "json", + data : JSON.stringify(parameter) + })) + .then(function(response) { + return queryProgress('delete service', serviceId,response.operationId); + }).then(function(result){ + defer.resolve(result); + }); + return defer; +} + +/** + * query progress of the operation + * @param operation the operation string + * @param serviceId the service id + * @param operationId the operation id + * @returns + */ +function queryProgress(operation, serviceId, operationId) { + //show the progress dialog + $( "#idProgressTitle" ).text(operation); + $( "#progressContent" ).text('status:'); + $( "#progressbar" ).attr("style","width: 0%"); + $( "#progressDialog" ).modal({backdrop:'static', keyboard:false}); + //set a timer for query operation + var defer = $.Deferred(); + var queryProgressUril = '/openoapi/servicegateway/v1/services/' + serviceId + '/operations/' + operationId; + var timerDefer = $.Deferred(); + var timeout = 3600000; + var fun = function() { + if (timeout === 0) { + timerDefer.resolve({ + status : 'error', + reason : operation + ' timeout!', + }); + return; + } + timeout = timeout - 1000; + $.when($.ajax({ + type : "GET", + url : gsoServiceUri + })) + .then(function(response) { + //update progress + $( "#progressbar" ).attr("style","width: " + response.operation.progress.toString() + "%"); + $( "#progressValue" ).text(response.operation.progress.toString() + '%'); + $( "#progressContent" ).text('status: ' + response.operation.operationContent); + if (response.operation.result == 'finished' || response.operation.result == 'error') { + timerDefer.resolve({ + status : response.operation.result , + reason : response.operation.reason + }); + } + }); + }; + var timerId = setInterval(fun, 1000); + $.when(timerDefer) + .then(function(responseDesc) { + clearInterval(timerId); + $('#progressDialog').modal('hide'); + defer.resolve({ + status : responseDesc.status, + reason : responseDesc.reason, + serviceId:serviceId + }); + + }); + return defer; +} + + +/** + * convert the input parameters to ui + * @param identify the identify of a segment + * @param createParam the create param object + * @returns the check result + */ +function convertInputsToUI(parentHost, identify, serviceParam) { + var components = ''; + // convert host to UI + if (undefined != serviceParam.domainHost && '' != serviceParam.domainHost && parentHost != serviceParam.domainHost) { + var param ={ + name:'domainHost', + type:'string', + defaultValue:getShowVal('domainHost', serviceParam.domainHost), + required:false + } + components = components + generateParamComponent(serviceParam.nodeType, identify, + param, true); + } + // convert own param to UI + for(var key in serviceParam.additionalParamForNs ){ + var param ={ + name: key, + type:'string', + defaultValue:getShowVal(key, serviceParam.additionalParamForNs[key]), + required:false + } + components = components + generateParamComponent(serviceParam.nodeType, + identify, param, true); + } + // convert segments to UI + serviceParam.segments.forEach(function(segment) { + // each segment in a field set. + components = components + '
    ' + + segment.nodeTemplateName + ''; + // the identify for segment + var segmentIdentify = '' == identify ? segment.nodeTemplateName + : identify + '_' + segment.nodeTemplateName; + // convert segment to UI + components = components + + convertInputsToUI(serviceParam.domainHost, segmentIdentify, segment); + components = components + '
    '; + }); + return components; +} + +function getShowVal(paramName, paramValue){ + if(paramName == 'domainHost'){ + return getHostNameByVal(paramValue); + } + else if(paramName == 'location'){ + return getVimNameById(paramValue); + } + else if(paramName == 'sdncontroller'){ + return getSdnControllerNameById(paramValue); + } + else{ + return paramValue; + } +} + +function getHostNameByVal(hostDomain){ + var requestUrl ="/openoapi/servicegateway/v1/domains"; + var returnObj = ''; + $.ajax({ + type : "GET", + async: false, + url : requestUrl, + contentType : "application/json", + success : function(jsonobj) { + jsonobj.forEach(function(host){ + if(host.host == hostDomain){ + returnObj = host.name; + } + }); + }, + error : function(xhr, ajaxOptions, thrownError) { + alert("Error on getting link data : " + xhr.responseText); + } + }); + return returnObj; +} + +//get the vim name by id. +function getVimNameById(vimId){ + var requestUrl ="/openoapi/extsys/v1/vims/" + vimId; + var returnObj; + $ + .ajax({ + type : "GET", + async: false, + url : requestUrl, + contentType : "application/json", + success : function(jsonobj) { + // TODO return according to the json data received. + returnObj = jsonobj; + }, + error : function(xhr, ajaxOptions, thrownError) { + alert("Error on getting link data : " + xhr.responseText); + } + }); + return returnObj; +} + +//get the sdn controller name by id. +function getSdnControllerNameById(sdnControllerId){ + var requestUrl ="/openoapi/extsys/v1/sdncontrollers/" + sdnControllerId; + var returnObj; + $ + .ajax({ + type : "GET", + async: false, + url : requestUrl, + contentType : "application/json", + success : function(jsonobj) { + // TODO return according to the json data received. + returnObj = jsonobj; + }, + error : function(xhr, ajaxOptions, thrownError) { + alert("Error on getting link data : " + xhr.responseText); + } + }); + return returnObj; +} + + + +/** + * show error dialog + * @param title the title + * @param result the result + * @returns + */ +function showErrorMessage(title, result) { + //show the error dialog + $( "#errorDialogTitle" ).text(title); + $( "#errorDialogReason" ).text(result.reason); + $( "#errorDialog" ).modal({backdrop:'static', keyboard:false}); +} + +/** + * generate the template to create parameters object + * + * @param templateId the template id + * @returns + */ +function queryService(serviceId) { + var uri = '/openoapi/servicegateway/v1/services/' + serviceId; + return $.ajax({ + type : "GET", + url : uri + }); +} diff --git a/lifecyclemgr/src/main/webapp/lifecyclemgr/js/jquery-1.11.2.min.js b/lifecyclemgr/src/main/webapp/lifecyclemgr/js/jquery-1.11.2.min.js new file mode 100644 index 00000000..e6a051d0 --- /dev/null +++ b/lifecyclemgr/src/main/webapp/lifecyclemgr/js/jquery-1.11.2.min.js @@ -0,0 +1,4 @@ +/*! jQuery v1.11.2 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */ +!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l="1.11.2",m=function(a,b){return new m.fn.init(a,b)},n=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,o=/^-ms-/,p=/-([\da-z])/gi,q=function(a,b){return b.toUpperCase()};m.fn=m.prototype={jquery:l,constructor:m,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&&m.isArray(a)?a:[]):f=a&&m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!m.isArray(a)&&a-parseFloat(a)+1>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&m.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(r(Object(a))?m.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||m.guid++,e):void 0},now:function(){return+new Date},support:k}),m.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function r(a){var b=a.length,c=m.type(a);return"function"===c||m.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var s=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=hb(),z=hb(),A=hb(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N=M.replace("w","w#"),O="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+N+"))|)"+L+"*\\]",P=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+O+")*)|.*)\\)|)",Q=new RegExp(L+"+","g"),R=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),S=new RegExp("^"+L+"*,"+L+"*"),T=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),U=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),V=new RegExp(P),W=new RegExp("^"+N+"$"),X={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+O),PSEUDO:new RegExp("^"+P),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},eb=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(fb){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function gb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],k=b.nodeType,"string"!=typeof a||!a||1!==k&&9!==k&&11!==k)return d;if(!e&&p){if(11!==k&&(f=_.exec(a)))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return H.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName)return H.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=1!==k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+rb(o[l]);w=ab.test(a)&&pb(b.parentNode)||b,x=o.join(",")}if(x)try{return H.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function hb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ib(a){return a[u]=!0,a}function jb(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function kb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function lb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function nb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function ob(a){return ib(function(b){return b=+b,ib(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function pb(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=gb.support={},f=gb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=gb.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=g.documentElement,e=g.defaultView,e&&e!==e.top&&(e.addEventListener?e.addEventListener("unload",eb,!1):e.attachEvent&&e.attachEvent("onunload",eb)),p=!f(g),c.attributes=jb(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=jb(function(a){return a.appendChild(g.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(g.getElementsByClassName),c.getById=jb(function(a){return o.appendChild(a).id=u,!g.getElementsByName||!g.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(g.querySelectorAll))&&(jb(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),jb(function(a){var b=g.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&jb(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",P)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?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)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===g||a.ownerDocument===v&&t(v,a)?-1:b===g||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===g?-1:b===g?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return lb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?lb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},g):n},gb.matches=function(a,b){return gb(a,null,null,b)},gb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return gb(b,n,null,[a]).length>0},gb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},gb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},gb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},gb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=gb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=gb.selectors={cacheLength:50,createPseudo:ib,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===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]||gb.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]&&gb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(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){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=gb.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.replace(Q," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},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){while(p){l=b;while(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){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||gb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ib(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ib(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?ib(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ib(function(a){return function(b){return gb(a,b).length>0}}),contains:ib(function(a){return a=a.replace(cb,db),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ib(function(a){return W.test(a||"")||gb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("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===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.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.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.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"))||"text"===b.toLowerCase())},first:ob(function(){return[0]}),last:ob(function(a,b){return[b-1]}),eq:ob(function(a,b,c){return[0>c?c+b:c]}),even:ob(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:ob(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:ob(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:ob(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function sb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function tb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ub(a,b,c){for(var d=0,e=b.length;e>d;d++)gb(a,b[d],c);return c}function vb(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function wb(a,b,c,d,e,f){return d&&!d[u]&&(d=wb(d)),e&&!e[u]&&(e=wb(e,f)),ib(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ub(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:vb(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=vb(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=vb(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function xb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=sb(function(a){return a===b},h,!0),l=sb(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[sb(tb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return wb(i>1&&tb(m),i>1&&rb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&xb(a.slice(i,e)),f>e&&xb(a=a.slice(e)),f>e&&rb(a))}m.push(c)}return tb(m)}function yb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=F.call(i));s=vb(s)}H.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&gb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?ib(f):f}return h=gb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=xb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,yb(e,d)),f.selector=a}return f},i=gb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&pb(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&rb(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&pb(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=jb(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),jb(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||kb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&jb(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||kb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),jb(function(a){return null==a.getAttribute("disabled")})||kb(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),gb}(a);m.find=s,m.expr=s.selectors,m.expr[":"]=m.expr.pseudos,m.unique=s.uniqueSort,m.text=s.getText,m.isXMLDoc=s.isXML,m.contains=s.contains;var t=m.expr.match.needsContext,u=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/^.[^:#\[\.,]*$/;function w(a,b,c){if(m.isFunction(b))return m.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return m.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(v.test(b))return m.filter(b,a,c);b=m.filter(b,a)}return m.grep(a,function(a){return m.inArray(a,b)>=0!==c})}m.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?m.find.matchesSelector(d,a)?[d]:[]:m.find.matches(a,m.grep(b,function(a){return 1===a.nodeType}))},m.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(m(a).filter(function(){for(b=0;e>b;b++)if(m.contains(d[b],this))return!0}));for(b=0;e>b;b++)m.find(a,d[b],c);return c=this.pushStack(e>1?m.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(w(this,a||[],!1))},not:function(a){return this.pushStack(w(this,a||[],!0))},is:function(a){return!!w(this,"string"==typeof a&&t.test(a)?m(a):a||[],!1).length}});var x,y=a.document,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=m.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||x).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof m?b[0]:b,m.merge(this,m.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:y,!0)),u.test(c[1])&&m.isPlainObject(b))for(c in b)m.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=y.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return x.find(a);this.length=1,this[0]=d}return this.context=y,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):m.isFunction(a)?"undefined"!=typeof x.ready?x.ready(a):a(m):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),m.makeArray(a,this))};A.prototype=m.fn,x=m(y);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};m.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!m(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),m.fn.extend({has:function(a){var b,c=m(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(m.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=t.test(a)||"string"!=typeof a?m(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&m.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?m.unique(f):f)},index:function(a){return a?"string"==typeof a?m.inArray(this[0],m(a)):m.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(m.unique(m.merge(this.get(),m(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}m.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return m.dir(a,"parentNode")},parentsUntil:function(a,b,c){return m.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return m.dir(a,"nextSibling")},prevAll:function(a){return m.dir(a,"previousSibling")},nextUntil:function(a,b,c){return m.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return m.dir(a,"previousSibling",c)},siblings:function(a){return m.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return m.sibling(a.firstChild)},contents:function(a){return m.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:m.merge([],a.childNodes)}},function(a,b){m.fn[a]=function(c,d){var e=m.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=m.filter(d,e)),this.length>1&&(C[a]||(e=m.unique(e)),B.test(a)&&(e=e.reverse())),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return m.each(a.match(E)||[],function(a,c){b[c]=!0}),b}m.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):m.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){m.each(b,function(b,c){var d=m.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&m.each(arguments,function(a,c){var d;while((d=m.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?m.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},m.extend({Deferred:function(a){var b=[["resolve","done",m.Callbacks("once memory"),"resolved"],["reject","fail",m.Callbacks("once memory"),"rejected"],["notify","progress",m.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return m.Deferred(function(c){m.each(b,function(b,f){var g=m.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&m.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?m.extend(a,d):d}},e={};return d.pipe=d.then,m.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=0,c=d.call(arguments),e=c.length,f=1!==e||a&&m.isFunction(a.promise)?e:0,g=1===f?a:m.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&m.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;m.fn.ready=function(a){return m.ready.promise().done(a),this},m.extend({isReady:!1,readyWait:1,holdReady:function(a){a?m.readyWait++:m.ready(!0)},ready:function(a){if(a===!0?!--m.readyWait:!m.isReady){if(!y.body)return setTimeout(m.ready);m.isReady=!0,a!==!0&&--m.readyWait>0||(H.resolveWith(y,[m]),m.fn.triggerHandler&&(m(y).triggerHandler("ready"),m(y).off("ready")))}}});function I(){y.addEventListener?(y.removeEventListener("DOMContentLoaded",J,!1),a.removeEventListener("load",J,!1)):(y.detachEvent("onreadystatechange",J),a.detachEvent("onload",J))}function J(){(y.addEventListener||"load"===event.type||"complete"===y.readyState)&&(I(),m.ready())}m.ready.promise=function(b){if(!H)if(H=m.Deferred(),"complete"===y.readyState)setTimeout(m.ready);else if(y.addEventListener)y.addEventListener("DOMContentLoaded",J,!1),a.addEventListener("load",J,!1);else{y.attachEvent("onreadystatechange",J),a.attachEvent("onload",J);var c=!1;try{c=null==a.frameElement&&y.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!m.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}I(),m.ready()}}()}return H.promise(b)};var K="undefined",L;for(L in m(k))break;k.ownLast="0"!==L,k.inlineBlockNeedsLayout=!1,m(function(){var a,b,c,d;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",k.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(d))}),function(){var a=y.createElement("div");if(null==k.deleteExpando){k.deleteExpando=!0;try{delete a.test}catch(b){k.deleteExpando=!1}}a=null}(),m.acceptData=function(a){var b=m.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var M=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,N=/([A-Z])/g;function O(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(N,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:M.test(c)?m.parseJSON(c):c}catch(e){}m.data(a,b,c)}else c=void 0}return c}function P(a){var b;for(b in a)if(("data"!==b||!m.isEmptyObject(a[b]))&&"toJSON"!==b)return!1; +return!0}function Q(a,b,d,e){if(m.acceptData(a)){var f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=m.extend(j[k],b):j[k].data=m.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[m.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[m.camelCase(b)])):f=g,f}}function R(a,b,c){if(m.acceptData(a)){var d,e,f=a.nodeType,g=f?m.cache:a,h=f?a[m.expando]:m.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){m.isArray(b)?b=b.concat(m.map(b,m.camelCase)):b in d?b=[b]:(b=m.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!P(d):!m.isEmptyObject(d))return}(c||(delete g[h].data,P(g[h])))&&(f?m.cleanData([a],!0):k.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}m.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?m.cache[a[m.expando]]:a[m.expando],!!a&&!P(a)},data:function(a,b,c){return Q(a,b,c)},removeData:function(a,b){return R(a,b)},_data:function(a,b,c){return Q(a,b,c,!0)},_removeData:function(a,b){return R(a,b,!0)}}),m.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=m.data(f),1===f.nodeType&&!m._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=m.camelCase(d.slice(5)),O(f,d,e[d])));m._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){m.data(this,a)}):arguments.length>1?this.each(function(){m.data(this,a,b)}):f?O(f,a,m.data(f,a)):void 0},removeData:function(a){return this.each(function(){m.removeData(this,a)})}}),m.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=m._data(a,b),c&&(!d||m.isArray(c)?d=m._data(a,b,m.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=m.queue(a,b),d=c.length,e=c.shift(),f=m._queueHooks(a,b),g=function(){m.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),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 m._data(a,c)||m._data(a,c,{empty:m.Callbacks("once memory").add(function(){m._removeData(a,b+"queue"),m._removeData(a,c)})})}}),m.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthh;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement("input"),b=y.createElement("div"),c=y.createDocumentFragment();if(b.innerHTML="
    a",k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName("tbody").length,k.htmlSerialize=!!b.getElementsByTagName("link").length,k.html5Clone="<:nav>"!==y.createElement("nav").cloneNode(!0).outerHTML,a.type="checkbox",a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML="",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML="",k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,k.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){k.noCloneEvent=!1}),b.cloneNode(!0).click()),null==k.deleteExpando){k.deleteExpando=!0;try{delete b.test}catch(d){k.deleteExpando=!1}}}(),function(){var b,c,d=y.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(k[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),k[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var X=/^(?:input|select|textarea)$/i,Y=/^key/,Z=/^(?:mouse|pointer|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=/^([^.]*)(?:\.(.+)|)$/;function ab(){return!0}function bb(){return!1}function cb(){try{return y.activeElement}catch(a){}}m.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=m.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof m===K||a&&m.event.triggered===a.type?void 0:m.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(E)||[""],h=b.length;while(h--)f=_.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=m.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=m.event.special[o]||{},l=m.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&m.expr.match.needsContext.test(e),namespace:p.join(".")},i),(n=g[o])||(n=g[o]=[],n.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?n.splice(n.delegateCount++,0,l):n.push(l),m.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m.hasData(a)&&m._data(a);if(r&&(k=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=_.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=m.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,n=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=n.length;while(f--)g=n[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(n.splice(f,1),g.selector&&n.delegateCount--,l.remove&&l.remove.call(a,g));i&&!n.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||m.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)m.event.remove(a,o+b[j],c,d,!0);m.isEmptyObject(k)&&(delete r.handle,m._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,n,o=[d||y],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||y,3!==d.nodeType&&8!==d.nodeType&&!$.test(p+m.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[m.expando]?b:new m.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:m.makeArray(c,[b]),k=m.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!m.isWindow(d)){for(i=k.delegateType||p,$.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||y)&&o.push(l.defaultView||l.parentWindow||a)}n=0;while((h=o[n++])&&!b.isPropagationStopped())b.type=n>1?i:k.bindType||p,f=(m._data(h,"events")||{})[b.type]&&m._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&m.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&m.acceptData(d)&&g&&d[p]&&!m.isWindow(d)){l=d[g],l&&(d[g]=null),m.event.triggered=p;try{d[p]()}catch(r){}m.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=m.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(m._data(this,"events")||{})[a.type]||[],k=m.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=m.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((m.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?m(c,this).index(i)>=0:m.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h]","i"),hb=/^\s+/,ib=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,jb=/<([\w:]+)/,kb=/\s*$/g,rb={option:[1,""],legend:[1,"
    ","
    "],area:[1,"",""],param:[1,"",""],thead:[1,"","
    "],tr:[2,"","
    "],col:[2,"","
    "],td:[3,"","
    "],_default:k.htmlSerialize?[0,"",""]:[1,"X
    ","
    "]},sb=db(y),tb=sb.appendChild(y.createElement("div"));rb.optgroup=rb.option,rb.tbody=rb.tfoot=rb.colgroup=rb.caption=rb.thead,rb.th=rb.td;function ub(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==K?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==K?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||m.nodeName(d,b)?f.push(d):m.merge(f,ub(d,b));return void 0===b||b&&m.nodeName(a,b)?m.merge([a],f):f}function vb(a){W.test(a.type)&&(a.defaultChecked=a.checked)}function wb(a,b){return m.nodeName(a,"table")&&m.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function xb(a){return a.type=(null!==m.find.attr(a,"type"))+"/"+a.type,a}function yb(a){var b=pb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function zb(a,b){for(var c,d=0;null!=(c=a[d]);d++)m._data(c,"globalEval",!b||m._data(b[d],"globalEval"))}function Ab(a,b){if(1===b.nodeType&&m.hasData(a)){var c,d,e,f=m._data(a),g=m._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)m.event.add(b,c,h[c][d])}g.data&&(g.data=m.extend({},g.data))}}function Bb(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!k.noCloneEvent&&b[m.expando]){e=m._data(b);for(d in e.events)m.removeEvent(b,d,e.handle);b.removeAttribute(m.expando)}"script"===c&&b.text!==a.text?(xb(b).text=a.text,yb(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),k.html5Clone&&a.innerHTML&&!m.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&W.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}m.extend({clone:function(a,b,c){var d,e,f,g,h,i=m.contains(a.ownerDocument,a);if(k.html5Clone||m.isXMLDoc(a)||!gb.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(tb.innerHTML=a.outerHTML,tb.removeChild(f=tb.firstChild)),!(k.noCloneEvent&&k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||m.isXMLDoc(a)))for(d=ub(f),h=ub(a),g=0;null!=(e=h[g]);++g)d[g]&&Bb(e,d[g]);if(b)if(c)for(h=h||ub(a),d=d||ub(f),g=0;null!=(e=h[g]);g++)Ab(e,d[g]);else Ab(a,f);return d=ub(f,"script"),d.length>0&&zb(d,!i&&ub(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,l,n=a.length,o=db(b),p=[],q=0;n>q;q++)if(f=a[q],f||0===f)if("object"===m.type(f))m.merge(p,f.nodeType?[f]:f);else if(lb.test(f)){h=h||o.appendChild(b.createElement("div")),i=(jb.exec(f)||["",""])[1].toLowerCase(),l=rb[i]||rb._default,h.innerHTML=l[1]+f.replace(ib,"<$1>")+l[2],e=l[0];while(e--)h=h.lastChild;if(!k.leadingWhitespace&&hb.test(f)&&p.push(b.createTextNode(hb.exec(f)[0])),!k.tbody){f="table"!==i||kb.test(f)?""!==l[1]||kb.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)m.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}m.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),k.appendChecked||m.grep(ub(p,"input"),vb),q=0;while(f=p[q++])if((!d||-1===m.inArray(f,d))&&(g=m.contains(f.ownerDocument,f),h=ub(o.appendChild(f),"script"),g&&zb(h),c)){e=0;while(f=h[e++])ob.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=m.expando,j=m.cache,l=k.deleteExpando,n=m.event.special;null!=(d=a[h]);h++)if((b||m.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)n[e]?m.event.remove(d,e):m.removeEvent(d,e,g.handle);j[f]&&(delete j[f],l?delete d[i]:typeof d.removeAttribute!==K?d.removeAttribute(i):d[i]=null,c.push(f))}}}),m.fn.extend({text:function(a){return V(this,function(a){return void 0===a?m.text(this):this.empty().append((this[0]&&this[0].ownerDocument||y).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?m.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||m.cleanData(ub(c)),c.parentNode&&(b&&m.contains(c.ownerDocument,c)&&zb(ub(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&m.cleanData(ub(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&m.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return m.clone(this,a,b)})},html:function(a){return V(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(fb,""):void 0;if(!("string"!=typeof a||mb.test(a)||!k.htmlSerialize&&gb.test(a)||!k.leadingWhitespace&&hb.test(a)||rb[(jb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(ib,"<$1>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(m.cleanData(ub(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,m.cleanData(ub(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,n=this,o=l-1,p=a[0],q=m.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&nb.test(p))return this.each(function(c){var d=n.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(i=m.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=m.map(ub(i,"script"),xb),f=g.length;l>j;j++)d=i,j!==o&&(d=m.clone(d,!0,!0),f&&m.merge(g,ub(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,m.map(g,yb),j=0;f>j;j++)d=g[j],ob.test(d.type||"")&&!m._data(d,"globalEval")&&m.contains(h,d)&&(d.src?m._evalUrl&&m._evalUrl(d.src):m.globalEval((d.text||d.textContent||d.innerHTML||"").replace(qb,"")));i=c=null}return this}}),m.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){m.fn[a]=function(a){for(var c,d=0,e=[],g=m(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),m(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Cb,Db={};function Eb(b,c){var d,e=m(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:m.css(e[0],"display");return e.detach(),f}function Fb(a){var b=y,c=Db[a];return c||(c=Eb(a,b),"none"!==c&&c||(Cb=(Cb||m(" + + + +
    + + + +
    + + + + + + \ No newline at end of file diff --git a/lifecyclemgr/src/main/webapp/lifecyclemgr/overlayvpn.html b/lifecyclemgr/src/main/webapp/lifecyclemgr/overlayvpn.html new file mode 100644 index 00000000..058ff4f5 --- /dev/null +++ b/lifecyclemgr/src/main/webapp/lifecyclemgr/overlayvpn.html @@ -0,0 +1,291 @@ + + + + + + + + + + + + + + + + + + + + + + + +
    + +

    Overlay VPN

    + + +
    +
    +
    +
    +
    + + + + + + + + + + + + +
    NameDescriptionThin CPEPort:Vlan IDDC NameVPCVPC CIDRAction
    + + + + + + + + \ No newline at end of file diff --git a/lifecyclemgr/src/main/webapp/lifecyclemgr/overlayvpn_topo.html b/lifecyclemgr/src/main/webapp/lifecyclemgr/overlayvpn_topo.html new file mode 100644 index 00000000..5744c57c --- /dev/null +++ b/lifecyclemgr/src/main/webapp/lifecyclemgr/overlayvpn_topo.html @@ -0,0 +1,55 @@ + + + + + + + + + +
    +
    +
    + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/lifecyclemgr/src/main/webapp/lifecyclemgr/sdnovpn.html b/lifecyclemgr/src/main/webapp/lifecyclemgr/sdnovpn.html new file mode 100644 index 00000000..fd5301f5 --- /dev/null +++ b/lifecyclemgr/src/main/webapp/lifecyclemgr/sdnovpn.html @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + +
    +
    + +
    +
    + + + + + + + + + +
    + + +
    +
    + +
    + +
    + +
    + +
    +
    + +
    +
    +
    +
    + + \ No newline at end of file diff --git a/lifecyclemgr/src/main/webapp/lifecyclemgr/underlayvpn.html b/lifecyclemgr/src/main/webapp/lifecyclemgr/underlayvpn.html new file mode 100644 index 00000000..634901f6 --- /dev/null +++ b/lifecyclemgr/src/main/webapp/lifecyclemgr/underlayvpn.html @@ -0,0 +1,291 @@ + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    Underlay VPN

    + + +
    +
    +
    +
    + + + + + + + + + +
    NameStateDescriptionAction
    +
    +
    +
    +
    + +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    + + \ No newline at end of file diff --git a/login/pom.xml b/login/pom.xml new file mode 100644 index 00000000..172d8d7c --- /dev/null +++ b/login/pom.xml @@ -0,0 +1,41 @@ + + + + + org.openo.client.gui + client-gui + 1.1.0-SNAPSHOT + + + 4.0.0 + login + 1.1.0-SNAPSHOT + war + client-gui/login + + + + + org.apache.maven.plugins + maven-war-plugin + + false + + + + + diff --git a/login/src/main/webapp/login/html/login.html b/login/src/main/webapp/login/html/login.html new file mode 100644 index 00000000..fefdfdd5 --- /dev/null +++ b/login/src/main/webapp/login/html/login.html @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + +demo + + diff --git a/monitor/pom.xml b/monitor/pom.xml new file mode 100644 index 00000000..aa5fbb67 --- /dev/null +++ b/monitor/pom.xml @@ -0,0 +1,41 @@ + + + + + org.openo.client.gui + client-gui + 1.1.0-SNAPSHOT + + + 4.0.0 + monitor + 1.1.0-SNAPSHOT + war + client-gui/monitor + + + + + org.apache.maven.plugins + maven-war-plugin + + false + + + + + diff --git a/monitor/src/main/webapp/monitor/css/dac.css b/monitor/src/main/webapp/monitor/css/dac.css new file mode 100644 index 00000000..c07e3e25 --- /dev/null +++ b/monitor/src/main/webapp/monitor/css/dac.css @@ -0,0 +1,220 @@ +/** + * Copyright 2016-2017, CMCC Technologies Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +body { + color: #333; + font-size: 14px; + font-family: "Microsoft yahei", arial; + background-color: #ffffff !important; +} + + +a { + + text-decoration: none !important; +} + + + +.titlefont { + font-size: 16px; +} + + + +.container-fluid { + background-color: #fff; +} + + +div.separator div { + text-align: center; + line-height: 0; +} + +.row{ + margin-left: 0px; + margin-right: 0px; + margin-bottom: 10px; + margin-top: 10px; +} + + +p[tooltip], div[tooltip], td[tooltip], span[tooltip]{ + overflow: hidden; + text-overflow: ellipsis; + white-space:nowrap; +} + +.control-label .required { + color: #e02222; + font-size: 12px; + padding-left: 2px; +} + +.stats_box { + display: inline-block; + list-style: none outside none; + margin-left: 0; + margin-top: 10px; + padding: 0; + float: left; +} + + + +.stats_box .policyDiv{ + background: #eee; + box-shadow: 0 0 0 1px #f8f8f8 inset,0 0 0 1px #ccc; + display: inline-block; + line-height: 18px; + margin: 0 10px 10px; + padding: 0 10px; + float: left; + height: 105px; +} + + + +.sparkline { + min-width: 60px; + /* border-right: 1px solid #dcdcdc; */ + /* box-shadow: 1px 0 0 0 #fff; */ + float: left; + /* margin-right: 9pt; */ + padding: 0px 24px 0 34px; + height: 90px; +} + +.sparkline i{ +color:#5bc0de; +} + + + + + + + +.animated-panel { + -webkit-animation-duration: .5s; + animation-duration: .5s; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; +} + +/* +.panel-footer { + padding: 6px 15px; +}*/ + + +/*卡片面板样式*/ +.animated-panel { + -webkit-animation-duration: .5s; + animation-duration: .5s; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; +} + +.hpanel { + background-color: none; + border: none; + box-shadow: none; + margin-bottom: 35px; + +} + +.hpanel .panel-body { + border: 1px solid #e4e5e7; + border-radius: 2px; + padding: 20px; + position: relative; +} +.h-200 { + min-height: 220px; +} +.m-t-xl { + margin-top: 20px; +} +.text-success { + color: #0d638f; +} + +.hpanel_div_list{ + height:30px; +} + +.hpanel > .panel-footer { + color: inherit; + border: 1px solid #e4e5e7; + border-top: none; + font-size: 90%; + background: #f7f9fa; + height:40px; + padding: 5px 15px; +} + +.color_cloud{ + color:#BAB9B9; +} +.stats-title{ + +} + +h3{ + margin-top: 10px; + margin-bottom: 40px; + font-weight: 200; + color: #357ebd +} + +.blue-font{ + color:#428bca; +} + +.hpanel > .panel-footer .pull-right a{ + margin-left: 5px; +} + +.font-bold { + font-weight: 600; + margin-bottom: 15px; +} + +.hpanel_show{ + cursor: pointer; + background-color: #f7f9fa; +} + +.hpanel > .panel-footer .pull-right .btn { + min-width: 30px !important; +} + + +div[data-name="cond_zone"] div { + background-color: #fff; + margin-bottom: 15px; +} + +span.response_throbber { + background-image: url('../images/throbber.gif'); + width: 128px; + height: 16px; + display: block; + clear: none; + float: left; + margin-top: 50px; +} \ No newline at end of file diff --git a/monitor/src/main/webapp/monitor/css/monitorSetting.css b/monitor/src/main/webapp/monitor/css/monitorSetting.css new file mode 100644 index 00000000..d513464b --- /dev/null +++ b/monitor/src/main/webapp/monitor/css/monitorSetting.css @@ -0,0 +1,167 @@ +/** + * Copyright 2016-2017, CMCC Technologies Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +body { + color: #333; + font-family: "Microsoft yahei", Verdana, Arial, Helvetica, sans-serif !important; + padding: 0px !important; + margin: 0px !important; + direction: ltr; + background-color: #ffffff !important; +} + +a { + text-decoration: none !important; + cursor: pointer; +} + +.label{ + font-size: 80%; +} + +.row{ + margin-left: 0px; + margin-right: 0px; + padding-left: 0px; + padding-right: 0px; +} + +.chart_row{ + + padding-left:5px; + padding-right: 5px; +} + +.titlefont { + font-size: 16px; +} + +.container-fluid { + background-color: #fff; +} + +.blue-font { + color: #428bca; +} + + + +.separator-line { + height: 1px; + width: 100%; + background: #ddd; + overflow: hidden; + margin-bottom: 15px; + margin-top: 6px; + opacity: 0.6; +} + + + + + +.main { + + overflow: hidden; + margin-bottom: 10px; + border: 1px solid #e3e3e3; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + padding-top: 10px; + padding-right: 10px; +} + +.panel-tools { + display: inline-block; + float: right; + margin-top: 0; + padding: 0; + position: relative; +} + +.panel-tools a { + margin-left: 5px; + color: #9d9fa2; + cursor: pointer; +} + +.panel-tools a:hover{ + color: #34495e; + text-decoration: none; +} + + +.timeline-badge { + width: 100px; + height: 100px; + border-radius: 50% 50% 50% 50%; + text-align: center; + font-size: 50px; + line-height: 100px; + color: #fff; + background-color: #999999; +} +.timeline-badge.info { + background-color: #378AE8 !important; +} + +.collapseContent ul { + padding-left: 0; + list-style: none; +} + +.collapseContent ul li{ + height:40px; + font-size: 15px; +} + +#MonitorContent{ + padding-top: 30px; + padding-bottom: 20px; +} + +.border-right { + border-right: 1px solid #e4e5e7; +} + +.tipArea { + border-bottom: 1px solid #d4d4d4; + width: 85%; + text-align: center; + margin-bottom: 15px; + margin-left: 30px; + font-weight: bold; +} +.monitor-icon{ + + width:180px; + float:left; + padding-left:40px + +} + +.proxy_div{ + float:left; + padding-left:20px + +} + +#MonitorContent b{ + margin-right: 5px; +} \ No newline at end of file diff --git a/monitor/src/main/webapp/monitor/dacList.html b/monitor/src/main/webapp/monitor/dacList.html new file mode 100644 index 00000000..fc2299e4 --- /dev/null +++ b/monitor/src/main/webapp/monitor/dacList.html @@ -0,0 +1,250 @@ + + + + + + + + + + + + + + + +
    + +
    +
    + DAC Manage +
    +
    + + return + +
    + +
    +
    + + + + +
    +
    + +
    +
    + + + +
    +
    +
    +
    + +
    +
    + +
    +
    +

    {{dac.nodeLabel}}

    +
    IP Address:{{dac.ipAddress}}
    +
    Note:{{dac.note}}
    +
    +
    + + +
    +
    + + + +
    + + +
    +
    +
    + total + + records + +
    +
    +
    +
    + +
    + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/monitor/src/main/webapp/monitor/i18n/umc-monitor-iui-i18n-en-US.properties b/monitor/src/main/webapp/monitor/i18n/umc-monitor-iui-i18n-en-US.properties new file mode 100644 index 00000000..1ff919b3 --- /dev/null +++ b/monitor/src/main/webapp/monitor/i18n/umc-monitor-iui-i18n-en-US.properties @@ -0,0 +1,102 @@ +# +# Copyright 2016-2017, CMCC Technologies Co., Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +com_zte_openo_umc_monitor_monitorList_titeName=Monitor Para List +com_zte_openo_umc_monitor_monitorList_dac_manage= DAC Manage +com_zte_openo_umc_monitor_monitorList_monitor_sn=SN +com_zte_openo_umc_monitor_monitorList_monitor_name=Display Name +com_zte_openo_umc_monitor_monitorList_monitor_ipaddress=IP Address +com_zte_openo_umc_monitor_monitorList_monitor_type=Type +com_zte_openo_umc_monitor_monitorList_total=total +com_zte_openo_umc_monitor_monitorList_records=records +com_zte_openo_umc_monitor_monitorList_monitor_dacip=DAC +com_zte_openo_umc_monitor_monitorList_monitor_opr=Operation + + +com_zte_openo_umc_monitor_return=return +com_zte_openo_umc_monitor_dac_label=Node Label +com_zte_openo_umc_monitor_dac_ipaddress=IP Address +com_zte_openo_umc_monitor_dac_note=Note +com_zte_openo_umc_monitor_btn_save=Save +com_zte_openo_umc_monitor_btn_cancel=Cancel +com_zte_openo_umc_monitor_dac_register=Register DAC +com_zte_openo_umc_monitor_dac_edit=Edit DAC +com_zte_openo_umc_monitor_dac_panel_ipaddress=IP Address: +com_zte_openo_umc_monitor_dac_panel_note=Note: + +com_zte_openo_umc_monitor_dac_register_repeat_errInfo=DAC IP: {0} has been registerd +com_zte_openo_umc_monitor_dac_register_check_Info=check IPAddress and save DAC ,please wait +com_zte_openo_umc_monitor_dac_register_successInfo=DAC save success +com_zte_openo_umc_monitor_dac_update_successInfo=DAC update success +com_zte_openo_umc_monitor_dac_delete_sureInfo=Are you sure delete this DAC? +com_zte_openo_umc_monitor_dac_delete_successInfo=DAC delete success +com_zte_openo_umc_monitor_dac_query_failInfo=query DAC Info fail: +com_zte_openo_umc_monitor_dac_save_failInfo=DAC save fail: +com_zte_openo_umc_monitor_dac_delete_failInfo=DAC delete fail: +com_zte_openo_umc_monitor_tip=Tip: +com_zte_openo_umc_monitor_dac_label_empty_errInfo=please input Node Label +com_zte_openo_umc_monitor_dac_ipaddress_empty_errInfo=please input IP address + +com_zte_openo_umc_monitor_monitorsetting_delete=Delete +com_zte_openo_umc_monitor_monitorsetting_ipaddress=IP Address +com_zte_openo_umc_monitor_monitorsetting_dac=DAC +com_zte_openo_umc_monitor_monitorsetting_user=User +com_zte_openo_umc_monitor_monitorsetting_password=Password +com_zte_openo_umc_monitor_monitorsetting_protocol=Protocol +com_zte_openo_umc_monitor_monitorsetting_port=Port +com_zte_openo_umc_monitor_monitorsetting_version=Version +com_zte_openo_umc_monitor_monitorsetting_snmpport=SNMP Port +com_zte_openo_umc_monitor_monitorsetting_snmpversion=SNMP Version +com_zte_openo_umc_monitor_monitorsetting_snmpcommunity=SNMP Community + +com_zte_openo_umc_monitor_monitorsetting_titlename=Monitor Para Setting +com_zte_openo_umc_monitor_btn_monitorset=Monitor Set +com_zte_openo_umc_monitor_monitorsetting_ipaddress_format_errInfo=Please input the correct IP address +com_zte_openo_umc_monitor_monitorsetting_user_empty_errInfo=please input Login User +com_zte_openo_umc_monitor_monitorsetting_password_empty_errInfo=please input Login Password +com_zte_openo_umc_monitor_monitorsetting_dac_empty_errInfo=please select DAC IP +com_zte_openo_umc_monitor_monitorsetting_protocol_empty_errInfo=please select Login Protocol +com_zte_openo_umc_monitor_monitorsetting_ipaddress_empty_errInfo=please input IP address +com_zte_openo_umc_monitor_monitorsetting_port_empty_errInfo=please input Login Port +com_zte_openo_umc_monitor_monitorsetting_name_empty_errInfo=please input Node Label + +com_zte_openo_umc_monitor_monitorsetting_query_list_errInfo=query monitor List fail +com_zte_openo_umc_monitor_monitorsetting_query_monitor_errInfo=query monitor Instance fail +com_zte_openo_umc_monitor_monitorsetting_monitor_checkInfo=Monitor Set saveing...,please wait +com_zte_openo_umc_monitor_monitorsetting_monitor_save_failInfo=Monitor Set save fail +com_zte_openo_umc_monitor_monitorsetting_monitor_save_successInfo=Monitor Set save success +com_zte_openo_umc_monitor_monitorsetting_dac_query_failInfo=query DAC Info fail: +com_zte_openo_umc_monitor_monitorsetting_task_checkInfo=Monitor Task updating...,please wait +com_zte_openo_umc_monitor_monitorsetting_monitor_task_failInfo=Monitor Task update fail: + + +openo-umc-monitor-iui-table-sLengthMenu=View _MENU_ records +openo-umc-monitor-iui-table-sZeroRecords=No matching records found +openo-umc-monitor-iui-table-sInfo= | Found total _TOTAL_ records +openo-umc-monitor-iui-table-sInfoEmpty=No records found to show +openo-umc-monitor-iui-table-sGroupActions=_TOTAL_ records selected: +openo-umc-monitor-iui-table-sAjaxRequestGeneralError=Could not complete request. Please check your internet connection. +openo-umc-monitor-iui-table-sEmptyTable=No data available in table +openo-umc-monitor-iui-table-sPrevious=Prev +openo-umc-monitor-iui-table-sNext=Next +openo-umc-monitor-iui-table-sPage=Page +openo-umc-monitor-iui-table-sPageOf=of +com_zte_openo_umc_monitor_monitorsetting_agentIP=Agent Ip +com_zte_openo_umc_monitor_monitorsetting_agentUsername=Agent Username +com_zte_openo_umc_monitor_monitorsetting_agentPassword=Agent Password +com_zte_openo_umc_monitor_monitorsetting_agentProtocol=Agent Protocol +com_zte_openo_umc_monitor_monitorsetting_agentPort=Agent Port +com_zte_openo_umc_monitor_monitorsetting_ppMaxCount=PP MaxCount + diff --git a/monitor/src/main/webapp/monitor/images/License.txt b/monitor/src/main/webapp/monitor/images/License.txt new file mode 100644 index 00000000..8e698ecb --- /dev/null +++ b/monitor/src/main/webapp/monitor/images/License.txt @@ -0,0 +1,362 @@ +THIS LICENSE FILE CONTAINS THE LICENSE APPLICABLE DEPENDING ON THE TYPE OF CONTRIBUTIONS. + +APACHE LICENSE 2 IS APPLICABLE FOR SOURCE CODE, CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL FOR DOCUMENTATION + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + + +Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. + +"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. + +2. Grant of Copyright License. + +Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. + +Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. + +You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: + +You must give any other recipients of the Work or Derivative Works a copy of this License; and You must cause any modified files to carry prominent notices stating that You changed the files; and You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. + +5. Submission of Contributions. + +Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. + +6. Trademarks. + +This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. + +Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. + +In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. + +While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +Attribution 4.0 International + +https://creativecommons.org/licenses/by/4.0/legalcode + +Creative Commons Corporation ("Creative Commons") is not a law firm and does not provide legal services or legal advice. Distribution of Creative Commons public licenses does not create a lawyer-client or other relationship. Creative Commons makes its licenses and related information available on an "as-is" basis. Creative Commons gives no warranties regarding its licenses, any material licensed under their terms and conditions, or any related information. Creative Commons disclaims all liability for damages resulting from their use to the fullest extent possible. + +Using Creative Commons Public Licenses + +Creative Commons public licenses provide a standard set of terms and conditions that creators and other rights holders may use to share original works of authorship and other material subject to copyright and certain other rights specified in the public license below. The following considerations are for informational purposes only, are not exhaustive, and do not form part of our licenses. + + Considerations for licensors: Our public licenses are + intended for use by those authorized to give the public + permission to use material in ways otherwise restricted by + copyright and certain other rights. Our licenses are + irrevocable. Licensors should read and understand the terms + and conditions of the license they choose before applying it. + Licensors should also secure all rights necessary before + applying our licenses so that the public can reuse the + material as expected. Licensors should clearly mark any + material not subject to the license. This includes other CC- + licensed material, or material used under an exception or + limitation to copyright. More considerations for licensors: + wiki.creativecommons.org/Considerations_for_licensors + Considerations for the public: By using one of our public + licenses, a licensor grants the public permission to use the + licensed material under specified terms and conditions. If + the licensor's permission is not necessary for any reason--for + example, because of any applicable exception or limitation to + copyright--then that use is not regulated by the license. Our + licenses grant only permissions under copyright and certain + other rights that a licensor has authority to grant. Use of + the licensed material may still be restricted for other + reasons, including because others have copyright or other + rights in the material. A licensor may make special requests, + such as asking that all changes be marked or described. + Although not required by our licenses, you are encouraged to + respect those requests where reasonable. More_considerations + for the public: + wiki.creativecommons.org/Considerations_for_licensees +Creative Commons Attribution 4.0 International Public License + +By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions. + + +Section 1 -- Definitions. + + a. Adapted Material means material subject to Copyright and Similar + Rights that is derived from or based upon the Licensed Material + and in which the Licensed Material is translated, altered, + arranged, transformed, or otherwise modified in a manner requiring + permission under the Copyright and Similar Rights held by the + Licensor. For purposes of this Public License, where the Licensed + Material is a musical work, performance, or sound recording, + Adapted Material is always produced where the Licensed Material is + synched in timed relation with a moving image. + b. Adapter's License means the license You apply to Your Copyright + and Similar Rights in Your contributions to Adapted Material in + accordance with the terms and conditions of this Public License. + c. Copyright and Similar Rights means copyright and/or similar rights + closely related to copyright including, without limitation, + performance, broadcast, sound recording, and Sui Generis Database + Rights, without regard to how the rights are labeled or + categorized. For purposes of this Public License, the rights + specified in Section 2(b)(1)-(2) are not Copyright and Similar + Rights. + d. Effective Technological Measures means those measures that, in the + absence of proper authority, may not be circumvented under laws + fulfilling obligations under Article 11 of the WIPO Copyright + Treaty adopted on December 20, 1996, and/or similar international + agreements. + e. Exceptions and Limitations means fair use, fair dealing, and/or + any other exception or limitation to Copyright and Similar Rights + that applies to Your use of the Licensed Material. + f. Licensed Material means the artistic or literary work, database, + or other material to which the Licensor applied this Public + License. + g. Licensed Rights means the rights granted to You subject to the + terms and conditions of this Public License, which are limited to + all Copyright and Similar Rights that apply to Your use of the + Licensed Material and that the Licensor has authority to license. + h. Licensor means the individual(s) or entity(ies) granting rights + under this Public License. + i. Share means to provide material to the public by any means or + process that requires permission under the Licensed Rights, such + as reproduction, public display, public performance, distribution, + dissemination, communication, or importation, and to make material + available to the public including in ways that members of the + public may access the material from a place and at a time + individually chosen by them. + j. Sui Generis Database Rights means rights other than copyright + resulting from Directive 96/9/EC of the European Parliament and of + the Council of 11 March 1996 on the legal protection of databases, + as amended and/or succeeded, as well as other essentially + equivalent rights anywhere in the world. + k. You means the individual or entity exercising the Licensed Rights + under this Public License. Your has a corresponding meaning. + +Section 2 -- Scope. + + a. License grant. + 1. Subject to the terms and conditions of this Public License, + the Licensor hereby grants You a worldwide, royalty-free, + non-sublicensable, non-exclusive, irrevocable license to + exercise the Licensed Rights in the Licensed Material to: + a. reproduce and Share the Licensed Material, in whole or + in part; and + b. produce, reproduce, and Share Adapted Material. + 2. Exceptions and Limitations. For the avoidance of doubt, where + Exceptions and Limitations apply to Your use, this Public + License does not apply, and You do not need to comply with + its terms and conditions. + 3. Term. The term of this Public License is specified in Section + 6(a). + 4. Media and formats; technical modifications allowed. The + Licensor authorizes You to exercise the Licensed Rights in + all media and formats whether now known or hereafter created, + and to make technical modifications necessary to do so. The + Licensor waives and/or agrees not to assert any right or + authority to forbid You from making technical modifications + necessary to exercise the Licensed Rights, including + technical modifications necessary to circumvent Effective + Technological Measures. For purposes of this Public License, + simply making modifications authorized by this Section 2(a) + (4) never produces Adapted Material. + 5. Downstream recipients. + a. Offer from the Licensor -- Licensed Material. Every + recipient of the Licensed Material automatically + receives an offer from the Licensor to exercise the + Licensed Rights under the terms and conditions of this + Public License. + b. No downstream restrictions. You may not offer or impose + any additional or different terms or conditions on, or + apply any Effective Technological Measures to, the + Licensed Material if doing so restricts exercise of the + Licensed Rights by any recipient of the Licensed + Material. + 6. No endorsement. Nothing in this Public License constitutes or + may be construed as permission to assert or imply that You + are, or that Your use of the Licensed Material is, connected + with, or sponsored, endorsed, or granted official status by, + the Licensor or others designated to receive attribution as + provided in Section 3(a)(1)(A)(i). + b. Other rights. + 1. Moral rights, such as the right of integrity, are not + licensed under this Public License, nor are publicity, + privacy, and/or other similar personality rights; however, to + the extent possible, the Licensor waives and/or agrees not to + assert any such rights held by the Licensor to the limited + extent necessary to allow You to exercise the Licensed + Rights, but not otherwise. + 2. Patent and trademark rights are not licensed under this + Public License. + 3. To the extent possible, the Licensor waives any right to + collect royalties from You for the exercise of the Licensed + Rights, whether directly or through a collecting society + under any voluntary or waivable statutory or compulsory + licensing scheme. In all other cases the Licensor expressly + reserves any right to collect such royalties. + +Section 3 -- License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the following conditions. + + a. Attribution. + 1. If You Share the Licensed Material (including in modified + form), You must: + a. retain the following if it is supplied by the Licensor + with the Licensed Material: + i. identification of the creator(s) of the Licensed + Material and any others designated to receive + attribution, in any reasonable manner requested by + the Licensor (including by pseudonym if + designated); + ii. a copyright notice; + iii. a notice that refers to this Public License; + iv. a notice that refers to the disclaimer of + warranties; + v. a URI or hyperlink to the Licensed Material to the + extent reasonably practicable; + b. indicate if You modified the Licensed Material and + retain an indication of any previous modifications; and + c. indicate the Licensed Material is licensed under this + Public License, and include the text of, or the URI or + hyperlink to, this Public License. + 2. You may satisfy the conditions in Section 3(a)(1) in any + reasonable manner based on the medium, means, and context in + which You Share the Licensed Material. For example, it may be + reasonable to satisfy the conditions by providing a URI or + hyperlink to a resource that includes the required + information. + 3. If requested by the Licensor, You must remove any of the + information required by Section 3(a)(1)(A) to the extent + reasonably practicable. + 4. If You Share Adapted Material You produce, the Adapter's + License You apply must not prevent recipients of the Adapted + Material from complying with this Public License. + +Section 4 -- Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material: + + a. for the avoidance of doubt, Section 2(a)(1) grants You the right + to extract, reuse, reproduce, and Share all or a substantial + portion of the contents of the database; + b. if You include all or a substantial portion of the database + contents in a database in which You have Sui Generis Database + Rights, then the database in which You have Sui Generis Database + Rights (but not its individual contents) is Adapted Material; and + c. You must comply with the conditions in Section 3(a) if You Share + all or a substantial portion of the contents of the database. +For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights. + + +Section 5 -- Disclaimer of Warranties and Limitation of Liability. + + a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE + EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS + AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF + ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, + IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, + WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, + ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT + KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT + ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. + b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE + TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, + NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, + INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, + COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR + USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR + DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR + IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + c. The disclaimer of warranties and limitation of liability provided + above shall be interpreted in a manner that, to the extent + possible, most closely approximates an absolute disclaimer and + waiver of all liability. + +Section 6 -- Term and Termination. + + a. This Public License applies for the term of the Copyright and + Similar Rights licensed here. However, if You fail to comply with + this Public License, then Your rights under this Public License + terminate automatically. + b. Where Your right to use the Licensed Material has terminated under + Section 6(a), it reinstates: + 1. automatically as of the date the violation is cured, provided + it is cured within 30 days of Your discovery of the + violation; or + 2. upon express reinstatement by the Licensor. + For the avoidance of doubt, this Section 6(b) does not affect any + right the Licensor may have to seek remedies for Your violations + of this Public License. + c. For the avoidance of doubt, the Licensor may also offer the + Licensed Material under separate terms or conditions or stop + distributing the Licensed Material at any time; however, doing so + will not terminate this Public License. + d. Sections 1, 5, 6, 7, and 8 survive termination of this Public + License. + +Section 7 -- Other Terms and Conditions. + + a. The Licensor shall not be bound by any additional or different + terms or conditions communicated by You unless expressly agreed. + b. Any arrangements, understandings, or agreements regarding the + Licensed Material not stated herein are separate from and + independent of the terms and conditions of this Public License. + +Section 8 -- Interpretation. + + a. For the avoidance of doubt, this Public License does not, and + shall not be interpreted to, reduce, limit, restrict, or impose + conditions on any use of the Licensed Material that could lawfully + be made without permission under this Public License. + b. To the extent possible, if any provision of this Public License is + deemed unenforceable, it shall be automatically reformed to the + minimum extent necessary to make it enforceable. If the provision + cannot be reformed, it shall be severed from this Public License + without affecting the enforceability of the remaining terms and + conditions. + c. No term or condition of this Public License will be waived and no + failure to comply consented to unless expressly agreed to by the + Licensor. + d. Nothing in this Public License constitutes or may be interpreted + as a limitation upon, or waiver of, any privileges and immunities + that apply to the Licensor or You, including from the legal + processes of any jurisdiction or authority. +Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the "Licensor." The text of the Creative Commons public licenses is dedicated to the public domain under the CC0 Public Domain Dedication. Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at creativecommons.org/policies, Creative Commons does not authorize the use of the trademark "Creative Commons" or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses. + +Creative Commons may be contacted at creativecommons.org. \ No newline at end of file diff --git a/openo-portal/portal-monitor/src/main/webapp/monitor/images/throbber.gif b/monitor/src/main/webapp/monitor/images/throbber.gif similarity index 100% rename from openo-portal/portal-monitor/src/main/webapp/monitor/images/throbber.gif rename to monitor/src/main/webapp/monitor/images/throbber.gif diff --git a/monitor/src/main/webapp/monitor/js/dacController.js b/monitor/src/main/webapp/monitor/js/dacController.js new file mode 100644 index 00000000..07aab1ce --- /dev/null +++ b/monitor/src/main/webapp/monitor/js/dacController.js @@ -0,0 +1,275 @@ +/* + * Copyright 2016-2017, CMCC Technologies Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +var vm = avalon + .define({ + $id : "dacController", + $queryDACsRestUrl : '/openoapi/umc/v1/monitor/dacs', + server_rtn:{ + info_block:false, + warning_block:false, + rtn_info:"" + }, + dacLoading:false, + dacChecking:false, + dacInfoArray : [], + dacInfo:{ + oid:"", + moc:"", + nodeLabel : '', + ipAddress : '', + note : '' + }, + dacDlgInfo:{ + titleName:"", + saveType:"" + }, + initDAC:function(){ + vm.dacLoading=true; + + $.ajax({ + "type": 'get', + "url": vm.$queryDACsRestUrl, + "dataType": "json", + success: function (resp) { + vm.dacInfoArray = (resp==null)?[]:resp; + vm.dacInfoArray.sort(function(a,b){return a.nodeLabel>b.nodeLabel?1:-1}); + }, + error: function(XMLHttpRequest, textStatus, errorThrown) { + // bootbox.alert("query DAC Info fail:"+":"+errorThrown); + monitorUtil.growl($.i18n.prop('com_zte_openo_umc_monitor_dac_query_failInfo')+errorThrown,"danger"); + return; + }, + complete:function(){ + vm.dacLoading=false; + } + }); + }, + testDAC:function(){ + vm.server_rtn.warning_block=false; + vm.server_rtn.info_block=true; + vm.server_rtn.rtn_info="DAC Access Test Pass"; + }, + addDAC:function(){ + + vm.dacInfo.oid=""; + vm.dacInfo.moc="it.dac"; + vm.dacInfo.nodeLabel=""; + vm.dacInfo.ipAddress=""; + vm.dacInfo.note=""; + + vm.dacDlgInfo.saveType = "add"; + vm.dacDlgInfo.titleName=$.i18n.prop('com_zte_openo_umc_monitor_dac_register'); + vm.server_rtn.warning_block=false; + vm.server_rtn.info_block=false; + + + $(".form-group").each(function () { + $(this).removeClass('has-success'); + $(this).removeClass('has-error'); + $(this).find(".help-block[id]").remove(); + }); + $("#dacDlg").modal("show"); + }, + saveDAC : function() { + success.hide(); + error.hide(); + if (form.valid() == false) { + return false; + } + + vm.server_rtn.warning_block=false; + vm.server_rtn.info_block=true; + vm.server_rtn.rtn_info=' '+$.i18n.prop('com_zte_openo_umc_monitor_dac_register_check_Info'); + + + var data= JSON.stringify({ + "oid":vm.dacInfo.oid, + "moc": vm.dacInfo.moc, + "nodeLabel":vm.dacInfo.nodeLabel, + "ipAddress":vm.dacInfo.ipAddress, + "note":vm.dacInfo.note + }); + + if(vm.dacDlgInfo.saveType=="add") + { + vm.dacChecking=true; + for(var i=0;ib.nodeLabel?1:-1}); + $('#dacDlg').modal('hide'); + monitorUtil.growl($.i18n.prop('com_zte_openo_umc_monitor_dac_register_successInfo'),"success"); + vm.dacChecking=false; + } + else{ + vm.server_rtn.warning_block=true; + vm.server_rtn.info_block=false; + vm.server_rtn.rtn_info= resp.info; + vm.dacChecking=false; + } + + + }, + error: function(XMLHttpRequest, textStatus, errorThrown) { + + vm.server_rtn.warning_block=true; + vm.server_rtn.info_block=false; + vm.server_rtn.rtn_info= $.i18n.prop('com_zte_openo_umc_monitor_dac_save_failInfo')+errorThrown; + vm.dacChecking=false; + + } + }); + } + else{ + + $.ajax({ + "type": 'PUT', + "url": vm.$queryDACsRestUrl, + "data" :data, + "dataType": "json", + "contentType":"application/json", + success: function (resp) { + if(resp.result=="SUCCESS"){ + for(var i=0;i  Loadding...", + "sLengthMenu": $.i18n.prop("openo-umc-monitor-iui-table-sLengthMenu"), + "sZeroRecords": $.i18n.prop("openo-umc-monitor-iui-table-sZeroRecords"), + "sInfo": "" + $.i18n.prop("openo-umc-monitor-iui-table-sInfo"), + "sInfoEmpty": $.i18n.prop("openo-umc-monitor-iui-table-sInfoEmpty"), + "sGroupActions": $.i18n.prop("openo-umc-monitor-iui-table-sGroupActions"), + "sAjaxRequestGeneralError": $.i18n.prop("openo-umc-monitor-iui-table-sAjaxRequestGeneralError"), + "sEmptyTable": $.i18n.prop("openo-umc-monitor-iui-table-sEmptyTable"), + "oPaginate": { + "sPrevious": $.i18n.prop("openo-umc-monitor-iui-table-sPrevious"), + "sNext": $.i18n.prop("openo-umc-monitor-iui-table-sNext"), + "sPage": $.i18n.prop("openo-umc-monitor-iui-table-sPage"), + "sPageOf": $.i18n.prop("openo-umc-monitor-iui-table-sPageOf") + } + }, + + $monitorListRestUrl :'/openoapi/umc/v1/monitor/monitorinfos', + $monitorInstanceRestUrl :'/openoapi/umc/v1/monitor/monitorinfo/', + $queryDacsRestUrl : '/openoapi/umc/v1/monitor/dacs', + $updateMonitorTaskRestUrl : '/openoapi/umc/v1/monitor/monitortask/', + + $loginProtocol: { + selectItems : [ + { + cond_value : 'SSH', + name :"SSH" + }, + { + cond_value : 'TELNET', + name : "TELNET" + } + + ] + }, + dac: { + selectItems : [] + }, + + monitorSettingDlgInfo:{ + titleName:"", + saveType:"" + }, + queryMonitorList : function() { + + $.ajax({ + "type": 'get', + "url": vm.$monitorListRestUrl, + "dataType": "json", + "success": function (resp) { + for(index in resp) + { + var monitorInfo=resp[index] + var customPara={}; + if(monitorInfo.customPara!=""){ + customPara=JSON.parse(monitorInfo.customPara); + if(typeof(customPara.PROXYIP) == "undefined") + { + customPara.PROXYIP="127.0.0.1"; + } + } + else{ + customPara={PROXYIP:"127.0.0.1"}; + } + monitorInfo.customPara=customPara; + } + + vm.resource.monitorList = resp; + + $('#monitorManagerTable').DataTable({ + "oLanguage": vm.dataTableLanguage, + "sDom": '<"top"rt><"bottom"lip>', + "sPaginationType": "bootstrap_extended", + "bSort": false + }); + + }, + error: function(XMLHttpRequest, textStatus, errorThrown) { + monitorUtil.growl($.i18n.prop('com_zte_openo_umc_monitor_monitorsetting_query_list_errInfo')+errorThrown,"danger"); + } + + }); + + + }, + queryMonitorInstance : function(oid){ + + vm.monitorInfo.oid=oid; + vm.monitorUrl=vm.$monitorInstanceRestUrl+oid; + + $.ajax({ + "type": 'GET', + "url": vm.monitorUrl, + "dataType": "json", + "success": function (resp) { + + var monitorInfo=resp; + var customPara={}; + if(monitorInfo.customPara!=""){ + customPara=JSON.parse(monitorInfo.customPara); + if(typeof(customPara.PROXYIP) == "undefined") + { + customPara.PROXYIP="127.0.0.1"; + } + } + else{ + customPara={PROXYIP:"127.0.0.1"}; + } + monitorInfo.customPara=customPara; + vm.monitorInfo=monitorInfo; + + vm.oldmonitorInfo.ipAddress=monitorInfo.ipAddress; + vm.oldmonitorInfo.label=monitorInfo.label; + vm.oldmonitorInfo.customPara=customPara; + + + + }, + error: function(XMLHttpRequest, textStatus, errorThrown) { + monitorUtil.growl($.i18n.prop('com_zte_openo_umc_monitor_monitorsetting_query_monitor_errInfo')+errorThrown,"danger"); + } + + + }); + + }, + + deleteMonitorInfo : function(oid){ + vm.monitorInfo.oid=oid; + vm.monitorUrl=vm.$monitorInstanceRestUrl+oid; + + $.ajax({ + "type": 'DELETE', + "url": vm.monitorUrl, + "dataType": "json", + "success": function (resp) { + vm.gotoMonitorListPage(); + }, + error: function(XMLHttpRequest, textStatus, errorThrown) { + monitorUtil.growl($.i18n.prop('com_zte_openo_umc_monitor_monitorsetting_query_monitor_errInfo')+errorThrown,"danger"); + } + + + }); + + }, + updateMonitorSet:function(){ + + + vm.monitorSettingDlgInfo.titleName=$.i18n.prop('com_zte_openo_umc_monitor_btn_monitorset'); + vm.server_rtn.warning_block=false; + vm.server_rtn.info_block=false; + + $(".form-group").each(function () { + $(this).removeClass('has-success'); + $(this).removeClass('has-error'); + $(this).find(".help-block[id]").remove(); + }); + + if(vm.monitorInfo.customPara.PROXYIP=="" && vm.dac.selectItems.length>0){ + vm.monitorInfo.customPara.PROXYIP=vm.dac.selectItems[0].ipAddress; + } + + if(vm.monitorInfo.customPara.PROTOCOL==""){ + vm.monitorInfo.customPara.PROTOCOL="SSH"; + vm.monitorInfo.customPara.PORT="22"; + } + + $("#monitorSettingDlg").modal("show"); + }, + testMonitorSet:function(){ + vm.server_rtn.warning_block=false; + vm.server_rtn.info_block=true; + vm.server_rtn.rtn_info="Monitor Set Access Test Pass"; + }, + saveMonitorSet : function() { + success.hide(); + error.hide(); + if (form.valid() == false) { + return false; + } + var propertyNames=vm.monitorInfo.customPara.$propertyNames.split("­"); + var isPropertyUnEqual=false; + for(index in propertyNames) + { + var name=propertyNames[index] + if(vm.oldmonitorInfo.customPara[name]!=vm.monitorInfo.customPara[name]) + { + isPropertyUnEqual=true; + break; + } + } + // judge monitorInfo whether change + if( vm.oldmonitorInfo.ipAddress!=vm.monitorInfo.ipAddress || + isPropertyUnEqual){ + + vm.server_rtn.warning_block=false; + vm.server_rtn.info_block=true; + vm.server_rtn.rtn_info=$.i18n.prop('com_zte_openo_umc_monitor_monitorsetting_monitor_checkInfo'); + var customPara=JSON.stringify(vm.monitorInfo.customPara.$model); + $.ajax({ + "type": 'POST', + "url": vm.monitorUrl, + "data": JSON.stringify({ + "ipAddress": vm.monitorInfo.ipAddress, + "oid": vm.monitorInfo.oid, + "neTypeId": vm.monitorInfo.neTypeId, + "label": vm.monitorInfo.label, + "origin": vm.monitorInfo.origin, + "extendPara": vm.monitorInfo.extendPara, + "customPara": customPara + }), + "dataType": "json", + "contentType" : "application/json", + success: function (resp) { + // judge PROXYIP whether change + + if(vm.oldmonitorInfo.customPara.PROXYIP!=vm.monitorInfo.customPara.PROXYIP){ + vm.ifPROXYIPChange=1; + } + else{ + vm.ifPROXYIPChange=0; + } + + vm.updateMonitorTask(); + + vm.oldmonitorInfo.ipAddress=vm.monitorInfo.ipAddress; + vm.oldmonitorInfo.label=vm.monitorInfo.label; + var customPara=vm.monitorInfo.customPara.$model; + vm.oldmonitorInfo.customPara=customPara; + + + }, + error: function(XMLHttpRequest, textStatus, errorThrown) { + + vm.server_rtn.warning_block=true; + vm.server_rtn.info_block=false; + vm.server_rtn.rtn_info= $.i18n.prop('com_zte_openo_umc_monitor_monitorsetting_monitor_save_failInfo')+errorThrown; + } + }); + + } + else if(vm.oldmonitorInfo.label!=vm.monitorInfo.label){ + //only change label label + + //save new monitorInfo + + vm.server_rtn.warning_block=false; + vm.server_rtn.info_block=true; + vm.server_rtn.rtn_info=$.i18n.prop('com_zte_openo_umc_monitor_monitorsetting_monitor_checkInfo'); + var customPara=JSON.stringify(vm.monitorInfo.customPara.$model); + + $.ajax({ + "type": 'POST', + "url": vm.monitorUrl, + "data": JSON.stringify({ + "ipAddress": vm.monitorInfo.ipAddress, + "oid": vm.monitorInfo.oid, + "neTypeId": vm.monitorInfo.neTypeId, + "label": vm.monitorInfo.label, + "origin": vm.monitorInfo.origin, + "extendPara": vm.monitorInfo.extendPara, + "customPara": customPara + }), + "dataType": "json", + "contentType" : "application/json", + success: function (resp) { + if(resp.result=="SUCCESS"){ + + vm.oldmonitorInfo.label=vm.monitorInfo.label; + $('#monitorSettingDlg').modal('hide'); + monitorUtil.growl($.i18n.prop('com_zte_openo_umc_monitor_monitorsetting_monitor_save_successInfo'),"success"); + + + } + else{ + vm.server_rtn.warning_block=true; + vm.server_rtn.info_block=false; + vm.server_rtn.rtn_info= $.i18n.prop('com_zte_openo_umc_monitor_monitorsetting_monitor_save_failInfo'); + } + + }, + error: function(XMLHttpRequest, textStatus, errorThrown) { + + vm.server_rtn.warning_block=true; + vm.server_rtn.info_block=false; + vm.server_rtn.rtn_info= $.i18n.prop('com_zte_openo_umc_monitor_monitorsetting_monitor_save_failInfo')+errorThrown; + } + }); + + } + else{ + //no change + $('#monitorSettingDlg').modal('hide'); + monitorUtil.growl($.i18n.prop('com_zte_openo_umc_monitor_monitorsetting_monitor_save_successInfo'),"success"); + } + + + + + + }, + cancelMonitorSet: function() { + + vm.monitorInfo.ipAddress=vm.oldmonitorInfo.ipAddress; + vm.monitorInfo.name=vm.oldmonitorInfo.name; + vm.monitorInfo.customPara=vm.oldmonitorInfo.customPara; + $('#monitorSettingDlg').modal('hide'); + + }, + queryDACs:function(){ + + + $.ajax({ + "type": 'get', + "url": vm.$queryDacsRestUrl, + "dataType": "json", + success: function (resp) { + vm.dac.selectItems = (resp==null)?[]:resp; + // vm.proxy.selectItems.sort(function(a,b){return a.ipAddress>b.ipAddress?1:-1}); + }, + error: function(XMLHttpRequest, textStatus, errorThrown) { + monitorUtil.growl($.i18n.prop('com_zte_openo_umc_monitor_monitorsetting_dac_query_failInfo')+errorThrown,"danger"); + } + }); + }, + updateMonitorTask:function(){ + vm.server_rtn.warning_block=false; + vm.server_rtn.info_block=true; + vm.server_rtn.rtn_info=$.i18n.prop('com_zte_openo_umc_monitor_monitorsetting_task_checkInfo'); + + + var data= JSON.stringify({ + oid:vm.monitorInfo.oid, + moc:vm.monitorInfo.neTypeId, + proxyIp:vm.monitorInfo.customPara.PROXYIP + }); + + $.ajax({ + "type": 'PUT', + "url": vm.$updateMonitorTaskRestUrl+vm.ifPROXYIPChange, + "data" :data, + "dataType": "json", + "contentType":"application/json", + success: function (resp) { + if(resp.result=="SUCCESS"){ + + $('#monitorSettingDlg').modal('hide'); + monitorUtil.growl($.i18n.prop('com_zte_openo_umc_monitor_monitorsetting_monitor_save_successInfo'),"success"); + + } + else + { + vm.server_rtn.warning_block=true; + vm.server_rtn.info_block=false; + vm.server_rtn.rtn_info= $.i18n.prop('com_zte_openo_umc_monitor_monitorsetting_monitor_task_failInfo')+resp.info; + } + + }, + error: function(XMLHttpRequest, textStatus, errorThrown) { + + vm.server_rtn.warning_block=true; + vm.server_rtn.info_block=false; + vm.server_rtn.rtn_info= $.i18n.prop('com_zte_openo_umc_monitor_monitorsetting_monitor_task_failInfo')+errorThrown; + + } + }); + + }, + gotoDACPage:function(){ + window.location.href="dacList.html"; + }, + gotoMonitorSettingPage:function(oid){ + window.location.href="monitorSetting.html?"+oid; + }, + gotoMonitorListPage:function(){ + window.location.href="monitorSettingList.html"; + } + }); + +avalon.scan(); + + diff --git a/monitor/src/main/webapp/monitor/js/monitorSettingUtil.js b/monitor/src/main/webapp/monitor/js/monitorSettingUtil.js new file mode 100644 index 00000000..c80e61e2 --- /dev/null +++ b/monitor/src/main/webapp/monitor/js/monitorSettingUtil.js @@ -0,0 +1,169 @@ +/* + * Copyright 2016-2017, CMCC Technologies Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +var monitorUtil = {}; + +monitorUtil.growl=function(message,type){ + var delay; + if(type=="success"){ + delay=3000; + } + else{ + delay=0; + } + + $.growl({ + icon: "fa fa-envelope-o fa-lg", + title: "  "+$.i18n.prop('com_zte_openo_umc_monitor_tip')+"  ", + message: message+"        " + },{ + type: type, + delay:delay + }); +} + + +$.fn.dataTableExt.oApi.fnPagingInfo = function (oSettings) { + return { + "iEnd": oSettings.fnDisplayEnd(), + "iLength": oSettings._iDisplayLength, + "iTotal": oSettings.fnRecordsTotal(), + "iFilteredTotal": oSettings.fnRecordsDisplay(), + "iPage": Math.ceil(oSettings._iDisplayStart / oSettings._iDisplayLength), + "iTotalPages": Math.ceil(oSettings.fnRecordsDisplay() / oSettings._iDisplayLength) + }; +}; + +$.extend($.fn.dataTableExt.oPagination, { + "bootstrap_extended": { + "fnInit": function (oSettings, nPaging, fnDraw) { + var oLang = oSettings.oLanguage.oPaginate; + var oPaging = oSettings.oInstance.fnPagingInfo(); + + var fnClickHandler = function (e) { + e.preventDefault(); + if (oSettings.oApi._fnPageChange(oSettings, e.data.action)) { + fnDraw(oSettings); + } + }; + + $(nPaging).append( + '
    ' + oLang.sPage + ' ' + + '' + + '' + + ' ' + + oLang.sPageOf + ' ' + + '
    ' + ); + + var els = $('a', nPaging); + + $(els[0]).bind('click.DT', {action: "previous"}, fnClickHandler); + $(els[1]).bind('click.DT', {action: "next"}, fnClickHandler); + + $('.pagination-panel-input', nPaging).bind('change.DT', function (e) { + var oPaging = oSettings.oInstance.fnPagingInfo(); + e.preventDefault(); + var page = parseInt($(this).val()); + if (page > 0 && page < oPaging.iTotalPages) { + if (oSettings.oApi._fnPageChange(oSettings, page - 1)) { + fnDraw(oSettings); + } + } else { + $(this).val(oPaging.iPage + 1); + } + }); + + $('.pagination-panel-input', nPaging).bind('keypress.DT', function (e) { + var oPaging = oSettings.oInstance.fnPagingInfo(); + if (e.which == 13) { + var page = parseInt($(this).val()); + if (page > 0 && page < oSettings.oInstance.fnPagingInfo().iTotalPages) { + if (oSettings.oApi._fnPageChange(oSettings, page - 1)) { + fnDraw(oSettings); + } + } else { + $(this).val(oPaging.iPage + 1); + } + e.preventDefault(); + } + }); + }, + + "fnUpdate": function (oSettings, fnDraw) { + var iListLength = 5; + var oPaging = oSettings.oInstance.fnPagingInfo(); + var an = oSettings.aanFeatures.p; + var i, j, sClass, iStart, iEnd, iHalf = Math.floor(iListLength / 2); + + if (oPaging.iTotalPages < iListLength) { + iStart = 1; + iEnd = oPaging.iTotalPages; + } + else if (oPaging.iPage <= iHalf) { + iStart = 1; + iEnd = iListLength; + } else if (oPaging.iPage >= (oPaging.iTotalPages - iHalf)) { + iStart = oPaging.iTotalPages - iListLength + 1; + iEnd = oPaging.iTotalPages; + } else { + iStart = oPaging.iPage - iHalf + 1; + iEnd = iStart + iListLength - 1; + } + + + for (i = 0, iLen = an.length; i < iLen; i++) { + var wrapper = $(an[i]).parents(".dataTables_wrapper"); + + if (oPaging.iTotalPages <= 0) { + $('.pagination-panel, .dataTables_length', wrapper).hide(); + } else { + $('.pagination-panel, .dataTables_length', wrapper).show(); + } + + $('.pagination-panel-total', an[i]).html(oPaging.iTotalPages); + $('.pagination-panel-input', an[i]).val(oPaging.iPage + 1); + + // Remove the middle elements + $('li:gt(1)', an[i]).filter(':not(.next)').remove(); + + // Add the new list items and their event handlers + for (j = iStart; j <= iEnd; j++) { + sClass = (j == oPaging.iPage + 1) ? 'class="active"' : ''; + $('
  • ' + j + '
  • ') + .insertBefore($('li.next:first', an[i])[0]) + .bind('click', function (e) { + e.preventDefault(); + oSettings._iDisplayStart = (parseInt($('a', this).text(), 10) - 1) * oPaging.iLength; + fnDraw(oSettings); + }); + } + + // Add / remove disabled classes from the static elements + if (oPaging.iPage === 0) { + $('a.prev', an[i]).addClass('disabled'); + } else { + $('a.prev', an[i]).removeClass('disabled'); + } + + if (oPaging.iPage === oPaging.iTotalPages - 1 || oPaging.iTotalPages === 0) { + $('a.next', an[i]).addClass('disabled'); + } else { + $('a.next', an[i]).removeClass('disabled'); + } + } + } + } +}); diff --git a/monitor/src/main/webapp/monitor/monitorSetting.html b/monitor/src/main/webapp/monitor/monitorSetting.html new file mode 100644 index 00000000..ec786543 --- /dev/null +++ b/monitor/src/main/webapp/monitor/monitorSetting.html @@ -0,0 +1,480 @@ + + + + + + + + + + + + + + +
    +
    + + + +
    +
    + Monitor Para Setting + +
    +
    + return + +
    + +
    +
    + +
    + + + + +
    + +
    + +
    +
    +
    +
    + +
    +
    +
    +
      +
    • :
    • +
    • :
    • +
    • :
    • + +
    +
    +
    + +
    + +
    +
      +
    • :
    • +
    • :
    • +
    • :
    • +
    • :
    • +
    • :
    • +
    • :
    • +
    • :
    • +
    • :
    • +
    • :
    • +
    • :
    • +
    • :
    • +
    • :
    • +
    • :
    • +
    • :
    • +
    +
    +
    + +
    +
    +
    + + + +
    + + +
    + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/monitor/src/main/webapp/monitor/monitorSettingList.html b/monitor/src/main/webapp/monitor/monitorSettingList.html new file mode 100644 index 00000000..6dccda81 --- /dev/null +++ b/monitor/src/main/webapp/monitor/monitorSettingList.html @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + +
    + + + +
    +
    + Monitor Para List +
    + +
    +
    + + + +
    + + + + + + + + + + + + + + + + + + + + + + +
    SNDisplay NameIP AddressDAC IP AddressTypeOpr
    {{$index+1}}{{monitor.label}}{{monitor.neTypeId}} + + delete + +
    +
    +
    + + + + + + + + + + + + + + + diff --git a/openo-portal/pom.xml b/openo-portal/pom.xml deleted file mode 100644 index 5f9039c9..00000000 --- a/openo-portal/pom.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - org.openo.gso.gui - gso-gui - 1.1.0-SNAPSHOT - .. - - - 4.0.0 - openo-portal - 1.1.0-SNAPSHOT - pom - gso-gui/openo-portal - - - portal-package - portal-common - portal-resmgr - portal-extsys - portal-catalog - portal-auth - portal-lifecyclemgr - portal-performance - portal-monitor - - diff --git a/openo-portal/portal-auth/pom.xml b/openo-portal/portal-auth/pom.xml deleted file mode 100644 index db58a410..00000000 --- a/openo-portal/portal-auth/pom.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - org.openo.gso.gui - openo-portal - 1.1.0-SNAPSHOT - - 4.0.0 - portal-auth - 1.1.0-SNAPSHOT - war - - - - org.apache.maven.plugins - maven-war-plugin - - false - - - - -gso-gui/openo-portal/portal-auth diff --git a/openo-portal/portal-auth/src/main/webapp/user/changePassword.html b/openo-portal/portal-auth/src/main/webapp/user/changePassword.html deleted file mode 100644 index 33b879d5..00000000 --- a/openo-portal/portal-auth/src/main/webapp/user/changePassword.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - - - - - - - - - -
    -
    Enter the Password Information
    -
    -
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - -
    - * - - User Name: - -
    - -
    -
    -
    - * - - Old Password: - -
    - -
    -
    - -
    - * - - New Password: - -
    - -
    -
    - -
    - * - - Confirm Password: - -
    - -
    -
    - -
    -
    -
    -
    Password Rule:
    - - - - - - - - - - - - - -
    1. Contains a minimum of 8 characters and a maximum of 32;
    2. At least contains: one uppercase letter(A-Z), one lowercase letter(a-z), and one digit(0-9), one special character: ~`@#$%^&*-_=+|?/()<>[]{}",.;'!
    3. Can not contain any the user name or user name in reverse order;
    4. Can not contain space.
    -
    -
    -
    - - -
    - - - diff --git a/openo-portal/portal-auth/src/main/webapp/user/createUser.html b/openo-portal/portal-auth/src/main/webapp/user/createUser.html deleted file mode 100644 index e3d214d2..00000000 --- a/openo-portal/portal-auth/src/main/webapp/user/createUser.html +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - - - - - - - - - - -
    -
    Enter Basic Information
    -
    -
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - -
    - * - - User Name: - -
    - -
    -
    - -
    - * - - Password: - -
    - -
    -
    - -
    - * - - Confirm Password: - -
    - -
    -
    - -
    - - - Description: - -
    - -
    -
    -
    -
    -
    -
    User Name Rule:
    - - - - - - - - - - - - - -
    1. Contains a minimum of 5 characters and a maximum of 30;
    2. Contains only alphanumeric characters(a-z\,A-Z\,0-9);
    3. Can not contain any special characters except "_", which only in the middle of the user name;
    4. Can not contain space.
    -
    Password Rule:
    - - - - - - - - - - - - - -
    1. Contains a minimum of 8 characters and a maximum of 32;
    2. At least contains: one uppercase letter(A-Z), one lowercase letter(a-z), and one digit(0-9), one special character: ~`@#$%^&*-_=+|?/()<>[]{}",.;'!
    3. Can not contain any the user name or user name in reverse order;
    4. Can not contain space.
    -
    -
    -
    - - -
    - - - diff --git a/openo-portal/portal-auth/src/main/webapp/user/css/component.css b/openo-portal/portal-auth/src/main/webapp/user/css/component.css deleted file mode 100644 index 316d018a..00000000 --- a/openo-portal/portal-auth/src/main/webapp/user/css/component.css +++ /dev/null @@ -1,247 +0,0 @@ -/* - * Copyright 2016-2017 Huawei Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -.button_Group { - margin: 15px 0; - overflow: hidden; -} - -.fk_button { - padding: 0 14px; - height: 24px; - float: left; - cursor: pointer; - text-decoration: none; - outline: 0; - border: 1px solid #d3d3d3; - text-align: center; - box-shadow: 0 1px 1px rgba(0,0,0,.05); - background: #fafafa; - background: -moz-linear-gradient(top,#fff,#fafafa); - background: -webkit-gradient(linear,left top,left bottom,color-stop(0,#fff),color-stop(100%,#fafafa)); - background: -webkit-linear-gradient(top,#fff,#fafafa); - background: linear-gradient(to bottom,#fff,#fafafa); - border-radius: 6px!important; -} -.fk_button:hover { - color: #009ae7; - border: 1px solid #4AC9FF -} -.fk_button:active { - color: #0000; - border: 1px solid #4AC9FF -} - -.button_Group > button { - margin-right: 10px; -} -.add_imag { - background-image: url(/openoui/user/images/add.png); -} -.delete_imag { - background-image: url(/openoui/user/images/delete.png); -} -.button_imag { - padding-left: 25px; - background-repeat: no-repeat; - background-position: 5px center; -} - - -/*table style*/ -table.dataTable thead th { - padding: 0!important; - height: 22px!important; - padding: 1px 10px 0 5px; - overflow: visible; - white-space: nowrap; - background: #f0f0f0!important; - border: 1px solid #ddd; - border-top: 1px solid #e3e3e3!important; - border-left: 1px dotted transparent!important; - border-bottom: 1px solid #e3e3e3!important; - box-sizing: content-box; - text-align: left; - font-weight: -} -table.dataTable tr td { - padding: 0 10px 0 5px!important; - height: 30px!important; - color: #000!important; - border: none!important; - border-left: 1px solid transparent!important; - border-bottom: 1px solid #e3e3e3!important; - overflow: hidden!important; - white-space: nowrap!important; - text-align: left; -} - -table.dataTable th, table.dataTable td { - font-size: 12px!important; - color: #000!important; - max-width: 95%!important; - font-weight: 400!important; -} - -.paginate_button { - color: #666!important; - font-size: 12px!important; - font-family: Lucida Grande,Verdana,Arial,Helvetica,sans-serif!important; - line-height: 24px!important; - text-align: center!important; - border: 1px solid #e0e0e0!important; - text-decoration: none!important; - padding: 0 7px!important; - border-radius: 3px!important; - background: #fff!important; -} -.paginate_button:hover { - color: #666!important; - border: 1px solid #4ac9ff!important; - cursor: pointer!important; -} -.current { - text-decoration: none!important; - color: #fff!important; - border: 1px solid #00adf5!important; - background: #4ad2ff!important; -} - -/*over write the jquery dataTable*/ -.dataTables_wrapper .dataTables_paginate .paginate_button:hover { - color: #666!important; -} -.dataTables_wrapper .dataTables_paginate .paginate_button.current, .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover { - color: #fff!important; -} -table.dataTable tr.odd, table.dataTable tr.odd>.sorting_1 { - background-color: #f9f9f9!important; -} -table.dataTable tr.even, table.dataTable tr.even>.sorting_1 { - background-color: #f7f7f7!important; -} -table.dataTable tbody tr:hover, tbody tr.odd>.sorting_1:hover, tbody tr.even>.sorting_1:hover { - background-color: #E6FBE0!important; -} -table.dataTable.no-footer { - border-bottom: none!important; -} - -/*the length information step style*/ -.dataTables_length, .dataTables_info { - display: inline-block!important; - float: left!important; -} -.left { - display: inline-block; - float: left; - overflow: hidden; - margin: 10px 20px 10px 5px; -} - .right { - display: inline-block; - float: right; - overflow: hidden; - margin-top: 10px; -} -.dataTables_length, .dataTables_info { - display: inline-block;!important; - float: left!important; - clear: none!important; - padding-top: 0!important; -} -.dataTables_length label { - font-size: 0; -} - -/*page select style*/ -.dataTables_length select { - height: 22px; - line-height: 22px; - text-align: center; - margin-right: 5px; - border: 1px solid #e0e0e0; - color: #000; - padding: 1px; -} -.dataTables_length select:active { - text-align: center; - margin-right: 5px; - border: 1px solid #e0e0e0; - color: #000; - padding: 1px; - border-radius: 5px; -} - -/* input style overwrite*/ -.fwk_input { - border: 1px solid #c3c3c3; - background-color: #fff; - padding: 0 0 0 6px; - border-radius: 4px; - color: #000; - display: inline-block; - outline: 0; - box-shadow: 1px 1px #f6f6f6 inset; - font-size: 12px; - background: #fff; - height: 24px; - width: 300px; -} - -.fwk_input:hover, .fwk_input:focus { - border-color: #4ac9ff; - box-shadow: 1px 1px rgba(74,201,255,.2) inset; -} -.fwk_input[type=password] { - -moz-user-select: none; - -khtml-user-select: none; - user-select: none; -} - -.fwk_input:disabled { - background-color: #ededed!important; - color: #666; - box-shadow: 1px 1px #ededed inset!important; - border: 1px solid #e0e0e0!important; - resize: none; -} - -/* input style textarea*/ -.fwk_textarea { - border: 1px solid #c3c3c3; - background-color: #fff; - padding: 0 0 0 6px; - border-radius: 4px; - color: #000; - display: inline-block; - outline: 0; - box-shadow: 1px 1px #f6f6f6 inset; - font-size: 12px; - background: #fff; - height: 72px; - width: 300px; -} - -.fwk_textarea:hover, .fwk_textarea:focus { - border-color: #4ac9ff; - box-shadow: 1px 1px rgba(74,201,255,.2) inset; -} - - - - - - diff --git a/openo-portal/portal-auth/src/main/webapp/user/css/user.css b/openo-portal/portal-auth/src/main/webapp/user/css/user.css deleted file mode 100644 index f9ac4ae6..00000000 --- a/openo-portal/portal-auth/src/main/webapp/user/css/user.css +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Copyright 2016-2017 Huawei Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -* { - font-family: Microsoft Yahei!important; - font-size: 12px; - color: #333; -} - -.hw_body { - background-color: #fafafa!important; - padding-left: 15px; -} - -.delete, .changePsd, .edit { - padding: 0 10px; - cursor: pointer; -} - -.mt20 { - margin: 20px; -} - -#progress { - position: relative;; - display: inline-block; -} - -#serverError { - margin-left: 18px; -} - -.mandatory { - color: #F00; - width: 7px; - padding-right: 10px 5px 10px 0; -} - -.row_interval { - padding: 10px 10px 10px 0; -} - -.progress_bar { - height: 4px; - border-radius: 2px; - width: 420px; - background: -webkit-linear-gradient(left, #6fd330, #29b6eb); - background: -o-linear-gradient(right, #6fd330, #29b6eb); - background: -moz-linear-gradient(right, #6fd330, #29b6eb); - background: linear-gradient(to right, #6fd330, #29b6eb); -} - -.progress_charater { - display: block; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; - color: #1fbe5c; - text-align: center; - margin-bottom: 20px; -} - -.errorTip { - color: red; -} - -.suggestion_tip { - height: auto; - background-color: #FFF5EA; - border: 1px solid #F9DFC5; - padding: 8px 10px; - margin: 3px 0; - color: #333; - line-height: 20px; - overflow: auto; -} - -.rule_label { - font-weight: 600; -} -#role_content table { - margin-left: 20px; -} \ No newline at end of file diff --git a/openo-portal/portal-auth/src/main/webapp/user/images/License.txt b/openo-portal/portal-auth/src/main/webapp/user/images/License.txt deleted file mode 100644 index d1ce787a..00000000 --- a/openo-portal/portal-auth/src/main/webapp/user/images/License.txt +++ /dev/null @@ -1,362 +0,0 @@ -THIS LICENSE FILE CONTAINS THE LICENSE APPLICABLE DEPENDING ON THE TYPE OF CONTRIBUTIONS. - -APACHE LICENSE 2 IS APPLICABLE FOR SOURCE CODE, CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL FOR DOCUMENTATION - -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - - -Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - -"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - -"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - -"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - -"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - -"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - -"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - -"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - -"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - -"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - -"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - -2. Grant of Copyright License. - -Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. - -Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - -4. Redistribution. - -You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - -You must give any other recipients of the Work or Derivative Works a copy of this License; and You must cause any modified files to carry prominent notices stating that You changed the files; and You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - -5. Submission of Contributions. - -Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - -6. Trademarks. - -This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. - -Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. - -In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. - -While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS - -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - -Attribution 4.0 International - -https://creativecommons.org/licenses/by/4.0/legalcode - -Creative Commons Corporation ("Creative Commons") is not a law firm and does not provide legal services or legal advice. Distribution of Creative Commons public licenses does not create a lawyer-client or other relationship. Creative Commons makes its licenses and related information available on an "as-is" basis. Creative Commons gives no warranties regarding its licenses, any material licensed under their terms and conditions, or any related information. Creative Commons disclaims all liability for damages resulting from their use to the fullest extent possible. - -Using Creative Commons Public Licenses - -Creative Commons public licenses provide a standard set of terms and conditions that creators and other rights holders may use to share original works of authorship and other material subject to copyright and certain other rights specified in the public license below. The following considerations are for informational purposes only, are not exhaustive, and do not form part of our licenses. - - Considerations for licensors: Our public licenses are - intended for use by those authorized to give the public - permission to use material in ways otherwise restricted by - copyright and certain other rights. Our licenses are - irrevocable. Licensors should read and understand the terms - and conditions of the license they choose before applying it. - Licensors should also secure all rights necessary before - applying our licenses so that the public can reuse the - material as expected. Licensors should clearly mark any - material not subject to the license. This includes other CC- - licensed material, or material used under an exception or - limitation to copyright. More considerations for licensors: - wiki.creativecommons.org/Considerations_for_licensors - Considerations for the public: By using one of our public - licenses, a licensor grants the public permission to use the - licensed material under specified terms and conditions. If - the licensor's permission is not necessary for any reason--for - example, because of any applicable exception or limitation to - copyright--then that use is not regulated by the license. Our - licenses grant only permissions under copyright and certain - other rights that a licensor has authority to grant. Use of - the licensed material may still be restricted for other - reasons, including because others have copyright or other - rights in the material. A licensor may make special requests, - such as asking that all changes be marked or described. - Although not required by our licenses, you are encouraged to - respect those requests where reasonable. More_considerations - for the public: - wiki.creativecommons.org/Considerations_for_licensees -Creative Commons Attribution 4.0 International Public License - -By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions. - - -Section 1 -- Definitions. - - a. Adapted Material means material subject to Copyright and Similar - Rights that is derived from or based upon the Licensed Material - and in which the Licensed Material is translated, altered, - arranged, transformed, or otherwise modified in a manner requiring - permission under the Copyright and Similar Rights held by the - Licensor. For purposes of this Public License, where the Licensed - Material is a musical work, performance, or sound recording, - Adapted Material is always produced where the Licensed Material is - synched in timed relation with a moving image. - b. Adapter's License means the license You apply to Your Copyright - and Similar Rights in Your contributions to Adapted Material in - accordance with the terms and conditions of this Public License. - c. Copyright and Similar Rights means copyright and/or similar rights - closely related to copyright including, without limitation, - performance, broadcast, sound recording, and Sui Generis Database - Rights, without regard to how the rights are labeled or - categorized. For purposes of this Public License, the rights - specified in Section 2(b)(1)-(2) are not Copyright and Similar - Rights. - d. Effective Technological Measures means those measures that, in the - absence of proper authority, may not be circumvented under laws - fulfilling obligations under Article 11 of the WIPO Copyright - Treaty adopted on December 20, 1996, and/or similar international - agreements. - e. Exceptions and Limitations means fair use, fair dealing, and/or - any other exception or limitation to Copyright and Similar Rights - that applies to Your use of the Licensed Material. - f. Licensed Material means the artistic or literary work, database, - or other material to which the Licensor applied this Public - License. - g. Licensed Rights means the rights granted to You subject to the - terms and conditions of this Public License, which are limited to - all Copyright and Similar Rights that apply to Your use of the - Licensed Material and that the Licensor has authority to license. - h. Licensor means the individual(s) or entity(ies) granting rights - under this Public License. - i. Share means to provide material to the public by any means or - process that requires permission under the Licensed Rights, such - as reproduction, public display, public performance, distribution, - dissemination, communication, or importation, and to make material - available to the public including in ways that members of the - public may access the material from a place and at a time - individually chosen by them. - j. Sui Generis Database Rights means rights other than copyright - resulting from Directive 96/9/EC of the European Parliament and of - the Council of 11 March 1996 on the legal protection of databases, - as amended and/or succeeded, as well as other essentially - equivalent rights anywhere in the world. - k. You means the individual or entity exercising the Licensed Rights - under this Public License. Your has a corresponding meaning. - -Section 2 -- Scope. - - a. License grant. - 1. Subject to the terms and conditions of this Public License, - the Licensor hereby grants You a worldwide, royalty-free, - non-sublicensable, non-exclusive, irrevocable license to - exercise the Licensed Rights in the Licensed Material to: - a. reproduce and Share the Licensed Material, in whole or - in part; and - b. produce, reproduce, and Share Adapted Material. - 2. Exceptions and Limitations. For the avoidance of doubt, where - Exceptions and Limitations apply to Your use, this Public - License does not apply, and You do not need to comply with - its terms and conditions. - 3. Term. The term of this Public License is specified in Section - 6(a). - 4. Media and formats; technical modifications allowed. The - Licensor authorizes You to exercise the Licensed Rights in - all media and formats whether now known or hereafter created, - and to make technical modifications necessary to do so. The - Licensor waives and/or agrees not to assert any right or - authority to forbid You from making technical modifications - necessary to exercise the Licensed Rights, including - technical modifications necessary to circumvent Effective - Technological Measures. For purposes of this Public License, - simply making modifications authorized by this Section 2(a) - (4) never produces Adapted Material. - 5. Downstream recipients. - a. Offer from the Licensor -- Licensed Material. Every - recipient of the Licensed Material automatically - receives an offer from the Licensor to exercise the - Licensed Rights under the terms and conditions of this - Public License. - b. No downstream restrictions. You may not offer or impose - any additional or different terms or conditions on, or - apply any Effective Technological Measures to, the - Licensed Material if doing so restricts exercise of the - Licensed Rights by any recipient of the Licensed - Material. - 6. No endorsement. Nothing in this Public License constitutes or - may be construed as permission to assert or imply that You - are, or that Your use of the Licensed Material is, connected - with, or sponsored, endorsed, or granted official status by, - the Licensor or others designated to receive attribution as - provided in Section 3(a)(1)(A)(i). - b. Other rights. - 1. Moral rights, such as the right of integrity, are not - licensed under this Public License, nor are publicity, - privacy, and/or other similar personality rights; however, to - the extent possible, the Licensor waives and/or agrees not to - assert any such rights held by the Licensor to the limited - extent necessary to allow You to exercise the Licensed - Rights, but not otherwise. - 2. Patent and trademark rights are not licensed under this - Public License. - 3. To the extent possible, the Licensor waives any right to - collect royalties from You for the exercise of the Licensed - Rights, whether directly or through a collecting society - under any voluntary or waivable statutory or compulsory - licensing scheme. In all other cases the Licensor expressly - reserves any right to collect such royalties. - -Section 3 -- License Conditions. - -Your exercise of the Licensed Rights is expressly made subject to the following conditions. - - a. Attribution. - 1. If You Share the Licensed Material (including in modified - form), You must: - a. retain the following if it is supplied by the Licensor - with the Licensed Material: - i. identification of the creator(s) of the Licensed - Material and any others designated to receive - attribution, in any reasonable manner requested by - the Licensor (including by pseudonym if - designated); - ii. a copyright notice; - iii. a notice that refers to this Public License; - iv. a notice that refers to the disclaimer of - warranties; - v. a URI or hyperlink to the Licensed Material to the - extent reasonably practicable; - b. indicate if You modified the Licensed Material and - retain an indication of any previous modifications; and - c. indicate the Licensed Material is licensed under this - Public License, and include the text of, or the URI or - hyperlink to, this Public License. - 2. You may satisfy the conditions in Section 3(a)(1) in any - reasonable manner based on the medium, means, and context in - which You Share the Licensed Material. For example, it may be - reasonable to satisfy the conditions by providing a URI or - hyperlink to a resource that includes the required - information. - 3. If requested by the Licensor, You must remove any of the - information required by Section 3(a)(1)(A) to the extent - reasonably practicable. - 4. If You Share Adapted Material You produce, the Adapter's - License You apply must not prevent recipients of the Adapted - Material from complying with this Public License. - -Section 4 -- Sui Generis Database Rights. - -Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material: - - a. for the avoidance of doubt, Section 2(a)(1) grants You the right - to extract, reuse, reproduce, and Share all or a substantial - portion of the contents of the database; - b. if You include all or a substantial portion of the database - contents in a database in which You have Sui Generis Database - Rights, then the database in which You have Sui Generis Database - Rights (but not its individual contents) is Adapted Material; and - c. You must comply with the conditions in Section 3(a) if You Share - all or a substantial portion of the contents of the database. -For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights. - - -Section 5 -- Disclaimer of Warranties and Limitation of Liability. - - a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE - EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS - AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF - ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, - IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, - WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR - PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, - ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT - KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT - ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. - b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE - TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, - NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, - INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, - COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR - USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN - ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR - DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR - IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. - c. The disclaimer of warranties and limitation of liability provided - above shall be interpreted in a manner that, to the extent - possible, most closely approximates an absolute disclaimer and - waiver of all liability. - -Section 6 -- Term and Termination. - - a. This Public License applies for the term of the Copyright and - Similar Rights licensed here. However, if You fail to comply with - this Public License, then Your rights under this Public License - terminate automatically. - b. Where Your right to use the Licensed Material has terminated under - Section 6(a), it reinstates: - 1. automatically as of the date the violation is cured, provided - it is cured within 30 days of Your discovery of the - violation; or - 2. upon express reinstatement by the Licensor. - For the avoidance of doubt, this Section 6(b) does not affect any - right the Licensor may have to seek remedies for Your violations - of this Public License. - c. For the avoidance of doubt, the Licensor may also offer the - Licensed Material under separate terms or conditions or stop - distributing the Licensed Material at any time; however, doing so - will not terminate this Public License. - d. Sections 1, 5, 6, 7, and 8 survive termination of this Public - License. - -Section 7 -- Other Terms and Conditions. - - a. The Licensor shall not be bound by any additional or different - terms or conditions communicated by You unless expressly agreed. - b. Any arrangements, understandings, or agreements regarding the - Licensed Material not stated herein are separate from and - independent of the terms and conditions of this Public License. - -Section 8 -- Interpretation. - - a. For the avoidance of doubt, this Public License does not, and - shall not be interpreted to, reduce, limit, restrict, or impose - conditions on any use of the Licensed Material that could lawfully - be made without permission under this Public License. - b. To the extent possible, if any provision of this Public License is - deemed unenforceable, it shall be automatically reformed to the - minimum extent necessary to make it enforceable. If the provision - cannot be reformed, it shall be severed from this Public License - without affecting the enforceability of the remaining terms and - conditions. - c. No term or condition of this Public License will be waived and no - failure to comply consented to unless expressly agreed to by the - Licensor. - d. Nothing in this Public License constitutes or may be interpreted - as a limitation upon, or waiver of, any privileges and immunities - that apply to the Licensor or You, including from the legal - processes of any jurisdiction or authority. -Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the "Licensor." The text of the Creative Commons public licenses is dedicated to the public domain under the CC0 Public Domain Dedication. Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at creativecommons.org/policies, Creative Commons does not authorize the use of the trademark "Creative Commons" or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses. - -Creative Commons may be contacted at creativecommons.org. \ No newline at end of file diff --git a/openo-portal/portal-auth/src/main/webapp/user/js/changePassword.js b/openo-portal/portal-auth/src/main/webapp/user/js/changePassword.js deleted file mode 100644 index 0d4c21d0..00000000 --- a/openo-portal/portal-auth/src/main/webapp/user/js/changePassword.js +++ /dev/null @@ -1,193 +0,0 @@ -/* - * Copyright 2016-2017 Huawei Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -$(document).ready(function() { - var USER_SERVICE = "/openoapi/auth/v1/users"; - var userId; - var $userName = $("#userName"); - var $oldPassword = $("#oldPassword"); - var $oldPasswordError = $("#oldPasswordError"); - var $password = $("#password"); - var $passwordError = $("#passwordError") - - var $cfPsdError = $("#cfPsdError"); - - function initialPage() { - userId = getId(); - getUserDetails(userId).done(function(data) { - listUserDetails(data); - }); - - /*initial the event*/ - $("#confirm").click(function(e) { - if (!checkPassword()) { - return; - } - var data = getModifyUser(); - changePsd(data).done(function() { - top.bootbox.alert("Password change successfully.", function(e) { - Rest.turn2URI("/openoui/user/user.html"); - }) - }).fail(function(e) { - if (e.statusText == "Unauthorized") { - showError($oldPasswordError, "The old password is wrong."); - } else { - showError($oldPasswordError, e.statusText); - } - }) - }) - $("#cancel").click(function(e) { - window.document.location = "/openoui/user/user.html"; - }) - } - - function checkPassword() { - if (!checkMandatory()) { - return false; - } - - if (!checkCfPassword()) { - showError($cfPsdError, "The password is not the same."); - return false; - } - - if (!checkPasswordRule()) { - return false; - } - return true; - } - - function checkMandatory() { - if ($password.val() == "") { - showError($passwordError, "Mandatory."); - return false; - } - - if ($oldPassword.val() == "") { - showError($oldPasswordError, "Mandatory."); - return false; - } - return true; - } - - function checkCfPassword() { - return $("#password").val() == $("#cfPassword").val(); - } - - function checkPasswordRule() { - var password = $password.val(); - - if (!checkLength(8, 32, password)) { - showError($passwordError, "The password length should between 8 and 32."); - return false - } - - if (!checkCotainSpecial(password)) { - showError($passwordError, "At least contain: one uppercase letter, one lowercase letter, and one digit, one special character;"); - return false - } - - if (!checkNoContainAndReverse(password, $userName.val())) { - showError($passwordError, "The password should not contain the user name or reverse."); - return false - } - - if (!checkNoSpace(password)) { - showError($passwordError, "The password should not contain space."); - return false - } - return true - } - - function checkLength(min, max, str) { - return str.length >= min && str.length <= max; - } - - function checkOnlySpecials(str, reg) { - return str.match(reg) && str.match(reg).length == str.length - } - - function checkCotainSpecial(password) { - return password.match(/\~|\`|\@|\#|\$|\%|\^|\&|\*|\-|\_|\=|\+|\||\?|\/|\(|\)|\<|\>|\[|\]|\{|\}|\"|\,|\.|\;|\'|\!/g) != null - && password.match(/[0-9]/g) != null && password.match(/[a-z]/g) != null && password.match(/[A-Z]/g) != null; - } - - function checkUderScore(str) { - return str.indexOf("_") != 0 && str.lastIndexOf("_") != str.length - 1; - } - - function checkNoSpace(str) { - return str.indexOf(" ") == -1; - } - - function checkNoContainAndReverse(str, str2) { - return str.indexOf(str2) == -1 && str.indexOf(str2.split("").reverse().join("")) == -1; - } - - function getModifyUser() { - var data = {}; - data["original_password"] = $("#oldPassword").val(); - data.password = $("#password").val(); - return data; - } - - function getUserDetails(id) { - return Rest.http({ - url: USER_SERVICE + "/" + id + "?=" + new Date().getTime(), - type: "GET", - async: false, - contentType: 'application/json', - dataType: "json" - }) - } - - function listUserDetails(data) { - $("#userName").val(data.name); - } - - - function changePsd(data) { - return Rest.http({ - url: USER_SERVICE + "/" + userId + "/password" + "?=" + new Date().getTime(), - type: "POST", - async: false, - contentType: 'application/json', - dataType: "json", - data: JSON.stringify(data) - }) - } - - function getId() { - var qs = location.search; - qs = qs.indexOf("?") === 0 ? qs : ("?" + qs); - var start = qs.indexOf("id=") + 3; - var end = qs.indexOf("&") === -1 ? qs.length : qs.indexOf("&") - start; - return qs.substr(start, end); - } - - function showError($Obj, message) { - $Obj.text(message); - $Obj.css("visibility", "visible"); - setTimeout(function() { - hideError($Obj); - }, 5000) - } - - function hideError($Obj) { - $Obj.css("visibility", "hidden"); - } - - initialPage(); -}) diff --git a/openo-portal/portal-auth/src/main/webapp/user/js/createUser.js b/openo-portal/portal-auth/src/main/webapp/user/js/createUser.js deleted file mode 100644 index dee731cb..00000000 --- a/openo-portal/portal-auth/src/main/webapp/user/js/createUser.js +++ /dev/null @@ -1,189 +0,0 @@ -/* - * Copyright 2016-2017 Huawei Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -$(document).ready(function() { - - var USER_SERVICE = "/openoapi/auth/v1/users"; - var $userName = $("#userName"); - var $password = $("#password"); - var $cfPsdError = $("#cfPsdError"); - var $userNameError = $("#userNameError"); - var $passwordError = $("#passwordError"); - - function initialPage() { - /*initial the event*/ - $("#confirm").click(function(e) { - if (!checkUserRules()) { - return; - } - var data = getCreateUser(); - createUser(data).done(function() { - window.document.location = "/openoui/user/user.html"; - }) - }) - $("#cancel").click(function(e) { - window.document.location = "/openoui/user/user.html"; - }) - } - - function getCreateUser() { - var data = {}; - data.userName = $userName.val(); - data.password = $password.val(); - data.description = $("#description").val(); - data.email = "xxxx@xxxx.com"; - return data; - } - - function createUser(data) { - return Rest.http({ - url: USER_SERVICE + "?=" + new Date().getTime(), - type: "POST", - async: false, - contentType: 'application/json', - dataType: "json", - data: JSON.stringify(data) - }) - } - - function checkUserRules() { - if (!checkMandatory()) { - return false; - } - - if (!checkCfPassword()) { - return false; - } - - if (!checkUserNameRule()) { - return false; - } - - if (!checkPasswordRule()) { - return false; - } - return true; - } - - function checkMandatory() { - if ($userName.val() == "") { - showError($userNameError, "Mandatory."); - return false; - } - - if ($password.val() == "") { - showError($passwordError, "Mandatory."); - return false; - } - return true; - } - - function checkUserNameRule() { - var username = $userName.val(); - if (!checkLength(5, 30, username)) { - showError($userNameError, "The user name length should between 5 and 30."); - return false - } - - if (!checkOnlySpecials(username, /[0-9]|[a-z]|[A-Z]|_/g)) { - showError($userNameError, "Only Character(a-z\,A-Z\,0-9,_) is allowed."); - return false - } - - if(!checkUderScore(username)) { - showError($userNameError, 'The character "_" is only allowed in the middle of the user name.'); - return false - } - - if (!checkNoSpace(username)) { - showError($userNameError, "The user name should not contain space."); - return false - } - - return true - } - - function checkPasswordRule() { - var password = $password.val(); - - if (!checkLength(8, 32, password)) { - showError($passwordError, "The password length should between 8 and 32."); - return false - } - - if (!checkCotainSpecial(password)) { - showError($passwordError, "At least contain: one uppercase letter, one lowercase letter, and one digit, one special character;"); - return false - } - - if (!checkNoContainAndReverse(password, $userName.val())) { - showError($passwordError, "The password should not contain the user name or reverse."); - return false - } - - if (!checkNoSpace(password)) { - showError($passwordError, "The password should not contain space."); - return false - } - return true - } - - function checkLength(min, max, str) { - return str.length >= min && str.length <= max; - } - - function checkOnlySpecials(str, reg) { - return str.match(reg) && str.match(reg).length == str.length - } - - function checkCotainSpecial(password) { - return password.match(/\~|\`|\@|\#|\$|\%|\^|\&|\*|\-|\_|\=|\+|\||\?|\/|\(|\)|\<|\>|\[|\]|\{|\}|\"|\,|\.|\;|\'|\!/g) != null - && password.match(/[0-9]/g) != null && password.match(/[a-z]/g) != null && password.match(/[A-Z]/g) != null; - } - - function checkUderScore(str) { - return str.indexOf("_") != 0 && str.lastIndexOf("_") != str.length - 1; - } - - function checkNoContainAndReverse(str, str2) { - return str.indexOf(str2) == -1 && str.indexOf(str2.split("").reverse().join("")) == -1; - } - - function checkNoSpace(str) { - return str.indexOf(" ") == -1; - } - - function checkCfPassword() { - if ($password.val() == $("#cfPassword").val()) { - return true; - } - showError($cfPsdError, "The password is not the same."); - return false; - } - - function showError($Obj, message) { - $Obj.text(message); - $Obj.css("visibility", "visible"); - setTimeout(function() { - hideError($Obj); - }, 5000) - } - - function hideError($Obj) { - $Obj.css("visibility", "hidden"); - } - - initialPage(); -}) diff --git a/openo-portal/portal-auth/src/main/webapp/user/js/modifyUser.js b/openo-portal/portal-auth/src/main/webapp/user/js/modifyUser.js deleted file mode 100644 index a085c7c2..00000000 --- a/openo-portal/portal-auth/src/main/webapp/user/js/modifyUser.js +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Copyright 2016-2017 Huawei Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -$(document).ready(function() { - var USER_SERVICE = "/openoapi/auth/v1/users"; - var userId; - function initialPage() { - userId = getId(); - getUserDetails(userId).done(function(data) { - listUserDetails(data); - }); - - /*initial the event*/ - $("#confirm").click(function(e) { - var data = getModifyUser(); - modifyUser(data).done(function() { - window.document.location = "/openoui/user/user.html"; - }) - }) - $("#cancel").click(function(e) { - window.document.location = "/openoui/user/user.html"; - }) - } - - function getModifyUser() { - var data = {}; - data.description = $("#description").val(); - data.email = "xxxx@xxxx.com"; - return data; - } - function getUserDetails(id) { - return Rest.http({ - url: USER_SERVICE + "/" + id + "?=" + new Date().getTime(), - type: "GET", - async: false, - contentType: 'application/json', - dataType: "json" - }) - } - - function listUserDetails(data) { - $("#userName").val(data.name); - $("#description").val(data.description); - } - - function modifyUser(data) { - return Rest.http({ - url: USER_SERVICE + "/" + userId + "?=" + new Date().getTime(), - type: "PATCH", - async: false, - contentType: 'application/json', - dataType: "json", - data: JSON.stringify(data) - }) - } - - function getId() { - var qs = location.search; - qs = qs.indexOf("?") === 0 ? qs : ("?" + qs); - var start = qs.indexOf("id=") + 3; - var end = qs.indexOf("&") === -1 ? qs.length : qs.indexOf("&") - start; - return qs.substr(start, end); - } - - initialPage(); -}) \ No newline at end of file diff --git a/openo-portal/portal-auth/src/main/webapp/user/js/user.js b/openo-portal/portal-auth/src/main/webapp/user/js/user.js deleted file mode 100644 index 7f4e559c..00000000 --- a/openo-portal/portal-auth/src/main/webapp/user/js/user.js +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Copyright 2016-2017 Huawei Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -$(document).ready(function() { - var USER_SERVICE = "/openoapi/auth/v1/users"; - var deleteEditOpt = ""; - var editOpt = ""; - - var userListHeader = [ - { title: "User", data: "User",width: "20%"}, - { title: "Description", data: "Description",width: "60%"}, - { title: "Operations", data: "Operations",width: "20%"} - ]; - function initialPage() { - /*get the user list data;*/ - getUserList().done(function(data) { - var data = formatUsers(data); - Table.create(data, "table_id", userListHeader); - $(".hw_body").css("visibility", "visible"); - }).error(function(data) { - if (data.status == 403) { - $(".hw_body").html("" + JSON.parse(data.responseText).error.message + ""); - } - }); - - /*add the listener*/ - $("#table_id tbody").on("click", "td", function(e) { - var classname = e.target.className; - var id = $("#table_id").DataTable().row(this).data().rowid; - if (classname == "delete") { - top.bootbox.confirm("Are you sure to delete this user?", function(result) { - if (result) { - deleteUser(id).done(function() { - getUserList().done(function(data) { - var data = formatUsers(data); - var datatable = $("#table_id").dataTable().api(); - datatable.clear(); - datatable.rows.add(data); - datatable.draw(); - }) - }) - } - }) - } else if (classname == "edit") { - window.document.location = "/openoui/user/modifyUser.html" + "?id=" + id; - } else if (classname == "changePsd") { - window.document.location = "/openoui/user/changePassword.html" + "?id=" + id; - } - }) - - $("#create").click(function(e) { - window.document.location = "/openoui/user/createUser.html"; - }) - } - - function getUserList() { - return Rest.http({ - url: USER_SERVICE + "?=" + new Date().getTime(), - type: "GET", - async: false, - contentType: 'application/json', - dataType: "json" - }) - } - - function deleteUser(id) { - return Rest.http({ - url: USER_SERVICE + "/" + id + "?=" + new Date().getTime(), - type: "DELETE", - async: false, - contentType: 'application/json', - dataType: "json" - }) - } - - function formatUsers(data) { - var tableData = []; - for (var i = 0; i < data.length; i++) { - var temp = {}; - temp.rowid = data[i].id; - temp.User = data[i].name; - temp.Description = data[i].description; - if (data[i].name == "admin") { - temp.Operations = editOpt; - } else { - temp.Operations = deleteEditOpt; - } - tableData.push(temp); - } - return tableData; - } - initialPage(); - - setTimeout(function() { - Table.enableToolTips("table_id"); - }, 0) -}); diff --git a/openo-portal/portal-auth/src/main/webapp/user/js/userTools.js b/openo-portal/portal-auth/src/main/webapp/user/js/userTools.js deleted file mode 100644 index e63e85a5..00000000 --- a/openo-portal/portal-auth/src/main/webapp/user/js/userTools.js +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright 2016-2017 Huawei Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -var Table = {}; -Table.create = function(data, id, columns) { - $('#' + id).DataTable({ - data: data, - bSort: false, - "sDom": "<'right'p>>", - columns: columns - }); - } - /** - * update the table data, the cloumns must be same with the create one. - * data: the update data. as the create structure - * id: the table id. - */ -Table.updata = function(data, id) { - var datatable = $('#' + id).dataTable().api(); - datatable.clear(); - datatable.rows.add(data); - datatable.draw(); -} - -Table.enableToolTips = function(id) { - $("#" + id + " tr th").each(function(index, sdom){ - sdom.title = sdom.textContent; - }) - $("#" + id + " tbody tr td").each(function(index, sdom){ - sdom.title = sdom.textContent; - }) -} - -var Rest = {}; - -Rest.http = function(setting) { - var ret = $.ajax(setting); - ret.fail(function(data) { - try { - if (data.responseText.indexOf("login") != -1) { - top.window.document.location.reload() - } - var result = JSON.parse(data.responseText); - if (result.error && result.error.message) { - top.bootbox.alert(result.error.message, function() {}); - } - } catch (e) { - } - - }) - return ret; -} - -Rest.turn2URI = function(url) { - var cookies = document.cookie.split(";"); - var cookie = ""; - for (var i = 0; i < cookies.length; i++) { - if (cookies[i].split("=")[0] == "X-Auth-Token") { - cookie = cookies[i].split("=")[1]; - break; - } - } - $.ajax({ - url: "/openoapi/auth/v1/tokens", - type: "HEAD", - headers: { - "X-Auth-Token": cookie - }, - success: function(data) { - window.document.location = url; - }, - error: function(data) { - top.window.document.location.reload(); - } - }) -} diff --git a/openo-portal/portal-auth/src/main/webapp/user/modifyUser.html b/openo-portal/portal-auth/src/main/webapp/user/modifyUser.html deleted file mode 100644 index 8689ff50..00000000 --- a/openo-portal/portal-auth/src/main/webapp/user/modifyUser.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - - - - - - - - - - -
    -
    Enter Basic Information
    -
    -
    -
    - - - - - - - - - - - - - -
    - * - - User Name: - -
    - -
    -
    - -
    - - - Description: - -
    - -
    -
    - -
    -
    -
    - - -
    - - - diff --git a/openo-portal/portal-auth/src/main/webapp/user/user.html b/openo-portal/portal-auth/src/main/webapp/user/user.html deleted file mode 100644 index 2a700769..00000000 --- a/openo-portal/portal-auth/src/main/webapp/user/user.html +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - - - - - - -
    - -
    -
    -
    -
    - - - diff --git a/openo-portal/portal-catalog/pom.xml b/openo-portal/portal-catalog/pom.xml deleted file mode 100644 index 682eb7b6..00000000 --- a/openo-portal/portal-catalog/pom.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - - org.openo.gso.gui - openo-portal - 1.1.0-SNAPSHOT - - - 4.0.0 - portal-catalog - war - - - - - org.apache.maven.plugins - maven-war-plugin - - false - - - - -gso-gui/openo-portal/portal-catalog diff --git a/openo-portal/portal-catalog/src/main/webapp/catalog/csarPackage.html b/openo-portal/portal-catalog/src/main/webapp/catalog/csarPackage.html deleted file mode 100644 index 9f6297aa..00000000 --- a/openo-portal/portal-catalog/src/main/webapp/catalog/csarPackage.html +++ /dev/null @@ -1,247 +0,0 @@ - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    - - - - - - - - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -

    - {{packageDetail.detailTitle}} -

    -
    - -
    -
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/openo-portal/portal-catalog/src/main/webapp/catalog/css/datatable-sort.css b/openo-portal/portal-catalog/src/main/webapp/catalog/css/datatable-sort.css deleted file mode 100644 index 4eccde64..00000000 --- a/openo-portal/portal-catalog/src/main/webapp/catalog/css/datatable-sort.css +++ /dev/null @@ -1,30 +0,0 @@ -/** - * Copyright 2016-2017 ZTE Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -table.table thead .sorting, -table.table thead .sorting_asc, -table.table thead .sorting_desc, -table.table thead .sorting_asc_disabled, -table.table thead .sorting_desc_disabled { - cursor: pointer; - *cursor: hand; -} - -table.table thead .sorting { background: url('../image/sort_both.png') no-repeat center right; } -table.table thead .sorting_asc { background: url('../image/sort_asc.png') no-repeat center right; } -table.table thead .sorting_desc { background: url('../image/sort_desc.png') no-repeat center right; } - -table.table thead .sorting_asc_disabled { background: url('../image/sort_asc_disabled.png') no-repeat center right; } -table.table thead .sorting_desc_disabled { background: url('../image/sort_desc_disabled.png') no-repeat center right; } \ No newline at end of file diff --git a/openo-portal/portal-catalog/src/main/webapp/catalog/css/fileupload.css b/openo-portal/portal-catalog/src/main/webapp/catalog/css/fileupload.css deleted file mode 100644 index ed726f3d..00000000 --- a/openo-portal/portal-catalog/src/main/webapp/catalog/css/fileupload.css +++ /dev/null @@ -1,81 +0,0 @@ -/** - * Copyright 2016-2017 ZTE Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -@charset "UTF-8"; - -.file-caption { - display: inline-block; - overflow: hidden; - text-overflow: ellipsis; -} - -.file-caption .glyphicon { - display: inline-block; - min-width: 18px; - margin-top: 2px; -} - -.file-caption-name { - display: inline-block; - overflow: hidden; - max-height: 20px; - padding-right: 10px; - word-break: break-all; -} - -.file-caption-ellipsis { - position: absolute; - right: 10px; - margin-top: -6px; - font-size: 1.2em; - display: none; - font-weight: bold; - cursor: default; -} - -.file-drop-zone{ - border:1px dashed #aaa; - border-radius:4px; - height:100%; - text-align:center; - vertical-align:middle; - margin:12px 15px 12px 12px; - padding:5px -} -.file-drop-zone-title{ - color:#aaa; - font-size:20px; - padding:20px 10px -} -.fileupload-btn { - padding-bottom: 10px; -} - -.fileupload-input { - position: relative; - display: table; -} - -.file-preview { - border-radius:5px; - border:1px solid #ddd; - padding:5px; - width:100%; - margin-bottom:5px -} - -.upload { - width: 50%; -} \ No newline at end of file diff --git a/openo-portal/portal-catalog/src/main/webapp/catalog/css/hostMirror.css b/openo-portal/portal-catalog/src/main/webapp/catalog/css/hostMirror.css deleted file mode 100644 index 8c24029a..00000000 --- a/openo-portal/portal-catalog/src/main/webapp/catalog/css/hostMirror.css +++ /dev/null @@ -1,447 +0,0 @@ -/** - * Copyright 2016-2017 ZTE Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -body { - font-family: microsoft yahei !important; -} - -/* blue pill (inspired by iTunes) -*******************************************************************************/ -.redFont{ - color:red; -} -.blue { - - background-color: #5b9bd1; - border-radius: 20px; - color: #fff; - font-weight: bold; - padding: 8px 0; - text-align: center; - width: 100px; -} - -.blue:hover { - background-color: #e8f3fd; - color: #5b9bd1; -} - -.blue.selected { - border: 0; - background-color: #5b9bd1; - color: #fff; -} - -.blue.selected:hover { - border: 0; - background-color: #5b9bd1; - color: #fff; -} - -p { - color: #444; - font-size: 14px; - font-weight: normal; - line-height: 21px; - margin: 0 0 12px 0; -} - -p.credit { - border-top: 1px solid #ccc; - font-size: 14px; - line-height: 140%; - margin: 36px 0 12px 0; - padding: 8px 0 0 0; - text-align: center; -} - -ul.column { - float: left; - list-style: none; - width: 675px; -} - -ul.column li { - background: #eee; - -webkit-border-radius: 5px; - border-radius: 5px; - -webkit-box-shadow: inset 0 1px 1px 0 #c7c7c7; - box-shadow: inset 0 1px 1px 0 #c7c7c7; - float: left; - margin: 10px 0 0 10px; - display: block; - height: 150px; - text-align: center; - width: 215px; -} - -/* Clear Floated Elements -------------------------------------------------------------------------------*/ -.column:after,.button-collection:after,.clearfix:after,div.project-info:after - { - clear: both; - content: ' '; - display: block; - font-size: 0; - line-height: 0; - visibility: hidden; - width: 0; - height: 0; -} - -.container-fluid { - background-color:white !important; - min-height:500px; -} - -.nav-tabs { - border: 0; -} - -.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus - { - border: 0; - border-top: 3px solid #F3565D; -} - -.nav-tabs>li>a { - border-radius: 0; -} - -.nav-tabs>li>a:hover { - background-color: #f1f3fa; - border: 1Px solid #f1f3fa; -} - -.c3 { - margin-top: 120px; -} - -.skills-chart-breadcrumb { - -} - -.blue:selected { - border: 0; - background-color: #5b9bd1; -} - -.btn { - /* border-width: 0; */ - /* padding: 7px 14px; */ - /* font-size: 14px; */ - /* outline: none !important; */ - /* background-image: none !important; */ - /* filter: none; */ - /* -webkit-box-shadow: none; */ - -moz-box-shadow: none; - /* box-shadow: none; */ - /* text-shadow: none; */ -} - -select { - border-width: 1px; - padding: 4px 1px; - border-radius: 4px; -} - -.input-sm { - padding: 4px 10px; -} - -.btn-block { - display: block; - width: 100%; - padding-left: 0; - padding-right: 0; -} - -/* Bootstrap buttons */ -.btn-default { - color: #5b9bd1; - background-color: #fff; - border-color: #ccc; -} - -.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active - { - color: #333; - background-color: #ededed; - border-color: #b3b3b3; -} - -.open .btn-default.dropdown-toggle { - color: #333; - background-color: #ededed; - border-color: #b3b3b3; -} - -.btn-default:active,.btn-default.active { - background-image: none; - background-color: #e0e0e0; - font-weight: bold; -} - -.btn-default:active:hover,.btn-default.active:hover { - background-color: #e6e6e6; -} - -.open .btn-default.dropdown-toggle { - background-image: none; -} - -.btn-default.disabled,.btn-default.disabled:hover,.btn-default.disabled:focus,.btn-default.disabled:active,.btn-default.disabled.active,.btn-default[disabled],.btn-default[disabled]:hover,.btn-default[disabled]:focus,.btn-default[disabled]:active,.btn-default[disabled].active,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default:hover,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default.active - { - background-color: #fff; - border-color: #ccc; -} - -.btn-default .badge { - color: #fff; - background-color: #333; -} - -.btn-default>i { - color: #aaa; -} - -.btn-default>i[class^="icon-"],.btn-default>i[class*="icon-"] { - color: #8c8c8c; -} - -div[data-name="tab_zone"] div { - background-color: #f1f3fa; - padding: 0px; -} - -div[data-name="cond_zone"] div { - background-color: #fff; - margin-top: 15px; - margin-bottom: 15px; -} - -div[data-name="res-conds-zone"] { - display: inline; -} - -div[data-name="res-conds-zone"] select,div[data-name="res-conds-zone"] span - { - /**height:33px;*/ - margin-left: 15px; - color: #5b9bd1; - border-color: #ccc; - font-weight: bold; -} - -.input{ - width:250px; - height: 34px; - padding: 6px 12px; - font-size: 14px; - line-height: 1.42857143; - color: #555; - background-color: #fff; - background-image: none; - border: 1px solid #ccc; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075); - box-shadow: inset 0 1px 1px rgba(0,0,0,.075); - -webkit-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; - transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; -} - -div.separator { - margin: 20px; -} - -div.separator div { - text-align: center; - line-height: 0; -} - -div.separator-line { - height: 1px !important; - width: 100%; - background: #ddd; - overflow: hidden; -} - -.dropdown-toggle { - color: #5b9bd1; -} - -.calendar-date { - color: #5b9bd1; -} - -.range_inputs { - color: #5b9bd1; -} - -.btn.dropdown-toggle,.btn-group .btn.dropdown-toggle,.btn:hover,.btn:disabled,.btn[disabled],.btn:focus,.btn:active,.btn.active - { - outline: none !important; - background-image: none !important; - filter: none; - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; - text-shadow: none; -} - -#skills-chart-breadcrumb { - margin-bottom: 10px -} - -/*increase daterangepicker's css*/ -input[name="daterange"] { - width: 220px; - line-height: 0; - height: 31px; - vertical-align: top; - margin-top: 2px; -} - -.daterangepicker .ranges { - width: 205px; -} - -.daterangepicker .ranges input { - width: 95px !important; -} - -td.details-control { - background: url('../image/details_open.png') no-repeat center center; - cursor: pointer; -} - -tr.shown td.details-control { - background: url('../image/details_close.png') no-repeat center center; -} - -.details table td { - word-wrap: break-word; - word-break: normal; - border-top: 1px solid #dddddd; -} - -.details table tr:first-child td { - border-top: none; -} - -.details table { - table-layout: fixed; - width: 100%; -} - -td.title { - width: 10%; -} - -table.dataTable tbody th,table.dataTable tbody td { - padding: 8px 10px; -} - -div.dataTables_length,div.dataTables_info { - display: inline; -} - -div.dataTables_paginate { - display: inline; - float: right; -} - -div.pagination-panel { - margin-right: 10px; -} - -input.pagination-panel-input { - width: 50px; -} - -.daterangepicker .daterangepicker_start_input label,.daterangepicker .daterangepicker_end_input label - { - color: #5b9bd1; -} - -.daterangepicker .ranges .input-mini { - color: #5b9bd1; -} - -.cancelBtn { - padding: 5px 10px 5px 10px; -} - -.btn:focus,.btn:active:focus,.btn.active:focus { - outline: 0; -} - -#ict_host_table_div { - margin-top: 15px; -} - -#ict_host_table_div label { - font-weight: 100; -}s - -#ict_host_table_div table { - width: 100% !important; -} - -.upload { - width:60%; -} -.myPreview { - height: 100px; -} - -.uploadBtn { - margin-top:10px; -} - -.input-group .form-control { - height: 34px !important; -} - -.input-group .btn { - font-size: 14px !important; -} - -.form-horizontal .btn-center { - text-align: center; - margin-bottom: 15px; -} - -.blueactive { - color: #ffffff !important; - background-color: #5b9bd1; -} - -/* .process-modal { - position:fixed; - top:0; - right:0; - bottom:0; - left:0; - z-index:1000; -} -.process-content { - width: 200px; - margin: 200px auto; - padding:15px; - border: 1px solid #ddd; - background-color: #eee; - text-align:center; -} */ \ No newline at end of file diff --git a/openo-portal/portal-catalog/src/main/webapp/catalog/css/package.css b/openo-portal/portal-catalog/src/main/webapp/catalog/css/package.css deleted file mode 100644 index 4d5a4413..00000000 --- a/openo-portal/portal-catalog/src/main/webapp/catalog/css/package.css +++ /dev/null @@ -1,470 +0,0 @@ -/** - * Copyright 2016-2017 ZTE Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -body { - font-family: microsoft yahei !important; -} - -/* blue pill (inspired by iTunes) -*******************************************************************************/ -.redFont{ - color:red; -} -.blue { - - background-color: #5b9bd1; - border-radius: 20px; - color: #fff; - font-weight: bold; - padding: 8px 0; - text-align: center; - width: 100px; -} - -.blue:hover { - background-color: #e8f3fd; - color: #5b9bd1; -} - -.blue.selected { - border: 0; - background-color: #5b9bd1; - color: #fff; -} - -.blue.selected:hover { - border: 0; - background-color: #5b9bd1; - color: #fff; -} - -p { - color: #444; - font-size: 14px; - font-weight: normal; - line-height: 21px; - margin: 0 0 12px 0; -} - -p.credit { - border-top: 1px solid #ccc; - font-size: 14px; - line-height: 140%; - margin: 36px 0 12px 0; - padding: 8px 0 0 0; - text-align: center; -} - -ul.column { - float: left; - list-style: none; - width: 675px; -} - -ul.column li { - background: #eee; - -webkit-border-radius: 5px; - border-radius: 5px; - -webkit-box-shadow: inset 0 1px 1px 0 #c7c7c7; - box-shadow: inset 0 1px 1px 0 #c7c7c7; - float: left; - margin: 10px 0 0 10px; - display: block; - height: 150px; - text-align: center; - width: 215px; -} - -/* Clear Floated Elements -------------------------------------------------------------------------------*/ -.column:after,.button-collection:after,.clearfix:after,div.project-info:after - { - clear: both; - content: ' '; - display: block; - font-size: 0; - line-height: 0; - visibility: hidden; - width: 0; - height: 0; -} - -.container-fluid { - background-color:white !important; - min-height:500px; -} - -.nav-tabs { - border: 0; -} - -.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus - { - border: 0; - border-top: 3px solid #F3565D; -} - -.nav-tabs>li>a { - border-radius: 0; -} - -.nav-tabs>li>a:hover { - background-color: #f1f3fa; - border: 1Px solid #f1f3fa; -} - -.c3 { - margin-top: 120px; -} - -.skills-chart-breadcrumb { - -} - -.blue:selected { - border: 0; - background-color: #5b9bd1; -} - -select { - border-width: 1px; - padding: 4px 1px; - border-radius: 4px; -} - -.input-sm { - padding: 4px 10px; -} - -.btn-block { - display: block; - width: 100%; - padding-left: 0; - padding-right: 0; -} - -/* Bootstrap buttons */ -.btn-default { - color: #5b9bd1; - background-color: #fff; - border-color: #ccc; -} - -.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active - { - color: #333; - background-color: #ededed; - border-color: #b3b3b3; -} - -.open .btn-default.dropdown-toggle { - color: #333; - background-color: #ededed; - border-color: #b3b3b3; -} - -.btn-default:active,.btn-default.active { - background-image: none; - background-color: #e0e0e0; - font-weight: bold; -} - -.btn-default:active:hover,.btn-default.active:hover { - background-color: #e6e6e6; -} - -.open .btn-default.dropdown-toggle { - background-image: none; -} - -.btn-default.disabled,.btn-default.disabled:hover,.btn-default.disabled:focus,.btn-default.disabled:active,.btn-default.disabled.active,.btn-default[disabled],.btn-default[disabled]:hover,.btn-default[disabled]:focus,.btn-default[disabled]:active,.btn-default[disabled].active,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default:hover,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default.active - { - background-color: #fff; - border-color: #ccc; -} - -.btn-default .badge { - color: #fff; - background-color: #333; -} - -.btn-default>i { - color: #aaa; -} - -.btn-default>i[class^="icon-"],.btn-default>i[class*="icon-"] { - color: #8c8c8c; -} - -div[data-name="tab_zone"] div { - background-color: #f1f3fa; - padding: 0px; -} - -div[data-name="cond_zone"] div { - background-color: #fff; - margin-top: 15px; - margin-bottom: 15px; -} - -div[data-name="res-conds-zone"] { - display: inline; -} - -div[data-name="res-conds-zone"] select,div[data-name="res-conds-zone"] span - { - /**height:33px;*/ - margin-left: 15px; - color: #5b9bd1; - border-color: #ccc; - font-weight: bold; -} - -.input{ - width:250px; - height: 34px; - padding: 6px 12px; - font-size: 14px; - line-height: 1.42857143; - color: #555; - background-color: #fff; - background-image: none; - border: 1px solid #ccc; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075); - box-shadow: inset 0 1px 1px rgba(0,0,0,.075); - -webkit-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; - transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; -} - -div.separator { - margin: 20px; -} - -div.separator div { - text-align: center; - line-height: 0; -} - -div.separator-line { - height: 1px !important; - width: 100%; - background: #ddd; - overflow: hidden; -} - -.dropdown-toggle { - color: #5b9bd1; -} - -.calendar-date { - color: #5b9bd1; -} - -.range_inputs { - color: #5b9bd1; -} - -.btn.dropdown-toggle,.btn-group .btn.dropdown-toggle,.btn:hover,.btn:disabled,.btn[disabled],.btn:focus,.btn:active,.btn.active - { - outline: none !important; - background-image: none !important; - filter: none; - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; - text-shadow: none; -} - -#skills-chart-breadcrumb { - margin-bottom: 10px -} - -/*daterangepicker css*/ -input[name="daterange"] { - width: 220px; - line-height: 0; - height: 31px; - vertical-align: top; - margin-top: 2px; -} - -.daterangepicker .ranges { - width: 205px; -} - -.daterangepicker .ranges input { - width: 95px !important; -} - -td.details-control { - background: url('../image/details_open.png') no-repeat center center; - cursor: pointer; -} - -tr.shown td.details-control { - background: url('../image/details_close.png') no-repeat center center; -} - -.details table td { - word-wrap: break-word; - word-break: normal; - border-top: 1px solid #dddddd; -} - -.details table tr:first-child td { - border-top: none; -} - -.details table { - table-layout: fixed; - width: 100%; -} - -td.title { - width: 10%; -} - -table.dataTable tbody th,table.dataTable tbody td { - padding: 8px 10px; -} - -div.dataTables_length,div.dataTables_info { - display: inline; -} - -div.dataTables_paginate { - display: inline; - float: right; -} - -div.pagination-panel { - margin-right: 10px; -} - -input.pagination-panel-input { - width: 50px; -} - -#ict_package_table_div { - margin-top: 15px; -} - -#ict_package_table_div label { - font-weight: 100; -} - -.daterangepicker .daterangepicker_start_input label,.daterangepicker .daterangepicker_end_input label - { - color: #5b9bd1; -} - -.daterangepicker .ranges .input-mini { - color: #5b9bd1; -} - -.cancelBtn { - padding: 5px 10px 5px 10px; -} - -.btn:focus,.btn:active:focus,.btn.active:focus { - outline: 0; -} - -#ict_package_table_div table { - width: 100% !important; -} - -.upload { - width:60%; - margin-top: 10px; -} -.myPreview { - height: 100px; -} - -span.status:hover { - color: #2A69AC; - cursor: pointer; -} - -.input-group .form-control { - height: 34px !important; -} - -.input-group .btn { - font-size: 14px !important; -} - -.package-drop-zone-title{ - color:#aaa; - font-size:20px; - padding:15px 10px -} - -#right-menu { - position:absolute; - top:0; - right:0; - width:420px; - height:100%; - border-left:4px solid rgb(58,174,218); - background-color:rgba(255,255,255,.95); - padding-left:19px; - padding-right:15px; - padding-top:20px; - z-index:9999; - overflow-y: auto; -} - -#right-menu .btn{ - min-width: 30px !important; - letter-spacing :normal !important; -} - -.rigth { - float: right; -} -.right-button-pointer { - display:inline-block; - cursor:pointer -} -.floating-panel { - width:400px; - display:none -} - -.packageDetail { - margin-top:15px; -} - -.packageDetail label { - font-weight: 100; -} - -.packageDetail table { - width:100%; - table-layout: fixed; - word-wrap:break-word; -} - -.tdCenter -{ - display: block; - min-height: 20px; - margin-top: 10px; - margin-bottom: 10px; - text-align:center; -} \ No newline at end of file diff --git a/openo-portal/portal-catalog/src/main/webapp/catalog/css/platform/animate.min.css b/openo-portal/portal-catalog/src/main/webapp/catalog/css/platform/animate.min.css deleted file mode 100644 index 9b2a27d0..00000000 --- a/openo-portal/portal-catalog/src/main/webapp/catalog/css/platform/animate.min.css +++ /dev/null @@ -1,21 +0,0 @@ -/** - * Copyright 2016-2017 ZTE Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -@charset "UTF-8";/*! -Animate.css - http://daneden.me/animate -Licensed under the MIT license - http://opensource.org/licenses/MIT - -Copyright (c) 2014 Daniel Eden -*/.animated{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animated.infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.animated.hinge{-webkit-animation-duration:2s;animation-duration:2s}@-webkit-keyframes bounce{0%,100%,20%,53%,80%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1);-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}40%,43%{-webkit-transition-timing-function:cubic-bezier(0.755,.050,.855,.060);transition-timing-function:cubic-bezier(0.755,.050,.855,.060);-webkit-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}70%{-webkit-transition-timing-function:cubic-bezier(0.755,.050,.855,.060);transition-timing-function:cubic-bezier(0.755,.050,.855,.060);-webkit-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}@keyframes bounce{0%,100%,20%,53%,80%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1);-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}40%,43%{-webkit-transition-timing-function:cubic-bezier(0.755,.050,.855,.060);transition-timing-function:cubic-bezier(0.755,.050,.855,.060);-webkit-transform:translate3d(0,-30px,0);-ms-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}70%{-webkit-transition-timing-function:cubic-bezier(0.755,.050,.855,.060);transition-timing-function:cubic-bezier(0.755,.050,.855,.060);-webkit-transform:translate3d(0,-15px,0);-ms-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);-ms-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}.bounce{-webkit-animation-name:bounce;animation-name:bounce;-webkit-transform-origin:center bottom;-ms-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes flash{0%,100%,50%{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,100%,50%{opacity:1}25%,75%{opacity:0}}.flash{-webkit-animation-name:flash;animation-name:flash}@-webkit-keyframes pulse{0%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}100%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes pulse{0%{-webkit-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);-ms-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}100%{-webkit-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.pulse{-webkit-animation-name:pulse;animation-name:pulse}@-webkit-keyframes rubberBand{0%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(0.75,1.25,1);transform:scale3d(0.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}100%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes rubberBand{0%{-webkit-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}30%{-webkit-transform:scale3d(1.25,.75,1);-ms-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(0.75,1.25,1);-ms-transform:scale3d(0.75,1.25,1);transform:scale3d(0.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);-ms-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);-ms-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);-ms-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}100%{-webkit-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.rubberBand{-webkit-animation-name:rubberBand;animation-name:rubberBand}@-webkit-keyframes shake{0%,100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}@keyframes shake{0%,100%{-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);-ms-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);-ms-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}.shake{-webkit-animation-name:shake;animation-name:shake}@-webkit-keyframes swing{20%{-webkit-transform:rotate3d(0,0,1,15deg);transform:rotate3d(0,0,1,15deg)}40%{-webkit-transform:rotate3d(0,0,1,-10deg);transform:rotate3d(0,0,1,-10deg)}60%{-webkit-transform:rotate3d(0,0,1,5deg);transform:rotate3d(0,0,1,5deg)}80%{-webkit-transform:rotate3d(0,0,1,-5deg);transform:rotate3d(0,0,1,-5deg)}100%{-webkit-transform:rotate3d(0,0,1,0deg);transform:rotate3d(0,0,1,0deg)}}@keyframes swing{20%{-webkit-transform:rotate3d(0,0,1,15deg);-ms-transform:rotate3d(0,0,1,15deg);transform:rotate3d(0,0,1,15deg)}40%{-webkit-transform:rotate3d(0,0,1,-10deg);-ms-transform:rotate3d(0,0,1,-10deg);transform:rotate3d(0,0,1,-10deg)}60%{-webkit-transform:rotate3d(0,0,1,5deg);-ms-transform:rotate3d(0,0,1,5deg);transform:rotate3d(0,0,1,5deg)}80%{-webkit-transform:rotate3d(0,0,1,-5deg);-ms-transform:rotate3d(0,0,1,-5deg);transform:rotate3d(0,0,1,-5deg)}100%{-webkit-transform:rotate3d(0,0,1,0deg);-ms-transform:rotate3d(0,0,1,0deg);transform:rotate3d(0,0,1,0deg)}}.swing{-webkit-transform-origin:top center;-ms-transform-origin:top center;transform-origin:top center;-webkit-animation-name:swing;animation-name:swing}@-webkit-keyframes tada{0%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg);transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg)}100%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes tada{0%{-webkit-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg);-ms-transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg);transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg);-ms-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg);-ms-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg)}100%{-webkit-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.tada{-webkit-animation-name:tada;animation-name:tada}@-webkit-keyframes wobble{0%{-webkit-transform:none;transform:none}15%{-webkit-transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg);transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg);transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg);transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg);transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg);transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg)}100%{-webkit-transform:none;transform:none}}@keyframes wobble{0%{-webkit-transform:none;-ms-transform:none;transform:none}15%{-webkit-transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg);-ms-transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg);transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg);-ms-transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg);transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg);-ms-transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg);transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg);-ms-transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg);transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg);-ms-transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg);transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg)}100%{-webkit-transform:none;-ms-transform:none;transform:none}}.wobble{-webkit-animation-name:wobble;animation-name:wobble}@-webkit-keyframes bounceIn{0%,100%,20%,40%,60%,80%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}100%{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes bounceIn{0%,100%,20%,40%,60%,80%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);-ms-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);-ms-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);-ms-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);-ms-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);-ms-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}100%{opacity:1;-webkit-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.bounceIn{-webkit-animation-name:bounceIn;animation-name:bounceIn;-webkit-animation-duration:.75s;animation-duration:.75s}@-webkit-keyframes bounceInDown{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}100%{-webkit-transform:none;transform:none}}@keyframes bounceInDown{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);-ms-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);-ms-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);-ms-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);-ms-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}100%{-webkit-transform:none;-ms-transform:none;transform:none}}.bounceInDown{-webkit-animation-name:bounceInDown;animation-name:bounceInDown}@-webkit-keyframes bounceInLeft{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}100%{-webkit-transform:none;transform:none}}@keyframes bounceInLeft{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);-ms-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);-ms-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);-ms-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);-ms-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}100%{-webkit-transform:none;-ms-transform:none;transform:none}}.bounceInLeft{-webkit-animation-name:bounceInLeft;animation-name:bounceInLeft}@-webkit-keyframes bounceInRight{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}100%{-webkit-transform:none;transform:none}}@keyframes bounceInRight{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0);-ms-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);-ms-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);-ms-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);-ms-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}100%{-webkit-transform:none;-ms-transform:none;transform:none}}.bounceInRight{-webkit-animation-name:bounceInRight;animation-name:bounceInRight}@-webkit-keyframes bounceInUp{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes bounceInUp{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0);-ms-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);-ms-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);-ms-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);-ms-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}100%{-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.bounceInUp{-webkit-animation-name:bounceInUp;animation-name:bounceInUp}@-webkit-keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}100%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);-ms-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);-ms-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}100%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);-ms-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}.bounceOut{-webkit-animation-name:bounceOut;animation-name:bounceOut;-webkit-animation-duration:.75s;animation-duration:.75s}@-webkit-keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}100%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);-ms-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);-ms-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}100%{opacity:0;-webkit-transform:translate3d(0,2000px,0);-ms-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.bounceOutDown{-webkit-animation-name:bounceOutDown;animation-name:bounceOutDown}@-webkit-keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}100%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);-ms-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}100%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);-ms-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.bounceOutLeft{-webkit-animation-name:bounceOutLeft;animation-name:bounceOutLeft}@-webkit-keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}100%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);-ms-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}100%{opacity:0;-webkit-transform:translate3d(2000px,0,0);-ms-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.bounceOutRight{-webkit-animation-name:bounceOutRight;animation-name:bounceOutRight}@-webkit-keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}100%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);-ms-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);-ms-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}100%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);-ms-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.bounceOutUp{-webkit-animation-name:bounceOutUp;animation-name:bounceOutUp}@-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}.fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);-ms-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInDown{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}@-webkit-keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);-ms-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInDownBig{-webkit-animation-name:fadeInDownBig;animation-name:fadeInDownBig}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);-ms-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInLeft{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}@-webkit-keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);-ms-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInLeftBig{-webkit-animation-name:fadeInLeftBig;animation-name:fadeInLeftBig}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);-ms-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInRight{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}@-webkit-keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);-ms-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInRightBig{-webkit-animation-name:fadeInRightBig;animation-name:fadeInRightBig}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);-ms-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInUp{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}@-webkit-keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);-ms-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInUpBig{-webkit-animation-name:fadeInUpBig;animation-name:fadeInUpBig}@-webkit-keyframes fadeOut{0%{opacity:1}100%{opacity:0}}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}.fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}@-webkit-keyframes fadeOutDown{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes fadeOutDown{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,100%,0);-ms-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.fadeOutDown{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}@-webkit-keyframes fadeOutDownBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes fadeOutDownBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,2000px,0);-ms-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.fadeOutDownBig{-webkit-animation-name:fadeOutDownBig;animation-name:fadeOutDownBig}@-webkit-keyframes fadeOutLeft{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes fadeOutLeft{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-100%,0,0);-ms-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.fadeOutLeft{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}@-webkit-keyframes fadeOutLeftBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes fadeOutLeftBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);-ms-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.fadeOutLeftBig{-webkit-animation-name:fadeOutLeftBig;animation-name:fadeOutLeftBig}@-webkit-keyframes fadeOutRight{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes fadeOutRight{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%,0,0);-ms-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.fadeOutRight{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeOutRightBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes fadeOutRightBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(2000px,0,0);-ms-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.fadeOutRightBig{-webkit-animation-name:fadeOutRightBig;animation-name:fadeOutRightBig}@-webkit-keyframes fadeOutUp{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes fadeOutUp{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,-100%,0);-ms-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.fadeOutUp{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}@-webkit-keyframes fadeOutUpBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes fadeOutUpBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);-ms-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.fadeOutUpBig{-webkit-animation-name:fadeOutUpBig;animation-name:fadeOutUpBig}@-webkit-keyframes flip{0%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-360deg);transform:perspective(400px) rotate3d(0,1,0,-360deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95);transform:perspective(400px) scale3d(.95,.95,.95);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}100%{-webkit-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}@keyframes flip{0%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-360deg);-ms-transform:perspective(400px) rotate3d(0,1,0,-360deg);transform:perspective(400px) rotate3d(0,1,0,-360deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);-ms-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);-ms-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95);-ms-transform:perspective(400px) scale3d(.95,.95,.95);transform:perspective(400px) scale3d(.95,.95,.95);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}100%{-webkit-transform:perspective(400px);-ms-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}.animated.flip{-webkit-backface-visibility:visible;-ms-backface-visibility:visible;backface-visibility:visible;-webkit-animation-name:flip;animation-name:flip}@-webkit-keyframes flipInX{0%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1,0,0,10deg);transform:perspective(400px) rotate3d(1,0,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-5deg);transform:perspective(400px) rotate3d(1,0,0,-5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInX{0%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);-ms-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);-ms-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1,0,0,10deg);-ms-transform:perspective(400px) rotate3d(1,0,0,10deg);transform:perspective(400px) rotate3d(1,0,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-5deg);-ms-transform:perspective(400px) rotate3d(1,0,0,-5deg);transform:perspective(400px) rotate3d(1,0,0,-5deg)}100%{-webkit-transform:perspective(400px);-ms-transform:perspective(400px);transform:perspective(400px)}}.flipInX{-webkit-backface-visibility:visible!important;-ms-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInX;animation-name:flipInX}@-webkit-keyframes flipInY{0%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-20deg);transform:perspective(400px) rotate3d(0,1,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(0,1,0,10deg);transform:perspective(400px) rotate3d(0,1,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-5deg);transform:perspective(400px) rotate3d(0,1,0,-5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInY{0%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);-ms-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-20deg);-ms-transform:perspective(400px) rotate3d(0,1,0,-20deg);transform:perspective(400px) rotate3d(0,1,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(0,1,0,10deg);-ms-transform:perspective(400px) rotate3d(0,1,0,10deg);transform:perspective(400px) rotate3d(0,1,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-5deg);-ms-transform:perspective(400px) rotate3d(0,1,0,-5deg);transform:perspective(400px) rotate3d(0,1,0,-5deg)}100%{-webkit-transform:perspective(400px);-ms-transform:perspective(400px);transform:perspective(400px)}}.flipInY{-webkit-backface-visibility:visible!important;-ms-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInY;animation-name:flipInY}@-webkit-keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);opacity:0}}@keyframes flipOutX{0%{-webkit-transform:perspective(400px);-ms-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);-ms-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);-ms-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);opacity:0}}.flipOutX{-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-backface-visibility:visible!important;-ms-backface-visibility:visible!important;backface-visibility:visible!important}@-webkit-keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-15deg);transform:perspective(400px) rotate3d(0,1,0,-15deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);opacity:0}}@keyframes flipOutY{0%{-webkit-transform:perspective(400px);-ms-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-15deg);-ms-transform:perspective(400px) rotate3d(0,1,0,-15deg);transform:perspective(400px) rotate3d(0,1,0,-15deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);-ms-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);opacity:0}}.flipOutY{-webkit-backface-visibility:visible!important;-ms-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipOutY;animation-name:flipOutY;-webkit-animation-duration:.75s;animation-duration:.75s}@-webkit-keyframes lightSpeedIn{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg);opacity:1}100%{-webkit-transform:none;transform:none;opacity:1}}@keyframes lightSpeedIn{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);-ms-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);-ms-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);-ms-transform:skewX(-5deg);transform:skewX(-5deg);opacity:1}100%{-webkit-transform:none;-ms-transform:none;transform:none;opacity:1}}.lightSpeedIn{-webkit-animation-name:lightSpeedIn;animation-name:lightSpeedIn;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedOut{0%{opacity:1}100%{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}@keyframes lightSpeedOut{0%{opacity:1}100%{-webkit-transform:translate3d(100%,0,0) skewX(30deg);-ms-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}.lightSpeedOut{-webkit-animation-name:lightSpeedOut;animation-name:lightSpeedOut;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes rotateIn{0%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,-200deg);transform:rotate3d(0,0,1,-200deg);opacity:0}100%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateIn{0%{-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,-200deg);-ms-transform:rotate3d(0,0,1,-200deg);transform:rotate3d(0,0,1,-200deg);opacity:0}100%{-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;-webkit-transform:none;-ms-transform:none;transform:none;opacity:1}}.rotateIn{-webkit-animation-name:rotateIn;animation-name:rotateIn}@-webkit-keyframes rotateInDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInDownLeft{0%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);-ms-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}100%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;-ms-transform:none;transform:none;opacity:1}}.rotateInDownLeft{-webkit-animation-name:rotateInDownLeft;animation-name:rotateInDownLeft}@-webkit-keyframes rotateInDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInDownRight{0%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,45deg);-ms-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}100%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;-ms-transform:none;transform:none;opacity:1}}.rotateInDownRight{-webkit-animation-name:rotateInDownRight;animation-name:rotateInDownRight}@-webkit-keyframes rotateInUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInUpLeft{0%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,45deg);-ms-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}100%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;-ms-transform:none;transform:none;opacity:1}}.rotateInUpLeft{-webkit-animation-name:rotateInUpLeft;animation-name:rotateInUpLeft}@-webkit-keyframes rotateInUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-90deg);transform:rotate3d(0,0,1,-90deg);opacity:0}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInUpRight{0%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-90deg);-ms-transform:rotate3d(0,0,1,-90deg);transform:rotate3d(0,0,1,-90deg);opacity:0}100%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;-ms-transform:none;transform:none;opacity:1}}.rotateInUpRight{-webkit-animation-name:rotateInUpRight;animation-name:rotateInUpRight}@-webkit-keyframes rotateOut{0%{-webkit-transform-origin:center;transform-origin:center;opacity:1}100%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,200deg);transform:rotate3d(0,0,1,200deg);opacity:0}}@keyframes rotateOut{0%{-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;opacity:1}100%{-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,200deg);-ms-transform:rotate3d(0,0,1,200deg);transform:rotate3d(0,0,1,200deg);opacity:0}}.rotateOut{-webkit-animation-name:rotateOut;animation-name:rotateOut}@-webkit-keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(0,0,1,45deg);transform:rotate(0,0,1,45deg);opacity:0}}@keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;opacity:1}100%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(0,0,1,45deg);-ms-transform:rotate(0,0,1,45deg);transform:rotate(0,0,1,45deg);opacity:0}}.rotateOutDownLeft{-webkit-animation-name:rotateOutDownLeft;animation-name:rotateOutDownLeft}@-webkit-keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}@keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;opacity:1}100%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-45deg);-ms-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}.rotateOutDownRight{-webkit-animation-name:rotateOutDownRight;animation-name:rotateOutDownRight}@-webkit-keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}@keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;opacity:1}100%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);-ms-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}.rotateOutUpLeft{-webkit-animation-name:rotateOutUpLeft;animation-name:rotateOutUpLeft}@-webkit-keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,90deg);transform:rotate3d(0,0,1,90deg);opacity:0}}@keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;opacity:1}100%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,90deg);-ms-transform:rotate3d(0,0,1,90deg);transform:rotate3d(0,0,1,90deg);opacity:0}}.rotateOutUpRight{-webkit-animation-name:rotateOutUpRight;animation-name:rotateOutUpRight}@-webkit-keyframes hinge{0%{-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate3d(0,0,1,80deg);transform:rotate3d(0,0,1,80deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate3d(0,0,1,60deg);transform:rotate3d(0,0,1,60deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}100%{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}@keyframes hinge{0%{-webkit-transform-origin:top left;-ms-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate3d(0,0,1,80deg);-ms-transform:rotate3d(0,0,1,80deg);transform:rotate3d(0,0,1,80deg);-webkit-transform-origin:top left;-ms-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate3d(0,0,1,60deg);-ms-transform:rotate3d(0,0,1,60deg);transform:rotate3d(0,0,1,60deg);-webkit-transform-origin:top left;-ms-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}100%{-webkit-transform:translate3d(0,700px,0);-ms-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}.hinge{-webkit-animation-name:hinge;animation-name:hinge}@-webkit-keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg);transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg);-ms-transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg);transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.rollIn{-webkit-animation-name:rollIn;animation-name:rollIn}@-webkit-keyframes rollOut{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg);transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg)}}@keyframes rollOut{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg);-ms-transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg);transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg)}}.rollOut{-webkit-animation-name:rollOut;animation-name:rollOut}@-webkit-keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);-ms-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}.zoomIn{-webkit-animation-name:zoomIn;animation-name:zoomIn}@-webkit-keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-ms-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-ms-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.zoomInDown{-webkit-animation-name:zoomInDown;animation-name:zoomInDown}@-webkit-keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-ms-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-ms-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.zoomInLeft{-webkit-animation-name:zoomInLeft;animation-name:zoomInLeft}@-webkit-keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-ms-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-ms-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.zoomInRight{-webkit-animation-name:zoomInRight;animation-name:zoomInRight}@-webkit-keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-ms-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-ms-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.zoomInUp{-webkit-animation-name:zoomInUp;animation-name:zoomInUp}@-webkit-keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}100%{opacity:0}}@keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);-ms-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}100%{opacity:0}}.zoomOut{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}100%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-ms-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}100%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-ms-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;-ms-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.zoomOutDown{-webkit-animation-name:zoomOutDown;animation-name:zoomOutDown}@-webkit-keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}100%{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;transform-origin:left center}}@keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);-ms-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}100%{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);-ms-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;-ms-transform-origin:left center;transform-origin:left center}}.zoomOutLeft{-webkit-animation-name:zoomOutLeft;animation-name:zoomOutLeft}@-webkit-keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}100%{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;transform-origin:right center}}@keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);-ms-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}100%{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);-ms-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;-ms-transform-origin:right center;transform-origin:right center}}.zoomOutRight{-webkit-animation-name:zoomOutRight;animation-name:zoomOutRight}@-webkit-keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}100%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-ms-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}100%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-ms-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;-ms-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.zoomOutUp{-webkit-animation-name:zoomOutUp;animation-name:zoomOutUp} \ No newline at end of file diff --git a/openo-portal/portal-catalog/src/main/webapp/catalog/css/platform/skill.css b/openo-portal/portal-catalog/src/main/webapp/catalog/css/platform/skill.css deleted file mode 100644 index 74669cdf..00000000 --- a/openo-portal/portal-catalog/src/main/webapp/catalog/css/platform/skill.css +++ /dev/null @@ -1,89 +0,0 @@ -/** - * Copyright 2016-2017 ZTE Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -body { - font-family: 'Open Sans', sans-serif; - background-color: #f1f3fa; - width: '100%'; - height: '100%'; - margin-top: 10px; -} -div.skills-sunburst{ - font-size: 12px; - font-weight: 400; - text-align:center; -} - -#skillmap .skills-wrapper { - margin-top: 10px; - overflow: auto; -} -#skillmap .skills-sunburst { - float: left; - width: 500px; - margin-left: -80px; -} -#skillmap .skills-sunburst svg { - font: 11px 'Source Sans Pro', sans-serif; - font-weight: 900; - - cursor: pointer; -} -#skillmap .skills-chart { - float: right; - font-family: 'Source Sans Pro', sans-serif; - font-size: 15px; - margin: 80px 20px 0 0; -} -#skillmap .skills-chart .breadcumb-text { - font-size: 13px; - font-weight: 700; -} -#skillmap .skills-chart #skills-chart-line { - fill: none; - stroke-width: 3.5px; -} -#skillmap .skills-chart .axis path, -#skillmap .skills-chart .axis line { - fill: none; -} -#skillmap .skills-chart .x-axis path, -#skillmap .skills-chart .y-axis path { - stroke: #444; - stroke-width: 1px; - shape-rendering: geometricPrecision; -} - -#explanation { - position: absolute; - top: 165px; - left: 170px; - width: 140px; - text-align: center; - color: #666; - margin-top:30px; -} - -#percentage { - font-size: 2em; -} - -#endlabel{ - font-sizte:1.5em; -} - -div.skills-sunburst text{ - text-anchor: middle; -} \ No newline at end of file diff --git a/openo-portal/portal-catalog/src/main/webapp/catalog/css/software.css b/openo-portal/portal-catalog/src/main/webapp/catalog/css/software.css deleted file mode 100644 index 96087633..00000000 --- a/openo-portal/portal-catalog/src/main/webapp/catalog/css/software.css +++ /dev/null @@ -1,423 +0,0 @@ -/** - * Copyright 2016-2017 ZTE Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -body { - font-family: microsoft yahei !important; -} - -/* blue pill (inspired by iTunes) -*******************************************************************************/ -.redFont{ - color:red; -} -.blue { - - background-color: #5b9bd1; - border-radius: 20px; - color: #fff; - font-weight: bold; - padding: 8px 0; - text-align: center; - width: 100px; -} - -.blue:hover { - background-color: #e8f3fd; - color: #5b9bd1; -} - -.blue.selected { - border: 0; - background-color: #5b9bd1; - color: #fff; -} - -.blue.selected:hover { - border: 0; - background-color: #5b9bd1; - color: #fff; -} - -p { - color: #444; - font-size: 14px; - font-weight: normal; - line-height: 21px; - margin: 0 0 12px 0; -} - -p.credit { - border-top: 1px solid #ccc; - font-size: 14px; - line-height: 140%; - margin: 36px 0 12px 0; - padding: 8px 0 0 0; - text-align: center; -} - -ul.column { - float: left; - list-style: none; - width: 675px; -} - -ul.column li { - background: #eee; - -webkit-border-radius: 5px; - border-radius: 5px; - -webkit-box-shadow: inset 0 1px 1px 0 #c7c7c7; - box-shadow: inset 0 1px 1px 0 #c7c7c7; - float: left; - margin: 10px 0 0 10px; - display: block; - height: 150px; - text-align: center; - width: 215px; -} - -/* Clear Floated Elements -------------------------------------------------------------------------------*/ -.column:after,.button-collection:after,.clearfix:after,div.project-info:after - { - clear: both; - content: ' '; - display: block; - font-size: 0; - line-height: 0; - visibility: hidden; - width: 0; - height: 0; -} - -.container-fluid { - background-color:white !important; - min-height:500px; -} - -.nav-tabs { - border: 0; -} - -.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus - { - border: 0; - border-top: 3px solid #F3565D; -} - -.nav-tabs>li>a { - border-radius: 0; -} - -.nav-tabs>li>a:hover { - background-color: #f1f3fa; - border: 1Px solid #f1f3fa; -} - -.c3 { - margin-top: 120px; -} - -.skills-chart-breadcrumb { - -} - -.blue:selected { - border: 0; - background-color: #5b9bd1; -} - -.btn { - /* border-width: 0; */ - /* padding: 7px 14px; */ - /* font-size: 14px; */ - /* outline: none !important; */ - /* background-image: none !important; */ - /* filter: none; */ - /* -webkit-box-shadow: none; */ - -moz-box-shadow: none; - /* box-shadow: none; */ - /* text-shadow: none; */ -} - -select { - border-width: 1px; - padding: 4px 1px; - border-radius: 4px; -} - -.input-sm { - padding: 4px 10px; -} - -.btn-block { - display: block; - width: 100%; - padding-left: 0; - padding-right: 0; -} - -/* Bootstrap buttons */ -.btn-default { - color: #5b9bd1; - background-color: #fff; - border-color: #ccc; -} - -.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active - { - color: #333; - background-color: #ededed; - border-color: #b3b3b3; -} - -.open .btn-default.dropdown-toggle { - color: #333; - background-color: #ededed; - border-color: #b3b3b3; -} - -.btn-default:active,.btn-default.active { - background-image: none; - background-color: #e0e0e0; - font-weight: bold; -} - -.btn-default:active:hover,.btn-default.active:hover { - background-color: #e6e6e6; -} - -.open .btn-default.dropdown-toggle { - background-image: none; -} - -.btn-default.disabled,.btn-default.disabled:hover,.btn-default.disabled:focus,.btn-default.disabled:active,.btn-default.disabled.active,.btn-default[disabled],.btn-default[disabled]:hover,.btn-default[disabled]:focus,.btn-default[disabled]:active,.btn-default[disabled].active,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default:hover,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default.active - { - background-color: #fff; - border-color: #ccc; -} - -.btn-default .badge { - color: #fff; - background-color: #333; -} - -.btn-default>i { - color: #aaa; -} - -.btn-default>i[class^="icon-"],.btn-default>i[class*="icon-"] { - color: #8c8c8c; -} - -div[data-name="tab_zone"] div { - background-color: #f1f3fa; - padding: 0px; -} - -div[data-name="cond_zone"] div { - background-color: #fff; - margin-top: 15px; - margin-bottom: 15px; -} - -div[data-name="res-conds-zone"] { - display: inline; -} - -div[data-name="res-conds-zone"] select,div[data-name="res-conds-zone"] span - { - /**height:33px;*/ - margin-left: 15px; - color: #5b9bd1; - border-color: #ccc; - font-weight: bold; -} - -.input{ - width:250px; - height: 34px; - padding: 6px 12px; - font-size: 14px; - line-height: 1.42857143; - color: #555; - background-color: #fff; - background-image: none; - border: 1px solid #ccc; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075); - box-shadow: inset 0 1px 1px rgba(0,0,0,.075); - -webkit-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; - transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; -} - -div.separator { - margin: 20px; -} - -div.separator div { - text-align: center; - line-height: 0; -} - -div.separator-line { - height: 1px !important; - width: 100%; - background: #ddd; - overflow: hidden; -} - -.dropdown-toggle { - color: #5b9bd1; -} - -.calendar-date { - color: #5b9bd1; -} - -.range_inputs { - color: #5b9bd1; -} - -.btn.dropdown-toggle,.btn-group .btn.dropdown-toggle,.btn:hover,.btn:disabled,.btn[disabled],.btn:focus,.btn:active,.btn.active - { - outline: none !important; - background-image: none !important; - filter: none; - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; - text-shadow: none; -} - -#skills-chart-breadcrumb { - margin-bottom: 10px -} - -/*increase daterangepicker's css*/ -input[name="daterange"] { - width: 220px; - line-height: 0; - height: 31px; - vertical-align: top; - margin-top: 2px; -} - -.daterangepicker .ranges { - width: 205px; -} - -.daterangepicker .ranges input { - width: 95px !important; -} - -td.details-control { - background: url('../image/details_open.png') no-repeat center center; - cursor: pointer; -} - -tr.shown td.details-control { - background: url('../image/details_close.png') no-repeat center center; -} - -.details table td { - word-wrap: break-word; - word-break: normal; - border-top: 1px solid #dddddd; -} - -.details table tr:first-child td { - border-top: none; -} - -.details table { - table-layout: fixed; - width: 100%; -} - -td.title { - width: 10%; -} - -table.dataTable tbody th,table.dataTable tbody td { - padding: 8px 10px; -} - -div.dataTables_length,div.dataTables_info { - display: inline; -} - -div.dataTables_paginate { - display: inline; - float: right; -} - -div.pagination-panel { - margin-right: 10px; -} - -input.pagination-panel-input { - width: 50px; -} - -.daterangepicker .daterangepicker_start_input label,.daterangepicker .daterangepicker_end_input label - { - color: #5b9bd1; -} - -.daterangepicker .ranges .input-mini { - color: #5b9bd1; -} - -.cancelBtn { - padding: 5px 10px 5px 10px; -} - -.btn:focus,.btn:active:focus,.btn.active:focus { - outline: 0; -} - -#ict_software_table_div { - margin-top: 10px; -} - -#ict_software_table_div label { - font-weight: 100; -}s - -#ict_software_table_div table { - width: 100% !important; -} - -.upload { - width:60%; -} -.myPreview { - height: 100px; -} - -.uploadBtn { - margin-top:10px; -} - -.file-input { - display: inline; - overflow: hidden; - word-break: break-all; - text-overflow: ellipsis; -} - -.input-group .btn { - font-size: 14px !important; -} \ No newline at end of file diff --git a/openo-portal/portal-catalog/src/main/webapp/catalog/css/template.css b/openo-portal/portal-catalog/src/main/webapp/catalog/css/template.css deleted file mode 100644 index c29de322..00000000 --- a/openo-portal/portal-catalog/src/main/webapp/catalog/css/template.css +++ /dev/null @@ -1,405 +0,0 @@ -/** - * Copyright 2016-2017 ZTE Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -body { - font-family: microsoft yahei !important; -} - -/* blue pill (inspired by iTunes) -*******************************************************************************/ -.redFont{ - color:red; -} -.blue { - - background-color: #5b9bd1; - border-radius: 20px; - color: #fff; - font-weight: bold; - padding: 8px 0; - text-align: center; - width: 100px; -} - -.blue:hover { - background-color: #e8f3fd; - color: #5b9bd1; -} - -.blue.selected { - border: 0; - background-color: #5b9bd1; - color: #fff; -} - -.blue.selected:hover { - border: 0; - background-color: #5b9bd1; - color: #fff; -} - -a { - text-decoration: none !important; -} - -p { - color: #444; - font-size: 14px; - font-weight: normal; - line-height: 21px; - margin: 0 0 12px 0; -} - -p.credit { - border-top: 1px solid #ccc; - font-size: 14px; - line-height: 140%; - margin: 36px 0 12px 0; - padding: 8px 0 0 0; - text-align: center; -} - -ul.column { - float: left; - list-style: none; - width: 675px; -} - -ul.column li { - background: #eee; - -webkit-border-radius: 5px; - border-radius: 5px; - -webkit-box-shadow: inset 0 1px 1px 0 #c7c7c7; - box-shadow: inset 0 1px 1px 0 #c7c7c7; - float: left; - margin: 10px 0 0 10px; - display: block; - height: 150px; - text-align: center; - width: 215px; -} - -/* Clear Floated Elements -------------------------------------------------------------------------------*/ -.column:after,.button-collection:after,.clearfix:after,div.project-info:after - { - clear: both; - content: ' '; - display: block; - font-size: 0; - line-height: 0; - visibility: hidden; - width: 0; - height: 0; -} - -.container-fluid { - background-color:white !important; - min-height:500px; -} - -.nav-tabs { - border: 0; -} - -.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus - { - border: 0; - border-top: 3px solid #F3565D; -} - -.nav-tabs>li>a { - border-radius: 0; -} - -.nav-tabs>li>a:hover { - background-color: #f1f3fa; - border: 1Px solid #f1f3fa; -} - -.c3 { - margin-top: 120px; -} - -.skills-chart-breadcrumb { - -} - -.blue:selected { - border: 0; - background-color: #5b9bd1; -} - -.btn { - /* border-width: 0; */ - /* padding: 7px 14px; */ - /* font-size: 14px; */ - /* outline: none !important; */ - /* background-image: none !important; */ - /* filter: none; */ - /* -webkit-box-shadow: none; */ - -moz-box-shadow: none; - /* box-shadow: none; */ - /* text-shadow: none; */ -} - -select { - border-width: 1px; - padding: 4px 1px; - border-radius: 4px; -} - -.input-sm { - padding: 4px 10px; -} - -.btn-block { - display: block; - width: 100%; - padding-left: 0; - padding-right: 0; -} - -/* Bootstrap buttons */ -.btn-default { - color: #5b9bd1; - background-color: #fff; - border-color: #ccc; -} - -.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active - { - color: #333; - background-color: #ededed; - border-color: #b3b3b3; -} - -.open .btn-default.dropdown-toggle { - color: #333; - background-color: #ededed; - border-color: #b3b3b3; -} - -.btn-default:active,.btn-default.active { - background-image: none; - background-color: #e0e0e0; - font-weight: bold; -} - -.btn-default:active:hover,.btn-default.active:hover { - background-color: #e6e6e6; -} - -.open .btn-default.dropdown-toggle { - background-image: none; -} - -.btn-default.disabled,.btn-default.disabled:hover,.btn-default.disabled:focus,.btn-default.disabled:active,.btn-default.disabled.active,.btn-default[disabled],.btn-default[disabled]:hover,.btn-default[disabled]:focus,.btn-default[disabled]:active,.btn-default[disabled].active,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default:hover,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default.active - { - background-color: #fff; - border-color: #ccc; -} - -.btn-default .badge { - color: #fff; - background-color: #333; -} - -.btn-default>i { - color: #aaa; -} - -.btn-default>i[class^="icon-"],.btn-default>i[class*="icon-"] { - color: #8c8c8c; -} - -div[data-name="tab_zone"] div { - background-color: #f1f3fa; - padding: 0px; -} - -div[data-name="cond_zone"] div { - background-color: #fff; - margin-top: 15px; - margin-bottom: 15px; -} - -div[data-name="res-conds-zone"] { - display: inline; -} - -div[data-name="res-conds-zone"] select,div[data-name="res-conds-zone"] span - { - /**height:33px;*/ - margin-left: 15px; - color: #5b9bd1; - border-color: #ccc; - font-weight: bold; -} - -.input{ - width:250px; - height: 34px; - padding: 6px 12px; - font-size: 14px; - line-height: 1.42857143; - color: #555; - background-color: #fff; - background-image: none; - border: 1px solid #ccc; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075); - box-shadow: inset 0 1px 1px rgba(0,0,0,.075); - -webkit-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; - transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; -} - -div.separator { - margin: 20px; -} - -div.separator div { - text-align: center; - line-height: 0; -} - -div.separator-line { - height: 1px !important; - width: 100%; - background: #ddd; - overflow: hidden; -} - -.dropdown-toggle { - color: #5b9bd1; -} - -.calendar-date { - color: #5b9bd1; -} - -.range_inputs { - color: #5b9bd1; -} - -.btn.dropdown-toggle,.btn-group .btn.dropdown-toggle,.btn:hover,.btn:disabled,.btn[disabled],.btn:focus,.btn:active,.btn.active - { - outline: none !important; - background-image: none !important; - filter: none; - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; - text-shadow: none; -} - -#skills-chart-breadcrumb { - margin-bottom: 10px -} - -/*increase daterangepicker's css*/ -input[name="daterange"] { - width: 220px; - line-height: 0; - height: 31px; - vertical-align: top; - margin-top: 2px; -} - -.daterangepicker .ranges { - width: 205px; -} - -.daterangepicker .ranges input { - width: 95px !important; -} - -td.details-control { - background: url('../image/details_open.png') no-repeat center center; - cursor: pointer; -} - -tr.shown td.details-control { - background: url('../image/details_close.png') no-repeat center center; -} - -.details table td { - word-wrap: break-word; - word-break: normal; - border-top: 1px solid #dddddd; -} - -.details table tr:first-child td { - border-top: none; -} - -.details table { - table-layout: fixed; - width: 100%; -} - -td.title { - width: 10%; -} - -table.dataTable tbody th,table.dataTable tbody td { - padding: 8px 10px; -} - -div.dataTables_length,div.dataTables_info { - display: inline; -} - -div.dataTables_paginate { - display: inline; - float: right; -} - -div.pagination-panel { - margin-right: 10px; -} - -input.pagination-panel-input { - width: 50px; -} - -#ict_template_table_div { - margin-top: 15px; -} - -#ict_template_table_div label { - font-weight: 100; -} - -.daterangepicker .daterangepicker_start_input label,.daterangepicker .daterangepicker_end_input label - { - color: #5b9bd1; -} - -.daterangepicker .ranges .input-mini { - color: #5b9bd1; -} - -.cancelBtn { - padding: 5px 10px 5px 10px; -} - -.btn:focus,.btn:active:focus,.btn.active:focus { - outline: 0; -} - -#ict_template_table_div table { - width: 100% !important; -} \ No newline at end of file diff --git a/openo-portal/portal-catalog/src/main/webapp/catalog/css/templateDetail.css b/openo-portal/portal-catalog/src/main/webapp/catalog/css/templateDetail.css deleted file mode 100644 index ec1335d8..00000000 --- a/openo-portal/portal-catalog/src/main/webapp/catalog/css/templateDetail.css +++ /dev/null @@ -1,480 +0,0 @@ -/** - * Copyright 2016-2017 ZTE Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -body { - font-family: microsoft yahei !important; -} - -/* blue pill (inspired by iTunes) -*******************************************************************************/ -.redFont{ - color:red; -} -.blue { - - background-color: #5b9bd1; - border-radius: 20px; - color: #fff; - font-weight: bold; - padding: 8px 0; - text-align: center; - width: 100px; -} - -.blue:hover { - background-color: #e8f3fd; - color: #5b9bd1; -} - -.blue.selected { - border: 0; - background-color: #5b9bd1; - color: #fff; -} - -.blue.selected:hover { - border: 0; - background-color: #5b9bd1; - color: #fff; -} - -a { - text-decoration: none !important; -} - -p { - color: #444; - font-size: 14px; - font-weight: normal; - line-height: 21px; - margin: 0 0 12px 0; -} - -p.credit { - border-top: 1px solid #ccc; - font-size: 14px; - line-height: 140%; - margin: 36px 0 12px 0; - padding: 8px 0 0 0; - text-align: center; -} - -ul.column { - float: left; - list-style: none; - width: 675px; -} - -ul.column li { - background: #eee; - -webkit-border-radius: 5px; - border-radius: 5px; - -webkit-box-shadow: inset 0 1px 1px 0 #c7c7c7; - box-shadow: inset 0 1px 1px 0 #c7c7c7; - float: left; - margin: 10px 0 0 10px; - display: block; - height: 150px; - text-align: center; - width: 215px; -} - -/* Clear Floated Elements -------------------------------------------------------------------------------*/ -.column:after,.button-collection:after,.clearfix:after,div.project-info:after - { - clear: both; - content: ' '; - display: block; - font-size: 0; - line-height: 0; - visibility: hidden; - width: 0; - height: 0; -} - -.container-fluid { - background-color:white !important; - min-height:800px; -} - -.nav-tabs { - border: 0; -} - -.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus - { - border: 0; - border-top: 3px solid #F3565D; -} - -.nav-tabs>li>a { - border-radius: 0; -} - -.nav-tabs>li>a:hover { - background-color: #f1f3fa; - border: 1Px solid #f1f3fa; -} - -.c3 { - margin-top: 120px; -} - -.skills-chart-breadcrumb { - -} - -.blue:selected { - border: 0; - background-color: #5b9bd1; -} - -.btn { - /* border-width: 0; */ - /* padding: 7px 14px; */ - /* font-size: 14px; */ - /* outline: none !important; */ - /* background-image: none !important; */ - /* filter: none; */ - /* -webkit-box-shadow: none; */ - -moz-box-shadow: none; - /* box-shadow: none; */ - /* text-shadow: none; */ -} - -select { - border-width: 1px; - padding: 4px 1px; - border-radius: 4px; -} - -.input-sm { - padding: 4px 10px; -} - -.btn-block { - display: block; - width: 100%; - padding-left: 0; - padding-right: 0; -} - -/* Bootstrap buttons */ -.btn-default { - color: #5b9bd1; - background-color: #fff; - border-color: #ccc; -} - -.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active - { - color: #333; - background-color: #ededed; - border-color: #b3b3b3; -} - -.open .btn-default.dropdown-toggle { - color: #333; - background-color: #ededed; - border-color: #b3b3b3; -} - -.btn-default:active,.btn-default.active { - background-image: none; - background-color: #e0e0e0; - font-weight: bold; -} - -.btn-default:active:hover,.btn-default.active:hover { - background-color: #e6e6e6; -} - -.open .btn-default.dropdown-toggle { - background-image: none; -} - -.btn-default.disabled,.btn-default.disabled:hover,.btn-default.disabled:focus,.btn-default.disabled:active,.btn-default.disabled.active,.btn-default[disabled],.btn-default[disabled]:hover,.btn-default[disabled]:focus,.btn-default[disabled]:active,.btn-default[disabled].active,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default:hover,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default.active - { - background-color: #fff; - border-color: #ccc; -} - -.btn-default .badge { - color: #fff; - background-color: #333; -} - -.btn-default>i { - color: #aaa; -} - -.btn-default>i[class^="icon-"],.btn-default>i[class*="icon-"] { - color: #8c8c8c; -} - -div[data-name="tab_zone"] div { - background-color: #f1f3fa; - padding: 0px; -} - -div[data-name="cond_zone"] div { - background-color: #fff; - margin-top: 15px; - margin-bottom: 15px; -} - -div[data-name="detail-conds-zone"] { - display: inline; -} - -div[data-name="detail-conds-zone"] select,div[data-name="detail-conds-zone"] span - { - /**height:33px;*/ - margin-left: 15px; - color: #5b9bd1; - border-color: #ccc; - font-weight: bold; -} - -.input{ - width:250px; - height: 34px; - padding: 6px 12px; - font-size: 14px; - line-height: 1.42857143; - color: #555; - background-color: #fff; - background-image: none; - border: 1px solid #ccc; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075); - box-shadow: inset 0 1px 1px rgba(0,0,0,.075); - -webkit-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; - transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; -} - -div.separator { - margin: 20px; -} - -div.separator div { - text-align: center; - line-height: 0; -} - -div.separator-line { - height: 1px !important; - width: 100%; - background: #ddd; - overflow: hidden; -} - -.dropdown-toggle { - color: #5b9bd1; -} - -.calendar-date { - color: #5b9bd1; -} - -.range_inputs { - color: #5b9bd1; -} - -.btn.dropdown-toggle,.btn-group .btn.dropdown-toggle,.btn:hover,.btn:disabled,.btn[disabled],.btn:focus,.btn:active,.btn.active - { - outline: none !important; - background-image: none !important; - filter: none; - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; - text-shadow: none; -} - -#skills-chart-breadcrumb { - margin-bottom: 10px -} - -/*increase daterangepicker's css*/ -input[name="daterange"] { - width: 220px; - line-height: 0; - height: 31px; - vertical-align: top; - margin-top: 2px; -} - -.daterangepicker .ranges { - width: 205px; -} - -.daterangepicker .ranges input { - width: 95px !important; -} - -td.details-control { - background: url('../image/details_open.png') no-repeat center center; - cursor: pointer; -} - -tr.shown td.details-control { - background: url('../image/details_close.png') no-repeat center center; -} - -.details table td { - word-wrap: break-word; - word-break: normal; - border-top: 1px solid #dddddd; -} - -.details table tr:first-child td { - border-top: none; -} - -.details table { - table-layout: fixed; - width: 100%; -} - -td.title { - width: 10%; -} - -table.dataTable tbody th,table.dataTable tbody td { - padding: 8px 10px; -} - -div.dataTables_length,div.dataTables_info { - display: inline; -} - -div.dataTables_paginate { - display: inline; - float: right; -} - -div.pagination-panel { - margin-right: 10px; -} - -input.pagination-panel-input { - width: 50px; -} - -.daterangepicker .daterangepicker_start_input label,.daterangepicker .daterangepicker_end_input label - { - color: #5b9bd1; -} - -.daterangepicker .ranges .input-mini { - color: #5b9bd1; -} - -.cancelBtn { - padding: 5px 10px 5px 10px; -} - -.btn:focus,.btn:active:focus,.btn.active:focus { - outline: 0; -} - -#right-menu { - position:absolute; - top:0; - right:0; - width:420px; - height:100%; - border-left:4px solid rgb(58,174,218); - background-color:rgba(255,255,255,.95); - padding-left:19px; - padding-right:15px; - padding-top:20px; - z-index:9999; - overflow-y: auto; -} - -#right-menu .btn{ - min-width: 30px !important; - letter-spacing :normal !important; -} - -.rigth { - float: right; -} -.right-button-pointer { - display:inline-block; - cursor:pointer -} -.floating-panel { - width:400px; - display:none -} - -title{height:25px;position:relative;top:20px;font-size:15px} - -#ict_nodes_table_div { - margin-top: 15px; -} - -#ict_nodes_table_div label { - font-weight: 100; -} - -#ict_nodes_table_div table { - width: 100% !important; -} - -.nodesDetail { - margin-top: 15px; -} - -.nodesDetail label { - font-weight: 100; -} - -.nodesDetail table { - width:100%; - table-layout: fixed; - word-wrap:break-word; -} - -.step { - text-align: center; - padding-top: 60px; -} - -.step div { - text-align: left; -} - -div.separator-sline { - height:28px ; - width:3px; -} - -.titlefont { - font-size:16px; -} - -.td_nodeId { - font-size: small; -} - -.iconBtn { - margin-left:15px; - min-width:30px; -} \ No newline at end of file diff --git a/openo-portal/portal-catalog/src/main/webapp/catalog/css/topology.css b/openo-portal/portal-catalog/src/main/webapp/catalog/css/topology.css deleted file mode 100644 index adfe8fa4..00000000 --- a/openo-portal/portal-catalog/src/main/webapp/catalog/css/topology.css +++ /dev/null @@ -1,393 +0,0 @@ -/** - * Copyright 2016-2017 ZTE Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -.container-fluid { - background-color: #fff; - padding: 0; -} - - -div[data-name="topo_zone"] { - background-color: #fff; - margin-top: 15px; - margin-bottom: 15px; -} - -p[tooltip], div[tooltip], td { - overflow: hidden; - text-overflow: ellipsis; -} - - - -.bpContainer { - position: relative; - display: block; - height: 100%; - padding: 40px; -} - - -.box { - position: relative; - display: inline-block; - min-width: 260px; - min-height: 170px; - border-width: 2px; - border-color: #136e9d; - border-style: solid; - background-color: #fff; - vertical-align: top; - padding: 2px; - border-radius: 6px; - margin: 0 60px 40px 0; -} - - -.box .piProgress, .line .piProgress { - position: absolute; - top: -12px; - left: -27px; - z-index: 1; -} -/* .piProgress { - position: relative; - display: inline-block; -} */ -.box .piProgress .circle, .line .piProgress .circle { - background: #136e9d; - border: 2px solid #d3dfe2; - width: 43px; - height: 43px; - top: 5.5px; - left: 5.5px; - border-radius: 21px; - font-size: 14px; -} -.box .piProgress .smallCircle { - background: #136e9d; - border: 2px solid #d3dfe2; - width: 30px; - height: 30px; - left: 11px; - border-radius: 21px; - font-size: 12px; - cursor: pointer; -} -.piProgress .circle, .piProgress .smallCircle { - position: absolute; - display: box; - box-pack: center; - box-align: center; - background-color: #46b8da; - color: #fff; - font-size: 100%; - z-index: 3; -} - -.bpContainer i.gs-node-icon { - position: absolute; - top: 10px; - left: 9px; - font-size: 23px; -} - -.bpContainer i.gs-cp-icon { - position: absolute; - top: 5px; - left: 5px; - font-size: 15px; -} - -.bpContainer .box .head, .bpContainer .line .head { - display: block; - background-color: #136e9d; - color: #fff; - padding: 2px 10px 3px 25px; - border-radius: 3px; - font-size: 20px; - height: 35px; -} - -.bpContainer .box .holder { - display: block; - padding: 5px 25px; - margin-top: 1px; - background-color: #fff; -} - -.bpContainer .box .nest { - min-height:130px; - cursor:pointer; -} - -.bpContainer .box .nest .plus { - position: absolute; - bottom:0; - right:5px; -} - -.bpContainer .box .boxHover~div { - background-color:#eaf1f7; -} - -.bpContainer .boxHover{ - cursor:pointer; -} - -.bpContainer .box .box .appHover{ - cursor:pointer; -} - - -.bpContainer .box .box .appHover p { - background-color:#eaf1f7; -} - -.bpContainer .box .box { - border-color: #3aaeda; - min-width: 170px; - margin: 15px; -} - -.bpContainer .box .box .head { - background-color: #3aaeda; -} - -.bpContainer .box .box .piProgress .circle { - background-color: #3aaeda; -} - -.bpContainer .box .box .holder { - text-align: center; - background-color: #fff; - min-height: 126px; -} - -.bpContainer .box .box .boxHover~div { - background-color:#eaf1f7; -} - -.bpContainer .app { - position: relative; - display: inline-block; - width: 47px; - height: 47px; - text-align: center; - border-radius: 3px; - margin: 10px 0; -} - -.bpContainer .app .piProgress { - top: 0; - left: -6px; -} - -.bpContainer .box .box .piProgress .circle{ - background-color: #3aaeda; -} - -.bpContainer .app p { - position: relative; - top: 50px; - margin: 0; - color: #555869; - text-align: center; - font-size: 15px; -} - - - .coordinates { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - pointer-events: none; -} - -.bpContainer .box .piProgress .circle>.badge, .bpContainer .line .piProgress .circle>.badge { - position:absolute; - display:inline-block; - z-index:1; - top:-8px; - left:20px; - min-width:20px; - border-radius:10px; - padding:3px!important; - vertical-align:baseline; - white-space:nowrap; - text-align:center; - background-color:#2f3334; - text-decoration:none; - font-size:14px; - color:#fff; - line-height:15px; - font-style:normal; - font-weight:400; - opacity:1 -} - -.header { - border-top:2px solid #4b6b8b; - background-color:#e8edf2; - height:40px; - padding:5px 20px -} - -.header .title { - display:inline-block; - font-size:18px; - color:#29AAEE; - line-height:28px -} - -.containList { - overflow-y:scroll; -} - -div.separator-icon { - text-align: center; - line-height: 0 -} - -.networksContainer{ - white-space:nowrap; - margin:40px 0 0 20px; - height:100% -} - -.networksContainer .network{ - position: relative; - display:inline-block; - text-align:center; - min-width:70px; - margin:0 10px 0 0 -} - -.networksContainer .subnet{ - display:inline-block; - text-align:center; - min-width:70px; - margin:0 10px 0 0 -} - -.networksContainer .subnet .line{ - position:relative; - display:inline-block; - vertical-align:top -} - -.networksContainer .name { - display:block; - width:100%; - background-color:#797B86; - color:#fff; - padding:2px 6px; - border-radius:5px; - text-align:center; - margin:0 0 10px; - overflow:hidden; - cursor: pointer; - text-overflow:ellipsis -} - -.networksContainer .network .name>.badge { - position:absolute; - display:inline-block; - z-index:1; - top:-9px; - right:-9px; - min-width:20px; - border-radius:10px; - padding:3px!important; - vertical-align:baseline; - white-space:nowrap; - text-align:center; - background-color:#2f3334; - text-decoration:none; - font-size:14px; - color:#fff; - line-height:15px; - font-style:normal; - font-weight:400; - opacity:1 -} - -.networksContainer .subnet .line .vlan{ - position:relative; - display:inline-block; - width:21px; - height:500px; - background-color:#149bdf; - color:#fff; - border-radius:5px; - vertical-align:top; - margin:0 10px 0 0; - cursor:pointer -} - -.networksContainer .subnet .vlan .badge { - position:absolute; - display:inline-block; - z-index:1; - top:-8px; - left:10px; - min-width:20px; - border-radius:10px; - padding:3px!important; - vertical-align:baseline; - white-space:nowrap; - text-align:center; - background-color:#2f3334; - text-decoration:none; - font-size:14px; - color:#fff; - line-height:15px; - font-style:normal; - font-weight:400; - opacity:1 -} - -.networksContainer .subnet .line .vlan:last-child{ - margin:0 -} - -.networksContainer .subnet .line .vlan>p{ - position:absolute; - display:block; - transform:rotate(90deg); - -ms-transform:rotate(90deg); - -webkit-transform:rotate(90deg); - white-space:nowrap; - color:#fff; - top:5px; - right:0; - left:1px -} - -.networksContainer .subnet .line .vlan>p.cidr{ - width:200px; - top:auto; - left:-90px; - bottom:85px; - color:#fff; - text-align:right -} - -.topoZone { - display: inline-block; - float: left; -} \ No newline at end of file diff --git a/openo-portal/portal-catalog/src/main/webapp/catalog/css/virtualApplication.css b/openo-portal/portal-catalog/src/main/webapp/catalog/css/virtualApplication.css deleted file mode 100644 index 2fae35ff..00000000 --- a/openo-portal/portal-catalog/src/main/webapp/catalog/css/virtualApplication.css +++ /dev/null @@ -1,501 +0,0 @@ -/** - * Copyright 2016-2017 ZTE Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -body { - font-family: microsoft yahei !important; -} - -/* blue pill (inspired by iTunes) -*******************************************************************************/ -.redFont{ - color:red; -} -.blue { - - background-color: #5b9bd1; - border-radius: 20px; - color: #fff; - font-weight: bold; - padding: 8px 0; - text-align: center; - width: 100px; -} - -.blue:hover { - background-color: #e8f3fd; - color: #5b9bd1; -} - -.blue.selected { - border: 0; - background-color: #5b9bd1; - color: #fff; -} - -.blue.selected:hover { - border: 0; - background-color: #5b9bd1; - color: #fff; -} - -a { - text-decoration: none !important; -} - -p { - color: #444; - font-size: 14px; - font-weight: normal; - line-height: 21px; - margin: 0 0 12px 0; -} - -p.credit { - border-top: 1px solid #ccc; - font-size: 14px; - line-height: 140%; - margin: 36px 0 12px 0; - padding: 8px 0 0 0; - text-align: center; -} - -ul.column { - float: left; - list-style: none; - width: 675px; -} - -ul.column li { - background: #eee; - -webkit-border-radius: 5px; - border-radius: 5px; - -webkit-box-shadow: inset 0 1px 1px 0 #c7c7c7; - box-shadow: inset 0 1px 1px 0 #c7c7c7; - float: left; - margin: 10px 0 0 10px; - display: block; - height: 150px; - text-align: center; - width: 215px; -} - -/* Clear Floated Elements -------------------------------------------------------------------------------*/ -.column:after,.button-collection:after,.clearfix:after,div.project-info:after - { - clear: both; - content: ' '; - display: block; - font-size: 0; - line-height: 0; - visibility: hidden; - width: 0; - height: 0; -} - -.container-fluid { - background-color:white !important; - min-height:500px; -} - -.nav-tabs { - border: 0; -} - -.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus - { - border: 0; - border-top: 3px solid #F3565D; -} - -.nav-tabs>li>a { - border-radius: 0; -} - -.nav-tabs>li>a:hover { - background-color: #f1f3fa; - border: 1Px solid #f1f3fa; -} - -.c3 { - margin-top: 120px; -} - -.skills-chart-breadcrumb { - -} - -.blue:selected { - border: 0; - background-color: #5b9bd1; -} - -select { - border-width: 1px; - padding: 2px 1px; - border-radius: 4px; -} - -.input-sm { - padding: 4px 10px; -} - -.btn-block { - display: block; - width: 100%; - padding-left: 0; - padding-right: 0; -} - -/* Bootstrap buttons */ -.btn-default { - color: #5b9bd1; - background-color: #fff; - border-color: #ccc; -} - -.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active - { - color: #333; - background-color: #ededed; - border-color: #b3b3b3; -} - -.open .btn-default.dropdown-toggle { - color: #333; - background-color: #ededed; - border-color: #b3b3b3; -} - -.btn-default:active,.btn-default.active { - background-image: none; - background-color: #e0e0e0; - font-weight: bold; -} - -.btn-default:active:hover,.btn-default.active:hover { - background-color: #e6e6e6; -} - -.open .btn-default.dropdown-toggle { - background-image: none; -} - -.btn-default.disabled,.btn-default.disabled:hover,.btn-default.disabled:focus,.btn-default.disabled:active,.btn-default.disabled.active,.btn-default[disabled],.btn-default[disabled]:hover,.btn-default[disabled]:focus,.btn-default[disabled]:active,.btn-default[disabled].active,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default:hover,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default.active - { - background-color: #fff; - border-color: #ccc; -} - -.btn-default .badge { - color: #fff; - background-color: #333; -} - -.btn-default>i { - color: #aaa; -} - -.btn-default>i[class^="icon-"],.btn-default>i[class*="icon-"] { - color: #8c8c8c; -} - -div[data-name="tab_zone"] div { - background-color: #f1f3fa; - padding: 0px; -} - -div[data-name="cond_zone"] div { - background-color: #fff; - margin-top: 15px; - margin-bottom: 15px; -} - -div[data-name="res-conds-zone"] { - display: inline; -} - -div[data-name="res-conds-zone"] select,div[data-name="res-conds-zone"] span - { - /**height:33px;*/ - margin-left: 15px; - color: #5b9bd1; - border-color: #ccc; - font-weight: bold; -} - -.input{ - width:250px; - height: 34px; - padding: 6px 12px; - font-size: 14px; - line-height: 1.42857143; - color: #555; - background-color: #fff; - background-image: none; - border: 1px solid #ccc; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075); - box-shadow: inset 0 1px 1px rgba(0,0,0,.075); - -webkit-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; - transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; -} - -div.separator { - margin: 20px; -} - -div.separator div { - text-align: center; - line-height: 0; -} - -div.separator-line { - height: 1px !important; - width: 100%; - background: #ddd; - overflow: hidden; -} - -.dropdown-toggle { - color: #5b9bd1; -} - -.calendar-date { - color: #5b9bd1; -} - -.range_inputs { - color: #5b9bd1; -} - -.btn.dropdown-toggle,.btn-group .btn.dropdown-toggle,.btn:hover,.btn:disabled,.btn[disabled],.btn:focus,.btn:active,.btn.active - { - outline: none !important; - background-image: none !important; - filter: none; - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; - text-shadow: none; -} - -#skills-chart-breadcrumb { - margin-bottom: 10px -} - -/*increase daterangepicker's css*/ -input[name="daterange"] { - width: 220px; - line-height: 0; - height: 31px; - vertical-align: top; - margin-top: 2px; -} - -.daterangepicker .ranges { - width: 205px; -} - -.daterangepicker .ranges input { - width: 95px !important; -} - -td.details-control { - background: url('../image/details_open.png') no-repeat center center; - cursor: pointer; -} - -tr.shown td.details-control { - background: url('../image/details_close.png') no-repeat center center; -} - -.details table td { - word-wrap: break-word; - word-break: normal; - border-top: 1px solid #dddddd; -} - -.details table tr:first-child td { - border-top: none; -} - -.details table { - table-layout: fixed; - width: 100%; -} - -td.title { - width: 10%; -} - -table.dataTable tbody th,table.dataTable tbody td { - padding: 8px 10px; -} - -div.dataTables_length,div.dataTables_info { - display: inline; -} - -div.dataTables_paginate { - display: inline; - float: right; -} - -div.pagination-panel { - margin-right: 10px; -} - -input.pagination-panel-input { - width: 50px; -} - -#ict_virtualApplication_table_div { - margin-top: 15px; -} - -#ict_virtualApplication_table_div label { - font-weight: 100; -} - -.daterangepicker .daterangepicker_start_input label,.daterangepicker .daterangepicker_end_input label - { - color: #5b9bd1; -} - -.daterangepicker .ranges .input-mini { - color: #5b9bd1; -} - -.cancelBtn { - padding: 5px 10px 5px 10px; -} - -.btn:focus,.btn:active:focus,.btn.active:focus { - outline: 0; -} - -#ict_virtualApplication_table_div table { - width: 100% !important; -} - -.uploadBtn { - margin-top:10px; -} - -.btn-operation { - min-width: 30px; - line-height: 1; -} - -tr select { - width: 80px; -} - -.span-action { - float:left; -} - -.btn i { - padding-right: 0 !important; -} - -.vmapp-margin { - margin-bottom: 20px; -} - -.vmapp-form-title { - padding:8px; - margin-bottom:5px; - margin-left:20px; - border-left: 2px solid #5b9bd1; - color:#1A78CA; -} - -.input-group .input-control { - height : 34px !important; -} - -.input-group .input-control[disabled] { - cursor: default; - background-color: #fff; -} - -.input-group .input-group-btn .btn-default { - color: #333; - font-size: 14px; - min-width: 34px; -} - -.modal-scrollable { - overflow: auto !important; -} - -td.icheckbox { - text-align: center; -} - -td .icheckbox_square-aero { - margin-right: 0; -} - -.hpanel { - background-color: none; - border: none; - box-shadow: none; - margin-bottom: 5px; -} - -.hpanel .panel-body { - border: 1px solid #e4e5e7; - border-radius: 2px; - position: relative; -} - -.hpanel > .panel-footer { - color: inherit; - border: 1px solid #e4e5e7; - border-top: none; - font-size: 90%; - background: #f7f9fa; - height:40px; - padding: 5px 10px; -} - -.hpanel > .panel-footer .pull-right a{ - margin-left: 5px; -} - -.hpanel > .panel-footer .pull-right .btn{ - min-width: 30px !important; -} - -.hpanel_show { - background-color: #f7f9fa; -} - -.hpanel .panel-info { - overflow:hidden; - white-space:nowrap; - text-overflow:ellipsis; -} - -.tipArea { - border-bottom: 1px solid #d4d4d4; - width: 95%; - margin-bottom: 15px; - margin-left: 15px; - padding-bottom: 5px; -} \ No newline at end of file diff --git a/openo-portal/portal-catalog/src/main/webapp/catalog/css/vnfm.css b/openo-portal/portal-catalog/src/main/webapp/catalog/css/vnfm.css deleted file mode 100644 index a12a8dfd..00000000 --- a/openo-portal/portal-catalog/src/main/webapp/catalog/css/vnfm.css +++ /dev/null @@ -1,491 +0,0 @@ -/** - * Copyright 2016-2017 ZTE Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -body { - font-family: microsoft yahei !important; -} - -/* blue pill (inspired by iTunes) -*******************************************************************************/ - -.grey { - background-color: #e5e5e5; - color: #333; -} - -.blue { - - background-color: #5b9bd1; - border-radius: 20px; - color: #fff; - font-weight: bold; - padding: 8px 0; - text-align: center; - width: 100px; -} - -.blue:hover { - background-color: #e8f3fd; - color: #5b9bd1; -} - -.blue.selected { - border: 0; - background-color: #5b9bd1; - color: #fff; -} - -.blue.selected:hover { - border: 0; - background-color: #5b9bd1; - color: #fff; -} - -p { - color: #444; - font-size: 14px; - font-weight: normal; - line-height: 21px; - margin: 0 0 12px 0; -} - -p.credit { - border-top: 1px solid #ccc; - font-size: 14px; - line-height: 140%; - margin: 36px 0 12px 0; - padding: 8px 0 0 0; - text-align: center; -} - -ul.column { - float: left; - list-style: none; - width: 675px; -} - -ul.column li { - background: #eee; - -webkit-border-radius: 5px; - border-radius: 5px; - -webkit-box-shadow: inset 0 1px 1px 0 #c7c7c7; - box-shadow: inset 0 1px 1px 0 #c7c7c7; - float: left; - margin: 10px 0 0 10px; - display: block; - height: 150px; - text-align: center; - width: 215px; -} - -/* Clear Floated Elements -------------------------------------------------------------------------------*/ -.column:after,.button-collection:after,.clearfix:after,div.project-info:after - { - clear: both; - content: ' '; - display: block; - font-size: 0; - line-height: 0; - visibility: hidden; - width: 0; - height: 0; -} - -.container-fluid { - background-color:white !important; - min-height:500px; -} - -.nav-tabs { - border: 0; -} - -.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus - { - border: 0; - border-top: 3px solid #F3565D; -} - -.nav-tabs>li>a { - border-radius: 0; -} - -.nav-tabs>li>a:hover { - background-color: #f1f3fa; - border: 1Px solid #f1f3fa; -} - -.c3 { - margin-top: 120px; -} - -.skills-chart-breadcrumb { - -} - -.blue:selected { - border: 0; - background-color: #5b9bd1; -} - -.btn { - /* border-width: 0; */ - /* padding: 7px 14px; */ - /* font-size: 14px; */ - /* outline: none !important; */ - /* background-image: none !important; */ - /* filter: none; */ - /* -webkit-box-shadow: none; */ - -moz-box-shadow: none; - /* box-shadow: none; */ - /* text-shadow: none; */ -} - -select { - border-width: 1px; - padding: 4px 1px; - border-radius: 4px; -} - -.input-sm { - padding: 4px 10px; -} - -.btn-block { - display: block; - width: 100%; - padding-left: 0; - padding-right: 0; -} - -/* Bootstrap buttons */ - - -.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active - { - color: #333; - background-color: #ededed; - border-color: #b3b3b3; -} - -.open .btn-default.dropdown-toggle { - color: #333; - background-color: #ededed; - border-color: #b3b3b3; -} - -.btn-default:active,.btn-default.active { - background-image: none; - background-color: #e0e0e0; - font-weight: bold; -} - -.btn-default:active:hover,.btn-default.active:hover { - background-color: #e6e6e6; -} - -.open .btn-default.dropdown-toggle { - background-image: none; -} - -.btn-default.disabled,.btn-default.disabled:hover,.btn-default.disabled:focus,.btn-default.disabled:active,.btn-default.disabled.active,.btn-default[disabled],.btn-default[disabled]:hover,.btn-default[disabled]:focus,.btn-default[disabled]:active,.btn-default[disabled].active,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default:hover,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default.active - { - background-color: #fff; - border-color: #ccc; -} - -.btn-default .badge { - color: #fff; - background-color: #333; -} - - -.btn-default>i[class^="icon-"],.btn-default>i[class*="icon-"] { - color: #8c8c8c; -} - -div[data-name="tab_zone"] div { - background-color: #f1f3fa; - padding: 0px; -} - -div[data-name="cond_zone"] div { - background-color: #fff; - margin-top: 15px; - margin-bottom: 15px; -} - -div[data-name="res-conds-zone"] { - display: inline; -} - -div[data-name="res-conds-zone"] select,div[data-name="res-conds-zone"] span - { - /**height:33px;*/ - margin-left: 15px; - color: #5b9bd1; - border-color: #ccc; - font-weight: bold; -} - -.input{ - width:250px; - height: 34px; - padding: 6px 12px; - font-size: 14px; - line-height: 1.42857143; - color: #555; - background-color: #fff; - background-image: none; - border: 1px solid #ccc; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075); - box-shadow: inset 0 1px 1px rgba(0,0,0,.075); - -webkit-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; - transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; -} - -div.separator { - margin: 20px; -} - -div.separator div { - text-align: center; - line-height: 0; -} - -div.separator-line { - height: 1px !important; - width: 100%; - background: #ddd; - overflow: hidden; -} - -.dropdown-toggle { - color: #5b9bd1; -} - -.calendar-date { - color: #5b9bd1; -} - -.range_inputs { - color: #5b9bd1; -} - -.btn.dropdown-toggle,.btn-group .btn.dropdown-toggle,.btn:hover,.btn:disabled,.btn[disabled],.btn:focus,.btn:active,.btn.active - { - outline: none !important; - background-image: none !important; - filter: none; - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; - text-shadow: none; -} - -#skills-chart-breadcrumb { - margin-bottom: 10px -} - -/*increase daterangepicker's css*/ -input[name="daterange"] { - width: 220px; - line-height: 0; - height: 31px; - vertical-align: top; - margin-top: 2px; -} - -.daterangepicker .ranges { - width: 205px; -} - -.daterangepicker .ranges input { - width: 95px !important; -} - -td.details-control { - background: url('../image/details_open.png') no-repeat center center; - cursor: pointer; -} - -tr.shown td.details-control { - background: url('../image/details_close.png') no-repeat center center; -} - -.details table td { - word-wrap: break-word; - word-break: normal; - border-top: 1px solid #dddddd; -} - -.details table tr:first-child td { - border-top: none; -} - -.details table { - table-layout: fixed; - width: 100%; -} - -td.title { - width: 10%; -} - -table.dataTable tbody th,table.dataTable tbody td { - padding: 8px 10px; -} - -div.dataTables_length,div.dataTables_info { - display: inline; -} - -div.dataTables_paginate { - display: inline; - float: right; -} - -div.pagination-panel { - margin-right: 10px; -} - -input.pagination-panel-input { - width: 50px; -} - -#ict_res_table_div { - margin-top: 15px; -} - -#ict_res_table_div label { - font-weight: 100; -} - -.daterangepicker .daterangepicker_start_input label,.daterangepicker .daterangepicker_end_input label - { - color: #5b9bd1; -} - -.daterangepicker .ranges .input-mini { - color: #5b9bd1; -} - -.cancelBtn { - padding: 5px 10px 5px 10px; -} - -.btn:focus,.btn:active:focus,.btn.active:focus { - outline: 0; -} - -#ict_res_table_div table { - width: 100% !important; -} - -.control-label .required { - color: #e02222; - font-size: 12px; - padding-left: 2px; -} - -#ict_vim_table tbody tr{ - cursor:pointer; -} - - -.animated-panel { - -webkit-animation-duration: .5s; - animation-duration: .5s; - -webkit-animation-fill-mode: both; - animation-fill-mode: both; -} - -.hpanel { - background-color: none; - border: none; - box-shadow: none; - margin-bottom: 25px; - -} - -.hpanel .panel-body { - border: 1px solid #e4e5e7; - border-radius: 2px; - padding: 20px; - position: relative; -} -.h-200 { - min-height: 220px; -} - -.m-t-xl { - margin-top: 40px; -} - -.m-t-xl div { - margin-bottom: 15px; -} - -.text-success { - color: #0d638f; -} -.hpanel > .panel-footer { - color: inherit; - border: 1px solid #e4e5e7; - border-top: none; - font-size: 90%; - background: #f7f9fa; - height:40px; - padding: 5px 15px; -} -.color_cloud{ - color:#ccc; -} -.stats-title{ - -} - -h3{ - margin-top: 10px; - margin-bottom: 40px; - font-weight: 200; -} - -.blue-font{ - color:#428bca; -} - -.hpanel > .panel-footer .pull-right a{ - margin-left: 5px; -} - -.hpanel > .panel-footer .pull-right .btn{ - min-width: 30px !important; -} - -.font-bold { - font-weight: 600; - margin-bottom: 15px; -} - -.hpanel_show{ - background-color: #f7f9fa; -} - -.vnfm-padding { - padding-left: 0; -} \ No newline at end of file diff --git a/openo-portal/portal-catalog/src/main/webapp/catalog/i18n/nfv-nso-iui-i18n-en-US.properties b/openo-portal/portal-catalog/src/main/webapp/catalog/i18n/nfv-nso-iui-i18n-en-US.properties deleted file mode 100644 index 781f9391..00000000 --- a/openo-portal/portal-catalog/src/main/webapp/catalog/i18n/nfv-nso-iui-i18n-en-US.properties +++ /dev/null @@ -1,156 +0,0 @@ -# -# Copyright 2016-2017 ZTE Corporation. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -//table -nfv-nso-iui-table-sLengthMenu=View _MENU_ records -nfv-nso-iui-table-sZeroRecords=No matching records found -nfv-nso-iui-table-sInfo=Found total _TOTAL_ records -nfv-nso-iui-table-sInfoEmpty=No records found to show -nfv-nso-iui-table-sGroupActions=_TOTAL_ records selected: -nfv-nso-iui-table-sAjaxRequestGeneralError=Could not complete request. Please check your internet connection. -nfv-nso-iui-table-sEmptyTable=No data available in table -nfv-nso-iui-table-sPrevious=Prev -nfv-nso-iui-table-sNext=Next -nfv-nso-iui-table-sPage=Page -nfv-nso-iui-table-sPageOf=of -nfv-nso-iui-table-sProcess=Processing... - -//common -nfv-nso-iui-common-tip=Tip: - -//package table colums -nfv-package-iui-title=Package -nfv-package-iui-field-sn=Index -nfv-package-iui-field-name=Name -nfv-package-iui-field-type=Type -nfv-package-iui-field-usagestate=Usage State -nfv-package-iui-field-processstate=Process State -nfv-package-iui-field-operationalstate=Operational State -nfv-package-iui-field-onboardstate=OnBoard State -nfv-package-iui-field-deletionpending=Deletion Pending -nfv-package-iui-field-operation=Operation - -nfv-package-iui-field-detail-name=Name -nfv-package-iui-field-detail-type=Type -nfv-package-iui-field-detail-usagestate=Usage State -nfv-package-iui-field-detail-processstate=Process State -nfv-package-iui-field-detail-operationalstate=Operational State -nfv-package-iui-field-detail-onboardstate=Onboard State -nfv-package-iui-field-detail-deletionpending=Deletion Pending -nfv-package-iui-field-detail-operation=Operation -nfv-package-iui-field-detail-size=Size -nfv-package-iui-field-detail-csarid=ID -nfv-package-iui-field-detail-version=Version -nfv-package-iui-field-detail-provider=Provider -nfv-package-iui-field-detail-downloaduri=Download Uri -nfv-package-iui-field-detail-createtime=Create Time -nfv-package-iui-field-detail-modifytime=Modify Time -nfv-package-iui-field-detail-format=Format - -nfv-package-iui-status-tip=Taps to Activate -nfv-package-iui-status-active=Activate -nfv-package-iui-status-activating=Activating -nfv-package-iui-status-inactive=Nonactivate -nfv-package-iui-status-deleting =Deleting -nfv-package-iui-status-deletefail = Delete Fail -nfv-package-iui-status-onBoarding = Onboarding - -nfv-package-iui_packageview_packageDetail=Package Detail -nfv-package-iui_packageview_btn_close=Close -nfv-package-iui_packageview_key=Key -nfv-package-iui_packageview_value=Value -nfv-package-iui-selectvim-title=Select VIM Onboard Image -nfv-package-iui-btn-cancel=Cancel -nfv-package-iui-btn-ok=Ok - -nfv-package-iui-message-upload-success=Csar package imported successfully. -nfv-package-iui-message-upload-fail=Csar package imported failed. -nfv-package-iui-message-delete-confirm=Do you want to delete the current package? -nfv-package-iui-message-delete-success=Csar package deleted successfully. -nfv-package-iui-message-upload-csar-exist=There is a package in the same name, they may be the same package, whether still upload this package? -nfv-package-iui-message-upload-csar-deletionpending=This package is referenced in an instance. whether to re upload? -nfv-package-iui-message-onBoarded = Onboarding operation successfully. -nfv-package-iui-message-onBoard-error = Onboarding error. -nfv-package-iui-message-delete-error = Package delete error. -nfv-package-iui-message-select-vim-error = Can not select more than one VIM to be test environment. -nfv-package-iui-onboard-dialog-vimname = VIM Name -nfv-package-iui-product-env = Product Environment -nfv-package-iui-test-env = Test Environment -nfv-package-iui-http-delete-error = Delete package from HTTP server failed! -nfv-package-iui-template-delete-error = Delete template data failed! -nfv-package-iui-package-delete-error = Delete package data failed! - -nfv-package-iui-drop-zone-title=Drag & drop files here … -nfv-package-iui-drop-zone-selectBtn=Browse -nfv-package-iui-drop-zone-removeBtn=Remove -nfv-package-iui-drop-zone-uploadBtn=Upload - -nfv-template-topo-iui-title=Topology -nfv-template-nodes-iui-title=Nodes - -//template table colums -nfv-template-iui-title=Service Template -nfv-template-iui-field-order=Order -nfv-template-iui-field-templatename=Name -nfv-template-iui-field-templatename-topo=Name(Topo) -nfv-template-iui-field-templatename-nodes=Name(Nodes) -nfv-template-iui-field-producttype=Type -nfv-template-iui-field-vendor=Vendor -nfv-template-iui-field-version=Version -nfv-template-iui-field-inputs=Inputs -nfv-template-iui-field-outputs=Outputs -nfv-template-iui-field-operations=Operations -nfv-template-iui-field-download-uri=Download Uri -nfv-template-iui-field-type=Node Type - -//template detail table colums -nfv-templateDetail-iui-index=Index -nfv-templateDetail-iui-title=Node Template -nfv-templateDetail-iui-field-nodeId=ID -nfv-templateDetail-iui-field-nodetypename=Name -nfv-templateDetail-iui-field-type=Type -nfv-templateDetail-iui-field-containedin=Contained In -nfv-templateDetail-iui-field-deployedon=Deployed On -nfv-templateDetail-iui-field-connectedto=Conected To -nfv-templateDetail-iui-field-virtuallinksto=Virtual Links To - -nfv-templateDetail-nodesTab-iui-tab-general=General -nfv-templateDetail-nodesTab-iui-tab-properties=Properties -nfv-templateDetail-nodesTab-iui-tab-relationShips=RelationShips -nfv-templateDetail-nodesTab-iui-field-key=Key -nfv-templateDetail-nodesTab-iui-field-value=Value -nfv-templateDetail-nodesTab-iui-field-property=Property -nfv-templateDetail-nodesTab-iui-field-sourceNodeName=Source Node -nfv-templateDetail-nodesTab-iui-field-targetNodeName=Target Node -nfv-templateDetail-nodesTab-iui-field-type=Type -nfv-templateDetail-nodesTab-iui-btn-close=Close -nfv-templateDetail-nodesTab-iui-title-nodeDetail=Node Detail - -nfv-templateDetail-executionTab-iui-field-currentStepName=Name -nfv-templateDetail-executionTab-iui-field-currentStepStatus=Status -nfv-templateDetail-executionTab-iui-field-currentStepDesc=Description -nfv-templateDetail-executionTab-iui-field-executionTime=Execution Time - -//topo -nfv-topology-iui-vnf-tip=Click to view the nested topology -nfv-topology-iui-btn-return-tip=Return -nfv-topology-iui-message-error=Query Topology Information failed. - -nfv-software-iui-action-delete=Delete -nfv-software-iui-action-onboard=Onboard - -com_zte_openo_umc_monitor_monitorList_total=total -com_zte_openo_umc_monitor_monitorList_records=records \ No newline at end of file diff --git a/openo-portal/portal-catalog/src/main/webapp/catalog/i18n/nfv-nso-iui-i18n-zh-CN.properties b/openo-portal/portal-catalog/src/main/webapp/catalog/i18n/nfv-nso-iui-i18n-zh-CN.properties deleted file mode 100644 index b633da74..00000000 --- a/openo-portal/portal-catalog/src/main/webapp/catalog/i18n/nfv-nso-iui-i18n-zh-CN.properties +++ /dev/null @@ -1,155 +0,0 @@ -# -# Copyright 2016-2017 ZTE Corporation. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -//table -nfv-nso-iui-table-sLengthMenu=每页 _MENU_ 条结果 -nfv-nso-iui-table-sZeroRecords=没有匹配结果 -nfv-nso-iui-table-sInfo=总共找到 _TOTAL_ 条结果 -nfv-nso-iui-table-sInfoEmpty=共 0 项 -nfv-nso-iui-table-sGroupActions=_TOTAL_ 条结果被选择: -nfv-nso-iui-table-sAjaxRequestGeneralError=不能完成请求,请检查您的网络连接情况。 -nfv-nso-iui-table-sEmptyTable=表中数据为空 -nfv-nso-iui-table-sPrevious=前页 -nfv-nso-iui-table-sNext=下页 -nfv-nso-iui-table-sPage=第 -nfv-nso-iui-table-sPageOf=页,总页数: -nfv-nso-iui-table-sProcess=处理中... - -//common -nfv-nso-iui-common-tip=提示: - -//package table colums -nfv-package-iui-title=包管理 -nfv-package-iui-field-sn=序号 -nfv-package-iui-field-name=名称 -nfv-package-iui-field-type=类型 -nfv-package-iui-field-usagestate=使用状态 -nfv-package-iui-field-processstate=中间状态 -nfv-package-iui-field-operationalstate=操作状态 -nfv-package-iui-field-onboardstate=上载状态 -nfv-package-iui-field-deletionpending=待删除 -nfv-package-iui-field-operation=操作 - -//package detail message -nfv-package-iui-field-detail-name=名称 -nfv-package-iui-field-detail-type=类型 -nfv-package-iui-field-detail-usagestate=使用状态 -nfv-package-iui-field-detail-processstate=中间状态 -nfv-package-iui-field-detail-operationalstate=操作状态 -nfv-package-iui-field-detail-onboardstate=上载状态 -nfv-package-iui-field-detail-deletionpending=待删除状态 -nfv-package-iui-field-detail-operation=操作 -nfv-package-iui-field-detail-size=大小 -nfv-package-iui-field-detail-csarid=ID -nfv-package-iui-field-detail-version=版本 -nfv-package-iui-field-detail-provider=提供商 -nfv-package-iui-field-detail-downloaduri=下载Uri -nfv-package-iui-field-detail-createtime=创建时间 -nfv-package-iui-field-detail-modifytime=更改时间 -nfv-package-iui-field-detail-format=格式 - -nfv-package-iui-status-tip=点击激活 -nfv-package-iui-status-active=激活 -nfv-package-iui-status-activating=激活中 -nfv-package-iui-status-inactive=未激活 -nfv-package-iui-status-deleting=删除中 -nfv-package-iui-status-deletefail=删除失败 -nfv-package-iui-status-onBoarding=正在上载 - -nfv-package-iui_packageview_packageDetail=包详情 -nfv-package-iui_packageview_btn_close=关闭 -nfv-package-iui_packageview_key=关键字 -nfv-package-iui_packageview_value=值 -nfv-package-iui-selectvim-title=选择VIM上载镜像 -nfv-package-iui-btn-cancel=取消 -nfv-package-iui-btn-ok=确认 - -nfv-package-iui-message-upload-success=包导入成功。 -nfv-package-iui-message-upload-fail=包导入失败。 -nfv-package-iui-message-delete-confirm=确定要删除当前包? -nfv-package-iui-message-delete-success=包删除成功。 -nfv-package-iui-message-upload-csar-exist=存在同名包,是否继续上传? -nfv-package-iui-message-upload-csar-deletionpending=实例中引用了此包,是否重新上传? -nfv-package-iui-message-onBoarded = 上载操作成功。 -nfv-package-iui-message-onBoard-error = 上载失败。 -nfv-package-iui-message-delete-error = 包删除失败。 -nfv-package-iui-message-select-vim-error = 最多只能选择一个VIM做为测试环境 -nfv-package-iui-onboard-dialog-vimname = VIM名称 -nfv-package-iui-product-env = 生产环境 -nfv-package-iui-test-env = 测试环境 -nfv-package-iui-http-delete-error = 从HTTP服务器上删除包失败! -nfv-package-iui-template-delete-error = 删除模板数据失败! -nfv-package-iui-package-delete-error = 删除包数据失败! - - -nfv-package-iui-drop-zone-title=拖拽文件到这里 … -nfv-package-iui-drop-zone-selectBtn=选择 -nfv-package-iui-drop-zone-removeBtn=移除 -nfv-package-iui-drop-zone-uploadBtn=上传 - -nfv-template-topo-iui-title=拓扑 -nfv-template-nodes-iui-title=节点 - -//template table colums -nfv-template-iui-title=模板管理 -nfv-template-iui-field-order=序号 -nfv-template-iui-field-templatename=名称 -nfv-template-iui-field-templatename-topo=名称(拓扑) -nfv-template-iui-field-templatename-nodes=名称(节点) -nfv-template-iui-field-producttype=类型 -nfv-template-iui-field-vendor=厂商 -nfv-template-iui-field-version=版本 -nfv-template-iui-field-inputs=输入 -nfv-template-iui-field-outputs=输出 -nfv-template-iui-field-operations=操作 -nfv-template-iui-field-download-uri=下载Uri -nfv-template-iui-field-type=节点类型 - -//template detail table colums -nfv-templateDetail-iui-index=序号 -nfv-templateDetail-iui-title=节点模板 -nfv-templateDetail-iui-field-nodeId=ID -nfv-templateDetail-iui-field-nodetypename=名称 -nfv-templateDetail-iui-field-type=类型 -nfv-templateDetail-iui-field-containedin=归属 -nfv-templateDetail-iui-field-deployedon=部署 -nfv-templateDetail-iui-field-connectedto=业务连接 -nfv-templateDetail-iui-field-virtuallinksto=网络连接 - -nfv-templateDetail-nodesTab-iui-tab-general=概况 -nfv-templateDetail-nodesTab-iui-tab-properties=属性 -nfv-templateDetail-nodesTab-iui-tab-relationShips=关系 -nfv-templateDetail-nodesTab-iui-field-key=关键字 -nfv-templateDetail-nodesTab-iui-field-value=值 -nfv-templateDetail-nodesTab-iui-field-property=属性 -nfv-templateDetail-nodesTab-iui-field-sourceNodeName=源节点 -nfv-templateDetail-nodesTab-iui-field-targetNodeName=目标节点 -nfv-templateDetail-nodesTab-iui-field-type=类型 -nfv-templateDetail-nodesTab-iui-btn-close=关闭 -nfv-templateDetail-nodesTab-iui-title-nodeDetail=节点详情 - -nfv-templateDetail-executionTab-iui-field-currentStepName=名称 -nfv-templateDetail-executionTab-iui-field-currentStepStatus=状态 -nfv-templateDetail-executionTab-iui-field-currentStepDesc=描述 -nfv-templateDetail-executionTab-iui-field-executionTime=执行时间 - -//topo -nfv-topology-iui-vnf-tip=点击查看嵌套拓扑图 -nfv-topology-iui-btn-return-tip=返回 -nfv-topology-iui-message-error=查询拓扑图模板信息失败 - -nfv-software-iui-action-delete=删除 -nfv-software-iui-action-onboard=Onboard diff --git a/openo-portal/portal-catalog/src/main/webapp/catalog/image/License.txt b/openo-portal/portal-catalog/src/main/webapp/catalog/image/License.txt deleted file mode 100644 index d1ce787a..00000000 --- a/openo-portal/portal-catalog/src/main/webapp/catalog/image/License.txt +++ /dev/null @@ -1,362 +0,0 @@ -THIS LICENSE FILE CONTAINS THE LICENSE APPLICABLE DEPENDING ON THE TYPE OF CONTRIBUTIONS. - -APACHE LICENSE 2 IS APPLICABLE FOR SOURCE CODE, CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL FOR DOCUMENTATION - -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - - -Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - -"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - -"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - -"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - -"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - -"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - -"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - -"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - -"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - -"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - -"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - -2. Grant of Copyright License. - -Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. - -Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - -4. Redistribution. - -You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - -You must give any other recipients of the Work or Derivative Works a copy of this License; and You must cause any modified files to carry prominent notices stating that You changed the files; and You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - -5. Submission of Contributions. - -Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - -6. Trademarks. - -This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. - -Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. - -In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. - -While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS - -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - -Attribution 4.0 International - -https://creativecommons.org/licenses/by/4.0/legalcode - -Creative Commons Corporation ("Creative Commons") is not a law firm and does not provide legal services or legal advice. Distribution of Creative Commons public licenses does not create a lawyer-client or other relationship. Creative Commons makes its licenses and related information available on an "as-is" basis. Creative Commons gives no warranties regarding its licenses, any material licensed under their terms and conditions, or any related information. Creative Commons disclaims all liability for damages resulting from their use to the fullest extent possible. - -Using Creative Commons Public Licenses - -Creative Commons public licenses provide a standard set of terms and conditions that creators and other rights holders may use to share original works of authorship and other material subject to copyright and certain other rights specified in the public license below. The following considerations are for informational purposes only, are not exhaustive, and do not form part of our licenses. - - Considerations for licensors: Our public licenses are - intended for use by those authorized to give the public - permission to use material in ways otherwise restricted by - copyright and certain other rights. Our licenses are - irrevocable. Licensors should read and understand the terms - and conditions of the license they choose before applying it. - Licensors should also secure all rights necessary before - applying our licenses so that the public can reuse the - material as expected. Licensors should clearly mark any - material not subject to the license. This includes other CC- - licensed material, or material used under an exception or - limitation to copyright. More considerations for licensors: - wiki.creativecommons.org/Considerations_for_licensors - Considerations for the public: By using one of our public - licenses, a licensor grants the public permission to use the - licensed material under specified terms and conditions. If - the licensor's permission is not necessary for any reason--for - example, because of any applicable exception or limitation to - copyright--then that use is not regulated by the license. Our - licenses grant only permissions under copyright and certain - other rights that a licensor has authority to grant. Use of - the licensed material may still be restricted for other - reasons, including because others have copyright or other - rights in the material. A licensor may make special requests, - such as asking that all changes be marked or described. - Although not required by our licenses, you are encouraged to - respect those requests where reasonable. More_considerations - for the public: - wiki.creativecommons.org/Considerations_for_licensees -Creative Commons Attribution 4.0 International Public License - -By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions. - - -Section 1 -- Definitions. - - a. Adapted Material means material subject to Copyright and Similar - Rights that is derived from or based upon the Licensed Material - and in which the Licensed Material is translated, altered, - arranged, transformed, or otherwise modified in a manner requiring - permission under the Copyright and Similar Rights held by the - Licensor. For purposes of this Public License, where the Licensed - Material is a musical work, performance, or sound recording, - Adapted Material is always produced where the Licensed Material is - synched in timed relation with a moving image. - b. Adapter's License means the license You apply to Your Copyright - and Similar Rights in Your contributions to Adapted Material in - accordance with the terms and conditions of this Public License. - c. Copyright and Similar Rights means copyright and/or similar rights - closely related to copyright including, without limitation, - performance, broadcast, sound recording, and Sui Generis Database - Rights, without regard to how the rights are labeled or - categorized. For purposes of this Public License, the rights - specified in Section 2(b)(1)-(2) are not Copyright and Similar - Rights. - d. Effective Technological Measures means those measures that, in the - absence of proper authority, may not be circumvented under laws - fulfilling obligations under Article 11 of the WIPO Copyright - Treaty adopted on December 20, 1996, and/or similar international - agreements. - e. Exceptions and Limitations means fair use, fair dealing, and/or - any other exception or limitation to Copyright and Similar Rights - that applies to Your use of the Licensed Material. - f. Licensed Material means the artistic or literary work, database, - or other material to which the Licensor applied this Public - License. - g. Licensed Rights means the rights granted to You subject to the - terms and conditions of this Public License, which are limited to - all Copyright and Similar Rights that apply to Your use of the - Licensed Material and that the Licensor has authority to license. - h. Licensor means the individual(s) or entity(ies) granting rights - under this Public License. - i. Share means to provide material to the public by any means or - process that requires permission under the Licensed Rights, such - as reproduction, public display, public performance, distribution, - dissemination, communication, or importation, and to make material - available to the public including in ways that members of the - public may access the material from a place and at a time - individually chosen by them. - j. Sui Generis Database Rights means rights other than copyright - resulting from Directive 96/9/EC of the European Parliament and of - the Council of 11 March 1996 on the legal protection of databases, - as amended and/or succeeded, as well as other essentially - equivalent rights anywhere in the world. - k. You means the individual or entity exercising the Licensed Rights - under this Public License. Your has a corresponding meaning. - -Section 2 -- Scope. - - a. License grant. - 1. Subject to the terms and conditions of this Public License, - the Licensor hereby grants You a worldwide, royalty-free, - non-sublicensable, non-exclusive, irrevocable license to - exercise the Licensed Rights in the Licensed Material to: - a. reproduce and Share the Licensed Material, in whole or - in part; and - b. produce, reproduce, and Share Adapted Material. - 2. Exceptions and Limitations. For the avoidance of doubt, where - Exceptions and Limitations apply to Your use, this Public - License does not apply, and You do not need to comply with - its terms and conditions. - 3. Term. The term of this Public License is specified in Section - 6(a). - 4. Media and formats; technical modifications allowed. The - Licensor authorizes You to exercise the Licensed Rights in - all media and formats whether now known or hereafter created, - and to make technical modifications necessary to do so. The - Licensor waives and/or agrees not to assert any right or - authority to forbid You from making technical modifications - necessary to exercise the Licensed Rights, including - technical modifications necessary to circumvent Effective - Technological Measures. For purposes of this Public License, - simply making modifications authorized by this Section 2(a) - (4) never produces Adapted Material. - 5. Downstream recipients. - a. Offer from the Licensor -- Licensed Material. Every - recipient of the Licensed Material automatically - receives an offer from the Licensor to exercise the - Licensed Rights under the terms and conditions of this - Public License. - b. No downstream restrictions. You may not offer or impose - any additional or different terms or conditions on, or - apply any Effective Technological Measures to, the - Licensed Material if doing so restricts exercise of the - Licensed Rights by any recipient of the Licensed - Material. - 6. No endorsement. Nothing in this Public License constitutes or - may be construed as permission to assert or imply that You - are, or that Your use of the Licensed Material is, connected - with, or sponsored, endorsed, or granted official status by, - the Licensor or others designated to receive attribution as - provided in Section 3(a)(1)(A)(i). - b. Other rights. - 1. Moral rights, such as the right of integrity, are not - licensed under this Public License, nor are publicity, - privacy, and/or other similar personality rights; however, to - the extent possible, the Licensor waives and/or agrees not to - assert any such rights held by the Licensor to the limited - extent necessary to allow You to exercise the Licensed - Rights, but not otherwise. - 2. Patent and trademark rights are not licensed under this - Public License. - 3. To the extent possible, the Licensor waives any right to - collect royalties from You for the exercise of the Licensed - Rights, whether directly or through a collecting society - under any voluntary or waivable statutory or compulsory - licensing scheme. In all other cases the Licensor expressly - reserves any right to collect such royalties. - -Section 3 -- License Conditions. - -Your exercise of the Licensed Rights is expressly made subject to the following conditions. - - a. Attribution. - 1. If You Share the Licensed Material (including in modified - form), You must: - a. retain the following if it is supplied by the Licensor - with the Licensed Material: - i. identification of the creator(s) of the Licensed - Material and any others designated to receive - attribution, in any reasonable manner requested by - the Licensor (including by pseudonym if - designated); - ii. a copyright notice; - iii. a notice that refers to this Public License; - iv. a notice that refers to the disclaimer of - warranties; - v. a URI or hyperlink to the Licensed Material to the - extent reasonably practicable; - b. indicate if You modified the Licensed Material and - retain an indication of any previous modifications; and - c. indicate the Licensed Material is licensed under this - Public License, and include the text of, or the URI or - hyperlink to, this Public License. - 2. You may satisfy the conditions in Section 3(a)(1) in any - reasonable manner based on the medium, means, and context in - which You Share the Licensed Material. For example, it may be - reasonable to satisfy the conditions by providing a URI or - hyperlink to a resource that includes the required - information. - 3. If requested by the Licensor, You must remove any of the - information required by Section 3(a)(1)(A) to the extent - reasonably practicable. - 4. If You Share Adapted Material You produce, the Adapter's - License You apply must not prevent recipients of the Adapted - Material from complying with this Public License. - -Section 4 -- Sui Generis Database Rights. - -Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material: - - a. for the avoidance of doubt, Section 2(a)(1) grants You the right - to extract, reuse, reproduce, and Share all or a substantial - portion of the contents of the database; - b. if You include all or a substantial portion of the database - contents in a database in which You have Sui Generis Database - Rights, then the database in which You have Sui Generis Database - Rights (but not its individual contents) is Adapted Material; and - c. You must comply with the conditions in Section 3(a) if You Share - all or a substantial portion of the contents of the database. -For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights. - - -Section 5 -- Disclaimer of Warranties and Limitation of Liability. - - a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE - EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS - AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF - ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, - IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, - WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR - PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, - ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT - KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT - ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. - b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE - TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, - NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, - INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, - COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR - USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN - ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR - DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR - IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. - c. The disclaimer of warranties and limitation of liability provided - above shall be interpreted in a manner that, to the extent - possible, most closely approximates an absolute disclaimer and - waiver of all liability. - -Section 6 -- Term and Termination. - - a. This Public License applies for the term of the Copyright and - Similar Rights licensed here. However, if You fail to comply with - this Public License, then Your rights under this Public License - terminate automatically. - b. Where Your right to use the Licensed Material has terminated under - Section 6(a), it reinstates: - 1. automatically as of the date the violation is cured, provided - it is cured within 30 days of Your discovery of the - violation; or - 2. upon express reinstatement by the Licensor. - For the avoidance of doubt, this Section 6(b) does not affect any - right the Licensor may have to seek remedies for Your violations - of this Public License. - c. For the avoidance of doubt, the Licensor may also offer the - Licensed Material under separate terms or conditions or stop - distributing the Licensed Material at any time; however, doing so - will not terminate this Public License. - d. Sections 1, 5, 6, 7, and 8 survive termination of this Public - License. - -Section 7 -- Other Terms and Conditions. - - a. The Licensor shall not be bound by any additional or different - terms or conditions communicated by You unless expressly agreed. - b. Any arrangements, understandings, or agreements regarding the - Licensed Material not stated herein are separate from and - independent of the terms and conditions of this Public License. - -Section 8 -- Interpretation. - - a. For the avoidance of doubt, this Public License does not, and - shall not be interpreted to, reduce, limit, restrict, or impose - conditions on any use of the Licensed Material that could lawfully - be made without permission under this Public License. - b. To the extent possible, if any provision of this Public License is - deemed unenforceable, it shall be automatically reformed to the - minimum extent necessary to make it enforceable. If the provision - cannot be reformed, it shall be severed from this Public License - without affecting the enforceability of the remaining terms and - conditions. - c. No term or condition of this Public License will be waived and no - failure to comply consented to unless expressly agreed to by the - Licensor. - d. Nothing in this Public License constitutes or may be interpreted - as a limitation upon, or waiver of, any privileges and immunities - that apply to the Licensor or You, including from the legal - processes of any jurisdiction or authority. -Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the "Licensor." The text of the Creative Commons public licenses is dedicated to the public domain under the CC0 Public Domain Dedication. Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at creativecommons.org/policies, Creative Commons does not authorize the use of the trademark "Creative Commons" or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses. - -Creative Commons may be contacted at creativecommons.org. \ No newline at end of file diff --git a/openo-portal/portal-catalog/src/main/webapp/catalog/js/component/commonUtil.js b/openo-portal/portal-catalog/src/main/webapp/catalog/js/component/commonUtil.js deleted file mode 100644 index 103b62d1..00000000 --- a/openo-portal/portal-catalog/src/main/webapp/catalog/js/component/commonUtil.js +++ /dev/null @@ -1,128 +0,0 @@ -/* - * Copyright 2016-2017 ZTE Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -var commonUtil = {}; -commonUtil.arrayRemove = function( aryInstance , index ){ - if(aryInstance == undefined || aryInstance == null){ - return; - } - for(var i=0,n=0;i 2006-07-02 08:09:04.423 -// (new Date()).Format("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18 -commonUtil.parseDate = function( dateObj , format){ - var o = { - "M+" : dateObj.getMonth()+1, //month - "d+" : dateObj.getDate(), //day - "h+" : dateObj.getHours(), //hour - "m+" : dateObj.getMinutes(), //minute - "s+" : dateObj.getSeconds(), //second - "q+" : Math.floor((dateObj.getMonth()+3)/3), //quarter - "S" : dateObj.getMilliseconds() //millisecond - } - if(/(y+)/.test(format)) format=format.replace(RegExp.$1, - (dateObj.getFullYear()+"").substr(4 - RegExp.$1.length)); - for(var k in o) - if(new RegExp("("+ k +")").test(format)) - format = format.replace(RegExp.$1, RegExp.$1.length==1 ? o[k] : - ("00"+ o[k]).substr((""+ o[k]).length)); - return format; -}; - -//tooltip -commonUtil.showMessage = function(message, type) { - $.growl({ - icon: "fa fa-envelope-o fa-lg", - title: "  " + $.i18n.prop("nfv-nso-iui-common-tip"), - message: message - },{ - type: type - }); -}; - -commonUtil.registerCometdMessage = function(url, channel, callback) { - var cometd = new $.Cometd(); - var cometdURL = location.protocol + "//" + location.host + url; - cometd.configure({ - url : cometdURL, - logLevel : "info" - }); - // unregister websocket transport, use long-polling transport - cometd.unregisterTransport('websocket'); - // store channel object parameters(this object include channel and callback function), start from arguments[1] - var _args = arguments; - - cometd.addListener("/meta/handshake", function(handshake){ - if(handshake.successful === true) { - cometd.batch(function() { - //subscribe channel - cometd.subscribe(channel, function(message){ - callback.call(this, message.data); - }); - }); - } - }); - cometd.handshake(); -} - -commonUtil.format = function() { - if(arguments.length == 0) { - return null; - } - var str = arguments[0]; - for(var i=0; i ' + oLang.sPage + ' ' + - '' + - '' + - ' ' + - oLang.sPageOf + ' ' + - '
    ' - ); - - var els = $('a', nPaging); - - $(els[0]).bind('click.DT', { action: "previous" }, fnClickHandler ); - $(els[1]).bind('click.DT', { action: "next" }, fnClickHandler); - - $('.pagination-panel-input', nPaging).bind('change.DT', function(e) { - var oPaging = oSettings.oInstance.fnPagingInfo(); - e.preventDefault(); - var page = parseInt($(this).val()); - if (page > 0 && page < oPaging.iTotalPages) { - if ( oSettings.oApi._fnPageChange(oSettings, page-1) ) { - fnDraw( oSettings ); - } - } else { - $(this).val(oPaging.iPage + 1); - } - }); - - $('.pagination-panel-input', nPaging).bind('keypress.DT', function(e) { - var oPaging = oSettings.oInstance.fnPagingInfo(); - if (e.which == 13) { - var page = parseInt($(this).val()); - if (page > 0 && page < oSettings.oInstance.fnPagingInfo().iTotalPages) { - if ( oSettings.oApi._fnPageChange(oSettings, page-1) ) { - fnDraw( oSettings ); - } - } else { - $(this).val(oPaging.iPage + 1); - } - e.preventDefault(); - } - }); - }, - - "fnUpdate": function ( oSettings, fnDraw ) { - var iListLength = 5; - var oPaging = oSettings.oInstance.fnPagingInfo(); - var an = oSettings.aanFeatures.p; - var i, j, sClass, iStart, iEnd, iHalf=Math.floor(iListLength/2); - - if ( oPaging.iTotalPages < iListLength) { - iStart = 1; - iEnd = oPaging.iTotalPages; - } - else if ( oPaging.iPage <= iHalf ) { - iStart = 1; - iEnd = iListLength; - } else if ( oPaging.iPage >= (oPaging.iTotalPages-iHalf) ) { - iStart = oPaging.iTotalPages - iListLength + 1; - iEnd = oPaging.iTotalPages; - } else { - iStart = oPaging.iPage - iHalf + 1; - iEnd = iStart + iListLength - 1; - } - - - for ( i=0, iLen=an.length ; i'+j+'') - .insertBefore( $('li.next:first', an[i])[0] ) - .bind('click', function (e) { - e.preventDefault(); - oSettings._iDisplayStart = (parseInt($('a', this).text(),10)-1) * oPaging.iLength; - fnDraw( oSettings ); - } ); - } - - // Add / remove disabled classes from the static elements - if ( oPaging.iPage === 0 ) { - $('a.prev', an[i]).addClass('disabled'); - } else { - $('a.prev', an[i]).removeClass('disabled'); - } - - if ( oPaging.iPage === oPaging.iTotalPages-1 || oPaging.iTotalPages === 0 ) { - $('a.next', an[i]).addClass('disabled'); - } else { - $('a.next', an[i]).removeClass('disabled'); - } - } - } - } -} ); - -serverPageTable.getRestPara = function( cond , tableSetting ){ - var pageNo=tableSetting._iDisplayStart/tableSetting._iDisplayLength+1; - var pageSize = tableSetting._iDisplayLength; - var queryParameter={"pageNo":pageNo,"pageSize":tableSetting._iDisplayLength,groupId:["it.group.database=02","it.group.server=01"]}, - newData={"data":JSON.stringify(queryParameter)}; - //put the pageinfo in cond if there is a pageinfo - var pageInfo = vm.logInfo[vm.logType].pageInfo; - if(pageInfo != null && serverPageTable.perpagenumber == pageSize){ - cond.idEnd = pageInfo.pageStart[pageNo - 1]; - cond.idStart = pageInfo.pageStart[pageNo]; - if(!cond.idStart){ //the last page - cond.idStart = 0; - } - - }else{ - delete cond.idStart; - delete cond.idEnd; - vm.logInfo[vm.logType].pageInfo = null; - pageNo = 1; - tableSetting._iDisplayStart = 0; - } - var data = { - cond:JSON.stringify(cond), - perpagenumber:pageSize, - pageNo:pageNo, - needPageInfo:vm.logInfo[vm.logType].pageInfo == null - }; - serverPageTable.perpagenumber = pageSize; - return data; -}; - -serverPageTable.initTableWithoutLib = function( setting ,cond , divId) { - //transform colomn - var column = setting.columns; - //empty table - $('#'+ divId).children().remove(); - var tableId = setting.tableId; - var tableEleStr = '' - + '' - +'' - + '' - + '' - +'' - +'' - +'
    '; - $('#'+ divId).append(tableEleStr); - //$('#'+ tableId).append(' '); - var trEle = $('#'+ tableId + ' > thead >tr'); - //var dataTableColumn = []; - for ( var one in column){ - var th = '' + column[one].name + ''; - trEle.append(th); - } - var table = $("#" + tableId).dataTable({ - //"sDom" : "tr<'row'<'col-md-6 col-sm-12'><'col-md-6 col-sm-12'pli>>", // datatable layout - //"sDom" : "<'row'<'col-md-12 col-sm-12'lip>r><'table-scrollable't>>", - //"sDom": '<"top"rt><"bottom"lip>', - "sDom": '<"top"rt>', - "oLanguage": setting.language,//language - //"bJQueryUI": true, - "bPaginate": setting.paginate,// page button - "bFilter": false,// search bar - "bAutoWidth":true,//automatically set colum width - "bLengthChange": true,// record number in each row - "iDisplayLength": 10,// row number in each page - "bSort": setting.sort ? true : false,// sort - "bInfo": setting.info,// Showing 1 to 10 of 23 entries - "bWidth": true, - "bScrollCollapse": true, - "sPaginationType": "bootstrap_extended", // page, a total of two kinds of style, another one is two_button - "bProcessing": true, - "bServerSide": false, - "bDestroy": true, - "bSortCellsTop": true, - "sAjaxSource": setting.restUrl, - "aoColumns": setting.columns, - "aoColumnDefs": [ - { - sDefaultContent: '', - aTargets: [ '_all' ] - } - ], - "fnServerData": function (sSource, aoData, fnCallback, oSettings) { - oSettings.jqXHR = $.ajax({ - "type": 'get', - "url": sSource, - "dataType": "json", - //"data":serverPageTable.getRestPara(cond,oSettings), - "success": function (resp) { - oSettings.iDraw = oSettings.iDraw + 1; - - resp = resp || []; - var data = {}; - data.aaData = resp; - var totalCounts = resp.length; - - data.iTotalRecords = totalCounts; - data.iTotalDisplayRecords = totalCounts; - data.sEcho = oSettings; - fnCallback(data); - }, - "error": function(resp) { - var data = {}; - data.aaData = []; - var totalCounts = 0; - - data.iTotalRecords = totalCounts; - data.iTotalDisplayRecords = totalCounts; - data.sEcho = oSettings; - fnCallback(data); - } - }); - } - }); -}; - -serverPageTable.initDataTable = function( setting ,cond , divId) { - //transform colomn - var column = setting.columns; - //empty table - $('#'+ divId).children().remove(); - var tableId = setting.tableId; - var tableEleStr = '' - + '' - +'' - + '' - + '' - +'' - +'' - +'
    '; - $('#'+ divId).append(tableEleStr); - //$('#'+ tableId).append(' '); - var trEle = $('#'+ tableId + ' > thead >tr'); - //var dataTableColumn = []; - for ( var one in column){ - var th = '' + column[one].name + ''; - trEle.append(th); - } - var table = $("#" + tableId).dataTable({ - //"sDom" : "tr<'row'<'col-md-6 col-sm-12'><'col-md-6 col-sm-12'pli>>", // datatable layout - //"sDom" : "<'row'<'col-md-12 col-sm-12'lip>r><'table-scrollable't>>", - "sDom": '<"top"rt><"bottom"lip>', - "oLanguage": setting.language,//language - //"bJQueryUI": true, - "bPaginate": setting.paginate,// page button - "bFilter": false,// search bar - "bAutoWidth":true,//automatically set colum width - "bLengthChange": true,// record number in each row - "iDisplayLength": 10,// row number in each page - "bSort": setting.sort ? true : false,// sort - "bInfo": setting.info,// Showing 1 to 10 of 23 entries - "bWidth": true, - "bScrollCollapse": true, - "sPaginationType": "bootstrap_extended", // page, a total of two kinds of style, another one is two_button - "bProcessing": true, - "bServerSide": false, - "bDestroy": true, - "bSortCellsTop": true, - "sAjaxSource": setting.restUrl, - "aoColumns": setting.columns, - "aoColumnDefs": [ - { - sDefaultContent: '', - aTargets: [ '_all' ] - } - ], - "fnServerData": function (sSource, aoData, fnCallback, oSettings) { - oSettings.jqXHR = $.ajax({ - "type": 'get', - "url": sSource, - "dataType": "json", - //"data":serverPageTable.getRestPara(cond,oSettings), - "success": function (resp) { - oSettings.iDraw = oSettings.iDraw + 1; - - resp = resp || []; - var data = {}; - data.aaData = resp; - var totalCounts = resp.length; - - data.iTotalRecords = totalCounts; - data.iTotalDisplayRecords = totalCounts; - data.sEcho = oSettings; - fnCallback(data); - }, - "error": function(resp) { - var data = {}; - data.aaData = []; - var totalCounts = 0; - - data.iTotalRecords = totalCounts; - data.iTotalDisplayRecords = totalCounts; - data.sEcho = oSettings; - fnCallback(data); - } - }); - } - }); -}; - -serverPageTable.initTableWithData = function( setting , divId , tableData) { - //transform colomn - var column = setting.columns; - //empty table - $('#'+ divId).children().remove(); - var tableId = setting.tableId; - var tableEleStr = '' - + '' - +'' - + '' - + '' - +'' - +'' - +'
    '; - $('#'+ divId).append(tableEleStr); - var trEle = $('#'+ tableId + ' > thead >tr'); - for ( var one in column){ - var th = '' + column[one].name + ''; - trEle.append(th); - } - var table = $("#" + tableId).dataTable({ - "sDom" : "<'row'<'col-md-12 col-sm-12'lip>r>>", - "oLanguage": setting.language,//language - //"bJQueryUI": true, - "bPaginate": setting.paginate,// page button - "bFilter": false,// search bar - "bAutoWidth":true,//automatically set the column width - "bLengthChange": true,// record number in each row - "iDisplayLength": 10,// row number in each page - "bSort": setting.sort ? true : false,// sort - "bInfo": setting.info,// Showing 1 to 10 of 23 entries - "bWidth": true, - "bScrollCollapse": true, - "sPaginationType": "bootstrap_extended", // page, a total of two kinds of style, another one is two_button - "bProcessing": false, - "bServerSide": false, - "bDestroy": true, - "bSortCellsTop": true, - "sAjaxSource": tableData, - "aoColumns": setting.columns, - "fnServerData": function (sSource, aoData, fnCallback, oSettings) { - oSettings.iDraw = oSettings.iDraw + 1; - var resp = tableData || []; - var data = {}; - data.aaData = resp; - var totalCounts = resp.length; - - data.iTotalRecords = totalCounts; - data.iTotalDisplayRecords = totalCounts; - data.sEcho = oSettings; - fnCallback(data); - } - }); -}; - - -serverPageTable.initDataTableForEvent = function( setting ,cond , divId) { - //transform colomn - var column = setting.columns; - //empty table - $('#'+ divId).children().remove(); - var tableId = setting.tableId; - var tableEleStr = '' - + '' - +'' - + '' - + '' - +'' - +'' - +'
    '; - $('#'+ divId).append(tableEleStr); - var trEle = $('#'+ tableId + ' > thead >tr'); - for ( var one in column){ - var th = '' + column[one].name + ''; - trEle.append(th); - } - var table = $("#" + tableId).dataTable({ - "sDom": '<"top"rt><"bottom"lip>', - "oLanguage": setting.language,//language - //"bJQueryUI": true, - "bPaginate": setting.paginate,// page button - "bFilter": false,// search bar - "bAutoWidth":true,//automatically set the column width - "bLengthChange": true,// record number in each row - "iDisplayLength": 10,// row number in each page - "bSort": setting.sort ? true : false, - "bInfo": setting.info,// Showing 1 to 10 of 23 entries - "bWidth": true, - "bScrollCollapse": true, - "sPaginationType": "bootstrap_extended", // page, a total of two kinds of style, another one is two_button - "bProcessing": true, - "bServerSide": false, - "bDestroy": true, - "bSortCellsTop": true, - "sAjaxSource": setting.restUrl, - "aoColumns": setting.columns, - "aoColumnDefs": [ - { - sDefaultContent: '', - aTargets: [ '_all' ] - } - ], - "fnServerData": function (sSource, aoData, fnCallback, oSettings) { - oSettings.jqXHR = $.ajax({ - "type": 'get', - "url": sSource, - "dataType": "json", - //"data":serverPageTable.getRestPara(cond,oSettings), - "success": function (resp) { - oSettings.iDraw = oSettings.iDraw + 1; - - var result = []; - for(var i=0;i  " - +$.i18n.prop("nfv-nso-iui-table-sProcess")+"", - "sLengthMenu": $.i18n.prop("nfv-nso-iui-table-sLengthMenu"), - "sZeroRecords": $.i18n.prop("nfv-nso-iui-table-sZeroRecords"), - "sInfo": " " + $.i18n.prop("nfv-nso-iui-table-sInfo"), - "sInfoEmpty": $.i18n.prop("nfv-nso-iui-table-sInfoEmpty"), - "sGroupActions": $.i18n.prop("nfv-nso-iui-table-sGroupActions"), - "sAjaxRequestGeneralError":$.i18n.prop("nfv-nso-iui-table-sAjaxRequestGeneralError"), - "sEmptyTable": $.i18n.prop("nfv-nso-iui-table-sEmptyTable"), - "oPaginate": { - "sPrevious": $.i18n.prop("nfv-nso-iui-table-sPrevious"), - "sNext": $.i18n.prop("nfv-nso-iui-table-sNext"), - "sPage": $.i18n.prop("nfv-nso-iui-table-sPage"), - "sPageOf": $.i18n.prop("nfv-nso-iui-table-sPageOf") - } - }, - $restUrl:{ - queryPackageInfoUrl: "/openoapi/catalog/v1/csars", - uploadPackageUrl: "/openoapi/catalog/v1/csars", - gsarDelPackageUrl: "/openoapi/gso/v1/nspackages", - ssarDelPackageUrl: "/openoapi/catalog/v1/csars", - nsarDelPackageUrl: "/openoapi/nslcm/v1/nspackage", - nfarDelPackageUrl: "/openoapi/nslcm/v1/vnfpackage", - gsarOnboardUrl: "/openoapi/gso/v1/nspackages", - ssarOnboardUrl: "/openoapi/catalog/v1/csars", - nsarOnboardUrl: "/openoapi/nslcm/v1/nspackage", - nfarOnboardUrl: "/openoapi/nslcm/v1/vnfpackage", - changePackageStatusUrl : "/openoapi/catalog/v1/csars", - queryVimInfoUrl : "/openoapi/extsys/v1/vims" - }, - $getPackageCond: function() { - var cond = {}; - return cond; - }, - //$initTable: function() { - // var url=vm.$restUrl.queryPackageInfoUrl; - // commonUtil.get(url,null,function(resp) { - // if (resp) { - // vm.resource.packageInfo=resp; - // } - // }) - //}, - $initTable: function() { - var setting = {}; - setting.language = vm.$language; - setting.paginate = true; - setting.info = true; - setting.sort = true; - setting.columns = vm.$packageTableFields.table; - setting.restUrl = vm.$restUrl.queryPackageInfoUrl; - setting.tableId = vm.$tableId; - serverPageTable.initDataTable(setting,{},vm.$tableId + '_div'); - }, - packageDetail : { - detailTitle : "", - isShow : "none", - detailIndex : 0, - detailData : [{ - id : "general", - name : $.i18n.prop("com_zte_ums_eco_roc_rsview_info"), - isActive : true - }, { - id : "relationShips", - name : $.i18n.prop("com_zte_ums_eco_roc_rsview_relation"), - isActive : false - } - ], - $showDetails : function (isShow, csarId, name) { - vm.packageDetail.isShow = isShow; - vm.packageDetail.detailCondChange(0); - if (isShow == "block") { - vm.packageDetail.detailTitle = name + "-" + $.i18n.prop("nfv-package-iui_packageview_packageDetail"), - $('#' + vm.packageDetail.detailData[0].id).click(); - vm.packageDetail.detailData[0].isActive = true; - vm.packageDetail.$initPackageDetailTable(csarId); - } - }, - detailCondChange : function (index) { - vm.packageDetail.detailIndex = index; - for (var i = 0; i < vm.packageDetail.detailData.length; i++) { - vm.packageDetail.detailData[i].isActive = false; - } - vm.packageDetail.detailData[index].isActive = true; - }, - $initPackageDetailTable : function (csarId) { - var url=vm.$restUrl.queryPackageInfoUrl + "/" + csarId; - commonUtil.get(url,null,function(resp) { - if (resp) { - vm.resource.packageDetails=resp; - } - }) - - }, - $isRowDeletingStatus : function(name) { - var table = $("#" + vm.$tableId).dataTable(); - var tableData = table.fnGetData(); - for (var i=0; i -1) { - return true; - } - } - return false; - }, - }, - selectVimDialog : { - currentRadioClicked : [], - clickedIndex : "", - nfarOnBoardParam : { - csarId : "", - vimIds : [], - labVimId : "", - }, - $initData : function(csarId) { - var url=vm.$restUrl.queryVimInfoUrl; - commonUtil.get(url,null,function(resp) { - if (resp) { - vm.resource.vimSelectItems=resp; - } - }) - vm.selectVimDialog.nfarOnBoardParam.csarId = csarId; - }, - $confirmBtnClick : function () { - var labVimId = ""; - var vimIds = []; - var testEnvCount = 0; - for(var i=0; i -1) { - return true; - } - } - return false; - }, - - onBoardPackage : function(csarId,type,onBoardState) { - var param = { - csarId : csarId - }; - if(type == "NSAR") { - var url = vm.$restUrl.nsarOnboardUrl; - pmUtil.doOnBoard(url, param); - } else if(type == "NFAR") { - vm.csarIdSelected = csarId; - vm.showOnboardDialog(csarId); - } else if(type == "GSAR") { - var url = vm.$restUrl.gsarOnboardUrl; - pmUtil.doOnBoard(url, param); - } else if(type == "SSAR") { - var ssarTarOnbardState=""; - var operationalState=""; - if(onBoardState =="onBoarded") { - ssarTarOnbardState = "non-onBoarded"; - operationalState = "Disabled"; - } else { - ssarTarOnbardState = "onBoarded"; - operationalState = "Enabled"; - } - var url = vm.$restUrl.ssarOnboardUrl+"/"+csarId+"?onBoardState="+ssarTarOnbardState+"&operationalState="+operationalState; - pmUtil.doSSAROnboard(url); - } - }, - showOnboardDialog : function(csarId) { - vm.selectVimDialog.$initData(csarId); - $("#selectVimDialog").modal("show"); - }, - $initUpload : function() { - $("#fileupload").fileupload({ - url : vm.$restUrl.uploadPackageUrl, - dropZone: $('#dropzone'), - maxNumberOfFiles : 1, - maxChunkSize : 20000000, //20M - autoUpload : false, - add : function(e, data) { - $("#bar").css('width', '0%'); - $("#persent").text('0%'); - $("#fileName").text(data.files[0].name); - $("#fileremove").attr("disabled", false); - $("#filesubmit").attr("disabled", false); - - $("#filesubmit").remove(); - $(' -
    - -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/openo-portal/portal-catalog/src/main/webapp/catalog/template.html b/openo-portal/portal-catalog/src/main/webapp/catalog/template.html deleted file mode 100644 index 882eb422..00000000 --- a/openo-portal/portal-catalog/src/main/webapp/catalog/template.html +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - - - - - - - - - - - -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/openo-portal/portal-catalog/src/main/webapp/catalog/templateDetail.html b/openo-portal/portal-catalog/src/main/webapp/catalog/templateDetail.html deleted file mode 100644 index 9dbc5d44..00000000 --- a/openo-portal/portal-catalog/src/main/webapp/catalog/templateDetail.html +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - -
    -
    -
    - -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -

    {{nodesDetail.detailTitle}}

    -
    - -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/openo-portal/portal-catalog/src/main/webapp/catalog/topology.html b/openo-portal/portal-catalog/src/main/webapp/catalog/topology.html deleted file mode 100644 index e35ecd86..00000000 --- a/openo-portal/portal-catalog/src/main/webapp/catalog/topology.html +++ /dev/null @@ -1,122 +0,0 @@ - -
    -
    -
    -
    -
    -
    0
    - {{network.name}} -
    -
    -
    -
    -
    0
    -

    {{subnet.name}}

    -

    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    1
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    - -
    1
    -
    -
    - -
    -
    -
    -
    -
    - -
    -
    -
    -
    - -
    1
    -
    -
    -

    -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - - - -
    -
    - - - - - - - - - -
    -
    -
    \ No newline at end of file diff --git a/openo-portal/portal-catalog/src/main/webapp/catalog/topologyDetail.html b/openo-portal/portal-catalog/src/main/webapp/catalog/topologyDetail.html deleted file mode 100644 index 5c2c3c45..00000000 --- a/openo-portal/portal-catalog/src/main/webapp/catalog/topologyDetail.html +++ /dev/null @@ -1,210 +0,0 @@ - - - - - - - - - - - - - - - - - - -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    0
    - {{network.name}} -
    -
    -
    -
    -
    0
    -

    {{subnet.name}}

    -

    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    1
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    - -
    1
    -
    -
    - -
    -
    -
    -
    -
    - -
    -
    -
    -
    - -
    1
    -
    -
    -

    -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - - - -
    -
    - - - - - - - - - -
    -
    -
    - -
    -
    -

    {{nodesDetail.detailTitle}}

    -
    - -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - - - - - - - - - - - - - - - - - - - -
    - - \ No newline at end of file diff --git a/openo-portal/portal-common/pom.xml b/openo-portal/portal-common/pom.xml deleted file mode 100644 index f701c062..00000000 --- a/openo-portal/portal-common/pom.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - org.openo.gso.gui - openo-portal - 1.1.0-SNAPSHOT - - - 4.0.0 - portal-common - 1.1.0-SNAPSHOT - war - - - - - org.apache.maven.plugins - maven-war-plugin - - false - - - - -gso-gui/openo-portal/portal-common diff --git a/openo-portal/portal-common/src/main/webapp/common/css/RMain.css b/openo-portal/portal-common/src/main/webapp/common/css/RMain.css deleted file mode 100644 index cbbb8630..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/css/RMain.css +++ /dev/null @@ -1,239 +0,0 @@ -/* Copyright 2016-2017, Huawei Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#iemp_layout_container { - padding: 0px; - margin: 1px auto; - width: 100%; - height: 100%; -} - -#iemp_layout_container .three-cols-layout { - width: 100%; - height: 100%; - border-collapse: collapse; - margin-left: 0px; - margin-top: 0px; - margin-right: 0px; - margin-bottom: 0px; -} - -#iemp_layout_container .three-cols-layout { - width: 100%; - height: 100%; - border-collapse: collapse; - margin-left: 0px; - margin-top: 0px; - margin-right: 0px; - margin-bottom: 0px; -} - -#iemp_layout_container .three-cols-column.three-cols-left { - width: 215px; - background-color: #f5f5f5; -} - -.accordion_parent { - position: relative; - width: 220px; - background-color: #f5f5f5; -} - -.openo-accordion-resizable-handle { - z-index: 1 !important; - cursor: e-resize; - width: 7px; - right: -5px; - top: 0; - height: 100%; - position: absolute; - font-size: .1px; - display: block; -} - -.openoAccordian_accordionmenu { - width: 100%; - margin: 0; - padding: 0; - list-style-type: none; - line-height: 17px; -} - -.openoAccordian_accordionmenu li { - min-width: 75px; - margin: 0; - padding: 0; - list-style-type: none; - color: #000; - clear: both; -} - -.openo_accordion_ui-icon-collapse, .openo_accordion_ui-icon-expand { - display: block; - float: left; - margin-bottom: -1px; - border-bottom: 1px solid #e5e5e5; - cursor: pointer; - width: 13px; - padding-top: 26px; -} - -.openo_accordion_ui-icon-expand { - background: url(../images/collapse_arrow.png) right 20px no-repeat; - margin-top: 8px; -} - -.openo_accordion_ui-icon-expand.current { - background: url(../images/expand_arrow.png) right 20px no-repeat; -} - -.openoAccordian_showHideArrow_hide, .openoAccordian_showHideArrow_show { - display: block; - position: absolute; - right: 0; - top: 4px; - width: 18px; - height: 41px; - cursor: pointer; - background-color: #f5f5f5; -} - -.openoAccordian_showHideArrow_hide { - background-image: url(../images/openo.png); - background-position: -7px 0 !important; - border-collapse: separate; - /*box-shadow: inset -1px 0 0 #e5e5e5;*/ -} - -a.header.opened, a.header.closed { - font-size: 16px; - padding-top: 24px; - padding-bottom: 25px; - color: #999999; -} - -.openoAccordian_accordionmenu .closed, .openoAccordian_accordionmenu .opened { - padding-right: 10px; - background-position: 98% 50%; - background-repeat: no-repeat; -} - -.openoAccordian_accordionmenu li a { - padding: 11px 10px 12px; - color: #333333; - margin-right: 1px; - margin-top: -1px; - text-align: left !important; - font-family: "Microsoft Yahei", SimSun, Arial, Tahoma; - font-size: 14px; - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; - border-top: 1px solid #e5e5e5; - border-bottom: 1px solid #e5e5e5; - /*height: 19px;*/ -} - -.openoAccordian_accordionmenu ul { - margin: 0; - padding: 0; - overflow: hidden; -} - -.openoAccordian_accordionmenu a { - display: block; - text-decoration: none; -} - -a { - color: #428bca; - text-decoration: none; - background: 0 0; -} - -.bar { - height: 834px; - width: 18px; - background: #f8f8f8; - display: none; -} - -.bar span { - width: 13px; - height: 34px; - background-image: url(../images/openo.png); - background-position: -39px 0 !important; - display: block; - /*margin-top: -430px;*/ -} - -#accordionmenuid_ul_0_0_brAppTopMenuID_UL li { - cursor: pointer; -} - -#puer_base_openo { - border: 1px solid #ddd; -} - -.openo_accordion_selected { - margin-left: 0; - margin-right: 0; - background: #fafafa; - border-left: 3px solid #4ac9ff !important; - box-shadow: none; - position: relative; -} - -a:hover { - color: #4ac9ff !important; -} - -.openoAccordian_accordionmenu li.openo_accordion_selected a { - position: relative; - left: -3px; - color: #009ae7; -} - -.openo-accordion-resizable-handle { - z-index: 1 !important; - cursor: e-resize; - width: 7px; - right: -5px; - top: 0; - height: 100%; - position: absolute; - font-size: .1px; - display: block; -} - -#iframeContainer iframe { - width: 100%; - height: 100%; - border: 0; -} - -#accordionContent, #iframeContainer { - margin: 0; - padding: 0; - border: 0; - width: 100%; - height: 100%; -} - -.openoAccordian_showHideArrow_show { - background-image: url(../images/openo.png); - background-position: -39px 0 !important; - box-shadow: inset 1px 0 0 #e5e5e5, inset -1px 0 0 #e5e5e5; -} \ No newline at end of file diff --git a/openo-portal/portal-common/src/main/webapp/common/css/VMMain.css b/openo-portal/portal-common/src/main/webapp/common/css/VMMain.css deleted file mode 100644 index b779437c..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/css/VMMain.css +++ /dev/null @@ -1,758 +0,0 @@ -/* Copyright 2016-2017, Huawei Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -body { - font-family: '微软雅黑'; - font-size: 12px; - color: #333; - background: #fafafa; -} - -button { - outline: none; -} - -ul, li { - list-style: none; - padding: 0; - margin: 0; -} - -.titleFont { - font-size: 16px; -} - -.separator-line { - height: 1px; - width: 100%; - border: 1px solid #ddd; - margin: 6px 0 15px 0; -} - -.uploadBtn { - overflow: hidden; -} - -.creat-btn { - padding: 0 14px; - height: 24px; - float: left; - cursor: pointer; - text-decoration: none; - outline: 0; - border: 1px solid #d3d3d3; - text-align: center; - box-shadow: 0 1px 1px rgba(0, 0, 0, .05); - background: #fafafa; - background: -moz-linear-gradient(top, #fff, #fafafa); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #fff), color-stop(100%, #fafafa)); - background: -webkit-linear-gradient(top, #fff, #fafafa); - background: linear-gradient(to bottom, #fff, #fafafa); - border-radius: 6px; - background: #fff url(../images/add.png) no-repeat 5px center; - padding-left: 20px; -} - -.creat-btn:hover { - color: #009ae7; - border: 1px solid #4AC9FF -} - -.creat-btn:active { - color: #000; - border: 1px solid #4AC9FF -} - -/*.creat-btn{ - background: #fff url(../image/add.png) no-repeat 5px center; - border: 1px solid #ddd; - float: left; -} -.creat-btn:hover{ - background: #428bca; - color: #fff; - border:1px solid #428bca; -}*/ -.search { - width: 310px; - height: 30px; - float: right; -} - -.search-text { - width: 250px; - float: left; - margin-right: 6px; -} - -.search-btn { - height: 30px; - background: #fff; - border: 1px solid #ddd; - float: left; -} - -#ict_virtualApplication_table_div { - margin-top: 15px; -} - -.table > thead > tr.active > th { - border: 1px solid #ddd !important; - border-bottom: 0; - background: #f0f0f0; -} - -/*.table tbody tr:hover{ - background: #e6fbe0!important; -}*/ -.table tbody tr:last-child { - border-bottom: 1px solid #ddd; -} - -.table-btn { - border: 1px solid #ccc; - border-radius: 3px; -} - -.delete-btn { - background: url(../image/delete.png) no-repeat; - width: 16px; - height: 16px; - border: none; -} - -.detail-btn { - background: url(../image/openo.png) no-repeat -343px -283px; - width: 16px; - height: 16px; - border: none; -} - -.detail-btn.current { - background-position: -7px -314px; -} - -.detail { - height: 200px; - border: 1px solid #ddd; - margin-top: 60px; -} - -.detail-top ul { - height: 50px; - line-height: 50px; - border-bottom: 1px solid #ddd; - padding-left: 0px; - background: #fafafa; -} - -.detail-top ul li { - float: left; - width: 120px; - text-align: center; - border-right: 1px solid #ddd; - cursor: pointer; -} - -.detail-top ul li.current { - background: #fff; -} - -.vmapp-margin { - margin-bottom: 10px; -} - -.control-label .required { - color: #e02222; - font-size: 12px; - padding-left: 2px; -} - -.form-group .control-label { - font-size: 12px; - font-weight: 400; -} - -legend { - font-size: 12px; - font-weight: bold; -} - -.pageGro { - width: 250px; - float: right; -} - -.pageUp, .pageDown, .pageList, .pageList li { - float: left; - cursor: pointer; -} - -.pageUp, .pageDown { - width: 60px; - height: 30px; - border: 1px solid #ddd; - text-align: center; - line-height: 30px; -} - -.pageList li { - width: 30px; - height: 30px; - border: 1px solid #ddd; - text-align: center; - line-height: 30px; - border-left: none; -} - -.pageList li.active { - background: #428bca; - color: #fff; - border-color: #428bca; -} - -.pageDown { - border-left: none; -} - -.headerLinkP { - padding-top: 17px; -} - -.headerLinkP span { - font-size: 12px; - color: #666; - font-weight: normal !important; -} - -label { - font-weight: normal !important; -} - -table.userform tbody tr td { - display: table-cell; - padding-right: 10px; - padding-top: 10px; - font-size: 12px; - color: #333; -} - -.table th, .table td { - padding-top: 3px !important; - padding-bottom: 3px !important; -} - -.openoBrowseButton_element { - display: table; -} - -.openo { - font-family: "Microsoft Yahei", SimSun, Arial, Tahoma; - font-size: 12px; - color: #000; -} - -.openoBrowseButton_input { - width: 198px; - position: relative; - border: 1px solid #c3c3c3 !important; - height: 26px; - background-color: #f3f3f3; - border-radius: 4px 0 0 4px; - border-right: none; - padding: 0; -} - -.buttonClassDefault, .buttonClassDefault:active { - cursor: pointer; - background-image: url(../images/openo.png); - background-position: -154px -7px !important; -} - -.openoBrowseButton_button { - width: 27px; - border: 0; - float: right; - position: relative; - height: 26px; - right: 0; - top: 0; - border-radius: 0 4px 4px 0; - border-right: 1px solid #c3c3c3; - border-left: none; -} - -.openo .openo-input, .openo.openo-input { - outline: 0; - border: 1px solid #c3c3c3; - box-shadow: 1px 1px #f6f6f6 inset; - background-color: #fff; - height: 26px; -} - -.openoInput_openoDefaultText { - padding: 0 0 0 6px; - border-radius: 4px; - color: #000; - display: inline-block; - outline: 0; - box-shadow: 1px 1px #f6f6f6 inset; - font-size: 12px; - background: #fff; -} - -div.openo-select { - border: 1px solid #c3c3c3; - border-radius: 4px; - background: url(../images/arrow-down-enable.png) right no-repeat #fff; - line-height: 24px; - padding-left: 3px; - display: block; -} - -div.openo-select > input.openo-select-input { - border: none; - outline: 0; - line-height: 21px; - height: 21px; - padding-left: 3px; - border-right: solid 1px #c3c3c3; -} - -.openo .openo-ellipsis, .openo.openo-ellipsis { - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; -} - -a.openoButton_buttonClass, a.openoButton_buttonDisableClass, div.openoButton_buttonClass, div.openoButton_buttonDisableClass { - height: 26px; - float: left; - cursor: pointer; - text-decoration: none; - outline: 0; - border: 1px solid #d3d3d3; - text-align: center; - box-shadow: 0 1px 1px rgba(0, 0, 0, .05); - background: #fafafa; - background: -moz-linear-gradient(top, #fff, #fafafa); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #fff), color-stop(100%, #fafafa)); - background: -webkit-linear-gradient(top, #fff, #fafafa); - background: linear-gradient(to bottom, #fff, #fafafa); - border-radius: 6px; -} - -.openoButton_buttonInnerClass { - padding: 0 19px; - border-radius: 6px; -} - -.openoButton_buttonCenterText { - color: #000; - line-height: 24px; - white-space: nowrap; - width: auto !important; -} - -.userHeader { - clear: left; - overflow: hidden; - margin-bottom: 10px; - padding: 10px 10px 0px 0px; -} - -.openoButton_buttonGroupClass { - display: inline; -} - -.openoButton_buttonGroupClass div.openoButton_buttonClass_parent:first-child { - margin-left: 0; -} - -.openoButton_buttonLeftImg { - margin-right: 5px; -} - -.openoButton_buttonLeftImg, .openoButton_buttonRightImg { - display: inline-block; - vertical-align: top; - width: 16px; - height: 16px; - margin-top: 4px; -} - -.openo-table-pagination-wrapper { - height: 37px; -} - -.openo-pagination { - display: block; - float: left; - overflow: hidden; - padding: 5px 0 0; - margin-top: 8px; -} - -.openoPagination_openoPaginationLengthOptions:not(msie8) { - line-height: 24px; -} - -.openoPagination_openoPaginationLengthOptions { - white-space: normal; - height: 24px; - float: left; - outline: 0; - line-height: 20px; - margin: 0 5px; -} - -.openo-pagination-select { - height: 26px; - line-height: 22px; - text-align: center; - margin-right: -2px; - border: 1px solid #e0e0e0; - border-radius: 5px 0 0 5px; - padding: 1px; -} - -.openoPagination_openoPaginationLengthOptions span { - background-color: #fff !important; -} - -.openo-pagination-theme a, .openo-pagination-theme span { - float: left; - color: #666; - font: 12px Lucida Grande, Verdana, Arial, Helvetica, sans-serif; - line-height: 24px; - font-weight: 400; - text-align: center; - border: 1px solid #e0e0e0; - text-decoration: none !important; - padding: 0 7px; - border-radius: 3px; - background: #fff; -} - -.openo-pagination-selectspan { - background: url(../images/ideo_default_select.png) left no-repeat !important; - float: right !important; - width: 26px; - height: 26px; - cursor: pointer; -} - -.openo-pagination-theme label { - padding-top: 6px; - vertical-align: middle; - margin-right: 20px; - margin-top: -1px; - float: left; - display: inline-block; - height: 20px; - font: 12px Lucida Grande, Verdana, Arial, Helvetica, sans-serif; -} - -.openo-pagination li, .openo-pagination ul { - list-style: none; - padding: 0; - margin: 0; - float: left; -} - -dd, dl, dt, li { - color: #000; -} - -.openo-pagination-theme a, .openo-pagination-theme span.current { - margin: 0 5px 0 0; -} - -.openo .openo-disabled, .openo.openo-disabled { - border-color: #c3c3c3 !important; - color: #666 !important; - opacity: .3; - filter: alpha(opacity=30); -} - -.openo-pagination-theme .prev { - background: 0 0; - float: left; -} - -.openo-pagination-theme .current { - text-decoration: none !important; - float: left; - padding-left: 6px; - height: 24px; - color: #fff; - display: inline; - border-color: #00adf5; - background: #4ad2ff; -} - -.openo-pagination-theme a, .openo-pagination-theme span { - float: left; - color: #666; - font: 12px Lucida Grande, Verdana, Arial, Helvetica, sans-serif; - line-height: 24px; - font-weight: 400; - text-align: center; - border: 1px solid #e0e0e0; - text-decoration: none !important; - padding: 0 7px; - border-radius: 3px; - background: #fff; -} - -.openo-pagination-theme .prev.openo-disabled:before { - background: url(../images/page_left_disabled.png) 50% 45% no-repeat; -} - -.openo-pagination-theme .prev.openo-disabled:before { - background: url(../images/page_left_disabled.png) 50% 45% no-repeat; -} - -.openo-pagination-theme .prev:before { - background: url(../images/page_l.png) 50% 45% no-repeat; -} - -.openo-pagination-theme .next:after, .openo-pagination-theme .prev:before { - display: inline-block; - content: ""; - vertical-align: middle; - width: 10px; - height: 24px; -} - -.openo-pagination-theme .prev:before { - background: url(../images/page_l.png) 50% 45% no-repeat; -} - -.openo-pagination-theme .next:after, .openo-pagination-theme .prev:before { - display: inline-block; - content: ""; - vertical-align: middle; - width: 10px; - height: 24px; -} - -pagination ul { - list-style: none; - padding: 0; - margin: 0; - float: left; -} - -.openo-pagination li, .openo-pagination ul { - list-style: none; - padding: 0; - margin: 0; - float: left; -} - -.openoPagination_gototext { - background: #FFF; - outline: 0; - width: 29px; - float: left; - height: 26px; - line-height: 24px; - border-radius: 4px; - border: 1px solid #c3c3c3; - padding: 0 0 0 5px; - margin: 0; - color: #666; - min-width: 50px; -} - -.openoPagination_gotoimage { - width: 29px; - height: 26px; - line-height: 26px; - background-color: #FFF; - background-image: url(/portal/themes/default/components/openo/images/openo.png); - padding-left: 21px; - float: left; - margin-left: 5px; - border: 1px solid #e0e0e0; - border-radius: 4px; - box-sizing: border-box; - -moz-box-sizing: border-box; - background-position: -184px -181px !important; -} - -.openo-pagination-theme .ellipse { - float: left; - margin-left: -8px; - margin-right: -4px; - background: 0 0; - border: none; - border-radius: 0; - box-shadow: none; - font-weight: 700; - cursor: default; -} - -.openo.openo-disabled { - border-color: #c3c3c3 !important; - color: #666 !important; - opacity: .3; - filter: alpha(opacity=30); -} - -.openo-pagination-theme .prev { - background: 0 0; - float: left; -} - -.openo-pagination-theme .current { - text-decoration: none !important; - float: left; - padding-left: 6px; - height: 26px; - color: #fff; - display: inline; - /*border-color: #00adf5; - background: #4ad2ff;*/ - border: 1px solid #e0e0e0; -} - -.openo-pagination-theme .next:after { - background: url(../images/page_r.png) 50% 45% no-repeat; -} - -.openoButton_buttonGroupClass div.openoButton_buttonClass_parent, .openoButton_buttonRightImg { - margin-left: 5px; -} - -html, body { - height: 99%; - width: 98%; -} - -.cotentBody { - padding: 0px 20px 0px 20px; -} - -div.openoButton_buttonClass:hover { - border: 1px solid #4ac9ff; -} - -div.openoButton_button_default:hover .openoButton_buttonCenterText { - color: #009ae7; -} - -.header_lineimg { - height: 1px; - width: 100%; - margin-top: 17px; -} - -.openo.openo-hide { - display: none; -} - -div.openo-select-popup-container { - position: absolute; - border: 1px solid #4ac9ff; - border-top: none; - border-radius: 0 0 4px 4px; - max-height: 202px; - overflow-y: auto; - background-color: #fff; - z-index: 880; -} - -div.openo-select-popup-container > div.openo-select-item { - display: block; -} - -.openo .openo-ellipsis, .openo.openo-ellipsis { - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; -} - -div.openo-select-popup-container > div.openo-select-item > label { - padding-top: 3px; - padding-bottom: 3px; - line-height: 20px; -} - -.openo .openo-ellipsis, .openo.openo-ellipsis { - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; -} - -.openo-select-item label { - margin-left: 4px; - margin-right: 4px; - white-space: nowrap; -} - -div.openo-select-popup-container > div.openo-select-item.openo-item-selected, div.openo-select-popup-container > div.openo-select-item:hover { - background-color: #f1f1f1; - color: #008fd6; -} - -div.openo-select.openo-focus { - border: 1px solid #4ac9ff; - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; - border-bottom-color: #ddd; -} - -.openo-pagination-theme a:hover { - border-color: #4ac9ff; - cursor: pointer; -} - -.SDBtn { - background: #fff; - color: #333; - border: 1px solid #ddd; -} - -.SDBtn:hover { - color: #009ae7; - border: 1px solid #4AC9FF -} - -table tbody tr.even:hover td, table tbody tr.odd:hover td { - background-color: #e6fbe0; -} - -table tr.openoTable_row_selected td { - background: #e8f8fe !important; - border-bottom: 1px solid #e8e8e8 !important; -} - -.modal-body { - padding: 0 !important; -} - -.form-control { - height: 26px !important; -} - -.form-group .control-label { - margin-left: 20px; -} - -.form-horizontal .control-label { - text-align: left; -} \ No newline at end of file diff --git a/openo-portal/portal-common/src/main/webapp/common/css/ZteIctIcons/Read Me.txt b/openo-portal/portal-common/src/main/webapp/common/css/ZteIctIcons/Read Me.txt deleted file mode 100644 index e39b5440..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/css/ZteIctIcons/Read Me.txt +++ /dev/null @@ -1,7 +0,0 @@ -Open *demo.html* to see a list of all the glyphs in your font along with their codes/ligatures. - -To use the generated font in desktop programs, you can install the TTF font. In order to copy the character associated with each icon, refer to the text box at the bottom right corner of each glyph in demo.html. The character inside this text box may be invisible; but it can still be copied. See this guide for more info: https://icomoon.io/#docs/local-fonts - -You won't need any of the files located under the *demo-files* directory when including the generated font in your own projects. - -You can import *selection.json* back to the IcoMoon app using the *Import Icons* button (or via Main Menu → Manage Projects) to retrieve your icon selection. diff --git a/openo-portal/portal-common/src/main/webapp/common/css/ZteIctIcons/demo-files/demo.css b/openo-portal/portal-common/src/main/webapp/common/css/ZteIctIcons/demo-files/demo.css deleted file mode 100644 index 44211330..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/css/ZteIctIcons/demo-files/demo.css +++ /dev/null @@ -1,151 +0,0 @@ -body { - padding: 0; - margin: 0; - font-family: sans-serif; - font-size: 1em; - line-height: 1.5; - color: #555; - background: #fff; -} -h1 { - font-size: 1.5em; - font-weight: normal; -} -small { - font-size: .66666667em; -} -a { - color: #e74c3c; - text-decoration: none; -} -a:hover, a:focus { - box-shadow: 0 1px #e74c3c; -} -.bshadow0, input { - box-shadow: inset 0 -2px #e7e7e7; -} -input:hover { - box-shadow: inset 0 -2px #ccc; -} -input, fieldset { - font-size: 1em; - margin: 0; - padding: 0; - border: 0; -} -input { - color: inherit; - line-height: 1.5; - height: 1.5em; - padding: .25em 0; -} -input:focus { - outline: none; - box-shadow: inset 0 -2px #449fdb; -} -.glyph { - font-size: 16px; - width: 15em; - padding-bottom: 1em; - margin-right: 4em; - margin-bottom: 1em; - float: left; - overflow: hidden; -} -.liga { - width: 80%; - width: calc(100% - 2.5em); -} -.talign-right { - text-align: right; -} -.talign-center { - text-align: center; -} -.bgc1 { - background: #f1f1f1; -} -.fgc1 { - color: #999; -} -.fgc0 { - color: #000; -} -p { - margin-top: 1em; - margin-bottom: 1em; -} -.mvm { - margin-top: .75em; - margin-bottom: .75em; -} -.mtn { - margin-top: 0; -} -.mtl, .mal { - margin-top: 1.5em; -} -.mbl, .mal { - margin-bottom: 1.5em; -} -.mal, .mhl { - margin-left: 1.5em; - margin-right: 1.5em; -} -.mhmm { - margin-left: 1em; - margin-right: 1em; -} -.mls { - margin-left: .25em; -} -.ptl { - padding-top: 1.5em; -} -.pbs, .pvs { - padding-bottom: .25em; -} -.pvs, .pts { - padding-top: .25em; -} -.unit { - float: left; -} -.unitRight { - float: right; -} -.size1of2 { - width: 50%; -} -.size1of1 { - width: 100%; -} -.clearfix:before, .clearfix:after { - content: " "; - display: table; -} -.clearfix:after { - clear: both; -} -.hidden-true { - display: none; -} -.textbox0 { - width: 3em; - background: #f1f1f1; - padding: .25em .5em; - line-height: 1.5; - height: 1.5em; -} -#testDrive { - display: block; - padding-top: 24px; - line-height: 1.5; -} -.fs0 { - font-size: 16px; -} -.fs1 { - font-size: 16px; -} - diff --git a/openo-portal/portal-common/src/main/webapp/common/css/ZteIctIcons/demo-files/demo.js b/openo-portal/portal-common/src/main/webapp/common/css/ZteIctIcons/demo-files/demo.js deleted file mode 100644 index 52f25145..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/css/ZteIctIcons/demo-files/demo.js +++ /dev/null @@ -1,30 +0,0 @@ -if (!('boxShadow' in document.body.style)) { - document.body.setAttribute('class', 'noBoxShadow'); -} - -document.body.addEventListener("click", function(e) { - var target = e.target; - if (target.tagName === "INPUT" && - target.getAttribute('class').indexOf('liga') === -1) { - target.select(); - } -}); - -(function() { - var fontSize = document.getElementById('fontSize'), - testDrive = document.getElementById('testDrive'), - testText = document.getElementById('testText'); - function updateTest() { - testDrive.innerHTML = testText.value || String.fromCharCode(160); - if (window.icomoonLiga) { - window.icomoonLiga(testDrive); - } - } - function updateSize() { - testDrive.style.fontSize = fontSize.value + 'px'; - } - fontSize.addEventListener('change', updateSize, false); - testText.addEventListener('input', updateTest, false); - testText.addEventListener('change', updateTest, false); - updateSize(); -}()); diff --git a/openo-portal/portal-common/src/main/webapp/common/css/ZteIctIcons/demo.html b/openo-portal/portal-common/src/main/webapp/common/css/ZteIctIcons/demo.html deleted file mode 100644 index fddfeac4..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/css/ZteIctIcons/demo.html +++ /dev/null @@ -1,4807 +0,0 @@ - - - - - IcoMoon Demo - - - - - -
    -

    Font Name: ZteIctIcons (Glyphs: 298)

    -
    -
    -

    Grid Size: Unknown

    -
    -
    - - - - ict-it-other-lenovo -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-router-alu7750 -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-nds -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-php -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-app-glassfish -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-telnet -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-dns -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-url -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-database-mysql -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-ping -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-ftp -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-rest -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-soap -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-server-macos -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-server-openbsd -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-server-debian -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-app-iis -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-app-mailserver -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-app-websphere -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-app-apache -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-app-jboss -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-a10bala -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-NFV -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-VNFM -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-VNF -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-VNFC -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-VIM -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-VDU -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-host -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-NS -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-cluster-vcs -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-diskraid-hpeva -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-diskraid-zte -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-firewall-h3c -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-ibm-blade -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-secfox -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-segw -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-zteatca -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-zteips -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-sdn-controller -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-server-hpux -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-storage-ops -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-storage-sanswitch-brocade -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-uep-moc-uca-public -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-uep-topo-commongroup20x20 -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-vapel_chgpile -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-car -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-chgpile -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-chgposition -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-chgstation -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-common_dc -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-common_ncd -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-common_ncd_break -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-common_sc -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-app -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-app-bind -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-app-dns -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-app-ems -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-app-mediator -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-app-ntp -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-app-ota -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-app-tomcat -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-app-trend -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-app-tsm -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-app-weblogic -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-cluster -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-cluster-hacmp -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-cluster-nec -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-cluster-ns -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-cluster-sg -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-database -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-database-mssql -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-database-oracle -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-database-sybase -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-database-sybaseiq -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-diskraid-dellmd -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-diskraid-emc -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-diskraid-eternus -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-diskraid-fujitsu -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-diskraid-hds -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-diskraid-hpaio -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-diskraid-hpmsa -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-diskraid-ibm -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-diskraid-ibmsm -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-diskraid-macrosan -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-diskraid-netapp -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-diskraid-sun -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-firewall -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-firewall-checkpoint -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-firewall-cisco -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-firewall-cisco2 -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-firewall-juniper -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-firewall-neteye -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-firewall-zte -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-firewall-ztemf -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-firewall-zteutm -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-gather -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-ibp -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-ibp-ibp2000 -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-net -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-alteon -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-appdirector -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-atca-lb10 -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-cisco-ucs -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-dcs -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-delta -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-dp -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-e9000 -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-f5bigip -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-f5bigip2 -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-gbe2c -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-h3c -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-hpblc -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-imm -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-secsis -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-vc -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-ztepower -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-ztesgs -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-zxsdr-nt -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-router -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-router-cisco -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-router-juniper -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-router-zte -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-sdn-host -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-sdn-switch -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-server -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-server-aix -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-server-klinux -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-server-redhat -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-server-solaris -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-server-suse -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-server-windows -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-server-zxve -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-storage -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-storage-cisco-mds -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-storage-md3000 -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-storage-netvault -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-storage-sanswitch-zte -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-switch-at -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-switch-cisco -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-switch-h3c -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-switch-juniper -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-switch-zte -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-tapelib-hpmsl -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-tapelib-ibmts -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-tapelib-sunts -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-Virtualnetwork -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-networkTree -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-resourceType -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-tree-icon -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-uep-topo-group20x20 -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-uep-topo-root -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-uep-topo-virtual20x20 -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-common_ncd_stop -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-app-netnumen -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-sdn-vnet -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-storage-sanswitch-hp -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-switch -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-uep-moc-root -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-uep-topo-undefinedgroup20x20 -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-analysis -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-bindingRelationship -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-browsePolicy -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-businessManagment -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-cardData -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-dailyManagment -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-enterpriseCustomer -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-equipmentBlacklist -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-equipmentModel -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-examine -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-failureList -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-familyCustomer -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-fileTool -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-groupManagment -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-notice -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-policy -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-portal -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-recordQuery -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-resourceManagment -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-ruleManagment -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-sucessRate -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-terminalManagment -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-tools -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-track -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-userManagment -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-versionManagment -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-workOrder -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-cpu -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-memory -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-currentAlarm -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-noticeAlarm -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-historyAlarm -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-close -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-table -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-next -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-pre -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-roleset -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-role -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-user -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-empty -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-noticeFilter -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-alarmTurn -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-advice -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-clearAlarm -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-alarmBox -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-afreshDef -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-alarmFilter -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-manAnalysis -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-drill -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-gear -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-process -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-unacknownledge -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-acknownledge -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-Operation -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-cloud -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-computer -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-alarm -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-import -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-export -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-Admin -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-allSelected -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-angleRight -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-arrowLeft -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-arrowLeftAll -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-arrowRight -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-arrowRightAll -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-autoFind -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-back -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-ball -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-bell -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-blackList -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-breakLink -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-cancle -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-circle -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-closeTree -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-configmap -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-delete -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-department -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-detail -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-displaySwitch -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-file -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-filter -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-find -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-folder -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-forceOut -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-fullScreen -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-Graphical -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-helpTip -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-hide -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-history -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-launchingTower -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-layout -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-legendhide -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-legendshow -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-link -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-lock -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-ltArrow -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-Magnifier -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-Maintain -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-maximize -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-modify -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-Monitor -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-move -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-new -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-newShortcut -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-openTree -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-poNode -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-print -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-product -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-rbArrow -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-reduction -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-refresh -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-rename -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-save -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-select -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-selectAll -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-selectLeft -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-selectRight -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-show -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-shrink -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-start -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-stop -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-stretch -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-strikeOut -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-Synchronous -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-toRight -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-treefile -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-treeFolder -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-unlock -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-userCompare -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-userDispatch -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-xml -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-zoomIn -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-zoomOut -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-zoomOverView -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-zoomReset -
    -
    - - -
    -
    - liga: - -
    -
    -
    - - -
    -

    Font Test Drive

    - - - -
      -
    -
    - -
    -

    Generated by IcoMoon

    -
    - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/css/ZteIctIcons/fonts/ZteIctIcons.eot b/openo-portal/portal-common/src/main/webapp/common/css/ZteIctIcons/fonts/ZteIctIcons.eot deleted file mode 100644 index 49ae78c1c5834430c1dd95906e767feb28e0de25..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 92372 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

    8Go&4AE3{?SJldR-5spA61B;Dk0$a6QrOpV%d} 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 diff --git a/openo-portal/portal-common/src/main/webapp/common/css/ZteIctIcons/fonts/ZteIctIcons.svg b/openo-portal/portal-common/src/main/webapp/common/css/ZteIctIcons/fonts/ZteIctIcons.svg deleted file mode 100644 index 8a4eb0e0..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/css/ZteIctIcons/fonts/ZteIctIcons.svg +++ /dev/null @@ -1,308 +0,0 @@ - - - -Generated by IcoMoon - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/openo-portal/portal-common/src/main/webapp/common/css/ZteIctIcons/fonts/ZteIctIcons.ttf b/openo-portal/portal-common/src/main/webapp/common/css/ZteIctIcons/fonts/ZteIctIcons.ttf deleted file mode 100644 index e610cb1fcb6ece272b088542abacea538856087d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 92192 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 E3&4eHS^xk5 diff --git a/openo-portal/portal-common/src/main/webapp/common/css/ZteIctIcons/fonts/ZteIctIcons.woff b/openo-portal/portal-common/src/main/webapp/common/css/ZteIctIcons/fonts/ZteIctIcons.woff deleted file mode 100644 index 2e193ba1cef761df276a891ae19f4ada0fb68fe8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 92268 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 diff --git a/openo-portal/portal-common/src/main/webapp/common/css/ZteIctIcons/selection.json b/openo-portal/portal-common/src/main/webapp/common/css/ZteIctIcons/selection.json deleted file mode 100644 index b2ed9364..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/css/ZteIctIcons/selection.json +++ /dev/null @@ -1,8408 +0,0 @@ -{ - "IcoMoonType": "selection", - "icons": [ - { - "icon": { - "paths": [ - "M820.37 677.303c-13.605 0-24.795 5.193-33.646 15.726-8.85 10.459-13.312 26.331-13.312 47.762 0 21.65 4.389 37.742 13.166 48.128s19.822 15.579 33.134 15.579c13.458 0 24.503-5.12 33.061-15.36 8.631-10.313 13.019-26.697 13.019-49.298 0-21.065-4.389-36.791-13.093-47.177-8.704-10.24-19.456-15.36-32.329-15.36z", - "M888.027 0h-752.055c-75.557 0-135.973 60.416-135.973 135.973v751.982c0 75.703 60.416 136.046 135.973 136.046h751.982c75.703 0 136.046-60.343 136.046-135.973v-752.055c0-75.557-60.343-135.973-135.973-135.973zM107.52 141.385h103.863v253.294h162.085v82.725h-265.947v-336.018zM350.574 831.634c-24.869 23.918-59.173 35.84-103.058 35.84-39.131 0-70.729-9.947-94.866-29.769-29.696-24.576-44.471-56.832-44.471-96.695 0-37.157 12.507-67.73 37.595-91.794s58.953-36.133 101.522-36.133c48.786 0 85.577 14.117 110.519 42.423 19.968 22.821 30.062 50.761 30.062 84.114 0 37.449-12.434 68.096-37.303 92.014zM573.221 861.989h-82.798l-101.23-243.419h97.061l47.25 154.258 49.006-154.258h94.135l-103.424 243.419zM628.517 466.944c-19.895 10.606-48.347 15.945-85.504 15.945-32.183 0-57.563-4.535-76.069-13.678-18.505-8.997-33.792-23.479-46.007-43.301-12.142-19.749-18.213-43.008-18.213-69.778 0-38.107 12.215-68.827 36.571-92.379 24.43-23.552 58.075-35.255 101.010-35.255 34.889 0 62.391 5.266 82.505 15.799 20.187 10.533 35.547 25.819 46.080 45.787 10.606 20.041 15.872 46.080 15.872 78.19v10.533h-187.099c1.682 14.994 5.705 26.185 12.142 33.499 8.997 10.533 20.773 15.799 35.255 15.799 9.216 0 17.92-2.267 26.112-6.875 5.047-2.926 10.533-8.046 16.311-15.36l91.941 8.485c-14.043 24.503-31.013 41.984-50.907 52.59zM922.258 831.634c-24.869 23.918-59.246 35.84-103.058 35.84-39.058 0-70.729-9.947-94.866-29.769-29.623-24.576-44.471-56.832-44.471-96.695 0-37.157 12.581-67.73 37.669-91.794 25.015-24.064 58.88-36.133 101.522-36.133 48.786 0 85.577 14.117 110.519 42.423 19.968 22.821 29.989 50.761 29.989 84.114-0.073 37.449-12.507 68.096-37.303 92.014zM984.942 477.403h-93.696v-133.851c0-15.287-2.853-26.112-8.485-32.402-5.632-6.363-13.605-9.509-23.845-9.509-11.264 0-20.407 4.315-27.502 12.873-7.022 8.558-10.533 23.918-10.533 46.080v116.882h-93.33v-243.493h86.894v39.643c13.019-16.165 26.112-27.721 39.424-34.743s29.477-10.459 48.567-10.459c25.893 0 46.080 7.68 60.635 23.040s21.87 39.058 21.87 71.168v154.77z", - "M575.195 295.424c-7.826-7.753-18.213-11.703-31.013-11.703-14.848 0-26.697 5.851-35.547 17.627-5.632 7.314-9.216 18.286-10.752 32.768h91.941c-1.902-17.993-6.656-30.939-14.629-38.693z", - "M248.686 677.303c-13.605 0-24.869 5.193-33.719 15.726-8.85 10.459-13.312 26.331-13.312 47.762 0 21.65 4.389 37.742 13.166 48.128s19.822 15.579 33.134 15.579c13.458 0 24.43-5.12 33.134-15.36 8.631-10.313 12.946-26.697 12.946-49.298 0-21.065-4.389-36.791-13.093-47.177-8.631-10.24-19.383-15.36-32.256-15.36z" - ], - "attrs": [ - { - "fill": "rgb(100, 148, 206)" - }, - { - "fill": "rgb(100, 148, 206)" - }, - { - "fill": "rgb(100, 148, 206)" - }, - { - "fill": "rgb(100, 148, 206)" - } - ], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-lenovo" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [ - 4, - 4, - 4, - 4 - ] - } - }, - "attrs": [ - { - "fill": "rgb(100, 148, 206)" - }, - { - "fill": "rgb(100, 148, 206)" - }, - { - "fill": "rgb(100, 148, 206)" - }, - { - "fill": "rgb(100, 148, 206)" - } - ], - "properties": { - "order": 298, - "id": 297, - "prevSize": 16, - "code": 59648, - "name": "it-other-lenovo" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 0 - }, - { - "icon": { - "paths": [ - "M361.536 749.12l-107.008 274.88h58.88l22.656-62.464h109.888l24 62.464h60.352l-110.080-274.88h-58.688zM353.152 915.264l37.12-102.016 37.888 102.016h-75.008z", - "M616.768 751.36h-55.488v272.64h193.472v-46.336h-137.984z", - "M957.632 901.184c0 21.76-0.832 37.312-2.432 46.656s-6.464 17.344-14.464 23.68c-8 6.528-19.904 9.664-35.648 9.664-15.488 0-27.776-3.392-36.608-10.176-9.024-6.784-14.656-15.872-17.024-27.136-1.344-6.976-2.048-22.336-2.048-45.952v-148.864h-55.488v146.624c0 30.72 1.792 54.016 5.44 69.76 2.496 10.624 7.68 20.8 15.552 30.464 7.872 9.728 18.56 17.6 32.192 23.616 13.504 6.080 33.408 9.152 59.712 9.152 21.76 0 39.36-2.816 52.864-8.384 13.504-5.504 24.32-12.992 32.32-22.4 8.128-9.344 13.632-20.864 16.64-34.496s4.48-36.928 4.48-69.952v-144.384h-55.488v152.128z", - "M1006.016 643.392c11.328-42.304 17.984-86.592 17.984-132.416 0-282.688-230.336-510.976-513.024-510.976s-510.976 228.288-510.976 510.976c0 181.504 94.4 340.992 236.544 432.256v-171.904c0-70.656 57.344-128 128-128h108.224v-19.712c0-19.968-8.384-70.848-42.24-80.448h66.368c36.416 0 44.224 63.68 44.224 84.48v15.68h464.896zM859.008 444.608v-88.512l122.752 122.688-122.752 122.688v-88.448h-164.928c-19.968 0-70.912 10.432-80.448 44.224v-66.368c0-36.416 61.632-46.272 82.496-46.272h162.88zM408.384 468.736c0 36.416-61.632 44.224-82.496 44.224h-162.944v88.512l-122.688-122.688 122.688-122.688v88.512h166.976c19.968 0 68.928-8.384 78.464-42.24v66.368zM496.896 478.784h-66.368c33.856-9.536 42.24-60.544 42.24-80.448v-164.992h-88.512l122.688-122.688 122.688 122.688h-88.448v162.944c0 20.864-7.872 82.496-44.288 82.496z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-router-alu7750" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 299, - "id": 296, - "prevSize": 16, - "code": 59649, - "name": "it-router-alu7750" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 1 - }, - { - "icon": { - "paths": [ - "M558.656 403.584c-10.624-4.096-27.776-6.144-51.328-6.144h-63.040v229.12h64c19.776 0 35.264-1.792 46.592-5.504 11.264-3.712 20.16-8.896 26.88-15.552 9.344-9.408 16.768-22.080 22.016-37.952 5.184-15.872 7.808-35.136 7.808-57.856 0-31.36-5.056-55.424-15.424-72.32-10.304-16.768-22.784-28.032-37.504-33.792z", - "M888 0h-752c-75.648 0-136 60.352-136 136v752c0 75.648 60.352 136 136 136h752c75.648 0 136-60.352 136-136v-752c0-75.648-60.352-136-136-136zM337.984 661.952h-40.768l-157.504-235.648v235.648h-38.016v-299.904h40.704l157.504 235.52v-235.52h38.080v299.904zM644.544 570.88c-5.312 17.664-12.096 32.192-20.416 43.712-8.384 11.584-17.408 20.608-27.392 27.264-9.856 6.656-21.76 11.648-35.776 14.976-13.952 3.456-30.016 5.12-48.064 5.12h-108.288v-299.904h103.36c23.232 0 41.088 1.472 53.312 4.352 17.216 3.904 31.872 11.072 44.032 21.44 15.744 13.376 27.648 30.464 35.456 51.2 7.808 20.864 11.776 44.608 11.776 71.36-0.064 22.784-2.688 42.944-8 60.48zM918.656 622.4c-9.216 14.144-22.272 25.088-39.36 32.96-17.216 7.808-36.416 11.776-57.792 11.776-27.2 0-49.92-4.032-68.16-11.904-18.368-7.936-32.768-19.776-43.2-35.712-10.432-15.872-15.872-33.856-16.448-53.888l37.44-3.264c1.728 14.976 5.824 27.264 12.352 36.864 6.464 9.6 16.448 17.344 30.208 23.296 13.568 5.952 28.864 8.896 46.016 8.896 15.040 0 28.416-2.176 40.064-6.656 11.584-4.48 20.16-10.688 25.792-18.496 5.76-7.872 8.576-16.448 8.576-25.664 0-9.408-2.688-17.664-8.192-24.64-5.44-6.976-14.464-12.928-27.008-17.728-8.064-3.072-25.856-8.064-53.376-14.656-27.648-6.592-46.848-12.864-57.856-18.688-14.4-7.488-25.024-16.768-32-27.904-7.104-11.072-10.56-23.552-10.56-37.312 0-15.104 4.288-29.312 12.928-42.496 8.512-13.184 21.056-23.168 37.632-30.016 16.448-6.784 34.816-10.24 54.976-10.24 22.208 0 41.792 3.52 58.816 10.688 16.96 7.104 30.016 17.664 39.168 31.616 9.088 13.888 14.016 29.696 14.72 47.232l-38.144 2.88c-1.984-18.944-9.024-33.28-20.736-42.944-11.84-9.664-29.248-14.592-52.224-14.592-24 0-41.536 4.416-52.416 13.184-11.008 8.832-16.448 19.392-16.448 31.808 0 10.752 3.84 19.648 11.648 26.624 7.616 6.976 27.52 14.080 59.84 21.376 32.256 7.296 54.4 13.632 66.368 19.136 17.408 8.064 30.272 18.368 38.592 30.72 8.384 12.352 12.544 26.56 12.544 42.624 0 16-4.672 30.976-13.76 45.12z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-nds" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 300, - "id": 295, - "prevSize": 16, - "code": 59650, - "name": "it-other-nds" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 2 - }, - { - "icon": { - "paths": [ - "M766.4 419.136c-9.728 48.512-19.52 97.088-29.248 145.664h80.256c23.488-12.48 30.656-14.336 43.904-38.4 7.232-20.416 14.528-40.832 21.76-61.248-23.552-43.456-48.128-49.856-116.672-46.016z", - "M211.968 419.136c-9.728 48.576-19.52 97.088-29.248 145.664 31.616-2.624 63.232-5.184 94.848-7.744 24.96-12.288 24.448-12.416 36.544-38.336 14.144-27.328 13.376-51.52 7.296-84.288-36.48-5.056-72.96-10.176-109.44-15.296z", - "M888 0h-752c-75.584 0-136 60.416-136 136v752c0 75.648 60.416 136 136 136h752c75.648 0 136-60.352 136-136v-752c0-75.584-60.352-136-136-136zM175.488 618.432c-50.24 33.088 24.192 82.88-80.256 84.16v-22.848c19.456-102.144 38.912-204.416 58.368-306.56 113.472-4.544 188.288-3.136 240.704 53.696 7.232 255.232-114.304 122.816-218.816 191.552zM562.048 618.368v-22.976c9.792-51.072 19.52-102.144 29.184-153.28-7.296-7.68-14.592-15.296-21.888-22.976h-80.256c-12.16 66.432-24.32 132.864-36.48 199.232h-65.6c21.888-112.384 43.776-224.768 65.664-337.088h58.368c-2.432 30.592-4.8 61.248-7.296 91.904 71.68-3.072 114.624 4.224 153.28 30.656h-0.128v7.68c-9.6 68.928-19.456 137.92-29.12 206.848h-65.728zM722.56 626.176c-2.368 25.408-4.8 51.072-7.168 76.416h-65.6c19.456-109.76 38.784-219.584 58.24-329.408 89.792-3.072 174.016-1.6 226.24 30.656 53.632 184.896-72.448 186.56-211.712 222.336z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-php" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 301, - "id": 294, - "prevSize": 16, - "code": 59651, - "name": "it-other-php" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 3 - }, - { - "icon": { - "paths": [ - "M896 1024c70.848 0 128-57.152 128-128v-252.032l-379.968 380.032h251.968z", - "M896 0h-768c-70.912 0-128 57.088-128 128v768c0 70.848 57.088 128 128 128h417.984l478.016-480v-416c0-70.912-57.152-128-128-128zM831.936 262.336c-0.832 0.832-1.792 1.344-2.624 2.176h-10.944c4.48-0.768 9.152-1.472 13.568-2.176zM53.824 351.936c120.96-213.76 428.352-120.384 546.112-256.704h10.88c14.528 20.032 29.184 40 43.712 60.032-21.888-10.56-24.128-21.184-38.208-38.208-23.68 18.24-47.296 36.416-70.976 54.592 1.856 3.648 3.648 7.296 5.376 10.944 18.304 5.44 36.48 10.944 54.72 16.384-182.208-17.024-337.216 0.768-447.872 81.92-38.272 28.032-56.64 72.704-98.304 98.304h-5.44v-27.264zM239.488 362.88c-5.44 1.792-10.944 3.648-16.384 5.44-25.088-8.064-19.264-10.24-32.768-27.328 7.296-12.8 14.592-25.472 21.888-38.272h32.704v11.008c8.512 20.352 2.56 33.408-5.44 49.152zM288.704 510.272h-10.944c-75.712 40.832-229.056-50.432-245.76-109.184 110.528 9.92 119.68 119.36 256.704 103.68v5.504zM294.144 466.56c-31.232 16.768-61.056 29.312-92.8 5.44 54.144 0.96 67.968-11.968 92.8-38.208-1.856-10.944-3.648-21.824-5.44-32.704l16.384 16.32c-3.648 16.384-7.296 32.768-10.944 49.152zM310.528 242.688h-10.944c4.16-0.32 8.32-0.576 12.416-0.832-0.448 0.32-1.024 0.512-1.472 0.832zM414.272 204.416c120.256-2.176 196.544 24.064 283.968 43.712v5.44c-51.008-9.088-102.016-18.176-152.896-27.264-77.76 5.184-155.584 10.368-233.344 15.488 28.48-20.416 66.368-21.12 102.272-37.376zM610.88 379.2v-81.92c19.264 31.68 20.544 47.168 0 81.92zM556.224 390.144v-98.304c23.168 37.76 25.92 55.936 0 98.304zM397.888 433.792h-5.44c-1.856-56.448-3.648-112.832-5.504-169.28 36.8 61.056 18.24 90.24 10.944 169.28zM447.040 401.088c-1.792-43.712-3.648-87.424-5.44-131.072 20.672 36.672 25.216 89.28 5.44 131.072zM501.632 401.024v-114.688c22.208 41.92 14.4 60.928 5.376 114.688h-5.376zM627.392 559.424c-31.872-11.456-82.816-20.224-120.32-32.768 3.648-5.44 7.36-10.88 10.944-16.448h5.504c53.12 1.024 70.72 19.2 109.248 32.832 3.648-16.384 7.296-32.832 10.88-49.152 5.504 21.248 0.128 50.24-16.256 65.536zM665.472 368.256h-5.504v-70.976c13.504 19.968 10.176 43.52 5.504 70.976zM720.128 340.992c-12.736-3.648-25.472-7.296-38.272-10.944l38.272 5.44v5.504zM818.368 395.584c14.4-31.552 10.112-60.224-5.44-87.424 14.592 10.944 29.12 21.888 43.84 32.768-9.92 27.328-12.864 42.112-38.4 54.656zM944 537.536c-7.232-5.44-14.656-10.944-21.824-16.384-10.944-21.824-21.952-43.712-32.832-65.536 14.592 16.384 29.12 32.768 43.712 49.152-1.088-95.232-28.736-165.44-5.44-251.2-1.792-1.792-3.648-3.584-5.44-5.44-30.208 4.736-60.16 9.536-90.24 14.272 26.624-25.984 60.16-33.408 95.68-52.48h16.384v327.616z", - "M212.224 313.664c-3.648 7.232-7.232 14.528-10.88 21.824 10.88 5.504 21.76 10.944 32.704 16.448-4.544-26.688-6.016-25.152-21.824-38.272z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-app-glassfish" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 302, - "id": 293, - "prevSize": 16, - "code": 59652, - "name": "it-app-glassfish" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 4 - }, - { - "icon": { - "paths": [ - "M708.544 476.096h62.592v64.064h-62.592v-64.064z", - "M888 0h-752c-75.648 0-136 60.352-136 135.936v752.064c0 75.648 60.352 136 136 136h752c75.648 0 136-60.352 136-136v-752.064c0-75.584-60.352-135.936-136-135.936zM231.936 349.248h-52.992v315.456h-30.4v-315.456h-53.376v-26.944h136.704v26.944zM383.040 553.152l-9.792 10.304h-80.96v76.992h62.592v-39.040h28.224v38.528c0 16.512-8.128 24.768-24.512 24.768h-70.016c-16.32 0-24.512-8.256-24.512-24.768v-163.392c0-16.512 8.128-24.768 24.512-24.768h70.016c16.32 0 24.512 8.256 24.512 24.768v76.608zM461.568 664.704h-28.608v-342.4h28.672v342.4zM633.344 664.704h-29.12v-186.816l-64.128 1.728v185.088h-29.056v-212.864h29.12v5.952c11.328-1.472 22.784-3.072 34.368-4.608 13.952-1.728 25.472-2.624 34.496-2.624 16.256 0 24.384 7.936 24.384 23.808v190.336zM799.36 553.152l-9.856 10.304h-80.96v76.992h62.592v-39.040h28.224v38.528c0 16.512-8.192 24.768-24.512 24.768h-70.016c-16.384 0-24.512-8.256-24.512-24.768v-163.392c0-16.512 8.128-24.768 24.512-24.768h70.016c16.32 0 24.512 8.256 24.512 24.768v76.608zM924.032 477.44h-37.12v161.6h37.12v25.6h-41.344c-16.32 0-24.512-8.256-24.512-24.768v-162.432h-25.536v-25.6h25.536v-66.304h28.672v66.304h37.12v25.6z", - "M292.288 476.096h62.592v64.064h-62.592v-64.064z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-telnet" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 303, - "id": 292, - "prevSize": 16, - "code": 59653, - "name": "it-other-telnet" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 5 - }, - { - "icon": { - "paths": [ - "M264.576 342.848h-55.296v378.112h53.056c15.488 0 28.032-4.416 37.696-13.312 9.6-8.96 14.464-21.056 14.464-36.544v-278.912c0-14.656-4.608-26.56-13.888-35.712-9.344-9.024-21.312-13.632-36.032-13.632z", - "M888 0h-752c-75.648 0-136 60.352-136 136v752c0 75.648 60.352 136 136 136h752c75.648 0 136-60.352 136-136v-752c0-75.648-60.352-136-136-136zM354.304 675.136c0 23.68-7.808 43.136-23.36 58.304s-35.2 22.784-58.88 22.784h-102.656v-448.64h102.592c23.936 0 43.584 7.616 59.072 22.784s23.232 34.624 23.232 58.304v286.464zM609.216 756.224h-27.584l-119.808-329.92v329.92h-37.568v-448.64h29.824l117.504 324.224v-324.16h37.568v448.576zM855.68 443.84h-39.872v-100.992h-96.896v94.656l124.416 149.632c8.192 9.92 12.288 21.12 12.288 33.536v103.744c0 9.344-2.944 17.024-8.768 22.912s-13.44 8.896-22.784 8.896h-112.96c-9.344 0-17.024-2.944-23.040-8.896s-9.024-13.568-9.024-22.912v-113.792h39.808v110.4h96.896v-106.944l-123.84-149.632c-8.576-10.304-12.864-21.696-12.864-34.112v-90.88c0-9.344 3.008-17.024 9.024-22.848 6.080-5.952 13.76-8.96 23.040-8.96h112.96c9.344 0 17.024 3.008 22.784 8.96 5.824 5.888 8.768 13.568 8.768 22.848v104.384z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-dns" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 304, - "id": 291, - "prevSize": 16, - "code": 59654, - "name": "it-other-dns" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 6 - }, - { - "icon": { - "paths": [ - "M888 0h-752c-75.648 0-136 60.352-136 136v752c0 75.648 60.352 136 136 136h752c75.648 0 136-60.352 136-136v-752c0-75.648-60.352-136-136-136zM379.328 724.416c0 9.344-3.008 17.024-9.024 22.912-6.016 5.952-13.696 8.896-23.104 8.896h-122.048c-9.344 0-17.024-2.944-22.912-8.896-5.952-5.952-8.896-13.568-8.896-22.912v-416.768h39.872v413.376h106.368v-413.376h39.872v416.768zM600 756.224l-83.392-240.192 5.44-8.064h71.040v-165.12h-102.272v413.376h-39.808v-448.64h150.208c9.344 0 17.024 3.008 22.912 8.96 5.952 5.888 8.896 13.568 8.896 22.848v170.304c0 21.568-14.528 32.384-43.584 32.384-2.88 0-7.040-0.128-12.608-0.448-5.568-0.192-9.6-0.384-12.096-0.384 25.856 71.488 51.584 143.104 77.184 214.976h-41.92zM844.864 756.224h-143.296v-448.64h39.808v413.376h103.488v35.264z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-url" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 305, - "id": 290, - "prevSize": 16, - "code": 59655, - "name": "it-other-url" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 7 - }, - { - "icon": { - "paths": [ - "M4.032 488c0-7.232-2.816-30.4-4.032-43.968v129.984c1.856 20.864 4.032 44.224 4.032 54.016 0 17.472 5.248 33.728 14.016 49.984h237.952c-150.272-38.72-251.968-108.672-251.968-190.016z", - "M0 678.016h1.984c-0.896-9.472-1.28-17.984-1.984-25.984v25.984z", - "M513.984 444.032c282.752 0 512-99.328 512-222.016 0-1.344 0.128-2.624 0-4.032 0-0.704 0-1.344 0-1.984-7.488-119.808-233.984-216-512-216-282.752 0-512 99.328-512 222.016s229.248 222.016 512 222.016z", - "M516.032 494.016c-282.752 0-512-99.328-512-222.016 0-7.232-2.752-30.4-4.032-44.032v137.984c1.856 20.864 4.032 44.288 4.032 54.080 0 122.688 229.248 222.016 512 222.016s512-99.328 512-222.016v-148.032c-0 122.688-229.312 222.016-512 222.016z", - "M776 678.016h238.016c8.768-16.256 14.016-32.512 14.016-49.984v-140.032c0 81.344-101.76 151.296-252.032 190.016z", - "M140.736 932.096c-5.056 19.968-8.768 35.072-11.136 45.312-2.048-9.28-5.376-23.168-9.984-41.792l-49.472-200.128h-41.6v282.624h26.688v-240.64l60.48 240.64h24.96l60.736-236.544v236.544h26.688v-282.624h-37.376l-49.984 196.608z", - "M369.792 818.56c-8.96 18.56-16.576 35.2-22.848 49.92-6.592-15.936-13.632-31.872-21.248-47.808l-41.216-85.184h-33.6l80.512 162.88v119.744h27.648v-119.744l83.392-162.88h-32.128l-40.512 83.072z", - "M592.704 844.032c-9.472-6.784-24.128-13.632-43.904-20.032s-31.488-12.096-36.608-17.984c-4.032-4.608-5.824-9.472-5.824-16 0-7.104 1.536-13.76 5.824-17.984 6.656-6.656 16-9.984 27.84-9.984 11.392 0 19.072 3.776 24.896 9.984 5.632 6.208 9.92 15.872 11.712 30.016l40.96-2.048c-0.704-25.28-7.808-44.864-20.48-60.032-12.8-15.104-31.872-24-57.088-24-15.488 0-28.608 3.648-39.552 9.984-10.944 6.4-19.072 15.808-24.896 28.032-5.824 12.16-8.768 25.984-8.768 40 0 21.76 6.656 38.848 19.008 54.016 8.768 10.752 23.616 20.608 45.376 28.032 16.96 5.76 27.456 9.728 32.192 12.032 6.912 3.392 11.84 7.488 14.656 12.032 2.752 4.544 4.416 9.472 4.416 16 0 10.112-3.712 20.416-10.24 28.032-6.656 7.552-16.192 9.984-29.312 9.984-12.352 0-22.080-3.52-29.312-12.032-7.296-8.512-12.224-21.888-14.656-40l-39.424 5.952c2.688 30.72 11.264 53.952 24.896 70.016s33.152 24 58.56 24c17.472 0 32.128-3.328 43.904-9.984 11.712-6.656 19.968-18.24 26.304-32 6.464-13.76 10.24-28.224 10.24-44.032 0-17.344-3.456-32.192-8.768-44.032-5.376-11.84-12.544-21.184-21.952-27.968z", - "M917.632 724.032h-41.024v272h142.016v-46.016h-100.992z", - "M837.12 921.984c4.864-17.984 7.296-38.272 7.296-62.016 0-44.864-8.896-81.088-26.304-105.984-17.472-24.96-40.448-38.016-70.272-38.016-30.144 0-54.208 13.056-71.744 38.016s-26.304 61.12-26.304 105.984c0 44.992 8.768 79.104 26.304 104 17.472 24.896 40.832 38.016 71.744 38.016 16 0 30.72-4.096 43.904-12.032 16.768 15.36 26.56 23.104 27.84 24 5.888 4.352 11.456 7.488 17.536 9.984l14.656-40c-11.712-5.76-22.208-12.224-32.192-22.016 8.064-12.8 13.888-26.176 17.536-39.936zM799.040 900.032c-2.624 11.904-6.528 21.632-11.712 30.016-12.16-12.48-26.176-21.76-39.488-28.032l-10.24 32c8.512 4.096 16.64 10.624 24.896 17.984-5.248 2.624-10.24 4.032-16.128 4.032-15.68 0-29.248-8.064-39.488-24-10.304-15.936-16.128-39.872-16.128-72 0-31.616 5.824-56.256 16.128-72 10.24-15.744 22.912-24 39.488-24s30.72 8.32 41.024 24 14.656 40.256 14.656 72c-0.064 15.36-0.448 28.096-3.008 40z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-database-mysql" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 306, - "id": 289, - "prevSize": 16, - "code": 59656, - "name": "it-database-mysql" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 8 - }, - { - "icon": { - "paths": [ - "M154.24 298.752h98.048v199.808h-98.048v-199.808z", - "M888 0h-752c-75.648 0-136 60.416-136 136v752c0 75.648 60.352 136 136 136h752c75.648 0 136-60.352 136-136v-752c0-75.584-60.352-136-136-136zM292.096 502.016c0 9.344-3.008 17.088-9.024 23.040-6.016 6.080-13.696 9.088-23.040 9.088h-105.792v177.984h-39.808v-448.64h145.6c9.344 0 17.088 3.008 23.104 8.96 6.016 5.888 9.024 13.568 9.024 22.848v206.72zM397.312 712.128h-39.872v-448.64h39.872v448.64zM657.088 712.128h-27.584l-119.808-329.92v329.92h-37.568v-448.64h29.824l117.568 324.288v-324.288h37.568v448.64zM910.144 399.68h-40.128v-100.928h-101.44v378.112h101.44v-155.072h-47.872v-34.432h88v192.96c0 9.344-2.944 17.024-8.896 22.912s-13.568 8.896-22.912 8.896h-117.824c-9.344 0-17.024-2.944-22.912-8.896s-8.896-13.568-8.896-22.912v-385.024c0-9.344 3.008-17.024 8.896-22.848 5.952-5.952 13.632-8.96 22.912-8.96h117.824c9.344 0 17.024 3.008 22.912 8.96 5.952 5.888 8.896 13.568 8.896 22.848v104.384z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-ping" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 307, - "id": 288, - "prevSize": 16, - "code": 59657, - "name": "it-other-ping" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 9 - }, - { - "icon": { - "paths": [ - "M888 0h-752c-75.584 0-136 60.352-136 136v752c0 75.648 60.416 136 136 136h752c75.648 0 136-60.352 136-136v-752c0-75.648-60.352-136-136-136zM352 269.12h-119.168v193.92h109.696v40.832h-109.696v236.032h-45.376v-510.976h164.544v40.192zM590.656 269.12h-78.976v470.784h-45.376v-470.784h-79.68v-40.192h204.096v40.192zM846.4 500.608c0 10.624-3.456 19.392-10.304 26.24s-15.616 10.304-26.304 10.304h-120.448v202.752h-45.44v-510.976h165.888c10.688 0 19.456 3.392 26.304 10.112s10.304 15.488 10.304 26.112v235.456z", - "M689.344 269.12h111.616v227.584h-111.616v-227.584z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-ftp" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 308, - "id": 287, - "prevSize": 16, - "code": 59658, - "name": "it-other-ftp" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 10 - }, - { - "icon": { - "paths": [ - "M888 0h-752c-75.584 0-136 60.416-136 136v752c0 75.648 60.416 136 136 136h752c75.648 0 136-60.352 136-136v-752c0-75.584-60.352-136-136-136zM243.456 695.040l-79.744-229.632 5.248-7.68h67.968v-157.76h-97.856v395.136h-38.080v-428.8h143.616c8.96 0 16.256 2.816 21.888 8.448 5.632 5.696 8.512 12.992 8.512 21.952v162.752c0 20.672-13.888 30.976-41.664 30.976-2.752 0-6.72-0.128-12.032-0.384s-9.152-0.384-11.52-0.384c24.64 68.288 49.216 136.832 73.728 205.504h-40.064zM481.28 695.040h-140.864v-428.8h139.2v33.664h-101.12v160h92.032v34.24h-91.968v167.168h102.72v33.728zM707.904 396.416h-38.080v-96.448h-92.608v90.432l118.912 143.040c7.808 9.472 11.776 20.16 11.776 32v99.2c0 9.024-2.752 16.32-8.32 21.952-5.632 5.696-12.864 8.512-21.824 8.512h-107.968c-8.96 0-16.32-2.816-22.080-8.512-5.76-5.632-8.64-12.928-8.64-21.952v-108.736h38.080v105.472h92.608v-102.272l-118.4-142.976c-8.192-9.856-12.352-20.736-12.352-32.64v-86.848c0-8.96 2.88-16.256 8.64-21.952 5.824-5.632 13.248-8.448 22.144-8.448h107.968c8.96 0 16.192 2.816 21.824 8.448 5.568 5.696 8.32 12.992 8.32 21.952v99.776zM923.008 299.968h-66.304v395.136h-38.080v-395.136h-66.88v-33.728h171.264v33.728z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-rest" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 309, - "id": 286, - "prevSize": 16, - "code": 59659, - "name": "it-other-rest" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 11 - }, - { - "icon": { - "paths": [ - "M594.752 566.016h75.392l-37.568-232.384z", - "M343.488 299.968h104.96v361.408h-104.96v-361.408z", - "M817.472 299.968h93.76v190.976h-93.76v-190.976z", - "M888 0h-752c-75.584 0-136 60.416-136 136v752c0 75.648 60.416 136 136 136h752c75.648 0 136-60.352 136-136v-752c0-75.584-60.352-136-136-136zM238.016 396.416h-38.080v-96.448h-92.672v90.432l118.912 143.040c7.872 9.472 11.776 20.16 11.776 32v99.2c0 9.024-2.752 16.32-8.384 21.952-5.568 5.696-12.8 8.512-21.76 8.512h-107.904c-8.96 0-16.256-2.816-22.016-8.512-5.76-5.632-8.64-12.928-8.64-21.952v-108.736h38.080v105.472h92.608v-102.272l-118.4-142.976c-8.192-9.856-12.352-20.736-12.352-32.64v-86.848c0-8.96 2.88-16.256 8.64-21.952 5.76-5.632 13.12-8.448 22.080-8.448h107.968c8.96 0 16.192 2.816 21.76 8.448 5.568 5.696 8.384 12.992 8.384 21.952v99.776zM486.528 664.64c0 9.024-2.88 16.32-8.64 21.952-5.76 5.696-13.12 8.512-22.080 8.512h-120c-8.96 0-16.256-2.816-21.888-8.512-5.632-5.632-8.512-12.928-8.512-21.952v-368c0-8.96 2.816-16.256 8.512-21.952 5.632-5.632 12.928-8.448 21.888-8.448h120c8.96 0 16.32 2.816 22.080 8.448 5.76 5.696 8.64 12.992 8.64 21.952v368zM690.112 695.040l-15.040-95.36h-85.248l-15.104 95.36h-36.672v-1.152l76.48-428.8h37.568l75.904 429.952h-37.888zM949.312 494.208c0 8.96-2.88 16.32-8.64 22.080s-13.12 8.64-22.080 8.64h-101.12v170.176h-38.080v-428.8h139.2c8.96 0 16.32 2.816 22.080 8.448 5.76 5.696 8.64 12.992 8.64 21.952v197.504z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-soap" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 310, - "id": 285, - "prevSize": 16, - "code": 59660, - "name": "it-other-soap" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 12 - }, - { - "icon": { - "paths": [ - "M766.336 563.584c-6.912-61.952 29.12-128.832 94.144-209.92-23.168-15.424-37.44-36.096-78.592-46.912-170.496-21.632-250.176 23.744-250.176 23.744s-112.192-49.792-191.68-42.624c-130.432 11.648-176.448 134.72-179.712 201.152-2.368 47.936-6.528 116.544 1.408 168 29.888 192.832 130.688 269.952 213.632 297.536 64.768 21.568 88.256-30.784 135.744-30.784 15.232 0 63.872-1.728 73.856 3.712 146.176 79.68 238.656 7.040 303.040-193.024-45.056-16.704-111.36-90.24-121.664-170.88z", - "M696.768 64c-60.8 0-170.88 102.848-162.176 188.288 0.448 4.096 11.968 8.064 16 7.232 56.448-11.648 121.536-70.912 141.888-127.424 5.952-16.768 22.144-68.096 4.288-68.096z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-server-macos" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 311, - "id": 284, - "prevSize": 16, - "code": 59661, - "name": "it-server-macos" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 13 - }, - { - "icon": { - "paths": [ - "M619.904 452.8c9.984-7.552 16.896-18.24 20.544-31.936l-23.488-2.88c-3.456 9.6-8.128 16.576-14.016 20.928s-12.992 6.592-21.376 6.592c-11.2 0-20.48-3.904-28.032-11.776-7.488-7.808-11.648-19.072-12.48-33.792h100.032c0.064-2.688 0.128-4.672 0.128-6.016 0-22.144-5.696-39.296-17.088-51.52-11.392-12.16-25.984-18.304-43.968-18.304-18.496 0-33.536 6.272-45.184 18.688-11.584 12.416-17.408 29.888-17.408 52.48 0 21.824 5.76 38.72 17.28 50.816s27.072 18.112 46.656 18.112c15.552-0 28.288-3.776 38.4-11.392zM554.112 353.216c7.168-6.976 15.872-10.496 26.304-10.496 11.584 0 20.928 4.352 28.16 13.12 4.672 5.632 7.552 14.144 8.576 25.408h-74.88c0.768-11.712 4.736-21.056 11.84-28.032z", - "M513.472 673.92c-7.424-3.328-21.056-7.232-40.96-11.776s-32.192-8.96-36.928-13.248c-4.864-4.224-7.232-9.728-7.232-16.32 0-7.68 3.392-14.208 10.176-19.648s17.536-8.192 32.384-8.192c14.208 0 24.96 3.008 32.256 9.024 7.296 5.952 11.584 14.784 12.8 26.496l23.488-1.728c-0.448-10.88-3.456-20.544-9.088-29.184-5.632-8.576-13.696-15.104-24.192-19.52-10.432-4.48-22.528-6.656-36.288-6.656-12.48 0-23.808 2.112-33.984 6.336s-17.92 10.368-23.232 18.496c-5.248 8.128-7.936 16.896-7.936 26.176 0 8.512 2.176 16.192 6.528 23.040s10.944 12.544 19.776 17.28c6.848 3.584 18.752 7.424 35.776 11.52s27.968 7.104 32.96 9.088c7.744 2.944 13.312 6.592 16.704 10.944 3.328 4.288 5.056 9.344 5.056 15.168 0 5.76-1.728 11.008-5.248 15.872-3.456 4.8-8.832 8.64-16 11.392-7.168 2.816-15.424 4.16-24.704 4.16-10.56 0-20.032-1.792-28.416-5.504-8.384-3.648-14.656-8.448-18.624-14.4-4.032-5.952-6.592-13.568-7.68-22.784l-23.104 2.048c0.32 12.288 3.712 23.424 10.176 33.28s15.296 17.152 26.624 22.016c11.328 4.864 25.344 7.36 42.112 7.36 13.248 0 25.088-2.432 35.648-7.296 10.56-4.8 18.688-11.648 24.32-20.288s8.512-17.984 8.512-27.84c0-9.92-2.624-18.752-7.744-26.368-5.248-7.616-13.184-13.952-23.936-18.944z", - "M404.032 447.296c3.904 4.864 8.832 8.896 14.784 12.096 6.016 3.2 12.8 4.8 20.416 4.8 10.368 0 20.224-2.944 29.568-8.768 9.408-5.824 16.576-14.272 21.44-25.28 5.056-10.944 7.488-23.36 7.488-37.056 0-12.8-2.24-24.576-6.72-35.264-4.416-10.752-11.008-19.072-19.776-24.96s-18.88-8.832-30.336-8.832c-8.768 0-16.192 1.728-22.336 5.12s-11.648 8.512-16.512 15.36v-17.472h-20.736v185.472h22.72v-65.216zM413.12 355.392c7.424-9.024 16-13.568 25.664-13.568 9.728 0 18.176 4.224 25.216 12.736s10.56 21.312 10.56 38.4c0 17.92-3.584 31.168-10.752 39.744-7.232 8.512-15.872 12.8-25.984 12.8-9.92 0-18.368-4.096-25.344-12.352-7.104-8.256-10.56-21.056-10.56-38.272s3.712-30.4 11.2-39.488z", - "M337.408 672.96c8.704-4.224 15.168-9.92 19.456-16.896s6.464-14.464 6.464-22.4c0-8.512-2.432-16.64-7.296-24.448-4.8-7.744-11.52-13.504-20.032-17.28s-19.904-5.632-34.048-5.632h-69.44v185.152h70.592c11.776 0 21.696-1.024 29.824-3.072s14.848-5.12 20.288-9.216c5.376-4.032 9.92-9.792 13.568-17.28s5.504-15.488 5.504-24.192c0-10.752-3.008-20.032-9.024-28.032-6.016-7.872-14.592-13.44-25.856-16.704zM257.024 608.192h36.992c13.312 0 22.656 0.896 28.16 2.56 5.504 1.728 9.664 4.928 12.608 9.6 2.944 4.736 4.416 10.112 4.416 16.256 0 6.464-1.536 11.84-4.736 16.128s-7.872 7.36-14.080 9.28c-4.736 1.344-12.48 2.112-23.36 2.112h-40v-55.936zM343.232 733.376c-2.432 4.48-5.504 7.936-9.344 10.304-3.776 2.304-8.512 4.032-14.144 4.992-3.2 0.64-8.768 0.96-16.64 0.96h-46.080v-63.68h42.752c11.84 0 20.8 1.088 27.072 3.136s11.2 5.632 14.72 10.752c3.52 5.056 5.312 11.072 5.312 17.92 0.064 5.952-1.216 11.136-3.648 15.616z", - "M309.12 452.864c13.888-7.616 24.576-18.816 32.192-33.6 7.552-14.848 11.328-31.616 11.328-50.368 0-18.56-3.584-35.072-10.752-49.664-7.168-14.656-17.664-25.984-31.36-34.176s-29.184-12.288-46.272-12.288c-26.112 0-47.36 8.704-63.872 26.048s-24.704 41.472-24.704 72.192c0 16.256 3.52 31.68 10.624 46.208 7.104 14.592 17.472 26.048 31.168 34.496s29.312 12.608 46.72 12.608c16.064 0 31.040-3.84 44.928-11.456zM218.88 424.064c-11.968-12.8-17.984-30.4-17.984-52.672 0-27.84 6.272-47.744 18.752-59.648s27.392-17.856 44.736-17.856c12.224 0 23.232 3.072 33.024 9.28s17.28 14.848 22.336 26.112 7.616 24.384 7.616 39.488c0 23.808-5.952 42.176-17.856 55.168s-27.008 19.392-45.504 19.392c-18.048 0-33.088-6.4-45.12-19.264z", - "M702.4 602.24c-7.488-6.4-16.576-10.816-27.2-13.248-7.552-1.728-18.56-2.688-32.96-2.688h-63.744v185.152h66.816c11.2 0 21.056-1.088 29.696-3.2 8.64-2.048 16-5.184 22.144-9.28 6.080-4.032 11.712-9.664 16.896-16.832 5.12-7.040 9.344-16.064 12.608-26.944s4.864-23.296 4.864-37.376c0-16.512-2.368-31.168-7.232-44.032-4.864-12.736-12.16-23.296-21.888-31.552zM701.44 713.216c-3.264 9.792-7.808 17.6-13.632 23.36-4.096 4.096-9.6 7.36-16.576 9.6s-16.576 3.456-28.736 3.456h-39.488v-141.44h38.848c14.592 0 25.152 1.28 31.68 3.84 9.152 3.52 16.832 10.496 23.168 20.864s9.472 25.28 9.472 44.608c0.064 14.016-1.536 25.856-4.736 35.712z", - "M0 0v1024h1024v-533.12c-85.888 14.656-144.192 122.368-127.936 210.816-55.872-12.48-65.856-52.608-94.016-59.136 5.76 22.656 11.392 45.12 17.216 67.648-34.112-3.264-27.008-9.152-51.2 8.512 11.392 25.28 22.656 50.496 33.984 75.776-2.816 0-5.632 0-8.512 0-23.808-22.016-29.056-31.488-68.096-42.112-2.816 5.632-5.824 11.136-8.64 16.896 5.824 17.024 11.456 33.728 17.216 50.752-37.12-25.152-27.52-31.744-68.416-17.024-2.816 22.528-5.696 44.992-8.512 67.648-21.184-24.128-14.464-29.248-51.2-42.368-2.816 17.024-5.76 33.856-8.512 50.624-8.576-11.264-17.152-22.528-25.536-33.6-8.576 5.76-17.152 11.136-25.6 16.896-2.88 22.4-5.696 44.992-8.64 67.52-11.392-22.528-22.72-45.12-33.984-67.52-5.696 2.752-11.52 5.504-17.152 8.512-8.576 32.64-3.328 25.28-25.6 42.112-2.88-14.144-5.696-28.224-8.576-42.112-5.632 2.624-11.328 5.504-17.024 8.256-10.88 37.504-16.96 43.264-34.112 50.752-5.76-19.84-11.456-39.616-17.152-59.072-17.6 17.152-19.264 28.352-42.624 42.112 0-17.024 0-33.856 0-50.624-22.72 14.016-45.568 28.032-68.288 42.24 6.4-46.848 11.968-56.64-17.088-84.352-17.088 11.136-34.112 22.528-51.264 33.6 5.824-22.528 11.456-44.864 17.152-67.392-25.536 5.632-51.2 11.264-76.8 16.768 11.392-16.768 22.72-33.728 34.176-50.624-18.496-23.36-16.256-18.752-34.176-42.112-11.392 5.632-22.656 11.264-34.112 16.896 23.424-48.64 10.816-38.4-25.536-84.48-40.704 12.544-61.504 8.832-85.44-16.832 82.432-69.184 97.92-184 153.6-261.504-8.512-11.264-17.024-22.464-25.6-33.664 11.392 0 22.72 0 34.112 0-14.144-25.408-28.416-50.688-42.624-76.032 28.416 8.448 56.96 17.024 85.248 25.408-11.968-28.096 20.352-29.504 17.152-75.968 14.208 5.568 28.416 11.2 42.688 16.832-5.696-25.344-11.392-50.624-17.088-75.84 30.592 19.776 28.928 36.352 68.224 50.496 0-11.2 0-22.464 0-33.664 11.392 8.384 22.848 16.768 34.176 25.216 1.728-36.352 2.24-40.64 17.152-59.008 5.568 14.144 11.264 28.16 16.96 42.176 25.28-34.048 19.904 0.512 34.176-25.216 5.696-16.96 11.392-33.792 17.088-50.688 11.392 22.464 22.656 45.056 34.112 67.456 5.76-11.2 11.392-22.592 17.088-33.792 0 14.144 0 28.224 0 42.176 5.632-2.752 11.456-5.632 17.152-8.384 8.512-32.768 3.264-25.344 25.6-42.176 0 16.832 0 33.792 0 50.624 23.936-14.848 14.464-12.352 34.048-16.832 0 8.384 0 16.832 0 25.28 22.656-22.4 45.504-45.056 68.224-67.456-5.568 30.976-11.328 61.824-17.024 92.8 8.512-5.76 17.088-11.392 25.6-17.024 14.080-30.4 2.304-19.776 33.984-33.664-5.632 25.28-11.328 50.688-17.024 75.968 11.392-8.448 22.72-16.896 34.24-25.28-2.88 14.016-5.824 28.032-8.704 42.112 22.848-11.2 45.632-22.464 68.288-33.664-11.392 22.464-22.656 44.928-34.112 67.52 2.816 2.816 5.824 5.568 8.64 8.384 25.472-11.2 51.136-22.656 76.608-33.792 0 2.816 0 5.632 0 8.448-29.376 43.712-33.28 39.808-16.96 76.032 22.656-8.448 45.504-17.024 68.288-25.344 0 2.752 0 5.632 0 8.32-17.152 14.208-34.176 28.16-51.392 42.24 26.368 32.256 12.736-0.576 8.576 50.624 20.032-2.752 40-5.632 59.904-8.384-17.088 19.648-34.176 39.296-51.264 59.072 14.272-2.816 28.608-5.568 42.752-8.448-11.648 16-21.44 19.968-34.176 33.728 5.696 8.32 11.392 16.832 17.024 25.216 45.568-26.688 58.688-51.904 128-58.944 17.216 11.2 34.176 22.528 51.2 33.728v-490.944h-1023.936z", - "M769.6 339.84c-3.392-4.736-8.512-8.512-15.232-11.392s-14.208-4.352-22.272-4.352c-18.624 0-32.896 7.36-42.688 22.080v-19.136h-20.48v134.080h22.72v-73.152c0-17.216 3.52-28.864 10.56-35.008 6.976-6.144 15.36-9.216 25.088-9.216 6.080 0 11.328 1.344 15.808 4.096 4.48 2.688 7.68 6.4 9.408 10.944 1.728 4.608 2.624 11.52 2.624 20.8v81.536h22.72v-82.432c0-10.56-0.448-17.92-1.28-22.080-1.28-6.464-3.648-12.096-6.976-16.768z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-server-openbsd" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 312, - "id": 283, - "prevSize": 16, - "code": 59662, - "name": "it-server-openbsd" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 14 - }, - { - "icon": { - "paths": [ - "M797.952 299.072c5.824 5.824 11.648 11.584 17.408 17.408-12.032-16.64-0.896-5.12-17.408-17.408zM0 0v1024h1024v-1024h-1024zM214.656 273.024h17.344v8.704c-5.76 5.824-11.584 11.584-17.344 17.408h-8.768c2.88-8.768 5.824-17.472 8.768-26.112zM197.184 334.016c2.88 8.64 5.824 17.344 8.704 26.048h-8.704v-26.048zM571.648 647.36c-45.888-16.896-81.216-29.568-104.576-69.632 11.584 5.76 23.232 11.648 34.816 17.344-11.584-11.584-23.232-23.104-34.816-34.752-11.648 12.416-10.816 15.296-26.112 26.112-2.88-14.464-5.824-28.928-8.704-43.456 11.648-3.392 11.968-104.576 26.112-165.504 42.688-32.768 54.72-56.64 130.688-60.992 27.904 14.208 36.416 16.064 52.16 43.584-77.888-30.784-114.752 3.328-165.376 43.52-4.416 44.224-9.408 68.608 8.64 104.448 16.704 43.328 35.52 61.184 78.4 78.4 75.776 21.568 126.912-20.096 174.208-52.288 80.576-361.28-300.864-476.672-452.8-208.96-130.688 230.336 75.456 527.296 252.48 574.72v8.704h-52.288c-398.4-154.56-361.024-598.784-34.816-801.088 494.912-22.080 487.040 512.768 121.984 539.84zM615.104 534.144v8.832h-8.704c-8.704-2.944-17.408-5.888-26.176-8.832v-17.344c11.648 5.76 23.232 11.52 34.88 17.344zM667.264 447.168v-26.176c17.92 15.744 6.272 0.128 17.472 26.176h-17.472z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-server-debian" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 313, - "id": 282, - "prevSize": 16, - "code": 59663, - "name": "it-server-debian" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 15 - }, - { - "icon": { - "paths": [ - "M896 1024c70.848 0 128-57.152 128-128v-252.032l-379.968 380.032h251.968z", - "M896 0h-768c-70.912 0-128 57.088-128 128v768c0 70.848 57.088 128 128 128h417.984l478.016-480v-416c0-70.912-57.152-128-128-128zM340.032 570.624c0 2.304-1.728 3.52-5.248 3.52-6.976 0-30.272-1.728-80.896-1.728-55.296 0-80.32 1.728-86.72 1.728-2.88 0-4.672-1.216-4.672-3.52v-15.68c0-2.368 1.728-3.52 4.672-3.52h32.576c11.648 0 23.872-1.728 26.176-16.896 1.152-8.704 2.88-134.464 2.88-165.248v-40.768c0-13.952-1.728-118.72-2.304-127.488-1.152-13.952-6.976-19.776-29.12-19.776h-33.728c-2.88 0-4.608-1.152-4.608-3.52v-15.68c0-2.304 1.728-3.456 4.032-3.456 6.976 0 36.672 1.728 90.752 1.728 51.84 0 70.464-1.728 78.592-1.728 2.88 0 4.032 1.728 4.032 4.032v14.592c0 2.88-1.728 4.032-4.672 4.032h-27.264c-11.648 0-20.352 4.672-20.352 16.32 0 5.824-1.728 134.464-1.728 141.376v44.864c0 5.824 1.728 140.224 1.728 146.688 0 18.048 8.704 20.992 27.328 20.992h23.872c2.88 0 4.672 1.152 4.672 4.032v15.104zM561.728 570.624c0 2.304-1.728 3.52-5.248 3.52-6.976 0-30.272-1.728-80.896-1.728-55.296 0-80.32 1.728-86.72 1.728-2.88 0-4.672-1.216-4.672-3.52v-15.68c0-2.368 1.728-3.52 4.672-3.52h32.576c11.648 0 23.872-1.728 26.176-16.896 1.216-8.704 2.944-134.464 2.944-165.248v-40.768c0-13.952-1.728-118.72-2.304-127.488-1.152-13.952-6.976-19.776-29.12-19.776h-33.792c-2.88 0-4.608-1.152-4.608-3.52v-15.68c0-2.304 1.728-3.456 4.032-3.456 6.976 0 36.672 1.728 90.752 1.728 51.84 0 70.4-1.728 78.592-1.728 2.88 0 4.032 1.728 4.032 4.032v14.592c0 2.88-1.728 4.032-4.608 4.032h-27.264c-11.648 0-20.352 4.672-20.352 16.32 0 5.824-1.728 134.464-1.728 141.376v44.864c0 5.824 1.728 140.224 1.728 146.688 0 18.048 8.704 20.992 27.328 20.992h23.872c2.944 0 4.672 1.152 4.672 4.032v15.104zM755.008 581.12c-40.768 0-69.248-12.224-92.48-30.336-6.976-5.184-10.496-6.976-13.44-6.976-3.456 0-5.824 4.096-9.344 9.92-3.52 6.4-6.4 6.976-10.432 6.976-3.52 0-6.464-2.944-5.248-9.344 2.304-14.464 8.128-88.448 9.856-105.28 0.64-3.456 1.728-3.456 4.032-3.456l8.768 0.576c2.304 0 3.52 1.152 3.52 4.672 0.576 18.624 1.728 37.824 20.928 67.52 17.472 27.328 49.472 43.008 81.472 43.008 34.944 0 79.168-21.504 79.168-73.856 0-59.968-43.136-82.048-89.664-98.368-17.984-6.4-59.968-20.928-84.928-47.168-19.264-19.2-29.12-46.592-29.12-84.992 0-29.12 18.048-57.6 36.096-74.496 20.928-19.776 49.984-27.968 81.408-27.968 33.216 0 58.816 9.92 68.672 14.592 5.248 2.88 8.128 2.304 11.072-0.576l7.552-6.976c2.944-2.368 4.672-3.52 7.552-3.52 2.944 0 4.672 4.672 4.672 9.856 0 20.352 7.552 79.744 8.128 92.544 0 2.88-0.576 4.032-2.88 4.672l-6.848 1.792c-1.728 0.576-2.944 0-3.52-1.728-4.672-16.896-12.224-39.616-36.096-64.576-15.68-16.896-36.032-25.024-63.424-25.024-51.776 0-70.4 38.4-70.4 68.096 0 16.256 3.456 35.52 17.984 50.624 16.896 16.896 49.472 29.696 66.368 34.944 40.192 12.8 72.768 22.656 93.696 48.32 15.104 18.048 25.6 40.704 25.6 79.104-0 68.608-41.856 127.424-118.72 127.424z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-app-iis" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 314, - "id": 281, - "prevSize": 16, - "code": 59664, - "name": "it-app-iis" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 16 - }, - { - "icon": { - "paths": [ - "M896 1024c70.848 0 128-57.152 128-128v-252.032l-379.968 380.032h251.968z", - "M728.832 195.008h-418.624l201.792 140.992z", - "M832 170.688l-315.968 221.312-316.032-220.416v348.416h632z", - "M896 0h-768c-70.912 0-128 57.088-128 128v768c0 70.848 57.088 128 128 128h417.984l478.016-480v-416c0-70.912-57.152-128-128-128zM896 584h-760v-480h760v480z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-app-mailserver" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 315, - "id": 280, - "prevSize": 16, - "code": 59665, - "name": "it-app-mailserver" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 17 - }, - { - "icon": { - "paths": [ - "M896 1024c70.848 0 128-57.152 128-128v-252.032l-379.968 380.032h251.968z", - "M599.744 280.64c-9.664 0-17.664 4.352-24.064 13.184-6.464 8.768-9.6 22.016-9.6 39.872 0 18.432 2.496 32 7.424 40.832 6.976 12.416 16.256 18.688 27.84 18.688 8.896 0 16.448-4.416 22.656-13.312 6.272-8.896 9.344-22.848 9.344-41.92 0-20.288-3.136-34.944-9.408-43.904s-14.4-13.44-24.192-13.44z", - "M425.088 280.64c-8.832 0-16.064 3.776-21.76 11.2-5.76 7.488-8.576 17.6-8.448 30.464h60.16c-0.32-13.632-3.328-23.936-9.024-31.040-5.76-7.104-12.736-10.624-20.928-10.624z", - "M896 0h-768c-70.912 0-128 57.088-128 128v768c0 70.848 57.088 128 128 128h417.984l478.016-480v-416c0-70.912-57.152-128-128-128zM297.536 426.304h-44.928l-41.856-183.296-41.664 183.296h-46.016l-50.112-245.184h43.392l31.68 168.384 38.4-168.384h50.432l36.8 171.264 32.192-171.264h42.688l-51.008 245.184zM403.904 383.616c6.208 7.744 13.952 11.648 23.232 11.648 6.272 0 11.584-2.048 15.936-6.016 4.224-4.096 7.488-10.56 9.664-19.456l40.128 7.872c-5.184 17.152-13.312 30.208-24.448 39.232-11.136 8.96-25.024 13.44-41.728 13.44-26.496 0-46.016-10.048-58.752-30.272-10.048-16.192-15.040-36.608-15.040-61.248 0-29.44 6.592-52.48 19.776-69.184s29.824-25.024 49.984-25.024c22.656 0 40.448 8.704 53.568 26.176s19.328 44.16 18.752 80.192h-100.864c0.32 14.016 3.52 24.896 9.792 32.64zM656.128 405.76c-12.352 16.384-27.456 24.576-45.056 24.576-8.704 0-17.28-2.56-25.728-7.616s-15.808-12.544-21.824-22.528v26.112h-37.44v-245.184h40.32v88.32c12.352-16.512 27.136-24.768 44.096-24.768 18.496 0 33.792 7.808 45.952 23.488 12.096 15.68 18.176 38.144 18.176 67.456 0 30.4-6.208 53.76-18.496 70.144zM856.704 393.92c-6.4 11.584-15.552 20.544-27.584 26.944s-25.472 9.6-40.448 9.6c-19.072 0-34.944-3.264-47.808-9.728-12.8-6.464-22.912-16.192-30.272-29.184-7.232-12.992-11.136-27.648-11.52-44.032l26.176-2.688c1.28 12.224 4.096 22.336 8.704 30.208 4.544 7.872 11.584 14.208 21.12 19.072s20.288 7.296 32.256 7.296c10.56 0 19.968-1.856 28.032-5.504s14.208-8.704 18.112-15.104c4.032-6.464 5.952-13.376 5.952-20.992 0-7.68-1.856-14.4-5.696-20.16-3.904-5.76-10.112-10.56-18.944-14.464-5.632-2.56-18.112-6.592-37.376-11.968-19.328-5.376-32.832-10.496-40.576-15.296-9.984-6.144-17.472-13.76-22.464-22.848-4.864-9.088-7.36-19.264-7.36-30.528 0-12.352 3.008-23.936 9.088-34.688 6.016-10.752 14.784-18.944 26.304-24.512 11.584-5.568 24.448-8.384 38.592-8.384 15.552 0 29.312 2.944 41.216 8.768s21.056 14.464 27.456 25.856 9.792 24.256 10.304 38.656l-26.624 2.368c-1.408-15.488-6.336-27.2-14.592-35.136s-20.416-11.904-36.608-11.904c-16.832 0-29.056 3.584-36.736 10.816-7.68 7.168-11.52 15.872-11.52 25.984 0 8.832 2.688 16.064 8.192 21.76 5.312 5.696 19.328 11.52 41.856 17.472s38.080 11.2 46.528 15.616c12.16 6.592 21.248 14.912 27.072 25.024s8.768 21.696 8.768 34.88c0 12.992-3.2 25.28-9.6 36.8zM937.6 426.304h-29.376v-34.304h29.376v34.304zM1019.2 426.304h-29.376v-34.304h29.376v34.304z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-app-websphere" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 316, - "id": 279, - "prevSize": 16, - "code": 59666, - "name": "it-app-websphere" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 18 - }, - { - "icon": { - "paths": [ - "M896 1024c70.848 0 128-57.152 128-128v-252.032l-379.968 380.032h251.968z", - "M450.688 255.616c-14.656 0-27.648 6.848-38.848 20.544s-16.896 33.536-16.896 59.648c0 26.112 5.312 45.376 15.872 57.856s23.36 18.688 38.4 18.688c15.296 0 28.352-6.464 39.232-19.392 10.944-12.928 16.384-32.96 16.384-60.032 0-25.856-5.312-45.184-16-58.048s-23.36-19.264-38.144-19.264z", - "M203.2 185.472c-3.584 17.92-8.576 35.776-15.040 53.44l-30.72 82.112h94.912l-29.312-77.44c-8.896-23.552-15.488-42.944-19.84-58.112z", - "M624.64 354.112c-5.888 2.56-10.368 6.272-13.568 11.2s-4.736 10.368-4.736 16.32c0 9.216 3.456 16.832 10.368 22.912s17.152 9.152 30.528 9.152c13.248 0 25.024-2.88 35.328-8.704s17.856-13.696 22.72-23.808c3.712-7.744 5.504-19.2 5.504-34.368v-12.544c-12.416 5.12-31.168 9.408-56.128 12.992-14.144 2.048-24.128 4.352-30.016 6.848z", - "M896 0h-768c-70.912 0-128 57.088-128 128v768c0 70.848 57.088 128 128 128h417.984l478.016-480v-416c0-70.912-57.152-128-128-128zM296.384 436.032l-32.64-84.8h-117.056l-30.72 84.8h-39.36l107.52-280h39.872l114.56 280h-42.176zM528.704 389.184c-7.424 16.576-18.24 29.376-32.448 38.208-14.272 8.832-29.12 13.312-44.8 13.312-11.456 0-21.76-2.432-30.784-7.296-9.152-4.864-16.64-10.944-22.464-18.368v98.688h-34.368v-280.448h31.296v26.368c7.424-10.368 15.68-18.112 25.024-23.232s20.544-7.744 33.792-7.744c17.344 0 32.576 4.48 45.824 13.376s23.232 21.44 30.016 37.696c6.72 16.192 10.112 34.048 10.112 53.376 0 20.736-3.776 39.424-11.2 56.064zM720.512 436.032c-3.584-7.104-5.888-15.488-6.848-25.024-12.736 10.816-25.024 18.496-36.736 22.912-11.84 4.416-24.448 6.656-37.952 6.656-22.272 0-39.36-5.44-51.392-16.32-11.968-10.816-17.984-24.704-17.984-41.664 0-9.92 2.24-19.008 6.784-27.2 4.48-8.192 10.432-14.784 17.728-19.776 7.36-4.928 15.616-8.768 24.768-11.264 6.72-1.792 16.96-3.52 30.592-5.184 27.776-3.328 48.192-7.232 61.312-11.84 0.128-4.736 0.192-7.68 0.192-8.96 0-14.016-3.264-23.872-9.728-29.632-8.768-7.744-21.824-11.648-39.104-11.648-16.192 0-28.096 2.816-35.84 8.512-7.68 5.632-13.376 15.68-17.088 30.080l-33.664-4.544c3.072-14.4 8.064-26.048 15.040-34.88s17.152-15.68 30.4-20.416c13.248-4.736 28.544-7.168 46.080-7.168 17.344 0 31.36 2.048 42.176 6.144 10.816 4.032 18.752 9.216 23.872 15.36 5.056 6.144 8.64 13.952 10.688 23.36 1.152 5.888 1.664 16.448 1.664 31.744v45.824c0 32 0.768 52.16 2.24 60.672 1.408 8.448 4.288 16.576 8.704 24.32h-35.904zM847.744 436.032h-39.168v-39.104h39.168v39.104zM956.352 436.032h-39.168v-39.104h39.168v39.104z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-app-apache" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 317, - "id": 278, - "prevSize": 16, - "code": 59667, - "name": "it-app-apache" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 19 - }, - { - "icon": { - "paths": [ - "M900.032-3.968h-768c-70.912 0-128 57.088-128 128v768c0 70.848 57.088 128 128 128h417.984l478.016-480v-416c-0-70.912-57.152-128-128-128zM361.152 403.136c0 40.256-4.864 71.424-14.592 93.504s-25.152 38.976-46.272 50.56c-21.12 11.52-45.888 17.344-74.304 17.344-42.24 0-74.56-12.096-96.96-36.352-22.464-24.32-33.216-60.416-32.32-108.288l57.408-7.872c1.536 36.736 8.448 61.888 20.672 75.456s29.248 20.352 50.88 20.352c16 0 29.76-3.712 41.344-11.008s19.584-17.28 23.936-29.824c4.352-12.608 6.528-32.704 6.528-60.288v-331.328h63.68v327.744zM811.52 479.744c-9.472 19.392-21.248 34.304-35.264 44.8s-31.552 18.432-52.672 23.744c-21.12 5.376-46.912 8.064-77.568 8.064h-183.424v-480.96h180.416c36.736 0 66.24 4.864 88.448 14.592s39.616 24.704 52.16 44.928c12.544 20.224 18.88 41.408 18.88 63.488 0 20.544-5.568 39.936-16.768 58.048-11.136 18.176-28.032 32.832-50.496 43.968 29.056 8.512 51.456 23.104 67.072 43.648s23.424 44.864 23.424 72.832c0 22.592-4.736 43.52-14.208 62.848z", - "M707.84 342.272c-16.32-5.312-39.744-8-70.4-8h-111.232v165.376h119.808c20.544 0 35.008-0.768 43.328-2.304 14.656-2.624 26.88-6.976 36.736-13.12 9.792-6.144 17.856-15.040 24.256-26.752s9.472-25.216 9.472-40.512c0-17.92-4.544-33.536-13.76-46.784-9.152-13.248-21.952-22.528-38.208-27.904z", - "M690.944 271.936c16.192-4.8 28.352-12.8 36.544-24s12.288-25.152 12.288-41.984c0-15.936-3.84-30.016-11.52-42.176-7.616-12.096-18.56-20.416-32.832-24.96-14.208-4.48-38.592-6.72-73.152-6.72h-96.064v145.344h104c28.224 0 48.448-1.792 60.736-5.504z", - "M900.032 1020.032c70.848 0 128-57.152 128-128v-252.032l-379.968 380.032h251.968z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-app-jboss" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 318, - "id": 277, - "prevSize": 16, - "code": 59668, - "name": "it-app-jboss" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 20 - }, - { - "icon": { - "paths": [ - "M399.965 340.713h-172.125l-227.84 387.398 88.343 2.56 51.293-100.119h223.139l41.053 99.98h182.132l-185.996-389.818zM173.009 561.385l82.060-138.612 73.123 138.519-155.183 0.093z", - "M590.988 426.636l100.119-44.87h29.51v343.692h-85.876v-243.665h-42.356z", - "M970.799 381.766h-150.388c-28.207 0-51.153 22.854-51.153 51.107v241.478c0 28.253 22.9 51.153 51.153 51.153h150.388c28.207 0 51.153-22.854 51.153-51.153v-241.524c0-28.207-22.854-51.060-51.153-51.060zM941.196 635.718c0 24.716-20.154 44.87-44.87 44.87-24.762 0-44.916-20.154-44.916-44.87v-161.652c0-24.809 20.154-44.87 44.916-44.87 24.716 0 44.87 20.061 44.87 44.87v161.652z" - ], - "attrs": [ - { - "fill": "rgb(24, 49, 109)" - }, - { - "fill": "rgb(24, 49, 109)" - }, - { - "fill": "rgb(24, 49, 109)" - } - ], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-a10bala" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [ - 0, - 0, - 0 - ] - } - }, - "attrs": [ - { - "fill": "rgb(24, 49, 109)" - }, - { - "fill": "rgb(24, 49, 109)" - }, - { - "fill": "rgb(24, 49, 109)" - } - ], - "properties": { - "order": 319, - "id": 276, - "prevSize": 16, - "code": 59669, - "name": "it-other-a10bala" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 21 - }, - { - "icon": { - "paths": [ - "M176.567 573.586c11.703-14.263 27.721-67.584 27.721-67.584v-92.745l-103.424-9.874-100.864 10.898v92.745c0 0 15.945 53.321 27.794 67.803 39.058 48.421 53.979 63.415 73.070 83.017h1.463v-1.097h1.317c18.798-19.529 33.792-34.45 72.923-83.163zM103.131 617.179h-1.024v0.878h-1.024c-14.775-15.36-26.478-16.311-57.198-54.199-9.143-11.557-21.723-53.248-21.723-53.248v-72.485l78.921-8.631 80.896 7.826v72.485c0 0-12.434 41.618-21.577 52.882-30.72 38.181-42.423 39.205-57.271 54.491z", - "M166.4 454.144l-65.097-6.217-63.415 6.875v58.368c0 0 10.021 33.499 17.481 42.642 24.576 30.574 34.085 31.451 45.934 43.593h0.878v-0.731h0.878c11.776-12.069 21.285-12.946 45.934-43.52 7.461-8.997 17.408-42.642 17.408-42.642v-58.368z", - "M901.12 498.395c67.584 0 122.441-22.455 122.441-50.395 0-0.293 0-0.512 0-0.805 0-0.146 0-0.585 0-0.805-1.682-27.209-56.027-48.933-122.441-48.933-67.438 0.146-122.295 22.747-122.295 50.542 0 27.867 54.857 50.395 122.295 50.395z", - "M901.632 509.806c-67.511 0-122.368-22.601-122.368-50.395 0-1.682-0.731-6.949-0.878-10.167v31.525c0.439 4.754 0.878 9.874 0.878 12.142 0 27.794 54.857 50.469 122.368 50.469 67.584 0 122.368-22.674 122.368-50.469v-33.573c0 27.867-54.784 50.469-122.368 50.469z", - "M901.632 558.738c-67.511 0-122.368-22.747-122.368-50.395 0-1.609-0.731-6.583-0.878-9.655v29.403c0.439 4.827 0.878 9.874 0.878 12.069 0 28.087 54.857 50.542 122.368 50.542 67.584-0.146 122.368-22.528 122.368-50.688v-31.817c0 27.794-54.784 50.542-122.368 50.542z", - "M901.632 605.842c-67.511 0-122.368-22.455-122.368-50.395 0-1.536-0.731-6.583-0.878-9.728v31.013c0.146 1.024 0.439 2.267 0.439 2.999 0 28.014 54.857 50.395 122.295 50.395 67.584 0 122.441-22.601 122.441-50.395 0-0.731 0.219-1.975 0.439-2.999v-21.285c0 27.867-54.784 50.395-122.368 50.395z", - "M623.835 37.522c0-20.699-17.701-37.376-39.57-37.376h-94.427c-21.87-0.073-39.643 16.677-39.643 37.376v54.711h173.568l0.073-54.711z", - "M450.267 247.369c0 20.626 17.701 37.376 39.57 37.376h94.501c21.943 0 39.57-16.75 39.57-37.376v-136.411h-173.641v136.411zM537.015 194.341c8.85 0 16.018 6.729 16.018 15.067s-7.168 14.994-16.018 14.994c-8.704 0-15.872-6.802-15.872-15.067s7.022-14.994 15.872-14.994z", - "M669.769 858.258c0 10.018-56.62 18.139-126.464 18.139s-126.464-8.121-126.464-18.139c0-10.018 56.62-18.139 126.464-18.139s126.464 8.121 126.464 18.139z", - "M418.67 874.496v121.051c0 0 27.721 28.306 128.512 28.453 106.423 0 122.661-28.453 122.661-28.453v-121.051c0 0-68.608 11.849-124.343 11.849-66.487 0.073-126.83-11.849-126.83-11.849zM501.979 965.559v0h-16.018v16.238l-25.673-24.43 25.673-23.771v16.165h16.018v15.799zM540.745 1009.737l-25.746-24.283h16.969v-15.141h16.896v15.141h16.969l-25.088 24.283zM578.926 949.687h16.018v-16.165l25.673 23.845-25.673 24.283v-16.165h-16.018v-15.799zM548.864 930.158v15.067h-16.969v-15.067h-16.969l25.673-24.357 25.234 24.357h-16.969z", - "M382.025 154.697l-23.406-53.687c-18.139 7.973-35.621 16.896-52.224 26.99l30.208 50.103c14.482-8.777 29.623-16.603 45.422-23.406z", - "M281.819 217.673l-38.181-44.325c-19.529 16.823-37.742 35.401-54.199 55.296l45.056 37.303c14.409-17.408 30.354-33.646 47.323-48.274z", - "M196.096 321.829l-50.761-29.111c-9.655 16.969-18.286 34.597-25.746 52.663l54.053 22.309c6.51-15.653 13.97-31.086 22.455-45.861z", - "M909.897 367.689l54.126-22.309c-7.607-18.359-16.091-35.986-25.746-52.736l-50.688 29.038c8.411 14.702 15.799 30.062 22.309 46.007z", - "M893.294 227.328c-16.823-20.334-35.547-39.351-55.808-56.466l-37.888 44.544c17.481 14.994 33.865 31.525 48.494 49.225l45.202-37.303z", - "M697.125 152.357c15.799 6.656 31.013 14.263 45.641 22.894l29.55-50.469c-16.75-9.801-34.304-18.578-52.37-26.258l-22.821 53.833z", - "M697.051 885.102l22.967 53.833c18.139-7.753 35.547-16.53 52.297-26.112l-29.257-50.688c-14.702 8.411-29.989 16.165-46.007 22.967z", - "M798.354 823.15l37.595 44.837c19.749-16.603 38.181-34.962 54.93-54.711l-44.544-37.888c-14.702 17.335-30.866 33.426-47.982 47.762z", - "M885.321 720.018l50.542 29.403c9.801-16.75 18.505-34.231 26.185-52.224l-53.833-22.967c-6.656 15.726-14.19 31.013-22.894 45.787z", - "M175.543 674.231l-53.76 22.967c7.753 18.139 16.53 35.547 26.112 52.224l50.615-29.257c-8.485-14.629-16.165-30.062-22.967-45.934z", - "M191.561 811.593c16.018 19.383 33.938 37.595 53.321 54.053l38.034-44.398c-16.823-14.409-32.402-30.208-46.299-46.958l-45.056 37.303z", - "M306.542 910.19c16.75 10.094 34.231 19.090 52.005 26.843l23.406-53.541c-15.506-6.802-30.72-14.629-45.422-23.406l-29.989 50.103z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "NFV" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 320, - "id": 275, - "prevSize": 16, - "code": 59670, - "name": "NFV" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 22 - }, - { - "icon": { - "paths": [ - "M785.481 880.786h-555.081l92.306-294.766h203.703v-73.143h-257.39l-78.921 252.050-102.619-420.937v-63.561h225.134l81.993 85.797h247.589v-73.143h-216.283l-81.993-85.797h-329.582v141.093l146.578 605.55h655.872l100.718-105.399-52.882-50.615z", - "M1020.050 696.393c-13.239-39.936-56.466-61.952-96.768-48.64-28.965 9.655-47.909 34.816-51.639 63.195l-264.558-0.293c-0.731-4.169-1.609-8.265-2.853-12.288-4.096-12.142-10.971-22.235-19.383-30.501l160.841-265.874c16.018 5.998 33.938 7.168 51.273 1.39 40.155-13.312 61.879-56.686 48.494-96.914-13.312-40.155-56.539-61.952-96.768-48.64-40.082 13.312-61.806 56.686-48.567 96.841 3.73 11.118 9.801 20.846 17.554 28.745l-161.573 266.606c-15.287-5.266-32.037-5.998-48.64-0.585-40.155 13.312-61.952 56.613-48.64 96.768 13.312 40.302 56.613 62.025 96.841 48.64 24.576-8.119 42.13-27.502 49.152-50.469l269.824 0.219c13.312 40.155 56.686 61.879 96.695 48.567 40.302-13.385 62.025-56.686 48.713-96.768z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "VNFM" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 321, - "id": 274, - "prevSize": 16, - "code": 59671, - "name": "VNFM" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 23 - }, - { - "icon": { - "paths": [ - "M706.267 645.632c-29.989 0-55.589 17.627-67.73 42.935l-246.93-81.993c0.805-4.023 1.317-8.119 1.317-12.507 0-12.361-3.365-24.064-8.631-34.523l232.448-198.29c13.166 10.533 29.403 17.042 47.25 17.042 41.545 0 75.41-33.719 75.41-75.337 0-41.545-33.865-75.264-75.41-75.264-41.618 0-75.337 33.719-75.337 75.337 0 11.63 2.779 22.455 7.534 32.256l-233.253 198.949c-12.654-9.728-28.233-15.579-45.275-15.579-41.691 0-75.41 33.646-75.41 75.264 0 41.691 33.719 75.264 75.41 75.264 25.454 0 47.835-12.434 61.513-31.89l251.831 83.749c0 41.618 33.719 75.264 75.264 75.264 41.691 0 75.557-33.646 75.557-75.264-0.073-41.618-33.792-75.41-75.557-75.41z", - "M512 0c-282.258 0-512 229.742-512 512 0 282.331 229.742 512 512 512 282.331 0 512-229.669 512-512 0-282.258-229.669-512-512-512zM512 950.857c-242.030 0-438.857-196.827-438.857-438.857s196.827-438.857 438.857-438.857 438.857 196.827 438.857 438.857-196.827 438.857-438.857 438.857z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "VNF" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 322, - "id": 273, - "prevSize": 16, - "code": 59672, - "name": "VNF" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 24 - }, - { - "icon": { - "paths": [ - "M536.869 599.698c-24.21 0-44.763 14.19-54.638 34.597l-198.729-66.048c0.585-3.218 1.024-6.583 1.024-10.094 0-9.947-2.706-19.383-6.949-27.721l187.246-159.671c10.533 8.485 23.625 13.751 38.034 13.751 33.499 0 60.709-27.209 60.709-60.709s-27.209-60.709-60.709-60.709-60.709 27.282-60.709 60.782c0 9.362 2.194 18.066 5.998 25.966l-187.831 160.183c-10.167-7.826-22.674-12.581-36.425-12.581-33.499 0-60.709 27.136-60.709 60.635s27.209 60.635 60.709 60.635c20.48 0 38.546-10.021 49.518-25.673l202.752 67.365c0 33.573 27.209 60.635 60.709 60.635s60.782-27.063 60.782-60.635c-0.073-33.499-27.209-60.709-60.782-60.709z", - "M1024 360.594l-192.073-99.547-192.146 99.547 192.146 99.621 192.073-99.621zM831.927 299.666l117.321 60.928-117.321 60.928-117.467-60.928 117.467-60.928z", - "M831.927 551.278l-105.253-54.638h-74.679l179.931 93.33 179.931-93.33h-74.679z", - "M831.927 681.106l-105.253-54.784h-74.679l179.931 93.403 179.931-93.403h-74.679z", - "M821.394 822.857c-79.36 79.067-188.782 128-309.394 128-242.030 0-438.857-196.827-438.857-438.857s196.827-438.857 438.857-438.857c97.792 0 187.904 32.549 260.974 86.894h109.861c-93.33-98.304-224.914-160.037-370.834-160.037-282.331 0-512 229.669-512 512 0 282.258 229.669 512 512 512 165.376 0 312.247-79.141 405.87-201.143h-96.475z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "VNFC" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 323, - "id": 272, - "prevSize": 16, - "code": 59673, - "name": "VNFC" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 25 - }, - { - "icon": { - "paths": [ - "M992.11 634.734l-49.591-20.773c1.097-10.167 3.072-19.968 3.072-30.354 0-10.459-1.829-20.041-3.072-30.135l49.737-20.919c26.917-11.337 39.058-44.178 27.063-73.509l-14.994-36.571c-11.922-29.403-43.447-43.959-70.363-32.549l-49.591 20.773c-9.582-12.361-20.261-23.845-32.11-34.377l22.894-49.079c12.361-26.697-0.366-59.246-28.745-72.85l-35.401-16.75c-28.16-13.531-61.147-2.926-73.435 23.771l-4.169 8.85h-122.88l-4.169-8.923c-12.434-26.697-45.349-37.303-73.509-23.771l-35.401 16.823c-8.046 3.877-14.409 9.435-19.749 15.799h-69.266l-81.993-85.797h-329.655v141.166l146.578 605.623h394.24c14.043 5.339 28.599 5.12 41.253 0h186.149c14.117 5.705 30.647 6.071 46.007-1.317l35.328-17.115c25.088-11.776 36.864-38.546 30.939-63.049l22.821-23.845-42.423-40.594c9.509-9.070 18.578-18.432 26.77-28.745l49.371 20.919c26.917 11.191 58.514-3.218 70.437-32.622l14.994-36.498c12.142-29.55-0.219-62.098-27.136-73.582zM400.384 563.127c-0.951 6.729-2.048 13.458-2.048 20.48 0 10.459 1.975 20.187 3.072 30.501l-49.664 20.773c-26.917 11.337-39.131 43.886-27.136 73.435l15.141 36.498c11.849 29.403 43.447 43.886 70.29 32.622l49.371-20.626c9.728 12.288 20.48 23.698 32.037 34.231l-22.821 49.079c-2.706 5.778-3.657 11.849-4.096 17.92h-251.611l92.306-294.912h95.159zM841.070 583.753c0 94.574-75.776 171.593-169.033 171.593-93.477 0-169.179-77.019-169.179-171.593 0-7.095 1.243-13.824 2.048-20.699h4.096v-22.674c19.017-73.801 84.48-128.366 163.109-128.366 93.184 0 168.96 76.727 168.96 171.739zM715.118 857.966h-10.094c3.218-0.512 6.583-0.512 9.728-1.024l0.366 1.024zM638.683 857.966h-10.094l0.512-1.024c3.145 0.585 6.437 0.585 9.582 1.024zM69.925 257.536h225.207l81.993 85.797h99.035l15.287 32.914c-11.703 10.533-22.382 22.016-32.11 34.377l-49.445-20.699c-26.843-11.337-58.368 3.145-70.217 32.549l-15.067 36.571c-4.242 10.313-4.535 20.846-3.145 30.939h-69.998l-78.921 252.197-102.619-421.010v-63.634z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "VIM" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 324, - "id": 271, - "prevSize": 16, - "code": 59674, - "name": "VIM" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 26 - }, - { - "icon": { - "paths": [ - "M153.161 185.125h315.465v73.143h-315.465v-73.143z", - "M153.161 331.41h315.465v73.143h-315.465v-73.143z", - "M360.009 572.562c0 27.146-22.006 49.152-49.152 49.152s-49.152-22.006-49.152-49.152c0-27.146 22.006-49.152 49.152-49.152s49.152 22.006 49.152 49.152z", - "M429.714 779.849h-237.714c-15.799 0-28.599 16.384-28.599 36.571s12.8 36.571 28.599 36.571h237.714c15.799 0 28.599-16.384 28.599-36.571s-12.8-36.571-28.599-36.571z", - "M951.589 841.143h-38.034c-40.009 0-72.411 32.402-72.411 72.485v12.288h-103.424v-377.929h104.96c5.705 34.304 34.158 60.928 70.071 60.928h38.034c40.009 0 72.411-32.402 72.411-72.411v-38.034c0-40.009-32.402-72.485-72.411-72.485h-38.034c-40.009 0-72.411 32.402-72.411 72.485v12.873h-102.546v-386.999h105.179c6.363 33.499 34.45 59.392 69.778 59.392h38.034c40.009 0 72.411-32.402 72.411-72.485v-37.961c0-40.009-32.402-72.485-72.411-72.485h-38.034c-40.009 0-72.411 32.402-72.411 72.485v14.482h-119.369v0.219h-19.822v423.424h-79.433v-406.894c0-57.637-45.568-104.521-101.669-104.521h-418.45c-56.027 0-101.595 46.885-101.595 104.521v815.031c0 57.563 45.568 104.448 101.595 104.448h418.45c56.101 0 101.669-46.885 101.669-104.521v-371.566h79.433v414.354h19.822v0.219h122.368c5.413 34.597 34.085 61.513 70.217 61.513h38.034c40.009 0 72.411-32.402 72.411-72.411v-37.961c0-40.082-32.402-72.485-72.411-72.485zM548.571 919.479c0 17.335-12.8 31.378-28.526 31.378h-418.45c-15.726 0-28.453-14.043-28.453-31.378v-814.958c0-17.335 12.727-31.378 28.453-31.378h418.45c15.726 0 28.526 14.043 28.526 31.378v814.958z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "VDU" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 325, - "id": 270, - "prevSize": 16, - "code": 59675, - "name": "VDU" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 27 - }, - { - "icon": { - "paths": [ - "M336.238 185.125h315.465v73.143h-315.465v-73.143z", - "M703.122 0h-418.45c-56.027 0-101.595 46.885-101.595 104.521v815.031c0 57.563 45.568 104.448 101.595 104.448h418.523c56.101 0 101.669-46.885 101.669-104.521v-814.958c-0.073-57.637-45.641-104.521-101.742-104.521zM731.648 919.479c0 17.262-12.8 31.378-28.526 31.378h-418.45c-15.653 0-28.453-14.043-28.453-31.378v-814.958c0-17.335 12.727-31.378 28.453-31.378h418.523c15.726 0 28.526 14.043 28.526 31.378v814.958z", - "M336.238 331.41h315.465v73.143h-315.465v-73.143z", - "M543.086 572.562c0 27.146-22.006 49.152-49.152 49.152s-49.152-22.006-49.152-49.152c0-27.146 22.006-49.152 49.152-49.152s49.152 22.006 49.152 49.152z", - "M612.791 779.849h-237.714c-15.799 0-28.599 16.384-28.599 36.571s12.8 36.571 28.599 36.571h237.714c15.799 0 28.599-16.384 28.599-36.571s-12.8-36.571-28.599-36.571z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "host" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 326, - "id": 269, - "prevSize": 16, - "code": 59676, - "name": "host" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 28 - }, - { - "icon": { - "paths": [ - "M512 0c-282.331 0-512 229.669-512 512 0 239.031 164.864 439.808 386.779 495.835 0.366 0.585 1.097 1.536 1.317 1.755l1.463-1.097c39.278 9.801 80.165 15.506 122.441 15.506 282.258 0 512-229.742 512-512 0-282.331-229.742-512-512-512zM469.358 888.832c-11.995-14.775-29.477-24.869-49.957-24.869-15.799 0-29.769 6.363-41.106 15.726-3.145-6.29-6.363-12.434-9.582-19.237 43.081-19.383 92.891-47.982 145.701-90.478 8.631 4.242 18.066 7.168 28.379 7.168 24.576 0 45.129-14.117 56.247-34.158 135.753-12.507 248.174-65.024 320.366-108.617 4.315 1.17 8.485 2.341 13.093 2.633-5.047 16.969-11.045 33.499-18.066 49.591-56.174 36.279-192.366 123.026-242.249 143.579-53.029 21.87-143.726 44.837-202.825 58.661zM82.798 420.937l4.974 5.705c0.878-0.805 64.219-52.955 183.735-90.77-17.554 46.226-30.574 95.232-35.474 145.92-3.291 34.597-3.584 68.315-1.682 101.083-1.463 0.805-2.779 1.829-4.169 2.779-70.949-47.909-123.904-101.083-152.503-133.047 1.463-10.679 2.926-21.358 5.12-31.671zM512 73.143c77.019 0 149.358 20.041 212.261 55.003-1.536 26.551-4.901 67.218-11.41 115.054-6.29 3.365-12.142 7.314-16.969 12.434-62.757-11.63-133.12-18.871-207.506-16.018-36.059 1.463-69.851 4.681-101.449 9.289-1.243-2.341-2.926-4.389-4.389-6.51 45.787-76.507 97.719-136.777 128-169.179 0.512 0 0.951-0.073 1.463-0.073zM934.107 393.435c10.533 37.303 16.53 76.434 16.677 116.955-4.901-1.17-9.582-2.926-14.775-2.926-35.986 0-65.17 29.111-65.17 65.17 0 7.022 1.902 13.531 4.023 19.822-64.585 37.23-158.427 78.921-268.873 91.355 2.56-2.926 5.193-5.413 7.826-8.338 72.119-80.603 113.737-201.509 137.801-312.174 16.969-2.267 31.525-10.679 41.691-23.406 81.774 24.503 135.241 50.761 140.8 53.541zM292.791 577.682c-1.682-29.403-1.463-59.538 1.463-90.331 4.754-49.591 18.651-97.719 37.157-143.141 24.795-0.512 45.714-14.994 56.247-35.694 32.037-4.974 65.975-8.923 102.985-10.386 67.365-2.56 131.877 4.096 190.098 14.775 2.414 11.703 7.095 22.382 14.921 30.866-22.016 104.96-59.977 219.502-125.44 292.718-4.242 4.681-8.411 8.777-12.654 13.385-4.827-1.243-9.509-2.999-14.702-2.999-25.893 0-47.762 15.36-58.295 37.23-54.857-5.851-106.203-20.992-152.942-41.765 0.146-1.536 0.951-2.926 0.951-4.608-0-26.99-16.384-50.176-39.79-60.050zM457.435 739.767c-40.667 30.208-78.775 51.566-112.128 66.633-13.019-32.841-25.088-69.413-34.523-108.91 45.056 19.602 94.062 34.67 146.651 42.277zM904.119 316.123c-25.893-10.533-59.611-22.747-99.401-34.45-5.12-17.262-16.603-31.305-32.329-39.278 3.803-28.891 6.363-54.93 8.119-76.873 51.712 40.229 94.062 91.648 123.611 150.601zM424.594 81.92c-29.038 34.889-62.683 79.872-93.915 132.389-0.146 0-0.293-0.146-0.439-0.146-34.962 0-62.83 27.575-64.512 62.098-69.632 20.773-122.88 45.861-158.72 66.926 55.369-132.389 173.787-232.082 317.586-261.266zM74.24 534.162c32.475 31.89 75.703 69.339 128.146 104.082 0.219 29.842 20.919 53.906 48.494 61.221 10.386 46.811 24.283 89.893 39.497 128.146-37.595 11.849-61.879 14.263-66.414 14.629-86.967-75.922-143.506-185.417-149.723-308.078zM288.987 889.271c7.68-2.048 15.945-4.535 24.722-7.387 4.608 9.728 9.216 18.944 13.751 27.721-13.239-6.144-26.039-12.873-38.473-20.334zM512 950.857c-10.679 0-21.065-0.878-31.525-1.536 0.366-1.024 0.366-2.048 0.658-3.072 60.709-14.19 155.648-38.107 213.504-62.098 31.086-12.873 89.6-47.177 144.896-81.115-80.384 90.478-197.266 147.822-327.534 147.822z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "NS" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 327, - "id": 268, - "prevSize": 16, - "code": 59677, - "name": "NS" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 29 - }, - { - "icon": { - "paths": [ - "M86 0v80h268v324h140v92h-208v-346h-286v874h286v-388h208v34h286v-520h-286v172h-80v-322zM580 0v80h264v590h60v-670zM690 738.578c-34.861 0.001-62.608 12.688-84 38s-32 60.25-32 106c-0 43.25 10.721 77.061 32 102s48.95 38 82 38c26.711 0 48.626-7.439 66-22s28.53-36 36-66l-48-18c-4.188 20.125-12.379 34.624-22 44-9.621 9.356-20.644 14-34 14-18.11 0-32.682-7.25-44-22s-16-39.25-16-74c-0-32.75 4.512-55.375 16-70s27.551-21.999 46-22c13.356 0.001 24.662 3.75 34 12s15.057 19.75 18 34l50-14c-5.66-21.999-14.682-38.249-26-50-19.015-19.875-43.553-29.999-74-30zM920 738.578c-19.128 0.001-34.474 3.624-48 10s-24.813 15.812-32 28c-7.187 12.188-10 24-10 38 0 21.75 6.72 40.875 22 56 10.866 10.75 31.062 20.625 58 28 20.939 5.751 34.114 9.747 40 12 8.602 3.375 14.548 7.44 18 12 3.452 4.563 6 9.503 6 16-0 10.125-5.795 18.434-14 26-8.206 7.573-19.815 12-36 12-15.28 0-27.002-5.499-36-14-8.998-8.497-15.057-21.875-18-40l-50 6c3.283 30.75 15.135 53.939 32 70 16.865 16.068 40.535 24 72 24 21.618 0 39.512-3.341 54-10 14.487-6.685 26.077-16.253 34-30s12-28.25 12-44c-0-17.375-3.379-32.188-10-44s-16.286-21.187-28-28c-11.715-6.813-29.552-13.624-54-20-24.448-6.374-39.662-12.122-46-18-4.98-4.625-8-11.496-8-18-0-7.125 2.68-11.749 8-16 8.262-6.622 19.399-10 34-10 14.148 0 24.926 3.812 32 10s11.85 15.875 14 30l50-2c-0.792-25.25-8.211-46.874-24-62-15.789-15.124-40.761-21.999-72-22zM324 742.578l90 276h54l88-276h-52l-62 204-62-204z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-cluster-vcs" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 328, - "id": 267, - "prevSize": 16, - "code": 59678, - "name": "it-cluster-vcs" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 30 - }, - { - "icon": { - "paths": [ - "M96 0c-53.411 0-96 46.841-96 106v354c0 59.159 42.589 108 96 108h832c53.411 0 96-48.841 96-108v-354c0-59.159-42.589-106-96-106h-832zM76 74h872v420h-872v-420zM128 148v132h338v-132h-338zM546 148v132h338v-132h-338zM126 326v130h338v-130h-338zM546 326v130h338v-130h-338zM68 616v322h244v-54h-180v-88h162v-54h-162v-72h174v-54h-238zM334 616l116 322h68l116-322h-70l-78 238-82-238h-70zM758 616l-124 322h68l28-74h128l28 74h70l-128-322h-70zM792 692l44 118h-86l42-118z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-diskraid-hpeva" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 329, - "id": 266, - "prevSize": 16, - "code": 59679, - "name": "it-diskraid-hpeva" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 31 - }, - { - "icon": { - "paths": [ - "M96 0c-53.411 0-96 46.841-96 106v354c0 59.159 42.589 108 96 108h832c53.411 0 96-48.841 96-108v-354c0-59.159-42.589-106-96-106zM76 74h872v420h-872zM128 148v132h338v-132zM546 148v132h338v-132zM126 326v130h338v-130zM546 326v130h338v-130zM142 625.254v56h142l-160 220v62h246v-58h-172l166-228v-52zM388 625.254v56h90v282h62v-282h90v-56zM670 625.254v338h230v-58h-170v-92h152v-56h-152v-76h164v-56z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-diskraid-zte" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 330, - "id": 265, - "prevSize": 16, - "code": 59680, - "name": "it-diskraid-zte" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 32 - }, - { - "icon": { - "paths": [ - "M68 0c-37.728 0-68 30.272-68 68v888c0 37.728 30.272 68 68 68h888c37.728 0 68-30.272 68-68v-888c0-37.728-30.272-68-68-68h-888zM242 64h104v112h352v-112h102v112h160v56h-18v176h18v490h-160v62h-102v-62h-352v62h-104v-62h-178v-490h320v-176h-320v-56h178v-112zM488 232v176h352v-176h-352zM768 480c-39.586 0-71.709 16.469-96 46s-36 70.625-36 124c-0 50.458 11.837 88.906 36 118s56.47 44 94 44c30.332 0 54.271-7.010 74-24s33.517-43 42-78l-54-20c-4.756 23.479-13.076 39.063-24 50s-24.834 18-40 18c-20.564 0-37.148-8.792-50-26s-18-47.458-18-88c-0-38.208 4.955-64.937 18-82s31.050-26 52-26c15.166 0 27.396 4.375 38 14s18.658 23.375 22 40l56-16c-6.427-25.666-17.148-44.291-30-58-21.593-23.187-49.427-36-84-36zM142 486v322h56v-142h112v142h58v-322h-58v126h-112v-126h-56zM504 486c-15.552 0-29.469 3.365-42 10s-22.995 14.407-30 26c-7.005 11.594-12.53 26.604-16 46l50 10c1.414-14 5.445-24.708 12-32s14.746-10 24-10c9.382 0 16.345 3.584 22 10s10 15.209 10 26c-0 12.688-4.289 22.344-12 30s-19.348 10.438-34 10l-6 50c9.639-3.062 19.060-4 26-4 10.539 0 18.674 4.959 26 14s10 20.542 10 36c-0 16.333-2.353 30.375-10 40s-16.818 14-28 14c-10.411 0-20.674-3.979-28-12s-10.329-20.833-12-36l-54 8c2.699 26.979 13.163 49.302 30 66s38.423 24 64 24c26.99 0 49.878-10.167 68-30s26-43.854 26-72c-0-19.396-4.297-34.292-14-48s-21.806-24.062-38-28c27.119-16.771 40-37.854 40-66-0-19.833-6.762-38.25-20-54-16.066-19.25-37.395-28-64-28z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-firewall-h3c" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 331, - "id": 264, - "prevSize": 16, - "code": 59681, - "name": "it-firewall-h3c" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 33 - }, - { - "icon": { - "paths": [ - "M136 0c-75.55 0-136 60.45-136 136v410h1024v-410c0-75.55-60.45-136-136-136h-752zM92 88h72v408h-72v-408zM232 88h142c28.247 0.001 50.12 1.312 64 4s27.042 7.469 38 16c10.958 8.532 18.694 19.812 26 34 7.305 14.189 12 30.381 12 48-0 19.103-4.99 36.050-14 52s-20.578 28.025-36 36c21.753 7.233 38.311 20.566 50 38s16 36.445 16 60c-0 18.547-2.451 36.473-10 54s-18.932 31.521-32 42c-13.069 10.479-28.844 17.589-48 20-12.013 1.484-40.058 3.624-86 4h-122v-408zM592 88h108l64 278 64-278h108v408h-68v-322l-70 322h-70l-70-322v322h-66v-408zM304 156v94h48c28.085 0.001 45.181-1.090 52-2 12.338-1.669 20.938-5.934 28-14 7.062-8.068 12-18.832 12-32-0-12.612-3.912-24.117-10-32s-13.987-12.331-26-14c-7.143-0.93-28.071 0-62 0h-42zM304 318v108h66c25.974 0 43.019-0.331 50-2 10.714-2.223 19.263-7.375 26-16s10-21.534 10-36c-0-12.241-2.805-21.468-8-30s-12.179-14.105-22-18c-9.822-3.892-31.207-6-64-6h-58zM396 594v274h94c35.375-0.256 56.75-0.976 66-2 14.75-1.626 27.937-4.941 38-12 10.062-7.066 18.187-16.186 24-28s8-25.501 8-38c-0-15.878-3-28.25-12-40s-23.25-21.136-40-26c11.875-5.37 21.062-13.248 28-24 6.937-10.746 12-23.123 12-36-0-11.872-4.375-22.438-10-32s-11.563-16.24-20-22c-8.438-5.779-19.313-10.208-30-12s-26.25-2-48-2h-110zM452 640h32c26.125 0 42.5-0.64 48 0 9.25 1.126 15.312 4.688 20 10s8 11.494 8 20c-0 8.87-2.563 16.56-8 22-5.438 5.427-14.5 8.848-24 10-5.25 0.96-18.375 0-40 0h-36v-62zM452 748h44c25.25 0 42.437 1.376 50 4s14 8.24 18 14c4 5.754 6 11.75 6 20-0 9.754-2.813 18.176-8 24-5.188 5.786-11.75 8.464-20 10-5.375 1.024-18 2-38 2h-52v-74zM0 886v2c0 75.55 60.45 136 136 136h752c75.55 0 136-60.45 136-136v-2h-1024z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-ibm-blade" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 332, - "id": 263, - "prevSize": 16, - "code": 59682, - "name": "it-other-ibm-blade" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 34 - }, - { - "icon": { - "paths": [ - "M887.994 0h-751.988c-75.59 0-136.006 60.416-136.006 136.006v751.988c0 75.543 60.416 136.006 136.006 136.006h751.988c75.543 0 136.006-60.463 136.006-136.006v-751.988c0-75.59-60.463-136.006-136.006-136.006zM405.923 688.454c-12.567 19.363-30.627 34.49-54.179 45.242-23.505 10.799-49.99 16.198-79.453 16.198-37.329 0-68.608-5.399-93.836-16.337-25.228-10.845-45.009-27.183-59.299-49.059-14.383-21.876-21.923-46.545-22.668-74.147l51.433-4.515c2.467 20.62 8.099 37.609 16.989 50.781 8.89 13.219 22.761 23.924 41.519 32.023 18.758 8.192 39.843 12.288 63.302 12.288 20.806 0 39.191-3.072 55.11-9.309 15.919-6.144 27.788-14.615 35.607-25.46 7.773-10.705 11.636-22.528 11.636-35.328 0-12.847-3.77-24.204-11.264-33.885-7.494-9.635-19.875-17.734-37.097-24.297-11.078-4.329-35.561-10.985-73.402-20.154-37.888-9.030-64.419-17.687-79.593-25.693-19.689-10.38-34.397-23.133-44.032-38.447-9.635-15.267-14.476-32.349-14.476-51.293 0-20.806 5.911-40.262 17.687-58.368 11.823-18.060 29.091-31.837 51.759-41.193 22.807-9.309 48.035-14.010 75.776-14.010 30.58 0 57.53 4.934 80.849 14.755 23.366 9.868 41.286 24.343 53.853 43.473s19.316 40.774 20.247 64.977l-52.317 3.956c-2.839-26.065-12.335-45.754-28.579-59.066-16.198-13.359-40.122-20.015-71.82-20.015-33.001 0-57.065 6.051-72.145 18.153s-22.621 26.671-22.621 43.753c0 14.801 5.353 26.996 16.012 36.538 10.519 9.588 37.888 19.409 82.292 29.417 44.311 10.054 74.752 18.851 91.229 26.298 24.017 10.985 41.705 25.088 53.155 41.984 11.45 16.989 17.129 36.538 17.129 58.647 0.047 22.016-6.237 42.636-18.804 62.092zM852.294 379.159h-223.651v127.674h193.489v48.64h-193.489v187.345h-54.505v-412.3h278.156v48.64z" - ], - "attrs": [ - { - "fill": "rgb(96, 140, 193)" - } - ], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-secfox" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [ - 3 - ] - } - }, - "attrs": [ - { - "fill": "rgb(96, 140, 193)" - } - ], - "properties": { - "order": 333, - "id": 262, - "prevSize": 16, - "code": 59683, - "name": "it-other-secfox" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 35 - }, - { - "icon": { - "paths": [ - "M136 0c-75.55 0-136 60.45-136 136v752c0 75.55 60.45 136 136 136h752c75.55 0 136-60.45 136-136v-752c0-75.55-60.45-136-136-136h-752zM322 274c50.426 0 88.513 12.744 114 38 25.487 25.257 38.721 59.837 40 102l-80 4c-3.472-23.586-10.581-41.667-22-52-11.419-10.332-29.162-13.999-52-14-23.569 0.001-42.663 4.94-56 16-8.587 7.097-12 16.103-12 28-0 10.854 3.961 20.277 12 28 10.231 9.811 34.536 19.355 74 30 39.464 10.646 69.090 22.624 88 34s33.312 26.275 44 46c10.688 19.725 16 44.986 16 74-0 26.3-7.211 51.039-20 74s-30.614 38.833-54 50c-23.386 11.167-51.104 18-86 18-50.792 0-90.777-13.178-118-40s-42.702-66.652-48-118l78-8c4.75 30.266 15.475 51.806 30 66s33.335 22.001 58 22c26.126 0.001 46.754-7.372 60-20s20-27.092 20-44c-0-10.853-4.428-20.382-10-28s-14.115-14.364-28-20c-9.501-3.756-32.2-10.398-66-20-43.484-12.315-72.461-28.049-90-46-24.665-25.257-38-55.681-38-92-0-23.378 6.398-45.648 18-66s28.167-35.354 50-46c21.833-10.645 47.123-16 78-16zM556 282h298v78h-216v102h202v78h-202v124h224v78h-306v-460z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-segw" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 334, - "id": 261, - "prevSize": 16, - "code": 59684, - "name": "it-other-segw" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 36 - }, - { - "icon": { - "paths": [ - "M136 0c-75.55 0-136 60.45-136 136v410h1024v-410c0-75.55-60.45-136-136-136h-752zM122 146h234v50l-176 218h182v54h-260v-60l168-208h-148v-54zM380 146h256v54h-96v268h-64v-268h-96v-54zM678 146h238v54h-174v72h162v54h-162v88h180v54h-244v-322zM496 576c-38.5 0-70.375 12.688-94 38s-36 60.25-36 106c-0 43.25 12.5 77.063 36 102s53.5 38 90 38c29.5-0 54.812-7.438 74-22s31.75-38 40-68l-54-16c-4.625 20.125-11.375 34.625-22 44s-23.25 14-38 14c-20 0-37.5-7.25-50-22s-18-39.25-18-74c-0-32.75 7.312-57.375 20-72s27.625-22 48-22c14.75 0 27.687 5.75 38 14s16.75 17.75 20 32l56-12c-6.25-22-15.5-38.25-28-50-21-19.875-48.375-30-82-30zM122 580v46h82v228h56v-228h80v-46h-218zM734 580l-108 274h58l24-62h110l24 62h60l-110-274h-58zM762 644l38 102h-76l38-102zM0 886v2c0 75.55 60.45 136 136 136h752c75.55 0 136-60.45 136-136v-2h-1024z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-zteatca" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 335, - "id": 260, - "prevSize": 16, - "code": 59685, - "name": "it-other-zteatca" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 37 - }, - { - "icon": { - "paths": [ - "M176 0c-97.115 0-176 78.886-176 176v672c0 97.114 78.885 176 176 176h672c97.115 0 176-78.886 176-176v-672c0-97.114-78.885-176-176-176h-672zM142 40c46.967 0 84 38.355 84 86.003 0 20.058-6.681 37.344-18 52l104 204c2.902 0 5.019-1.984 8-1.984 15.987 0 31.225 4.224 44 12l134-128c-3.301-9.203-4-19.642-4-29.997 0-47.648 37.033-86.003 84-86.003s86 38.355 86 86.003c0 0.64 0.014 1.344 0 1.984l164 76c14.938-13.197 34.634-21.997 56-21.997 46.967 0 86 40.352 86 88 0 47.642-39.033 85.997-86 85.997s-84-38.355-84-85.997c0-2.624-0.224-5.44 0-8l-160-76.006c-15.514 16.762-37.542 25.997-62 25.997-14.090 0-26.299-3.84-38-9.997l-138 132c2.086 7.475 4 15.84 4 24 0 47.642-39.033 85.997-86 85.997s-84-38.355-84-85.997c0-20.64 8.082-39.155 20-54.003l-102-201.997c-3.796 0.64-8.062 1.984-12 1.984-46.967 0-86-38.355-86-85.997 0-47.648 39.033-86.003 86-86.003zM140 636h234v50.003l-176 216h182v53.997h-260v-57.997l168-208h-148v-54.003zM398 636h256v54.003h-96v265.997h-64v-265.997h-96v-54.003zM696 636h238v54.003h-174v72h162v53.997h-162v86.003h180v53.997h-244v-320z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-zteips" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 336, - "id": 259, - "prevSize": 16, - "code": 59686, - "name": "it-other-zteips" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 38 - }, - { - "icon": { - "paths": [ - "M508 0c-82.558 0.672-166.697 21.188-244 64-247.365 137.005-336.997 448.64-200 696 112.572 203.257 342.286 298.233 558 250l84-146 29.283-49.683-47.283-92.317 52-28c-27.342-23.445-47.521-53.56-60-88l-44 24-54-98 92-50c24.687-87.31 104.927-152 200-152 50.663 0 95.87 19.753 132 50-10.596-39.485-25.3-78.624-46-116-94.189-170.064-270.372-265.479-452-264zM530 98c45.407 1.984 91.792 9.699 134 26l-66 36c-22.418-22.534-44.33-43.274-68-62zM400 112c39.131 26.349 77.86 57.629 114 94l-86 48-70-126c-0.339-0.64 0.362-1.424 0-2 13.85-5.504 27.877-10.038 42-14zM266 176c0.32 0.64 1.711 1.488 2 2l70 126-94 52c-11.828-49.536-16.086-99.133-18-146 12.612-11.942 25.674-23.568 40-34zM766 182c30.756 23.571 58.291 51.565 82 84l-118 66c-19.826-33.114-41.392-64.963-64-94l90-48c3.229-1.792 7.526-5.517 10-8zM584 286c22.436 28.877 42.268 59.046 62 92l-114 64-54-98zM146 318c3.501 27.974 7.145 55.238 14 84l-56 32c7.85-40.659 22.519-79.302 42-116zM388 394l54 98-122 66c-17.597-34.106-31.279-67.754-44-102zM192 502c12.788 34.547 26.288 69.67 44 104l-110 60c-14.57-36.442-26.168-74.317-30-112zM492 582l54 98-106 58c-24.154-28.173-46.514-57.469-68-90zM288 696c21.57 32.525 45.675 59.827 70 88l-102 58c-29.908-23.232-56.84-52.314-80-84zM596 772l70 126c-7.344 2.944-14.551 7.504-22 10-43.856-24.314-86.79-54.854-128-92zM432 862c28.391 25.472 58.222 46.435 88 66-53.331 1.024-106.52-9.274-156-28z", - "M873.145 391.853c-83.828 0-150.949 67.322-150.949 148.794 0 57.709 34.419 105.702 84.1 129.939v299.699c0 21.075 17.123 37.722 38.815 37.722h56.067c21.692 0 38.815-16.646 38.815-37.722v-299.699c49.682-24.237 84.1-72.23 84.1-129.939 0-81.472-67.121-148.794-150.949-148.794z", - "M745.671 902.592h247.663l36.421 118.976h-313.221z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-sdn-controller" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 337, - "id": 258, - "prevSize": 16, - "code": 59687, - "name": "it-sdn-controller" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 39 - }, - { - "icon": { - "paths": [ - "M0 4v424h76v-186h148v186h74v-424h-74v166h-148v-166h-76zM376 4v424h76v-160h50c34.135 0 59.998-1.945 78-6 13.246-3.282 25.178-9.863 38-20s23.678-24.237 32-42c8.321-17.763 12-39.935 12-66-0-33.788-5.565-60.665-20-82s-32.602-35.628-54-42c-13.926-4.247-44.148-6-90-6h-122zM452 76h36c27.172 0 44.999 0.070 54 2 12.227 2.51 24.018 7.96 32 18s12 24.554 12 40c-0 12.55-4.311 22.54-10 32s-11.981 17.56-22 22c-10.020 4.441-30.281 6-60 6h-42v-120zM986 406l-28 10-234 190-50-84-22-14-26-2-42 30-176 168-36 14-22-4 6-26 88-120 28-46-6-34-22-6-36 32-170 184-44 24-12-8 2-28 72-98 34-64-8-36-14-10-30 16-102 150-36 64-6 74 20 32 36 8 38-14 78-66 14 54 30 16 50 2 44-26 96-80 124-132 12-2 42 60 4 22-276 316c0 0-8.993 18.503 2 36s8 16 8 16l48-6 238-294 10-2 18 6 70 124 30 6 14-20-4-34-78-122 226-198 30-30-14-32-18-16z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-server-hpux" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 338, - "id": 257, - "prevSize": 16, - "code": 59688, - "name": "it-server-hpux" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 40 - }, - { - "icon": { - "paths": [ - "M154 0c-85.040 0-154 68.96-154 154v716c0 85.040 68.96 154 154 154h716c85.040 0 154-68.96 154-154v-716c0-85.040-68.96-154-154-154h-716zM178 122h672c26.747 0 48 28.544 48 64s-21.253 64-48 64h-672c-26.747 0-48-28.544-48-64s21.253-64 48-64zM176 344h672c26.747 0 48 28.544 48 64s-21.253 64-48 64h-672c-26.747 0-48-28.544-48-64s21.253-64 48-64zM214 578c47.25 0 85.635 14.688 114 44s42 69.792 42 122c-0 51.771-13.854 92.76-42 122s-64.896 44-112 44c-47.688 0-85.854-14.906-114-44s-42-68.958-42-120c-0-32.666 4.229-59.833 14-82 7.292-16.333 17.385-31.021 30-44s26.979-21.729 42-28c19.979-8.458 41.896-14 68-14zM832 578c40.25 0 71.656 8.354 92 26s30.979 42.542 32 72l-66 2c-2.771-16.479-8.886-28.781-18-36s-21.771-10-40-10c-18.813 0-33.354 4.271-44 12-6.854 4.959-10 11.688-10 20-0 7.584 1.583 12.604 8 18 8.167 6.854 28.5 14.563 60 22s54.906 16.052 70 24c15.094 7.948 27.468 18.219 36 32s12 31.729 12 52c-0 18.375-3.792 33.958-14 50s-25.334 28.198-44 36c-18.667 7.802-42.146 12-70 12-40.542 0-72.271-9.26-94-28s-33.771-46.125-38-82l62-6c3.791 21.146 12.406 36.083 24 46s26.312 16 46 16c20.854 0 37.427-5.177 48-14s16-18.187 16-30c-0-7.583-1.552-14.677-6-20s-12.917-10.062-24-14c-7.583-2.625-25.021-7.292-52-14-34.708-8.604-60-19.458-74-32-19.688-17.646-28-38.625-28-64 0-16.333 4.74-31.781 14-46s22.573-24.562 40-32c17.427-7.437 37.354-12 62-12zM420 584h104c39.375 0 66.041 0.792 78 4 18.375 4.813 33.604 15.886 46 32s18 36.479 18 62c-0 19.688-2.854 36.583-10 50s-16.99 24.344-28 32c-11.011 7.656-20.625 11.521-32 14-15.459 3.062-38.688 6-68 6h-42v120h-66v-320zM216 634c-26.688 0-49.667 9.698-66 28s-24 45.104-24 82c-0 36.313 9.229 63.261 26 82s38.187 28 64 28c25.812 0 45.448-9.406 62-28s26-44.812 26-82c-0-36.75-7.886-65.916-24-84s-37.313-26-64-26zM486 638v92h36c25.521 0 41.396-2.646 50-6s15.114-8.854 20-16c4.885-7.146 8-14.521 8-24-0-11.667-3.146-22.416-10-30s-15.5-12.104-26-14c-7.729-1.458-24.667-2-48-2h-30z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-storage-ops" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 339, - "id": 256, - "prevSize": 16, - "code": 59689, - "name": "it-storage-ops" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 41 - }, - { - "icon": { - "paths": [ - "M154 0c-85.040 0-154 68.96-154 154v716c0 85.040 68.96 154 154 154h716c85.040 0 154-68.96 154-154v-716c0-85.040-68.96-154-154-154h-716zM178 122h672c26.747 0 48 28.544 48 64s-21.253 64-48 64h-672c-26.747 0-48-28.544-48-64s21.253-64 48-64zM176 344h672c26.747 0 48 28.544 48 64s-21.253 64-48 64h-672c-26.747 0-48-28.544-48-64s21.253-64 48-64zM724 584c39.229 0 71.5 10.813 96 34 14.583 13.709 24.708 34.334 32 60l-64 16c-3.792-16.625-11.969-30.375-24-40s-24.792-14-42-14c-23.771 0-43.198 8.938-58 26s-24 43.792-24 82c-0 40.542 7.417 68.792 22 86s34.666 26 58 26c17.208 0 31.604-5.062 44-16s20.604-28.521 26-52l64 20c-9.625 35-25.615 61.010-48 78s-51.583 26-86 26c-42.583 0-76.583-14.906-104-44s-42-69.542-42-120c-0-53.375 14.437-94.468 42-124s63.083-44 108-44zM164 590h128c25.375 0 43.531-0.115 56 2s24.156 7.292 34 14c9.843 6.709 17.437 14.844 24 26s10 24.146 10 38c-0 15.021-3.907 29.459-12 42s-18.146 21.729-32 28c19.541 5.688 33.5 16.292 44 30s16 29.479 16 48c-0 14.583-3.219 28.219-10 42s-16.261 23.76-28 32c-11.74 8.24-24.792 14.104-42 16-10.792 1.167-38.729 1.708-80 2h-108v-320zM228 644v74h44c25.229 0 39.875-1.271 46-2 11.083-1.312 19.656-5.656 26-12s10-13.646 10-24c-0-9.916-2.531-17.802-8-24s-13.209-10.687-24-12c-6.417-0.729-25.521 0-56 0h-38zM228 770v86h60c23.333 0 37.729-0.687 44-2 9.625-1.75 17.948-5.219 24-12s10-16.625 10-28c-0-9.625-3.334-17.292-8-24s-11.177-10.937-20-14c-8.823-3.062-28.542-6-58-6h-52z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-storage-sanswitch-brocade" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 340, - "id": 255, - "prevSize": 16, - "code": 59690, - "name": "it-storage-sanswitch-brocade" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 42 - }, - { - "icon": { - "paths": [ - "M86 0c-47.477 0-86 38.076-86 84v514c0 45.924 38.523 82 86 82h234v90h-184v82h280v-172h192v172h280v-82h-184v-90h234c47.477 0 86-36.076 86-82v-514c0-45.924-38.523-84-86-84h-852zM110 108h804v454h-804v-454zM136 946v80h752v-80h-752z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "uep-moc-uca-public" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 341, - "id": 254, - "prevSize": 16, - "code": 59691, - "name": "uep-moc-uca-public" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 43 - }, - { - "icon": { - "paths": [ - "M2 262v192h96v320c-55.192 13.323-96 62.716-96 122 0 69.49 56.51 126 126 126s126-56.51 126-126c0-57.76-38.954-107.215-92-122v-320h320v320c-54.028 14.132-94 63.542-94 122 0 69.49 56.51 126 126 126s126-56.51 126-126c0-58.458-39.972-107.868-94-122v-320h320v320c-53.356 14.581-94 64.019-94 122 0 69.49 56.51 126 126 126s126-56.51 126-126c0-58.632-39.727-108.036-94-122v-320h96v-192h-1024z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "uep-topo-commongroup20x20" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 342, - "id": 253, - "prevSize": 16, - "code": 59692, - "name": "uep-topo-commongroup20x20" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 44 - }, - { - "icon": { - "paths": [ - "M741.841 94.115c0-39.983-32.256-72.239-72.099-72.239h-375.529c-39.983 0-72.239 32.256-72.239 72.239v58.508h519.82v-58.508z", - "M745.472 980.713v-2.327c0 0.465-0.093 0.884-0.186 1.164 0.093 0.372 0.186 0.745 0.186 1.164z", - "M218.345 980.713c0-0.465 0.14-0.838 0.186-1.164-0.047-0.372-0.186-0.745-0.186-1.164v2.327z", - "M840.285 212.247h-98.351v-49.105h-519.913v128.047h519.866v-29.137h25.553v24.902h10.892c-0.605 26.577-5.353 228.492-7.075 279.459-4.561 138.333-7.121 198.796-21.83 231.098-24.25 53.248-103.098 64.698-119.901 66.607v-195.072h40.169c39.796 0 72.192-32.349 72.192-72.099v-295.331h-519.866v295.284c0 39.75 32.209 72.099 72.239 72.099h40.076v283.276c0 3.724 0.605 7.075 1.583 10.473h-99.514c-9.635 0-17.361 7.354-17.873 16.803 0.512 9.356 8.239 16.803 17.873 16.803h491.055c9.495 0 17.315-7.447 17.92-16.803-0.605-9.449-8.425-16.803-17.92-16.803h-99.421c0.977-3.351 1.396-6.749 1.396-10.38v-49.105c38.121-7.447 118.551-15.453 154.065-92.346 21.225-46.173 22.295-125.719 24.948-241.478 3.072-134.004 5.958-261.911 6.423-282.484h9.495v-24.902h15.919v-49.804h-0zM693.62 320.652c9.914 0 18.060 8.052 18.060 18.060 0 9.914-8.145 18.106-18.060 18.106-10.1 0-18.106-8.192-18.106-18.106 0.047-10.007 8.052-18.060 18.106-18.060zM435.852 642.979l30.906-96.815-45.056-11.729 84.294-145.315-23.366 114.502 45.754 20.48-92.532 118.877z" - ], - "attrs": [ - { - "fill": "rgb(124, 133, 150)" - }, - { - "fill": "rgb(124, 133, 150)" - }, - { - "fill": "rgb(124, 133, 150)" - }, - { - "fill": "rgb(124, 133, 150)" - } - ], - "isMulticolor": false, - "grid": 0, - "tags": [ - "vapel_chgpile" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [ - 2, - 2, - 2, - 2 - ] - } - }, - "attrs": [ - { - "fill": "rgb(124, 133, 150)" - }, - { - "fill": "rgb(124, 133, 150)" - }, - { - "fill": "rgb(124, 133, 150)" - }, - { - "fill": "rgb(124, 133, 150)" - } - ], - "properties": { - "order": 343, - "id": 252, - "prevSize": 16, - "code": 59693, - "name": "vapel_chgpile" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 45 - }, - { - "icon": { - "paths": [ - "M792.529 781.359v2.932c-1.955 0.093-28.393 4.887-44.544 8.052-12.241 0-203.124 0.326-333.405 0.326-66.979 0-117.9-0.093-120.413-0.326-7.494-0.559-53.76-9.588-55.715-9.961l0.652-3.305c-15.407 15.22-24.948 32.489-23.924 44.963 1.722 22.714 46.685 44.823 62.883 50.223 0.931 0.419 2.7 0.791 4.841 0.977l-0.233-0.279c2.095-1.35 20.62-12.753 29.091-12.753l418.257 0.372c0.093 0.093 6.33 4.375 14.941 9.961l-1.815 2.746c13.917-1.908 24.948-4.096 31.558-6.377 40.96-14.662 41.565-52.317 41.565-52.689-0.652-9.449-10.845-22.481-23.738-34.863z", - "M749.009 741.19c-16.989-4.887-182.737-21.132-236.544-22.947-1.908-0.093-3.91-0.093-6.097-0.093-59.252 0-219.555 23.505-221.184 23.831-42.449 13.731-78.103 59.159-76.288 85.178 1.769 25.507 47.709 50.129 64.186 56.273 12.567 4.701 136.099 10.38 202.426 13.312 21.69 0.977 38.772 1.722 45.847 2.095 2.7 0.233 6.796 0.326 12.288 0.326 56.273 0 211.27-8.471 245.62-21.969 41.612-16.198 43.241-54.877 43.706-67.444 0.605-13.359-43.892-59.578-73.961-68.561zM775.959 872.262c-36.631 13.172-194.42 20.108-242.362 20.108-5.446 0-9.588-0.093-12.288-0.279-6.842-0.559-23.599-1.21-44.823-2.095-69.911-2.886-186.927-7.633-199.727-12.055-12.567-4.329-63.535-27.089-65.536-53.62-1.955-25.135 33.652-67.119 77.824-80.198 1.862-0.186 159.372-21.364 217.74-21.364 2.141 0 4.189 0.093 6.097 0.093 52.829 1.629 216.111 16.291 232.82 20.666 16.524 4.561 72.937 48.826 74.24 72.332 0.559 8.471-5.585 42.775-43.985 56.413z", - "M747.66 788.527c6.33-1.117 38.028-7.168 44.032-8.052-16.989-16.244-38.167-30.767-46.825-33.187-16.57-4.655-179.293-18.897-232.029-20.527-1.908-0.093-3.863-0.093-6.004-0.093-58.135 0-215.412 20.992-216.948 21.225-7.866 2.374-15.546 5.632-22.714 9.775 11.823 1.117 60.090 6.051 66.56 6.703 7.308 0.559 378.321 0 382.045-0.093 12.381-1.443 45.196-5.12 47.709-5.585l0.698 3.863c-3.025 0.559-46.266 5.353-48.175 5.539-10.193 0-169.658 0.372-279.412 0.372-56.972 0-100.585-0.093-103.145-0.372-7.401-0.652-68.655-6.796-69.26-6.842l0.186-1.815c-9.263 5.492-17.687 12.195-24.902 19.316 3.863 0.745 47.942 9.216 54.97 9.868 7.354 0.512 448.791-0.093 453.213-0.093z", - "M311.761 865.932c-5.073 0-16.477 6.051-23.319 10.1 33.327 3.724 131.863 7.727 188.276 10.054 21.271 0.977 37.981 1.629 44.87 2.001 2.653 0.233 6.703 0.326 12.009 0.326 44.172 0 150.807-4.934 208.617-13.079-6.935-4.468-12.335-8.145-13.871-9.309l-416.582-0.093z", - "M1016.367 742.4c-1.303-12.986-5.26-37.841-5.26-44.265 0-6.47-15.593-79.5-15.593-79.5l-10.426-24.669-28.625-27.415-40.401-26.065-32.489-14.383-14.429-10.426-8.518-14.615c6.749-0.465 58.321-4.329 64.372-8.099 6.423-4.003 10.752-5.772 10.147-7.121-0.745-1.35-4.375-20.34-9.123-24.716-4.794-4.422-38.26-10.799-43.008-10.519-4.841 0.326-8.099 0.326-8.099 0.326s-11.543 17.268-10.193 27.415c1.303 10.193 2.048 12.567 2.048 12.567l-9.402 4.655-1.21-2.001-20.852-29.975-33.792-55.994-27.415-39.052-24.809-18.292-11.683-7.82c0 0-129.117-13.731-221.044-12.288-102.54 1.722-210.851 12.847-210.851 12.847l-8.425 6.051-20.806 19.084-84.759 103.331c-5.399 7.727-10.193 13.731-14.941 19.409l-10.938-4.98c0 0 0.745-2.374 2.001-12.567 1.35-10.147-10.193-27.415-10.193-27.415s-3.351 0-8.099-0.326c-4.748-0.419-38.26 6.051-43.008 10.426-4.748 4.422-8.425 23.412-9.123 24.762s3.724 3.025 10.147 7.121c6.33 4.003 62.883 8.239 64.512 8.332-4.143 4.655-8.332 9.169-12.986 14.289-11.683 13.033-37.841 23.459-46.918 30.022-9.123 6.563-69.027 41.658-69.027 53.434 0 11.683-26.065 98.956-26.065 98.956s0 19.549-1.303 27.322c-1.303 7.866-1.303 43.008-2.56 57.344-1.303 14.476 5.167 118.598 5.167 118.598l4.608 10.985c-0.559 7.494-0.279 22.807 10.333 27.276 1.303 0.465 4.003 1.303 7.82 2.513 1.164 4.329 26.81 33.187 40.076 34.956 13.591 1.955 43.38 3.212 51.153 3.212s18.665-8.657 21.923-9.914c0.047 0 0-0.14 0-0.14 39.657 9.263 74.473 16.756 77.824 15.965 7.773-2.001 12.335-3.91 18.758-3.91 6.516 0 213.085 17.455 231.191 16.756 18.153-0.652 286.255-16.756 296.029-16.756 9.635 0 10.333 0.652 20.015 2.56 4.608 0.977 44.218-6.982 86.807-16.943-0.698 2.095-1.024 5.585 1.862 8.611 4.608 4.608 59.625-1.908 69.958-5.167 10.38-3.212 31.092-30.348 31.092-30.348l-9.216 2.234c7.447-2.42 12.847-4.608 15.034-6.191 15.546-10.985 14.336-23.971 14.336-23.971l-3.351 0.605 6.516-8.378c-0.047-0.047 6.516-144.756 5.213-157.743zM983.599 870.167c-3.91 8.657-33.745 29.929-43.38 33.373-9.681 3.444-112.035 23.040-115.433 22.854-3.584-0.326-12.521-8.099-14.057-14.569-1.583-6.516 25.321-40.96 34.444-47.709 9.123-6.703 94.72-36.538 108.218-41.705 13.545-5.167 40.401-22.854 40.401-22.854s3.537 40.215-10.193 70.609zM781.079 880.361c-37.283 14.615-198.191 22.249-247.063 22.249-5.539 0-9.728-0.093-12.614-0.279-6.982-0.465-24.111-1.164-45.754-2.234-71.215-3.165-190.511-8.751-203.636-13.498-12.753-4.841-64.652-30.208-66.7-59.671-1.955-28.020 34.257-74.705 79.313-89.228 1.908-0.279 162.49-23.971 222.022-23.971 2.188 0 4.282 0.093 6.237 0.186 53.853 1.815 220.3 18.013 237.382 23.087 30.999 9.169 77.545 55.855 76.893 72.425-0.419 13.172-2.141 53.76-46.080 70.935zM841.356 655.779c8.844-5.818 132.841-49.338 132.841-49.338s12.428 32.442 13.452 39.331c0.977 6.842-3.398 33.14-6.516 37.004-3.025 3.724-35.933 26.345-40.215 26.95-4.236 0.838-20.852-8.564-24.017-8.564-2.932 0-55.808 16.896-75.729 19.363-20.015 2.7-57.204-16.57-57.204-16.57s48.593-42.403 57.391-48.175zM288.861 408.343c17.687-11.776 42.915-24.157 60.556-26.298 0 0 56.739-9.961 143.22-12.567l-0.047-0.326c12.055-0.233 23.692-0.326 34.956-0.279 11.264-0.047 22.807 0 34.816 0.279l-0.093 0.326c86.435 2.607 143.081 12.567 143.081 12.567 17.734 2.095 43.008 14.476 60.742 26.298l52.317 59.206c0 10.705-3.677 19.875-14.476 19.875l-281.367-0.652-281.414 0.652c-10.705 0-14.476-9.123-14.476-19.875l62.185-59.206zM45.708 646.237c1.024-6.842 14.895-40.96 14.895-40.96s126.836 45.568 135.68 51.34c8.844 5.818 57.391 48.361 57.391 48.361s-37.143 19.037-57.111 16.57c-19.968-2.56-72.797-19.503-75.823-19.503-2.979 0-19.689 9.263-24.017 8.657-4.282-0.884-41.425-22.249-44.451-26.065-3.025-3.77-7.54-31.651-6.563-38.4zM33.932 801.699c0 0 26.95 17.78 40.401 22.807 13.452 5.12 99.049 34.909 108.218 41.705s36.073 41.239 34.444 47.756c-1.583 6.423-10.519 14.196-14.010 14.476-3.444 0.279-105.798-19.27-115.479-22.761-9.728-3.537-39.471-24.855-43.334-33.466-13.731-30.441-10.24-70.516-10.24-70.516z" - ], - "attrs": [ - { - "fill": "rgb(124, 133, 150)" - }, - { - "fill": "rgb(124, 133, 150)" - }, - { - "fill": "rgb(124, 133, 150)" - }, - { - "fill": "rgb(124, 133, 150)" - }, - { - "fill": "rgb(124, 133, 150)" - } - ], - "isMulticolor": false, - "grid": 0, - "tags": [ - "car" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [ - 2, - 2, - 2, - 2, - 2 - ] - } - }, - "attrs": [ - { - "fill": "rgb(124, 133, 150)" - }, - { - "fill": "rgb(124, 133, 150)" - }, - { - "fill": "rgb(124, 133, 150)" - }, - { - "fill": "rgb(124, 133, 150)" - }, - { - "fill": "rgb(124, 133, 150)" - } - ], - "properties": { - "order": 344, - "id": 251, - "prevSize": 16, - "code": 59694, - "name": "car" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 46 - }, - { - "icon": { - "paths": [ - "M286.627 163.421h521.263v128.372h-521.263v-128.372z", - "M807.889 94.208c0-40.029-32.396-72.378-72.378-72.378h-376.553c-39.936 0-72.425 32.303-72.425 72.378v58.647h521.309v-58.647z", - "M811.473 982.202c0 0.372 0.093 0.791 0.093 1.21v-2.607c0 0.605-0.093 0.977-0.093 1.396z", - "M282.996 983.412c0-0.512 0.14-0.977 0.14-1.21 0-0.372-0.14-0.791-0.14-1.35v2.56z", - "M793.46 965.26h-99.84c0.977-3.258 1.536-6.842 1.536-10.473v-284.067h40.355c39.889 0 72.378-32.396 72.378-72.471v-296.029h-521.309v296.029c0 39.983 32.442 72.378 72.425 72.378h40.308v284.16c0 3.491 0.512 7.075 1.536 10.287h-99.747c-9.635 0-17.361 7.447-17.967 16.989 0.652 9.309 8.332 16.803 17.967 16.803h492.358c9.542 0 17.315-7.494 18.013-16.803-0.698-9.449-8.425-16.803-18.013-16.803zM759.529 321.443c9.914 0 18.060 8.099 18.060 18.153 0 9.961-8.145 18.106-18.060 18.106-10.007 0-18.199-8.099-18.199-18.106 0.14-10.054 8.239-18.153 18.199-18.153zM501.062 644.655l31.046-97.094-45.242-11.543 84.48-145.873-23.273 114.828 45.708 20.527-92.719 119.156z" - ], - "attrs": [ - { - "fill": "rgb(124, 133, 150)" - }, - { - "fill": "rgb(124, 133, 150)" - }, - { - "fill": "rgb(124, 133, 150)" - }, - { - "fill": "rgb(124, 133, 150)" - }, - { - "fill": "rgb(124, 133, 150)" - } - ], - "isMulticolor": false, - "grid": 0, - "tags": [ - "chgpile" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [ - 2, - 2, - 2, - 2, - 2 - ] - } - }, - "attrs": [ - { - "fill": "rgb(124, 133, 150)" - }, - { - "fill": "rgb(124, 133, 150)" - }, - { - "fill": "rgb(124, 133, 150)" - }, - { - "fill": "rgb(124, 133, 150)" - }, - { - "fill": "rgb(124, 133, 150)" - } - ], - "properties": { - "order": 345, - "id": 250, - "prevSize": 16, - "code": 59695, - "name": "chgpile" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 47 - }, - { - "icon": { - "paths": [ - "M550.959 563.805c-9.635-1.815-28.998-2.746-58.089-2.746h-39.005v113.478h44.172c31.837 0 53.108-2.095 63.86-6.284 10.705-4.189 19.084-10.705 25.181-19.642s9.169-19.27 9.169-31.092c0-14.569-4.329-26.531-12.8-35.98-8.518-9.449-19.363-15.36-32.489-17.734z", - "M977.455 395.636h-930.909c-25.693 0-46.545 20.852-46.545 46.545v488.727c0 25.74 20.852 46.545 46.545 46.545h930.909c25.74 0 46.545-20.806 46.545-46.545v-488.727c0-25.74-20.806-46.545-46.545-46.545zM666.112 678.353c-8.844 16.71-20.294 29.929-33.932 39.471s-27.695 15.825-41.751 18.897c-19.27 3.817-47.244 5.725-83.782 5.725h-52.783v150.807h-80.71v-399.779h129.536c49.152 0 81.129 2.001 96.023 6.004 22.9 6.004 42.077 19.037 57.53 39.145s23.18 45.987 23.18 77.824c0.047 24.529-4.422 45.196-13.312 61.905z" - ], - "attrs": [ - { - "fill": "rgb(124, 133, 150)" - }, - { - "fill": "rgb(124, 133, 150)" - } - ], - "isMulticolor": false, - "grid": 0, - "tags": [ - "chgposition" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [ - 2, - 2 - ] - } - }, - "attrs": [ - { - "fill": "rgb(124, 133, 150)" - }, - { - "fill": "rgb(124, 133, 150)" - } - ], - "properties": { - "order": 346, - "id": 249, - "prevSize": 16, - "code": 59696, - "name": "chgposition" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 48 - }, - { - "icon": { - "paths": [ - "M667.741 391.913h-638.697v-138.799l638.697-11.171z", - "M995.002 439.529l-618.17-0.652-347.788-35.468h638.697z", - "M995.002 426.217l-327.261-34.304v-149.969l327.261 53.388z", - "M150.761 412.672h63.86v600.111h-63.86v-600.111z", - "M635.811 412.672h63.814v600.111h-63.814v-600.111z", - "M348.393 417.792h63.86v503.948h-63.86v-503.948z", - "M853.085 434.176h63.86v487.564h-63.86v-487.564z", - "M475.881 760.273h71.075v161.466h-71.075v-161.466z", - "M739.142 760.273h71.075v161.466h-71.075v-161.466z", - "M285.091 776.378l-24.716 23.645v160.954h17.594l26.205-23.18v-161.42z", - "M834.001 815.197l-24.716 23.599v161.001h17.641l26.159-23.18v-161.42z" - ], - "attrs": [ - { - "fill": "rgb(123, 131, 147)" - }, - { - "fill": "rgb(123, 131, 147)" - }, - { - "fill": "rgb(123, 131, 147)" - }, - { - "fill": "rgb(123, 131, 147)" - }, - { - "fill": "rgb(123, 131, 147)" - }, - { - "fill": "rgb(123, 131, 147)" - }, - { - "fill": "rgb(123, 131, 147)" - }, - { - "fill": "rgb(123, 131, 147)" - }, - { - "fill": "rgb(123, 131, 147)" - }, - { - "fill": "rgb(123, 131, 147)" - }, - { - "fill": "rgb(123, 131, 147)" - } - ], - "isMulticolor": false, - "grid": 0, - "tags": [ - "chgstation" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [ - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1 - ] - } - }, - "attrs": [ - { - "fill": "rgb(123, 131, 147)" - }, - { - "fill": "rgb(123, 131, 147)" - }, - { - "fill": "rgb(123, 131, 147)" - }, - { - "fill": "rgb(123, 131, 147)" - }, - { - "fill": "rgb(123, 131, 147)" - }, - { - "fill": "rgb(123, 131, 147)" - }, - { - "fill": "rgb(123, 131, 147)" - }, - { - "fill": "rgb(123, 131, 147)" - }, - { - "fill": "rgb(123, 131, 147)" - }, - { - "fill": "rgb(123, 131, 147)" - }, - { - "fill": "rgb(123, 131, 147)" - } - ], - "properties": { - "order": 347, - "id": 248, - "prevSize": 16, - "code": 59697, - "name": "chgstation" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 49 - }, - { - "icon": { - "paths": [ - "M128 0c-70.912 0-128 57.088-128 128v768c0 70.912 57.088 128 128 128h768c70.912 0 128-57.088 128-128v-768c0-70.912-57.088-128-128-128h-768zM266.182 72.723h490.182c43.596 0 80 32.73 80 72.736v738.906c0 40-36.404 72.723-80 72.723h-490.182c-43.596 0-78.545-32.723-78.545-72.723v-738.906c0-40.006 34.95-72.736 78.545-72.736zM667.636 189.088c-41.36 0-73.529 12.877-98.909 37.818-25.38 24.947-37.818 59.635-37.818 104.73 0 42.63 12.572 77.242 37.818 101.818 25.246 24.582 56.788 34.912 96 34.912 31.691 0 59.387-5.952 80-20.365 20.613-14.355 34.773-37.338 43.636-66.906l-58.182-14.554c-4.969 19.846-11.859 34.4-23.273 43.642s-26.336 11.635-42.182 11.635c-21.486 0-38.935-5.824-52.364-20.358-13.429-14.547-20.364-38.483-20.364-72.736-0-32.275 6.734-55.398 20.364-69.811 13.63-14.419 31.929-23.277 53.818-23.277 15.846 0 29.648 3.456 40.727 11.635 11.078 8.128 18.326 20.864 21.818 34.912l58.182-14.547c-6.715-21.683-17.117-37.869-30.545-49.453-22.56-19.59-52.605-29.094-88.727-29.094zM242.909 194.912v270.547h113.455c22.023 0 39.203-1.984 52.364-5.824 17.591-5.184 30.387-14.042 40.727-23.277 13.697-12.198 24.614-26.835 32-46.547 6.042-16.141 8.727-35.885 8.727-58.182-0-25.382-2.282-46.688-8.727-64-6.446-17.306-16.737-31.68-29.091-43.635-12.355-11.949-26.314-21.504-43.636-26.182-12.892-3.456-33.608-2.88-58.182-2.88h-107.636zM302.545 238.554h26.182c24.306 0 41.129 1.216 49.455 2.88 11.146 2.24 21.839 8.256 29.091 14.541 7.251 6.272 10.517 14.976 14.545 26.182 4.028 11.213 7.273 25.6 7.273 46.554-0 20.941-3.244 37.318-7.273 49.446-4.029 12.134-8.167 20.89-14.545 26.189-6.379 5.312-15.059 9.414-24.727 11.629-7.386 1.728-19.712 2.88-36.364 2.88h-43.636v-180.365zM272 599.283c-15.139 0-27.636 10.374-27.636 23.264 0 12.902 12.498 23.277 27.636 23.277h485.818c15.139 0 27.636-10.374 27.636-23.277 0-12.89-12.498-23.264-27.636-23.264h-485.818zM272 733.101c-15.139 0-27.636 10.381-27.636 23.27 0 12.896 12.498 23.27 27.636 23.27h485.818c15.139 0 27.636-10.374 27.636-23.27 0-12.89-12.498-23.27-27.636-23.27h-485.818z" - ], - "attrs": [ - { - "fill": "rgb(100, 155, 230)" - } - ], - "isMulticolor": false, - "grid": 0, - "tags": [ - "common_dc" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [ - 6 - ] - } - }, - "attrs": [ - { - "fill": "rgb(100, 155, 230)" - } - ], - "properties": { - "order": 348, - "id": 247, - "prevSize": 16, - "code": 59698, - "name": "common_dc" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 50 - }, - { - "icon": { - "paths": [ - "M152 0c-84.32 0-152 67.68-152 152v720c0 84.32 67.68 152 152 152h720c84.32 0 152-67.68 152-152v-720c0-84.32-67.68-152-152-152zM104 166h98l202 264v-264h94v302c-17.538-5.098-37.024-8-56-8-37.084 0-71.491 11.742-102 30l-144-186v258h-92zM456 551.336c40.013 0 73.010 10.353 98 34 14.874 13.982 26.562 33.824 34 60l-66 16c-3.868-16.956-9.729-30.18-22-40-12.272-9.825-28.448-14-46-14-24.246 0-44.902 8.593-60 26-15.098 17.401-22 45.029-22 84-0 41.357 7.125 72.45 22 90s36.2 24 60 24c17.552 0 31.356-4.844 44-16s20.496-28.050 26-52l64 20c-9.818 35.705-25.168 60.673-48 78s-50.896 28-86 28c-43.434 0-80.036-16.33-108-46-27.965-29.676-42-68.532-42-120-0-54.437 13.887-97.879 42-128s64.186-44 110-44zM646 557.336h122c27.221 0 47.72-0.168 62 4 19.188 5.652 34.315 17.573 48 32s24.86 31.105 32 52c7.14 20.901 10 47.359 10 78-0 26.924-3.307 50.515-10 70-8.181 23.796-20.828 41.27-36 56-11.454 11.156-26.514 19.754-46 26-14.577 4.63-33.606 8-58 8h-124zM712 611.336v216h50c18.445 0 31.819 0.055 40-2 10.71-2.672 18.934-7.606 26-14s13.537-17.345 18-32c4.463-14.65 6-34.714 6-60s-1.538-44.464-6-58c-4.463-13.536-11.968-24.413-20-32-8.033-7.582-17.654-13.317-30-16-9.223-2.341-27.077-2-54-2z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "common_ncd" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 349, - "id": 246, - "prevSize": 16, - "code": 59699, - "name": "common_ncd" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 51 - }, - { - "icon": { - "paths": [ - "M820 0l-40 4 12 66 40-4-12-66zM678 22c-39.083 0-68 30.966-68 70 0 39.021 28.917 70 68 70 10.831 0 22.823-1.648 32-6l48 46 36-38-48-48c2.62-7.392 4-15.725 4-24 0-39.034-32.916-70-72-70zM948 44l-90 60 30 46 90-62-30-44zM150 98c-84.081 0-150 66.045-150 150v626c0 83.962 65.919 150 150 150h628c84.081 0 150-66.038 150-150v-420c-97.009 35.552-219.538 4.931-304-82-79.068-81.382-102.955-187.984-68-274h-406zM1020 168l-66 12 4 40 66-12-4-40zM662 190l-66 12 4 38 66-10-4-40zM858 218l-38 38 38 36c-2.531 7.27-6 15.866-6 24 0 39.027 30.916 70 70 70s72-30.973 72-70c0-39.027-32.917-72-72-72-10.992 0-20.719 3.507-30 8l-34-34zM732 260l-90 62 28 44 92-58-30-48zM104 288h92l190 232v-232h88v266c-16.509-4.523-34.138-8-52-8-34.907 0-67.282 9.908-96 26l-136-164v228h-86v-348zM826 344l-40 2 10 66 40-4-10-64zM436 598c37.664 0 68.477 9.161 92 30 14.001 12.316 24.999 30.929 32 54l-62 14c-3.641-14.94-10.449-27.349-22-36-11.552-8.66-25.478-12-42-12-22.823 0-41.788 8.66-56 24-14.212 15.33-22 39.655-22 74-0 36.445 7.998 62.541 22 78 14.002 15.463 33.597 22 56 22 16.522 0 28.098-4.188 40-14 11.901-9.831 20.819-24.9 26-46l60 18c-9.241 31.46-24.508 52.727-46 68-21.493 15.263-46.956 24-80 24-40.885 0-75.677-13.848-102-40s-40-60.647-40-106c0-47.971 13.537-85.458 40-112s60.875-40 104-40zM614 604h116c25.623 0 44.558 0.525 58 4 18.062 4.961 31.118 15.279 44 28 12.881 12.707 23.279 27.585 30 46s10 40.996 10 68c-0 23.724-3.7 44.832-10 62-7.701 20.972-19.719 37.012-34 50-10.782 9.827-23.658 16.496-42 22-13.722 4.047-33.037 8-56 8h-116v-288zM676 652v190h48c17.362 0 30.299-0.237 38-2 10.081-2.381 17.349-6.368 24-12 6.651-5.637 11.799-15.088 16-28s6-31.719 6-54c0-22.286-1.8-38.074-6-50-4.201-11.936-10.439-21.316-18-28s-16.379-11.634-28-14c-8.681-2.095-26.657-2-52-2h-28z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "common_ncd_break" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 350, - "id": 245, - "prevSize": 16, - "code": 59700, - "name": "common_ncd_break" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 52 - }, - { - "icon": { - "paths": [ - "M128 0c-70.912 0-128 57.088-128 128v768c0 70.912 57.088 128 128 128h768c70.912 0 128-57.088 128-128v-768c0-70.912-57.088-128-128-128h-768zM192 146h628c26.012 0 49.542 11.019 68 26 22.109 17.944 38 42.938 38 72v380c0 53.325-48.83 96-106 96h-252c13.755 26.81 28.292 66.589 12 86-28.199 33.594-107.060 33.030-136 0-16.62-18.976-2.325-59.030 10-86h-262c-57.17 0-104-42.675-104-96v-380c0-29.062 13.891-54.056 36-72 18.458-14.981 41.988-26 68-26zM308 228c-31.688 0-57.594 4.438-80 14s-40.094 23.719-52 42c-11.906 18.282-18 39-18 60-0 32.625 12.687 59.313 38 82 18 16.125 49.375 28.938 94 40 34.687 8.625 58.25 14.625 68 18 14.25 5.063 22.281 11.156 28 18s10 16.25 10 26c-0 15.188-6.407 28.656-20 40s-35.188 16-62 16c-25.313 0-45.094-5.25-60-18s-25.125-32.812-30-60l-80 8c5.437 46.125 22.062 79.906 50 104s67.875 36 120 36c35.812 0 66-3.969 90-14s42.875-25.375 56-46c13.125-20.625 18-42.375 18-66-0-26.062-5.032-48.281-16-66s-26.594-31.781-46-42c-19.407-10.219-49.5-20.437-90-30s-65.5-19.187-76-28c-8.25-6.937-12-14.25-12-24-0-10.687 5.187-19.625 14-26 13.687-9.937 31.812-16 56-16 23.437 0 40.281 4.719 52 14s20.437 24.813 24 46l82-4c-1.313-37.875-13.844-67.312-40-90s-66.25-34-118-34zM728 228c-57.75 0-104.563 18.032-140 56s-54 91.375-54 160c-0 64.875 18.75 116.594 54 154s79.25 56 134 56c44.25 0 81.218-10.156 110-32s49.625-55 62-100l-80-26c-6.938 30.188-20.063 51.938-36 66s-33.875 22-56 22c-30 0-55.25-11.875-74-34s-28-59.875-28-112c-0-49.125 10.969-84.062 30-106s43.437-32 74-32c22.125 0 40.531 5.625 56 18s25.125 28.625 30 50l82-20c-9.375-33-23.25-58.375-42-76-31.5-29.812-71.563-44-122-44zM418 814c1.096 8.128 5.046 14.406 10 20 35.944 40.614 134.977 41.312 170 0 4.685-5.504 7.107-12.186 8-20 62.661 8.262 104 25.222 104 44 0 27.11-88.3 48-198 48s-200-20.89-200-48c0-18.778 43.339-35.738 106-44z" - ], - "attrs": [ - { - "fill": "rgb(100, 155, 230)" - } - ], - "isMulticolor": false, - "grid": 0, - "tags": [ - "common_sc" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [ - 6 - ] - } - }, - "attrs": [ - { - "fill": "rgb(100, 155, 230)" - } - ], - "properties": { - "order": 351, - "id": 244, - "prevSize": 16, - "code": 59701, - "name": "common_sc" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 53 - }, - { - "icon": { - "paths": [ - "M256 100v834h-256v90h1034v-90h-256v-252h-400v-96h400v-108h-400v-96h400v-282h-522z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 352, - "id": 243, - "prevSize": 16, - "code": 59702, - "name": "it" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 54 - }, - { - "icon": { - "paths": [ - "M132-4c-70.912 0-128 57.088-128 128v768c0 70.912 57.088 128 128 128h418l478-480v-416c0-70.912-57.088-128-128-128h-768zM516 76c203.792 0 370 166.208 370 370s-166.208 372-370 372c-203.792 0-370-168.208-370-372s166.208-370 370-370zM516 182c-147.271 0-266 116.729-266 264s118.729 266 266 266c147.271 0 266-118.729 266-266s-118.729-264-266-264zM480 286h68l128 322h-70l-28-74h-128l-26 74h-68l124-322zM514 362l-44 118h88l-44-118zM1028 640l-380 380h252c70.912 0 128-57.088 128-128v-252z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-app" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 353, - "id": 242, - "prevSize": 16, - "code": 59703, - "name": "it-app" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 55 - }, - { - "icon": { - "paths": [ - "M132-4c-70.912 0-128 57.088-128 128v768c0 70.912 57.088 128 128 128h418l478-480v-416c0-70.912-57.088-128-128-128h-768zM114 86h226c44.738 0 78.016 2.249 100 6s40.644 10.174 58 22c17.355 11.837 32.429 28.328 44 48 11.57 19.662 17.999 41.566 18 66-0.001 26.476-7.73 49.889-22 72s-33.574 38.945-58 50c34.453 10.003 61.487 27.826 80 52 18.512 24.174 27.999 53.345 28 86-0.001 25.716-6.045 49.701-18 74-11.956 24.299-29.302 43.475-50 58-20.698 14.535-45.661 24.655-76 28-19.027 2.084-65.236 1.479-138 2h-192v-564zM228 180v130h74c44.481 0 73.201-1.062 84-2 19.541-2.292 34.815-8.809 46-20 11.184-11.18 16-25.745 16-44-0-17.484-4.358-31.070-14-42s-24.974-17.687-44-20c-11.314-1.25-42.263-2-96-2h-66zM228 404v152h106c41.139 0 66.944-1.708 78-4 16.969-3.126 31.329-10.038 42-22 10.67-11.951 16-27.942 16-48-0-16.974-5.773-32.174-14-44-8.228-11.826-18.445-20.592-34-26-15.556-5.418-50.062-8-102-8h-92zM1028 640l-380 380h252c70.912 0 128-57.088 128-128v-252z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-app-bind" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 354, - "id": 241, - "prevSize": 16, - "code": 59704, - "name": "it-app-bind" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 56 - }, - { - "icon": { - "paths": [ - "M132-4c-70.912 0-128 57.088-128 128v768c0 70.912 57.088 128 128 128h418l478-480v-416c0-70.912-57.088-128-128-128h-768zM836 140c41.156 0 73.198 11.587 94 34s30.956 50.584 32 88l-66 4c-2.833-20.931-8.68-34.831-18-44s-23.361-13.999-42-14c-19.236 0.001-33.115 4.181-44 14-7.009 6.298-12 15.442-12 26-0 9.632 3.439 17.147 10 24 8.35 8.706 29.791 18.553 62 28s54.566 17.905 70 28c15.433 10.095 27.276 24.496 36 42s14 40.253 14 66c-0 23.339-5.562 43.625-16 64s-24.913 36.090-44 46c-19.087 9.91-43.519 16-72 16-41.455 0-71.782-12.198-94-36s-35.676-58.433-40-104l64-8c3.877 26.858 12.145 45.404 24 58s27.869 20 48 20c21.324 0 37.189-6.79 48-18 10.811-11.207 16-22.996 16-38-0-9.632-3.452-19.239-8-26s-10.667-10.998-22-16c-7.754-3.331-26.414-9.479-54-18-35.49-10.928-59.685-24.071-74-40-20.131-22.413-30-49.769-30-82 0-20.746 4.531-39.94 14-58s22.18-32.553 40-42c17.819-9.446 38.799-14 64-14zM60 146h120c27.288 0 49.685 2.817 64 8 19.236 7.040 34.281 20.033 48 38s24.842 39.975 32 66c7.157 26.025 10 57.843 10 96-0 33.527-3.29 61.735-10 86-8.202 29.637-18.79 53.662-34 72-11.482 13.892-26.466 26.22-46 34-14.614 5.742-35.545 8-60 8h-124v-408zM392 146h64l134 272v-272h62v408h-66l-132-266v266h-62v-408zM126 216v270h50c18.49 0 31.798-1.411 40-4 10.736-3.331 18.917-10.035 26-18s13.526-19.755 18-38c4.473-18.246 6-44.511 6-76s-1.527-55.144-6-72c-4.474-16.855-11.948-30.553-20-40s-17.623-14.665-30-18c-9.245-2.596-27.010-4-54-4h-30zM1028 640l-380 380h252c70.912 0 128-57.088 128-128v-252z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-app-dns" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 355, - "id": 240, - "prevSize": 16, - "code": 59705, - "name": "it-app-dns" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 57 - }, - { - "icon": { - "paths": [ - "M128 0c-70.912 0-128 57.088-128 128v768c0 70.912 57.088 128 128 128h418l478-480v-416c0-70.912-57.088-128-128-128h-768zM816 172c37.375 0 65.109 7.615 84 24s29.052 38.646 30 66l-60 4c-2.573-15.302-9.537-27.297-18-34s-21.073-10-38-10c-17.469 0-30.115 2.823-40 10-6.365 4.604-10 12.281-10 20-0 7.042 2.042 12.99 8 18 7.583 6.365 26.75 13.094 56 20s51.984 12.62 66 20c14.015 7.38 24.078 17.203 32 30s12 29.177 12 48c-0 17.063-4.521 33.104-14 48s-22.667 26.755-40 34c-17.334 7.245-40.136 10-66 10-37.646-0-65.823-8.599-86-26s-32.073-42.687-36-76l58-6c3.521 19.636 11.234 34.792 22 44s25.719 14 44 14c19.364 0 34.182-3.807 44-12s14-19.031 14-30c-0-7.042-1.87-13.057-6-18s-11.708-8.344-22-12c-7.042-2.437-22.948-7.771-48-14-32.229-7.989-55-16.354-68-28-18.281-16.385-28-36.437-28-60 0-15.166 5.401-30.797 14-44s19.818-23.093 36-30c16.182-6.906 37.114-10 60-10zM86 178h220v50h-160v66h150v50h-150v80h166v52h-226v-298zM364 178h90l54 202 52-202h90v298h-56v-236l-58 236h-58l-58-236v236h-56v-298zM1024 644l-380 380h252c70.912 0 128-57.088 128-128v-252z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-app-ems" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 356, - "id": 239, - "prevSize": 16, - "code": 59706, - "name": "it-app-ems" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 58 - }, - { - "icon": { - "paths": [ - "M128 0c-70.912 0-128 57.088-128 128v768c0 70.912 57.088 128 128 128h418l478-480v-416c0-70.912-57.088-128-128-128h-768zM158 148h112l66 250 66-250h110v366h-68v-288l-72 288h-72l-72-288v288h-70v-366zM586 148h272v62h-198v80h184v62h-184v100h206v62h-280v-366zM1024 644l-380 380h252c70.912 0 128-57.088 128-128v-252z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-app-mediator" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 357, - "id": 238, - "prevSize": 16, - "code": 59707, - "name": "it-app-mediator" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 59 - }, - { - "icon": { - "paths": [ - "M128 0c-70.912 0-128 57.088-128 128v768c0 70.912 57.088 128 128 128h418l478-480v-416c0-70.912-57.088-128-128-128h-768zM58 150h68l142 272v-272h64v408h-70l-140-266v266h-64v-408zM382 150h274v70h-102v338h-70v-338h-102v-70zM702 150h112c42.436 0.001 69.112 1.922 82 6 19.803 6.114 36.64 19.532 50 40s20 47.585 20 80c-0 25.007-4.299 44.959-12 62s-16.134 32.275-28 42c-11.867 9.724-25.741 14.851-38 18-16.66 3.891-40.409 6-72 6h-44v154h-70v-408zM772 220v116h38c27.505 0 44.727-3.734 54-8 9.273-4.259 16.735-10.923 22-20s8-19.96 8-32c-0-14.818-4.613-26.368-12-36s-16.684-15.592-28-18c-8.33-1.848-24.853-2-50-2h-32zM1024 644l-380 380h252c70.912 0 128-57.088 128-128v-252z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-app-ntp" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 358, - "id": 237, - "prevSize": 16, - "code": 59708, - "name": "it-app-ntp" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 60 - }, - { - "icon": { - "paths": [ - "M128 0c-70.912 0-128 57.088-128 128v768c0 70.912 57.088 128 128 128h418l478-480v-416c0-70.912-57.088-128-128-128h-768zM202 144c48.314 0 86.996 18.769 116 56 29.003 37.232 42 87.687 42 154-0 65.757-13.221 118.861-42 156s-67.835 54-116 54c-48.761 0-87.221-17.046-116-54s-44-89.169-44-154c-0-41.491 6.009-75.845 16-104 7.456-20.745 17.101-39.514 30-56s26.641-28.035 42-36c20.429-10.743 45.308-16 72-16zM388 150h262v70h-98v338h-66v-338h-98v-70zM786 150h70l132 408h-72l-28-92h-132l-26 92h-72l128-408zM202 214c-27.289 0.001-49.299 10.754-66 34-16.701 23.247-26 59.137-26 106-0 46.123 8.851 80.199 26 104 17.148 23.803 39.606 36 66 36s47.075-10.383 64-34c16.924-23.617 26-60.766 26-108-0-46.678-7.523-81.031-24-104s-38.712-33.999-66-34zM820 246l-44 150h90l-46-150zM1024 644l-380 380h252c70.912 0 128-57.088 128-128v-252z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-app-ota" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 359, - "id": 236, - "prevSize": 16, - "code": 59709, - "name": "it-app-ota" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 61 - }, - { - "icon": { - "paths": [ - "M128 0c-70.912 0-128 57.088-128 128v768c0 70.912 57.088 128 128 128h418l478-480v-416c0-70.912-57.088-128-128-128h-768zM596 144c50.805 0.001 92.27 16.028 124 50 18.886 20.085 32.556 50.396 42 88l-82 22c-4.911-24.358-14.419-43.897-30-58-15.582-14.101-35.714-21.999-58-22-30.785 0.001-54.83 13.002-74 38s-30 66.020-30 122c-0 59.399 11.113 100.787 30 126s41.781 38 72 38c22.286 0 41.946-7.975 58-24s27.012-41.6 34-76l82 30c-12.465 51.279-33.010 89.108-62 114s-65.428 38-110 38c-55.149 0-100.493-21.374-136-64s-54-102.072-54-176c-0-78.201 18.304-138.733 54-182s81.829-63.999 140-64zM32 152h330v80h-122v390h-84v-390h-124v-80zM1024 644l-380 380h252c70.912 0 128-57.088 128-128v-252z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-app-tomcat" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 360, - "id": 235, - "prevSize": 16, - "code": 59710, - "name": "it-app-tomcat" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 62 - }, - { - "icon": { - "paths": [ - "M128 0c-70.912 0-128 57.088-128 128v768c0 70.912 57.088 128 128 128h418l478-480v-416c0-70.912-57.088-128-128-128h-768zM32 152h330v80h-122v390h-84v-390h-124v-80zM416 152h126l74 320 76-320h126v470h-78v-370l-84 370h-80l-82-370v370h-78v-470zM1024 644l-380 380h252c70.912 0 128-57.088 128-128v-252z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-app-trend" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 361, - "id": 234, - "prevSize": 16, - "code": 59711, - "name": "it-app-trend" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 63 - }, - { - "icon": { - "paths": [ - "M128 0c-70.912 0-128 57.088-128 128v768c0 70.912 57.088 128 128 128h418l478-480v-416c0-70.912-57.088-128-128-128h-768zM450 144c41.156 0 73.198 11.587 94 34s30.956 50.584 32 88l-66 4c-2.833-20.931-8.68-34.831-18-44s-23.361-13.999-42-14c-19.236 0.001-35.115 4.181-46 14-7.009 6.298-10 15.442-10 26-0 9.632 3.439 17.147 10 24 8.35 8.706 29.791 18.553 62 28s54.566 17.905 70 28c15.433 10.095 27.276 24.496 36 42s14 40.253 14 66c-0 23.339-5.562 43.625-16 64s-24.913 36.090-44 46c-19.087 9.91-43.519 16-72 16-41.455 0-71.782-12.198-94-36s-35.676-58.433-40-104l64-8c3.877 26.858 12.145 45.404 24 58s27.869 20 48 20c21.324 0 37.189-6.79 48-18 10.811-11.207 16-22.996 16-38-0-9.632-3.452-19.239-8-26s-10.667-10.998-22-16c-7.754-3.331-26.414-9.479-54-18-35.49-10.928-59.685-24.071-74-40-20.131-22.413-30-49.769-30-82-0-20.746 4.531-39.94 14-58s22.18-32.553 40-42c17.819-9.446 38.799-14 64-14zM32 150h262v70h-98v338h-66v-338h-98v-70zM642 150h98l60 278 58-278h100v408h-62v-320l-64 320h-64l-66-320v320h-60v-408zM1024 644l-380 380h252c70.912 0 128-57.088 128-128v-252z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-app-tsm" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 362, - "id": 233, - "prevSize": 16, - "code": 59712, - "name": "it-app-tsm" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 64 - }, - { - "icon": { - "paths": [ - "M128 0c-70.912 0-128 57.088-128 128v768c0 70.912 57.088 128 128 128h418l478-480v-416c0-70.912-57.088-128-128-128h-768zM24 150h68l50 280 60-280h78l58 286 50-286h66l-78 408h-72l-64-304-66 304h-72l-78-408zM490 154h66v336h164v68h-230v-404zM1024 644l-380 380h252c70.912 0 128-57.088 128-128v-252z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-app-weblogic" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 363, - "id": 232, - "prevSize": 16, - "code": 59713, - "name": "it-app-weblogic" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 65 - }, - { - "icon": { - "paths": [ - "M180 2v168h156v278h172v98h-236v-308h-272v786h272v-340h236v338h274v-784h-274v72h-40v-308h-288zM740 2v168h156v852h132v-1020h-288zM336 748v278h132v-278h-132z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-cluster" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 364, - "id": 231, - "prevSize": 16, - "code": 59714, - "name": "it-cluster" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 66 - }, - { - "icon": { - "paths": [ - "M86 3.923v80.685h268.592v322.739h140.395v93.101h-208.987v-345.498h-286v873.050h286v-388.941h208.987v35.168h286v-519.277h-286v171.712h-80.395v-322.739zM580.987 3.923v80.685h262.913v589.619h60v-670.304zM426 714.022l-122 291.219h68l24-70.342h124l28 70.342h68l-124-291.219zM646 714.022v291.219h64v-291.219zM746 714.022l96 129.85-104 161.37h74l68-107.578 70 107.578h74l-106-159.296 98-131.923h-74l-60 82.266-62-82.266zM458 769.395l42 113.786h-84z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-cluster-hacmp" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 365, - "id": 230, - "prevSize": 16, - "code": 59715, - "name": "it-cluster-hacmp" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 67 - }, - { - "icon": { - "paths": [ - "M86 4v80h268v324h140v92h-208v-346h-286v874h286v-388h208v34h286v-520h-286v172h-80v-322h-328zM580 4v80h264v590h60v-670h-324zM924 704c-34.513 0-60.822 14.992-82 42-21.178 27.014-32 63.181-32 112-0 46.157 10.934 83.389 32 110s47.28 40 80 40c26.445 0 48.8-8.454 66-24 17.2-15.539 28.604-37.987 36-70l-48-20c-4.146 21.478-10.476 37.997-20 48-9.525 10.016-20.778 16-34 16-17.929 0-32.795-8.262-44-24s-18-42.918-18-80c-0-34.95 6.626-60.397 18-76 11.373-15.61 25.735-22 44-22 13.222 0 24.755 3.2 34 12 9.244 8.806 15.087 20.794 18 36l50-14c-5.603-23.475-14.795-41.462-26-54-18.825-21.21-43.858-32-74-32zM340 710v292h46v-190l100 190h50v-292h-46v196l-102-196h-48zM588 710v292h188v-48h-138v-80h124v-50h-124v-64h134v-50h-184z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-cluster-nec" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 366, - "id": 229, - "prevSize": 16, - "code": 59716, - "name": "it-cluster-nec" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 68 - }, - { - "icon": { - "paths": [ - "M86 4v80h268v324h140v92h-208v-346h-286v874h286v-388h208v34h286v-520h-286v172h-80v-322zM580 4v80h264v590h60v-670zM856.41 723.241c-21.125 0-39.063 3.6-54 10-14.938 6.374-26.063 15.814-34 28s-12 24.003-12 38c0 21.754 9.125 40.877 26 56 12 10.752 32.25 20.627 62 28 23.125 5.728 39.5 9.76 46 12 9.5 3.373 16.188 7.456 20 12 3.812 4.563 4 9.504 4 16-0 10.125-2.938 18.435-12 26s-24.125 12-42 12c-16.875 0-30.063-5.501-40-14s-16.75-21.875-20-40l-54 6c3.625 30.752 15.375 53.936 34 70s45.25 24 80 24c23.875 0 44-3.312 60-10s29.25-16.253 38-30c8.75-13.747 12-28.25 12-44-0-17.376-2.688-32.186-10-44s-19.063-21.19-32-28c-12.938-6.816-33-13.6-60-20-27-6.374-43-12.112-50-18-5.5-4.627-8-11.504-8-18-0-7.13 2.125-11.776 8-16 9.125-6.611 21.875-10 38-10 15.625 0 28.187 3.792 36 10 7.812 6.189 11.625 15.875 14 30l56-2c-0.875-25.248-10.563-46.877-28-62s-43.5-22-78-22zM423.783 717.518v276h50v-180l112 180h56v-276h-52v184l-112-184z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-cluster-ns" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 367, - "id": 228, - "prevSize": 16, - "code": 59717, - "name": "it-cluster-ns" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 69 - }, - { - "icon": { - "paths": [ - "M86 0v80h268v324h140v92h-208v-345.997h-286v873.997h286v-388h208v34.003h286v-520h-286v172h-80v-322.003zM580 0v80h264v590.003h60v-670.003zM483.586 734.24v276h56v-120h108v120h56v-276h-56v108h-108v-108zM806.959 734.24v276h56v-104h36c25.125 0 44.75-1.408 58-3.968 9.75-2.112 18.562-7.437 28-13.997 9.437-6.566 17.875-14.502 24-26.003 6.125-11.494 8-25.12 8-41.997-0-21.875-5.375-40.192-16-54.003s-22.25-23.904-38-28c-10.25-2.688-32.25-3.968-66-3.968zM862.959 782.24h26c20 0 33.375 0.704 40 1.984 9 1.6 16.125 5.504 22 12 5.875 6.502 10 14.003 10 24 0 8.128-1.812 15.853-6 21.997s-10.625 9.12-18 12c-7.375 2.88-22.125 6.016-44 6.016h-30z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-cluster-sg" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 368, - "id": 227, - "prevSize": 16, - "code": 59718, - "name": "it-cluster-sg" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 70 - }, - { - "icon": { - "paths": [ - "M514 0c-282.77 0-512 99.331-512 222s229.23 222 512 222c282.77 0 512-99.331 512-222 0-1.383 0.058-2.623 0-4-0.029-0.688 0.043-1.313 0-2-7.57-119.802-234.011-216-512-216zM0 228v138c1.854 20.829 4 44.253 4 54 0 122.669 229.23 222 512 222s512-99.331 512-222v-148c0 122.669-229.23 222-512 222s-512-99.331-512-222c0-7.227-2.795-30.407-4-44zM0 444v130c1.854 20.829 4 44.253 4 54 0 122.669 229.23 222 512 222s512-99.331 512-222v-140c0 122.669-229.23 222-512 222s-512-99.331-512-222c0-7.227-2.795-30.407-4-44zM0 652v138c0.439 3.52 2 9.51 2 12 0 122.669 229.23 222 512 222s512-99.331 512-222c0-2.24 1.483-8.499 2-12v-94c0 122.669-229.23 222-512 222s-512-99.331-512-222c0-7.227-2.795-30.407-4-44z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-database" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 369, - "id": 226, - "prevSize": 16, - "code": 59719, - "name": "it-database" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 71 - }, - { - "icon": { - "paths": [ - "M514 0c-282.77 0-512 99.331-512 222s229.23 222 512 222c282.77 0 512-99.331 512-222 0-1.383 0.058-2.623 0-4-0.029-0.688 0.043-1.313 0-2-7.57-119.802-234.011-216-512-216zM0 228v138c1.854 20.829 4 44.253 4 54 0 122.669 229.23 222 512 222s512-99.331 512-222v-148c0 122.669-229.23 222-512 222s-512-99.331-512-222c0-7.227-2.795-30.407-4-44zM0 444v130c1.854 20.829 4 44.253 4 54 0 17.453 5.225 33.711 14 50h238c-150.238-38.674-252-108.698-252-190 0-7.227-2.795-30.407-4-44zM1028 488c0 81.302-101.762 151.326-252 190h238c8.775-16.289 14-32.547 14-50v-140zM0 652v26h2c-0.917-9.45-1.289-17.978-2-26zM114 716c-21.125 0-39.063 3.6-54 10-14.938 6.374-26.063 15.814-34 28-7.938 12.192-12 26.003-12 40-0 21.747 9.125 38.87 26 54 12 10.746 32.25 20.621 62 28 23.125 5.728 37.5 9.76 44 12 9.5 3.373 16.187 7.456 20 12 3.812 4.563 6 9.498 6 16-0 10.125-4.938 20.442-14 28-9.063 7.571-22.125 10-40 10-16.875 0-30.063-3.494-40-12-9.938-8.499-16.75-21.875-20-40l-54 6c3.625 30.746 15.375 53.936 34 70s45.25 24 80 24c23.875 0 44-3.318 60-10 16-6.688 27.25-18.246 36-32 8.75-13.747 14-28.25 14-44-0-17.37-4.688-32.192-12-44-7.313-11.814-17.063-21.184-30-28-12.938-6.81-33-13.6-60-20-27-6.381-43-12.112-50-18-5.5-4.621-8-9.498-8-16-0-7.123 2.125-13.776 8-18 9.125-6.611 21.875-10 38-10 15.625 0 26.187 3.792 34 10 7.812 6.189 13.625 15.875 16 30l56-2c-0.875-25.248-10.563-44.87-28-60-17.438-15.123-43.5-24-78-24zM398 716c-41.125 0-74 13.066-98 38-24 24.941-36 61.123-36 106-0 44.998 12.062 79.123 36 104 23.937 24.87 55.75 38 98 38 21.875 0 42-4.128 60-12 22.875 15.373 36.25 23.104 38 24 8 4.365 15.625 7.504 24 10l20-40c-16-5.754-30.375-12.253-44-22 11-12.877 19-26.253 24-40 6.625-18.003 10-38.25 10-62-0-44.877-12.125-81.059-36-106-23.875-24.934-55.25-38-96-38zM904 716c-21.125 0-39.063 3.6-54 10-14.938 6.374-26.063 15.814-34 28-7.938 12.192-12 26.003-12 40 0 21.747 9.125 38.87 26 54 12 10.746 32.25 20.621 62 28 23.125 5.728 37.5 9.76 44 12 9.5 3.373 16.188 7.456 20 12 3.812 4.563 6 9.498 6 16-0 10.125-4.938 20.442-14 28-9.063 7.571-22.125 10-40 10-16.875 0-30.063-3.494-40-12-9.938-8.499-16.75-21.875-20-40l-54 6c3.625 30.746 15.375 53.936 34 70s45.25 24 80 24c23.875 0 44-3.318 60-10 16-6.688 27.25-18.246 36-32 8.75-13.747 14-28.25 14-44-0-17.37-4.688-32.192-12-44-7.313-11.814-17.063-21.184-30-28-12.938-6.81-33-13.6-60-20-27-6.381-43-12.112-50-18-5.5-4.621-10-9.498-10-16-0-7.123 4.125-13.776 10-18 9.125-6.611 21.875-10 38-10 15.625 0 26.187 3.792 34 10 7.812 6.189 13.625 15.875 16 30l56-2c-0.875-25.248-10.563-44.87-28-60-17.438-15.123-43.5-24-78-24zM574 724v272h194v-46h-138v-226h-56zM396 764c22.625 0 42 8.314 56 24 14 15.693 20 40.25 20 72-0 15.373-0.438 28.128-4 40-3.563 11.878-8.875 21.629-16 30-16.625-12.499-35.75-21.728-54-28l-14 32c11.625 4.128 22.75 10.627 34 18-7.125 2.624-14 4-22 4-21.5 0-39.938-8.064-54-24s-22-39.878-22-72c-0-31.629 7.937-56.25 22-72s31.375-24 54-24z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-database-mssql" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 370, - "id": 225, - "prevSize": 16, - "code": 59720, - "name": "it-database-mssql" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 72 - }, - { - "icon": { - "paths": [ - "M514 0c-282.77 0-512 99.331-512 222s229.23 222 512 222c282.77 0 512-99.331 512-222 0-1.383 0.058-2.623 0-4-0.029-0.688 0.043-1.313 0-2-7.57-119.802-234.011-216-512-216zM0 228v138c1.854 20.829 4 44.253 4 54 0 122.669 229.23 222 512 222s512-99.331 512-222v-148c0 122.669-229.23 222-512 222s-512-99.331-512-222c0-7.227-2.795-30.407-4-44zM0 444v130c1.854 20.829 4 44.253 4 54 0 17.453 5.225 33.711 14 50h238c-150.238-38.674-252-108.698-252-190 0-7.227-2.795-30.407-4-44zM1028 488c0 81.302-101.762 151.326-252 190h238c8.775-16.289 14-32.547 14-50zM0 652v26h2c-0.917-9.45-1.289-17.978-2-26zM140 716c-22.375 0-42.875 4.749-60 12-12.875 5.376-23.188 12.877-34 24s-19.75 23.997-26 38c-8.375 18.995-14 42-14 70-0 43.75 13.875 79.059 38 104 24.125 24.934 55.125 38 96 38 40.375 0 73.875-12.938 98-38s36-59.622 36-104c-0-44.749-11.688-80.874-36-106s-57.5-38-98-38zM714 716c-38.5 0-70.375 12.688-94 38s-36 62.253-36 108c-0 43.251 12.5 77.059 36 102 23.5 24.934 53.5 38 90 38 29.5 0 52.812-7.44 72-22 19.187-14.566 33.75-37.997 42-68l-54-16c-4.625 20.128-11.375 34.624-22 44-10.625 9.389-23.25 14.006-38 14-20 0.006-37.5-7.248-50-22-12.5-14.746-18-39.248-18-74-0-32.749 5.313-57.37 18-72 12.687-14.624 29.625-22 50-22 14.75 0 27.687 3.75 38 12s16.75 19.747 20 34l56-12c-6.25-22.003-17.5-40.25-30-52-21-19.878-46.375-30-80-30zM316 722v274h56v-114h12c12.75 0 22.125-0.048 28 2 5.875 2.061 10.75 6.432 16 12 5.25 5.562 15.75 18.63 30 40l40 60h66l-34-54c-13.25-21.376-24.188-35.629-32-44-7.813-8.378-16-14.998-28-22 24.125-3.501 41.875-12.56 54-26 12.125-13.434 18-31.373 18-52-0-16.25-4-29.373-12-42-8-12.621-18.688-23.072-32-28-13.313-4.909-34.625-6-64-6zM874 724v272h146.652v-46h-92.652v-226zM140 764c22.875 0 42.187 8.506 56 24 13.812 15.501 20 38.499 20 70-0 31.878-7.813 56.064-22 72s-31.875 24.006-54 24c-22.125 0.006-39.625-7.936-54-24s-22-40.87-22-72c-0-31.622 8-54.307 22-70 14-15.686 31.125-24 54-24zM372 768h44c22.5 0 35.5-0.64 40 0 9 1.498 17.062 6.304 22 12 4.937 5.683 6 12.746 6 22-0 8.25-2.25 14.496-6 20-3.75 5.485-7.375 9.76-14 12s-23.375 4-50 4h-42z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-database-oracle" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 371, - "id": 224, - "prevSize": 16, - "code": 59721, - "name": "it-database-oracle" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 73 - }, - { - "icon": { - "paths": [ - "M514 0c-282.77 0-512 99.331-512 222s229.23 222 512 222c282.77 0 512-99.331 512-222 0-1.383 0.058-2.623 0-4-0.029-0.688 0.043-1.313 0-2-7.57-119.802-234.011-216-512-216zM0 228v138c1.854 20.829 4 44.253 4 54 0 122.669 229.23 222 512 222s512-99.331 512-222v-148c0 122.669-229.23 222-512 222s-512-99.331-512-222c0-7.227-2.795-30.407-4-44zM0 444v130c1.854 20.829 4 44.253 4 54 0 17.453 5.225 33.711 14 50h238c-150.238-38.674-252-108.698-252-190 0-7.227-2.795-30.407-4-44zM1028 488c0 81.302-101.762 151.326-252 190h238c8.775-16.289 14-32.547 14-50v-140zM0 652v26h2c-0.917-9.45-1.289-17.978-2-26zM114 716c-21.125 0-39.063 3.6-54 10-14.938 6.374-26.063 15.814-34 28-7.938 12.192-12 26.003-12 40-0 21.747 9.125 38.87 26 54 12 10.746 32.25 20.621 62 28 23.125 5.728 37.5 9.76 44 12 9.5 3.373 16.187 7.456 20 12 3.812 4.563 6 9.498 6 16-0 10.125-4.938 20.442-14 28-9.063 7.571-22.125 10-40 10-16.875 0-30.063-3.494-40-12-9.938-8.499-16.75-21.875-20-40l-54 6c3.625 30.746 15.375 53.936 34 70s45.25 24 80 24c23.875 0 44-3.318 60-10 16-6.688 27.25-18.246 36-32 8.75-13.747 14-28.25 14-44-0-17.37-4.688-32.192-12-44-7.313-11.814-17.063-21.184-30-28-12.938-6.81-33-13.6-60-20-27-6.381-43-12.112-50-18-5.5-4.621-8-9.498-8-16-0-7.123 2.125-13.776 8-18 9.125-6.611 21.875-10 38-10 15.625 0 26.187 3.792 34 10 7.812 6.189 13.625 15.875 16 30l56-2c-0.875-25.248-10.563-44.87-28-60-17.438-15.123-43.5-24-78-24zM904 716c-21.125 0-39.063 3.6-54 10-14.938 6.374-26.063 15.814-34 28-7.938 12.192-12 26.003-12 40-0 21.747 9.125 38.87 26 54 12 10.746 32.25 20.621 62 28 23.125 5.728 37.5 9.76 44 12 9.5 3.373 16.188 7.456 20 12 3.812 4.563 6 9.498 6 16-0 10.125-2.938 20.442-12 28-9.063 7.571-24.125 10-42 10-16.875 0-30.063-3.494-40-12-9.938-8.499-16.75-21.875-20-40l-54 6c3.625 30.746 15.375 53.936 34 70s45.25 24 80 24c23.875 0 44-3.318 60-10 16-6.688 27.25-18.246 36-32 8.75-13.747 14-28.25 14-44-0-17.37-2.688-32.192-10-44-7.313-11.814-19.063-21.184-32-28-12.938-6.81-33-13.6-60-20-27-6.381-43-12.112-50-18-5.5-4.621-8-9.498-8-16-0-7.123 2.125-13.776 8-18 9.125-6.611 21.875-10 38-10 15.625 0 28.187 3.792 36 10 7.812 6.189 11.625 15.875 14 30l56-2c-0.876-25.248-10.563-44.87-28-60-17.438-15.123-43.5-24-78-24zM246 722l100 158v116h56v-114l102-160h-64l-64 108-64-108h-66zM532 722v274h92c35.375-0.256 58.75-0.976 68-2 14.75-1.626 27.937-4.934 38-12 10.062-7.059 16.188-16.186 22-28 5.812-11.808 10-25.501 10-38-0-15.872-5-28.25-14-40s-21.25-21.136-38-26c11.875-5.376 21.062-13.254 28-24 6.937-10.752 10-23.13 10-36-0-11.878-2.375-22.438-8-32s-13.563-16.24-22-22c-8.438-5.773-17.313-10.208-28-12-10.688-1.856-26.25-2-48-2h-110zM586 768h32c26.125 0 42.5-0.64 48 0 9.25 1.126 17.312 4.688 22 10s6 11.501 6 20c-0 8.877-2.563 16.56-8 22-5.437 5.434-12.5 8.848-22 10-5.25 0.96-18.375 0-40 0h-38v-62zM586 876h46c25.25 0 40.437 1.376 48 4s14 8.24 18 14c4 5.747 6 11.75 6 20-0 9.747-2.813 18.176-8 24-5.188 5.85-11.75 8.528-20 10-5.375 1.024-18 2-38 2h-52v-74z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-database-sybase" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 372, - "id": 223, - "prevSize": 16, - "code": 59722, - "name": "it-database-sybase" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 74 - }, - { - "icon": { - "paths": [ - "M514 0c-282.77 0-512 99.331-512 222s229.23 222 512 222c282.77 0 512-99.331 512-222 0-1.383 0.058-2.623 0-4-0.029-0.688 0.043-1.313 0-2-7.57-119.802-234.011-216-512-216zM576 72c40.75 0 74.125 13.059 98 38 23.875 24.934 36 59.13 36 104-0 23.75-3.375 44.003-10 62-5 13.754-13 27.123-24 40 13.625 9.747 28 18.253 44 24l-20 40c-8.375-2.496-18-7.642-26-12-1.75-0.896-13.125-8.627-36-24-18 7.872-38.125 12-60 12-42.25 0-76.063-13.123-100-38s-36-59.002-36-104c-0-44.87 12-79.066 36-104 24-24.941 56.875-38 98-38zM346 76h56v276h-56v-276zM560 120c-15.363 2.954-27.453 12.187-38 24-14.063 15.75-22 38.378-22 70-0 32.128 7.937 56.064 22 72s30.5 24 52 24c8 0 16.875-1.376 24-4-11.25-7.373-24.375-13.878-36-18l16-30c18.25 6.272 35.375 15.501 52 28 7.125-8.378 12.437-20.128 16-32 3.562-11.878 5.999-24.621 6-40-0-31.75-6-56.314-20-72s-33.375-22-56-22c-5.656 0-10.879-0.985-16 0zM0 228v138c1.854 20.829 4 44.253 4 54 0 122.669 229.23 222 512 222s512-99.331 512-222v-148c0 122.669-229.23 222-512 222s-512-99.331-512-222c0-7.227-2.795-30.407-4-44zM0 444v130c1.854 20.829 4 44.253 4 54 0 17.453 5.225 33.711 14 50h238c-150.238-38.674-252-108.698-252-190 0-7.227-2.795-30.407-4-44zM1028 488c0 81.302-101.762 151.326-252 190h238c8.775-16.289 14-32.547 14-50v-140zM0 652v26h2c-0.917-9.45-1.289-17.978-2-26zM114 716c-21.125 0-39.063 3.6-54 10-14.938 6.374-26.063 15.814-34 28-7.938 12.192-12 26.003-12 40-0 21.747 9.125 38.87 26 54 12 10.746 32.25 20.621 62 28 23.125 5.728 37.5 9.76 44 12 9.5 3.373 16.187 7.456 20 12 3.812 4.563 6 9.498 6 16-0 10.125-4.938 20.442-14 28-9.063 7.571-22.125 10-40 10-16.875 0-30.063-3.494-40-12-9.938-8.499-16.75-21.875-20-40l-54 6c3.625 30.746 15.375 53.936 34 70s45.25 24 80 24c23.875 0 44-3.318 60-10 16-6.688 27.25-18.246 36-32 8.75-13.747 14-28.25 14-44-0-17.37-4.688-32.192-12-44-7.313-11.814-17.063-21.184-30-28-12.938-6.81-33-13.6-60-20-27-6.381-43-12.112-50-18-5.5-4.621-8-9.498-8-16-0-7.123 2.125-13.776 8-18 9.125-6.611 21.875-10 38-10 15.625 0 26.187 3.792 34 10 7.812 6.189 13.625 15.875 16 30l56-2c-0.875-25.248-10.563-44.87-28-60-17.438-15.123-43.5-24-78-24zM904 716c-21.125 0-39.063 3.6-54 10-14.938 6.374-26.063 15.814-34 28-7.938 12.192-12 26.003-12 40-0 21.747 9.125 38.87 26 54 12 10.746 32.25 20.621 62 28 23.125 5.728 37.5 9.76 44 12 9.5 3.373 16.188 7.456 20 12 3.812 4.563 6 9.498 6 16-0 10.125-2.938 20.442-12 28-9.063 7.571-24.125 10-42 10-16.875 0-30.063-3.494-40-12-9.938-8.499-16.75-21.875-20-40l-54 6c3.625 30.746 15.375 53.936 34 70s45.25 24 80 24c23.875 0 44-3.318 60-10 16-6.688 27.25-18.246 36-32 8.75-13.747 14-28.25 14-44-0-17.37-2.688-32.192-10-44-7.313-11.814-19.063-21.184-32-28-12.938-6.81-33-13.6-60-20-27-6.381-43-12.112-50-18-5.5-4.621-8-9.498-8-16-0-7.123 2.125-13.776 8-18 9.125-6.611 21.875-10 38-10 15.625 0 28.187 3.792 36 10 7.812 6.189 11.625 15.875 14 30l56-2c-0.876-25.248-10.563-44.87-28-60-17.438-15.123-43.5-24-78-24zM246 722l100 158v116h56v-114l102-160h-64l-64 108-64-108h-66zM532 722v274h92c35.375-0.256 58.75-0.976 68-2 14.75-1.626 27.937-4.934 38-12 10.062-7.059 16.188-16.186 22-28 5.812-11.808 10-25.501 10-38-0-15.872-5-28.25-14-40s-21.25-21.136-38-26c11.875-5.376 21.062-13.254 28-24 6.937-10.752 10-23.13 10-36-0-11.878-2.375-22.438-8-32s-13.563-16.24-22-22c-8.438-5.773-17.313-10.208-28-12-10.688-1.856-26.25-2-48-2h-110zM586 768h32c26.125 0 42.5-0.64 48 0 9.25 1.126 17.312 4.688 22 10s6 11.501 6 20c-0 8.877-2.563 16.56-8 22-5.437 5.434-12.5 8.848-22 10-5.25 0.96-18.375 0-40 0h-38v-62zM586 876h46c25.25 0 40.437 1.376 48 4s14 8.24 18 14c4 5.747 6 11.75 6 20-0 9.747-2.813 18.176-8 24-5.188 5.85-11.75 8.528-20 10-5.375 1.024-18 2-38 2h-52v-74z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-database-sybaseiq" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 373, - "id": 222, - "prevSize": 16, - "code": 59723, - "name": "it-database-sybaseiq" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 75 - }, - { - "icon": { - "paths": [ - "M96 0c-53.411 0-96 46.841-96 106v354c0 59.159 42.589 108 96 108h832c53.411 0 96-48.841 96-108v-354c0-59.159-42.589-106-96-106zM76 74h872v420h-872zM128 148v132h338v-132zM546 148v132h338v-132zM126 326v130h338v-130zM546 326v130h338v-130zM0 605.772v320h110c21.777 0 40.987-1.48 54-6 17.395-6.125 29.775-15.063 40-26 13.544-14.438 24.696-34.667 32-58 5.975-19.104 8-41.604 8-68-0-30.041-1.626-55.51-8-76s-15.784-37.854-28-52c-12.217-14.146-26.87-22.458-44-28-12.748-4.083-31.7-6-56-6zM294 605.772v320h224v-54h-164v-88h146v-54h-146v-70h158v-54zM570 607.772v318h204v-54h-146v-264zM818 607.772v318h206v-54h-146v-264zM58 659.772h28c24.035 0 39.767-0.041 48 2 11.021 2.625 20.829 8.563 28 16s12.016 16.729 16 30c3.983 13.271 6 33.209 6 58s-2.017 43.636-6 58c-3.984 14.365-9.693 25.729-16 32s-14.439 9.375-24 12c-7.304 2.042-19.534 4-36 4h-44z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-diskraid-dellmd" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 374, - "id": 221, - "prevSize": 16, - "code": 59724, - "name": "it-diskraid-dellmd" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 76 - }, - { - "icon": { - "paths": [ - "M96 0c-53.411 0-96 46.841-96 106v354c0 59.159 42.589 108 96 108h832c53.411 0 96-48.841 96-108v-354c0-59.159-42.589-106-96-106zM76 74h872v420h-872zM128 148v132h338v-132zM546 148v132h338v-132zM126 326v130h338v-130zM546 326v130h338v-130zM854 613.898c-44.917 0-82.438 14.469-110 44s-40 72.625-40 126c-0 50.458 12.583 88.906 40 118s63.417 44 106 44c34.416 0 61.614-9.010 84-26s38.375-43 48-78l-62-20c-5.396 23.479-15.604 41.063-28 52s-26.792 16-44 16c-23.334 0-41.417-8.792-56-26s-22-45.458-22-86c-0-38.208 7.198-64.937 22-82s34.229-26 58-26c17.208 0 31.969 4.375 44 14s20.208 23.375 24 40l64-16c-7.292-25.666-19.417-44.291-34-58-24.5-23.187-54.771-36-94-36zM42 619.898v320h244v-54h-180v-86h162v-54h-162v-72h174v-54zM340 619.898v320h60v-252l64 252h62l64-252v252h60v-320h-98l-56 218-60-218z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-diskraid-emc" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 375, - "id": 220, - "prevSize": 16, - "code": 59725, - "name": "it-diskraid-emc" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 77 - }, - { - "icon": { - "paths": [ - "M96 0c-53.411 0-96 46.841-96 106v354c0 59.159 42.589 108 96 108h832c53.411 0 96-48.841 96-108v-354c0-59.159-42.589-106-96-106zM76 74h872v420h-872zM128 148v132h338v-132zM546 148v132h338v-132zM126 326v130h338v-130zM546 326v130h338v-130zM906 622.576c-22.115 0-42.363 4.563-58 12s-27.691 17.781-36 32c-8.309 14.219-12 29.667-12 46 0 25.375 8.335 46.354 26 64 12.562 12.542 34.857 23.396 66 32 24.208 6.708 41.195 11.375 48 14 9.945 3.937 16.009 8.677 20 14s6 12.417 6 20c-0 11.813-4.513 21.177-14 30s-23.288 14-42 14c-17.665 0-31.597-6.083-42-16s-18.598-24.854-22-46l-56 6c3.795 35.875 14.503 63.26 34 82s47.622 28 84 28c24.993 0 47.25-4.198 64-12s28.84-19.958 38-36c9.159-16.042 14-33.625 14-52-0-20.271-4.346-36.219-12-50s-18.457-24.052-32-32c-13.544-7.948-33.736-16.562-62-24s-46.672-15.146-54-22c-5.758-5.396-8-10.416-8-18-0-8.312 3.85-15.041 10-20 9.552-7.729 21.12-12 38-12 16.357 0 29.821 2.781 38 10s13.514 19.521 16 36l58-2c-0.916-29.458-9.746-54.354-28-72s-45.884-26-82-26zM0 628.576v320h218v-54h-160v-88h144v-54h-144v-70h156v-54zM248 628.576v54h86v266h58v-266h84v-54zM514 628.576v320h54v-208l116 208h60v-320h-54v214l-118-214z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-diskraid-eternus" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 376, - "id": 219, - "prevSize": 16, - "code": 59726, - "name": "it-diskraid-eternus" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 78 - }, - { - "icon": { - "paths": [ - "M96 0c-53.411 0-96 46.841-96 106v354c0 59.159 42.589 108 96 108h832c53.411 0 96-48.841 96-108v-354c0-59.159-42.589-106-96-106h-832zM76 74h872v420h-872v-420zM128 148v132h338v-132h-338zM546 148v132h338v-132h-338zM126 326v130h338v-130h-338zM546 326v130h338v-130h-338zM216 620v322h72v-136h134v-54h-134v-76h154v-56h-226zM728 620v208c-0 25.958-2.021 43.761-8 52-5.663 7.804-14.751 11.587-28 12-12.099-1.212-21.741-7.699-28-18-4.667-7.583-7.271-19.625-8-38h-6l-62 6c0.146 34.271 8.937 60.281 26 78 14.335 14.887 33.371 23.621 58 26 6.9 1.241 14.089 2 22 2 26.979 0 49.521-6.698 66-18s27.729-25.333 34-44c4.667-14.292 6-35.458 6-62v-204h-72z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-diskraid-fujitsu" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 377, - "id": 218, - "prevSize": 16, - "code": 59727, - "name": "it-diskraid-fujitsu" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 79 - }, - { - "icon": { - "paths": [ - "M96 0c-53.411 0-96 46.841-96 106v354c0 59.159 42.589 108 96 108h832c53.411 0 96-48.841 96-108v-354c0-59.159-42.589-106-96-106zM76 74h872v420h-872zM128 148v132h338v-132zM546 148v132h338v-132zM126 326v130h338v-130zM546 326v130h338v-130zM826 618.237c-24.646 0-46.573 4.563-64 12s-30.74 17.782-40 32c-9.26 14.219-14 29.667-14 46-0 25.375 10.312 46.354 30 64 14 12.542 39.292 23.396 74 32 26.979 6.708 44.417 11.375 52 14 11.083 3.937 17.552 8.677 22 14s8 12.417 8 20c-0 11.813-5.427 21.177-16 30s-27.146 14-48 14c-19.688 0-34.406-6.083-46-16s-20.209-24.854-24-46l-62 6c4.229 35.875 16.271 63.26 38 82s53.458 28 94 28c27.854 0 51.333-4.198 70-12s31.791-19.958 42-36c10.208-16.042 16-33.625 16-52-0-20.271-3.469-36.219-12-50s-20.906-24.052-36-32c-15.094-7.948-38.5-16.562-70-24s-51.833-15.146-60-22c-6.417-5.396-10-10.416-10-18-0-8.312 3.146-15.041 10-20 10.646-7.729 27.187-12 46-12 18.229 0 30.885 2.781 40 10s15.229 19.521 18 36l64-2c-1.021-29.458-11.657-54.354-32-72s-49.75-26-90-26zM66 624.237v320h64v-140h128v140h64v-320h-64v126h-128v-126zM390 624.237v320h122c23.916 0 41.708-1.479 56-6 19.104-6.125 34.771-15.062 46-26 14.875-14.437 25.979-32.667 34-56 6.562-19.104 10-41.604 10-68-0-30.041-3-55.51-10-76s-16.584-37.854-30-52c-13.417-14.146-31.188-24.458-50-30-14-4.083-33.313-6-60-6zM454 678.237h30c26.396 0 42.958-0.042 52 2 12.104 2.625 22.125 8.563 30 16s13.625 18.729 18 32c4.375 13.271 8 31.209 8 56s-3.625 43.636-8 58c-4.375 14.365-9.073 25.729-16 32s-15.5 11.375-26 14c-8.021 2.042-21.99 0.371-40 2h-48z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-diskraid-hds" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 378, - "id": 217, - "prevSize": 16, - "code": 59728, - "name": "it-diskraid-hds" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 80 - }, - { - "icon": { - "paths": [ - "M96 0c-53.411 0-96 46.841-96 106v354c0 59.159 42.589 108 96 108h832c53.411 0 96-48.841 96-108v-354c0-59.159-42.589-106-96-106zM76 74h872v420h-872zM128 148v132h338v-132zM546 148v132h338v-132zM126 326v130h338v-130zM546 326v130h338v-130zM732 617.593c-24.727 0-45.075 5.071-64 14-14.229 6.62-28.051 16.298-40 30s-21.093 28.757-28 46c-9.255 23.401-14 51.514-14 86-0 53.884 13.339 97.286 40 128s62.828 46 108 46c44.619 0 79.339-15.132 106-46s40-73.346 40-128c-0-55.115-13.132-99.055-40-130s-63.243-46-108-46zM262 623.593l-118 338h64l26-76h120l28 76h66l-122-338zM480 623.593v60h58v-60zM734 675.593c25.28 0 44.735 8.91 60 28s24 49.204 24 88c-0 39.258-8.321 68.371-24 88s-35.549 30-60 30c-24.451 0-44.114-10.217-60-30s-24-49.665-24-88c-0-38.95 6.528-66.678 22-86s36.72-30 62-30zM294 701.593l42 126h-84zM480 715.593v246h58v-246z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-diskraid-hpaio" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 379, - "id": 216, - "prevSize": 16, - "code": 59729, - "name": "it-diskraid-hpaio" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 81 - }, - { - "icon": { - "paths": [ - "M96 0c-53.411 0-96 46.841-96 106v354c0 59.159 42.589 108 96 108h832c53.411 0 96-48.841 96-108v-354c0-59.159-42.589-106-96-106zM76 74h872v420h-872zM128 148v132h338v-132zM546 148v132h338v-132zM126 326v130h338v-130zM546 326v130h338v-130zM516 617.593c-23.346 0-41.492 4.148-58 12s-29.228 18.99-38 34c-8.772 15.011-14 30.757-14 48-0 26.788 9.351 49.372 28 68 13.261 13.24 37.122 24.917 70 34 25.556 7.082 40.817 11.229 48 14 10.499 4.157 17.787 10.381 22 16s6 11.994 6 20c-0 12.47-3.985 22.686-14 32s-24.246 14-44 14c-18.649 0-35.018-5.531-46-16s-18.408-25.677-22-48l-58 6c4.006 37.873 15.417 66.217 36 86s49.597 30 88 30c26.385 0 48.318-3.763 66-12s32.33-21.065 42-38c9.669-16.935 14-34.602 14-54-0-21.399-3.919-39.451-12-54s-19.703-25.609-34-34c-14.298-8.39-36.162-18.148-66-26s-48.264-14.764-56-22c-6.078-5.696-10-11.994-10-20-0-8.775 3.507-16.765 10-22 10.084-8.159 24.18-12 42-12 17.267 0 31.366 4.38 40 12s13.375 20.604 16 38l62-4c-0.967-31.098-10.73-55.371-30-74s-49.873-28-88-28zM56 623.593v338h56v-266l62 266h58l60-266v266h58v-338h-92l-56 230-54-230zM782 623.593l-118 338h64l26-76h120l28 76h66l-122-338zM814 701.593l42 126h-84z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-diskraid-hpmsa" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 380, - "id": 215, - "prevSize": 16, - "code": 59730, - "name": "it-diskraid-hpmsa" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 82 - }, - { - "icon": { - "paths": [ - "M96 0c-53.411 0-96 46.841-96 106v354c0 59.159 42.589 108 96 108h832c53.411 0 96-48.841 96-108v-354c0-59.159-42.589-106-96-106zM76 74h872v420h-872zM128 148v132h338v-132zM546 148v132h338v-132zM126 326v130h338v-130zM546 326v130h338v-130zM152 625.254v338h62v-338zM272 625.254v338h104c39.094-0.307 63.777-0.769 74-2 16.3-2.001 28.879-7.302 40-16s21.576-21.451 28-36c6.423-14.549 8-28.604 8-44-0-19.552-4.054-37.528-14-52s-23.489-23.996-42-30c13.123-6.62 22.333-16.76 30-30s12-28.142 12-44c-0-14.625-3.784-26.222-10-38s-12.676-22.918-22-30c-9.325-7.082-20.189-11.768-32-14s-29.964-2-54-2zM578 625.254v338h56v-266l62 266h58l60-266v266h58v-338h-92l-56 230-54-230zM334 681.254h34c28.871 0 47.922-0.769 54 0 10.222 1.386 16.82 5.457 22 12s8 15.531 8 26c-0 10.931-1.991 19.303-8 26s-15.501 10.615-26 12c-5.802 0.769-20.102 2-44 2h-40zM334 815.254h50c27.904 0 45.642 2.767 54 6s13.579 6.918 18 14c4.42 7.082 8 15.839 8 26-0 12.009-4.267 22.841-10 30s-12.883 10.153-22 12c-5.94 1.386-19.898 2-42 2h-56z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-diskraid-ibm" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 381, - "id": 214, - "prevSize": 16, - "code": 59731, - "name": "it-diskraid-ibm" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 83 - }, - { - "icon": { - "paths": [ - "M96 0c-53.411 0-96 46.841-96 106v354c0 59.159 42.589 108 96 108h832c53.411 0 96-48.841 96-108v-354c0-59.159-42.589-106-96-106zM76 74h872v420h-872zM128 148v132h338v-132zM546 148v132h338v-132zM126 326v130h338v-130zM546 326v130h338v-130zM338 610.576c-23.346 0-43.492 4.148-60 12s-29.228 18.99-38 34c-8.772 15.011-12 30.757-12 48-0 26.788 9.351 49.372 28 68 13.261 13.24 35.122 24.917 68 34 25.556 7.082 42.817 11.229 50 14 10.499 4.157 17.787 10.38 22 16s6 11.994 6 20c-0 12.47-5.985 22.686-16 32s-24.246 14-44 14c-18.649 0-33.018-5.531-44-16s-18.408-25.677-22-48l-60 6c4.006 37.873 17.417 66.217 38 86s49.597 30 88 30c26.385 0 48.318-3.763 66-12s30.33-21.065 40-38c9.67-16.935 16-34.602 16-54-0-21.399-3.919-39.451-12-54s-19.703-25.609-34-34c-14.298-8.39-36.162-18.148-66-26s-50.264-14.764-58-22c-6.078-5.696-8-11.994-8-20-0-8.775 3.507-16.765 10-22 10.084-8.159 24.18-12 42-12 17.267 0 29.366 4.38 38 12s15.375 20.604 18 38l60-4c-0.967-31.098-10.73-55.371-30-74s-47.873-28-86-28zM514 616.576v338h58v-266l60 266h58l60-266v266h58v-338h-92l-54 230-56-230z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-diskraid-ibmsm" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 382, - "id": 213, - "prevSize": 16, - "code": 59732, - "name": "it-diskraid-ibmsm" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 84 - }, - { - "icon": { - "paths": [ - "M545.978 325.073h338.060v129.629h-338.060v-129.629z", - "M545.978 147.596h338.060v131.631h-338.060v-131.631z", - "M126.045 325.073h337.967v129.629h-337.967v-129.629z", - "M128.047 147.596h337.967v131.631h-337.967v-131.631z", - "M928.023 0h-832c-53.434 0-96.023 46.732-96.023 105.705v353.001c0 58.973 42.589 107.706 96.023 107.706h832.047c53.341 0 95.977-48.733 95.977-107.706v-353.001c-0.047-58.973-42.636-105.705-96.023-105.705zM948.038 492.637h-872.029v-418.863h872.029v418.863z", - "M326.051 844.102c-7.68 22.481-13.405 39.657-17.036 51.293-3.212-10.519-8.332-26.298-15.267-47.383l-75.916-226.444h-63.907v319.814h40.913v-272.244l92.719 272.244h38.353l93.091-267.636v267.636h40.96v-319.814h-57.065l-76.847 222.534z", - "M838.982 772.934c-12.753-5.818-36.399-12.614-70.889-20.387-34.444-7.82-55.808-15.407-63.953-22.807-8.378-7.401-12.521-16.849-12.521-28.346 0-13.219 5.818-24.529 17.594-33.932 11.729-9.402 30.394-14.103 56.087-14.103 24.623 0 43.241 5.167 55.855 15.453 12.66 10.38 20.061 25.6 22.202 45.894l40.774-3.119c-0.791-18.665-5.958-35.561-15.732-50.362-9.821-14.801-23.785-26.065-41.937-33.745-18.153-7.587-39.098-11.404-62.883-11.404-21.597 0-41.239 3.631-58.833 10.845-17.641 7.261-31.139 17.92-40.262 31.977-9.216 14.010-13.777 29.091-13.777 45.335 0 14.615 3.77 27.927 11.217 39.75 7.494 11.823 18.944 21.783 34.211 29.789 11.823 6.237 32.396 12.893 61.952 19.968 29.463 7.028 48.454 12.288 57.111 15.593 13.405 5.12 23.040 11.404 28.858 18.851 5.818 7.494 8.751 16.291 8.751 26.298 0 9.914-2.979 18.991-9.030 27.369-6.097 8.332-15.313 14.941-27.695 19.735-12.428 4.841-26.717 7.168-42.915 7.168-18.246 0-34.583-3.119-49.199-9.449-14.615-6.284-25.414-14.569-32.256-24.855-6.935-10.24-11.311-23.366-13.219-39.331l-39.983 3.491c0.559 21.318 6.377 40.495 17.594 57.437 11.124 16.943 26.438 29.603 46.127 37.981 19.596 8.471 43.892 12.66 72.89 12.66 22.993 0 43.567-4.236 61.812-12.614 18.339-8.378 32.349-20.061 42.124-35.095s14.662-31.046 14.662-48.035c0-17.175-4.515-32.396-13.359-45.521-8.844-13.033-22.668-23.831-41.379-32.489z" - ], - "attrs": [ - { - "fill": "rgb(100, 148, 206)" - }, - { - "fill": "rgb(100, 148, 206)" - }, - { - "fill": "rgb(100, 148, 206)" - }, - { - "fill": "rgb(100, 148, 206)" - }, - { - "fill": "rgb(100, 148, 206)" - }, - { - "fill": "rgb(100, 148, 206)" - }, - { - "fill": "rgb(100, 148, 206)" - } - ], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-diskraid-macrosan" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [ - 4, - 4, - 4, - 4, - 4, - 4, - 4 - ] - } - }, - "attrs": [ - { - "fill": "rgb(100, 148, 206)" - }, - { - "fill": "rgb(100, 148, 206)" - }, - { - "fill": "rgb(100, 148, 206)" - }, - { - "fill": "rgb(100, 148, 206)" - }, - { - "fill": "rgb(100, 148, 206)" - }, - { - "fill": "rgb(100, 148, 206)" - }, - { - "fill": "rgb(100, 148, 206)" - } - ], - "properties": { - "order": 383, - "id": 212, - "prevSize": 16, - "code": 59733, - "name": "it-diskraid-macrosan" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 85 - }, - { - "icon": { - "paths": [ - "M96 0c-53.411 0-96 46.841-96 106v354c0 59.159 42.589 108 96 108h832c53.411 0 96-48.841 96-108v-354c0-59.159-42.589-106-96-106zM76 74h872v420h-872zM128 148v132h338v-132zM546 148v132h338v-132zM126 326v130h338v-130zM546 326v130h338v-130zM222 616.576v338h56v-220l124 220h60v-338h-56v226l-124-226zM616 616.576l-118 338h64l26-76h120l28 76h66l-122-338zM648 694.576l42 126h-84z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-diskraid-netapp" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 384, - "id": 211, - "prevSize": 16, - "code": 59734, - "name": "it-diskraid-netapp" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 86 - }, - { - "icon": { - "paths": [ - "M96 0c-53.411 0-96 46.841-96 106v354c0 59.159 42.589 108 96 108h832c53.411 0 96-48.841 96-108v-354c0-59.159-42.589-106-96-106zM76 74h872v420h-872zM128 148v132h338v-132zM546 148v132h338v-132zM126 326v130h338v-130zM546 326v130h338v-130zM210 614.915c-23.346 0-43.492 4.148-60 12s-29.228 18.99-38 34c-8.772 15.011-12 30.757-12 48-0 26.788 9.351 49.372 28 68 13.261 13.24 35.122 24.917 68 34 25.556 7.082 42.817 11.229 50 14 10.499 4.157 17.787 10.38 22 16s6 11.994 6 20c-0 12.47-5.985 22.686-16 32s-24.246 14-44 14c-18.649 0-33.018-5.531-44-16s-18.408-25.677-22-48l-60 6c4.006 37.873 17.417 66.217 38 86s49.597 30 88 30c26.385 0 48.318-3.763 66-12s30.33-21.065 40-38c9.67-16.935 16-34.602 16-54-0-21.399-3.919-39.451-12-54s-19.703-25.609-34-34c-14.298-8.39-36.162-18.148-66-26s-48.264-14.764-56-22c-6.078-5.696-10-11.994-10-20-0-8.775 3.507-16.765 10-22 10.084-8.159 24.18-12 42-12 17.267 0 29.366 4.38 38 12s15.375 20.604 18 38l60-4c-0.967-31.098-10.73-55.371-30-74s-47.873-28-86-28zM386 620.915v180c0 37.873 1.994 66.602 6 86 2.763 13.086 9.297 26.069 18 38s21.012 20.533 36 28c14.988 7.467 36.99 12 66 12 24.036 0 43.081-3.149 58-10s27.090-16.453 36-28c8.91-11.547 14.684-25.219 18-42s6-45.356 6-86v-178h-62v186c0 26.788-0.204 46.454-2 58s-7.159 22.071-16 30c-8.841 7.928-22.594 12-40 12-17.13 0-30.123-5.61-40-14s-17.375-18.144-20-32c-1.52-8.621-2-28.903-2-58v-182zM694 620.915v338h58v-220l122 220h62v-338h-58v226l-124-226z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-diskraid-sun" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 385, - "id": 210, - "prevSize": 16, - "code": 59735, - "name": "it-diskraid-sun" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 87 - }, - { - "icon": { - "paths": [ - "M0 0v176h242v-176h-242zM346 0v176h352v-176h-352zM800 0v176h224v-176h-224zM30 232v176h354v-176h-354zM488 232v176h352v-176h-352zM942 232v176h82v-176h-82zM0 462v178h256v-178h-256zM366 462v178h352v-178h-352zM822 462v178h202v-178h-202zM30 702v176h354v-176h-354zM488 702v176h352v-176h-352zM942 702v176h82v-176h-82zM0 934v90h242v-90h-242zM346 934v90h352v-90h-352zM800 934v90h224v-90h-224z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-firewall" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 386, - "id": 209, - "prevSize": 16, - "code": 59736, - "name": "it-firewall" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 88 - }, - { - "icon": { - "paths": [ - "M68 0c-37.728 0-68 30.272-68 68v888c0 37.728 30.272 68 68 68h888c37.728 0 68-30.272 68-68v-888c0-37.728-30.272-68-68-68h-888zM242 64h104v112h352v-112h102v112h160v56h-18v176h18v490h-160v62h-102v-62h-352v62h-104v-62h-178v-490h320v-176h-320v-56h178v-112zM488 232v176h352v-176h-352zM380 478c-44.917 0-82.438 14.47-110 44s-40 72.624-40 126c0 50.458 12.583 88.906 40 118s63.417 44 106 44c34.417 0 61.614-9.008 84-26s38.375-42.998 48-78l-62-20c-5.396 23.482-13.604 41.062-26 52-12.396 10.963-26.792 16-44 16-23.333 0-43.417-8.79-58-26s-22-45.456-22-86c-0-38.208 7.198-64.938 22-82s34.229-26 58-26c17.208 0 31.969 4.374 44 14s20.208 23.373 24 40l64-16c-7.292-25.67-17.417-44.291-32-58-24.5-23.187-56.771-36-96-36zM564 484v320h66v-120h42c29.312 0 50.541-2.928 66-6 11.375-2.477 22.989-6.346 34-14 11.010-7.661 20.854-18.586 28-32 7.146-13.421 10-30.314 10-50-0-25.523-5.604-45.885-18-62s-27.625-27.2-46-32c-11.959-3.2-38.625-4-78-4h-104zM630 538h30c23.333 0 40.271 0.531 48 2 10.5 1.901 19.146 6.416 26 14s10 18.333 10 30c-0 9.478-3.115 16.858-8 24-4.886 7.149-11.396 12.672-20 16-8.604 3.392-26.479 6-52 6h-34v-92z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-firewall-checkpoint" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 387, - "id": 208, - "prevSize": 16, - "code": 59737, - "name": "it-firewall-checkpoint" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 89 - }, - { - "icon": { - "paths": [ - "M68 0c-37.964 0-68 30.272-68 68v888c0 37.728 30.036 68 68 68h894c37.964 0 68-30.272 68-68v-888c0-37.728-30.036-68-68-68h-894zM244 64h104v112h354v-112h102v112h162v56h-18v176h18v490h-162v62h-102v-62h-354v62h-104v-62h-180v-490h322v-176h-322v-56h180v-112zM492 232v176h354v-176h-354zM340 492c-44.917 0-82.438 14.47-110 44s-40 72.624-40 126c0 50.458 12.583 88.906 40 118s63.417 44 106 44c34.416 0 61.614-9.008 84-26s38.375-42.998 48-78l-62-20c-5.396 23.482-13.604 41.062-26 52-12.396 10.963-26.792 16-44 16-23.334 0-43.417-8.79-58-26s-22-45.456-22-86c-0-38.208 7.198-64.938 22-82s34.229-26 58-26c17.208 0 31.969 4.355 44 14 12.031 9.626 20.208 23.373 24 40l64-16c-7.292-25.67-17.417-44.291-32-58-24.5-23.187-56.771-36-96-36zM714 492c-44.917 0-82.438 14.47-110 44s-40 72.624-40 126c0 50.458 12.583 88.906 40 118s63.417 44 106 44c34.417 0 61.614-9.008 84-26s38.375-42.998 48-78l-62-20c-5.396 23.482-15.604 41.062-28 52-12.396 10.963-26.792 16-44 16-23.333 0-41.417-8.79-56-26s-22-45.456-22-86c-0-38.208 7.198-64.938 22-82s34.229-26 58-26c17.208 0 31.969 4.355 44 14 12.031 9.626 20.208 23.373 24 40l64-16c-7.292-25.67-19.417-44.291-34-58-24.5-23.187-54.771-36-94-36z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-firewall-cisco" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 388, - "id": 207, - "prevSize": 16, - "code": 59738, - "name": "it-firewall-cisco" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 90 - }, - { - "icon": { - "paths": [ - "M68 0c-37.728 0-68 30.272-68 68v888c0 37.728 30.272 68 68 68h888c37.728 0 68-30.272 68-68v-888c0-37.728-30.272-68-68-68h-888zM242 64h104v112h352v-112h102v112h160v56h-18v176h18v490h-160v62h-102v-62h-352v62h-104v-62h-178v-490h320v-176h-320v-56h178v-112zM488 232v176h352v-176h-352zM266 478c-44.917 0-82.438 14.47-110 44s-40 72.624-40 126c0 50.458 12.583 88.906 40 118s63.417 44 106 44c34.417 0 61.614-9.008 84-26s38.375-42.998 48-78l-62-20c-5.396 23.482-13.604 41.062-26 52-12.396 10.963-26.792 16-44 16-23.333 0-43.417-8.79-58-26s-22-45.456-22-86c-0-38.208 7.198-64.938 22-82s34.229-26 58-26c17.208 0 31.969 4.374 44 14s20.208 23.373 24 40l64-16c-7.292-25.67-17.417-44.291-32-58-24.5-23.187-56.771-36-96-36zM768 478c-44.917 0-82.438 14.47-110 44s-40 72.624-40 126c0 50.458 12.583 88.906 40 118s63.417 44 106 44c34.417 0 61.614-9.008 84-26s38.375-42.998 48-78l-62-20c-5.396 23.482-13.604 41.062-26 52-12.396 10.963-26.792 16-44 16-23.333 0-43.417-8.79-58-26s-22-45.456-22-86c-0-38.208 7.198-64.938 22-82s34.229-26 58-26c17.208 0 31.969 4.374 44 14s20.208 23.373 24 40l64-16c-7.292-25.67-17.417-44.291-32-58-24.5-23.187-56.771-36-96-36zM420 594v96h150v-96h-150z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-firewall-cisco2" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 389, - "id": 206, - "prevSize": 16, - "code": 59739, - "name": "it-firewall-cisco2" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 91 - }, - { - "icon": { - "paths": [ - "M68 0c-37.964 0-68 30.272-68 68v888c0 37.728 30.036 68 68 68h894c37.964 0 68-30.272 68-68v-888c0-37.728-30.036-68-68-68h-894zM244 64h104v112h354v-112h102v112h162v56h-18v176h18v490h-162v62h-102v-62h-354v62h-104v-62h-180v-490h322v-176h-322v-56h180v-112zM492 232v176h354v-176h-354zM396 496v206c-0 25.958-4.021 43.76-10 52s-15.563 12-30 12c-14.292 0-25-6.479-32-18-4.667-7.583-7.271-19.625-8-38l-60 6c0.146 34.271 8.937 60.281 26 78s40.354 28 72 28c26.979 0 49.521-6.698 66-18s27.729-25.333 34-44c4.666-14.292 6-35.458 6-62v-202h-64zM530 496v320h64v-122h42c29.312 0 52.542-0.938 68-4 11.375-2.479 22.989-8.344 34-16s18.854-16.583 26-30c7.146-13.416 12-30.312 12-50-0-25.521-7.604-45.885-20-62s-27.625-27.187-46-32c-11.959-3.208-36.625-4-76-4h-104zM594 550h32c23.333 0 38.271 0.542 46 2 10.5 1.896 19.146 6.417 26 14s10 16.334 10 28c-0 9.479-1.115 18.854-6 26s-13.396 12.646-22 16c-8.604 3.354-24.479 4-50 4h-36v-90z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-firewall-juniper" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 390, - "id": 205, - "prevSize": 16, - "code": 59740, - "name": "it-firewall-juniper" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 92 - }, - { - "icon": { - "paths": [ - "M68 0c-37.728 0-68 30.272-68 68v888c0 37.728 30.272 68 68 68h888c37.728 0 68-30.272 68-68v-888c0-37.728-30.272-68-68-68h-888zM242 64h104v112h352v-112h102v112h160v56h-18v176h18v82h-154v322h154v86h-160v62h-102v-62h-352v62h-104v-62h-178v-86h24v-210l100 210h50v-322h-46v214l-102-214h-26v-82h320v-176h-320v-56h178v-112zM488 232v176h352v-176h-352zM306 490v322h168v-54h-102v-88h84v-54h-84v-72h96v-54h-162zM500 490l92 186v136h50v-136l90-186h-58l-56 128-58-128h-60zM870 544h90v72h-90v-72zM870 670h90v88h-90v-88z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-firewall-neteye" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 391, - "id": 204, - "prevSize": 16, - "code": 59741, - "name": "it-firewall-neteye" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 93 - }, - { - "icon": { - "paths": [ - "M68 0c-37.728 0-68 30.272-68 68v888c0 37.728 30.272 68 68 68h888c37.728 0 68-30.272 68-68v-888c0-37.728-30.272-68-68-68h-888zM242 64h104v112h352v-112h102v112h160v56h-18v176h18v490h-160v62h-102v-62h-352v62h-104v-62h-178v-490h320v-176h-320v-56h178v-112zM488 232v176h352v-176h-352zM122 498v54h148l-168 208v58h260v-54h-182l176-216v-50h-234zM380 498v54h96v266h64v-266h96v-54h-256zM678 498v320h244v-54h-180v-88h162v-54h-162v-70h174v-54h-238z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-firewall-zte" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 392, - "id": 203, - "prevSize": 16, - "code": 59742, - "name": "it-firewall-zte" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 94 - }, - { - "icon": { - "paths": [ - "M68 0c-37.728 0-68 30.272-68 68v888c0 37.728 30.272 68 68 68h888c37.728 0 68-30.272 68-68v-888c0-37.728-30.272-68-68-68h-888zM242 64h104v12c-36.731 40.161-60 93.286-60 152 0 1.333-0.023 2.673 0 4h-222v-56h178v-112zM698 64h102v112h160v56h-18v176h18v490h-160v62h-102v-62h-352v62h-104v-62h-178v-490h312c37.915 28.819 84.701 46 136 46s98.085-17.181 136-46h192v-176h-102c0.023-1.34 0-2.655 0-4 0-47.763-14.694-91.517-40-128v-36zM418 98h188v48h-132v64h114v46h-114v118h-56v-276zM122 498v54h148l-146 180-22 28v58h260v-54h-182l176-216v-50h-234zM380 498v54h96v266h64v-266h96v-54h-256zM678 498v320h244v-54h-180v-88h162v-54h-162v-70h174v-54h-238z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-firewall-ztemf" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 393, - "id": 202, - "prevSize": 16, - "code": 59743, - "name": "it-firewall-ztemf" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 95 - }, - { - "icon": { - "paths": [ - "M68 0c-37.728 0-68 30.272-68 68v888c0 37.728 30.272 68 68 68h888c37.728 0 68-30.272 68-68v-888c0-37.728-30.272-68-68-68h-888zM242 64h104v12c-36.731 40.161-60 93.286-60 152 0 1.333-0.023 2.673 0 4h-222v-56h178v-112zM698 64h102v112h160v56h-18v176h18v490h-160v62h-102v-62h-352v62h-104v-62h-178v-490h312c37.915 28.819 84.701 46 136 46s98.085-17.181 136-46h192v-176h-102c0.023-1.34 0-2.655 0-4 0-47.763-14.694-91.517-40-128v-36zM410 98h56v148c-0 23.625 0.625 39 2 46 2.375 11.25 7.062 21.188 16 28s20.5 10 36 10c15.75 0 28-3.562 36-10s12.375-14.625 14-24c1.625-9.375 4-24.25 4-46v-152h54v144c-0 33-1 56.375-4 70s-7.938 24.625-16 34c-8.063 9.375-18.5 16.438-32 22s-32.25 8-54 8c-26.25-0-46.438-1.937-60-8s-24.125-14.312-32-24c-7.875-9.687-11.5-19.375-14-30-3.625-15.75-6-39.25-6-70v-146zM122 498v54h148l-146 180-22 28v58h260v-54h-182l176-216v-50h-234zM380 498v54h96v266h64v-266h96v-54h-256zM678 498v320h244v-54h-180v-88h162v-54h-162v-70h174v-54h-238z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-firewall-zteutm" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 394, - "id": 201, - "prevSize": 16, - "code": 59744, - "name": "it-firewall-zteutm" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 96 - }, - { - "icon": { - "paths": [ - "M260 2c-65.696 7.147-134.149 50.113-186 122-94.814 131.45-98.966 314.24-10 410 37.902 40.797 87.3 58.623 138 56v402c42.667 47.332 85.333 40.057 128 0v-456c23.249-18.201 46.339-38.742 66-66 94.814-131.45 100.966-316.24 12-412-33.362-35.91-75.78-53.99-120-56-9.213-0.419-18.615-1.021-28 0zM484 46c54.103 128.562 67.65 281.261-28 418-34.982 50.009-66.676 94.444-104 130l102 12c620.106-30.772 784.298-551.082 242-514-68.87 4.709-170.379-12.038-212-46zM270 106c28.56 1.298 54.453 12.807 76 36 57.459 61.847 55.236 181.102-6 266s-158.541 103.847-216 42c-57.459-61.847-53.236-181.102 8-266 38.272-53.061 90.4-80.163 138-78z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-gather" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 395, - "id": 200, - "prevSize": 16, - "code": 59745, - "name": "it-gather" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 97 - }, - { - "icon": { - "paths": [ - "M128 0c-70.912 0-128 57.088-128 128v768c0 70.912 57.088 128 128 128h768c70.912 0 128-57.088 128-128v-768c0-70.912-57.088-128-128-128h-768zM164 352h64v320h-64v-320zM290 352h128c25.375 0 45.531-0.115 58 2s24.156 7.292 34 14c9.843 6.709 17.437 14.844 24 26s10 24.146 10 38c-0 15.021-3.907 29.459-12 42s-20.146 21.729-34 28c19.541 5.688 35.5 16.292 46 30s16 29.479 16 48c-0 14.583-3.219 28.219-10 42s-16.261 23.76-28 32c-11.74 8.24-26.792 14.104-44 16-10.792 1.167-36.729 1.708-78 2h-110v-320zM614 352h104c39.375 0 66.041 0.792 78 4 18.375 4.813 33.604 15.886 46 32s18 36.479 18 62c-0 19.688-2.854 36.584-10 50s-16.99 24.344-28 32c-11.011 7.656-22.625 11.521-34 14-15.459 3.063-36.688 6-66 6h-44v120h-64v-320zM356 406v74h42c25.229 0 39.875-1.27 46-2 11.083-1.312 19.656-5.656 26-12s10-13.646 10-24c-0-9.916-2.531-17.802-8-24s-13.209-10.687-24-12c-6.417-0.729-25.521 0-56 0h-36zM678 406v90h36c25.521 0 43.396-0.646 52-4s15.114-8.854 20-16c4.885-7.146 8-14.521 8-24-0-11.666-5.146-22.416-12-30s-15.5-12.104-26-14c-7.729-1.458-22.667-2-46-2h-32zM356 532v86h60c23.333 0 37.729-0.687 44-2 9.625-1.75 17.948-5.219 24-12s8-16.625 8-28c-0-9.625-1.334-17.292-6-24s-11.177-10.937-20-14c-8.823-3.062-28.542-6-58-6h-52z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-ibp" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 396, - "id": 199, - "prevSize": 16, - "code": 59746, - "name": "it-ibp" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 98 - }, - { - "icon": { - "paths": [ - "M128 0c-70.912 0-128 57.088-128 128v768c0 70.912 57.088 128 128 128h768c70.912 0 128-57.088 128-128v-768c0-70.912-57.088-128-128-128h-768zM164 170h64v322h-64v-322zM290 170h128c25.375 0 45.531 1.886 58 4s24.156 7.292 34 14c9.843 6.709 17.437 14.844 24 26s10 24.146 10 38c-0 15.021-3.907 27.459-12 40s-20.146 21.729-34 28c19.541 5.688 35.5 16.292 46 30s16 29.479 16 48c-0 14.583-3.219 28.219-10 42s-16.261 25.76-28 34c-11.74 8.24-26.792 14.104-44 16-10.792 1.167-36.729 1.708-78 2h-110v-322zM614 170h104c39.375 0 66.041 2.792 78 6 18.375 4.813 33.604 13.886 46 30s18 38.479 18 64c-0 19.688-2.854 34.584-10 48s-16.99 24.344-28 32c-11.011 7.656-22.625 13.521-34 16-15.459 3.063-36.688 4-66 4h-44v122h-64v-322zM356 224v74h42c25.229 0 39.875 0.73 46 0 11.083-1.312 19.656-5.656 26-12s10-15.646 10-26c-0-9.916-2.531-17.802-8-24s-13.209-8.687-24-10c-6.417-0.729-25.521-2-56-2h-36zM678 224v92h36c25.521 0 43.396-2.646 52-6s15.114-6.854 20-14c4.885-7.146 8-16.521 8-26-0-11.666-5.146-20.416-12-28s-15.5-12.104-26-14c-7.729-1.458-22.667-4-46-4h-32zM356 352v86h60c23.333 0 37.729-0.687 44-2 9.625-1.75 17.948-7.219 24-14s8-14.625 8-26c-0-9.625-1.334-19.292-6-26s-11.177-10.937-20-14c-8.823-3.062-28.542-4-58-4h-52zM196 598c27.125 0 48.5 7.375 64 22s24 34.25 24 56c-0 12.375-3.563 22.813-8 34s-10.375 23.75-20 36c-6.375 8.125-17.375 18.75-34 34s-27.563 25-32 30c-4.438 5-9.25 11.25-12 16h106v48h-186c2-18.5 8-35.438 18-52s30.5-38.625 60-66c23.75-22.125 38.625-36.125 44-44 7.25-10.875 10-23.375 10-34-0-11.75-1.688-19.687-8-26s-14.875-10-26-10c-11 0-21.5 3.375-28 10s-9 18.625-10 34l-52-6c3.125-29 11.5-49.375 28-62s37.25-20 62-20zM408 598c26.625 0 47 11 62 30 17.875 22.5 28 57.875 28 110-0 52-10 91.25-28 114-14.875 18.75-35.375 28-62 28-26.75 0-47.625-11.437-64-32s-24-57.25-24-110c-0-51.75 8-89.25 26-112 14.875-18.75 35.375-28 62-28zM622 598c26.625 0 47 11 62 30 17.875 22.5 28 57.875 28 110-0 52-10 91.25-28 114-14.875 18.75-35.375 28-62 28-26.75 0-47.625-11.437-64-32s-26-57.25-26-110c-0-51.75 10-89.25 28-112 14.875-18.75 35.375-28 62-28zM836 598c26.625 0 47 11 62 30 17.875 22.5 28 57.875 28 110-0 52-10 91.25-28 114-14.875 18.75-35.375 28-62 28-26.75 0-47.625-11.437-64-32s-26-57.25-26-110c0-51.75 10-89.25 28-112 14.875-18.75 35.375-28 62-28zM408 642c-6.375 0-11 1.937-16 6s-9.25 11.5-12 22c-3.625 13.625-6 35.75-6 68s2.75 55.938 6 68c3.25 12.063 7.062 20 12 24s9.625 6 16 6c6.375 0 13-1.937 18-6s9.25-11.5 12-22c3.625-13.5 4-37.75 4-70s-0.75-53.937-4-66c-3.25-12.062-7.063-19.937-12-24s-11.625-5.999-18-6zM622 642c-6.375 0-11 1.937-16 6s-9.25 11.5-12 22c-3.625 13.625-6 35.75-6 68s0.75 55.938 4 68c3.25 12.063 9.062 20 14 24s9.625 6 16 6c6.375 0 13-1.937 18-6s7.25-11.5 10-22c3.625-13.5 6-37.75 6-70s-0.75-53.937-4-66c-3.25-12.062-7.063-19.937-12-24s-11.625-5.999-18-6zM836 642c-6.375 0-13 1.937-18 6s-7.25 11.5-10 22c-3.625 13.625-6 35.75-6 68s0.75 55.938 4 68c3.25 12.063 7.062 20 12 24s11.625 6 18 6c6.375 0 11-1.937 16-6s9.25-11.5 12-22c3.625-13.5 6-37.75 6-70s-0.75-53.937-4-66c-3.25-12.062-9.063-19.937-14-24s-9.625-5.999-16-6z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-ibp-ibp2000" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 397, - "id": 198, - "prevSize": 16, - "code": 59747, - "name": "it-ibp-ibp2000" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 99 - }, - { - "icon": { - "paths": [ - "M512 0c-282.77 0-512 229.229-512 512s229.23 512 512 512c282.77 0 512-229.229 512-512s-229.23-512-512-512zM460 100c-0.035 0.64 0 1.344 0 1.984v144h-106c13.653-49.069 32.968-94.080 54-136 16.822-4.352 34.424-7.789 52-10.003zM564 100c14.799 1.856 29.727 4.608 44 8 21.464 42.010 40.007 88.672 54 138.003h-98v-144c0-0.64 0.035-1.344 0-1.984zM728 158.003c38.764 23.725 74.975 53.293 104 88h-74c-8.692-30.573-18.367-60.154-30-88zM286 164.019c-10.493 26.163-20.063 53.523-28 82.003h-66c26.566-31.763 59.179-59.334 94-82.003zM894 346.022c15.484 35.52 24.974 74.131 30 113.997h-134c-1.3-38.579-4.291-75.648-10-112h102c3.699 0 8.643-0.96 12-1.984zM128 348.006h110c-5.555 36.416-10.864 73.389-12 112h-126c4.91-38.938 13.095-77.184 28-112zM332 348.006h128v112h-138c1.129-38.362 4.536-75.872 10-112zM564 348.006h120c5.637 36.122 8.706 73.606 10 112h-130v-112zM100 564.006h128c3.115 38.906 10.371 75.571 18 112h-118c-14.905-34.816-23.090-73.062-28-112zM324 564.006h136v112h-120c-7.481-36.346-12.966-73.126-16-112zM564 564.006h130c-2.897 38.304-8.783 76.128-16 112h-114v-112zM788 564.006h136c-4.91 38.938-13.095 77.184-28 112h-124c7.324-35.814 13.028-73.824 16-112zM194 780.006h78c12.495 36.038 29.429 68.461 46 100-47.143-24.954-89.788-59.642-124-100zM368 780.006h92v144c-7.868-0.96-16.275-0.64-24-1.984-26.587-42.522-49.947-89.542-68-142.003zM564 780.006h86c-17.597 51.622-40.138 99.91-66 142.003-6.473 1.152-13.428 1.152-20 1.984v-144zM746 780.006h84c-35.169 41.491-79.231 76.851-128 102.003 16.61-31.923 31.55-65.536 44-102.003z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-net" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 398, - "id": 197, - "prevSize": 16, - "code": 59748, - "name": "it-net" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 100 - }, - { - "icon": { - "paths": [ - "M136 0c-75.55 0-136 60.45-136 136v752c0 75.55 60.45 136 136 136h752c75.55 0 136-60.45 136-136v-752c0-75.55-60.45-136-136-136h-752zM248 230l124 32-142 528-122-32 140-528zM448 232h128v546h-128v-546zM774 234l142 528-124 32-142-528 124-32z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 399, - "id": 196, - "prevSize": 16, - "code": 59749, - "name": "it-other" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 101 - }, - { - "icon": { - "paths": [ - "M832 0h-640c-105.984 0-192 85.969-192 192v640c0 106.031 86.016 192 192 192h640c106.031 0 192-85.969 192-192v-640c0-106.031-85.969-192-192-192zM607.697 84.992c44.172 0 80.012 35.84 80.012 80.012s-35.84 80.012-80.012 80.012c-44.218 0-80.012-35.84-80.012-80.012s35.747-80.012 80.012-80.012zM392.332 84.992c44.172 0 80.012 35.84 80.012 80.012s-35.84 80.012-80.012 80.012-80.012-35.84-80.012-80.012 35.84-80.012 80.012-80.012zM177.012 245.015c-44.172 0-80.012-35.84-80.012-80.012s35.84-80.012 80.012-80.012 80.012 35.84 80.012 80.012-35.84 80.012-80.012 80.012zM574.65 945.99l-45.382-117.993h-162.863l-42.775 117.993h-54.691l149.551-389.446h55.529l159.372 389.446h-58.74zM607.697 511.023c-44.218 0-80.012-35.84-80.012-80.012s35.793-80.012 80.012-80.012c44.172 0 80.012 35.84 80.012 80.012s-35.84 80.012-80.012 80.012zM715.171 945.99h-47.802v-389.446h47.802v389.446zM823.017 511.023c-44.172 0-80.012-35.84-80.012-80.012s35.84-80.012 80.012-80.012 79.965 35.84 79.965 80.012-35.793 80.012-79.965 80.012zM823.017 245.015c-44.172 0-80.012-35.84-80.012-80.012s35.84-80.012 80.012-80.012 79.965 35.84 79.965 80.012-35.793 80.012-79.965 80.012z", - "M445.021 597.504c-4.934 24.948-11.962 49.757-20.945 74.38l-42.775 114.176h132.049l-40.681-107.753c-12.428-32.815-21.597-59.811-27.648-80.803z" - ], - "attrs": [ - { - "fill": "rgb(100, 148, 206)" - }, - { - "fill": "rgb(100, 148, 206)" - } - ], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-alteon" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [ - 4, - 4 - ] - } - }, - "attrs": [ - { - "fill": "rgb(100, 148, 206)" - }, - { - "fill": "rgb(100, 148, 206)" - } - ], - "properties": { - "order": 400, - "id": 195, - "prevSize": 16, - "code": 59750, - "name": "it-other-alteon" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 102 - }, - { - "icon": { - "paths": [ - "M816.035 622.871c-8.611-2.281-24.436-3.398-47.569-3.398h-98.49v137.681h99.561c32.954 0 56.32-6.144 70.191-18.432 13.824-12.241 20.713-29.51 20.713-51.712 0-16.151-4.049-29.929-12.195-41.425-8.192-11.45-18.944-19.037-32.209-22.714z", - "M832 0h-640c-105.984 0-192 85.969-192 192v640c0 105.984 86.016 192 192 192h640.047c105.937 0 191.953-86.016 191.953-192v-640c0-106.031-86.016-192-192-192zM823.017 84.992c44.172 0 80.012 35.84 80.012 80.012s-35.84 80.012-80.012 80.012-80.012-35.84-80.012-80.012c0-44.172 35.793-80.012 80.012-80.012zM823.017 350.999c44.172 0 80.012 35.84 80.012 80.012s-35.84 80.012-80.012 80.012-80.012-35.84-80.012-80.012c0-44.172 35.793-80.012 80.012-80.012zM607.744 84.992c44.125 0 80.012 35.84 80.012 80.012s-35.887 80.012-80.012 80.012c-44.265 0-80.058-35.84-80.058-80.012s35.747-80.012 80.058-80.012zM392.332 84.992c44.172 0 80.012 35.84 80.012 80.012s-35.84 80.012-80.012 80.012c-44.172 0-80.012-35.84-80.012-80.012s35.84-80.012 80.012-80.012zM177.012 245.015c-44.172 0-80.012-35.84-80.012-80.012s35.84-80.012 80.012-80.012c44.172 0 80.012 35.84 80.012 80.012s-35.84 80.012-80.012 80.012zM520.192 959.162l-44.916-116.643h-161.094l-42.31 116.643h-54.132l147.921-385.164h54.924l157.649 385.164h-58.042zM527.686 431.011c0-44.172 35.793-80.012 80.058-80.012 44.125 0 80.012 35.84 80.012 80.012s-35.887 80.012-80.012 80.012c-44.311 0-80.058-35.84-80.058-80.012zM881.711 768.559c-20.852 22.668-58.554 34.025-113.012 34.025h-98.769v156.579h-51.014v-385.164h145.315c25.553 0 45.103 1.21 58.601 3.677 18.897 3.119 34.769 9.123 47.523 18.013s23.087 21.225 30.86 37.19c7.82 15.965 11.683 33.466 11.683 52.55 0.047 32.768-10.333 60.416-31.185 83.13z", - "M391.959 614.447c-4.887 24.716-11.823 49.245-20.759 73.588l-42.31 112.966h130.607l-40.215-106.682c-12.241-32.349-21.364-59.020-27.322-79.872z" - ], - "attrs": [ - { - "fill": "rgb(100, 148, 206)" - }, - { - "fill": "rgb(100, 148, 206)" - }, - { - "fill": "rgb(100, 148, 206)" - } - ], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-appdirector" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [ - 4, - 4, - 4 - ] - } - }, - "attrs": [ - { - "fill": "rgb(100, 148, 206)" - }, - { - "fill": "rgb(100, 148, 206)" - }, - { - "fill": "rgb(100, 148, 206)" - } - ], - "properties": { - "order": 401, - "id": 194, - "prevSize": 16, - "code": 59751, - "name": "it-other-appdirector" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 103 - }, - { - "icon": { - "paths": [ - "M136 0c-75.55 0-136 60.45-136 136v752c0 75.55 60.45 136 136 136h752c75.55 0 136-60.45 136-136v-752c0-75.55-60.45-136-136-136h-752zM518 230h186c36.836 0.001 65.899 2.491 84 6s33.71 10.875 48 22c14.289 11.126 26.473 25.499 36 44 9.526 18.503 14 39.023 14 62-0 24.912-6.251 47.2-18 68s-27.889 37.6-48 48c28.367 9.433 50.757 25.266 66 48s22 49.284 22 80c-0 24.186-4.156 47.145-14 70s-22.959 40.335-40 54c-17.042 13.665-39.020 22.856-64 26-15.666 1.936-52.089 3.521-112 4h-160v-532zM124 234h94v438h234v90h-328v-528zM612 318v124h62c36.624 0.001 59.108-0.803 68-2 16.089-2.175 28.791-9.479 38-20s14-24.828 14-42c-0-16.446-4.061-29.72-12-40-7.939-10.278-18.334-15.823-34-18-9.315-1.211-37.755-2-82-2h-54zM612 530v142h88c33.872 0 54.897-1.825 64-4 13.972-2.9 25.214-8.754 34-20s14-27.135 14-46c-0-15.962-3.226-28.874-10-40-6.775-11.125-17.192-18.921-30-24-12.808-5.083-41.237-7.999-84-8h-76z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-atca-lb10" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 402, - "id": 193, - "prevSize": 16, - "code": 59752, - "name": "it-other-atca-lb10" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 104 - }, - { - "icon": { - "paths": [ - "M136 0c-75.55 0-136 60.45-136 136v752c0 75.55 60.45 136 136 136h752c75.55 0 136-60.45 136-136v-752c0-75.55-60.45-136-136-136h-752zM528 330c37.548 0.001 68.55 12.645 92 38 13.958 14.991 23.021 37.933 30 66l-60 16c-3.629-18.179-12.484-33.475-24-44s-25.529-13.999-42-14c-22.752 0.001-39.832 9.342-54 28s-22 48.219-22 90c-0 44.333 8.041 75.183 22 94s31.666 28 54 28c16.471 0 30.135-6.038 42-18 11.864-11.96 20.835-30.325 26-56l60 22c-9.213 38.273-24.574 67.422-46 86s-49.058 28-82 28c-40.759 0-73.758-16.186-100-48s-40-76.823-40-132c-0-58.366 13.618-103.707 40-136s61.008-47.999 104-48zM812 330c38.525 0.001 68.528 10.704 88 30s29.023 43.787 30 76l-62 4c-2.653-18.020-7.276-30.106-16-38s-22.552-12-40-12c-18.007 0-31.81 3.55-42 12-6.561 5.425-10 12.911-10 22-0 8.293 3.859 14.1 10 20 7.817 7.495 25.85 15.867 56 24s51.553 17.309 66 26c14.447 8.691 25.834 20.93 34 36s14 33.834 14 56c-0 20.093-6.23 38.458-16 56s-24.133 29.468-42 38c-17.867 8.532-39.339 14-66 14-38.805 0-69.202-11.508-90-32s-31.952-48.77-36-88l60-8c3.629 23.124 10.903 41.156 22 52s25.156 16 44 16c19.96 0 35.88-4.351 46-14 10.12-9.647 16-21.083 16-34-0-8.292-3.743-16.179-8-22s-11.392-11.694-22-16c-7.259-2.866-24.177-6.664-50-14-33.221-9.409-56.6-22.285-70-36-18.844-19.296-28-42.252-28-70 0-17.86 5.136-34.451 14-50 8.864-15.548 21.32-27.867 38-36s36.41-11.999 60-12zM84 336h62v190c-0 30.139 2.464 51.070 4 60 2.652 14.352 8.020 25.309 18 34s24.691 12 42 12c17.587 0 29.066-3.786 38-12 8.933-8.213 16.185-18.040 18-30s2-32.252 2-60v-194h62v184c-0 42.1-2.65 72.618-6 90s-8.997 32.040-18 44c-9.003 11.96-20.925 20.904-36 28s-33.712 12-58 12c-29.313 0-52.855-4.264-68-12-15.145-7.735-27.206-17.641-36-30s-13.208-26.445-16-40c-4.048-20.093-8-48.77-8-88v-188z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-cisco-ucs" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 403, - "id": 192, - "prevSize": 16, - "code": 59753, - "name": "it-other-cisco-ucs" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 105 - }, - { - "icon": { - "paths": [ - "M136 0c-75.55 0-136 60.45-136 136v752c0 75.55 60.45 136 136 136h752c75.55 0 136-60.45 136-136v-752c0-75.55-60.45-136-136-136h-752zM528 330c37.548 0.001 68.55 12.645 92 38 13.958 14.991 23.021 37.933 30 66l-60 16c-3.629-18.179-12.484-33.475-24-44s-25.529-13.999-42-14c-22.752 0.001-39.832 9.342-54 28s-22 48.219-22 90c-0 44.333 8.041 75.183 22 94s31.666 28 54 28c16.471 0 30.135-6.038 42-18 11.864-11.96 20.835-30.325 26-56l60 22c-9.213 38.273-24.574 67.422-46 86s-49.058 28-82 28c-40.759 0-73.758-16.186-100-48s-40-76.823-40-132c-0-58.366 13.618-103.707 40-136s61.008-47.999 104-48zM812 330c38.525 0.001 68.528 10.704 88 30s29.023 43.787 30 76l-62 4c-2.653-18.020-7.276-30.106-16-38s-22.552-12-40-12c-18.007 0-31.81 3.55-42 12-6.561 5.425-10 12.911-10 22-0 8.293 1.859 14.1 8 20 7.817 7.495 27.85 15.867 58 24s51.553 17.309 66 26c14.447 8.691 25.834 20.93 34 36s12 33.834 12 56c-0 20.093-4.23 38.458-14 56s-24.133 29.468-42 38c-17.867 8.532-39.339 14-66 14-38.805 0-69.202-11.508-90-32s-31.952-48.77-36-88l60-8c3.629 23.124 10.903 41.156 22 52s25.156 16 44 16c19.96 0 35.88-4.351 46-14 10.12-9.647 14-21.083 14-34-0-8.292-1.743-16.179-6-22s-11.392-11.694-22-16c-7.259-2.866-24.177-6.664-50-14-33.221-9.409-56.6-22.285-70-36-18.844-19.296-28-42.252-28-70 0-17.86 5.137-34.451 14-50 8.864-15.548 21.32-27.867 38-36s36.41-11.999 60-12zM86 336h112c25.544 0.001 44.6 3.533 58 8 18.006 6.061 35.158 16.532 48 32s21.3 33.595 28 56c6.7 22.405 10 51.149 10 84-0 28.864-3.719 53.109-10 74-7.677 25.515-17.763 46.212-32 62-10.748 11.96-25.715 21.302-44 28-13.679 4.946-31.108 8-54 8h-116v-352zM148 396v232h46c17.308 0 28.323-1.77 36-4 10.050-2.873 19.37-7.142 26-14s11.812-18.292 16-34c4.187-15.708 6-36.89 6-64s-1.813-47.488-6-62c-4.188-14.512-10.463-25.866-18-34s-16.415-13.129-28-16c-8.654-2.23-26.735-4-52-4h-26z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-dcs" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 404, - "id": 191, - "prevSize": 16, - "code": 59754, - "name": "it-other-dcs" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 106 - }, - { - "icon": { - "paths": [ - "M136 0c-75.55 0-136 60.45-136 136v752c0 75.55 60.45 136 136 136h752c75.55 0 136-60.45 136-136v-752c0-75.55-60.45-136-136-136h-752zM88 336h112c25.544 0.001 46.6 3.533 60 8 18.006 6.061 33.158 16.532 46 32s21.3 33.595 28 56c6.7 22.405 10 51.149 10 84-0 28.864-1.719 53.109-8 74-7.677 25.515-19.763 46.212-34 62-10.748 11.96-25.715 21.302-44 28-13.679 4.946-31.108 8-54 8h-116v-352zM748 336h66l122 352h-66l-28-80h-122l-26 80h-66l120-352zM400 340h62v288h154v60h-216v-348zM150 396v232h46c17.308 0 30.323-1.77 38-4 10.050-2.873 17.37-7.142 24-14s11.812-18.292 16-34c4.187-15.708 6-36.89 6-64s-1.813-47.488-6-62c-4.188-14.512-10.463-25.866-18-34s-16.415-13.129-28-16c-8.654-2.23-24.735-4-50-4h-28zM780 418l-42 130h84l-42-130z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-delta" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 405, - "id": 190, - "prevSize": 16, - "code": 59755, - "name": "it-other-delta" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 107 - }, - { - "icon": { - "paths": [ - "M799.651 382.836c-9.123-2.42-26.159-3.677-50.921-3.677h-105.472v147.363h106.589c35.281 0 60.276-6.563 75.124-19.689 14.708-13.126 22.295-31.604 22.295-55.389 0-17.268-4.422-32.023-13.126-44.311-8.797-12.241-20.294-20.34-34.49-24.297z", - "M887.994 0h-751.988c-75.59 0-136.006 60.416-136.006 136.006v751.988c0 75.543 60.416 136.006 136.006 136.006h751.988c75.543 0 136.006-60.463 136.006-136.006v-751.988c0-75.59-60.463-136.006-136.006-136.006zM445.021 617.705c-7.308 24.204-16.663 44.172-28.113 60.044-11.45 15.919-23.971 28.3-37.562 37.423s-30.022 16.012-49.199 20.666c-19.223 4.655-41.286 7.028-66.234 7.028h-148.759v-412.346h142.010c32.070 0 56.506 1.955 73.402 5.911 23.599 5.446 43.753 15.313 60.463 29.556 21.737 18.339 37.981 41.844 48.826 70.423 10.752 28.579 16.151 61.254 16.151 98.025-0.047 31.279-3.677 59.066-10.985 83.27zM869.981 538.81c-22.342 24.297-62.65 36.445-121.018 36.445h-105.705v167.61h-54.551v-412.346h155.555c27.369 0 48.221 1.303 62.743 3.956 20.294 3.351 37.143 9.775 50.874 19.27 13.638 9.495 24.762 22.714 33.001 39.75 8.425 17.082 12.614 35.84 12.614 56.227 0 35.142-11.217 64.791-33.513 89.088z", - "M326.889 387.631c-14.615-5.632-38.167-8.471-70.609-8.471h-86.575v315.020h88.064c27.183 0 48.5-2.56 64-7.54 15.453-5.12 27.788-12.288 36.957-21.364 12.94-12.986 22.993-30.394 30.208-52.224 7.215-21.783 10.845-48.314 10.845-79.407 0-43.148-7.075-76.288-21.225-99.468-14.196-23.133-31.418-38.679-51.665-46.545z" - ], - "attrs": [ - { - "fill": "rgb(96, 140, 193)" - }, - { - "fill": "rgb(96, 140, 193)" - }, - { - "fill": "rgb(96, 140, 193)" - } - ], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-dp" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [ - 3, - 3, - 3 - ] - } - }, - "attrs": [ - { - "fill": "rgb(96, 140, 193)" - }, - { - "fill": "rgb(96, 140, 193)" - }, - { - "fill": "rgb(96, 140, 193)" - } - ], - "properties": { - "order": 406, - "id": 189, - "prevSize": 16, - "code": 59756, - "name": "it-other-dp" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 108 - }, - { - "icon": { - "paths": [ - "M743.936 0h-471.459c-152.623 0-276.294 124.975-276.294 279.133v465.734c0 154.159 123.671 279.133 276.294 279.133h471.505c152.529 0 276.247-125.021 276.247-279.133v-465.734c-0.047-154.159-123.718-279.133-276.294-279.133zM234.17 777.123c-8.657 25.088-21.504 44.172-38.54 57.297-17.082 13.079-37.050 19.642-60.044 19.642-24.343 0-44.265-7.168-59.671-21.597-15.453-14.383-24.716-34.583-27.834-60.695l36.771-3.584c3.119 18.385 9.030 31.744 17.827 39.983 8.751 8.285 20.015 12.428 33.792 12.428 11.729 0 22.063-2.886 30.906-8.611 8.844-5.679 16.105-13.359 21.783-22.9 5.679-9.588 10.426-22.481 14.243-38.772s5.725-32.861 5.725-49.711c0-1.815-0.047-4.515-0.186-8.145-7.68 12.94-18.106 23.459-31.325 31.558-13.219 8.052-27.555 12.102-43.008 12.102-25.786 0-47.569-9.961-65.443-29.882-17.827-19.875-26.764-46.080-26.764-78.615 0-33.606 9.309-60.649 27.927-81.129s41.937-30.72 70.004-30.72c20.247 0 38.772 5.818 55.529 17.408 16.756 11.636 29.51 28.16 38.214 49.617 8.751 21.457 13.079 52.55 13.079 93.231-0 42.356-4.329 76.009-12.986 101.097zM402.991 92.486h214.063v40.401h-174.871v104.82h163.747v40.169h-163.747v116.503h181.76v40.401h-220.951v-342.295zM476.113 779.171c-7.494 23.878-18.711 42.356-33.652 55.343-14.941 13.033-33.839 19.549-56.599 19.549-30.022 0-53.62-11.45-70.749-34.304-20.527-27.601-30.813-72.518-30.813-134.749 0-39.191 3.817-70.703 11.357-94.58 7.587-23.878 18.851-42.263 33.792-55.249 14.941-12.94 33.745-19.409 56.413-19.409 16.71 0 31.372 3.584 43.985 10.705 12.614 7.168 22.993 17.501 31.185 30.953 8.239 13.498 14.662 29.929 19.363 49.292s6.982 45.475 6.982 78.336c0 38.865-3.77 70.284-11.264 94.115zM718.057 779.171c-7.494 23.878-18.711 42.356-33.699 55.343-14.895 13.033-33.839 19.549-56.599 19.549-30.068 0-53.574-11.45-70.749-34.304-20.527-27.601-30.813-72.518-30.813-134.749 0-39.191 3.817-70.703 11.357-94.58 7.587-23.878 18.851-42.263 33.792-55.249 14.941-12.94 33.745-19.409 56.413-19.409 16.71 0 31.372 3.584 43.939 10.705 12.614 7.168 23.040 17.501 31.232 30.953 8.239 13.498 14.662 29.929 19.316 49.292 4.701 19.363 7.028 45.475 7.028 78.336 0.047 38.865-3.724 70.284-11.217 94.115zM960 779.171c-7.494 23.878-18.711 42.356-33.699 55.343-14.895 13.033-33.839 19.549-56.599 19.549-30.068 0-53.574-11.45-70.749-34.304-20.527-27.601-30.813-72.518-30.813-134.749 0-39.191 3.817-70.703 11.357-94.58 7.587-23.878 18.851-42.263 33.792-55.249 14.941-12.94 33.745-19.409 56.413-19.409 16.71 0 31.372 3.584 43.939 10.705 12.614 7.168 23.040 17.501 31.232 30.953 8.239 13.498 14.662 29.929 19.316 49.292 4.701 19.363 7.028 45.475 7.028 78.336 0.047 38.865-3.724 70.284-11.217 94.115z", - "M627.386 549.469c-17.594 0-31.604 7.913-42.077 23.738-13.126 20.201-19.735 57.437-19.735 111.849s5.958 90.577 17.967 108.591c11.962 18.013 26.717 26.996 44.265 26.996s32.303-8.983 44.265-27.089c12.009-18.106 17.967-54.272 17.967-108.497 0-54.551-5.958-90.764-17.967-108.73-11.962-17.92-26.903-26.857-44.684-26.857z", - "M385.396 549.469c-17.548 0-31.558 7.913-42.031 23.738-13.172 20.201-19.782 57.437-19.782 111.849s6.004 90.577 17.967 108.591c11.962 18.013 26.717 26.996 44.311 26.996 17.548 0 32.303-8.983 44.311-27.089 11.962-18.106 17.92-54.272 17.92-108.497 0-54.551-5.958-90.764-17.92-108.73-12.009-17.92-26.903-26.857-44.777-26.857z", - "M869.329 549.469c-17.594 0-31.604 7.913-42.077 23.738-13.126 20.201-19.735 57.437-19.735 111.849s5.958 90.577 17.967 108.591c11.962 18.013 26.717 26.996 44.265 26.996s32.303-8.983 44.265-27.089c12.009-18.106 17.967-54.272 17.967-108.497 0-54.551-5.958-90.764-17.967-108.73-11.962-17.92-26.857-26.857-44.684-26.857z", - "M144.989 549.469c-16.989 0-31.791 7.354-44.404 22.156-12.614 14.755-18.897 33.932-18.897 57.391 0 21.085 6.004 38.214 17.967 51.386s26.717 19.782 44.311 19.782c17.687 0 32.256-6.609 43.66-19.782s17.082-31.465 17.082-54.831c0-23.319-5.818-41.844-17.501-55.575-11.729-13.684-25.833-20.527-42.217-20.527z" - ], - "attrs": [ - { - "fill": "rgb(100, 155, 230)" - }, - { - "fill": "rgb(100, 155, 230)" - }, - { - "fill": "rgb(100, 155, 230)" - }, - { - "fill": "rgb(100, 155, 230)" - }, - { - "fill": "rgb(100, 155, 230)" - } - ], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-e9000" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [ - 6, - 6, - 6, - 6, - 6 - ] - } - }, - "attrs": [ - { - "fill": "rgb(100, 155, 230)" - }, - { - "fill": "rgb(100, 155, 230)" - }, - { - "fill": "rgb(100, 155, 230)" - }, - { - "fill": "rgb(100, 155, 230)" - }, - { - "fill": "rgb(100, 155, 230)" - } - ], - "properties": { - "order": 407, - "id": 188, - "prevSize": 16, - "code": 59757, - "name": "it-other-e9000" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 109 - }, - { - "icon": { - "paths": [ - "M136 0c-75.55 0-136 60.45-136 136v752c0 75.55 60.45 136 136 136h752c75.55 0 136-60.45 136-136v-752c0-75.55-60.45-136-136-136h-752zM200 268h288v82h-202v112h174v82h-174v204h-86v-480zM592 274h212v86h-150l-14 82c17.929-10.241 37.308-16 56-16 35.667 0 65.204 16.365 90 46 24.795 29.636 38 66.714 38 114-0 39.441-9.973 75.057-30 106-27.275 42.274-65.554 64-114 64-38.719 0-69.586-12.248-94-36s-39.232-55.905-44-96l80-10c2.289 20.701 8.747 37.906 20 50s23.313 18 38 18c16.784 0 32.365-8.42 44-24s16-38.622 16-70c-0-29.417-4.461-51.291-16-66s-27.499-22-46-22c-23.079 0-43.69 12.684-62 36l-64-12 40-250z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-f5bigip" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 408, - "id": 187, - "prevSize": 16, - "code": 59758, - "name": "it-other-f5bigip" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 110 - }, - { - "icon": { - "paths": [ - "M114 0c-63.812 0-114 47.546-114 108v602c0 53.579 40.456 98.664 94 108v-590c0-64.077 53.716-114 120-114h650v-6c0-60.454-50.188-108-114-108z", - "M273.868 209.632c-63.812 0-114.869 48.378-114.869 108.832v601.779c0 60.454 51.057 108.832 114.869 108.832h635.16c63.812 0 114.869-48.378 114.869-108.832v-601.779c0-60.454-51.057-108.832-114.869-108.832h-635.16zM327.924 424.096h243.253v65.619h-170.615v89.626h146.965v65.619h-146.965v163.251h-72.638v-384.115zM659.018 428.896h179.061v68.819h-126.694l-11.825 65.619c15.143-8.192 31.511-12.8 47.299-12.8 30.125 0 55.074 13.094 76.017 36.813 20.943 23.712 32.096 53.382 32.096 91.226-0 31.558-8.424 60.064-25.339 84.826-23.037 33.824-55.369 51.213-96.288 51.213-32.703 0-58.775-9.798-79.395-28.806s-33.136-44.742-37.164-76.826l67.57-8c1.933 16.563 7.388 30.33 16.893 40.013 9.505 9.677 19.691 14.4 32.096 14.4 14.177 0 27.336-6.739 37.164-19.206s13.514-30.906 13.514-56.013c-0-23.539-3.768-41.043-13.514-52.819-9.747-11.77-23.226-17.6-38.853-17.6-19.493 0-36.902 10.15-52.367 28.806l-54.056-9.606 33.785-200.058z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-f5bigip2" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 409, - "id": 186, - "prevSize": 16, - "code": 59759, - "name": "it-other-f5bigip2" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 111 - }, - { - "icon": { - "paths": [ - "M136 0c-75.55 0-136 60.45-136 136v752c0 75.55 60.45 136 136 136h752c75.55 0 136-60.45 136-136v-752c0-75.55-60.45-136-136-136h-752zM230 158c36.969 0 65.213 6.495 86 22s34.041 36.646 40 64l-60 12c-4.198-14.625-12.422-25.536-24-34s-24.667-14-42-14c-26.271 0-48.495 9.344-64 26s-22 41.229-22 74c-0 35.344 8.292 62.328 24 80s34.542 26 60 26c12.594 0 25.338-3.057 38-8s24.927-10.958 34-18v-38h-70v-50h130v118c-12.594 12.188-30.099 24.724-54 34s-49.49 14-74 14c-31.146 0-56.844-6.932-80-20s-40.354-31.693-52-56c-11.646-24.307-18-51.427-18-80-0-31.010 7-57.896 20-82s30.948-43.135 56-56c19.094-9.885 43.562-14 72-14zM416 162h118c23.562 0 42.422 2.037 54 4s20.859 5.771 30 12c9.14 6.229 17.906 13.641 24 24s8 23.136 8 36c-0 13.948-2.485 26.354-10 38s-19.136 20.177-32 26c18.146 5.281 32.25 13.271 42 26s14 28.802 14 46c-0 13.542-1.704 27.203-8 40s-15.099 22.349-26 30c-10.901 7.651-24.021 12.24-40 14-10.021 1.083-35.677 1.729-74 2h-100v-298zM716 162h220v50h-160v66h150v50h-150v82h166v50h-226v-298zM476 212v68h40c23.427 0 36.312 0.677 42 0 10.291-1.219 18.109-6.109 24-12s10-12.385 10-22c-0-9.208-2.922-16.245-8-22s-11.979-10.781-22-12c-5.959-0.677-23.698 0-52 0h-34zM476 330v80h56c21.666 0 34.177-0.781 40-2 8.937-1.625 16.38-5.703 22-12s8-15.437 8-26c-0-8.937-1.667-15.771-6-22s-9.807-11.156-18-14c-8.193-2.844-26.646-4-54-4h-48zM652 576c39.229 0 71.5 12.813 96 36 14.583 13.709 24.708 32.334 32 58l-64 16c-3.792-16.625-11.969-30.375-24-40s-26.792-14-44-14c-23.771 0-43.198 8.938-58 26s-22 43.792-22 82c-0 40.542 7.417 68.792 22 86s34.667 26 58 26c17.208 0 31.604-5.062 44-16s20.604-28.521 26-52l64 20c-9.625 35-25.615 61.010-48 78s-51.584 26-86 26c-42.583 0-76.583-14.906-104-44s-42-67.542-42-118c-0-53.375 14.437-96.468 42-126s63.083-44 108-44zM356 580c31.646 0 55.916 8.938 74 26s28 38.625 28 64c-0 14.438-2.823 26.948-8 40s-12.771 27.708-24 42c-7.438 9.479-20.604 22.208-40 40s-32.823 30.167-38 36c-5.177 5.834-8.792 12.458-12 18h122v56h-216c2.333-21.583 10.333-40.677 22-60s33.583-46.062 68-78c27.708-25.812 45.729-42.812 52-52 8.458-12.687 12-25.604 12-38-0-13.708-2.636-24.635-10-32s-19.021-10-32-10c-12.833 0-22.417 4.271-30 12s-10.833 20.063-12 38l-62-6c3.646-33.833 14.75-59.271 34-74s43.125-22 72-22z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-gbe2c" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 410, - "id": 185, - "prevSize": 16, - "code": 59760, - "name": "it-other-gbe2c" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 112 - }, - { - "icon": { - "paths": [ - "M888 0h-752c-75.584 0-136 60.416-136 136v752c0 75.648 60.416 136 136 136h752c75.648 0 136-60.352 136-136v-752c0-75.584-60.352-136-136-136zM366.144 654.4h-42.432v-151.168h-166.72v151.104h-42.432v-320.64h42.432v131.712h166.656v-131.712h42.432v320.704zM600.448 630.848c-20.416 19.52-46.272 29.248-77.44 29.248-28.096 0-51.52-8.384-70.144-25.216-18.56-16.768-29.184-38.464-31.808-65.152l39.36-5.248c4.48 22.336 12.16 38.4 23.040 48.256 10.88 9.792 24.128 14.72 39.744 14.72 18.496 0 34.112-6.4 46.848-19.264s19.136-28.736 19.136-47.68c0-18.112-5.888-33.024-17.664-44.736s-26.752-17.536-44.992-17.536c-7.424 0-16.704 1.472-27.776 4.352l4.352-34.56c2.624 0.256 4.736 0.448 6.336 0.448 16.768 0 31.872-4.352 45.312-13.12 13.376-8.768 20.096-22.272 20.096-40.448 0-14.464-4.928-26.432-14.656-35.904s-22.4-14.208-37.824-14.208c-15.36 0-28.096 4.8-38.336 14.464s-16.704 24-19.648 43.264l-39.36-6.976c4.8-26.432 15.744-46.848 32.768-61.376 17.088-14.528 38.336-21.76 63.68-21.76 17.472 0 33.536 3.776 48.32 11.264 14.72 7.488 25.984 17.728 33.792 30.72s11.712 26.752 11.712 41.344c0 13.824-3.712 26.496-11.2 37.824-7.36 11.392-18.432 20.416-32.96 27.136 18.944 4.416 33.664 13.504 44.16 27.264s15.744 30.976 15.744 51.712c0 28.032-10.176 51.776-30.592 71.168zM909.184 632.448c-23.104 18.304-51.392 27.456-84.8 27.456-34.496 0-62.656-6.976-84.288-21.12-21.632-14.080-38.144-34.432-49.408-61.12s-16.96-55.36-16.96-85.952c0-33.408 6.4-62.528 19.136-87.424 12.736-24.832 30.912-43.776 54.528-56.64 23.552-12.928 49.408-19.392 77.76-19.392 32.064 0 59.072 8.128 80.96 24.512s37.12 39.296 45.76 68.928l-41.792 9.856c-7.424-23.36-18.24-40.32-32.384-50.944s-31.936-16-53.376-16c-24.64 0-45.248 5.888-61.824 17.728s-28.16 27.648-34.88 47.616c-6.656 19.904-10.048 40.384-10.048 61.568 0 27.264 4.032 51.072 11.968 71.424 7.936 20.288 20.288 35.52 37.056 45.632 16.768 9.984 34.944 15.040 54.464 15.040 23.808 0 43.968-6.784 60.352-20.544 16.512-13.76 27.712-34.048 33.472-61.056l42.432 10.688c-9.024 34.816-25.024 61.44-48.128 79.744z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-h3c" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 411, - "id": 184, - "prevSize": 16, - "code": 59761, - "name": "it-other-h3c" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 113 - }, - { - "icon": { - "paths": [ - "M136 0c-75.55 0-136 60.45-136 136v410h1024v-410c0-75.55-60.45-136-136-136h-752zM228 134h64v128h128v-128h64v322h-64v-140h-128v140h-64v-322zM550 134h104c39.375 0 66.041 2.792 78 6 18.375 4.813 33.604 15.886 46 32s18 36.479 18 62c-0 19.688-2.854 36.584-10 50s-16.99 22.344-28 30c-11.011 7.656-20.625 13.521-32 16-15.459 3.063-38.688 4-68 4h-42v122h-66v-322zM616 190v90h36c25.521 0 41.396-0.646 50-4s15.114-8.854 20-16c4.885-7.146 8-16.521 8-26-0-11.666-3.146-20.416-10-28s-15.5-12.104-26-14c-7.729-1.458-24.667-2-48-2h-30zM782 598c-39.962 0-71.478 10.197-96 32s-38 52.592-38 92c0 37.254 13.608 66.52 38 88s54.114 32 92 32c30.62 0 56.084-5.456 76-18s33.436-32.159 42-58l-54-14c-4.801 17.335-12.972 29.925-24 38s-24.69 12-40 12c-20.76 0-37.025-7.295-50-20s-20-32.067-20-62c-0-28.21 6.831-49.402 20-62s30.851-20 52-20c15.31 0 27.296 4.894 38 12s18.626 15.726 22 28l56-10c-6.488-18.95-17.026-33.879-30-44-21.798-17.12-49.098-26-84-26zM128 602v236h96c36.718-0.218 60.399 0.861 70 0 15.31-1.4 27.555-5.917 38-12s17.966-13.825 24-24c6.033-10.175 10-21.233 10-32-0-13.674-4.658-25.879-14-36s-22.614-15.801-40-20c12.326-4.63 22.799-12.74 30-22s10-18.91 10-30c-0-10.229-2.162-19.763-8-28s-13.242-15.047-22-20c-8.758-4.953-18.907-8.439-30-10s-27.424-2-50-2h-114zM416 604v234h202v-40h-144v-194h-58zM184 642h34c27.117 0 42.291-0.538 48 0 9.601 0.97 17.134 3.424 22 8s8 10.679 8 18c-0 7.645-2.356 13.317-8 18s-14.139 9.031-24 10c-5.45 0.538-19.554 0-42 0h-38v-54zM184 736h48c26.209 0 42.15 1.739 50 4s13.848 5.047 18 10c4.152 4.953 6 10.894 6 18-0 8.398-2.616 14.994-8 20s-11.437 8.708-20 10c-5.579 0.97-19.241 0-40 0h-54v-62zM0 886v2c0 75.55 60.45 136 136 136h752c75.55 0 136-60.45 136-136v-2h-1024z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-hpblc" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 412, - "id": 183, - "prevSize": 16, - "code": 59762, - "name": "it-other-hpblc" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 114 - }, - { - "icon": { - "paths": [ - "M136 0c-75.55 0-136 60.45-136 136v752c0 75.55 60.45 136 136 136h752c75.55 0 136-60.45 136-136v-752c0-75.55-60.45-136-136-136h-752zM108 352h64v320h-64v-320zM232 352h98l58 218 58-218h96v320h-60v-252l-64 252h-62l-62-252v252h-62v-320zM606 352h98l58 218 58-218h96v320h-60v-252l-64 252h-62l-64-252v252h-60v-320z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-imm" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 413, - "id": 182, - "prevSize": 16, - "code": 59763, - "name": "it-other-imm" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 115 - }, - { - "icon": { - "paths": [ - "M887.994 0h-751.988c-75.59 0-136.006 60.416-136.006 136.006v751.988c0 75.543 60.416 136.006 136.006 136.006h751.988c75.543 0 136.006-60.463 136.006-136.006v-751.988c0-75.59-60.463-136.006-136.006-136.006zM405.923 688.454c-12.567 19.363-30.627 34.49-54.179 45.242-23.505 10.799-49.99 16.198-79.453 16.198-37.329 0-68.608-5.399-93.836-16.337-25.228-10.845-45.009-27.183-59.299-49.059-14.383-21.876-21.923-46.545-22.668-74.147l51.433-4.515c2.467 20.62 8.099 37.609 16.989 50.781 8.89 13.219 22.761 23.924 41.519 32.023 18.758 8.192 39.843 12.288 63.302 12.288 20.806 0 39.191-3.072 55.11-9.309 15.919-6.144 27.788-14.615 35.607-25.46 7.773-10.705 11.636-22.528 11.636-35.328 0-12.847-3.77-24.204-11.264-33.885-7.494-9.635-19.875-17.734-37.097-24.297-11.078-4.329-35.561-10.985-73.402-20.154-37.888-9.030-64.419-17.687-79.593-25.693-19.689-10.38-34.397-23.133-44.032-38.447-9.635-15.267-14.476-32.349-14.476-51.293 0-20.806 5.911-40.262 17.687-58.368 11.823-18.060 29.091-31.837 51.759-41.193 22.807-9.309 48.035-14.010 75.776-14.010 30.58 0 57.53 4.934 80.849 14.755 23.366 9.868 41.286 24.343 53.853 43.473s19.316 40.774 20.247 64.977l-52.317 3.956c-2.839-26.065-12.335-45.754-28.579-59.066-16.198-13.359-40.122-20.015-71.82-20.015-33.001 0-57.065 6.051-72.145 18.153s-22.621 26.671-22.621 43.753c0 14.801 5.353 26.996 16.012 36.538 10.519 9.588 37.888 19.409 82.292 29.417 44.311 10.054 74.752 18.851 91.229 26.298 24.017 10.985 41.705 25.088 53.155 41.984 11.45 16.989 17.129 36.538 17.129 58.647 0.047 22.016-6.237 42.636-18.804 62.092zM862.115 688.454c-12.614 19.363-30.627 34.49-54.132 45.242-23.645 10.799-50.129 16.198-79.5 16.198-37.376 0-68.655-5.399-93.789-16.337-25.228-10.845-45.009-27.183-59.345-49.059s-21.876-46.545-22.621-74.147l51.526-4.515c2.374 20.62 8.006 37.609 16.989 50.781 8.844 13.219 22.575 23.924 41.472 32.023 18.618 8.192 39.75 12.288 63.255 12.288 20.713 0 39.145-3.072 55.156-9.309 15.872-6.144 27.741-14.615 35.514-25.46 7.866-10.705 11.729-22.528 11.729-35.328 0-12.847-3.724-24.204-11.217-33.885-7.494-9.635-19.875-17.734-37.143-24.297-11.124-4.329-35.654-10.985-73.356-20.154-37.981-9.030-64.512-17.687-79.639-25.693-19.735-10.38-34.351-23.133-43.985-38.447-9.728-15.267-14.522-32.349-14.522-51.293 0-20.806 5.865-40.262 17.78-58.368 11.729-18.060 28.998-31.837 51.712-41.193 22.621-9.402 47.849-14.057 75.636-14.057 30.487 0 57.484 4.934 80.849 14.755 23.226 9.868 41.239 24.343 53.853 43.473 12.521 19.13 19.27 40.774 20.294 64.977l-52.364 3.956c-2.793-26.065-12.428-45.754-28.532-59.066-16.244-13.312-40.215-19.968-71.866-19.968-33.001 0-57.158 6.051-72.145 18.153-15.081 12.055-22.575 26.671-22.575 43.706 0 14.801 5.213 26.996 16.012 36.538 10.519 9.588 37.841 19.409 82.246 29.417 44.358 10.054 74.752 18.851 91.276 26.298 24.017 10.985 41.705 25.088 53.108 41.984 11.543 16.989 17.268 36.538 17.268 58.647-0.047 22.063-6.423 42.682-18.944 62.138z" - ], - "attrs": [ - { - "fill": "rgb(99, 147, 205)" - } - ], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-secsis" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [ - 5 - ] - } - }, - "attrs": [ - { - "fill": "rgb(99, 147, 205)" - } - ], - "properties": { - "order": 414, - "id": 181, - "prevSize": 16, - "code": 59764, - "name": "it-other-secsis" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 116 - }, - { - "icon": { - "paths": [ - "M136 0c-75.55 0-136 60.45-136 136v752c0 75.55 60.45 136 136 136h752c75.55 0 136-60.45 136-136v-752c0-75.55-60.45-136-136-136h-752zM714 316c46.577 0 84.911 14.61 114 42 17.315 16.194 31.342 37.681 40 68l-76 20c-4.502-19.638-15.716-36.63-30-48s-31.569-16-52-16c-28.223 0-50.426 9.845-68 30s-26 52.866-26 98c-0 47.891 8.685 81.672 26 102s40.296 30 68 30c20.431 0 37.282-5.080 52-18s25.593-34.265 32-62l74 24c-11.428 41.345-29.422 71.931-56 92s-61.137 30-102 30c-50.56 0-91.448-17.632-124-52s-50-80.395-50-140c-0-63.050 17.275-113.115 50-148s74.67-52 128-52zM156 322h84l96 280 92-280h82l-136 380h-82l-136-380z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-vc" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 415, - "id": 180, - "prevSize": 16, - "code": 59765, - "name": "it-other-vc" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 117 - }, - { - "icon": { - "paths": [ - "M136 0c-75.55 0-136 60.45-136 136v410h1024v-410c0-75.55-60.45-136-136-136h-752zM122 146h234v50l-176 218h182v54h-260v-60l168-208h-148v-54zM380 146h256v54h-96v268h-64v-268h-96v-54zM678 146h238v54h-174v72h162v54h-162v88h180v54h-244v-322zM78 606v244h56v-92h36c25.125 0 44.75-1.665 58-4 9.75-1.89 18.562-4.162 28-10s17.875-13.771 24-24c6.125-10.229 10-22.99 10-38-0-19.458-5.375-35.714-16-48s-24.25-20.331-40-24c-10.25-2.446-32.25-4-66-4h-90zM308 606l66 244h60l56-182 54 182h58l68-244h-56l-42 170-48-170h-66l-50 168-42-168h-58zM698 606v244h56v-102h10c12.75 0 22.125 2.166 28 4s12.75 5.052 18 10c5.25 4.948 13.75 16.987 28 36l40 52h68l-34-48c-13.25-19.013-24.188-30.55-32-38s-18-15.773-30-22c24.125-3.113 41.875-10.047 54-22s18-27.654 18-46c-0-14.454-4-26.77-12-38s-18.688-19.608-32-24c-13.313-4.392-34.625-6-64-6h-116zM134 648h28c20 0 33.375-1.112 40 0 9 1.446 16.125 6.219 22 12s8 13.105 8 22c-0 7.227-1.813 12.552-6 18s-10.625 9.442-18 12c-7.375 2.557-22.125 4-44 4h-30v-68zM754 648h42c22.5 0.001 37.5-0.557 42 0 9 1.334 15.063 4.941 20 10s8 11.772 8 20c0 7.338-2.25 13.108-6 18s-9.375 7.998-16 10c-6.625 2.001-23.375 4-50 4h-40v-62zM0 886v2c0 75.55 60.45 136 136 136h752c75.55 0 136-60.45 136-136v-2h-1024z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-ztepower" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 416, - "id": 179, - "prevSize": 16, - "code": 59766, - "name": "it-other-ztepower" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 118 - }, - { - "icon": { - "paths": [ - "M510.016 0l-510.016 128c38.682 381.043-34.883 833.642 502.078 896h19.845c536.96-62.358 463.396-514.957 502.078-896l-512-128h-1.984zM130.977 332h234.171v50l-174.636 218h180.589v54h-257.984v-60l166.698-208h-148.837v-54zM388.961 332h254.016v54h-95.256v268h-63.504v-268h-95.256v-54zM684.651 332h234.171v54h-170.667v72h158.76v54h-158.76v88h176.62v54h-240.124v-322z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-ztesgs" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 417, - "id": 178, - "prevSize": 16, - "code": 59767, - "name": "it-other-ztesgs" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 119 - }, - { - "icon": { - "paths": [ - "M136 0c-75.55 0-136 60.45-136 136v752c0 75.55 60.45 136 136 136h752c75.55 0 136-60.45 136-136v-752c0-75.55-60.45-136-136-136h-752zM94 262h94l198 334v-334h92v500h-98l-196-326v326h-90v-500zM546 262h384v84h-144v416h-96v-416h-144v-84z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-zxsdr-nt" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 418, - "id": 177, - "prevSize": 16, - "code": 59768, - "name": "it-other-zxsdr-nt" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 120 - }, - { - "icon": { - "paths": [ - "M510.994 0c-282.703 0-510.994 228.291-510.994 510.994s228.291 513.006 510.994 513.006c282.703 0 513.006-230.303 513.006-513.006s-230.303-510.994-513.006-510.994zM506.97 110.648l122.719 122.719h-88.519v162.955c0 20.826-7.813 82.483-44.259 82.483h-66.389c33.843-9.545 42.248-60.513 42.248-80.472v-164.967h-88.519l122.719-122.719zM162.955 356.086v88.519h166.978c19.959 0 68.914-8.405 78.46-42.248v66.389c0 36.446-61.657 44.259-82.483 44.259h-162.955v88.519l-122.719-122.719 122.719-122.719zM859.033 356.086l122.719 122.719-122.719 122.719v-88.519h-164.967c-19.959-0-70.926 10.416-80.472 44.259v-66.389c0-36.446 61.657-46.271 82.483-46.271h162.955v-88.519zM430.522 543.183h66.389c36.446 0 44.259 63.669 44.259 84.495v160.943h88.519l-122.719 124.731-122.719-124.731h88.519v-164.967c0-19.959-8.405-70.926-42.248-80.472z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-router" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 419, - "id": 176, - "prevSize": 16, - "code": 59769, - "name": "it-router" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 121 - }, - { - "icon": { - "paths": [ - "M510 0c-282.703 0-510 227.297-510 510s227.297 514 510 514c9.173 0 18.943-1.521 28-2-36.918-3.27-66-32.204-66-70v-74l-88-90h88v-164c0-19.959-8.157-70.455-42-80h66c34.803 0 45.287 56.63 46 80 0.678-0.019 1.317 0 2 0h408c19.995 0 38.952 8.952 52 22 11.787-43.072 20-89.259 20-136 0-282.703-231.297-510-514-510zM506 110l124 124h-88v162c0 20.826-9.554 82-46 82h-66c33.843-9.545 42-60.041 42-80v-164h-88l122-124zM162 356v88h168c19.959 0 68.455-8.157 78-42v66c0 36.446-61.174 46-82 46h-164v88l-122-124 122-122zM860 356l122 122-122 124v-88h-166c-19.959-0-70.455 10.157-80 44v-68c0-36.446 61.174-46 82-46h164v-88zM636 686c-35.745 0-64.066 14.163-86 40s-32 61.302-32 108c-0 44.146 10.182 78.546 32 104s50.112 38 84 38c27.388 0 50.186-7.136 68-22s30.34-37.378 38-68l-50-18c-4.294 20.542-12.136 36.431-22 46s-20.306 14-34 14c-18.569 0-34.395-6.944-46-22s-18-40.53-18-76c-0-33.428 6.22-57.072 18-72s27.083-24 46-24c13.694 0 26.425 5.58 36 14s14.982 19.455 18 34l50-14c-5.803-22.456-14.395-40.006-26-52-19.497-20.287-44.782-30-76-30zM894 686c-35.745 0-64.066 14.163-86 40s-34 61.302-34 108c0 44.146 12.182 78.546 34 104s50.112 38 84 38c27.388 0 50.186-7.136 68-22s30.34-37.378 38-68l-50-18c-4.294 20.542-12.136 36.431-22 46s-22.306 14-36 14c-18.569 0-32.395-6.944-44-22s-18-40.53-18-76c-0-33.428 6.221-57.072 18-72s27.083-24 46-24c13.694 0 24.425 5.58 34 14s16.982 19.455 20 34l50-14c-5.803-22.456-14.395-40.006-26-52-19.497-20.287-44.782-30-76-30z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-router-cisco" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 420, - "id": 175, - "prevSize": 16, - "code": 59770, - "name": "it-router-cisco" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 122 - }, - { - "icon": { - "paths": [ - "M510 0c-282.703 0-510 227.297-510 510s227.297 514 510 514c9.173 0 18.943-1.521 28-2-36.918-3.27-66-32.204-66-70v-74l-88-90h88v-164c0-19.959-8.157-70.455-42-80h66c34.803 0 45.287 56.63 46 80 0.678-0.019 1.317 0 2 0h408c80.239 45.398 67.455-57.196 72-114 0-282.703-231.297-510-514-510zM506 110l124 124h-88v162c0 20.826-9.554 82-46 82h-66c33.843-9.545 42-60.041 42-80v-164h-88l122-124zM162 356v88h168c19.959 0 68.455-8.157 78-42v66c0 36.446-61.174 46-82 46h-164v88l-122-124 122-122zM860 356l122 122-122 124v-88h-166c-19.959-0-70.455 10.157-80 44v-68c0-36.446 61.174-46 82-46h164v-88zM644 666v206c-0 25.958-2.021 43.761-8 52s-15.563 12-30 12c-14.292 0-25-4.479-32-16-4.667-7.583-7.271-21.625-8-40l-62 8c0.146 34.271 8.937 60.281 26 78s40.354 26 72 26c26.979 0 49.521-6.698 66-18s27.729-25.333 34-44c4.667-14.292 8-35.458 8-62v-202h-66zM778 666v320h66v-120h42c29.312 0 50.542-2.938 66-6 11.375-2.479 22.989-6.344 34-14s20.854-18.583 28-32c7.146-13.417 10-30.312 10-50-0-25.521-5.604-45.885-18-62s-27.625-27.187-46-32c-11.959-3.208-38.625-4-78-4h-104zM844 720h30c23.333 0 40.271 0.544 48 2 10.5 1.896 19.146 6.417 26 14s10 18.334 10 30c-0 9.479-3.115 16.854-8 24s-11.396 12.646-20 16c-8.604 3.354-26.479 4-52 4h-34v-90z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-router-juniper" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 421, - "id": 174, - "prevSize": 16, - "code": 59771, - "name": "it-router-juniper" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 123 - }, - { - "icon": { - "paths": [ - "M510 0c-282.703 0-510 227.297-510 510s227.297 514 510 514c9.173 0 18.943-1.521 28-2-36.918-3.27-66-32.204-66-70v-74l-88-90h88v-164c0-19.959-8.157-70.455-42-80h66c34.803 0 45.287 56.63 46 80 0.678-0.019 1.317 0 2 0h408c19.995 0 38.952 8.952 52 22 11.787-43.072 20-89.259 20-136 0-282.703-231.297-510-514-510zM506 110l124 124h-88v162c0 20.826-9.554 82-46 82h-66c33.843-9.545 42-60.041 42-80v-164h-88l122-124zM162 356v88h168c19.959 0 68.455-8.157 78-42v66c0 36.446-61.174 46-82 46h-164v88l-122-124 122-122zM860 356l122 122-122 124v-88h-166c-19.959-0-70.455 10.157-80 44v-68c0-36.446 61.174-46 82-46h164v-88zM518 692v46h90l-100 182v52h156v-48h-110l106-188v-44h-142zM674 692v46h58v234h38v-234h58v-46h-154zM852 692v280h146v-48h-106v-76h96v-48h-96v-62h102v-46h-142z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-router-zte" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 422, - "id": 173, - "prevSize": 16, - "code": 59772, - "name": "it-router-zte" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 124 - }, - { - "icon": { - "paths": [ - "M498 0c-82.519 2.143-165.486 23.825-242 68-244.845 141.361-329.362 455.154-188 700 106.738 184.875 312.557 278.159 512 252-23.098-16.31-36-37.265-36-58 0-22.862 16.376-42.721 44-60h-32c-41.912 0-76-34.088-76-76v-106l-34 20c-24.647-27.731-47.939-55.857-70-88l104-60v-64c0-41.912 34.088-76 76-76h234c-4.577-10.693-8.966-21.469-14-32l118-68c13.86 32.95 24.711 65.817 30 100h66c10.478 0 20.943 2.182 30 6-7.234-69.314-26.904-137.747-64-202-97.186-168.332-276.459-260.715-458-256zM522 98c45.425 1.164 91.517 8.458 134 24l-64 36c-22.81-22.127-46.007-41.704-70-60zM394 114c39.587 25.645 77.222 56.281 114 92l-84 50-72-126c13.742-5.791 27.946-11.802 42-16zM760 178c31.164 23.016 57.718 51.994 82 84l-116 66c-20.412-32.755-40.883-63.378-64-92l88-50c3.203-1.849 7.605-5.435 10-8zM260 182h2l72 126-92 52c-12.71-49.313-19.255-97.188-22-144 12.39-12.178 25.888-23.296 40-34zM578 284c22.939 28.459 45.686 59.403 66 92l-112 64-56-96 102-60zM142 324c3.994 27.9 10.635 55.372 18 84l-58 34c7.124-40.784 21.181-80.964 40-118zM384 396l56 96-118 70c-18.2-33.781-34.67-67.986-48-102l110-64zM192 506c13.396 34.309 27.682 69.999 46 104l-108 62c-15.214-36.17-27.501-72.402-32-110l94-56zM612 506c-49.516 0-90 38.484-90 88v194c0 49.516 40.484 90 90 90h102l-6 34c-51.586 9.811-88 30.549-88 54 0 32.643 68.81 58 154 58s154-25.357 154-58c0-24.169-37.838-46.585-92-56l-6-32h104c49.516 0 90-40.484 90-90v-194c0-49.516-40.484-88-90-88h-322zM584 574h380v236h-380v-236zM292 700c22.147 32.13 47.183 58.271 72 86l-102 60c-30.311-22.695-56.283-52.739-80-84l110-62zM438 864c28.836 24.958 59.885 44.975 90 64-53.295 1.962-108.201-6.157-158-24l68-40z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-sdn-host" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 423, - "id": 172, - "prevSize": 16, - "code": 59773, - "name": "it-sdn-host" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 125 - }, - { - "icon": { - "paths": [ - "M498 0c-82.532 2.144-165.473 23.817-242 68-244.886 141.385-329.386 455.113-188 700 58.255 100.901 146.218 174.257 246 216v-168l-52 30c-30.316-22.699-56.279-52.734-80-84l104-60-14-4-156-8 30-28-16 10c-15.217-36.176-27.5-72.396-32-110l94-56c10.044 25.725 21.614 52.249 34 78l72-72c-8.357-17.441-17.093-34.376-24-52l112-64 10 18 92-92 10 10 82-48c22.943 28.464 43.682 59.397 64 92l-66 36 78 78 40-24 104-60 94-56c7.367 17.515 14.618 36.072 20 54h4l92-14c-11.285-45.819-29.221-91.081-54-134-97.203-168.36-276.429-260.716-458-256zM522 98c45.433 1.164 91.51 8.455 134 24l-64 36c-22.814-22.131-46.003-41.701-70-60zM394 114c39.593 25.649 77.216 56.275 114 92l-84 50-72-126c13.744-5.792 27.944-11.801 42-16zM760 178c31.169 23.019 57.714 49.989 82 82l-116 68c-20.416-32.76-40.879-63.373-64-92l88-52c3.203-1.849 7.605-3.435 10-6zM262 182l72 126-92 52c-12.711-49.321-17.254-97.18-20-144 12.392-12.18 25.886-23.294 40-34zM142 324c3.995 27.904 10.633 55.367 18 84l-58 34c7.125-40.791 21.178-80.958 40-118zM474 436l-208 210h126v286l72 92h94v-378h126l-210-210zM804 436l-72 90v288h-126l208 210 210-210h-126v-378h-94z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-sdn-switch" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 424, - "id": 171, - "prevSize": 16, - "code": 59774, - "name": "it-sdn-switch" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 126 - }, - { - "icon": { - "paths": [ - "M52 0c-28.218 0-52 27.877-52 62v900c0 34.123 23.782 62 52 62h524c28.218 0 50-27.877 50-62v-900c0-34.123-19.782-62-48-62h-526zM674 6c18.999 10.074 32 31.54 32 56v900c0 20.133-9.853 36.659-24 48l262-78c42.237-12.574 80-30.971 80-70v-706c0-39.029-37.766-57.42-80-70l-270-80zM120 140h388c19.009 0 34 19.012 34 42v210c0 22.988-14.991 40-34 40h-388c-19.009 0-36-17.012-36-40v-210c0-22.988 16.991-42 36-42zM136 200c-8.519 0-16 12.757-16 30s7.481 32 16 32h356c8.519 0 14-14.757 14-32s-5.481-30-14-30h-356zM136 312c-8.519 0-16 12.757-16 30s7.481 32 16 32h356c8.519 0 14-14.757 14-32s-5.481-30-14-30h-356zM314 672c35.346 0 64 28.654 64 64s-28.654 64-64 64c-35.346 0-64-28.654-64-64s28.654-64 64-64z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-server" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 425, - "id": 170, - "prevSize": 16, - "code": 59775, - "name": "it-server" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 127 - }, - { - "icon": { - "paths": [ - "M512 0c-282.77 0-512 229.23-512 512s229.23 512 512 512c282.77 0 512-229.23 512-512s-229.23-512-512-512zM512 64c247.424 0 448 200.576 448 448s-200.576 448-448 448c-247.424 0-448-200.576-448-448s200.576-448 448-448zM512 128c-212.077 0-384 171.923-384 384 0 36.156 6.659 70.831 16 104l112-292h68l130 320h-72l-28-72h-128l-26 72h-48c53.837 147.035 194.315 252 360 252s306.163-104.965 360-252h-72l-72-110-72 110h-76l108-166-98-154h76l64 102 62-102h56c-65.661-117.507-191.828-196-336-196zM486 324h64v320h-64v-320zM856 342l-88 138 106 158c13.732-39.506 22-81.817 22-126 0-60.905-14.763-118.84-40-170zM290 398l-44 120h88l-44-120z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-server-aix" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 426, - "id": 169, - "prevSize": 16, - "code": 59776, - "name": "it-server-aix" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 128 - }, - { - "icon": { - "paths": [ - "M702.196 0c-83.559 0-149.421 75.593-149.421 171.057 0 45.281 15.194 86.372 39.69 117.162-8.686 12.223-17.338 24.876-25.682 37.492-23.194 35.070-43.629 76.976-60.702 89.043-83.523 59.033-121.404 129.992-121.404 248.384 0 16.631 2.556 30.874 4.669 46.865 23.321-11.463 52.84-16.403 84.049-16.403 4.043 0 7.718-0.217 11.673 0-3.685-18.422-7.004-35.25-7.004-53.895 1.251-128.832 55.389-209.786 114.4-292.906 2.648-3.499 6.269-9.105 9.339-14.059 2.452 4.241 6.283 6.793 11.673 9.373l49.029 23.432c23.628 11.307 48.25 10.417 72.376 0l53.698-23.432c0.84-0.363 1.558 0.418 2.335 0 42.272 91.45 99.084 194.293 100.392 278.847 0 23.808-2.958 45.866-7.004 67.954 13.057-2.524 27.684-2.343 42.025-2.343 18.9 0 37.191 0.405 53.698 4.686 0.818-10.044 2.335-17.843 2.335-28.119 0-99.83-26.283-175.644-88.719-236.668-25.549-24.971-56.834-78.168-91.053-126.535 31.389-31.635 51.363-77.388 51.363-128.879 0-95.465-68.196-171.057-151.755-171.057zM641.494 140.595c25.311 0 44.359 22.043 44.359 51.551 0 4.072-1.65 7.893-2.335 11.716-4.628 0.607-9.186 2.398-14.008 4.686 0-22.185-14.217-39.835-30.351-39.835s-28.016 17.65-28.016 39.835c0 13.422 4.319 27.854 11.673 35.149-16.692-8.63-28.016-29.42-28.016-51.551 0-29.509 21.383-51.551 46.694-51.551zM762.898 142.938c25.311 0 46.694 22.043 46.694 51.551 0 22.132-11.324 42.921-28.016 51.551 5.88-7.348 7.004-18.677 7.004-30.462 0-22.185-11.882-42.178-28.016-42.178s-30.351 19.994-30.351 42.178c0 2.428-0.299 4.792 0 7.030-3.068-2.177-6.263-5.265-9.339-7.030-2.536-6.816-4.669-13.366-4.669-21.089 0-29.509 21.383-51.551 46.694-51.551zM699.861 224.952c12.3-0 25.767 3.837 35.020 11.716l46.694 42.178c13.118 11.17 17.678 26.761 11.673 39.835-1.907 1.316-2.389 3.702-4.669 4.686l-53.698 23.432c-24.126 10.417-48.748 11.307-72.376 0l-49.029-23.432c-1.721-0.824-3.302-1.337-4.669-2.343-7.374-13.896-2.206-30.36 11.673-42.178l46.694-42.178c9.253-7.879 20.386-11.716 32.686-11.716zM620.482 285.876c-2.285 2.318-4.669 4.488-4.669 7.030 0 14.123 39.651 25.776 86.384 25.776s81.714-11.653 81.714-25.776c0-2.542-0.049-4.712-2.335-7.030-9.308 11.067-39.863 18.746-79.38 18.746s-72.407-7.679-81.714-18.746zM879.633 710.005c-64.504 7.634-86.384 42.072-86.384 114.819 0 83.14-83.624 189.803 4.669 189.803s224.131-80.887 224.131-164.027c0-83.14-23.773-140.595-112.066-140.595-11.037 0-21.136-1.091-30.351 0zM466.391 719.378c-88.293 0-112.066 57.455-112.066 140.595s135.839 164.027 224.131 164.027c88.293 0 4.669-104.32 4.669-187.46s-28.442-117.162-116.735-117.162zM620.482 888.092l14.008 49.208 14.008 56.238c11.583 1.562 23.045 2.343 35.020 2.343 12.676 0 25.138-0.585 37.355-2.343 5.185-25.46 21.012-89.043 21.012-89.043l7.004-16.403c-19.981 9.799-40.537 16.403-63.037 16.403-23.030 0-44.951-6.259-65.372-16.403z", - "M434.89 2.105l-417.088 440.582 190.741 30.089-208.544 371.808 399.285-425.537-139.877-83.818z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-server-klinux" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 427, - "id": 168, - "prevSize": 16, - "code": 59777, - "name": "it-server-klinux" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 129 - }, - { - "icon": { - "paths": [ - "M510.592 0c-281.856 0-510.592 230.336-510.592 513.472s228.736 510.528 510.592 510.528 513.408-227.52 513.408-510.528c0-283.072-231.552-513.472-513.408-513.472zM464.704 88.896l31.552 8.64 37.312 8.576 31.552-5.696 17.28-2.88 22.912-5.76c0 0 20.992-4.544 31.488-2.88 10.304 1.664 21.888-0.768 31.552 2.88 13.376 5.056 25.984 14.080 37.248 22.912 19.456 15.296 37.248 63.104 37.248 63.104l20.096 54.528 22.848 65.984 5.76 48.768-5.76 60.224 43.136-37.312c33.344 8.128 72.64 28.736 111.808 54.528 0 0 7.168 44.672 5.76 65.984-1.216 18.496-4.8 38.656-14.336 54.528-16.768 27.776-44.608 45.632-71.744 63.104-21.504 13.888-44.032 25.344-68.864 31.488-38.016 9.344-78.4 6.4-117.568 5.76-37.056-0.64-72.576-1.6-108.992-8.64-43.264-8.256-88.064-20.736-128.96-37.248-47.36-19.136-134.784-74.624-134.784-74.624s-76.672-44.16-114.752-80.32c-15.232-14.4-48.832-65.92-48.832-65.92s-8.896-48.32 2.88-57.344c0 0 38.080-28.736 54.528-31.552 39.616-6.784 79.040-8.512 123.328-14.336v2.816l22.912 22.976 63.104 43.008 91.776 34.432 45.952 20.096c0 0 34.816 2.88 45.824 2.88 11.136 0 2.88-22.912 2.88-22.912l-17.216-17.28-5.76-14.336-8.512-22.912-14.336-17.216-94.656-31.552-77.44-28.672-40.192-31.616 8.64-40.128 17.216-37.312 14.336-22.976 22.976-14.336 31.552-8.64 37.248-2.816zM613.888 114.752l-8.64 14.336 25.728 8.64 20.032 5.696-20.032 31.552 60.224-14.336 5.824-28.672-31.488-11.456-51.648-5.76zM410.176 154.944l-14.336 42.944 31.552 31.552 17.216-5.76 43.008-8.576 48.768-14.336 5.76-17.216-37.312-8.576-54.464 8.576-40.192-28.608zM238.080 530.688h17.216l25.792 14.336 37.312 40.128 51.648 5.76 65.984 80.384 286.848 5.76-22.976 106.112-48.768 62.976-28.608 25.856-2.88-2.88 2.88 22.848 31.488-5.76 108.992-80.32v-22.912h114.752l45.888 11.52c-92.032 131.136-244.48 215.104-413.056 215.104-216.192 0-400.128-135.424-470.4-332.672l20.096-5.824 8.576-34.368 8.576-5.76 100.416 5.76 68.864 45.888 25.792-5.696-2.88-28.672-37.312-34.432-14.336-22.912-2.88-28.736 8.64-14.336 14.336-17.152zM527.808 740.032c-10.688 2.368 1.152 9.344-8.576 14.4-19.008 9.664 22.912 28.672 22.912 28.672s22.72 12.032 34.368 11.456c10.624-0.576 28.736-11.456 28.736-11.456 17.728-17.28 9.024-41.344 0-34.496l-22.976 14.464h-22.912c0-0.064-19.712-25.536-31.552-23.040z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-server-redhat" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 428, - "id": 167, - "prevSize": 16, - "code": 59778, - "name": "it-server-redhat" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 130 - }, - { - "icon": { - "paths": [ - "M468 0l-48 268c16.173-3.297 30.849-4 48-4s33.827 0.703 50 4l-50-268zM140 134l150 208c22.048-23.283 46.359-42.605 76-56l-226-152zM798 134l-226 152c29.641 13.395 53.952 32.717 76 56l150-208zM0 374l222 102c4.34-29.541 14.151-58.816 28-84l-250-18zM938 374l-252 18c13.849 25.184 23.66 54.459 28 84l224-102zM650 526c-359.894 0-650 58.809-650 132s290.106 134 650 134c58.987 0 117.658-3.012 172-6-10.202 0.109-19.67 0-30 0-330.653 0-600-54.037-600-122s269.347-124 600-124c82.663 0 160.373 3.773 232 10-105.684-15.034-235.24-24-374-24z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-server-solaris" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 429, - "id": 166, - "prevSize": 16, - "code": 59779, - "name": "it-server-solaris" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 131 - }, - { - "icon": { - "paths": [ - "M516 58c-65.675 2.119-123.16 4.56-184 34-72.421 32-145.651 59.003-206 112l-68 84c-69.777 119.589-54.416 232.934 106 290 77.742 5.552 221.478-57.888 130-202-29.523-28.96-55.273-37.398-104-30-41.79 11.271-68.086 46.084-54 102 19.492 27.884 22.688 25.105 42 30l48 4 8-26-6-20-8-6-24 8c-8.312 15.984-60.714-16.58-8-42 9.817-4.489 38.161-14.031 60 6 31.625 31.716 57.773 84.241-28 118-67.019 7.312-100.036-7.173-128-76l-2-44 8-40c25.624-32.030 36.815-49.83 80-54 52.83-2.032 90.154-5.104 136 26l30 40 20 40 14 30 34 22 30 14c0-47.834-13.068-83.628 26-114l28-10c29.176 0.729 53.498-9.082 82 10l20 20 46 52 52 28 44 26 8-6-24-32c-9.354-42.571-25.187-62.438 0-106l26-8c80.668 5.366 185.805 20.894 260-38 5.991-2.681 19.875-27.248-2-38-2.468 7.251-2.487 15.266-20 22-43.274 12.798-69.848 21.603-118-4-31.965-11.776-57.959-15.825-76-46l-6-12 18-6 40 24c25.187 12.253 45.744 28.964 76 30 35.19-2.629 61.074 2.317 92-20l14-16c-13.040-40.569-18.998-80.996-52-110-42.108-21.054-82.178-38.858-130-44l-86-12 6 38-50-22-90-16-110-10zM918 122c33.395 0 60 26.605 60 60s-26.605 60-60 60c-33.395 0-60-26.605-60-60s26.605-60 60-60zM918 142c-21.945 0-40 18.055-40 40s18.055 40 40 40c21.945 0 40-18.055 40-40s-18.055-40-40-40zM922 154c10.165 0 18 7.835 18 18s-7.835 18-18 18c-10.165 0-18-7.835-18-18s7.835-18 18-18zM116 646c-21.527 0-40.779 4.988-56 12s-25.912 16.594-34 30c-8.088 13.407-12 28.6-12 44-0 23.926 8.804 43.362 26 60 12.228 11.825 33.684 21.888 64 30 23.565 6.325 37.376 11.525 44 14 9.68 3.713 16.115 6.981 20 12s6 10.85 6 18c-0 11.138-4.765 21.681-14 30s-21.785 12-40 12c-17.196 0-31.874-4.65-42-14s-16.688-24.062-20-44l-54 6c3.694 33.826 15.021 60.331 34 78s46.589 26 82 26c24.329 0 43.696-4.644 60-12s29.083-18.875 38-34c8.916-15.125 14-30.675 14-48-0-19.113-4.549-35.006-12-48s-16.817-22.506-30-30c-13.184-7.494-34.487-14.987-62-22s-44.867-13.537-52-20c-5.605-5.087-8-12.85-8-20-0-7.837 2.013-13.325 8-18 9.298-7.287 23.568-10 40-10 15.922 0 28.039 3.194 36 10s11.58 18.463 14 34l58-4c-0.892-27.775-10.231-49.362-28-66s-44.844-26-80-26zM616 646c-21.527 0-38.779 4.988-54 12s-27.912 16.594-36 30c-8.088 13.407-12 28.6-12 44-0 23.926 8.804 43.362 26 60 12.228 11.825 33.684 21.888 64 30 23.565 6.325 39.376 11.525 46 14 9.681 3.713 16.115 6.981 20 12s6 10.85 6 18c-0 11.138-4.765 21.681-14 30s-23.785 12-42 12c-17.196 0-29.874-4.65-40-14s-16.689-24.062-20-44l-56 6c3.694 33.826 15.021 60.331 34 78s46.589 26 82 26c24.329 0 43.695-4.644 60-12s29.083-18.875 38-34c8.916-15.125 14-30.675 14-48-0-19.113-4.548-35.006-12-48s-16.817-22.506-30-30c-13.184-7.494-34.487-14.987-62-22s-44.867-13.537-52-20c-5.605-5.087-8-12.85-8-20-0-7.837 4.013-13.325 10-18 9.298-7.287 21.568-10 38-10 15.922 0 28.039 3.194 36 10s13.58 18.462 16 34l56-4c-0.892-27.775-10.231-49.362-28-66s-44.844-26-80-26zM896 650c-33.989 0-63.77 13.115-86 40s-32 64.524-32 112c0 39.744 7.086 71.924 24 98 23.472 24.814 37.445 40.196 80 48 10.305-3.467 69.29 0.256 76-6 9.704-9.048 12.525-32.631 2-44-6.247-6.748-56.534-2.879-72-6-26.387-8.256-41.018-28.763-40-70h170c0.966-58.086-9.932-101.856-32-130s-51.823-42-90-42zM900 708c13.853 0 24.335 4.58 34 16s15.518 28.060 16 50h-102c-0.16-20.681 4.335-35.951 14-48s23.18-18 38-18zM278 736v138c-0 20.625 1.16 36.312 6 48s13.173 21.537 24 28c10.827 6.463 24.371 10 38 10 13.374-0 25.963-3.262 38-10s20.612-16.312 28-28v32h50v-218h-54v92c-0 31.351-1.325 49.956-4 58s-6.74 14.569-14 20c-7.261 5.432-16.829 10-26 10-8.025 0-12.778-1.944-18-6s-10.026-11.056-12-18c-1.974-6.944-2-25.199-2-56v-100h-54z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-server-suse" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 430, - "id": 165, - "prevSize": 16, - "code": 59780, - "name": "it-server-suse" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 132 - }, - { - "icon": { - "paths": [ - "M398 48c-49.48-0.394-105.040 6.773-168 26l-106 332c130.327-31.196 261.844-49.831 374 28l100-326c-53.73-36.361-117.533-59.343-200-60zM646 136l-102 326c85.969 58.177 202.107 85.272 370 34l104-332c-130.327 31.196-259.844 49.831-372-28zM276 446c-49.48-0.394-105.040 8.773-168 28l-104 330c130.327-31.196 261.844-49.831 374 28l100-324c-53.73-36.361-119.533-61.343-202-62zM532 532l-100 324c85.969 58.177 200.107 87.272 368 36l106-332c-130.327 31.196-261.844 49.831-374-28z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-server-windows" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 431, - "id": 164, - "prevSize": 16, - "code": 59781, - "name": "it-server-windows" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 133 - }, - { - "icon": { - "paths": [ - "M172 2c-94.922 0-174 77.078-174 172v678c0 94.922 79.078 174 174 174h678c94.922 0 172-79.078 172-174v-678c0-94.922-77.078-172-172-172h-678zM172 66h678c60.656 0 108 47.344 108 108v678c0 60.656-47.344 110-108 110h-678c-60.656 0-110-49.344-110-110v-678c0-60.656 49.344-108 110-108zM648 128c-65.702 0-118 59.253-118 134 0 35.455 12.739 67.892 32 92-6.83 9.571-13.44 18.122-20 28-18.237 27.459-34.576 60.552-48 70-65.673 46.222-96 101.301-96 194 0 13.022 2.338 25.479 4 38 18.337-8.975 41.46-14 66-14 3.179 0 4.89-0.173 8 0-2.898-14.424-4-27.401-4-42 0.984-100.874 43.6-162.918 90-228 2.082-2.74 3.586-8.121 6-12 1.928 3.32 5.762 5.98 10 8l38 18c18.578 8.853 39.030 8.156 58 0l42-18c0.66-0.284 1.389 0.328 2 0 33.238 71.604 76.972 151.795 78 218 0 18.641-2.819 36.706-6 54 10.267-1.976 22.724-2 34-2 14.861 0 29.020 0.648 42 4 0.643-7.865 2-15.954 2-24 0-78.166-20.908-136.219-70-184-20.089-19.552-45.094-62.129-72-100 24.681-24.77 40-59.684 40-100 0-74.747-52.298-134-118-134zM438 130l-328 344 150 24-164 292 314-334-110-66 138-260zM600 238c19.902 0 34 16.895 34 40 0 3.188-1.461 7.006-2 10-3.639 0.476-6.208 2.208-10 4 0-17.37-11.314-32-24-32s-22 14.63-22 32c0 10.509 4.217 20.288 10 26-13.125-6.757-22-22.671-22-40 0-23.105 16.098-40 36-40zM696 240c19.902 0 36 16.895 36 40 0 17.329-8.875 33.243-22 40 4.623-5.753 6-14.772 6-24 0-17.37-9.314-32-22-32s-24 14.63-24 32c0 1.901-0.237 4.248 0 6-2.413-1.705-5.581-4.618-8-6-1.994-5.337-4-9.953-4-16 0-23.105 18.098-40 38-40zM646 304c9.671-0 20.724 3.831 28 10l36 32c10.315 8.746 14.721 21.763 10 32-1.499 1.031-2.207 1.229-4 2l-42 20c-18.97 8.156-39.422 8.853-58 0l-38-20c-1.353-0.645-2.925 0.788-4 0-5.798-10.88-0.914-24.747 10-34l36-32c7.276-6.169 16.329-10 26-10zM584 352c-1.797 1.815-4 4.010-4 6 0 11.058 31.255 20 68 20s64-8.942 64-20c0-1.99-0.205-4.185-2-6-7.318 8.665-30.929 14-62 14s-56.682-5.335-64-14zM788 684c-50.719 5.978-68 33.040-68 90 0 65.098-67.424 148 2 148s178-62.902 178-128c0-65.098-20.576-110-90-110-8.678 0-14.754-0.854-22 0zM462 692c-69.424 0-88 44.902-88 110s106.576 128 176 128c69.424 0 4-82.902 4-148s-22.576-90-92-90zM584 824l10 38 12 44c9.107 1.223 16.584 2 26 2 9.967 0 20.394-0.621 30-2 4.077-19.935 16-70 16-70l6-12c-15.711 7.673-32.308 12-50 12-18.109 0-33.944-4.058-50-12z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-server-zxve" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 432, - "id": 163, - "prevSize": 16, - "code": 59782, - "name": "it-server-zxve" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 134 - }, - { - "icon": { - "paths": [ - "M154 0c-85.040 0-154 68.96-154 154v716c0 85.040 68.96 154 154 154h716c85.040 0 154-68.96 154-154v-716c0-85.040-68.96-154-154-154h-716zM184 208h656c30.953 0 56 25.979 56 58v12c0 32.021-25.047 58-56 58h-656c-30.953 0-56-25.979-56-58v-12c0-32.021 25.047-58 56-58zM184 476h656c30.953 0 56 25.979 56 58v12c0 32.021-25.047 58-56 58h-656c-30.953 0-56-25.979-56-58v-12c0-32.021 25.047-58 56-58zM184 744h656c30.953 0 56 25.979 56 58v12c0 32.021-25.047 58-56 58h-656c-30.953 0-56-25.979-56-58v-12c0-32.021 25.047-58 56-58z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-storage" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 433, - "id": 162, - "prevSize": 16, - "code": 59783, - "name": "it-storage" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 135 - }, - { - "icon": { - "paths": [ - "M154 0c-85.040 0-154 68.96-154 154v716c0 85.040 68.96 154 154 154h716c85.040 0 154-68.96 154-154v-716c0-85.040-68.96-154-154-154h-716zM178 122h672c26.747 0 48 28.544 48 64s-21.253 64-48 64h-672c-26.747 0-48-28.544-48-64s21.253-64 48-64zM176 344h672c26.747 0 48 28.544 48 64s-21.253 64-48 64h-672c-26.747 0-48-28.544-48-64s21.253-64 48-64zM320 586c39.229 0 71.5 10.813 96 34 14.583 13.709 24.708 34.334 32 60l-64 16c-3.792-16.625-11.969-30.375-24-40s-26.792-14-44-14c-23.771 0-43.198 8.938-58 26s-22 43.792-22 82c-0 40.542 7.417 68.792 22 86s34.667 26 58 26c17.208 0 31.604-5.062 44-16s20.604-28.521 26-52l64 20c-9.625 35-25.615 61.010-48 78s-51.584 26-86 26c-42.583 0-76.583-14.906-104-44s-42-69.542-42-120c-0-53.375 14.437-94.468 42-124s63.083-44 108-44zM724 586c39.229 0 71.5 10.813 96 34 14.583 13.709 26.708 34.334 34 60l-64 16c-3.792-16.625-11.969-30.375-24-40s-26.792-14-44-14c-23.771 0-43.198 8.938-58 26s-22 43.792-22 82c-0 40.542 7.417 68.792 22 86s32.667 26 56 26c17.208 0 31.604-5.062 44-16s22.604-28.521 28-52l62 20c-9.625 35-25.615 61.010-48 78s-51.583 26-86 26c-42.583 0-76.583-14.906-104-44s-42-69.542-42-120c-0-53.375 14.437-94.468 42-124s63.083-44 108-44z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-storage-cisco-mds" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 434, - "id": 161, - "prevSize": 16, - "code": 59784, - "name": "it-storage-cisco-mds" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 136 - }, - { - "icon": { - "paths": [ - "M154 0c-85.040 0-154 68.96-154 154v716c0 85.040 68.96 154 154 154h716c85.040 0 154-68.96 154-154v-716c0-85.040-68.96-154-154-154h-716zM178 122h672c26.747 0 48 28.544 48 64s-21.253 64-48 64h-672c-26.747 0-48-28.544-48-64s21.253-64 48-64zM176 344h672c26.747 0 48 28.544 48 64s-21.253 64-48 64h-672c-26.747 0-48-28.544-48-64s21.253-64 48-64zM76 598h94c21.391 0 38.778 3.844 50 8 15.079 5.641 27.246 13.603 38 28s18.389 31.146 24 52c5.611 20.854 8 47.424 8 78-0 26.865-0.74 50.556-6 70-6.429 23.748-16.077 43.306-28 58-9.001 11.132-20.687 17.766-36 24-11.456 4.602-26.83 10-46 10h-98v-328zM356 598h152v56h-88v72h76v54h-76v90h94v56h-158v-328zM568 602h64v268h100v56h-164v-324zM782 604h66v268h100v56h-166v-324zM128 654v216h38c14.495 0 25.571-1.922 32-4 8.416-2.672 14.447-5.617 20-12s10.493-17.38 14-32c3.507-14.62 6-34.767 6-60s-2.493-44.493-6-58c-3.507-13.507-7.688-24.43-14-32s-14.298-13.328-24-16c-7.248-2.077-22.842-2-44-2h-22z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-storage-md3000" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 435, - "id": 160, - "prevSize": 16, - "code": 59785, - "name": "it-storage-md3000" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 137 - }, - { - "icon": { - "paths": [ - "M154 0c-85.040 0-154 68.96-154 154v716c0 85.040 68.96 154 154 154h716c85.040 0 154-68.96 154-154v-716c0-85.040-68.96-154-154-154h-716zM178 122h672c26.747 0 48 28.544 48 64s-21.253 64-48 64h-672c-26.747 0-48-28.544-48-64s21.253-64 48-64zM176 344h672c26.747 0 48 28.544 48 64s-21.253 64-48 64h-672c-26.747 0-48-28.544-48-64s21.253-64 48-64zM84 590h64l132 214v-214h60v320h-66l-128-208v208h-62v-320zM376 590h70l80 236 80-236h68l-116 320h-68l-114-320zM684 590h256v54h-96v266h-64v-266h-96v-54z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-storage-netvault" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 436, - "id": 159, - "prevSize": 16, - "code": 59786, - "name": "it-storage-netvault" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 138 - }, - { - "icon": { - "paths": [ - "M869.981 0h-715.962c-85.039 0-154.019 68.98-154.019 154.019v716.009c0 84.992 68.98 153.972 154.019 153.972h716.009c84.992 0 153.972-68.98 153.972-154.019v-715.962c0-85.039-68.98-154.019-154.019-154.019zM177.99 121.996h672.023c26.717 0 47.988 28.532 47.988 64s-21.271 64-47.988 64h-672.023c-26.764 0-47.988-28.532-47.988-64s21.271-64 47.988-64zM175.988 344.017h672.023c26.717 0 47.988 28.532 47.988 64s-21.271 64-47.988 64h-672.023c-26.764 0-47.988-28.532-47.988-64s21.271-64 47.988-64zM351.418 907.543h-253.533v-39.377l164.305-205.452c11.636-14.569 22.761-27.229 33.233-37.981h-178.921v-37.841h229.702v37.841l-180.038 222.441-19.456 22.528h204.707v37.841zM627.293 624.733h-106.077v282.81h-42.496v-282.81h-105.658v-37.841h254.185v37.841zM910.988 907.543h-239.337v-320.698h231.843v37.841h-189.347v98.211h177.385v37.609h-177.385v109.196h196.841v37.841z" - ], - "attrs": [ - { - "fill": "rgb(99, 147, 205)" - } - ], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-storage-sanswitch-zte" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [ - 5 - ] - } - }, - "attrs": [ - { - "fill": "rgb(99, 147, 205)" - } - ], - "properties": { - "order": 437, - "id": 158, - "prevSize": 16, - "code": 59787, - "name": "it-storage-sanswitch-zte" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 139 - }, - { - "icon": { - "paths": [ - "M234 0l-234 228 140 134c59.702-39.324 131.164-62 208-62 47.699 0 93.962 9.903 136 26h186v-198h-436v-128zM788 244v128h-222c68.34 46.169 118.415 116.099 140 198h82v124l234-224-234-226zM346 334c-190.682 0-346 153.318-346 344s155.318 346 346 346c190.682 0 344-155.318 344-346s-153.318-344-344-344zM188 530h64l118 298h-64l-26-68h-120l-24 68h-64l116-298zM382 530h236v50h-88v248h-60v-248h-88v-50zM220 600l-40 110h80l-40-110z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-switch-at" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 438, - "id": 157, - "prevSize": 16, - "code": 59788, - "name": "it-switch-at" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 140 - }, - { - "icon": { - "paths": [ - "M234 0l-234 228 140 134c59.702-39.324 131.164-62 208-62 47.699 0 93.962 9.903 136 26h186v-198h-436v-128zM788 244v128h-222c68.34 46.169 118.415 116.099 140 198h82v124l234-224-234-226zM346 334c-190.682 0-346 153.318-346 344s155.318 346 346 346c190.682 0 344-155.318 344-346s-153.318-344-344-344zM204 524c36.427 0 67.25 12.469 90 34 13.541 12.729 23.229 30.167 30 54l-60 14c-3.521-15.437-10.828-27.062-22-36s-24.021-14-40-14c-22.073 0-40.255 8.156-54 24s-20 40.521-20 76c-0 37.646 6.458 66.021 20 82s30.333 24 52 24c15.979 0 30.489-5.844 42-16s18.989-26.198 24-48l58 18c-8.938 32.5-23.214 58.224-44 74s-48.042 22-80 22c-39.542-0-70.542-12.984-96-40s-38-63.146-38-110c-0-49.562 12.406-88.578 38-116s58.292-42 100-42zM506 524c36.427 0 65.25 12.469 88 34 13.541 12.729 23.229 30.167 30 54l-60 14c-3.521-15.437-10.828-27.062-22-36s-24.021-14-40-14c-22.073 0-40.255 8.156-54 24s-20 40.521-20 76c-0 37.646 6.458 66.021 20 82s30.333 24 52 24c15.979 0 30.489-5.844 42-16s18.989-26.198 24-48l60 18c-8.938 32.5-25.214 58.224-46 74s-46.042 22-78 22c-39.542-0-72.542-12.984-98-40s-38-63.146-38-110c-0-49.562 12.406-88.578 38-116s60.292-42 102-42z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-switch-cisco" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 439, - "id": 156, - "prevSize": 16, - "code": 59789, - "name": "it-switch-cisco" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 141 - }, - { - "icon": { - "paths": [ - "M697.809 543.651c32.349-20.573 70.563-32.908 111.756-32.908 47.709 0 91.183 16.477 126.371 43.38l88.064-84.108-234.449-225.978v128h-222.441c60.835 40.96 105.891 101.329 130.7 171.613z", - "M348.672 299.985c47.756 0 94.161 9.914 136.285 26.019h186.368v-198.004h-436.876v-128l-234.449 227.98 140.288 134.004c59.764-39.284 131.398-61.999 208.384-61.999z", - "M346.671 334.010c-191.069 0-346.671 153.321-346.671 343.971s155.601 346.019 346.671 346.019c128.791 0 240.314-70.703 299.52-175.151-28.346-35.607-45.94-80.151-45.94-129.117 0-61.999 27.555-117.062 70.516-155.369-47.011-134.097-173.196-230.353-324.096-230.353zM334.848 880.035h-42.543v-151.087h-167.005v151.087h-42.496v-320.698h42.543v131.677h166.959v-131.677h42.543v320.698zM569.53 856.529c-20.387 19.456-46.266 29.184-77.545 29.184-28.253 0-51.665-8.378-70.284-25.181-18.665-16.71-29.231-38.493-31.884-65.071l39.377-5.26c4.561 22.295 12.288 38.353 23.18 48.175 10.892 9.914 24.111 14.801 39.75 14.801 18.525 0 34.257-6.47 47.057-19.223 12.753-12.893 19.177-28.765 19.177-47.756 0-18.060-5.865-32.908-17.78-44.684-11.776-11.776-26.857-17.641-45.103-17.641-7.494 0-16.756 1.443-27.881 4.422l4.375-34.583c2.653 0.279 4.748 0.465 6.33 0.465 16.849 0 31.977-4.422 45.428-13.126s20.154-22.295 20.154-40.448c0-14.522-4.887-26.391-14.708-35.887-9.775-9.495-22.435-14.243-37.888-14.243-15.36 0-28.113 4.841-38.4 14.429-10.193 9.635-16.803 24.111-19.689 43.334l-39.517-6.982c4.887-26.345 15.825-46.871 32.861-61.347 17.175-14.522 38.4-21.737 63.814-21.737 17.548 0 33.699 3.77 48.407 11.264 14.755 7.494 26.065 17.734 33.885 30.72 7.866 12.986 11.729 26.764 11.729 41.425 0 13.824-3.677 26.391-11.124 37.841-7.447 11.357-18.479 20.387-33.047 27.089 18.991 4.375 33.699 13.452 44.218 27.276 10.519 13.731 15.779 30.999 15.779 51.665 0.047 27.881-10.147 51.572-30.673 71.075z", - "M879.29 828.649c-16.477 13.684-36.631 20.48-60.509 20.48-19.549 0-37.748-4.98-54.551-15.081-16.756-10.054-29.184-25.228-37.143-45.568s-11.962-44.125-11.962-71.447c0-21.132 3.398-41.658 10.1-61.533s18.385-35.793 34.956-47.569 37.283-17.734 61.905-17.734c21.504 0 39.377 5.353 53.481 16.012 14.15 10.612 24.995 27.601 32.442 51.014l41.844-9.868c-8.657-29.649-23.924-52.596-45.801-68.887-21.923-16.384-49.012-24.483-81.082-24.483-28.346 0-54.319 6.47-77.917 19.316-23.645 12.94-41.844 31.837-54.644 56.692s-19.13 53.993-19.13 87.412c0 30.58 5.632 59.206 16.943 86.016 11.357 26.577 27.881 47.057 49.524 61.114 21.737 14.103 49.897 21.132 84.433 21.132 33.559 0 61.812-9.169 84.992-27.508s39.191-44.87 48.081-79.732l-42.496-10.705c-5.772 26.81-16.943 47.151-33.466 60.928z" - ], - "attrs": [ - { - "fill": "rgb(99, 147, 205)" - }, - { - "fill": "rgb(99, 147, 205)" - }, - { - "fill": "rgb(99, 147, 205)" - }, - { - "fill": "rgb(99, 147, 205)" - } - ], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-switch-h3c" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [ - 5, - 5, - 5, - 5 - ] - } - }, - "attrs": [ - { - "fill": "rgb(99, 147, 205)" - }, - { - "fill": "rgb(99, 147, 205)" - }, - { - "fill": "rgb(99, 147, 205)" - }, - { - "fill": "rgb(99, 147, 205)" - } - ], - "properties": { - "order": 440, - "id": 155, - "prevSize": 16, - "code": 59790, - "name": "it-switch-h3c" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 142 - }, - { - "icon": { - "paths": [ - "M234 0l-234 228 140 134c59.702-39.324 131.164-62 208-62 47.699 0 93.962 9.903 136 26h186v-198h-436v-128zM788 244v128h-222c68.34 46.169 118.415 116.099 140 198h82v124l234-224-234-226zM346 334c-190.682 0-346 153.318-346 344s155.318 346 346 346c190.682 0 344-155.318 344-346s-153.318-344-344-344zM226 516h64v202c-0 26.542-1.334 47.708-6 62-6.271 18.667-17.521 32.698-34 44s-39.021 18-66 18c-31.646-0-54.938-8.281-72-26s-25.854-43.729-26-78l60-8c0.729 18.375 3.333 32.417 8 40 7 11.521 17.708 16 32 16 14.437 0 24.021-3.76 30-12s10-26.042 10-52v-206zM360 516h104c39.375 0 64.041 0.792 76 4 18.375 4.813 33.604 15.886 46 32s20 36.479 20 62c-0 19.688-4.854 36.583-12 50s-14.99 24.344-26 32c-11.011 7.656-22.625 11.521-34 14-15.459 3.062-38.688 6-68 6h-42v120h-64v-320zM424 570v90h36c25.521 0 41.396-0.646 50-4s17.114-8.854 22-16c4.885-7.146 6-14.521 6-24-0-11.666-3.146-22.416-10-30s-15.5-12.104-26-14c-7.729-1.458-22.667-2-46-2h-32z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-switch-juniper" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 441, - "id": 154, - "prevSize": 16, - "code": 59791, - "name": "it-switch-juniper" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 143 - }, - { - "icon": { - "paths": [ - "M234 0l-234 228 140 134c59.702-39.324 131.164-62 208-62 47.699 0 93.962 9.903 136 26h186v-198h-436v-128zM788 244v128h-222c68.34 46.169 118.415 116.099 140 198h82v124l234-224-234-226zM346 334c-190.682 0-346 153.318-346 344s155.318 346 346 346c190.682 0 344-155.318 344-346s-153.318-344-344-344zM98 536h148v44l-112 194h116v48h-164v-52l106-186h-94v-48zM262 536h162v48h-60v238h-42v-238h-60v-48zM450 536h152v48h-110v64h102v48h-102v78h114v48h-156v-286z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-switch-zte" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 442, - "id": 153, - "prevSize": 16, - "code": 59792, - "name": "it-switch-zte" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 144 - }, - { - "icon": { - "paths": [ - "M60 0c-33.495 0-60 26.505-60 60v484c0 33.495 26.505 60 60 60h904c33.495 0 60-26.505 60-60v-484c0-33.495-26.505-60-60-60zM222 170h580c33.495 0 60 26.505 60 60v114c0 33.495-26.505 62-60 62h-580c-33.495 0-60-28.505-60-62v-114c0-33.495 26.505-60 60-60zM740 184c-54.503 0-98 43.497-98 98s43.497 98 98 98c54.503 0 98-43.497 98-98s-43.497-98-98-98zM284 194c-54.503 0-98 43.497-98 98s43.497 100 98 100c54.503 0 98-45.497 98-100s-43.497-98-98-98zM228 640.064v320h64v-140h128v140h64v-320h-64v126h-128v-126zM550 640.064v320h66v-120h42c29.312 0 52.541-2.938 68-6 11.375-2.479 20.989-6.344 32-14s20.854-18.583 28-32c7.146-13.417 10-30.312 10-50-0-25.521-5.604-45.885-18-62s-27.625-27.187-46-32c-11.959-3.208-38.625-4-78-4zM616 694.064h30c23.333 0 40.271 0.544 48 2 10.5 1.896 19.146 6.417 26 14s10 16.334 10 28c-0 9.479-3.115 18.854-8 26s-11.396 12.646-20 16c-8.604 3.354-24.479 4-50 4h-36z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-tapelib-hpmsl" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 443, - "id": 152, - "prevSize": 16, - "code": 59793, - "name": "it-tapelib-hpmsl" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 145 - }, - { - "icon": { - "paths": [ - "M60-2c-33.495 0-60 26.505-60 60v484c0 33.495 26.505 60 60 60h904c33.495 0 60-26.505 60-60v-484c0-33.495-26.505-60-60-60h-904zM222 168h580c33.495 0 60 26.505 60 60v114c0 33.495-26.505 62-60 62h-580c-33.495 0-60-28.505-60-62v-114c0-33.495 26.505-60 60-60zM740 182c-54.503 0-98 43.497-98 98s43.497 98 98 98c54.503 0 98-43.497 98-98s-43.497-98-98-98zM284 192c-54.503 0-98 43.497-98 98s43.497 100 98 100c54.503 0 98-45.497 98-100s-43.497-98-98-98zM642 630c-24.646 0-46.573 4.563-64 12s-30.74 17.782-40 32c-9.26 14.219-14 29.667-14 46-0 25.375 10.312 46.354 30 64 14 12.542 37.292 23.396 72 32 26.979 6.708 44.416 11.375 52 14 11.083 3.938 19.552 8.677 24 14s6 12.417 6 20c-0 11.813-5.427 21.177-16 30s-25.146 14-46 14c-19.688 0-36.406-6.083-48-16s-18.208-24.854-22-46l-64 6c4.229 35.875 18.271 63.26 40 82s51.458 28 92 28c27.854-0 51.333-4.198 70-12s33.791-19.958 44-36c10.208-16.042 16-31.625 16-50-0-20.271-5.469-38.219-14-52s-18.906-24.052-34-32c-15.094-7.948-38.5-16.562-70-24s-51.833-15.146-60-22c-6.417-5.396-10-10.416-10-18-0-8.312 3.146-15.041 10-20 10.646-7.729 25.187-12 44-12 18.229 0 32.885 2.781 42 10s15.229 19.521 18 36l64-2c-1.021-29.458-11.657-54.354-32-72s-49.75-26-90-26zM232 636v54h96v266h64v-266h94v-54h-254z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-tapelib-ibmts" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 444, - "id": 151, - "prevSize": 16, - "code": 59794, - "name": "it-tapelib-ibmts" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 146 - }, - { - "icon": { - "paths": [ - "M60 0c-33.495 0-60 26.505-60 60v484c0 33.495 26.505 60 60 60h904c33.495 0 60-26.505 60-60v-484c0-33.495-26.505-60-60-60zM222 170h580c33.495 0 60 26.505 60 60v114c0 33.495-26.505 62-60 62h-580c-33.495 0-60-28.505-60-62v-114c0-33.495 26.505-60 60-60zM740 184c-54.503 0-98 43.497-98 98s43.497 98 98 98c54.503 0 98-43.497 98-98s-43.497-98-98-98zM284 194c-54.503 0-98 43.497-98 98s43.497 100 98 100c54.503 0 98-45.497 98-100s-43.497-98-98-98zM194 638.718c-24.646 0-46.573 4.563-64 12s-30.74 17.782-40 32c-9.26 14.219-14 29.667-14 46-0 25.375 10.312 46.354 30 64 14 12.542 37.292 23.396 72 32 26.979 6.708 44.416 11.375 52 14 11.083 3.937 19.552 8.677 24 14s6 12.417 6 20c-0 11.813-5.427 21.177-16 30s-25.146 14-46 14c-19.688 0-36.406-6.083-48-16s-18.208-24.854-22-46l-64 6c4.229 35.875 18.271 63.26 40 82s53.458 28 94 28c27.854 0 49.333-4.198 68-12s33.791-19.958 44-36c10.208-16.042 16-33.625 16-52-0-20.271-5.469-36.219-14-50s-18.906-24.052-34-32c-15.094-7.948-38.5-16.562-70-24s-51.833-15.146-60-22c-6.417-5.396-10-10.416-10-18-0-8.312 3.146-15.041 10-20 10.646-7.729 25.187-12 44-12 18.229 0 32.885 2.781 42 10s15.229 19.521 18 36l64-2c-1.021-29.458-11.657-54.354-32-72s-49.75-26-90-26zM380 644.718v170c0 35.875 1.771 63.625 6 82 2.917 12.396 8.812 24.698 18 36s22.177 20.927 38 28c15.823 7.073 39.375 10 70 10 25.375 0 46.25-3.51 62-10s28.593-15.062 38-26c9.406-10.937 14.5-24.104 18-40s6-43.5 6-82v-168h-66v178c-0 25.375-0.104 43.063-2 54s-6.667 20.49-16 28c-9.334 7.511-23.625 10-42 10-18.083 0-33.573-4.052-44-12s-15.229-18.875-18-32c-1.604-8.167-4-24.437-4-52v-174zM704 644.718v320h60v-208l130 208h66v-320h-60v214l-132-214z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-tapelib-sunts" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 445, - "id": 150, - "prevSize": 16, - "code": 59795, - "name": "it-tapelib-sunts" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 147 - }, - { - "icon": { - "paths": [ - "M511.975 3.246l211.157 211.187-211.232 211.202-211.157-211.187 211.232-211.202z", - "M-0.023 507.944l211.202-211.202 211.202 211.202-211.202 211.202-211.202-211.202z", - "M601.514 507.838l211.232-211.172 211.218 211.277-211.232 211.172-211.218-211.277z", - "M511.954 1023.998l-211.202-211.202 211.157-211.157 211.202 211.202-211.157 211.157z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-Virtual network" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 446, - "id": 149, - "prevSize": 16, - "code": 59796, - "name": "it-Virtualnetwork" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 148 - }, - { - "icon": { - "paths": [ - "M496 0c-88.366 0-160 71.634-160 160 0 24.616 6.069 47.168 16 68-2.717-0.137-5.249 0-8 0-88.366 0-160 71.634-160 160 0 27.456 5.815 53.421 18 76-66.58 19.363-116 79.172-116 152 0 35.129 12.807 67.609 32 94-67.806 18.571-118 80.301-118 154 0 88.366 71.634 160 160 160 46.834 0 88.74-19.93 118-52 29.284 32.474 72.829 52 120 52 45.179 0 84.906-17.887 114-48 29.094 30.113 70.821 48 116 48 47.171 0 88.716-19.526 118-52 29.26 32.070 71.166 52 118 52 88.366 0 160-71.634 160-160 0-75.074-52.257-136.747-122-154 18.745-26.206 30-59.324 30-94 0-80.039-59.259-144.213-136-156 8.096-19.142 12-41.909 12-64 0-88.366-71.634-160-160-160-4.843 0-9.266 1.579-14 2 12.979-23.123 22-49.597 22-78 0-88.366-71.634-160-160-160zM486 320c3.384 0.214 6.562 0 10 0 4.814 0 9.294 0.416 14 0-4.875 8.722-10.808 16.369-14 26-2.494-9.021-6.040-17.694-10-26zM494 438c1.789 6.866 3.354 13.525 6 20-4.77 0.246-9.349 1.346-14 2 3.459-6.858 5.543-14.62 8-22z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "networkTree" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 447, - "id": 148, - "prevSize": 16, - "code": 59797, - "name": "networkTree" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 149 - }, - { - "icon": { - "paths": [ - "M192 0c-105.522 0-190 84.478-190 190v644c0 105.522 84.478 190 190 190h644c105.522 0 190-84.478 190-190v-644c0-105.522-84.478-190-190-190h-644zM800 96c52.598 0 96 43.403 96 96s-43.402 96-96 96c-52.598 0-94-43.403-94-96s41.402-96 94-96zM156 108h446v176h-446v-176zM804 418c52.598 0 96 43.403 96 96s-43.402 96-96 96c-52.598 0-94-43.403-94-96s41.402-96 94-96zM150 424h444v176h-444v-176zM156 740h446v176h-446v-176zM808 740c52.598 0 94 43.402 94 96s-41.402 96-94 96c-52.598 0-96-43.402-96-96s43.402-96 96-96z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "resourceType" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 448, - "id": 147, - "prevSize": 16, - "code": 59798, - "name": "resourceType" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 150 - }, - { - "icon": { - "paths": [ - "M384 0h256v256h-56.617v128h312.617v384h128v256h-384v-256h128v-256h-512v256h128v256h-384v-256h128v-384h322.873v-128h-66.873v-256z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "tree-icon" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 449, - "id": 146, - "prevSize": 16, - "code": 59799, - "name": "tree-icon" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 151 - }, - { - "icon": { - "paths": [ - "M0 256v192h96v320h-96v256h256v-256h-96v-320h320v320h-96v256h256v-256h-96v-320h320v320h-96v256h256v-256h-96v-320h96v-192z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "uep-topo-group20x20" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 450, - "id": 145, - "prevSize": 16, - "code": 59800, - "name": "uep-topo-group20x20" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 152 - }, - { - "icon": { - "paths": [ - "M86 0c-47.477 0-86 38.523-86 86v532c0 47.477 38.523 86 86 86h350l-44 172c108.143 38.808 178.516 26.928 240 0l-34-172h340c47.477 0 86-38.523 86-86v-532c0-47.477-38.523-86-86-86h-852zM110 112h804v468h-804v-468z", - "M304 840c-37.227 19.359-60 45.155-60 72 0 62.25 120.094 112 268 112s268-49.75 268-112c0-26.845-22.773-52.641-60-72-22.376 63.518-106.109 112-208 112s-185.624-48.482-208-112z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "uep-topo-root" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 451, - "id": 144, - "prevSize": 16, - "code": 59801, - "name": "uep-topo-root" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 153 - }, - { - "icon": { - "paths": [ - "M0 515.003h192v508.997h-192v-508.997z", - "M623.819 0v384l136-122v762h128v-746l136 122v-384l-192 172-208-188z", - "M298.857 515.003h192v508.997h-192v-508.997z", - "M597.714 515.003h192v508.997h-192v-508.997z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "uep-topo-virtual20x20" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 452, - "id": 143, - "prevSize": 16, - "code": 59802, - "name": "uep-topo-virtual20x20" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 154 - }, - { - "icon": { - "paths": [ - "M814-0.002c-115.833 0-208 94.371-208 210 0 115.623 92.167 208 208 208s210-92.377 210-208c0-115.629-94.167-210-210-210zM152 93.998c-84.432 0-152 67.717-152 152v626c0 84.277 67.568 152 152 152h628c84.432 0 150-67.723 150-152v-392c-35.867 16.242-74.050 26-116 26-157.445 0-286-126.827-286-284 0-45.721 10.802-89.719 30-128h-406zM704 105.998h70v206h-70v-206zM856 105.998h70v206h-70v-206zM110 291.998h84l176 228v-228h80v260c-15.173-4.433-31.583-6-48-6-32.083 0-61.605 10.229-88 26l-124-160v222h-80v-342zM414 597.998c34.617 0 62.38 9.577 84 30 12.869 12.071 23.565 27.389 30 50l-56 14c-3.346-14.642-9.383-25.522-20-34-10.617-8.487-24.815-12-40-12-20.976 0-38.938 6.966-52 22-13.062 15.024-18 40.34-18 74-0 35.718 5.131 60.85 18 76 12.869 15.155 31.41 22 52 22 15.185 0 27.061-4.383 38-14 10.938-9.635 17.238-25.321 22-46l56 18c-8.494 30.833-22.246 53.032-42 68-19.754 14.959-43.63 24-74 24-37.577 0-69.807-14.37-94-40s-36-59.552-36-104c0-47.014 11.678-83.987 36-110s56.364-38 96-38zM578 603.998h106c23.55 0 41.646-1.406 54 2 16.601 4.862 30.16 15.533 42 28 11.839 12.453 19.823 25.952 26 44s10 41.535 10 68c-0 23.25-4.21 43.175-10 60-7.078 20.553-16.874 37.271-30 50-9.909 9.631-23.142 16.606-40 22-12.612 3.966-28.895 6-50 6h-108v-280zM636 649.998v186h42c15.957 0 28.922-0.275 36-2 9.265-2.333 15.887-6.48 22-12 6.113-5.524 12.139-15.346 16-28s4-30.163 4-52c0-21.841-0.141-38.312-4-50-3.861-11.698-11.051-19.449-18-26s-15.319-11.681-26-14c-7.979-2.053-22.707-2-46-2h-26z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "common_ncd_stop" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 453, - "id": 142, - "prevSize": 16, - "code": 59803, - "name": "common_ncd_stop" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 155 - }, - { - "icon": { - "paths": [ - "M132-4c-70.912 0-128 57.088-128 128v768c0 70.912 57.088 128 128 128h418l478-480v-416c0-70.912-57.088-128-128-128h-768zM114 78h112l234 380v-380h106v570h-116l-230-372v372h-106v-570zM1028 640l-380 380h252c70.912 0 128-57.088 128-128v-252z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-app-netnumen" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 454, - "id": 141, - "prevSize": 16, - "code": 59804, - "name": "it-app-netnumen" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 156 - }, - { - "icon": { - "paths": [ - "M498 0c-82.532 2.144-165.473 23.817-242 68-244.886 141.385-329.386 455.113-188 700 110.457 191.318 326.328 283.858 532 248-67.447-15.471-126.088-49.392-172-98-19.648-4.043-39.322-7.308-58-14l32-18c-20.773-27.959-38.401-58.436-50-92l-90 52c-30.316-22.699-56.279-52.734-80-84l110-64c16.047 23.28 34.225 43.553 52 64-6.339-26.139-12-51.912-12-80 0-51.261 11.931-100.275 32-144l-42 24c-18.203-33.787-34.668-67.98-48-102l112-64 34 58c23.494-26.609 49.379-49.664 80-68l-24-42 104-60c14.891 18.474 28.283 37.666 42 58 18.097-2.934 35.074-6 54-6 60.481 0 118.588 16.641 168 44l50-30c11.932 28.367 20.080 58.668 26 88 0.673 0.673 1.332 1.322 2 2 45.731 46.49 78.423 105.65 92 172 23.66-117.806 6.802-243.76-58-356-97.203-168.36-276.429-260.716-458-256zM522 98c45.433 1.164 91.51 8.455 134 24l-64 36c-22.814-22.131-46.003-41.701-70-60zM394 114c39.593 25.649 77.216 56.275 114 92l-84 50-72-126c13.744-5.792 27.944-11.801 42-16zM760 178c31.169 23.019 57.714 49.989 82 82l-116 68c-20.416-32.76-40.879-63.373-64-92l88-52c3.203-1.849 7.605-3.435 10-6zM262 182l72 126-92 52c-12.711-49.321-17.254-97.18-20-144 12.392-12.18 25.886-23.294 40-34zM142 324c3.995 27.904 10.633 55.367 18 84l-58 34c7.125-40.791 21.178-80.958 40-118zM674 396c-158.574 0-286 129.426-286 288s127.426 286 286 286c158.574 0 288-127.426 288-286s-129.426-288-288-288zM192 506c13.398 34.314 27.679 69.994 46 104l-108 62c-15.217-36.176-27.5-72.396-32-110l94-56zM654 512c19.614 0 36 16.386 36 36 0 1.039 0.083 0.988 0 2l126 66c8.663-7.366 19.441-12 32-12 27.46 0 50 21.325 50 48s-22.54 48-50 48c-12.559 0-23.337-4.305-32-12l-76 50c0 1.051 0.147 0.989 0 2l92 62c4.905-3.888 8.99-6 16-6 16.568 0 32 11.905 32 28s-15.432 30-32 30c-16.568 0-28-13.905-28-30l-94-66c-2.938 1.163-6.665 2-10 2-13.338 0-26-9.043-26-22s12.662-24 26-24c4.798 0 8.156 1.697 12 4l76-48c-2.479-5.875-4-11.331-4-18 0-5.095 0.518-11.414 2-16l-122-64c-6.254 6.254-16.193 10-26 10-4.385 0-8.176-2.601-12-4l-90 114c8.642 9.928 12 23.723 12 38 0 31.383-24.617 56-56 56s-56-24.617-56-56c0-31.383 24.617-56 56-56 8.553 0 16.75 2.641 24 6l94-116c-3.186-5.279-6-9.223-6-16 0-19.614 14.386-36 34-36z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-sdn-vnet" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 455, - "id": 140, - "prevSize": 16, - "code": 59805, - "name": "it-sdn-vnet" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 157 - }, - { - "icon": { - "paths": [ - "M154 0c-85.040 0-154 68.96-154 154v716c0 85.040 68.96 154 154 154h716c85.040 0 154-68.96 154-154v-716c0-85.040-68.96-154-154-154h-716zM178 122h672c26.747 0 48 28.544 48 64s-21.253 64-48 64h-672c-26.747 0-48-28.544-48-64s21.253-64 48-64zM176 344h672c26.747 0 48 28.544 48 64s-21.253 64-48 64h-672c-26.747 0-48-28.544-48-64s21.253-64 48-64zM180 588h64v126h128v-126h64v320h-64v-140h-128v140h-64v-320zM598 588h104c39.375 0 66.041 0.792 78 4 18.375 4.813 33.604 15.886 46 32s18 36.479 18 62c-0 19.688-2.854 36.584-10 50s-16.99 24.344-28 32c-11.011 7.656-22.625 11.521-34 14-15.458 3.062-36.688 6-66 6h-44v120h-64v-320zM662 642v90h36c25.521 0 43.396-0.646 52-4s15.114-8.854 20-16c4.885-7.146 8-14.521 8-24-0-11.666-5.146-22.416-12-30s-15.5-12.104-26-14c-7.729-1.458-22.667-1.999-46-2h-32z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-storage-sanswitch-hp" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 456, - "id": 139, - "prevSize": 16, - "code": 59806, - "name": "it-storage-sanswitch-hp" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 158 - }, - { - "icon": { - "paths": [ - "M526 0c-4.17-0.122-9.077-0.191-14-0.191-282.77 0-512 229.23-512 512 0 0.067 0 0.135 0 0.202-0 282.759 229.23 511.99 512 511.99s512-229.23 512-512c0-0.057 0-0.124 0-0.191 0-277.847-221.318-504.002-497.281-511.792zM294 112v78h562v96h-562v78l-126-126 126-126zM728 386l128 128-128 126v-78h-560v-96h560v-80zM294 658v80h562v96h-562v78l-126-126 126-128z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-switch" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 457, - "id": 138, - "prevSize": 16, - "code": 59807, - "name": "it-switch" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 159 - }, - { - "icon": { - "paths": [ - "M120 205.183l-58 124h894l-30-64h-424l-16-60zM0 430l64 594h898l62-594z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "uep-moc-root" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 458, - "id": 137, - "prevSize": 16, - "code": 59808, - "name": "uep-moc-root" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 160 - }, - { - "icon": { - "paths": [ - "M0 256v192h96v320h-96v256h256v-256h-96v-320h320v320h-96v256h256v-256h-96v-320h320v320h-96v256h256v-256h-96v-320h96v-192zM64 832h128v128h-128zM448 832h128v128h-128zM832 832h128v128h-128z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "uep-topo-undefinedgroup20x20" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 459, - "id": 136, - "prevSize": 16, - "code": 59809, - "name": "uep-topo-undefinedgroup20x20" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 161 - }, - { - "icon": { - "paths": [ - "M288.414 402.18c0 0.009 0 0.020 0 0.030 0 79.643-64.564 144.207-144.207 144.207s-144.207-64.564-144.207-144.207c0-0.011 0-0.021 0-0.032-0-0.007-0-0.018-0-0.029 0-79.643 64.564-144.207 144.207-144.207s144.207 64.564 144.207 144.207c0 0.011-0 0.021-0 0.032z", - "M287.26 811.728c0 0.007 0 0.016 0 0.025 0 64.352-52.167 116.519-116.519 116.519s-116.519-52.167-116.519-116.519c0-0.009 0-0.017 0-0.026-0-0.006-0-0.015-0-0.023 0-64.352 52.167-116.519 116.519-116.519s116.519 52.167 116.519 116.519c0 0.009-0 0.017-0 0.026z", - "M716.419 898.252c0 0.008 0 0.017 0 0.026 0 69.449-56.299 125.748-125.748 125.748s-125.748-56.299-125.748-125.748c0-0.009 0-0.019 0-0.028-0-0.006-0-0.016-0-0.025 0-69.449 56.299-125.748 125.748-125.748s125.748 56.299 125.748 125.748c0 0.009-0 0.019-0 0.028z", - "M748.721 227.979c0 0.014 0 0.031 0 0.047 0 124.243-100.719 224.963-224.963 224.963s-224.963-100.719-224.963-224.963c0-0.017 0-0.033 0-0.050-0-0.011-0-0.028-0-0.045 0-124.243 100.719-224.963 224.963-224.963s224.963 100.719 224.963 224.963c0 0.017-0 0.033-0 0.050z", - "M1025.598 541.773c0 0.011 0 0.024 0 0.037 0 97.483-79.026 176.509-176.509 176.509s-176.509-79.026-176.509-176.509c0-0.013 0-0.026 0-0.039-0-0.009-0-0.022-0-0.035 0-97.483 79.026-176.509 176.509-176.509s176.509 79.026 176.509 176.509c0 0.013-0 0.026-0 0.039z", - "M526.066 635.219c0 0.006 0 0.013 0 0.020 0 51.609-41.837 93.446-93.446 93.446s-93.446-41.837-93.446-93.446c0-0.007 0-0.014 0-0.021-0-0.005-0-0.012-0-0.019 0-51.609 41.837-93.446 93.446-93.446s93.446 41.837 93.446 93.446c0 0.007-0 0.014-0 0.021z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "analysis" - ] - }, - "attrs": [], - "properties": { - "order": 460, - "id": 135, - "prevSize": 16, - "code": 59810, - "name": "analysis" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 162 - }, - { - "icon": { - "paths": [ - "M316-2c-95.089 0-172 76.911-172 172 0 92.48 72.524 167.929 164 172-90.194 5.431-162 78.44-162 170 0 86.687 64.634 158.002 148 170-84.072 11.37-148 82.811-148 170 0 95.089 76.911 172 172 172s172-76.911 172-172c0-87.422-65.601-158.925-150-170 84.346-11.124 150-82.616 150-170 0-92.33-72.732-167.706-164-172 90.194-5.431 162-78.44 162-170 0-95.089-76.911-172-172-172zM750 206c-95.089 0-172 76.911-172 172s76.911 172 172 172c-94.127 1.118-170 77.608-170 172 0 95.089 76.911 172 172 172s174-76.911 174-172c0-95.089-78.911-172-174-172 94.18-1.057 170-77.569 170-172 0-95.089-76.911-172-172-172z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "bindingRelationship" - ] - }, - "attrs": [], - "properties": { - "order": 461, - "id": 134, - "prevSize": 16, - "code": 59811, - "name": "bindingRelationship" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 163 - }, - { - "icon": { - "paths": [ - "M0 0v1024h1024v-1024h-1024zM64 232h896v744h-896v-744zM154 380v64h386v-64h-386zM154 586v64h738v-64h-738zM154 798v64h738v-64h-738z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "browsePolicy" - ] - }, - "attrs": [], - "properties": { - "order": 462, - "id": 133, - "prevSize": 16, - "code": 59812, - "name": "browsePolicy" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 164 - }, - { - "icon": { - "paths": [ - "M0 0v1024h1024v-1024h-1024zM122 120h780v584h-198v198h-384v-198h-198v-584zM234 234v64h556v-64h-556zM234 446v64h556v-64h-556z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "businessManagment" - ] - }, - "attrs": [], - "properties": { - "order": 463, - "id": 132, - "prevSize": 16, - "code": 59813, - "name": "businessManagment" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 165 - }, - { - "icon": { - "paths": [ - "M0 205.472v818.528h1024v-818.528zM66 269.472h896v108.902h-896zM66 544.378h896v415.622h-896zM726 699.098v192h192v-192zM108 827.098v64h156v-64zM314 827.098v64h64v-64z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "cardData" - ] - }, - "attrs": [], - "properties": { - "order": 464, - "id": 131, - "prevSize": 16, - "code": 59814, - "name": "cardData" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 166 - }, - { - "icon": { - "paths": [ - "M340-4l-34 6-286 48 12 34 22 76h-54v862h1024v-585.229l-295.229-276.771h-262.771l-14-120-64 6 12 114h-46l-10-128zM282 72l8 88h-78l-22-50-44 18 12 32h-34l-20-58zM64 224h118l84 216 10 22 24-4 48-6 30-6-2-30-16-192h368.771v212.771h231.229v521.229h-896zM240 224h56l12 150zM142 578v64h762v-64zM142 764v64h762v-64z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "dailyManagment" - ] - }, - "attrs": [], - "properties": { - "order": 465, - "id": 130, - "prevSize": 16, - "code": 59815, - "name": "dailyManagment" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 167 - }, - { - "icon": { - "paths": [ - "M512 0l-512 322h1024l-512-322zM512 114c26.51 0 48 21.49 48 48s-21.49 48-48 48c-26.51 0-48-21.49-48-48s21.49-48 48-48z", - "M55.344 389.331l4 30.336v391.379l-4 31.853h174l-4-31.853v-391.379l4-30.336h-174zM301.344 389.331l4 30.336v391.379l-4 31.853h174l-4-31.853v-391.379l4-30.336h-174zM547.344 389.331l4 30.336v391.379l-4 31.853h174l-4-31.853v-391.379l4-30.336h-174zM793.344 389.331l4 30.336v391.379l-4 31.853h174l-4-31.853v-391.379l4-30.336h-174z", - "M33.331 897.344h957.338l33.331 126.656h-1024z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "enterpriseCustomer" - ] - }, - "attrs": [], - "properties": { - "order": 466, - "id": 129, - "prevSize": 16, - "code": 59816, - "name": "enterpriseCustomer" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 168 - }, - { - "icon": { - "paths": [ - "M96 0v1024h832v-554c-16.551 23.661-38.104 28.804-64 42v448h-704v-896h422c23.693-31.685 58.349-54.324 98-64h-584zM816 26c-114.539 0-206 93.461-206 208s91.461 208 206 208c114.54 0 208-93.461 208-208s-93.46-208-208-208zM220 120v64h248v-64h-248zM710 196h214v76h-214v-76zM220 222v206h248v-206h-248zM220 464v98h248v-98h-248zM218 646v64h578v-64h-578zM224 798v64h580v-64h-580z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "equipmentBlacklist" - ] - }, - "attrs": [], - "properties": { - "order": 467, - "id": 128, - "prevSize": 16, - "code": 59817, - "name": "equipmentBlacklist" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 169 - }, - { - "icon": { - "paths": [ - "M962.030 47.968c-8.838 62.893-26.692 87.763-47.41 100.083-20.708 12.307-50.544 12.506-82.517 12.282-31.978 0-67.463-2.432-98.328 22.835-15.428 12.595-26.625 30.035-29.849 52.672-0.25 1.728 0.198 3.52 0.011 5.248-51.048-20.41-232.3-46.931-275.527-8.051-1.923 1.792-5.16 1.664-7.021 3.52l-421.389 419.59 367.856 367.853 421.389-419.635c1.8-1.792 3.59-3.392 5.265-5.312 47.548-52.435 13.878-252.998-27.359-308.89-2.946-19.462-4.849-36.262-3.511-45.651 1.751-12.32 4.106-15.181 7.021-17.562 5.823-4.736 28.684-7.251 61.453-7.027 32.769 0.006 75.936 1.664 114.126-21.062 38.191-22.714 65.175-68.762 75.499-142.221l-59.699-8.781zM623.738 344.115c31.034 0 56.189 25.158 56.185 56.192 0.001 31.027-25.154 56.179-56.183 56.179s-56.184-25.152-56.185-56.179c-0.001-31.034 25.154-56.192 56.183-56.192z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "equipmentModel" - ] - }, - "attrs": [], - "properties": { - "order": 468, - "id": 127, - "prevSize": 16, - "code": 59818, - "name": "equipmentModel" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 170 - }, - { - "icon": { - "paths": [ - "M160 8c-25.903 30.044-41.331 62.192-48 94h-106v924h670c10.497 1.078 21.219 2 32 2 8.767 0 17.417-1.283 26-2h40v-6c140.119-31.085 246-156.583 246-306s-105.881-273.317-246-304v-308h-158c5.279-16.405 16.044-33.491 32-52l-48-42c-25.903 30.044-41.331 62.192-48 94h-80c5.311-16.271 14.187-33.658 30-52l-48-42c-25.903 30.044-41.331 62.192-48 94h-82c5.819-16.405 16.044-33.491 32-52l-50-42c-25.903 30.044-41.331 62.192-48 94h-82c5.279-16.405 16.044-33.491 32-52l-48-42zM86 182h28c8.23 31.167 24.037 60.201 44 88l52-36c-13.274-18.483-23.611-34.856-30-52h82c8.815 31.148 24.048 60.216 44 88l52-36c-13.245-18.443-23.056-34.89-30-52h80c8.23 31.167 24.037 60.201 44 88l52-36c-13.274-18.483-23.611-34.856-30-52h80c8.23 31.167 24.037 60.201 44 88l52-36c-13.274-18.483-23.611-34.856-30-52h76v220c-166.907 6.305-300 143.532-300 312 0 91.892 40.922 174.406 104 232h-414v-764zM888 582l46 44-226 230-28 26-22-30-128-180 52-38 106 150 200-202z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "examine" - ] - }, - "attrs": [], - "properties": { - "order": 469, - "id": 126, - "prevSize": 16, - "code": 59819, - "name": "examine" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 171 - }, - { - "icon": { - "paths": [ - "M0 0v1024h818v-106l-64 8v34h-690v-896h690v106l64 8v-178h-818zM730 228c-163.35 0-296 130.65-296 294s132.65 296 296 296c163.35 0 294-132.65 294-296s-130.65-294-294-294zM132 246v64h306v-64h-306zM704 324h48c17.845 0 35.574 14.224 34 32l-18 200c-1.574 17.776-14.155 32-32 32h-10c-17.845 0-30.060-14.261-32-32l-22-200c-1.94-17.739 14.155-32 32-32zM132 434v64h226v-64h-226zM132 622v64h226v-64h-226zM728 624c27.036 0 50 20.964 50 48s-22.964 50-50 50c-27.036 0-48-22.964-48-50s20.964-48 48-48zM132 812v64h354v-64h-354z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "failureList" - ] - }, - "attrs": [], - "properties": { - "order": 470, - "id": 125, - "prevSize": 16, - "code": 59820, - "name": "failureList" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 172 - }, - { - "icon": { - "paths": [ - "M448-0.001c-99.149 0-184 84.858-184 184s84.851 178 184 178c99.149 0 174-78.858 174-178s-74.851-184-174-184zM286 373.999c-129.705 57.273-217.877 186.935-226 336l-60 250c284.445-318.778 236-372.086 236 66h276.671v-270.561c3.512-99.722 66.764-160.188 121.919-172.125-17.49-54.214-25.625-122.175 3.41-167.313-5.942-21.014-17.153-35.182-36-42-1.835-1.639-2.149 0-4 0-40.421 38.476-89.792 64-150 64s-117.579-25.524-158-64c-1.347-1.639-2.68 1.639-4 0zM786 397.999c-60.168 0-112 51.224-112 112s51.832 110 112 110c60.168 0 106-49.224 106-110s-45.832-112-106-112zM1014 409.999c-65.69 147.654-105.651 269.621-246 250-36.537 0-71.471-14.414-96-38-0.818-1.005-1.199 1.005-2 0-74.281 35.109-67.145 38.621-110 130l4.464 254 63.536-178h10v192h254v-192h12c97.602-38.567 100.046-313.036 110-418z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "familyCustomer" - ] - }, - "attrs": [], - "properties": { - "order": 471, - "id": 124, - "prevSize": 16, - "code": 59821, - "name": "familyCustomer" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 173 - }, - { - "icon": { - "paths": [ - "M256 22v150h64v-54h398v54h64v-150h-526zM8 242v294h132v-64h96v64h600v-64h96v64h100v-294h-1024zM0 596v428h1024v-428h-92v64h-96v-64h-600v64h-96v-64h-140zM404 658l224 152-224 152v-304z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "fileTool" - ] - }, - "attrs": [], - "properties": { - "order": 472, - "id": 123, - "prevSize": 16, - "code": 59822, - "name": "fileTool" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 174 - }, - { - "icon": { - "paths": [ - "M0 0v1024h1024v-1024h-1024zM448 64h128v896h-128v-896zM120 112h208v210h-208v-210zM696 112h208v210h-208v-210zM120 414h208v210h-208v-210zM696 414h208v210h-208v-210zM120 716h208v210h-208v-210zM696 716h208v210h-208v-210z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "groupManagment" - ] - }, - "attrs": [], - "properties": { - "order": 473, - "id": 122, - "prevSize": 16, - "code": 59823, - "name": "groupManagment" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 175 - }, - { - "icon": { - "paths": [ - "M830 4.002c-3.954 0-6.163 1.654-10 2-21.087 1.899-42.52 9.182-60 20-150.563 49.266-299.814 132.472-452 140v310l470 160c6.045 2.682 13.576 4.251 20 6 2.196 0.595 3.76 1.518 6 2 8.682 1.868 16.664 2 26 2 62.639 0 110.185-44.115 142-102s50-131.924 50-216c0-84.083-18.185-164.115-50-222-31.815-57.892-79.361-102-142-102zM830 64.002c25.474 0 58.072 20.828 84 68 25.928 47.179 42 119.755 42 196 0 76.238-16.072 142.828-42 190-25.928 47.179-58.526 68-84 68s-56.072-20.821-82-68c-25.928-47.172-44-113.762-44-190 0-76.245 18.072-148.821 44-196 25.928-47.172 56.526-68 82-68zM72 166.002c-33.614 0-60 26.386-60 60v190c0 33.614 26.386 60 60 60h172v-310h-172zM830 226.002c-17.38 0-30 49.537-30 110s12.62 108 30 108c17.38 0 32-47.537 32-108s-14.62-110-32-110zM330 570.002c-6.68-0.112-12.981 0.409-20 2-9.358 2.121-19.412 5.042-28 10l-58 34c-34.354 19.839-42.526 54.103-34 84 32.971 115.619 74.038 226.209 176 302 25.476 18.866 55.648 31.828 90 12l56-32c34.353-19.834 64.686-68.57 36-84-110.803-59.587-141.877-183.942-176-304-4.781-16.821-21.959-23.665-42-24z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "notice" - ] - }, - "attrs": [], - "properties": { - "order": 474, - "id": 121, - "prevSize": 16, - "code": 59824, - "name": "notice" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 176 - }, - { - "icon": { - "paths": [ - "M516 0l-182 362h362l-180-362zM270 490l-104 206h696l-102-206h-490zM100 824l-100 200h1024l-100-200h-824z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "policy" - ] - }, - "attrs": [], - "properties": { - "order": 475, - "id": 120, - "prevSize": 16, - "code": 59825, - "name": "policy" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 177 - }, - { - "icon": { - "paths": [ - "M0 0v1024h1024v-1024h-1024zM74 74h876v132h-876v-132zM126 104v64h64v-64h-64zM258 104v64h64v-64h-64zM390 104v64h64v-64h-64zM74 270h876v680h-876v-680zM510 326l-284 194h572l-288-194zM272 558v320h478v-320h-478zM448 738h126v138h-126v-138z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "portal" - ] - }, - "attrs": [], - "properties": { - "order": 476, - "id": 119, - "prevSize": 16, - "code": 59826, - "name": "portal" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 178 - }, - { - "icon": { - "paths": [ - "M0 0v1024h818v-98h-64v34h-690v-896h690v114h64v-178h-818zM572 180c-147.574 0-268 123.722-268 276s120.426 276 268 276c50.852 0 97.535-16.556 138-42 2.376 5.114 5.882 11.751 10 16l188 194c19.466 20.086 50.534 20.086 70 0l24-24c19.466-20.086 19.466-51.914 0-72l-188-196c-4.077-4.207-9.099-7.555-14-10 24.048-41.386 38-90.234 38-142 0-152.278-118.426-276-266-276zM572 254c107.326 0 194 91.253 194 202s-86.674 200-194 200c-107.326 0-196-89.253-196-200s88.674-202 196-202zM134 466v64h82c-5.078-20.817-9.052-41.784-10-64h-72zM138 654v64h204c-24.807-17.419-47.038-40.025-66-64h-138zM138 824v64h452v-64h-452z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "recordQuery" - ] - }, - "attrs": [], - "properties": { - "order": 477, - "id": 118, - "prevSize": 16, - "code": 59827, - "name": "recordQuery" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 179 - }, - { - "icon": { - "paths": [ - "M116 30l-114 528h-2l2 6-2 6h2l102 454h840l78-454h2l-2-6 2-6h-2l-114-528h-792zM162 84h700l84 398h-868l84-398zM328 140v48h370v-48h-370zM236 250v58h554v-58h-554zM190 362v64h646v-64h-646zM378 750h268v60h-268v-60z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "resourceManagment" - ] - }, - "attrs": [], - "properties": { - "order": 478, - "id": 117, - "prevSize": 16, - "code": 59828, - "name": "resourceManagment" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 180 - }, - { - "icon": { - "paths": [ - "M0 768h1024v256h-1024v-256z", - "M155.869 132.442h192v535.838h-192v-535.838z", - "M880.115 476.282v192h-427.888v-192h427.888z", - "M871.413 132.442v192h-427.888v-192h427.888z", - "M0 0v1024h1024v-1024h-1024zM60 60h904v901.997h-904v-901.997z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "ruleManagment" - ] - }, - "attrs": [], - "properties": { - "order": 479, - "id": 116, - "prevSize": 16, - "code": 59829, - "name": "ruleManagment" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 181 - }, - { - "icon": { - "paths": [ - "M908 4l-440 1016h82l438-1016h-80zM586 56c-28.986 0-55.758 11.758-76 32s-34 50.999-34 88c0 37.001 13.758 67.758 34 88s47.014 32 76 32c28.986 0 55.758-11.758 76-32s34-50.999 34-88c0-37.001-13.758-67.758-34-88s-47.014-32-76-32zM586 104c24.033 0 45.497 11.497 60 26s22 29.982 22 46c0 16.018-7.497 33.497-22 48s-35.967 24-60 24c-24.033 0-45.497-9.497-60-24s-22-31.982-22-48c0-16.018 7.497-31.497 22-46s35.967-26 60-26zM462 342l-208 428-124-200-132 84 208 204 22 26 28-22 380-448-174-72zM872 740c-28.986 0-55.758 11.758-76 32s-36 50.999-36 88c0 37.001 15.758 67.758 36 88s47.014 32 76 32c28.986 0 53.758-11.758 74-32s36-50.999 36-88c0-37.001-15.758-67.758-36-88s-45.014-32-74-32zM872 788c24.033 0 45.497 11.497 60 26s20 29.982 20 46c0 16.018-5.497 33.497-20 48s-35.967 24-60 24c-24.033 0-45.497-9.497-60-24s-22-31.982-22-48c0-16.018 7.497-31.497 22-46s35.967-26 60-26z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "sucessRate" - ] - }, - "attrs": [], - "properties": { - "order": 480, - "id": 115, - "prevSize": 16, - "code": 59830, - "name": "sucessRate" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 182 - }, - { - "icon": { - "paths": [ - "M340 0c-188.394 0-340 151.606-340 340v344c0 188.394 151.606 340 340 340h344c188.394 0 340-151.606 340-340v-344c0-188.394-151.606-340-340-340h-344zM340 60h344c156.193 0 280 123.807 280 280v344c0 156.193-123.807 280-280 280h-344c-156.193 0-280-123.807-280-280v-344c0-156.193 123.807-280 280-280zM294 152l-118 98 140 172-148 204 116 86 224-284-214-276zM526 616v96h96v-96h-96zM758 616v96h96v-96h-96z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "terminalManagment" - ] - }, - "attrs": [], - "properties": { - "order": 481, - "id": 114, - "prevSize": 16, - "code": 59831, - "name": "terminalManagment" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 183 - }, - { - "icon": { - "paths": [ - "M232 10c-61.702 26.098-104 88.791-104 160 0 63.406 36.891 118.173 88 148v142h-28c-102.784 0-188 79.286-188 174v216c0 94.714 85.216 174 188 174h648c102.784 0 188-79.286 188-174v-216c0-94.714-85.216-174-188-174h-90v-272.744l32.242 10.697h75.758c9.891-1.512 13.281-2.842 20-18 16.523-50.182 124.738-56.639 146-37.954 3.52-58.704-84.581-96.842-148-94-38.653-1.549-114 0-114 0-12.518 0.026-23.19 12.302-28 28h-56v-8c0-29.134-22.866-54-52-54h-20c-29.134 0-54 24.866-54 54v108c0 29.134 24.866 54 54 54h20c10.645 0 19.738-4.604 28-10v240h-270v-138c55.309-28.606 92-85.473 92-152 0-71.885-45.362-134.327-108-160 0.91 2.929 4 6.714 4 10v176c0 15.687-14.009 28-28 28h-80c-13.991 0-28-12.313-28-28v-176c0-3.286 3.090-7.071 4-10-0.589 0.241-3.414-0.248-4 0zM188 560h648c45.538 0 82 32.037 82 74v16h-812v-16c0-41.963 36.462-74 82-74zM106 714h812v136c0 41.963-36.462 76-82 76h-648c-45.538 0-82-34.037-82-76z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "tools" - ] - }, - "attrs": [], - "properties": { - "order": 482, - "id": 113, - "prevSize": 16, - "code": 59832, - "name": "tools" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 184 - }, - { - "icon": { - "paths": [ - "M386.288 150.611c-64.504 2.92-124.19 43.881-109.558 141.846 15.955 106.825 15.406 172.256 93.327 158.057 87.588-15.961 108.823-82.844 103.471-164.136-5.847-88.81-26.616-138.511-87.24-135.767zM670.326 166.822c-46.129 2.217-72.376 54.29-93.327 119.556-33.015 102.851-30.356 144.937 48.692 149.951 88.855 5.637 118.134-31.147 131.875-111.45 13.208-77.193-5.994-141.384-64.923-156.030-7.366-1.831-15.727-2.343-22.317-2.026zM112.394 359.327c-60.726 0-106.386 63.689-111.586 141.846-7.171 107.77 33.666 156.045 111.586 141.846 87.588-15.961 115.64-60.605 109.558-141.846-5.847-78.094-48.831-141.846-109.558-141.846zM923.931 373.512c-43.702 4.545-86.594 41.033-113.615 93.213-49.679 95.935-32.478 154.168 44.635 172.241 86.68 20.316 129.302-8.204 156.221-85.107 25.876-73.924 13.064-150.038-42.606-174.268-13.918-6.057-30.067-7.594-44.635-6.079zM493.817 497.12c-80.695 0-167.197 57.335-200.855 176.294-89.884 44.495-159.755 129.365-137.961 214.795 35.956 140.948 185.98 135.767 338.817 135.767s326.644 1.514 326.644-143.872c0-145.386-173.807-382.983-326.644-382.983z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "track" - ] - }, - "attrs": [], - "properties": { - "order": 483, - "id": 112, - "prevSize": 16, - "code": 59833, - "name": "track" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 185 - }, - { - "icon": { - "paths": [ - "M325.771 135.155c-83.461 0-153.836 70.365-153.836 153.834 0 83.463 70.375 150.816 153.836 150.816s147.803-67.353 147.803-150.816c0-83.469-64.342-153.834-147.803-153.834zM190.033 448.859c-109.183 48.214-183.195 158.051-190.033 283.537h404.954l113.039-250.144c-12.772-8.111-48.521-27.215-62.517-33.393-1.545-1.312-1.458 0-3.017 0l-126.689 189.911-132.721-189.911c-1.134-1.312-1.905 1.312-3.016 0z", - "M703.355 355.176c-83.461 0-153.836 70.365-153.836 153.834 0 83.463 70.375 150.816 153.836 150.816s147.804-67.354 147.804-150.816c0-83.469-64.342-153.834-147.804-153.834zM567.617 668.88c-109.183 48.214-183.195 158.051-190.033 283.537h645.509c-6.838-125.486-80.85-235.323-190.033-283.537-1.546-1.312-1.459 0-3.017 0-71.621 110.94-177.699 111.193-259.41 0-1.134-1.312-1.905 1.312-3.016 0z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "userManagment" - ] - }, - "attrs": [], - "properties": { - "order": 484, - "id": 111, - "prevSize": 16, - "code": 59834, - "name": "userManagment" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 186 - }, - { - "icon": { - "paths": [ - "M128 0.25v481.997h-128l112 540.806h802l110-540.806h-128v-481.997zM192 64.25h640v417.997h-640zM244 192.25v64h270v-64zM242 322.246v64h520v-64z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "versionManagment" - ] - }, - "attrs": [], - "properties": { - "order": 485, - "id": 110, - "prevSize": 16, - "code": 59835, - "name": "versionManagment" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 187 - }, - { - "icon": { - "paths": [ - "M116 0v1024h792v-722h2l-282-300v-2h-512zM176 60h390v302h282v600h-672v-902zM628 96l192 206h-192v-206zM374 98v106h-114v84h114v112l140-154-140-148zM650 452v106h-114v84h114v112l140-154-140-148zM374 616v106h-114v84h114v112l140-154-140-148z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "workOrder" - ] - }, - "attrs": [], - "properties": { - "order": 486, - "id": 109, - "prevSize": 16, - "code": 59836, - "name": "workOrder" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 188 - }, - { - "icon": { - "paths": [ - "M888.686 0h-753.371c-74.606 0-135.314 62.171-135.314 138.606v746.862c0 76.361 60.709 138.533 135.314 138.533h753.371c74.606 0 135.314-62.171 135.314-138.606v-746.789c0-76.434-60.709-138.606-135.314-138.606zM888.686 950.857h-49.445v-59.831c0-77.531-64-140.581-142.702-140.581h-15.287c-13.239-22.601-37.010-38.473-65.463-38.473-42.35 0-76.8 33.646-76.8 75.118 0 41.399 34.45 75.191 76.8 75.191 28.526 0 52.517-16.091 65.609-38.766h15.141c38.327 0 69.559 30.208 69.559 67.438v59.904h-571.611v-59.831c0-37.23 31.232-67.438 69.559-67.438h51.785c13.239 22.747 37.157 38.766 65.682 38.766 42.35 0 76.727-33.792 76.727-75.191 0-41.472-34.377-75.118-76.727-75.118-28.453 0-52.297 15.872-65.536 38.4h-51.931c-78.702 0-142.702 63.049-142.702 140.581v56.832c-27.355-6.802-48.201-31.598-48.201-62.464v-263.68h109.568c10.679 13.605 26.697 22.894 45.568 22.894 32.329 0 58.441-25.6 58.441-57.198 0-31.671-26.039-57.344-58.441-57.344-21.65 0-39.863 12.069-49.957 29.33h-105.179v-91.429h111.835c10.752 11.776 25.893 19.602 43.301 19.602 32.329 0 58.441-25.673 58.441-57.271 0-31.671-26.039-57.344-58.441-57.344-23.186 0-42.789 13.531-52.224 32.695h-102.912v-267.045c0-36.133 27.867-65.463 62.171-65.463h266.459v108.032c-19.602 9.216-33.353 28.526-33.353 51.2 0 31.744 26.185 57.344 58.587 57.344 32.183 0 58.441-25.6 58.441-57.344 0-17.042-7.973-31.89-19.968-42.423v-116.809h93.33v110.226c-17.774 9.947-30.062 27.721-30.062 49.006 0 31.744 26.185 57.344 58.514 57.344 32.183 0 58.441-25.6 58.441-57.344 0-18.505-9.509-34.231-23.406-44.617v-114.615h266.459c34.231 0 62.098 29.33 62.098 65.463v267.045h-102.546c-9.435-19.163-28.965-32.695-52.224-32.695-32.329 0-58.441 25.673-58.441 57.344 0 31.598 26.039 57.271 58.441 57.271 17.408 0 32.475-7.826 43.301-19.602h111.47v91.429h-104.887c-10.094-17.262-28.306-29.33-49.957-29.33-32.329 0-58.441 25.673-58.441 57.344s26.039 57.198 58.441 57.198c18.871 0 34.962-9.362 45.568-22.894h109.275v263.68c0 36.133-27.867 65.463-62.171 65.463z", - "M356.206 377.637h294.985v275.529h-294.985v-275.529z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "cpu" - ] - }, - "attrs": [], - "properties": { - "order": 487, - "id": 108, - "prevSize": 16, - "code": 59837, - "name": "cpu" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 189 - }, - { - "icon": { - "paths": [ - "M1023.854 653.751l-97.938-566.491h-794.99l-130.706 566.491h-0.219v284.306h1024v-284.306h-0.146zM183.296 160.402h686.885l72.923 421.010h-856.942l97.134-421.010zM955.685 864.841h-887.369v-137.947h887.442v137.947z", - "M131.95 750.738h73.143v99.109h-73.143v-99.109z", - "M247.003 750.738h73.143v99.109h-73.143v-99.109z", - "M890.368 802.231c0 17.693-14.343 32.037-32.037 32.037s-32.037-14.343-32.037-32.037c0-17.693 14.343-32.037 32.037-32.037s32.037 14.343 32.037 32.037z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "memory" - ] - }, - "attrs": [], - "properties": { - "order": 488, - "id": 107, - "prevSize": 16, - "code": 59838, - "name": "memory" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 190 - }, - { - "icon": { - "paths": [ - "M512 0c-282.331 0-512 229.742-512 512s229.669 512 512 512c282.258 0 512-229.742 512-512s-229.742-512-512-512zM512 950.857c-242.030 0-438.857-196.827-438.857-438.857s196.827-438.857 438.857-438.857 438.857 196.827 438.857 438.857-196.827 438.857-438.857 438.857z", - "M757.906 631.296c-56.174-56.174-80.018-165.961-77.605-227.474 2.853-61.44-14.409-118.638-58.661-152.357-39.79-30.208-80.53-24.064-80.53-24.064l-2.414-21.431c0 0-8.923-6.949-26.77-6.949-16.823 0-26.697 6.949-26.697 6.949l-2.706 21.431c0 0-40.667-6.071-80.165 24.064-44.471 33.719-61.586 90.99-58.88 152.357 2.706 61.513-21.358 171.301-77.605 227.401-56.101 56.174-64.073 58.953-61.44 88.283 2.779 29.33 26.917 43.813 26.917 43.813h196.462c0 34.158 37.742 61.733 84.187 61.733 46.592 0 84.187-27.575 84.187-61.733h196.535c0 0 24.21-14.409 26.843-43.813s-5.266-32.11-61.659-88.21z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "currentAlarm" - ] - }, - "attrs": [], - "properties": { - "order": 489, - "id": 106, - "prevSize": 16, - "code": 59839, - "name": "currentAlarm" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 191 - }, - { - "icon": { - "paths": [ - "M518.656 2.341c-282.331 0-512 229.669-512 512 0 282.258 229.669 512 512 512s512.073-229.742 512.073-512c0-282.331-229.742-512-512.073-512zM518.656 953.125c-242.030 0-438.857-196.827-438.857-438.857s196.827-438.857 438.857-438.857c242.103 0 438.93 196.827 438.93 438.857s-196.901 438.857-438.93 438.857z", - "M818.907 432.494c-1.755 0-3.365 1.243-5.339 1.463v-192.951c0 0-27.209-12.142-51.273 0-50.834 25.307-118.711 109.495-190.245 123.173-71.314 13.531-264.265-0.512-350.939 7.607-23.918 2.121-63.927 15.067-67.511 67.584-3.877 52.443 0 107.154 0 107.154s19.602 45.202 45.056 45.202c25.381 0 81.627 0 81.627 0s-2.121 107.447 0 143.287c3.145 50.176 18.871 62.318 38.107 88.137 11.045 15.141 73.655 49.737 112.347 25.966 21.504-13.385 39.643-36.425 31.89-65.536-9.509-35.182-44.105-1.39-54.711-44.105-10.679-42.496-7.607-127.561-7.607-127.561s18.286-25.893 42.642-31.963c5.413-1.463 74.459 4.608 74.459 4.608s190.464 66.779 235.52 129.097c31.963 44.032 60.635 13.531 60.635 13.531v-190.61c1.902 0.219 3.584 1.463 5.266 1.463 20.626 0 37.376-23.479 37.376-52.809 0.073-29.111-16.603-52.736-37.303-52.736zM781.824 668.087h-13.824c0 0 0 0-39.424-35.035-39.424-34.889-127.122-69.925-180.809-86.674-15.433-4.754-65.024-8.338-65.024-8.338v-112.347c6.437-0.146 17.262-4.389 37.815-3.73 107.886 2.999 249.198-129.243 249.198-129.243h12.142v375.369z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "noticeAlarm" - ] - }, - "attrs": [], - "properties": { - "order": 490, - "id": 105, - "prevSize": 16, - "code": 59840, - "name": "noticeAlarm" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 192 - }, - { - "icon": { - "paths": [ - "M672.329 351.305l-117.906 100.571c-10.679-6.217-22.528-10.679-35.767-10.679-8.997 0-17.335 2.121-25.234 5.12l-182.491-182.491c-13.458-13.458-35.84-12.727-50.103 1.609-14.263 14.263-14.994 36.645-1.609 50.103l188.416 188.416c-0.512 3.511-2.121 6.656-2.121 10.386 0 40.375 32.768 73.143 73.143 73.143 39.643 0 71.534-31.671 72.704-71.022l128.439-109.568c15.36-13.093 17.189-36.133 4.169-51.493-13.166-15.433-36.279-17.262-51.639-4.096z", - "M518.656 206.848c20.187 0 36.571-16.384 36.571-36.571v-51.2c0-20.187-16.384-36.571-36.571-36.571s-36.571 16.384-36.571 36.571v51.2c0 20.187 16.311 36.571 36.571 36.571z", - "M518.656 820.736c-20.187 0-36.571 16.457-36.571 36.571v51.273c0 20.114 16.384 36.571 36.571 36.571s36.571-16.457 36.571-36.571v-51.273c0-20.187-16.384-36.571-36.571-36.571z", - "M910.336 477.769h-51.127c-20.187 0-36.571 16.384-36.571 36.571s16.384 36.571 36.571 36.571h51.127c20.261 0 36.571-16.384 36.571-36.571s-16.238-36.571-36.571-36.571z", - "M172.105 477.769h-51.2c-20.114 0-36.571 16.384-36.571 36.571s16.457 36.571 36.571 36.571h51.2c20.187 0 36.571-16.384 36.571-36.571s-16.384-36.571-36.571-36.571z", - "M518.656 2.341c-282.331 0-512 229.669-512 512 0 282.258 229.669 512 512 512s512.073-229.742 512.073-512c0-282.331-229.742-512-512.073-512zM518.656 953.125c-242.030 0-438.857-196.827-438.857-438.857s196.827-438.857 438.857-438.857c242.103 0 438.93 196.827 438.93 438.857s-196.901 438.857-438.93 438.857z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "historyAlarm" - ] - }, - "attrs": [], - "properties": { - "order": 491, - "id": 104, - "prevSize": 16, - "code": 59841, - "name": "historyAlarm" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 193 - }, - { - "icon": { - "paths": [ - "M868.791 755.785l-251.026-245.102 245.175-250.88-107.154-104.521-245.029 250.88-251.026-245.029-104.521 107.008 251.026 245.102-245.175 251.026 107.081 104.448 245.102-250.953 251.026 245.175z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "close" - ] - }, - "attrs": [], - "properties": { - "order": 492, - "id": 103, - "prevSize": 16, - "code": 59842, - "name": "close" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 194 - }, - { - "icon": { - "paths": [ - "M36.571 73.143v950.857h950.857v-950.857h-950.857zM919.113 146.286v113.225h-814.226v-113.225h814.226zM688.567 332.654v165.23h-136.338v-165.23h136.338zM479.086 497.957h-144.018v-165.303h144.018v165.303zM261.925 497.957h-157.038v-165.303h157.038v165.303zM261.925 571.099v142.482h-157.038v-142.482h157.038zM335.067 571.099h144.018v142.482h-144.018v-142.482zM552.229 571.099h136.338v142.482h-136.338v-142.482zM761.71 571.099h157.403v142.482h-157.403v-142.482zM761.71 497.957v-165.303h157.403v165.23h-157.403zM104.887 950.93v-164.206h157.038v164.206h-157.038zM335.067 950.93v-164.206h144.018v164.206h-144.018zM552.229 950.93v-164.206h136.338v164.206h-136.338zM761.71 950.93v-164.206h157.403v164.206h-157.403z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "table" - ] - }, - "attrs": [], - "properties": { - "order": 493, - "id": 102, - "prevSize": 16, - "code": 59843, - "name": "table" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 195 - }, - { - "icon": { - "paths": [ - "M215.040 36.571l501.102 481.646v-481.573h146.286v950.784h-146.286v-463.506l-501.102 463.506z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "next" - ] - }, - "attrs": [], - "properties": { - "order": 494, - "id": 101, - "prevSize": 16, - "code": 59844, - "name": "next" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 196 - }, - { - "icon": { - "paths": [ - "M862.427 36.571l-501.102 481.646v-481.573h-146.286v950.784h146.286v-463.506l501.102 463.506z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "pre" - ] - }, - "attrs": [], - "properties": { - "order": 495, - "id": 100, - "prevSize": 16, - "code": 59845, - "name": "pre" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 197 - }, - { - "icon": { - "paths": [ - "M942.528 574.848c0 0-39.872-43.904-77.632-68.096-37.888-24.32-102.656-36.992-102.656-36.992l-3.392-31.104 6.848-4.608c0 0 27.776-56.64 32.384-69.312 4.544-12.736 12.8-12.736 18.56-19.648s12.032-51.84 8.128-58.88c-2.88-5.184-9.344-7.040-9.344-7.040l1.28-9.152c0 0 10.368-57.728 6.848-75.072s-11.648-45.12-21.888-58.88c-10.496-13.888-27.648-20.8-41.6-18.56-13.888 2.368-20.864-6.912-20.864-6.912s-26.368-23.104-51.84-24.256-98.304 17.344-113.28 85.504c-14.976 68.16 0 110.848 0 110.848l-6.976 2.304c0 0-3.456 28.864 3.52 49.664 6.848 20.736 24.256 33.408 24.256 33.408l3.456 6.976c0 0 4.032 9.344 9.28 20.672 53.44 35.776 90.176 104.704 90.176 184.96 0 46.080-12.224 88.384-32.576 123.072 11.2 0.704 22.464 1.344 33.6 1.088 134.208-3.648 236.672-42.24 243.712-61.888 6.848-19.52 0-68.096 0-68.096z", - "M355.136 580.736c0-78.912 35.52-146.88 87.552-183.168 6.528-13.76 12.864-27.456 14.848-32.896 4.48-12.672 12.736-12.672 18.496-19.584s12.032-51.84 8.128-58.88c-2.88-5.184-9.344-7.040-9.344-7.040l1.28-9.152c0 0 10.368-57.728 6.848-75.072s-11.648-45.12-21.888-58.88c-10.56-13.888-27.712-20.864-41.664-18.56-13.888 2.368-20.864-6.912-20.864-6.912s-26.368-23.104-51.84-24.256c-25.472-1.152-98.304 17.344-113.28 85.504s0 110.848 0 110.848l-6.912 2.304c0 0-3.456 28.864 3.456 49.664 6.912 20.736 24.256 33.408 24.256 33.408l3.456 6.976c0 0 22.016 51.968 31.168 60.032 9.28 8.128 2.304 28.928 2.304 28.928l-12.672 9.216c0 0-161.664 50.88-166.336 97.088s-6.464 55.808-3.264 69.888c2.176 9.344 129.664 68.096 249.28 64.768 10.048-0.256 19.392-1.152 29.056-1.728-20.032-34.688-32.064-76.736-32.064-122.496z", - "M568.832 429.504c0 0-26.368-23.104-51.84-24.256s-98.304 17.344-113.28 85.504c-14.976 68.16 0 110.848 0 110.848l-6.912 2.368c0 0-3.456 28.864 3.456 49.664 6.912 20.736 24.256 33.408 24.256 33.408l3.456 6.976c0 0 22.016 51.968 31.168 60.032 9.28 8.064 2.304 28.864 2.304 28.864l-12.672 9.216c0 0-161.664 50.88-166.336 97.088s-6.464 55.808-3.264 69.888c2.176 9.408 129.664 68.16 249.28 64.832 134.208-3.712 236.736-42.304 243.712-61.888 6.848-19.648 0-68.16 0-68.16s-39.872-43.904-77.632-68.096c-37.888-24.32-102.656-36.992-102.656-36.992l-3.392-31.104 6.848-4.608c0 0 27.776-56.64 32.384-69.312 4.48-12.672 12.736-12.672 18.496-19.648s12.032-51.84 8.128-58.88c-2.88-5.184-9.344-7.040-9.344-7.040l1.28-9.152c0 0 10.368-57.728 6.848-75.072s-11.648-45.12-21.888-58.88c-10.432-14.016-27.52-20.928-41.536-18.688-13.888 2.368-20.864-6.912-20.864-6.912z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "roleset" - ] - }, - "attrs": [], - "properties": { - "order": 496, - "id": 99, - "prevSize": 16, - "code": 59846, - "name": "roleset" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 198 - }, - { - "icon": { - "paths": [ - "M509.504 670.656c0 0 9.344-27.904-3.072-38.656-12.288-10.816-41.792-80.448-41.792-80.448l-4.608-9.344c0 0-23.232-16.96-32.512-44.864-0.64-1.856-0.768-3.968-1.28-5.888-17.152-4.544-28.928-6.848-28.928-6.848l-4.352-39.36 8.64-5.888c0 0 12.16-24.832 23.424-48.512-2.88-25.856-3.456-64 7.104-111.68 6.208-28.096 20.096-49.344 36.864-65.984 3.584-23.104 8.576-61.056 5.504-75.904-4.16-21.888-14.528-56.96-27.712-74.432-13.12-17.536-34.944-26.304-52.48-23.36s-26.24-8.768-26.24-8.768-33.472-29.248-65.6-30.656c-32.128-1.472-124.16 21.888-143.168 107.968-18.944 86.080 0 140.032 0 140.032l-8.64 3.008c0 0-4.416 36.544 4.288 62.72 8.768 26.304 30.656 42.368 30.656 42.368l4.352 8.768c0 0 27.84 65.664 39.424 75.904 11.648 10.112 2.88 36.48 2.88 36.48l-15.936 11.584c0 0-204.288 64.192-210.176 122.688-5.824 58.304-8.192 70.528-4.096 88.256 2.624 11.072 144.704 77.184 287.104 81.728 54.144-51.456 203.456-98.496 203.456-98.496l16.896-12.416z", - "M1019.84 849.536c0 0-53.376-58.816-104-91.328-50.752-32.576-137.344-49.472-137.344-49.472l-4.608-41.728 9.28-6.272c0 0 37.12-75.84 43.392-92.864 6.144-17.024 17.024-17.024 24.768-26.304s16-69.376 10.752-78.976c-3.776-6.912-12.224-9.344-12.224-9.344l1.344-12.224c0 0 13.888-77.376 9.28-100.608s-15.488-60.352-29.376-78.912c-14.016-18.624-37.12-27.904-55.744-24.832-18.624 3.136-27.904-9.28-27.904-9.28s-35.52-30.912-69.504-32.448c-34.112-1.536-131.648 23.168-151.744 114.56-20.096 91.264 0 148.48 0 148.48l-9.28 3.136c0 0-4.672 38.72 4.608 66.56 9.28 27.904 32.512 44.928 32.512 44.928l4.608 9.344c0 0 29.504 69.632 41.728 80.448 12.352 10.752 3.136 38.656 3.136 38.656l-17.024 12.288c0 0-216.64 68.096-222.848 130.048s-8.704 74.752-4.352 93.632c2.88 12.544 173.76 91.264 334.016 86.784 179.904-4.928 317.248-56.704 326.528-82.944 9.344-26.304 0-91.328 0-91.328z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "role" - ] - }, - "attrs": [], - "properties": { - "order": 497, - "id": 98, - "prevSize": 16, - "code": 59847, - "name": "role" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 199 - }, - { - "icon": { - "paths": [ - "M593.664 100.928c0 0-41.216-35.84-80.64-37.632-39.488-1.792-152.512 26.88-175.808 132.736-23.296 105.792 0 172.096 0 172.096l-10.688 3.648c0 0-5.376 44.864 5.312 77.184 10.752 32.256 37.696 51.968 37.696 51.968l5.376 10.816c0 0 34.112 80.704 48.384 93.184 14.4 12.48 3.584 44.8 3.584 44.8l-19.712 14.336c0 0-251.072 78.912-258.24 150.656s-10.048 86.656-5.056 108.48c3.328 14.592 201.344 105.728 386.944 100.608 208.512-5.76 367.68-65.664 378.432-96.128 10.752-30.528 0-105.792 0-105.792s-61.952-68.16-120.64-105.792c-58.752-37.76-159.104-57.344-159.104-57.344l-5.248-48.448 10.624-7.232c0 0 43.136-87.872 50.304-107.584 7.104-19.712 19.712-19.712 28.672-30.464s18.56-80.384 12.48-91.52c-4.352-8-14.336-10.88-14.336-10.88l1.792-14.208c0 0 16.064-89.664 10.688-116.544-5.312-26.88-17.92-69.952-34.048-91.456s-42.944-32.256-64.512-28.736c-21.568 3.648-32.256-10.752-32.256-10.752z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "user" - ] - }, - "attrs": [], - "properties": { - "order": 498, - "id": 97, - "prevSize": 16, - "code": 59848, - "name": "user" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 200 - }, - { - "icon": { - "paths": [ - "M490.639 255.969l-457.452 128.548 31.401 141.455-2.253-0.481v3.779l-45.338 141.681 402.376 96.333 77.45-145.454 1.884-3.779-411.1-87.199 434.191-129.428z", - "M62.336 701.619v205.455l436.372 115.231v-359.347l-66.514 126.766z", - "M531.937 619.74l1.889 3.779 77.445 145.459 402.381-96.338-45.348-141.681v-3.779l-1.367 0.287 33.623-151.404-447.601-120.095-31.16 145.454 442.87 126.525z", - "M531.937 664.648v359.352l436.367-115.236v-205.455l-369.848 88.1z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "empty" - ] - }, - "attrs": [], - "properties": { - "order": 499, - "id": 96, - "prevSize": 16, - "code": 59849, - "name": "empty" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 201 - }, - { - "icon": { - "paths": [ - "M544.427 403.183l179.849 222.788v295.424l119.74 102.605v-397.414l179.985-223.403h-479.573zM809.882 614.946v333.346l-51.473-39.458v-295.492l-138.923-176.503h333.858l-143.462 178.108z", - "M393.865 425.472c-35.601 8.499-61.269 42.598-62.362 44.032l-3.14 4.267-0.205 5.291c-0.137 4.164-3.686 103.185 9.899 155.136 9.83 37.717 35.635 40.482 51.029 42.052 12.834 1.399 14.336 1.843 16.691 10.138 8.431 30.071-19.422 50.381-31.676 57.617-37.717 21.914-106.701-12.937-116.873-26.317-3.618-4.676-7.134-8.943-10.513-13.073-18.091-21.982-30.071-36.42-32.939-81.203-2.628-40.994 0-165.751 0.034-167.049l0.375-17.442h-118.374c-13.141 0-30.413-23.279-39.014-40.585-0.853-13.483-3.823-68.164 0.205-120.286 3.789-50.62 44.237-61.679 68.028-63.795 47.002-4.198 98.202-3.243 147.763-2.321 63.556 1.126 123.563 2.287 174.046-6.861 59.187-10.786 114.449-54.511 163.226-93.082 27.785-21.948 54.033-42.735 76.015-53.146 13.756-6.554 29.286-4.949 39.287-2.765v234.598l19.831-3.277 3.721-1.502c15.735 0 29.047 20.651 29.047 45.056 0 7.817-1.468 15.462-4.403 22.767l31.744 12.629c4.506-11.366 6.793-23.279 6.793-35.43 0-39.868-22.357-72.021-52.599-78.131v-220.604l-10.513-4.403c-1.604-0.717-41.267-16.964-77.551 0.307-25.463 12.083-53.248 33.997-82.534 57.207-45.67 36.079-97.382 77.005-148.173 86.255-47.138 8.499-105.54 7.441-167.322 6.315-50.449-0.956-102.571-1.877-151.415 2.458-57.89 5.12-94.925 40.721-99.021 95.198-4.813 62.259-0.205 125.952 0 128.649l1.502 5.837c2.97 6.451 30.174 63.181 71.339 63.181h83.524c-0.614 36.352-1.775 119.159 0.375 152.508 3.618 55.774 20.753 76.595 40.653 100.727 3.209 3.891 6.519 7.885 9.83 12.151 13.107 17.135 65.092 46.558 114.142 46.558 16.555 0 32.802-3.379 47.070-11.708 39.834-23.586 57.481-59.597 47.206-96.324-8.738-30.857-32.017-33.348-45.943-34.816-13.585-1.399-17.681-1.809-21.572-16.759-10.581-40.516-9.489-118.101-8.977-139.605 7.543-8.67 22.938-23.313 38.059-26.999 6.588-0.478 50.039 2.458 86.699 5.564l8.533-33.143-4.198-0.887c-87.996-7.134-94.481-5.666-97.348-4.983z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "noticeFilter" - ] - }, - "attrs": [], - "properties": { - "order": 500, - "id": 95, - "prevSize": 16, - "code": 59850, - "name": "noticeFilter" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 202 - }, - { - "icon": { - "paths": [ - "M260.949 393.216c14.711-9.284 56.491-30.891 129.877-33.485 93.15-3.174 275.9 29.491 277.675 29.798l52.156 9.353-36.864-38.059c-5.905-6.076-145.681-148.651-287.369-158.618-68.574-4.881-119.159 4.233-146.33 11.196l-5.803-149.094-233.745 271.189 250.402 235.042v-177.323zM226.816 376.491v115.2l-169.097-158.72 155.819-180.736 4.267 108.51 22.323-8.704c0.512-0.171 58.914-22.391 153.873-15.77 85.026 6.007 172.954 68.301 223.198 110.217-63.181-9.694-164.215-22.972-227.601-20.855-106.325 3.755-154.795 44.032-156.809 45.739l-5.973 5.12z", - "M936.073 719.838l-27.477-27.136c-72.841-72.738-102.332-217.771-99.396-292.796 4.471-95.881-25.907-173.705-85.538-219.17-40.073-30.447-80.828-36.079-103.356-36.489l-2.253-20.105-5.7-4.437c-1.707-1.331-17.476-12.971-46.49-12.971-27.238 0-43.895 11.23-45.705 12.493l-6.144 4.335-2.628 20.719c-14.131 0.273-35.567 2.594-59.358 11.878l12.356 31.812c32.529-12.629 59.255-9.148 59.46-9.114l17.237 2.56 4.71-37.069c9.148-3.413 31.846-3.243 40.141-0.239l4.301 37.239 17.374-2.458c1.98-0.205 48.777-6.383 95.403 29.047 50.415 38.434 76.049 106.086 72.090 190.566-3.311 83.558 28.467 237.568 109.397 318.43l27.648 27.307c51.132 50.21 52.531 52.395 50.278 77.653-2.15 23.484-17.51 37.888-24.474 43.315h-275.831v17.067c0 36.318-43.145 65.911-96.119 65.911s-96.085-29.559-96.085-65.911v-17.067h-275.763c-6.929-5.461-22.391-20.070-24.576-43.315-2.253-25.259-0.853-27.443 49.971-77.517l27.75-27.511c68.13-68.062 100.489-187.631 107.52-269.346l-33.997-2.935c-6.519 75.981-36.045 186.539-97.655 248.149l-27.58 27.307c-51.541 50.756-63.795 62.839-60.006 104.96 4.471 47.514 42.769 70.895 44.407 71.851l4.028 2.423h253.645c10.581 47.070 64.102 82.978 128.341 82.978 64.273 0 117.794-35.908 128.375-82.978h253.679l4.028-2.389c1.638-0.956 40.073-24.405 44.373-71.953 3.721-42.121-8.602-54.238-60.382-105.097z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "alarmTurn" - ] - }, - "attrs": [], - "properties": { - "order": 501, - "id": 94, - "prevSize": 16, - "code": 59851, - "name": "alarmTurn" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 203 - }, - { - "icon": { - "paths": [ - "M846.814 118.818c2.526-10.513 5.939-17.169 6.997-18.193v-34.133c-20.617 0-36.42 21.060-41.847 52.326h-56.695c2.526-10.513 5.939-17.169 6.997-18.193v-34.133c-20.617 0-36.42 21.060-41.847 52.326h-56.695c2.526-10.513 5.939-17.169 6.997-18.193v-34.133c-20.617 0-36.42 21.060-41.847 52.326h-56.695c2.526-10.513 5.939-17.169 6.997-18.193v-34.133c-20.617 0-36.42 21.060-41.847 52.326h-56.695c2.526-10.513 5.939-17.169 6.997-18.193v-34.133c-20.617 0-36.454 21.060-41.847 52.326h-56.661c2.526-10.513 5.939-17.169 6.997-18.193v-34.133c-20.617 0-36.454 21.060-41.847 52.326h-56.661c2.526-10.513 5.939-17.169 6.997-18.193v-34.133c-20.617 0-36.454 21.060-41.847 52.326h-56.695c2.526-10.513 5.939-17.169 6.997-18.193v-34.133c-20.617 0-36.454 21.060-41.847 52.326h-114.005v705.434h927.778v-705.434h-138.172zM950.852 790.118h-859.511v-637.167h78.302c2.731 38.4 20.036 65.399 43.383 65.399l1.638-33.792c-2.799-1.707-8.738-13.073-10.615-31.607h57.139c2.731 38.4 20.036 65.399 43.383 65.399l1.638-33.792c-2.799-1.707-8.772-13.073-10.615-31.607h57.139c2.731 38.4 20.036 65.399 43.383 65.399l1.638-33.792c-2.833-1.673-8.806-13.039-10.684-31.607h57.139c2.731 38.4 20.036 65.399 43.383 65.399l1.638-33.792c-2.833-1.673-8.806-13.039-10.684-31.607h57.139c2.731 38.4 20.036 65.399 43.383 65.399l1.638-33.792c-2.833-1.673-8.772-13.005-10.65-31.573h57.139c2.731 38.4 20.036 65.399 43.383 65.399l1.638-33.792c-2.833-1.673-8.772-13.005-10.65-31.573h57.139c2.731 38.4 20.036 65.399 43.383 65.399l1.638-33.792c-2.833-1.673-8.772-13.005-10.65-31.573h57.139c2.731 38.4 20.036 65.399 43.383 65.399l1.638-33.792c-2.833-1.673-8.772-13.005-10.65-31.573h106.052v637.030z", - "M197.086 333.79h176.469v34.133h-176.469v-34.133z", - "M195.584 454.929h684.919v34.133h-684.919v-34.133z", - "M195.584 596.992h684.919v34.133h-684.919v-34.133z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "advice" - ] - }, - "attrs": [], - "properties": { - "order": 502, - "id": 93, - "prevSize": 16, - "code": 59852, - "name": "advice" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 204 - }, - { - "icon": { - "paths": [ - "M857.463 514.287c0-28.228-22.46-51.2-50.074-51.2h-224.939v-379.529c0-36.284-30.481-65.775-67.891-65.775-37.478 0-67.925 29.491-67.925 65.775v379.529h-222.72c-27.648 0-50.108 22.972-50.108 51.2v87.825l2.492 12.015 0.853 5.393 4.028 17.545c4.608 48.23 6.793 213.299-31.232 292.25l-4.096 9.045 5.052 7.987c6.076 9.523 17.033 10.001 35.874 10.001 114.483 0 632.866-48.435 654.848-50.483l15.565-1.468v-276.378h0.239v-113.732zM480.768 83.558c0-17.442 15.155-31.642 33.792-31.642s33.758 14.199 33.758 31.642v379.529h-67.55v-379.529zM207.94 514.287c0-9.421 7.168-17.067 15.974-17.067h583.475c8.806 0 15.94 7.646 15.94 17.067v79.565h-615.39v-79.565zM822.886 873.301c-88.337 8.158-525.21 48.094-632.9 48.913 31.437-87.927 30.071-228.727 25.19-285.15h607.71v236.237z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "clearAlarm" - ] - }, - "attrs": [], - "properties": { - "order": 503, - "id": 92, - "prevSize": 16, - "code": 59853, - "name": "clearAlarm" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 205 - }, - { - "icon": { - "paths": [ - "M914.193 536.303h-814.182c-33.826 0-61.338-27.511-61.338-61.338v-186.948c0-33.826 27.511-61.338 61.338-61.338h814.182c33.826 0 61.338 27.511 61.338 61.338v186.948c-0 33.826-27.511 61.338-61.338 61.338zM100.011 260.813c-14.985 0-27.204 12.22-27.204 27.204v186.948c0 14.985 12.186 27.204 27.204 27.204h814.182c14.985 0 27.204-12.22 27.204-27.204v-186.948c0-14.985-12.186-27.204-27.204-27.204h-814.182z", - "M914.193 903.817h-814.182c-33.826 0-61.338-27.511-61.338-61.338v-186.948c0-33.826 27.511-61.338 61.338-61.338h814.182c33.826 0 61.338 27.511 61.338 61.338v186.948c-0 33.86-27.511 61.338-61.338 61.338zM100.011 628.361c-14.985 0-27.204 12.186-27.204 27.204v186.948c0 14.985 12.186 27.204 27.204 27.204h814.182c14.985 0 27.204-12.186 27.204-27.204v-186.948c0-14.985-12.186-27.204-27.204-27.204h-814.182z", - "M668.433 371.644c0 25.977-21.059 47.036-47.036 47.036s-47.036-21.059-47.036-47.036c0-25.977 21.059-47.036 47.036-47.036s47.036 21.059 47.036 47.036z", - "M848.282 371.644c0 25.977-21.059 47.036-47.036 47.036s-47.036-21.059-47.036-47.036c0-25.977 21.059-47.036 47.036-47.036s47.036 21.059 47.036 47.036z", - "M247.569 756.258c0 25.977-21.059 47.036-47.036 47.036s-47.036-21.059-47.036-47.036c0-25.977 21.059-47.036 47.036-47.036s47.036 21.059 47.036 47.036z", - "M452.369 756.258c0 25.977-21.059 47.036-47.036 47.036s-47.036-21.059-47.036-47.036c0-25.977 21.059-47.036 47.036-47.036s47.036 21.059 47.036 47.036z", - "M670.003 756.258c0 25.996-21.074 47.070-47.070 47.070s-47.070-21.074-47.070-47.070c0-25.996 21.074-47.070 47.070-47.070s47.070 21.074 47.070 47.070z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "alarmBox" - ] - }, - "attrs": [], - "properties": { - "order": 504, - "id": 91, - "prevSize": 16, - "code": 59854, - "name": "alarmBox" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 206 - }, - { - "icon": { - "paths": [ - "M487.083 899.618l-26.658-308.838 307.507 177.527-280.849 131.311zM500.053 653.073l16.828 194.97 177.254-82.91-194.082-112.060zM770.15 733.013l-280.337-161.792 260.233-450.697c21.163-36.693 69.666-49.835 106.496-28.57l145.306 83.9c37.786 21.845 50.347 68.608 28.57 106.462l-15.394 26.522 0.034 0.034-244.907 424.141zM536.474 558.729l221.218 127.659 210.773-365.056-221.218-127.727-210.773 365.124zM780.834 135.578l221.116 127.693c10.923-21.163 3.823-45.739-17.135-57.856l-145.306-83.9c-20.173-11.708-46.251-5.257-58.675 14.063z", - "M0 363.383h331.332v34.133h-331.332v-34.133z", - "M0 540.672h331.332v34.133h-331.332v-34.133z", - "M0 717.961h331.332v34.133h-331.332v-34.133z", - "M0 895.249h720.657v34.133h-720.657v-34.133z", - "M777.683 266.068l29.282 17.61-172.845 287.404-29.282-17.61 172.845-287.404z", - "M865.434 323.273l29.282 17.61-172.845 287.404-29.282-17.61 172.845-287.404z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "afreshDef" - ] - }, - "attrs": [], - "properties": { - "order": 505, - "id": 90, - "prevSize": 16, - "code": 59855, - "name": "afreshDef" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 207 - }, - { - "icon": { - "paths": [ - "M843.981 1024l-119.706-102.605v-295.424l-179.849-222.788h479.573l-180.019 223.437v397.38zM758.409 908.8l51.439 39.458v-333.346l143.497-178.108h-333.892l138.957 176.503v295.492z", - "M493.261 697.105c0 32.631-39.014 59.153-86.972 59.153-47.104 0-86.938-27.102-86.938-59.153v-17.067h-254.396c-6.417-5.086-19.729-17.954-21.641-38.571-2.048-22.562-0.751-24.542 45.466-70.076l25.6-25.327c75.127-75.059 104.175-216.951 100.796-293.751-3.413-77.278 20.002-139.059 66.014-173.943 40.516-30.891 84.48-26.658 86.255-26.419l17.271 2.56 4.369-34.679c8.090-2.901 26.931-2.731 34.304-0.239l4.062 34.782 17.34-2.423c2.15-0.307 45.807-4.608 86.665 26.419 45.978 35.089 69.359 96.836 65.741 174.012-0.717 17.203-1.809 28.262-0.683 43.418h34.406c-1.297-14.848-0.273-25.6 0.375-41.95 4.13-88.576-23.962-160.563-79.155-202.65-36.454-27.716-73.591-33.246-94.583-33.792l-2.048-17.886-5.666-4.403c-1.673-1.229-16.521-12.186-43.657-12.186-25.429 0-41.062 10.513-42.769 11.708l-6.144 4.335-2.321 18.466c-21.026 0.546-58.163 6.076-94.481 33.758-55.125 41.847-83.354 113.801-79.428 202.615 3.004 68.506-23.757 201.114-90.829 268.117l-25.395 25.156c-47.718 46.967-59.051 58.129-55.501 97.485 4.164 44.373 39.936 66.219 41.472 67.14l4.028 2.423h232.414c10.445 43.349 59.836 76.22 119.023 76.22 59.221 0 108.646-32.905 119.091-76.22h107.554v-34.133h-139.639v17.101z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "alarmFilter" - ] - }, - "attrs": [], - "properties": { - "order": 506, - "id": 89, - "prevSize": 16, - "code": 59856, - "name": "alarmFilter" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 208 - }, - { - "icon": { - "paths": [ - "M608.037 386.853c7.314 9.143 15.141 17.627 23.698 25.381l-16.823 35.986c-9.216 19.602 0.293 43.739 21.065 53.614l25.966 12.507c20.846 10.021 45.202 2.048 54.272-17.554l16.75-35.986c10.386 1.609 20.699 3.145 31.598 3.145 10.679 0 21.211-1.536 31.598-3.145l16.75 35.986c9.143 19.675 33.426 27.575 54.272 17.627l25.893-12.507c20.919-9.874 30.354-34.011 21.211-53.614l-16.75-36.133c8.558-7.68 16.457-16.238 23.698-25.381l36.279 15.287c19.822 8.411 43.154-2.414 51.858-23.991l10.971-26.917c8.997-21.65 0-45.861-19.822-54.199l-36.571-15.287c0.878-7.387 2.194-14.629 2.194-22.309 0-7.607-1.39-14.775-2.194-22.162l36.718-15.36c19.822-8.411 28.818-32.622 19.822-54.199l-10.898-26.99c-8.704-21.577-32.11-32.329-51.858-23.991l-36.425 15.287c-7.241-9.143-14.994-17.627-23.698-25.307l16.75-36.279c9.143-19.602-0.293-43.666-21.138-53.614l-26.039-12.434c-20.699-9.947-44.983-2.048-54.126 17.554l-16.75 36.059c-10.386-1.682-20.699-3.218-31.598-3.218s-21.211 1.536-31.598 3.218l-16.75-36.059c-9.143-19.602-33.499-27.502-54.199-17.554l-25.966 12.434c-20.919 10.021-30.427 34.011-21.211 53.614l16.75 36.206c-8.558 7.753-16.53 16.165-23.698 25.381l-36.425-15.36c-19.822-8.411-43.081 2.341-51.858 23.991l-11.045 26.99c-8.777 21.577 0.146 45.861 19.968 54.199l36.571 15.287c-0.878 7.461-2.267 14.629-2.267 22.235 0 7.68 1.536 14.921 2.267 22.382l-36.571 15.287c-19.749 8.411-28.745 32.549-19.968 54.199l11.045 26.917c8.777 21.504 32.037 32.329 51.785 23.991l36.498-15.214zM764.635 132.827c68.608 0 124.489 56.613 124.489 126.537 0 69.778-55.735 126.464-124.489 126.464s-124.562-56.686-124.562-126.464c0-69.925 55.808-126.537 124.562-126.537z", - "M2.926 1034.021h463.141v-386.56h-463.141v386.56zM392.923 960.878h-121.856v-240.274h121.856v240.274zM76.069 720.603h121.856v240.274h-121.856v-240.274z", - "M317.147 364.544l-133.559 8.119c14.19-31.378 35.84-58.953 65.463-79.872 106.13-74.679 191.269-42.789 191.269-42.789-76.946-54.491-160.11-59.099-227.182-12.507-49.957 34.523-86.235 81.774-102.839 136.997l-110.299 4.389 160.11 149.358 157.038-163.694z", - "M915.822 624.786l-198.729 109.275 129.755 32.183c-22.894 25.673-51.858 45.422-86.382 56.466-123.611 39.57-195.291-16.53-195.291-16.53 57.125 75.045 135.168 104.375 213.138 80.018 58.002-17.92 106.715-52.297 139.045-99.913l106.642 28.965-108.178-190.464z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "manAnalysis" - ] - }, - "attrs": [], - "properties": { - "order": 507, - "id": 88, - "prevSize": 16, - "code": 59857, - "name": "manAnalysis" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 209 - }, - { - "icon": { - "paths": [ - "M296.96 296.887c0 82.003-66.477 148.48-148.48 148.48s-148.48-66.477-148.48-148.48c0-82.003 66.477-148.48 148.48-148.48s148.48 66.477 148.48 148.48z", - "M551.936 807.79c0 82.003-66.477 148.48-148.48 148.48s-148.48-66.477-148.48-148.48c0-82.003 66.477-148.48 148.48-148.48s148.48 66.477 148.48 148.48z", - "M930.158 311.808c0 91.496-74.172 165.669-165.669 165.669s-165.669-74.172-165.669-165.669c0-91.496 74.172-165.669 165.669-165.669s165.669 74.172 165.669 165.669z", - "M1024 784.018c0 73.803-59.829 133.632-133.632 133.632s-133.632-59.829-133.632-133.632c0-73.803 59.829-133.632 133.632-133.632s133.632 59.829 133.632 133.632z", - "M732.286 362.027l55.324-19.275 166.956 479.199-55.324 19.275-166.956-479.199z", - "M812.421 225.214l46.39 35.785-460.695 597.214-46.39-35.785 460.695-597.214z", - "M112.914 300.476l52.061-26.868 293.504 568.704-52.061 26.868-293.504-568.704z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "drill" - ] - }, - "attrs": [], - "properties": { - "order": 508, - "id": 87, - "prevSize": 16, - "code": 59858, - "name": "drill" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 210 - }, - { - "icon": { - "paths": [ - "M977.774 586.313l-72.192-30.281c1.609-14.629 4.462-28.965 4.462-44.032s-2.779-29.257-4.462-43.886l72.338-30.427c39.058-16.457 56.759-64.293 39.278-106.862l-21.723-53.248c-17.335-42.715-63.195-63.854-102.254-47.397l-72.046 30.354c-14.263-18.066-29.696-34.743-46.738-50.030l33.134-71.534c17.993-38.766-0.658-86.235-41.765-105.911l-51.419-24.503c-41.106-19.675-89.015-4.096-107.081 34.67l-33.061 71.168c-20.407-3.291-40.96-6.363-62.318-6.363-21.285 0-41.838 3.072-62.245 6.363l-33.061-71.168c-18.066-38.766-66.048-54.345-107.081-34.67l-51.419 24.576c-41.106 19.675-59.831 67.145-41.765 105.838l33.134 71.461c-17.042 15.287-32.475 31.963-46.738 50.030l-71.973-30.281c-39.058-16.457-84.919 4.681-102.254 47.397l-21.797 53.248c-17.408 42.569 0.219 90.478 39.351 106.862l72.192 30.354c-1.536 14.702-4.315 28.891-4.315 43.959 0 15.141 2.779 29.403 4.389 44.105l-72.192 30.281c-39.131 16.603-56.832 64.219-39.497 106.935l21.87 53.175c17.335 42.569 63.269 63.781 102.327 47.397l71.899-30.208c14.263 17.993 29.696 34.743 46.665 50.030l-33.134 71.314c-18.066 38.693 0.658 86.309 41.765 105.838l51.419 24.722c41.106 19.675 89.088 4.023 107.081-34.816l32.987-71.095c20.407 3.291 40.96 6.363 62.245 6.363 21.358 0 41.911-3.072 62.391-6.363l32.987 71.095c17.993 38.766 65.975 54.418 107.081 34.816l51.419-24.722c41.179-19.602 59.758-67.145 41.765-105.838l-33.134-71.461c16.969-15.287 32.402-31.963 46.738-49.957l71.899 30.281c39.058 16.384 84.992-4.827 102.327-47.47l21.797-53.175c17.627-42.715-0.219-90.405-39.278-106.935zM512 761.71c-135.899 0-246.053-111.909-246.053-249.637 0-138.094 110.153-249.71 246.053-249.71 135.753 0 245.906 111.616 245.906 249.71 0 137.728-110.153 249.637-245.906 249.637z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "gear" - ] - }, - "attrs": [], - "properties": { - "order": 509, - "id": 86, - "prevSize": 16, - "code": 59859, - "name": "gear" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 211 - }, - { - "icon": { - "paths": [ - "M512 0c-282.317 0-512 229.683-512 512 0 282.33 229.683 512 512 512 282.33 0 512-229.67 512-512 0-282.317-229.67-512-512-512zM512 1011.379c-275.341 0-499.354-224.026-499.354-499.379 0-275.341 224.013-499.354 499.354-499.354 275.354 0 499.379 224.013 499.379 499.354-0 275.354-224.026 499.379-499.379 499.379z", - "M873.011 546.624c-15.206 0-29.312 4.71-40.973 12.723l-144.064-175.002c10.803-12.659 17.344-29.043 17.344-46.976 0-40-32.422-72.435-72.422-72.435s-72.448 32.435-72.448 72.435c0 22.144 9.971 41.946 25.638 55.219l-147.52 214.63c-12.48-10.202-28.416-16.32-45.786-16.32-19.917 0-37.952 8.051-51.059 21.069l-126.118-104.038c6.003-10.56 9.485-22.733 9.485-35.75 0-40-32.435-72.435-72.435-72.435s-72.435 32.435-72.435 72.435c0 40.013 32.435 72.435 72.435 72.435 22.374 0 42.368-10.15 55.654-26.099l125.184 103.27c-8.269 11.763-13.158 26.074-13.158 41.549 0 40.013 32.435 72.435 72.435 72.435s72.435-32.422 72.435-72.435c0-17.933-6.566-34.342-17.37-46.989l148.723-216.384c10.688 6.221 23.078 9.843 36.339 9.843 17.421 0 33.421-6.157 45.914-16.422l143.347 174.131c-13.312 13.133-21.594 31.373-21.594 51.558 0 40.013 32.435 72.435 72.435 72.435s72.422-32.422 72.422-72.435c0.013-40.013-32.41-72.448-72.41-72.448z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "process" - ] - }, - "attrs": [], - "properties": { - "order": 510, - "id": 85, - "prevSize": 16, - "code": 59860, - "name": "process" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 212 - }, - { - "icon": { - "paths": [ - "M950.857 950.857h-877.714v-877.714h482.011v-73.143h-555.154v1024h1024v-458.679h-73.143z", - "M526.19 277.285c-98.231 91.721-224.475 317.001-224.475 317.001s193.17-118.272 280.576-162.816c77.824-39.643 192.658-28.818 218.478-26.697l-0.658 184.466 223.89-308.297-224.402-280.942 0.585 183.077c-30.647 1.902-187.831 13.897-273.993 94.208z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "unacknownledge" - ] - }, - "attrs": [], - "properties": { - "order": 511, - "id": 84, - "prevSize": 16, - "code": 59861, - "name": "unacknownledge" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 213 - }, - { - "icon": { - "paths": [ - "M950.857 950.857h-877.714v-877.714h482.011v-73.143h-555.154v1024h1024v-458.679h-73.143z", - "M240.933 482.889l335.433 327.826 447.634-640-119.881-83.822-348.818 498.688-212.187-207.36z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "acknownledge" - ] - }, - "attrs": [], - "properties": { - "order": 512, - "id": 83, - "prevSize": 16, - "code": 59862, - "name": "acknownledge" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 214 - }, - { - "icon": { - "paths": [ - "M512.064 0c-282.304 0-512.064 229.696-512.064 512 0 282.368 229.76 512 512.064 512s511.936-229.632 511.936-512-229.632-512-511.936-512zM512.064 960c-246.976 0-448.064-201.024-448.064-448 0-247.040 201.088-448 448.064-448 247.040 0 447.936 201.024 447.936 448 0 246.912-200.896 448-447.936 448z", - "M615.872 427.072l-73.408-41.792 80.64-142.016c-72.576-19.648-152.192 10.624-191.168 79.232-36.224 63.744-26.048 140.608 18.944 193.28l-141.632 249.216c-15.616 27.52-6.016 62.528 21.504 78.144s62.528 6.016 78.144-21.504l141.568-249.28c68.352 11.776 139.712-18.88 175.872-82.56 38.976-68.544 24.384-152.384-29.76-204.864l-80.704 142.144z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "Operation" - ] - }, - "attrs": [], - "properties": { - "order": 513, - "id": 82, - "prevSize": 16, - "code": 59863, - "name": "Operation" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 215 - }, - { - "icon": { - "paths": [ - "M512 0c-282.317 0-512 229.683-512 512 0 282.33 229.683 512 512 512 282.33 0 512-229.67 512-512 0-282.317-229.67-512-512-512zM512 1011.366c-275.341 0-499.354-224.026-499.354-499.366s224.013-499.354 499.354-499.354 499.366 224.013 499.366 499.354-224.026 499.366-499.366 499.366z", - "M910.118 562.355c0-77.478-60.083-140.314-134.208-140.314-4.851 0-9.626 0.307-14.349 0.819-18.867-28.506-47.552-49.28-80.96-57.101-31.194-75.405-102.912-128.205-186.496-128.205-85.978 0-159.334 55.923-188.992 134.81-8.32-1.357-16.794-2.291-25.485-2.291-89.907 0-162.79 76.211-162.79 170.163 0 38.464 12.339 73.805 32.909 102.298-5.99 9.050-9.523 19.878-9.523 31.526 0 31.578 25.587 57.165 57.165 57.165h631.386c31.59 0 57.165-25.587 57.165-57.165 0-8.576-2.022-16.614-5.414-23.923 18.458-24.038 29.594-54.541 29.594-87.782z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "cloud" - ] - }, - "attrs": [], - "properties": { - "order": 514, - "id": 81, - "prevSize": 16, - "code": 59864, - "name": "cloud" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 216 - }, - { - "icon": { - "paths": [ - "M512 0c-282.317 0-512 229.683-512 512 0 282.33 229.683 512 512 512 282.33 0 512-229.67 512-512 0-282.317-229.67-512-512-512zM512 1011.366c-275.341 0-499.354-224.013-499.354-499.366 0-275.341 224.013-499.354 499.354-499.354 275.354 0 499.366 224.013 499.366 499.354 0 275.354-224.013 499.366-499.366 499.366z", - "M559.629 403.942h-364.096c-12.57 0-22.758 9.37-22.758 20.928v219.827c0 11.546 10.189 20.928 22.758 20.928h364.096c12.57 0 22.746-9.37 22.746-20.928v-219.827c0-11.558-10.176-20.928-22.746-20.928zM552.32 621.043c0 9.062-8.704 16.41-19.405 16.41h-310.682c-10.714 0-19.418-7.347-19.418-16.41v-172.506c0-9.062 8.704-16.422 19.418-16.422h310.682c10.701 0 19.405 7.36 19.405 16.422v172.506z", - "M377.587 675.584c-35.341 0-64 28.646-64 64h128c0-35.341-28.659-64-64-64z", - "M831.603 288h-182.4c-7.078 0-12.8 5.734-12.8 12.8v80h208v-80c0-7.066-5.734-12.8-12.8-12.8z", - "M636.403 393.6h208v67.2h-208v-67.2z", - "M636.403 726.4c0 7.078 5.722 12.8 12.8 12.8h182.4c7.078 0 12.8-5.722 12.8-12.8v-252.8h-208v252.8zM740.403 630.4c10.598 0 19.2 8.602 19.2 19.2s-8.602 19.2-19.2 19.2-19.2-8.602-19.2-19.2 8.602-19.2 19.2-19.2z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "computer" - ] - }, - "attrs": [], - "properties": { - "order": 515, - "id": 80, - "prevSize": 16, - "code": 59865, - "name": "computer" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 217 - }, - { - "icon": { - "paths": [ - "M512 64c-247.424 0-448 200.576-448 448 0 247.36 200.576 448 448 448 247.488 0 448-200.64 448-448 0-247.424-200.512-448-448-448zM444.032 908.032l41.6-365.696-253.632-6.336 300.032-432-33.344 321.472 222.4 20.864-277.056 461.696z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "alarm" - ] - }, - "attrs": [], - "properties": { - "order": 516, - "id": 79, - "prevSize": 16, - "code": 59866, - "name": "alarm" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 218 - }, - { - "icon": { - "paths": [ - "M225.984 578.688l290.688 293.312 297.344-293.312-188.992-0.064c-1.728-31.616 9.28-106.688-41.024-253.632-53.312-155.648-242.688-310.336-242.688-310.336s66.688 154.688 90.688 322.112c15.552 108.48 5.312 205.312-17.472 242.88l-188.544-0.96z", - "M771.84 62.016v64h178.176v819.968h-876.032v-819.968h138.56v-64h-202.56v947.968h1004.032v-947.968z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "import" - ] - }, - "attrs": [], - "properties": { - "order": 517, - "id": 78, - "prevSize": 16, - "code": 59867, - "name": "import" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 219 - }, - { - "icon": { - "paths": [ - "M432 549.952c-24 167.36-90.688 322.048-90.688 322.048s189.312-154.688 242.688-310.336c50.304-146.88 39.296-222.016 41.024-253.632h188.992l-297.344-293.376-290.688 293.376 188.48-0.96c22.848 37.568 33.088 134.4 17.536 242.88z", - "M771.84 62.016v64h178.176v819.968h-876.032v-819.968h138.56v-64h-202.56v947.968h1004.032v-947.968z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "export" - ] - }, - "attrs": [], - "properties": { - "order": 518, - "id": 77, - "prevSize": 16, - "code": 59868, - "name": "export" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 220 - }, - { - "icon": { - "paths": [ - "M512-0.064c-282.304 0-512 229.696-512 512s229.696 512 512 512 512-229.696 512-512-229.696-512-512-512zM512 959.936c-247.040 0-448-201.024-448-448 0-247.040 200.96-448 448-448 246.976 0 448 200.96 448 448 0 246.976-201.024 448-448 448z", - "M786.816 451.648c0 61.312-56.96 111.040-127.040 111.040-70.208 0-127.168-49.728-127.168-111.040 0-6.656 0.96-12.992 2.24-19.328h-43.584c1.28 6.4 2.24 12.736 2.24 19.328 0 61.312-56.96 111.040-127.040 111.040-70.208 0-127.104-49.728-127.104-111.040 0-6.656 0.96-12.992 2.24-19.328h-42.56l67.84 310.656c0 0 101.952-29.76 248.384-29.76 130.368 0 248.64 29.76 248.64 29.76l67.648-310.656h-47.040c1.216 6.336 2.304 12.736 2.304 19.328z", - "M581.76 364.928c0 37.22-30.172 67.392-67.392 67.392s-67.392-30.172-67.392-67.392c0-37.22 30.172-67.392 67.392-67.392s67.392 30.172 67.392 67.392z", - "M273.92 375.872c0 31.175-25.273 56.448-56.448 56.448s-56.448-25.273-56.448-56.448c0-31.175 25.273-56.448 56.448-56.448s56.448 25.273 56.448 56.448z", - "M863.040 375.872c0 31.175-25.273 56.448-56.448 56.448s-56.448-25.273-56.448-56.448c0-31.175 25.273-56.448 56.448-56.448s56.448 25.273 56.448 56.448z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "Admin" - ] - }, - "attrs": [], - "properties": { - "order": 519, - "id": 76, - "prevSize": 16, - "code": 59869, - "name": "Admin" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 221 - }, - { - "icon": { - "paths": [ - "M512 0c-282.77 0-512 229.229-512 512s229.23 512 512 512c282.77 0 512-229.229 512-512s-229.23-512-512-512zM770 302l94 92-378 368-320-202 136-102 146 142 322-298z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "allSelected" - ] - }, - "attrs": [], - "properties": { - "order": 520, - "id": 75, - "prevSize": 16, - "code": 59870, - "name": "allSelected" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 222 - }, - { - "icon": { - "paths": [ - "M311.382 213.893l512 314.202-512 325.798z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "angleRight" - ] - }, - "attrs": [], - "properties": { - "order": 521, - "id": 74, - "prevSize": 16, - "code": 59871, - "name": "angleRight" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 223 - }, - { - "icon": { - "paths": [ - "M480-0l-480 512 480 512v-342.551h488c30.527 0 56-28.108 56-61.793v-218.354c0-33.685-25.473-61.793-56-61.793h-488z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "arrowLeft" - ] - }, - "attrs": [], - "properties": { - "order": 522, - "id": 73, - "prevSize": 16, - "code": 59872, - "name": "arrowLeft" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 224 - }, - { - "icon": { - "paths": [ - "M297.119 0l-297.119 317.333 79.585 85.333 376.705-402.667h-159.171zM567.71 5.333l-474.86 509.333 474.86 509.333v-341.333h400.58c30.278 0 55.71-27.75 55.71-61.333v-216c0-33.526-25.432-61.333-55.71-61.333h-400.58v-338.667zM652.601 146.667v109.333h363.44v-48c0-33.526-25.432-61.333-55.71-61.333h-307.731z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "arrowLeftAll" - ] - }, - "attrs": [], - "properties": { - "order": 523, - "id": 72, - "prevSize": 16, - "code": 59873, - "name": "arrowLeftAll" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 225 - }, - { - "icon": { - "paths": [ - "M544-0l480 512-480 512v-342.551h-488c-30.527 0-56-28.108-56-61.793v-218.354c0-33.685 25.473-61.793 56-61.793h488z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "arrowRight" - ] - }, - "attrs": [], - "properties": { - "order": 524, - "id": 71, - "prevSize": 16, - "code": 59874, - "name": "arrowRight" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 226 - }, - { - "icon": { - "paths": [ - "M726.881 0l297.119 317.333-79.585 85.333-376.705-402.667h159.171zM456.29 5.333l474.86 509.333-474.86 509.333v-341.333h-400.58c-30.278 0-55.71-27.75-55.71-61.333v-216c0-33.526 25.432-61.333 55.71-61.333h400.58v-338.667zM371.399 146.667v109.333h-363.44v-48c0-33.526 25.432-61.333 55.71-61.333h307.731z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "arrowRightAll" - ] - }, - "attrs": [], - "properties": { - "order": 525, - "id": 70, - "prevSize": 16, - "code": 59875, - "name": "arrowRightAll" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 227 - }, - { - "icon": { - "paths": [ - "M508 0c-31.119 0-58 24.881-58 56v46c-69.831 10.816-133.646 38.889-188 78l-42-40c-11.002-11.002-25.641-18-40-18s-26.998 6.998-38 18l-18 16c-22.005 22.005-22.005 57.995 0 80l42 40c-34.941 48.538-61.038 103.432-72 164h-36c-31.119 0-58 24.881-58 56v22c0 31.119 26.881 58 58 58h36c12.292 76.335 44.912 147.337 94 204l-34 36c-22.005 22.005-22.005 55.995 0 78l16 18c22.005 22.005 57.995 22.005 80 0l44-46c47.099 28.042 99.181 47.199 156 56v46c0 31.119 26.881 56 58 56h22c31.119 0 56-24.881 56-56v-46c27.753-4.228 54.286-11.152 80-20l-104-106c-14.44 2.229-28.936 4-44 4-159.058 0-288-128.942-288-288s128.942-288 288-288c159.058 0 288 128.942 288 288 0 47.853-13.349 92.29-34 132l104 98c33.635-49.218 58.247-105.432 68-166h22c31.119 0 56-26.881 56-58v-22c0-31.119-24.881-56-56-56h-22c-10.615-58.652-34.805-112.539-68-160l36-36c22.005-22.005 22.005-57.995 0-80l-16-16c-11.002-11.002-25.641-16-40-16s-28.998 4.998-40 16l-36 36c-55.735-41.399-121.471-70.951-194-82v-46c0-31.119-24.881-56-56-56h-22zM520 292c-126.678 0-230 103.322-230 230s103.322 228 230 228c29.501 0 58.095-5.855 84-16l210 210c22.005 22.005 55.995 22.005 78 0l10-10c22.005-22.005 22.005-55.995 0-78l-198-198c28.25-38.126 46-84.904 46-136 0-126.678-103.322-230-230-230zM520 400c67.275 0 122 54.725 122 122s-54.725 122-122 122c-67.275 0-122-54.725-122-122s54.725-122 122-122z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "autoFind" - ] - }, - "attrs": [], - "properties": { - "order": 526, - "id": 69, - "prevSize": 16, - "code": 59876, - "name": "autoFind" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 228 - }, - { - "icon": { - "paths": [ - "M674.24 1010.112l-481.28-481.344 485.696-485.824 45.312 45.248-440.512 440.576 436.032 436.096z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "back" - ] - }, - "attrs": [], - "properties": { - "order": 527, - "id": 68, - "prevSize": 16, - "code": 59877, - "name": "back" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 229 - }, - { - "icon": { - "paths": [ - "M366 0v364h-180v300h184v-52h52v52h40v-300h92v300h40v-52h54v52h184v-300h-174v-364h-292zM0 658v366h366v-152h-132v-92h-90v-122h-144zM880 658v122h-90v92h-132v152h366v-366h-144zM432 872v152h160v-152h-160z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "ball" - ] - }, - "attrs": [], - "properties": { - "order": 528, - "id": 67, - "prevSize": 16, - "code": 59878, - "name": "ball" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 230 - }, - { - "icon": { - "paths": [ - "M448.031 21.984v110.003c-111.249 27.552-192 127.68-192 248v93.997c-14.104 170.784-120.996 270.701-224 378.003 4.723 0 9.21-1.984 14-1.984h282c-1.498 8.525-1.997 17.030-1.997 25.997 0 82.726 65.275 148 148 148h34c82.725 0 150-65.274 150-148 0-8.986-2.49-17.459-4-25.997h320c4.787 0 9.277 1.728 14 1.984-103.004-107.302-209.896-207.219-224-378.003v-93.997c0-120.32-80.751-220.448-192-248v-110.003h-124zM396.031 849.984h32c-11.965 12.403-20 28.371-20 46.003 0 40.346 37.391 73.997 84 73.997-10.154 4.16-20.329 8-32 8-46.609 0-84-34.176-84-77.997 0-19.418 7.773-36.070 20-50.003z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "bell" - ] - }, - "attrs": [], - "properties": { - "order": 529, - "id": 66, - "prevSize": 16, - "code": 59879, - "name": "bell" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 231 - }, - { - "icon": { - "paths": [ - "M509.091 1.707c-134.448 0-242.544 108.704-242.544 244s108.096 246 242.544 246c134.448 0 242.544-110.704 242.544-246s-108.096-244-242.544-244zM769.528 447.707c-140.541 0-254.472 114.618-254.472 256s113.931 256 254.472 256c140.541 0 254.472-114.618 254.472-256s-113.931-256-254.472-256zM306.308 503.707c-346.855 195.91-302.524 531.61-306.162 520h685.883l-1.988-6c-135.113-23.090-238.568-141.499-238.568-284 0-50.008 13.499-97.017 35.785-138-72.082-7.589-136.306-42.513-174.95-92zM610.482 633.707h318.091v128h-318.091v-128z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "blackList" - ] - }, - "attrs": [], - "properties": { - "order": 530, - "id": 65, - "prevSize": 16, - "code": 59880, - "name": "blackList" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 232 - }, - { - "icon": { - "paths": [ - "M512 0c-282.77 0-512 229.23-512 512s229.23 512 512 512c282.77 0 512-229.23 512-512s-229.23-512-512-512zM530 128l22 124-72 6-22-122 72-8zM276 170c70.131 0 128 57.239 128 130 0 15.422-1.298 30.22-6 44l86 90-66 70-86-86c-16.468 8.112-36.565 12-56 12-70.131 0-122-57.267-122-130 0-72.761 51.869-130 122-130zM760 210l54 82-162 116-54-86 162-112zM888 442l8 74-118 22-8-74 118-22zM246 482l8 74-118 20-8-72 118-22zM598 534l62 64c16.654-8.376 32.276-16 52-16 70.131 0 130 63.253 130 136 0 72.752-59.869 130-130 130s-124-57.248-124-130c0-15.163 5.459-32.45 10-46l-68-66 68-72zM372 612l54 90-166 108-50-82 162-116zM540 770l18 118-72 8-18-124 72-2z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "breakLink" - ] - }, - "attrs": [], - "properties": { - "order": 531, - "id": 64, - "prevSize": 16, - "code": 59881, - "name": "breakLink" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 233 - }, - { - "icon": { - "paths": [ - "M512 0c-282.77 0-512 229.229-512 512s229.23 512 512 512c282.77 0 512-229.229 512-512s-229.23-512-512-512zM128 314.003l180 104c61.902-49.734 140.551-80 226-80 198.617 0 360 163.379 360 361.997 0 2.944 0.070 5.056 0 8l-90 1.984c0.134-3.456 0-6.528 0-10.003 0-148.96-121.038-272-270-272-51.469 0-98.972 14.771-140 40l184 106.003-356 93.997-94-353.978z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "cancle" - ] - }, - "attrs": [], - "properties": { - "order": 532, - "id": 63, - "prevSize": 16, - "code": 59882, - "name": "cancle" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 234 - }, - { - "icon": { - "paths": [ - "M1024 512.002c0 282.77-229.23 512-512 512s-512-229.23-512-512c0-282.77 229.23-512 512-512s512 229.23 512 512z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "circle" - ] - }, - "attrs": [], - "properties": { - "order": 533, - "id": 62, - "prevSize": 16, - "code": 59883, - "name": "circle" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 235 - }, - { - "icon": { - "paths": [ - "M-0 5.333v341.333h122.667v445.333h362.667c17.783 132.745 129.128 234.667 266.667 234.667 149.839 0 272-122.278 272-272s-122.161-269.333-272-269.333c-133.011 0-240.954 95.465-264 221.333h-280v-360h133.333v-341.333h-341.333zM712 586.667h85.333v128h128v85.333h-128v128h-85.333v-128h-128v-85.333h128v-128z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "closeTree" - ] - }, - "attrs": [], - "properties": { - "order": 534, - "id": 61, - "prevSize": 16, - "code": 59884, - "name": "closeTree" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 236 - }, - { - "icon": { - "paths": [ - "M0 0v1024h400l-6-238 158-260-146-188-278 392v-602h768v120l128 74v-322h-1024zM796 290l-266 462 166 96 266-460-166-98zM1024 426l-8 16-290 534-58 48h356v-598zM486 828l14 166 152-70-166-96z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "configmap" - ] - }, - "attrs": [], - "properties": { - "order": 535, - "id": 60, - "prevSize": 16, - "code": 59885, - "name": "configmap" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 237 - }, - { - "icon": { - "paths": [ - "M135.461 125.513h789.211v73.143h-789.211v-73.143z", - "M430.373 61.147v107.666h199.387v-107.666h-199.387z", - "M286.281 463.36h99.035v395.045h-99.035v-395.045z", - "M480.549 463.36h99.035v395.045h-99.035v-395.045z", - "M674.816 463.36h99.035v395.045h-99.035v-395.045z", - "M922.697 999.863h-785.335v-714.606h785.335v714.606zM210.505 926.72h639.049v-568.32h-639.049v568.32z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "delete" - ] - }, - "attrs": [], - "properties": { - "order": 536, - "id": 59, - "prevSize": 16, - "code": 59886, - "name": "delete" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 238 - }, - { - "icon": { - "paths": [ - "M211.587 32l-205.602 224h429.166l-223.564-224zM0 304v720h1024v-496h-596.833v-224h-427.167zM77.845 406.003h95.813v96h-95.813v-96zM255.502 406.003h95.813v96h-95.813v-96zM77.845 614.003h95.813v96h-95.813v-96zM255.502 614.003h95.813v96h-95.813v-96zM680.67 614.003h95.813v96h-95.813v-96zM858.326 614.003h95.813v96h-95.813v-96zM501.020 620.019h63.875v296h-63.875v-296zM75.852 820.019h95.813v96h-95.813v-96zM253.502 820.019h95.813v96h-95.813v-96zM680.67 820.019h95.813v96h-95.813v-96zM858.326 820.019h95.813v96h-95.813v-96z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "department" - ] - }, - "attrs": [], - "properties": { - "order": 537, - "id": 58, - "prevSize": 16, - "code": 59887, - "name": "department" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 239 - }, - { - "icon": { - "paths": [ - "M0 45.333v170.667h1024v-170.667h-1024zM0 301.333v170.667h1024v-170.667h-1024zM0 557.333v170.667h1024v-170.667h-1024zM0 813.333v170.667h768v-170.667h-768z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "detail" - ] - }, - "attrs": [], - "properties": { - "order": 538, - "id": 57, - "prevSize": 16, - "code": 59888, - "name": "detail" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 240 - }, - { - "icon": { - "paths": [ - "M0 0v1024h862.766v-292h160l-192-192-190 192h158v228h-366.766v-896h366.503v204h-158l190 192 192-192h-160v-268h-560.503zM72 214h290v64h-290zM72 474h290v64h-290zM72 726h290v64h-290z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "displaySwitch" - ] - }, - "attrs": [], - "properties": { - "order": 539, - "id": 56, - "prevSize": 16, - "code": 59889, - "name": "displaySwitch" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 241 - }, - { - "icon": { - "paths": [ - "M120 0v1024h812l20-822-160-202h-672zM216 96h516l124 164-14 668h-626v-832zM298 178v140h146v-140h-146zM524 234v64h252v-64h-252zM298 386v64h478v-64h-478zM298 562v64h478v-64h-478zM298 738v64h478v-64h-478z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "file" - ] - }, - "attrs": [], - "properties": { - "order": 540, - "id": 55, - "prevSize": 16, - "code": 59890, - "name": "file" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 242 - }, - { - "icon": { - "paths": [ - "M0.006 0l0.497 77.36 415.5 392.907v329.797l192 223.936v-551.698l416.664-388.835-0.668-83.467h-1024zM254.006 101.789h514v44.787l-256 242.258-256-246.33-1.997-40.716z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "filter" - ] - }, - "attrs": [], - "properties": { - "order": 541, - "id": 54, - "prevSize": 16, - "code": 59891, - "name": "filter" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 243 - }, - { - "icon": { - "paths": [ - "M278-4c-16.425 0-30 13.575-30 30v132c0 16.425 13.575 30 30 30h132c16.425 0 30-13.575 30-30v-132c0-16.425-13.575-30-30-30h-132zM598-2c-16.425 0-30 13.575-30 30v132c0 16.425 13.575 30 30 30h132c16.425 0 30-13.575 30-30v-132c0-16.425-13.575-30-30-30h-132zM440 250l-270 2-114 274v368h208l30-30v-272l126-2c12.464-1.292 21.634-18.792 20-40v-300zM568 252v300c-1.634 21.208 7.536 38.708 20 40l126 2v272l30 30h208v-368l-114-274-270-2zM56 960v64h238v-64h-238zM714 962v64h238v-64h-238z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "find" - ] - }, - "attrs": [], - "properties": { - "order": 542, - "id": 53, - "prevSize": 16, - "code": 59892, - "name": "find" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 244 - }, - { - "icon": { - "paths": [ - "M96.8 136.576h200.277c43.173-0.136 53.665 12.675 68.962 42.158 0 0 38.028 112.952 79.827 152.074 13.079 12.242 22.734 21.78 49.133 21.78h432.201c53.627 0 96.8 43.571 96.8 97.694v486.13c0 54.122-43.173 97.694-96.8 97.694h-830.399c-53.627 0-96.8-43.571-96.8-97.694v-702.143c0-54.122 43.173-97.694 96.8-97.694z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "folder" - ] - }, - "attrs": [], - "properties": { - "order": 543, - "id": 52, - "prevSize": 16, - "code": 59893, - "name": "folder" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 245 - }, - { - "icon": { - "paths": [ - "M707.2 952.256h-675.52v-870.912h675.52v64h-611.52v742.912h611.52z", - "M737.92 798.272l-45.248-45.248 235.84-235.776-236.544-236.608 45.248-45.248 281.792 281.856z", - "M226.24 484.8h713.664v64h-713.664v-64z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "forceOut" - ] - }, - "attrs": [], - "properties": { - "order": 544, - "id": 51, - "prevSize": 16, - "code": 59894, - "name": "forceOut" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 246 - }, - { - "icon": { - "paths": [ - "M512 0l-224 256h448l-224-256zM256 288l-256 224 256 224v-448zM768 288v448l256-224-256-224zM288 768l224 256 224-256h-448z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "fullScreen" - ] - }, - "attrs": [], - "properties": { - "order": 545, - "id": 50, - "prevSize": 16, - "code": 59895, - "name": "fullScreen" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 247 - }, - { - "icon": { - "paths": [ - "M823.104 510.912c0 89.472-37.376 169.6-96.576 226.688l132.096 132.096c92.096-91.072 149.44-218.112 149.44-358.784v-0.064l-184.96 0.064z", - "M795.392 385.216h195.136c-49.024-191.36-205.312-338.56-400.896-368.896v191.936c92.736 23.616 167.808 89.984 205.76 176.96z", - "M611.392 806.656c-30.464 10.688-62.656 17.344-96.768 17.344-170.304 0-308.352-140.096-308.352-313.152 0-154.752 110.848-282.56 256.256-307.776v-190.272c-248.064 26.432-441.408 239.36-441.408 498.112 0 276.608 220.992 500.864 493.504 500.864 86.72 0 167.424-23.744 238.208-63.68l-141.44-141.44z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "Graphical" - ] - }, - "attrs": [], - "properties": { - "order": 546, - "id": 49, - "prevSize": 16, - "code": 59896, - "name": "Graphical" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 248 - }, - { - "icon": { - "paths": [ - "M512 0c-282.77 0-512 229.23-512 512s229.23 512 512 512c282.77 0 512-229.23 512-512s-229.23-512-512-512zM508 154c46.383-1.856 85.454 3.072 114 14 28.545 10.93 51.941 26.114 74 44 22.058 17.888 38.725 39.581 48 64 9.273 24.42 13.365 47.981 12 74-1.804 25.729-7.361 51.469-18 76-10.64 24.532-25.936 48.956-46 72-20.065 23.044-44.056 45.493-72 68l-48 38v96h-140v-144c24.721-18.659 47.471-36.070 68-52s40.81-33.788 60-52c19.19-18.211 34.589-37.048 44-58s12.13-42.057 10-60c-3.115-23.536-12.211-39.974-28-52-15.789-12.025-34.516-20.198-56-22-21.485-1.8-39.222 3.978-54 14-13.986 9.106-22.307 19.262-24 30l-6 26-8 4-134 6c1.366-25.281 5.356-50.331 10-72 4.644-21.667 16.939-41.396 38-60 21.061-18.602 46.109-32.135 74-40 27.89-7.863 54.246-12.545 82-14zM428 800h148v94h-148v-94z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "helpTip" - ] - }, - "attrs": [], - "properties": { - "order": 547, - "id": 48, - "prevSize": 16, - "code": 59897, - "name": "helpTip" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 249 - }, - { - "icon": { - "paths": [ - "M368 0v596h-234l364 360h-498v70h1024v-70h-522l388-360h-234v-596h-288z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "hide" - ] - }, - "attrs": [], - "properties": { - "order": 548, - "id": 47, - "prevSize": 16, - "code": 59898, - "name": "hide" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 250 - }, - { - "icon": { - "paths": [ - "M167.615 186.842v487.328l34 73.35h572.385l38-75.226v-33.856h26c104.401 0 188-78.618 188-176.794 0-98.182-83.599-176.8-188-176.8h-26v-98.003zM812 346.912h14c66.898 0 122 51.821 122 114.733 0 62.906-55.102 112.845-122 112.845h-14zM0 843.443l108 180.557h834l82-180.557z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "history" - ] - }, - "attrs": [], - "properties": { - "order": 549, - "id": 46, - "prevSize": 16, - "code": 59899, - "name": "history" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 251 - }, - { - "icon": { - "paths": [ - "M212 6c-86.27 49.558-144 133.862-144 230 0 97.724 59.409 182.82 148 232l24-52c-65.834-40.067-108-105.085-108-180s42.166-141.933 108-182l-28-48zM848 6l-28 48c65.834 40.067 108 107.085 108 182s-42.166 139.933-108 180l24 52c88.591-49.18 148-134.276 148-232 0-96.138-57.73-180.442-144-230zM318 70c-57.742 35.475-98 97.182-98 166 0 69.953 40.705 130.796 100 166l16-38c-44.064-28.681-72-74.374-72-128s27.936-101.319 72-130l-18-36zM742 70l-18 36c44.064 28.681 72 76.374 72 130s-27.936 99.319-72 128l16 38c59.295-35.204 100-96.047 100-166 0-68.818-40.258-130.525-98-166zM406 140c-33.569 20.623-56 55.993-56 96 0 40.667 23.529 75.534 58 96l10-22c-25.617-16.673-42-42.824-42-74s16.383-59.327 42-76l-12-20zM654 140l-12 20c25.617 16.673 42 44.824 42 76s-16.383 57.327-42 74l10 22c34.471-20.466 58-55.333 58-96 0-40.007-22.431-75.377-56-96zM480 194l-28 830h156l-28-830h-100z", - "M218.989 560.393h121.908v463.389h-121.908v-463.389z", - "M88 655.783v368h152v-368h-152zM114 671.783h26v346h-26v-346z", - "M-4.535 844.191h99.537v179.809h-99.537v-179.809z", - "M592.5 803.154h82.665v223.6h-82.665v-223.6z", - "M662.092 580.19h78.332v446.564h-78.332v-446.564z", - "M738 706v318h94v-318h-94zM758 734h20v262h-20v-262z", - "M808 816v208h174v-208h-174zM864 860h82v146h-82v-146z", - "M967.595 914.101h68.362v109.899h-68.362v-109.899z", - "M331.201 818.275v208h143.859v-208h-143.859zM377.501 862.275h67.796v146h-67.796v-146z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "launchingTower" - ] - }, - "attrs": [], - "properties": { - "order": 550, - "id": 45, - "prevSize": 16, - "code": 59900, - "name": "launchingTower" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 252 - }, - { - "icon": { - "paths": [ - "M0 0v160h64v864h896v-864h64v-160h-1024zM192 258h640v640h-640v-640zM400 330l-172 174 172 174v-114h112v-124h-112v-110zM624 516v110h-112v124h112v114l172-174-172-174z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "layout" - ] - }, - "attrs": [], - "properties": { - "order": 551, - "id": 44, - "prevSize": 16, - "code": 59901, - "name": "layout" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 253 - }, - { - "icon": { - "paths": [ - "M1024 0v1024h-736.508v-1024zM168.136 0v1024h-168.136v-1024zM635.932 330l-182 182 182 182v-122h232v-120h-232z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "legendhide" - ] - }, - "attrs": [], - "properties": { - "order": 552, - "id": 43, - "prevSize": 16, - "code": 59902, - "name": "legendhide" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 254 - }, - { - "icon": { - "paths": [ - "M0 0v1024h602v-1024h-602zM704 0v1024h320v-1024h-320zM778 136h172v86h-172v-86zM336 330l182 182-182 182v-122h-232v-120h232v-122zM778 376h172v86h-172v-86zM778 616h172v86h-172v-86zM778 854h172v88h-172v-88z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "legendshow" - ] - }, - "attrs": [], - "properties": { - "order": 553, - "id": 42, - "prevSize": 16, - "code": 59903, - "name": "legendshow" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 255 - }, - { - "icon": { - "paths": [ - "M174 0c-95.761 0-174 78.239-174 174s78.239 172 174 172c30.236 0 57.252-6.394 82-20l442 442c-13.606 24.748-20 51.764-20 82 0 95.761 76.239 174 172 174s174-78.239 174-174c0-95.761-78.239-172-174-172-30.57 0-59.061 6.113-84 20l-442-438c14.951-25.628 22-54.19 22-86 0-95.761-76.239-174-172-174zM174 86c47.881 0 86 40.119 86 88s-38.119 86-86 86c-47.881 0-88-38.119-88-86s40.119-88 88-88zM850 764c47.881 0 88 38.119 88 86s-40.119 88-88 88c-47.881 0-86-40.119-86-88s38.119-86 86-86z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "link" - ] - }, - "attrs": [], - "properties": { - "order": 554, - "id": 41, - "prevSize": 16, - "code": 59904, - "name": "link" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 256 - }, - { - "icon": { - "paths": [ - "M510 8c-203.422 0-367.735 153.347-370 344h92c2.507-130.677 125.564-236 278-236s277.452 105.323 280 236h92c-2.292-190.653-168.578-344-372-344zM156 416c-56.19 0-102 43.81-102 100v406c0 56.19 45.81 102 102 102h710c56.19 0 102-45.81 102-102v-406c0-56.19-45.81-100-102-100h-710zM510 586c37.842 0 68 30.158 68 68 0 20.924-9.216 41.432-24 54v170h-90v-170c-14.784-12.568-24-33.076-24-54 0-37.842 32.158-68 70-68z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "lock" - ] - }, - "attrs": [], - "properties": { - "order": 555, - "id": 40, - "prevSize": 16, - "code": 59905, - "name": "lock" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 257 - }, - { - "icon": { - "paths": [ - "M839.68 794.944l-469.12-469.12 325.824-325.824h-696.384v696.384l325.312-325.312 469.12 469.12z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "ltArrow" - ] - }, - "attrs": [], - "properties": { - "order": 556, - "id": 39, - "prevSize": 16, - "code": 59906, - "name": "ltArrow" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 258 - }, - { - "icon": { - "paths": [ - "M384 0c-211.661 0-384 172.339-384 384s172.339 382 384 382c72.935 0 139.963-20.633 198-56 3.407 7.108 8.094 14.094 14 20l270 272c27.919 27.919 74.081 27.919 102 0l34-36c27.919-27.919 27.919-72.081 0-100l-272-272c-5.848-5.848-10.97-10.602-18-14 34.492-57.525 54-124.046 54-196 0-211.661-170.339-384-382-384zM384 104c153.936 0 278 126.064 278 280s-124.064 278-278 278c-153.936 0-280-124.064-280-278s126.064-280 280-280z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "Magnifier" - ] - }, - "attrs": [], - "properties": { - "order": 557, - "id": 38, - "prevSize": 16, - "code": 59907, - "name": "Magnifier" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 259 - }, - { - "icon": { - "paths": [ - "M512.064 0c-282.368 0-512.064 229.632-512.064 512 0 282.432 229.696 512 512.064 512 282.304 0 511.936-229.632 511.936-512s-229.632-512-511.936-512zM512.064 960c-247.040 0-448.064-201.024-448.064-448 0-247.040 201.024-448 448.064-448 246.976 0 447.936 200.96 447.936 448 0 246.976-200.96 448-447.936 448z", - "M734.976 372.224l20.672-55.808-49.408-32.896-3.84-59.392-58.56-9.856-27.52-52.672-57.728 14.72-46.592-36.864-46.656 36.864-57.6-14.72-27.52 52.672-58.688 9.92-3.712 59.392-49.536 32.832 20.672 55.808-31.808 50.24 41.536 42.496-8.64 58.816 55.296 21.824 13.952 49.92-88.64 237.504 91.648-25.152 46.656 76.736 97.92-262.272 5.12-2.56 3.264 1.6 95.488 255.872 46.656-76.608 91.648 25.152-84.992-227.776 14.656-52.416 55.296-21.824-8.704-58.816 41.6-42.496-31.936-50.24zM626.176 538.88l-105.024 39.104c-3.072 0.256-6.016 1.024-9.152 1.024-19.968 0-38.784-4.032-56.768-9.728l-21.44-8.064c-63.552-29.568-107.904-93.568-107.904-168.32 0-102.848 83.328-186.176 186.112-186.176 102.848 0 186.112 83.328 186.112 186.176 0 59.52-28.416 111.936-71.936 145.984z", - "M669.12 392.832c0 86.775-70.345 157.12-157.12 157.12s-157.12-70.345-157.12-157.12c0-86.775 70.345-157.12 157.12-157.12s157.12 70.345 157.12 157.12z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "Maintain" - ] - }, - "attrs": [], - "properties": { - "order": 558, - "id": 37, - "prevSize": 16, - "code": 59908, - "name": "Maintain" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 260 - }, - { - "icon": { - "paths": [ - "M177.898 320v704h704v-704zM273.457 599.763h512.883v326.237h-512.883z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "maximize" - ] - }, - "attrs": [], - "properties": { - "order": 559, - "id": 36, - "prevSize": 16, - "code": 59909, - "name": "maximize" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 261 - }, - { - "icon": { - "paths": [ - "M634.117 13.088c-39.104-22.577-87.176-9.696-109.753 29.408l-9.772 16.925 330.977 191.089 9.772-16.925c22.577-39.104 9.696-87.176-29.408-109.752l-191.816-110.745zM492.879 97.032l-300.749 520.912 330.977 191.089 300.749-520.912-330.976-191.089zM519.824 215.392l60.178 34.744-210.633 364.826-60.178-34.744 210.633-364.826zM647.702 289.222l60.178 34.744-210.633 364.826-60.178-34.743 210.633-364.826zM148.7 693.166l28.686 332.494 302.291-141.404-330.977-191.089z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "modify" - ] - }, - "attrs": [], - "properties": { - "order": 560, - "id": 35, - "prevSize": 16, - "code": 59910, - "name": "modify" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 262 - }, - { - "icon": { - "paths": [ - "M508.608 9.6c-282.368 0-512.064 229.696-512.064 512 0 282.432 229.696 512 512.064 512 282.304 0 511.936-229.632 512-512 0-282.368-229.632-512-512-512zM508.608 969.6c-247.040 0-448.064-201.024-448.064-448s201.024-448 448.064-448 447.936 201.024 448 448c0 246.976-200.96 448-448 448z", - "M610.048 709.504h-203.008v33.856h-168.96v64h540.928v-64h-168.96z", - "M206.080 666.624h604.928v-429.312h-604.928v429.312zM749.056 617.024h-68.032v-28.032h68.032v28.032zM270.080 301.312h476.928v250.688h-476.928v-250.688z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "Monitor" - ] - }, - "attrs": [], - "properties": { - "order": 561, - "id": 34, - "prevSize": 16, - "code": 59911, - "name": "Monitor" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 263 - }, - { - "icon": { - "paths": [ - "M497.019 10c-30.138 0-54 30.398-54 69.728v354.615l-62 15.938h-6v-241.058c0-39.33-23.862-71.72-54-71.72s-54 32.39-54 71.72v316.763l-44 63.751-10 13.946-100-99.611c-27.919-27.811-70.929-28.958-96-3.984s-21.919 67.816 6 95.626l212 209.183c31.677 130.522 169.028 229.105 332 229.105 175.44 0 317.928-115.646 334-260.981 2.746-8.499 4-16.066 4-25.899v-414.381c0-39.33-23.862-71.72-54-71.72s-56 32.39-56 71.72v153.401l-34-9.961-32-17.93v-318.755c0-39.33-25.862-71.72-56-71.72s-54 32.39-54 71.72v288.872l-44-1.992-24-3.984v-342.661c0-39.33-23.862-69.728-54-69.728z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "move" - ] - }, - "attrs": [], - "properties": { - "order": 562, - "id": 33, - "prevSize": 16, - "code": 59912, - "name": "move" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 264 - }, - { - "icon": { - "paths": [ - "M512 0c-282.77 0-512 229.23-512 512s229.23 512 512 512c282.77 0 512-229.23 512-512s-229.23-512-512-512zM488 174h48c31.119 0 56 24.881 56 56v202h204c31.119 0 56 24.881 56 56v48c0 31.119-24.881 56-56 56h-204v204c0 31.119-24.881 56-56 56h-48c-31.119 0-56-24.881-56-56v-204h-204c-31.119 0-56-24.881-56-56v-48c0-31.119 24.881-56 56-56h204v-202c0-31.119 24.881-56 56-56z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "new" - ] - }, - "attrs": [], - "properties": { - "order": 563, - "id": 32, - "prevSize": 16, - "code": 59913, - "name": "new" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 265 - }, - { - "icon": { - "paths": [ - "M370 0v100h132v322h-132v98h-170v504h800v-810l-194-214h-436zM150 56v132h-132v128h132v132h128v-132h132v-128h-132v-132h-128zM704 504l204 204-198 198-2-132h-244v-156h242l-2-114zM352 616h40v158h-40v-158z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "newShortcut" - ] - }, - "attrs": [], - "properties": { - "order": 564, - "id": 31, - "prevSize": 16, - "code": 59914, - "name": "newShortcut" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 266 - }, - { - "icon": { - "paths": [ - "M800 0v82l-284 6h-32v390h-342v-88h120v-262h-262v262h78v154h406v384h316v96h224v-224h-224v64h-252v-320h252v80h224v-224h-224v78h-252v-326l252-6v78h224v-224h-224zM880 80h64v64h-64v-64zM880 480h64v64h-64v-64zM880 880h64v64h-64v-64z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "openTree" - ] - }, - "attrs": [], - "properties": { - "order": 565, - "id": 30, - "prevSize": 16, - "code": 59915, - "name": "openTree" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 267 - }, - { - "icon": { - "paths": [ - "M448 0v320h576v-320h-576zM0 448v576h1024v-576h-1024z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "poNode" - ] - }, - "attrs": [], - "properties": { - "order": 566, - "id": 29, - "prevSize": 16, - "code": 59916, - "name": "poNode" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 268 - }, - { - "icon": { - "paths": [ - "M272 0v200h480v-200h-480zM98 112c-54.122 0-98 43.878-98 98v358c0 54.122 43.878 98 98 98h828c54.122 0 98-43.878 98-98v-358c0-54.122-43.878-98-98-98h-110v168h-608v-168h-110zM284 724v300h484v-300h-484zM330 786h364v52h-364v-52zM332 894h264v50h-264v-50z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "print" - ] - }, - "attrs": [], - "properties": { - "order": 567, - "id": 28, - "prevSize": 16, - "code": 59917, - "name": "print" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 269 - }, - { - "icon": { - "paths": [ - "M186.869 0v1024h640v-1024h-640zM304.869 134.003h404v133.997h-404v-133.997zM304.869 502.003h186v64h-186v-64zM304.869 732h186v64h-186v-64z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "product" - ] - }, - "attrs": [], - "properties": { - "order": 568, - "id": 27, - "prevSize": 16, - "code": 59918, - "name": "product" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 270 - }, - { - "icon": { - "paths": [ - "M184.32 229.056l469.12 469.12-325.824 325.824h696.384v-696.384l-325.312 325.312-469.12-469.12z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "rbArrow" - ] - }, - "attrs": [], - "properties": { - "order": 569, - "id": 26, - "prevSize": 16, - "code": 59919, - "name": "rbArrow" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 271 - }, - { - "icon": { - "paths": [ - "M169.25 320v456h203.925v248h500.075v-456h-203.925v-248zM239.752 500h362.35v68h-228.928v110h-133.422zM443.677 746h360.71v178h-360.71z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "reduction" - ] - }, - "attrs": [], - "properties": { - "order": 570, - "id": 25, - "prevSize": 16, - "code": 59920, - "name": "reduction" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 272 - }, - { - "icon": { - "paths": [ - "M514 54c-101.166 0-194.73 36.006-268 98l-158-94 88 354 368-86-194-110c48.27-30.912 103.639-52 164-52 157.484 0 288.023 121.916 314 280l102-32c-38.978-204.361-210.106-358-416-358zM188 584l-100 32c38.978 204.361 208.106 358 414 358 101.166 0 194.73-36.006 268-98l160 94-88-354-368 84 194 112c-48.27 30.911-105.639 52-166 52-157.484 0-288.023-121.916-314-280z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "refresh" - ] - }, - "attrs": [], - "properties": { - "order": 571, - "id": 24, - "prevSize": 16, - "code": 59921, - "name": "refresh" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 273 - }, - { - "icon": { - "paths": [ - "M56 0c-31.119 0-56 24.881-56 56v618c0 31.119 24.881 56 56 56 0 0 226.78 4.516 260.648 0v-176c0-34.183 27.817-62 62-62h87.352l-36-92h-164l-34 94h-88l160-418h88l166 416h52.899c34.183 0 62 27.817 62 62v72h57.101v-570c0-31.119-24.881-56-56-56zM348 172l-56 156h112zM414 556v322.99h412v143.343l202-209.343-202-224.847v144.847h-266v-176.99z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "rename" - ] - }, - "attrs": [], - "properties": { - "order": 572, - "id": 23, - "prevSize": 16, - "code": 59922, - "name": "rename" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 274 - }, - { - "icon": { - "paths": [ - "M0 0v1024h1024v-856l-154-168h-870zM158 150h414v138h192v-138h102v240h-708v-240zM158 502h708v406h-708v-406zM254 596v76h516v-76h-516zM254 762v76h516v-76h-516z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "save" - ] - }, - "attrs": [], - "properties": { - "order": 573, - "id": 22, - "prevSize": 16, - "code": 59923, - "name": "save" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 275 - }, - { - "icon": { - "paths": [ - "M0 0l486 1024 96-396 442-142-1024-486zM156 168l666 304-308 82-60 234-298-620z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "select" - ] - }, - "attrs": [], - "properties": { - "order": 574, - "id": 21, - "prevSize": 16, - "code": 59924, - "name": "select" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 276 - }, - { - "icon": { - "paths": [ - "M68 0c-38.145 0-68 31.069-68 70v52c0 38.931 29.855 70 68 70h888c38.145 0 68-31.069 68-70v-52c0-38.931-29.855-70-68-70h-888zM68 268c-38.145 0-68 29.855-68 68v620c0 38.145 29.855 68 68 68h888c38.145 0 68-29.855 68-68v-620c0-38.145-29.855-68-68-68h-888zM810 388l124 10-460 528-320-264 144-124 154 222 358-372z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "selectAll" - ] - }, - "attrs": [], - "properties": { - "order": 575, - "id": 20, - "prevSize": 16, - "code": 59925, - "name": "selectAll" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 277 - }, - { - "icon": { - "paths": [ - "M354 2l-352 264 352 266v-140h434v278h-234v-64h-204v204h204v-76h104v188h-454v-98h-204v204h204v-42h518v-252h130v-342h172v-252h-670v-138z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "selectLeft" - ] - }, - "attrs": [], - "properties": { - "order": 576, - "id": 19, - "prevSize": 16, - "code": 59926, - "name": "selectLeft" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 278 - }, - { - "icon": { - "paths": [ - "M670 2l352 264-352 266v-140h-434v278h234v-64h204v204h-204v-76h-104v188h454v-98h204v204h-204v-42h-518v-252h-130v-342h-172v-252h670v-138z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "selectRight" - ] - }, - "attrs": [], - "properties": { - "order": 577, - "id": 18, - "prevSize": 16, - "code": 59927, - "name": "selectRight" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 279 - }, - { - "icon": { - "paths": [ - "M0 0v356h486l-352 348h234v250h-368v70h1024v-70h-368v-250h234l-374-348h508v-356h-1024z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "show" - ] - }, - "attrs": [], - "properties": { - "order": 578, - "id": 17, - "prevSize": 16, - "code": 59928, - "name": "show" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 280 - }, - { - "icon": { - "paths": [ - "M512 237.682l-512 786.318h1024z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "shrink" - ] - }, - "attrs": [], - "properties": { - "order": 579, - "id": 16, - "prevSize": 16, - "code": 59929, - "name": "shrink" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 281 - }, - { - "icon": { - "paths": [ - "M154 0c-85.352 0-154 68.648-154 154v716c0 85.352 68.648 154 154 154h716c85.352 0 154-68.648 154-154v-716c0-85.352-68.648-154-154-154h-716zM190 128h644c34.183 0 62 27.817 62 62v644c0 34.183-27.817 62-62 62h-644c-34.183 0-62-27.817-62-62v-644c0-34.183 27.817-62 62-62zM272 202v620l518-310-518-310z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "start" - ] - }, - "attrs": [], - "properties": { - "order": 580, - "id": 15, - "prevSize": 16, - "code": 59930, - "name": "start" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 282 - }, - { - "icon": { - "paths": [ - "M154 0c-85.352 0-154 68.648-154 154v716c0 85.352 68.648 154 154 154h716c85.352 0 154-68.648 154-154v-716c0-85.352-68.648-154-154-154h-716zM190 128h644c34.183 0 62 27.817 62 62v644c0 34.183-27.817 62-62 62h-644c-34.183 0-62-27.817-62-62v-644c0-34.183 27.817-62 62-62zM296 296v432h432v-432h-432z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "stop" - ] - }, - "attrs": [], - "properties": { - "order": 581, - "id": 14, - "prevSize": 16, - "code": 59931, - "name": "stop" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 283 - }, - { - "icon": { - "paths": [ - "M512 1024l-512-786.318h1024z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "stretch" - ] - }, - "attrs": [], - "properties": { - "order": 582, - "id": 13, - "prevSize": 16, - "code": 59932, - "name": "stretch" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 284 - }, - { - "icon": { - "paths": [ - "M194 0c-107.068 0-194 82.412-194 184v656c0 101.588 86.932 184 194 184h636c107.068 0 194-82.412 194-184v-656c0-101.588-86.932-184-194-184h-636zM256 166l254 254 254-254 92 90-256 254 258 258-90 90-258-258-258 258-90-90 258-258-254-254 90-90z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "strikeOut" - ] - }, - "attrs": [], - "properties": { - "order": 583, - "id": 12, - "prevSize": 16, - "code": 59933, - "name": "strikeOut" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 285 - }, - { - "icon": { - "paths": [ - "M494.591 0.25c-104.514 3.264-208.762 40.365-296.56 108.41 54.963 14.432 104.846 45.722 142.015 91.731 26.183 32.416 43.293 69.434 52.211 108.41 7.471-4.416 15.182-6.931 22.973-10.419 92.228-41.331 202.903-21.402 273.587 58.374 2.3 2.624 4.099 5.696 6.266 8.339 38.539-10.528 75.134-28.589 106.511-56.294 44.602-39.379 72.015-90.355 83.538-145.939-104.684-110.842-248.067-167.085-390.54-162.611zM129.112 171.2c-154.656 173.299-171.74 430.515-43.857 623.366 14.934-42.534 37.92-81.523 73.096-112.576 40.821-36.064 90.261-55.533 142.015-62.547-39.251-78.547-32.851-174.438 18.796-246.010-8.527-40.979-24.855-80.813-52.211-114.669-35.942-44.499-84.853-73.018-137.838-87.565zM945.696 242.086c-12.714 52.192-39.333 100.41-81.45 137.6-37.012 32.678-81.354 51.789-127.396 60.461 26.015 79.027 6.736 167.418-52.211 231.411 19.428 31.75 44.529 59.674 77.273 81.312 53.569 35.405 115.945 48.032 177.518 41.696 109.728-165.357 113.583-382.061 6.266-552.48zM356.753 690.33c-49.599 7.29-96.216 27.635-135.749 62.541-37.037 32.698-60.956 73.747-75.184 118.835 189.751 193.376 500.447 204.333 705.897 22.938 7.2-6.336 14.128-12.109 20.885-18.771-56.711 3.136-113.526-11.149-162.899-43.776-41.445-27.398-71.715-65.645-91.892-108.41-84.866 42.72-188.114 30.099-261.056-33.357z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "Synchronous" - ] - }, - "attrs": [], - "properties": { - "order": 584, - "id": 11, - "prevSize": 16, - "code": 59934, - "name": "Synchronous" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 286 - }, - { - "icon": { - "paths": [ - "M517.312 51.648c-261.504 0-474.24 212.736-474.24 474.24s212.736 474.24 474.24 474.24c261.44 0 474.176-212.736 474.176-474.24s-212.736-474.24-474.176-474.24zM517.312 936.128c-226.24 0-410.24-184.064-410.24-410.24 0-226.24 184-410.24 410.24-410.24 226.176 0 410.176 184 410.176 410.24 0 226.176-184 410.24-410.176 410.24z", - "M498.624 196.288l-45.312 45.248 245.632 245.632h-445.184v64h457.536l-244.16 244.224 45.248 45.248 315.264-315.328z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "toRight" - ] - }, - "attrs": [], - "properties": { - "order": 585, - "id": 10, - "prevSize": 16, - "code": 59935, - "name": "toRight" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 287 - }, - { - "icon": { - "paths": [ - "M172 0c-95.48 0-172 76.52-172 172v680c0 95.48 76.52 172 172 172h680c95.48 0 172-76.52 172-172v-680c0-95.48-76.52-172-172-172h-680zM244 178h432l104 132v536h-536v-668zM326 306v78h200v-78h-200zM328 478v76h374v-76h-374zM320 648v78h384v-78h-384z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "treefile" - ] - }, - "attrs": [], - "properties": { - "order": 586, - "id": 9, - "prevSize": 16, - "code": 59936, - "name": "treefile" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 288 - }, - { - "icon": { - "paths": [ - "M172 0c-95.48 0-172 76.52-172 172v680c0 95.48 76.52 172 172 172h680c95.48 0 172-76.52 172-172v-680c0-95.48-76.52-172-172-172zM238.712 241.729h206.949c27.848 0 50.787 21.897 50 48v144h316c28.751 0 52 23.249 52 52v266.237c0 28.751-23.249 52-52 52h-568.949c-28.751 0-51.098-23.263-52-52v-462.237c0-26.115 20.152-48 48-48z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "treeFolder" - ] - }, - "attrs": [], - "properties": { - "order": 587, - "id": 8, - "prevSize": 16, - "code": 59937, - "name": "treeFolder" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 289 - }, - { - "icon": { - "paths": [ - "M510 8c-202.717 0-366.626 152.266-370 342-0.012 0.659 0.008 1.34 0 2v66c-48.364 7.619-86 47.443-86 98v406c0 56.19 45.81 102 102 102h710c56.19 0 102-45.81 102-102v-406c0-56.19-45.81-100-102-100h-634v-66c3.722-129.746 126.346-234 278-234 125.236 0 230.961 71.332 266.403 169.184 9.788 9.965 18.88 19.916 30.894 22.829 12.716 3.084 41.895 4.16 53.558-6.145 7.663-6.77 13.476-15.71 11.628-22.481-37.206-155.677-185.523-271.387-362.482-271.387zM510 586c37.842 0 68 30.158 68 68 0 20.924-9.216 41.432-24 54v170h-90v-170c-14.784-12.568-24-33.076-24-54 0-37.842 32.158-68 70-68z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "unlock" - ] - }, - "attrs": [], - "properties": { - "order": 588, - "id": 7, - "prevSize": 16, - "code": 59938, - "name": "unlock" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 290 - }, - { - "icon": { - "paths": [ - "M430.051 1.837c-113.748 0-204 92.25-204 206.003 0 113.747 90.252 205.997 204 205.997s206-92.25 206-205.997c0-113.754-92.252-206.003-206-206.003zM260.051 423.84c-293.451 164.71-256.921 447.763-260 437.997h378c24.631-42.662 62.629-86.432 126-121.997l12-38.003v-1.984c-0.602-0.704-1.411-1.28-2-1.984-16.909-20.928-28.629-51.814-30-97.997 0-62.336 42.539-115.219 100-130.003l4-1.984v-1.984l14-41.997c-37.012 47.104-100.907 80-172 80s-132.988-32.896-170-80zM688.051 467.84c-73.692 0-134 58.304-134 132 0 73.69 60.308 133.997 134 133.997s132-60.307 132-133.997c0-73.696-58.308-132-132-132zM576.051 739.84c-190.112 106.707-166.005 290.323-168 284h558c-1.994 6.336 22.112-177.293-168-284-23.978 30.515-63.943 52-110 52s-88.022-21.485-112-52z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "userCompare" - ] - }, - "attrs": [], - "properties": { - "order": 589, - "id": 6, - "prevSize": 16, - "code": 59939, - "name": "userCompare" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 291 - }, - { - "icon": { - "paths": [ - "M512 0c-135.256 0-243.927 108.883-243.927 244.403 0 135.526 108.671 246.413 243.927 246.413s243.927-110.886 243.927-246.413c0-135.52-108.671-244.403-243.927-244.403zM308.061 502.842c-348.938 196.237-304.247 532.493-307.907 520.864h1023.692c-3.66 11.629 41.030-324.627-307.907-520.864-44.011 56.115-119.403 94.15-203.939 94.15-50.341 0-96.799-15.302-135.959-38.061 100.275 77.171 212.359 110.496 331.9 118.195l3.999-152.256 235.929 208.346-213.936 242.406-11.996-138.234c-166.671-50.202-400.945-148.48-413.876-334.547z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "userDispatch" - ] - }, - "attrs": [], - "properties": { - "order": 590, - "id": 5, - "prevSize": 16, - "code": 59940, - "name": "userDispatch" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 292 - }, - { - "icon": { - "paths": [ - "M130 0c-71.877 0-130 58.123-130 130v764c0 71.877 58.123 130 130 130h764c71.877 0 130-58.123 130-130v-506l-388-388h-506zM772 0l252 252v-122c0-71.877-58.123-130-130-130h-122zM56 352h76l64 102 62-102h76l-100 156 110 164h-78l-72-110-70 110h-78l110-168-100-152zM376 352h98l58 218 58-218h96v320h-60v-252l-64 252h-62l-64-252v252h-60v-320zM752 354h66v264h160v54h-226v-318z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "xml" - ] - }, - "attrs": [], - "properties": { - "order": 591, - "id": 4, - "prevSize": 16, - "code": 59941, - "name": "xml" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 293 - }, - { - "icon": { - "paths": [ - "M638 2c-211.661 0-382 172.339-382 384 0 71.954 19.508 138.475 54 196-7.030 3.398-12.152 8.152-18 14l-272 272c-27.919 27.919-27.919 72.081 0 100l34 36c27.919 27.919 74.081 27.919 102 0l270-272c5.906-5.906 10.593-12.892 14-20 58.037 35.367 125.065 56 198 56 211.661 0 384-170.339 384-382s-172.339-384-384-384zM638 106c153.936 0 280 126.064 280 280s-126.064 278-280 278c-153.936 0-278-124.064-278-278s124.064-280 278-280zM620 194c-25.053 0-46 20.947-46 46v84h-84c-25.053 0-44 18.947-44 44v38c0 25.053 18.947 46 44 46h84v84c0 25.053 20.947 44 46 44h38c25.053 0 44-18.947 44-44v-84h84c25.053 0 46-20.947 46-46v-38c0-25.053-20.947-44-46-44h-84v-84c0-25.053-18.947-46-44-46h-38z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "zoomIn" - ] - }, - "attrs": [], - "properties": { - "order": 592, - "id": 3, - "prevSize": 16, - "code": 59942, - "name": "zoomIn" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 294 - }, - { - "icon": { - "paths": [ - "M638.939 1.061c211.661 0 384 172.339 384 384s-172.339 382-384 382c-72.935 0-139.963-20.633-198-56-3.407 7.108-8.094 14.094-14 20l-270 272c-27.919 27.919-74.081 27.919-102 0l-34-36c-27.919-27.919-27.919-72.081 0-100l272-272c5.848-5.848 10.97-10.602 18-14-34.492-57.525-54-124.046-54-196 0-211.661 170.339-384 382-384zM638.939 105.061c-153.936 0-278 126.064-278 280s124.064 278 278 278c153.936 0 280-124.064 280-278s-126.064-280-280-280z", - "M490.9 323.499h295.725c24.975 0 45.222 20.247 45.222 45.222v37.556c0 24.975-20.247 45.222-45.222 45.222h-295.725c-24.975 0-45.222-20.247-45.222-45.222v-37.556c0-24.975 20.247-45.222 45.222-45.222z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "zoomOut" - ] - }, - "attrs": [], - "properties": { - "order": 593, - "id": 2, - "prevSize": 16, - "code": 59943, - "name": "zoomOut" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 295 - }, - { - "icon": { - "paths": [ - "M0 0v172l172-172h-172zM852 0l172 172v-172h-172zM128 128v768h768v-768h-768zM234 254h556v272l-42-56-72 86-66-194-114 230-104-122-158 162v-378zM0 852v172h172l-172-172zM1024 852l-172 172h172v-172z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "zoomOverView" - ] - }, - "attrs": [], - "properties": { - "order": 594, - "id": 1, - "prevSize": 16, - "code": 59944, - "name": "zoomOverView" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 296 - }, - { - "icon": { - "paths": [ - "M388 0l114 128 114-128h-228zM502 128h-374v768h768v-768h-394zM896 470l128 114v-228l-128 114zM512 896l-114 128h226l-112-128zM128 472l-128-112v226l128-114zM234 254h556v272l-42-56-72 86-66-194-114 230-104-122-158 162v-378z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "zoomReset" - ] - }, - "attrs": [], - "properties": { - "order": 595, - "id": 0, - "prevSize": 16, - "code": 59945, - "name": "zoomReset" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 297 - } - ], - "height": 1024, - "metadata": { - "name": "ZteIctIcons" - }, - "preferences": { - "showGlyphs": true, - "showQuickUse": true, - "showQuickUse2": true, - "showSVGs": true, - "fontPref": { - "prefix": "ict-", - "metadata": { - "fontFamily": "ZteIctIcons", - "majorVersion": 1, - "minorVersion": 0 - }, - "metrics": { - "emSize": 1024, - "baseline": 6.25, - "whitespace": 50 - }, - "embed": false - }, - "imagePref": { - "prefix": "icon-", - "png": true, - "useClassSelector": true, - "color": 4473924, - "bgColor": 16777215, - "classSelector": ".icon" - }, - "historySize": 100, - "showCodes": true, - "gridSize": 16, - "showLiga": false - } -} \ No newline at end of file diff --git a/openo-portal/portal-common/src/main/webapp/common/css/ZteIctIcons/style.css b/openo-portal/portal-common/src/main/webapp/common/css/ZteIctIcons/style.css deleted file mode 100644 index 581db6f0..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/css/ZteIctIcons/style.css +++ /dev/null @@ -1,921 +0,0 @@ -@font-face { - font-family: 'ZteIctIcons'; - src: url('fonts/ZteIctIcons.eot?whxm2m'); - src: url('fonts/ZteIctIcons.eot?whxm2m#iefix') format('embedded-opentype'), - url('fonts/ZteIctIcons.ttf?whxm2m') format('truetype'), - url('fonts/ZteIctIcons.woff?whxm2m') format('woff'), - url('fonts/ZteIctIcons.svg?whxm2m#ZteIctIcons') format('svg'); - font-weight: normal; - font-style: normal; -} - -[class^="ict-"], [class*=" ict-"] { - /* use !important to prevent issues with browser extensions that change fonts */ - font-family: 'ZteIctIcons' !important; - speak: none; - font-style: normal; - font-weight: normal; - font-variant: normal; - text-transform: none; - line-height: 1; - - /* Better Font Rendering =========== */ - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -.ict-it-other-lenovo:before { - content: "\e900"; -} -.ict-it-router-alu7750:before { - content: "\e901"; -} -.ict-it-other-nds:before { - content: "\e902"; -} -.ict-it-other-php:before { - content: "\e903"; -} -.ict-it-app-glassfish:before { - content: "\e904"; -} -.ict-it-other-telnet:before { - content: "\e905"; -} -.ict-it-other-dns:before { - content: "\e906"; -} -.ict-it-other-url:before { - content: "\e907"; -} -.ict-it-database-mysql:before { - content: "\e908"; -} -.ict-it-other-ping:before { - content: "\e909"; -} -.ict-it-other-ftp:before { - content: "\e90a"; -} -.ict-it-other-rest:before { - content: "\e90b"; -} -.ict-it-other-soap:before { - content: "\e90c"; -} -.ict-it-server-macos:before { - content: "\e90d"; -} -.ict-it-server-openbsd:before { - content: "\e90e"; -} -.ict-it-server-debian:before { - content: "\e90f"; -} -.ict-it-app-iis:before { - content: "\e910"; -} -.ict-it-app-mailserver:before { - content: "\e911"; -} -.ict-it-app-websphere:before { - content: "\e912"; -} -.ict-it-app-apache:before { - content: "\e913"; -} -.ict-it-app-jboss:before { - content: "\e914"; -} -.ict-it-other-a10bala:before { - content: "\e915"; -} -.ict-NFV:before { - content: "\e916"; -} -.ict-VNFM:before { - content: "\e917"; -} -.ict-VNF:before { - content: "\e918"; -} -.ict-VNFC:before { - content: "\e919"; -} -.ict-VIM:before { - content: "\e91a"; -} -.ict-VDU:before { - content: "\e91b"; -} -.ict-host:before { - content: "\e91c"; -} -.ict-NS:before { - content: "\e91d"; -} -.ict-it-cluster-vcs:before { - content: "\e91e"; -} -.ict-it-diskraid-hpeva:before { - content: "\e91f"; -} -.ict-it-diskraid-zte:before { - content: "\e920"; -} -.ict-it-firewall-h3c:before { - content: "\e921"; -} -.ict-it-other-ibm-blade:before { - content: "\e922"; -} -.ict-it-other-secfox:before { - content: "\e923"; -} -.ict-it-other-segw:before { - content: "\e924"; -} -.ict-it-other-zteatca:before { - content: "\e925"; -} -.ict-it-other-zteips:before { - content: "\e926"; -} -.ict-it-sdn-controller:before { - content: "\e927"; -} -.ict-it-server-hpux:before { - content: "\e928"; -} -.ict-it-storage-ops:before { - content: "\e929"; -} -.ict-it-storage-sanswitch-brocade:before { - content: "\e92a"; -} -.ict-uep-moc-uca-public:before { - content: "\e92b"; -} -.ict-uep-topo-commongroup20x20:before { - content: "\e92c"; -} -.ict-vapel_chgpile:before { - content: "\e92d"; -} -.ict-car:before { - content: "\e92e"; -} -.ict-chgpile:before { - content: "\e92f"; -} -.ict-chgposition:before { - content: "\e930"; -} -.ict-chgstation:before { - content: "\e931"; -} -.ict-common_dc:before { - content: "\e932"; -} -.ict-common_ncd:before { - content: "\e933"; -} -.ict-common_ncd_break:before { - content: "\e934"; -} -.ict-common_sc:before { - content: "\e935"; -} -.ict-it:before { - content: "\e936"; -} -.ict-it-app:before { - content: "\e937"; -} -.ict-it-app-bind:before { - content: "\e938"; -} -.ict-it-app-dns:before { - content: "\e939"; -} -.ict-it-app-ems:before { - content: "\e93a"; -} -.ict-it-app-mediator:before { - content: "\e93b"; -} -.ict-it-app-ntp:before { - content: "\e93c"; -} -.ict-it-app-ota:before { - content: "\e93d"; -} -.ict-it-app-tomcat:before { - content: "\e93e"; -} -.ict-it-app-trend:before { - content: "\e93f"; -} -.ict-it-app-tsm:before { - content: "\e940"; -} -.ict-it-app-weblogic:before { - content: "\e941"; -} -.ict-it-cluster:before { - content: "\e942"; -} -.ict-it-cluster-hacmp:before { - content: "\e943"; -} -.ict-it-cluster-nec:before { - content: "\e944"; -} -.ict-it-cluster-ns:before { - content: "\e945"; -} -.ict-it-cluster-sg:before { - content: "\e946"; -} -.ict-it-database:before { - content: "\e947"; -} -.ict-it-database-mssql:before { - content: "\e948"; -} -.ict-it-database-oracle:before { - content: "\e949"; -} -.ict-it-database-sybase:before { - content: "\e94a"; -} -.ict-it-database-sybaseiq:before { - content: "\e94b"; -} -.ict-it-diskraid-dellmd:before { - content: "\e94c"; -} -.ict-it-diskraid-emc:before { - content: "\e94d"; -} -.ict-it-diskraid-eternus:before { - content: "\e94e"; -} -.ict-it-diskraid-fujitsu:before { - content: "\e94f"; -} -.ict-it-diskraid-hds:before { - content: "\e950"; -} -.ict-it-diskraid-hpaio:before { - content: "\e951"; -} -.ict-it-diskraid-hpmsa:before { - content: "\e952"; -} -.ict-it-diskraid-ibm:before { - content: "\e953"; -} -.ict-it-diskraid-ibmsm:before { - content: "\e954"; -} -.ict-it-diskraid-macrosan:before { - content: "\e955"; -} -.ict-it-diskraid-netapp:before { - content: "\e956"; -} -.ict-it-diskraid-sun:before { - content: "\e957"; -} -.ict-it-firewall:before { - content: "\e958"; -} -.ict-it-firewall-checkpoint:before { - content: "\e959"; -} -.ict-it-firewall-cisco:before { - content: "\e95a"; -} -.ict-it-firewall-cisco2:before { - content: "\e95b"; -} -.ict-it-firewall-juniper:before { - content: "\e95c"; -} -.ict-it-firewall-neteye:before { - content: "\e95d"; -} -.ict-it-firewall-zte:before { - content: "\e95e"; -} -.ict-it-firewall-ztemf:before { - content: "\e95f"; -} -.ict-it-firewall-zteutm:before { - content: "\e960"; -} -.ict-it-gather:before { - content: "\e961"; -} -.ict-it-ibp:before { - content: "\e962"; -} -.ict-it-ibp-ibp2000:before { - content: "\e963"; -} -.ict-it-net:before { - content: "\e964"; -} -.ict-it-other:before { - content: "\e965"; -} -.ict-it-other-alteon:before { - content: "\e966"; -} -.ict-it-other-appdirector:before { - content: "\e967"; -} -.ict-it-other-atca-lb10:before { - content: "\e968"; -} -.ict-it-other-cisco-ucs:before { - content: "\e969"; -} -.ict-it-other-dcs:before { - content: "\e96a"; -} -.ict-it-other-delta:before { - content: "\e96b"; -} -.ict-it-other-dp:before { - content: "\e96c"; -} -.ict-it-other-e9000:before { - content: "\e96d"; -} -.ict-it-other-f5bigip:before { - content: "\e96e"; -} -.ict-it-other-f5bigip2:before { - content: "\e96f"; -} -.ict-it-other-gbe2c:before { - content: "\e970"; -} -.ict-it-other-h3c:before { - content: "\e971"; -} -.ict-it-other-hpblc:before { - content: "\e972"; -} -.ict-it-other-imm:before { - content: "\e973"; -} -.ict-it-other-secsis:before { - content: "\e974"; -} -.ict-it-other-vc:before { - content: "\e975"; -} -.ict-it-other-ztepower:before { - content: "\e976"; -} -.ict-it-other-ztesgs:before { - content: "\e977"; -} -.ict-it-other-zxsdr-nt:before { - content: "\e978"; -} -.ict-it-router:before { - content: "\e979"; -} -.ict-it-router-cisco:before { - content: "\e97a"; -} -.ict-it-router-juniper:before { - content: "\e97b"; -} -.ict-it-router-zte:before { - content: "\e97c"; -} -.ict-it-sdn-host:before { - content: "\e97d"; -} -.ict-it-sdn-switch:before { - content: "\e97e"; -} -.ict-it-server:before { - content: "\e97f"; -} -.ict-it-server-aix:before { - content: "\e980"; -} -.ict-it-server-klinux:before { - content: "\e981"; -} -.ict-it-server-redhat:before { - content: "\e982"; -} -.ict-it-server-solaris:before { - content: "\e983"; -} -.ict-it-server-suse:before { - content: "\e984"; -} -.ict-it-server-windows:before { - content: "\e985"; -} -.ict-it-server-zxve:before { - content: "\e986"; -} -.ict-it-storage:before { - content: "\e987"; -} -.ict-it-storage-cisco-mds:before { - content: "\e988"; -} -.ict-it-storage-md3000:before { - content: "\e989"; -} -.ict-it-storage-netvault:before { - content: "\e98a"; -} -.ict-it-storage-sanswitch-zte:before { - content: "\e98b"; -} -.ict-it-switch-at:before { - content: "\e98c"; -} -.ict-it-switch-cisco:before { - content: "\e98d"; -} -.ict-it-switch-h3c:before { - content: "\e98e"; -} -.ict-it-switch-juniper:before { - content: "\e98f"; -} -.ict-it-switch-zte:before { - content: "\e990"; -} -.ict-it-tapelib-hpmsl:before { - content: "\e991"; -} -.ict-it-tapelib-ibmts:before { - content: "\e992"; -} -.ict-it-tapelib-sunts:before { - content: "\e993"; -} -.ict-it-Virtualnetwork:before { - content: "\e994"; -} -.ict-networkTree:before { - content: "\e995"; -} -.ict-resourceType:before { - content: "\e996"; -} -.ict-tree-icon:before { - content: "\e997"; -} -.ict-uep-topo-group20x20:before { - content: "\e998"; -} -.ict-uep-topo-root:before { - content: "\e999"; -} -.ict-uep-topo-virtual20x20:before { - content: "\e99a"; -} -.ict-common_ncd_stop:before { - content: "\e99b"; -} -.ict-it-app-netnumen:before { - content: "\e99c"; -} -.ict-it-sdn-vnet:before { - content: "\e99d"; -} -.ict-it-storage-sanswitch-hp:before { - content: "\e99e"; -} -.ict-it-switch:before { - content: "\e99f"; -} -.ict-uep-moc-root:before { - content: "\e9a0"; -} -.ict-uep-topo-undefinedgroup20x20:before { - content: "\e9a1"; -} -.ict-analysis:before { - content: "\e9a2"; -} -.ict-bindingRelationship:before { - content: "\e9a3"; -} -.ict-browsePolicy:before { - content: "\e9a4"; -} -.ict-businessManagment:before { - content: "\e9a5"; -} -.ict-cardData:before { - content: "\e9a6"; -} -.ict-dailyManagment:before { - content: "\e9a7"; -} -.ict-enterpriseCustomer:before { - content: "\e9a8"; -} -.ict-equipmentBlacklist:before { - content: "\e9a9"; -} -.ict-equipmentModel:before { - content: "\e9aa"; -} -.ict-examine:before { - content: "\e9ab"; -} -.ict-failureList:before { - content: "\e9ac"; -} -.ict-familyCustomer:before { - content: "\e9ad"; -} -.ict-fileTool:before { - content: "\e9ae"; -} -.ict-groupManagment:before { - content: "\e9af"; -} -.ict-notice:before { - content: "\e9b0"; -} -.ict-policy:before { - content: "\e9b1"; -} -.ict-portal:before { - content: "\e9b2"; -} -.ict-recordQuery:before { - content: "\e9b3"; -} -.ict-resourceManagment:before { - content: "\e9b4"; -} -.ict-ruleManagment:before { - content: "\e9b5"; -} -.ict-sucessRate:before { - content: "\e9b6"; -} -.ict-terminalManagment:before { - content: "\e9b7"; -} -.ict-tools:before { - content: "\e9b8"; -} -.ict-track:before { - content: "\e9b9"; -} -.ict-userManagment:before { - content: "\e9ba"; -} -.ict-versionManagment:before { - content: "\e9bb"; -} -.ict-workOrder:before { - content: "\e9bc"; -} -.ict-cpu:before { - content: "\e9bd"; -} -.ict-memory:before { - content: "\e9be"; -} -.ict-currentAlarm:before { - content: "\e9bf"; -} -.ict-noticeAlarm:before { - content: "\e9c0"; -} -.ict-historyAlarm:before { - content: "\e9c1"; -} -.ict-close:before { - content: "\e9c2"; -} -.ict-table:before { - content: "\e9c3"; -} -.ict-next:before { - content: "\e9c4"; -} -.ict-pre:before { - content: "\e9c5"; -} -.ict-roleset:before { - content: "\e9c6"; -} -.ict-role:before { - content: "\e9c7"; -} -.ict-user:before { - content: "\e9c8"; -} -.ict-empty:before { - content: "\e9c9"; -} -.ict-noticeFilter:before { - content: "\e9ca"; -} -.ict-alarmTurn:before { - content: "\e9cb"; -} -.ict-advice:before { - content: "\e9cc"; -} -.ict-clearAlarm:before { - content: "\e9cd"; -} -.ict-alarmBox:before { - content: "\e9ce"; -} -.ict-afreshDef:before { - content: "\e9cf"; -} -.ict-alarmFilter:before { - content: "\e9d0"; -} -.ict-manAnalysis:before { - content: "\e9d1"; -} -.ict-drill:before { - content: "\e9d2"; -} -.ict-gear:before { - content: "\e9d3"; -} -.ict-process:before { - content: "\e9d4"; -} -.ict-unacknownledge:before { - content: "\e9d5"; -} -.ict-acknownledge:before { - content: "\e9d6"; -} -.ict-Operation:before { - content: "\e9d7"; -} -.ict-cloud:before { - content: "\e9d8"; -} -.ict-computer:before { - content: "\e9d9"; -} -.ict-alarm:before { - content: "\e9da"; -} -.ict-import:before { - content: "\e9db"; -} -.ict-export:before { - content: "\e9dc"; -} -.ict-Admin:before { - content: "\e9dd"; -} -.ict-allSelected:before { - content: "\e9de"; -} -.ict-angleRight:before { - content: "\e9df"; -} -.ict-arrowLeft:before { - content: "\e9e0"; -} -.ict-arrowLeftAll:before { - content: "\e9e1"; -} -.ict-arrowRight:before { - content: "\e9e2"; -} -.ict-arrowRightAll:before { - content: "\e9e3"; -} -.ict-autoFind:before { - content: "\e9e4"; -} -.ict-back:before { - content: "\e9e5"; -} -.ict-ball:before { - content: "\e9e6"; -} -.ict-bell:before { - content: "\e9e7"; -} -.ict-blackList:before { - content: "\e9e8"; -} -.ict-breakLink:before { - content: "\e9e9"; -} -.ict-cancle:before { - content: "\e9ea"; -} -.ict-circle:before { - content: "\e9eb"; -} -.ict-closeTree:before { - content: "\e9ec"; -} -.ict-configmap:before { - content: "\e9ed"; -} -.ict-delete:before { - content: "\e9ee"; -} -.ict-department:before { - content: "\e9ef"; -} -.ict-detail:before { - content: "\e9f0"; -} -.ict-displaySwitch:before { - content: "\e9f1"; -} -.ict-file:before { - content: "\e9f2"; -} -.ict-filter:before { - content: "\e9f3"; -} -.ict-find:before { - content: "\e9f4"; -} -.ict-folder:before { - content: "\e9f5"; -} -.ict-forceOut:before { - content: "\e9f6"; -} -.ict-fullScreen:before { - content: "\e9f7"; -} -.ict-Graphical:before { - content: "\e9f8"; -} -.ict-helpTip:before { - content: "\e9f9"; -} -.ict-hide:before { - content: "\e9fa"; -} -.ict-history:before { - content: "\e9fb"; -} -.ict-launchingTower:before { - content: "\e9fc"; -} -.ict-layout:before { - content: "\e9fd"; -} -.ict-legendhide:before { - content: "\e9fe"; -} -.ict-legendshow:before { - content: "\e9ff"; -} -.ict-link:before { - content: "\ea00"; -} -.ict-lock:before { - content: "\ea01"; -} -.ict-ltArrow:before { - content: "\ea02"; -} -.ict-Magnifier:before { - content: "\ea03"; -} -.ict-Maintain:before { - content: "\ea04"; -} -.ict-maximize:before { - content: "\ea05"; -} -.ict-modify:before { - content: "\ea06"; -} -.ict-Monitor:before { - content: "\ea07"; -} -.ict-move:before { - content: "\ea08"; -} -.ict-new:before { - content: "\ea09"; -} -.ict-newShortcut:before { - content: "\ea0a"; -} -.ict-openTree:before { - content: "\ea0b"; -} -.ict-poNode:before { - content: "\ea0c"; -} -.ict-print:before { - content: "\ea0d"; -} -.ict-product:before { - content: "\ea0e"; -} -.ict-rbArrow:before { - content: "\ea0f"; -} -.ict-reduction:before { - content: "\ea10"; -} -.ict-refresh:before { - content: "\ea11"; -} -.ict-rename:before { - content: "\ea12"; -} -.ict-save:before { - content: "\ea13"; -} -.ict-select:before { - content: "\ea14"; -} -.ict-selectAll:before { - content: "\ea15"; -} -.ict-selectLeft:before { - content: "\ea16"; -} -.ict-selectRight:before { - content: "\ea17"; -} -.ict-show:before { - content: "\ea18"; -} -.ict-shrink:before { - content: "\ea19"; -} -.ict-start:before { - content: "\ea1a"; -} -.ict-stop:before { - content: "\ea1b"; -} -.ict-stretch:before { - content: "\ea1c"; -} -.ict-strikeOut:before { - content: "\ea1d"; -} -.ict-Synchronous:before { - content: "\ea1e"; -} -.ict-toRight:before { - content: "\ea1f"; -} -.ict-treefile:before { - content: "\ea20"; -} -.ict-treeFolder:before { - content: "\ea21"; -} -.ict-unlock:before { - content: "\ea22"; -} -.ict-userCompare:before { - content: "\ea23"; -} -.ict-userDispatch:before { - content: "\ea24"; -} -.ict-xml:before { - content: "\ea25"; -} -.ict-zoomIn:before { - content: "\ea26"; -} -.ict-zoomOut:before { - content: "\ea27"; -} -.ict-zoomOverView:before { - content: "\ea28"; -} -.ict-zoomReset:before { - content: "\ea29"; -} - diff --git a/openo-portal/portal-common/src/main/webapp/common/css/animate.css b/openo-portal/portal-common/src/main/webapp/common/css/animate.css deleted file mode 100644 index aa84dd61..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/css/animate.css +++ /dev/null @@ -1,3278 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -@charset "UTF-8"; -/* -Animate.css - http://daneden.me/animate -Licensed under the MIT license - -Copyright (c) 2013 Daniel Eden - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ -body { /* Addresses a small issue in webkit: http://bit.ly/NEdoDq */ - -webkit-backface-visibility: hidden; -} -.animated { - -webkit-animation-duration: 1s; - -moz-animation-duration: 1s; - -o-animation-duration: 1s; - animation-duration: 1s; - -webkit-animation-fill-mode: both; - -moz-animation-fill-mode: both; - -o-animation-fill-mode: both; - animation-fill-mode: both; -} - -.animated.hinge { - -webkit-animation-duration: 2s; - -moz-animation-duration: 2s; - -o-animation-duration: 2s; - animation-duration: 2s; -} - -@-webkit-keyframes flash { - 0%, 50%, 100% {opacity: 1;} - 25%, 75% {opacity: 0;} -} - -@-moz-keyframes flash { - 0%, 50%, 100% {opacity: 1;} - 25%, 75% {opacity: 0;} -} - -@-o-keyframes flash { - 0%, 50%, 100% {opacity: 1;} - 25%, 75% {opacity: 0;} -} - -@keyframes flash { - 0%, 50%, 100% {opacity: 1;} - 25%, 75% {opacity: 0;} -} - -.flash { - -webkit-animation-name: flash; - -moz-animation-name: flash; - -o-animation-name: flash; - animation-name: flash; -} -@-webkit-keyframes shake { - 0%, 100% {-webkit-transform: translateX(0);} - 10%, 30%, 50%, 70%, 90% {-webkit-transform: translateX(-10px);} - 20%, 40%, 60%, 80% {-webkit-transform: translateX(10px);} -} - -@-moz-keyframes shake { - 0%, 100% {-moz-transform: translateX(0);} - 10%, 30%, 50%, 70%, 90% {-moz-transform: translateX(-10px);} - 20%, 40%, 60%, 80% {-moz-transform: translateX(10px);} -} - -@-o-keyframes shake { - 0%, 100% {-o-transform: translateX(0);} - 10%, 30%, 50%, 70%, 90% {-o-transform: translateX(-10px);} - 20%, 40%, 60%, 80% {-o-transform: translateX(10px);} -} - -@keyframes shake { - 0%, 100% {transform: translateX(0);} - 10%, 30%, 50%, 70%, 90% {transform: translateX(-10px);} - 20%, 40%, 60%, 80% {transform: translateX(10px);} -} - -.shake { - -webkit-animation-name: shake; - -moz-animation-name: shake; - -o-animation-name: shake; - animation-name: shake; -} -@-webkit-keyframes bounce { - 0%, 20%, 50%, 80%, 100% {-webkit-transform: translateY(0);} - 40% {-webkit-transform: translateY(-30px);} - 60% {-webkit-transform: translateY(-15px);} -} - -@-moz-keyframes bounce { - 0%, 20%, 50%, 80%, 100% {-moz-transform: translateY(0);} - 40% {-moz-transform: translateY(-30px);} - 60% {-moz-transform: translateY(-15px);} -} - -@-o-keyframes bounce { - 0%, 20%, 50%, 80%, 100% {-o-transform: translateY(0);} - 40% {-o-transform: translateY(-30px);} - 60% {-o-transform: translateY(-15px);} -} -@keyframes bounce { - 0%, 20%, 50%, 80%, 100% {transform: translateY(0);} - 40% {transform: translateY(-30px);} - 60% {transform: translateY(-15px);} -} - -.bounce { - -webkit-animation-name: bounce; - -moz-animation-name: bounce; - -o-animation-name: bounce; - animation-name: bounce; -} -@-webkit-keyframes tada { - 0% {-webkit-transform: scale(1);} - 10%, 20% {-webkit-transform: scale(0.9) rotate(-3deg);} - 30%, 50%, 70%, 90% {-webkit-transform: scale(1.1) rotate(3deg);} - 40%, 60%, 80% {-webkit-transform: scale(1.1) rotate(-3deg);} - 100% {-webkit-transform: scale(1) rotate(0);} -} - -@-moz-keyframes tada { - 0% {-moz-transform: scale(1);} - 10%, 20% {-moz-transform: scale(0.9) rotate(-3deg);} - 30%, 50%, 70%, 90% {-moz-transform: scale(1.1) rotate(3deg);} - 40%, 60%, 80% {-moz-transform: scale(1.1) rotate(-3deg);} - 100% {-moz-transform: scale(1) rotate(0);} -} - -@-o-keyframes tada { - 0% {-o-transform: scale(1);} - 10%, 20% {-o-transform: scale(0.9) rotate(-3deg);} - 30%, 50%, 70%, 90% {-o-transform: scale(1.1) rotate(3deg);} - 40%, 60%, 80% {-o-transform: scale(1.1) rotate(-3deg);} - 100% {-o-transform: scale(1) rotate(0);} -} - -@keyframes tada { - 0% {transform: scale(1);} - 10%, 20% {transform: scale(0.9) rotate(-3deg);} - 30%, 50%, 70%, 90% {transform: scale(1.1) rotate(3deg);} - 40%, 60%, 80% {transform: scale(1.1) rotate(-3deg);} - 100% {transform: scale(1) rotate(0);} -} - -.tada { - -webkit-animation-name: tada; - -moz-animation-name: tada; - -o-animation-name: tada; - animation-name: tada; -} -@-webkit-keyframes swing { - 20%, 40%, 60%, 80%, 100% { -webkit-transform-origin: top center; } - 20% { -webkit-transform: rotate(15deg); } - 40% { -webkit-transform: rotate(-10deg); } - 60% { -webkit-transform: rotate(5deg); } - 80% { -webkit-transform: rotate(-5deg); } - 100% { -webkit-transform: rotate(0deg); } -} - -@-moz-keyframes swing { - 20% { -moz-transform: rotate(15deg); } - 40% { -moz-transform: rotate(-10deg); } - 60% { -moz-transform: rotate(5deg); } - 80% { -moz-transform: rotate(-5deg); } - 100% { -moz-transform: rotate(0deg); } -} - -@-o-keyframes swing { - 20% { -o-transform: rotate(15deg); } - 40% { -o-transform: rotate(-10deg); } - 60% { -o-transform: rotate(5deg); } - 80% { -o-transform: rotate(-5deg); } - 100% { -o-transform: rotate(0deg); } -} - -@keyframes swing { - 20% { transform: rotate(15deg); } - 40% { transform: rotate(-10deg); } - 60% { transform: rotate(5deg); } - 80% { transform: rotate(-5deg); } - 100% { transform: rotate(0deg); } -} - -.swing { - -webkit-transform-origin: top center; - -moz-transform-origin: top center; - -o-transform-origin: top center; - transform-origin: top center; - -webkit-animation-name: swing; - -moz-animation-name: swing; - -o-animation-name: swing; - animation-name: swing; -} -/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ - -@-webkit-keyframes wobble { - 0% { -webkit-transform: translateX(0%); } - 15% { -webkit-transform: translateX(-25%) rotate(-5deg); } - 30% { -webkit-transform: translateX(20%) rotate(3deg); } - 45% { -webkit-transform: translateX(-15%) rotate(-3deg); } - 60% { -webkit-transform: translateX(10%) rotate(2deg); } - 75% { -webkit-transform: translateX(-5%) rotate(-1deg); } - 100% { -webkit-transform: translateX(0%); } -} - -@-moz-keyframes wobble { - 0% { -moz-transform: translateX(0%); } - 15% { -moz-transform: translateX(-25%) rotate(-5deg); } - 30% { -moz-transform: translateX(20%) rotate(3deg); } - 45% { -moz-transform: translateX(-15%) rotate(-3deg); } - 60% { -moz-transform: translateX(10%) rotate(2deg); } - 75% { -moz-transform: translateX(-5%) rotate(-1deg); } - 100% { -moz-transform: translateX(0%); } -} - -@-o-keyframes wobble { - 0% { -o-transform: translateX(0%); } - 15% { -o-transform: translateX(-25%) rotate(-5deg); } - 30% { -o-transform: translateX(20%) rotate(3deg); } - 45% { -o-transform: translateX(-15%) rotate(-3deg); } - 60% { -o-transform: translateX(10%) rotate(2deg); } - 75% { -o-transform: translateX(-5%) rotate(-1deg); } - 100% { -o-transform: translateX(0%); } -} - -@keyframes wobble { - 0% { transform: translateX(0%); } - 15% { transform: translateX(-25%) rotate(-5deg); } - 30% { transform: translateX(20%) rotate(3deg); } - 45% { transform: translateX(-15%) rotate(-3deg); } - 60% { transform: translateX(10%) rotate(2deg); } - 75% { transform: translateX(-5%) rotate(-1deg); } - 100% { transform: translateX(0%); } -} - -.wobble { - -webkit-animation-name: wobble; - -moz-animation-name: wobble; - -o-animation-name: wobble; - animation-name: wobble; -} -/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ - -@-webkit-keyframes pulse { - 0% { -webkit-transform: scale(1); } - 50% { -webkit-transform: scale(1.1); } - 100% { -webkit-transform: scale(1); } -} -@-moz-keyframes pulse { - 0% { -moz-transform: scale(1); } - 50% { -moz-transform: scale(1.1); } - 100% { -moz-transform: scale(1); } -} -@-o-keyframes pulse { - 0% { -o-transform: scale(1); } - 50% { -o-transform: scale(1.1); } - 100% { -o-transform: scale(1); } -} -@keyframes pulse { - 0% { transform: scale(1); } - 50% { transform: scale(1.1); } - 100% { transform: scale(1); } -} - -.pulse { - -webkit-animation-name: pulse; - -moz-animation-name: pulse; - -o-animation-name: pulse; - animation-name: pulse; -} -@-webkit-keyframes flip { - 0% { - -webkit-transform: perspective(400px) rotateY(0); - -webkit-animation-timing-function: ease-out; - } - 40% { - -webkit-transform: perspective(400px) translateZ(150px) rotateY(170deg); - -webkit-animation-timing-function: ease-out; - } - 50% { - -webkit-transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1); - -webkit-animation-timing-function: ease-in; - } - 80% { - -webkit-transform: perspective(400px) rotateY(360deg) scale(.95); - -webkit-animation-timing-function: ease-in; - } - 100% { - -webkit-transform: perspective(400px) scale(1); - -webkit-animation-timing-function: ease-in; - } -} -@-moz-keyframes flip { - 0% { - -moz-transform: perspective(400px) rotateY(0); - -moz-animation-timing-function: ease-out; - } - 40% { - -moz-transform: perspective(400px) translateZ(150px) rotateY(170deg); - -moz-animation-timing-function: ease-out; - } - 50% { - -moz-transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1); - -moz-animation-timing-function: ease-in; - } - 80% { - -moz-transform: perspective(400px) rotateY(360deg) scale(.95); - -moz-animation-timing-function: ease-in; - } - 100% { - -moz-transform: perspective(400px) scale(1); - -moz-animation-timing-function: ease-in; - } -} -@-o-keyframes flip { - 0% { - -o-transform: perspective(400px) rotateY(0); - -o-animation-timing-function: ease-out; - } - 40% { - -o-transform: perspective(400px) translateZ(150px) rotateY(170deg); - -o-animation-timing-function: ease-out; - } - 50% { - -o-transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1); - -o-animation-timing-function: ease-in; - } - 80% { - -o-transform: perspective(400px) rotateY(360deg) scale(.95); - -o-animation-timing-function: ease-in; - } - 100% { - -o-transform: perspective(400px) scale(1); - -o-animation-timing-function: ease-in; - } -} -@keyframes flip { - 0% { - transform: perspective(400px) rotateY(0); - animation-timing-function: ease-out; - } - 40% { - transform: perspective(400px) translateZ(150px) rotateY(170deg); - animation-timing-function: ease-out; - } - 50% { - transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1); - animation-timing-function: ease-in; - } - 80% { - transform: perspective(400px) rotateY(360deg) scale(.95); - animation-timing-function: ease-in; - } - 100% { - transform: perspective(400px) scale(1); - animation-timing-function: ease-in; - } -} - -.flip { - -webkit-backface-visibility: visible !important; - -webkit-animation-name: flip; - -moz-backface-visibility: visible !important; - -moz-animation-name: flip; - -o-backface-visibility: visible !important; - -o-animation-name: flip; - backface-visibility: visible !important; - animation-name: flip; -} -@-webkit-keyframes flipInX { - 0% { - -webkit-transform: perspective(400px) rotateX(90deg); - opacity: 0; - } - - 40% { - -webkit-transform: perspective(400px) rotateX(-10deg); - } - - 70% { - -webkit-transform: perspective(400px) rotateX(10deg); - } - - 100% { - -webkit-transform: perspective(400px) rotateX(0deg); - opacity: 1; - } -} -@-moz-keyframes flipInX { - 0% { - -moz-transform: perspective(400px) rotateX(90deg); - opacity: 0; - } - - 40% { - -moz-transform: perspective(400px) rotateX(-10deg); - } - - 70% { - -moz-transform: perspective(400px) rotateX(10deg); - } - - 100% { - -moz-transform: perspective(400px) rotateX(0deg); - opacity: 1; - } -} -@-o-keyframes flipInX { - 0% { - -o-transform: perspective(400px) rotateX(90deg); - opacity: 0; - } - - 40% { - -o-transform: perspective(400px) rotateX(-10deg); - } - - 70% { - -o-transform: perspective(400px) rotateX(10deg); - } - - 100% { - -o-transform: perspective(400px) rotateX(0deg); - opacity: 1; - } -} -@keyframes flipInX { - 0% { - transform: perspective(400px) rotateX(90deg); - opacity: 0; - } - - 40% { - transform: perspective(400px) rotateX(-10deg); - } - - 70% { - transform: perspective(400px) rotateX(10deg); - } - - 100% { - transform: perspective(400px) rotateX(0deg); - opacity: 1; - } -} - -.flipInX { - -webkit-backface-visibility: visible !important; - -webkit-animation-name: flipInX; - -moz-backface-visibility: visible !important; - -moz-animation-name: flipInX; - -o-backface-visibility: visible !important; - -o-animation-name: flipInX; - backface-visibility: visible !important; - animation-name: flipInX; -} -@-webkit-keyframes flipOutX { - 0% { - -webkit-transform: perspective(400px) rotateX(0deg); - opacity: 1; - } - 100% { - -webkit-transform: perspective(400px) rotateX(90deg); - opacity: 0; - } -} - -@-moz-keyframes flipOutX { - 0% { - -moz-transform: perspective(400px) rotateX(0deg); - opacity: 1; - } - 100% { - -moz-transform: perspective(400px) rotateX(90deg); - opacity: 0; - } -} - -@-o-keyframes flipOutX { - 0% { - -o-transform: perspective(400px) rotateX(0deg); - opacity: 1; - } - 100% { - -o-transform: perspective(400px) rotateX(90deg); - opacity: 0; - } -} - -@keyframes flipOutX { - 0% { - transform: perspective(400px) rotateX(0deg); - opacity: 1; - } - 100% { - transform: perspective(400px) rotateX(90deg); - opacity: 0; - } -} - -.flipOutX { - -webkit-animation-name: flipOutX; - -webkit-backface-visibility: visible !important; - -moz-animation-name: flipOutX; - -moz-backface-visibility: visible !important; - -o-animation-name: flipOutX; - -o-backface-visibility: visible !important; - animation-name: flipOutX; - backface-visibility: visible !important; -} -@-webkit-keyframes flipInY { - 0% { - -webkit-transform: perspective(400px) rotateY(90deg); - opacity: 0; - } - - 40% { - -webkit-transform: perspective(400px) rotateY(-10deg); - } - - 70% { - -webkit-transform: perspective(400px) rotateY(10deg); - } - - 100% { - -webkit-transform: perspective(400px) rotateY(0deg); - opacity: 1; - } -} -@-moz-keyframes flipInY { - 0% { - -moz-transform: perspective(400px) rotateY(90deg); - opacity: 0; - } - - 40% { - -moz-transform: perspective(400px) rotateY(-10deg); - } - - 70% { - -moz-transform: perspective(400px) rotateY(10deg); - } - - 100% { - -moz-transform: perspective(400px) rotateY(0deg); - opacity: 1; - } -} -@-o-keyframes flipInY { - 0% { - -o-transform: perspective(400px) rotateY(90deg); - opacity: 0; - } - - 40% { - -o-transform: perspective(400px) rotateY(-10deg); - } - - 70% { - -o-transform: perspective(400px) rotateY(10deg); - } - - 100% { - -o-transform: perspective(400px) rotateY(0deg); - opacity: 1; - } -} -@keyframes flipInY { - 0% { - transform: perspective(400px) rotateY(90deg); - opacity: 0; - } - - 40% { - transform: perspective(400px) rotateY(-10deg); - } - - 70% { - transform: perspective(400px) rotateY(10deg); - } - - 100% { - transform: perspective(400px) rotateY(0deg); - opacity: 1; - } -} - -.flipInY { - -webkit-backface-visibility: visible !important; - -webkit-animation-name: flipInY; - -moz-backface-visibility: visible !important; - -moz-animation-name: flipInY; - -o-backface-visibility: visible !important; - -o-animation-name: flipInY; - backface-visibility: visible !important; - animation-name: flipInY; -} -@-webkit-keyframes flipOutY { - 0% { - -webkit-transform: perspective(400px) rotateY(0deg); - opacity: 1; - } - 100% { - -webkit-transform: perspective(400px) rotateY(90deg); - opacity: 0; - } -} -@-moz-keyframes flipOutY { - 0% { - -moz-transform: perspective(400px) rotateY(0deg); - opacity: 1; - } - 100% { - -moz-transform: perspective(400px) rotateY(90deg); - opacity: 0; - } -} -@-o-keyframes flipOutY { - 0% { - -o-transform: perspective(400px) rotateY(0deg); - opacity: 1; - } - 100% { - -o-transform: perspective(400px) rotateY(90deg); - opacity: 0; - } -} -@keyframes flipOutY { - 0% { - transform: perspective(400px) rotateY(0deg); - opacity: 1; - } - 100% { - transform: perspective(400px) rotateY(90deg); - opacity: 0; - } -} - -.flipOutY { - -webkit-backface-visibility: visible !important; - -webkit-animation-name: flipOutY; - -moz-backface-visibility: visible !important; - -moz-animation-name: flipOutY; - -o-backface-visibility: visible !important; - -o-animation-name: flipOutY; - backface-visibility: visible !important; - animation-name: flipOutY; -} -@-webkit-keyframes fadeIn { - 0% {opacity: 0;} - 100% {opacity: 1;} -} - -@-moz-keyframes fadeIn { - 0% {opacity: 0;} - 100% {opacity: 1;} -} - -@-o-keyframes fadeIn { - 0% {opacity: 0;} - 100% {opacity: 1;} -} - -@keyframes fadeIn { - 0% {opacity: 0;} - 100% {opacity: 1;} -} - -.fadeIn { - -webkit-animation-name: fadeIn; - -moz-animation-name: fadeIn; - -o-animation-name: fadeIn; - animation-name: fadeIn; -} -@-webkit-keyframes fadeInUp { - 0% { - opacity: 0; - -webkit-transform: translateY(20px); - } - - 100% { - opacity: 1; - -webkit-transform: translateY(0); - } -} - -@-moz-keyframes fadeInUp { - 0% { - opacity: 0; - -moz-transform: translateY(20px); - } - - 100% { - opacity: 1; - -moz-transform: translateY(0); - } -} - -@-o-keyframes fadeInUp { - 0% { - opacity: 0; - -o-transform: translateY(20px); - } - - 100% { - opacity: 1; - -o-transform: translateY(0); - } -} - -@keyframes fadeInUp { - 0% { - opacity: 0; - transform: translateY(20px); - } - - 100% { - opacity: 1; - transform: translateY(0); - } -} - -.fadeInUp { - -webkit-animation-name: fadeInUp; - -moz-animation-name: fadeInUp; - -o-animation-name: fadeInUp; - animation-name: fadeInUp; -} -@-webkit-keyframes fadeInDown { - 0% { - opacity: 0; - -webkit-transform: translateY(-20px); - } - - 100% { - opacity: 1; - -webkit-transform: translateY(0); - } -} - -@-moz-keyframes fadeInDown { - 0% { - opacity: 0; - -moz-transform: translateY(-20px); - } - - 100% { - opacity: 1; - -moz-transform: translateY(0); - } -} - -@-o-keyframes fadeInDown { - 0% { - opacity: 0; - -o-transform: translateY(-20px); - } - - 100% { - opacity: 1; - -o-transform: translateY(0); - } -} - -@keyframes fadeInDown { - 0% { - opacity: 0; - transform: translateY(-20px); - } - - 100% { - opacity: 1; - transform: translateY(0); - } -} - -.fadeInDown { - -webkit-animation-name: fadeInDown; - -moz-animation-name: fadeInDown; - -o-animation-name: fadeInDown; - animation-name: fadeInDown; -} -@-webkit-keyframes fadeInLeft { - 0% { - opacity: 0; - -webkit-transform: translateX(-20px); - } - - 100% { - opacity: 1; - -webkit-transform: translateX(0); - } -} - -@-moz-keyframes fadeInLeft { - 0% { - opacity: 0; - -moz-transform: translateX(-20px); - } - - 100% { - opacity: 1; - -moz-transform: translateX(0); - } -} - -@-o-keyframes fadeInLeft { - 0% { - opacity: 0; - -o-transform: translateX(-20px); - } - - 100% { - opacity: 1; - -o-transform: translateX(0); - } -} - -@keyframes fadeInLeft { - 0% { - opacity: 0; - transform: translateX(-20px); - } - - 100% { - opacity: 1; - transform: translateX(0); - } -} - -.fadeInLeft { - -webkit-animation-name: fadeInLeft; - -moz-animation-name: fadeInLeft; - -o-animation-name: fadeInLeft; - animation-name: fadeInLeft; -} -@-webkit-keyframes fadeInRight { - 0% { - opacity: 0; - -webkit-transform: translateX(20px); - } - - 100% { - opacity: 1; - -webkit-transform: translateX(0); - } -} - -@-moz-keyframes fadeInRight { - 0% { - opacity: 0; - -moz-transform: translateX(20px); - } - - 100% { - opacity: 1; - -moz-transform: translateX(0); - } -} - -@-o-keyframes fadeInRight { - 0% { - opacity: 0; - -o-transform: translateX(20px); - } - - 100% { - opacity: 1; - -o-transform: translateX(0); - } -} - -@keyframes fadeInRight { - 0% { - opacity: 0; - transform: translateX(20px); - } - - 100% { - opacity: 1; - transform: translateX(0); - } -} - -.fadeInRight { - -webkit-animation-name: fadeInRight; - -moz-animation-name: fadeInRight; - -o-animation-name: fadeInRight; - animation-name: fadeInRight; -} -@-webkit-keyframes fadeInUpBig { - 0% { - opacity: 0; - -webkit-transform: translateY(2000px); - } - - 100% { - opacity: 1; - -webkit-transform: translateY(0); - } -} - -@-moz-keyframes fadeInUpBig { - 0% { - opacity: 0; - -moz-transform: translateY(2000px); - } - - 100% { - opacity: 1; - -moz-transform: translateY(0); - } -} - -@-o-keyframes fadeInUpBig { - 0% { - opacity: 0; - -o-transform: translateY(2000px); - } - - 100% { - opacity: 1; - -o-transform: translateY(0); - } -} - -@keyframes fadeInUpBig { - 0% { - opacity: 0; - transform: translateY(2000px); - } - - 100% { - opacity: 1; - transform: translateY(0); - } -} - -.fadeInUpBig { - -webkit-animation-name: fadeInUpBig; - -moz-animation-name: fadeInUpBig; - -o-animation-name: fadeInUpBig; - animation-name: fadeInUpBig; -} -@-webkit-keyframes fadeInDownBig { - 0% { - opacity: 0; - -webkit-transform: translateY(-2000px); - } - - 100% { - opacity: 1; - -webkit-transform: translateY(0); - } -} - -@-moz-keyframes fadeInDownBig { - 0% { - opacity: 0; - -moz-transform: translateY(-2000px); - } - - 100% { - opacity: 1; - -moz-transform: translateY(0); - } -} - -@-o-keyframes fadeInDownBig { - 0% { - opacity: 0; - -o-transform: translateY(-2000px); - } - - 100% { - opacity: 1; - -o-transform: translateY(0); - } -} - -@keyframes fadeInDownBig { - 0% { - opacity: 0; - transform: translateY(-2000px); - } - - 100% { - opacity: 1; - transform: translateY(0); - } -} - -.fadeInDownBig { - -webkit-animation-name: fadeInDownBig; - -moz-animation-name: fadeInDownBig; - -o-animation-name: fadeInDownBig; - animation-name: fadeInDownBig; -} -@-webkit-keyframes fadeInLeftBig { - 0% { - opacity: 0; - -webkit-transform: translateX(-2000px); - } - - 100% { - opacity: 1; - -webkit-transform: translateX(0); - } -} -@-moz-keyframes fadeInLeftBig { - 0% { - opacity: 0; - -moz-transform: translateX(-2000px); - } - - 100% { - opacity: 1; - -moz-transform: translateX(0); - } -} -@-o-keyframes fadeInLeftBig { - 0% { - opacity: 0; - -o-transform: translateX(-2000px); - } - - 100% { - opacity: 1; - -o-transform: translateX(0); - } -} -@keyframes fadeInLeftBig { - 0% { - opacity: 0; - transform: translateX(-2000px); - } - - 100% { - opacity: 1; - transform: translateX(0); - } -} - -.fadeInLeftBig { - -webkit-animation-name: fadeInLeftBig; - -moz-animation-name: fadeInLeftBig; - -o-animation-name: fadeInLeftBig; - animation-name: fadeInLeftBig; -} -@-webkit-keyframes fadeInRightBig { - 0% { - opacity: 0; - -webkit-transform: translateX(2000px); - } - - 100% { - opacity: 1; - -webkit-transform: translateX(0); - } -} - -@-moz-keyframes fadeInRightBig { - 0% { - opacity: 0; - -moz-transform: translateX(2000px); - } - - 100% { - opacity: 1; - -moz-transform: translateX(0); - } -} - -@-o-keyframes fadeInRightBig { - 0% { - opacity: 0; - -o-transform: translateX(2000px); - } - - 100% { - opacity: 1; - -o-transform: translateX(0); - } -} - -@keyframes fadeInRightBig { - 0% { - opacity: 0; - transform: translateX(2000px); - } - - 100% { - opacity: 1; - transform: translateX(0); - } -} - -.fadeInRightBig { - -webkit-animation-name: fadeInRightBig; - -moz-animation-name: fadeInRightBig; - -o-animation-name: fadeInRightBig; - animation-name: fadeInRightBig; -} -@-webkit-keyframes fadeOut { - 0% {opacity: 1;} - 100% {opacity: 0;} -} - -@-moz-keyframes fadeOut { - 0% {opacity: 1;} - 100% {opacity: 0;} -} - -@-o-keyframes fadeOut { - 0% {opacity: 1;} - 100% {opacity: 0;} -} - -@keyframes fadeOut { - 0% {opacity: 1;} - 100% {opacity: 0;} -} - -.fadeOut { - -webkit-animation-name: fadeOut; - -moz-animation-name: fadeOut; - -o-animation-name: fadeOut; - animation-name: fadeOut; -} -@-webkit-keyframes fadeOutUp { - 0% { - opacity: 1; - -webkit-transform: translateY(0); - } - - 100% { - opacity: 0; - -webkit-transform: translateY(-20px); - } -} -@-moz-keyframes fadeOutUp { - 0% { - opacity: 1; - -moz-transform: translateY(0); - } - - 100% { - opacity: 0; - -moz-transform: translateY(-20px); - } -} -@-o-keyframes fadeOutUp { - 0% { - opacity: 1; - -o-transform: translateY(0); - } - - 100% { - opacity: 0; - -o-transform: translateY(-20px); - } -} -@keyframes fadeOutUp { - 0% { - opacity: 1; - transform: translateY(0); - } - - 100% { - opacity: 0; - transform: translateY(-20px); - } -} - -.fadeOutUp { - -webkit-animation-name: fadeOutUp; - -moz-animation-name: fadeOutUp; - -o-animation-name: fadeOutUp; - animation-name: fadeOutUp; -} -@-webkit-keyframes fadeOutDown { - 0% { - opacity: 1; - -webkit-transform: translateY(0); - } - - 100% { - opacity: 0; - -webkit-transform: translateY(20px); - } -} - -@-moz-keyframes fadeOutDown { - 0% { - opacity: 1; - -moz-transform: translateY(0); - } - - 100% { - opacity: 0; - -moz-transform: translateY(20px); - } -} - -@-o-keyframes fadeOutDown { - 0% { - opacity: 1; - -o-transform: translateY(0); - } - - 100% { - opacity: 0; - -o-transform: translateY(20px); - } -} - -@keyframes fadeOutDown { - 0% { - opacity: 1; - transform: translateY(0); - } - - 100% { - opacity: 0; - transform: translateY(20px); - } -} - -.fadeOutDown { - -webkit-animation-name: fadeOutDown; - -moz-animation-name: fadeOutDown; - -o-animation-name: fadeOutDown; - animation-name: fadeOutDown; -} -@-webkit-keyframes fadeOutLeft { - 0% { - opacity: 1; - -webkit-transform: translateX(0); - } - - 100% { - opacity: 0; - -webkit-transform: translateX(-20px); - } -} - -@-moz-keyframes fadeOutLeft { - 0% { - opacity: 1; - -moz-transform: translateX(0); - } - - 100% { - opacity: 0; - -moz-transform: translateX(-20px); - } -} - -@-o-keyframes fadeOutLeft { - 0% { - opacity: 1; - -o-transform: translateX(0); - } - - 100% { - opacity: 0; - -o-transform: translateX(-20px); - } -} - -@keyframes fadeOutLeft { - 0% { - opacity: 1; - transform: translateX(0); - } - - 100% { - opacity: 0; - transform: translateX(-20px); - } -} - -.fadeOutLeft { - -webkit-animation-name: fadeOutLeft; - -moz-animation-name: fadeOutLeft; - -o-animation-name: fadeOutLeft; - animation-name: fadeOutLeft; -} -@-webkit-keyframes fadeOutRight { - 0% { - opacity: 1; - -webkit-transform: translateX(0); - } - - 100% { - opacity: 0; - -webkit-transform: translateX(20px); - } -} - -@-moz-keyframes fadeOutRight { - 0% { - opacity: 1; - -moz-transform: translateX(0); - } - - 100% { - opacity: 0; - -moz-transform: translateX(20px); - } -} - -@-o-keyframes fadeOutRight { - 0% { - opacity: 1; - -o-transform: translateX(0); - } - - 100% { - opacity: 0; - -o-transform: translateX(20px); - } -} - -@keyframes fadeOutRight { - 0% { - opacity: 1; - transform: translateX(0); - } - - 100% { - opacity: 0; - transform: translateX(20px); - } -} - -.fadeOutRight { - -webkit-animation-name: fadeOutRight; - -moz-animation-name: fadeOutRight; - -o-animation-name: fadeOutRight; - animation-name: fadeOutRight; -} -@-webkit-keyframes fadeOutUpBig { - 0% { - opacity: 1; - -webkit-transform: translateY(0); - } - - 100% { - opacity: 0; - -webkit-transform: translateY(-2000px); - } -} - -@-moz-keyframes fadeOutUpBig { - 0% { - opacity: 1; - -moz-transform: translateY(0); - } - - 100% { - opacity: 0; - -moz-transform: translateY(-2000px); - } -} - -@-o-keyframes fadeOutUpBig { - 0% { - opacity: 1; - -o-transform: translateY(0); - } - - 100% { - opacity: 0; - -o-transform: translateY(-2000px); - } -} - -@keyframes fadeOutUpBig { - 0% { - opacity: 1; - transform: translateY(0); - } - - 100% { - opacity: 0; - transform: translateY(-2000px); - } -} - -.fadeOutUpBig { - -webkit-animation-name: fadeOutUpBig; - -moz-animation-name: fadeOutUpBig; - -o-animation-name: fadeOutUpBig; - animation-name: fadeOutUpBig; -} -@-webkit-keyframes fadeOutDownBig { - 0% { - opacity: 1; - -webkit-transform: translateY(0); - } - - 100% { - opacity: 0; - -webkit-transform: translateY(2000px); - } -} - -@-moz-keyframes fadeOutDownBig { - 0% { - opacity: 1; - -moz-transform: translateY(0); - } - - 100% { - opacity: 0; - -moz-transform: translateY(2000px); - } -} - -@-o-keyframes fadeOutDownBig { - 0% { - opacity: 1; - -o-transform: translateY(0); - } - - 100% { - opacity: 0; - -o-transform: translateY(2000px); - } -} - -@keyframes fadeOutDownBig { - 0% { - opacity: 1; - transform: translateY(0); - } - - 100% { - opacity: 0; - transform: translateY(2000px); - } -} - -.fadeOutDownBig { - -webkit-animation-name: fadeOutDownBig; - -moz-animation-name: fadeOutDownBig; - -o-animation-name: fadeOutDownBig; - animation-name: fadeOutDownBig; -} -@-webkit-keyframes fadeOutLeftBig { - 0% { - opacity: 1; - -webkit-transform: translateX(0); - } - - 100% { - opacity: 0; - -webkit-transform: translateX(-2000px); - } -} - -@-moz-keyframes fadeOutLeftBig { - 0% { - opacity: 1; - -moz-transform: translateX(0); - } - - 100% { - opacity: 0; - -moz-transform: translateX(-2000px); - } -} - -@-o-keyframes fadeOutLeftBig { - 0% { - opacity: 1; - -o-transform: translateX(0); - } - - 100% { - opacity: 0; - -o-transform: translateX(-2000px); - } -} - -@keyframes fadeOutLeftBig { - 0% { - opacity: 1; - transform: translateX(0); - } - - 100% { - opacity: 0; - transform: translateX(-2000px); - } -} - -.fadeOutLeftBig { - -webkit-animation-name: fadeOutLeftBig; - -moz-animation-name: fadeOutLeftBig; - -o-animation-name: fadeOutLeftBig; - animation-name: fadeOutLeftBig; -} -@-webkit-keyframes fadeOutRightBig { - 0% { - opacity: 1; - -webkit-transform: translateX(0); - } - - 100% { - opacity: 0; - -webkit-transform: translateX(2000px); - } -} -@-moz-keyframes fadeOutRightBig { - 0% { - opacity: 1; - -moz-transform: translateX(0); - } - - 100% { - opacity: 0; - -moz-transform: translateX(2000px); - } -} -@-o-keyframes fadeOutRightBig { - 0% { - opacity: 1; - -o-transform: translateX(0); - } - - 100% { - opacity: 0; - -o-transform: translateX(2000px); - } -} -@keyframes fadeOutRightBig { - 0% { - opacity: 1; - transform: translateX(0); - } - - 100% { - opacity: 0; - transform: translateX(2000px); - } -} - -.fadeOutRightBig { - -webkit-animation-name: fadeOutRightBig; - -moz-animation-name: fadeOutRightBig; - -o-animation-name: fadeOutRightBig; - animation-name: fadeOutRightBig; -} -@-webkit-keyframes bounceIn { - 0% { - opacity: 0; - -webkit-transform: scale(.3); - } - - 50% { - opacity: 1; - -webkit-transform: scale(1.05); - } - - 70% { - -webkit-transform: scale(.9); - } - - 100% { - -webkit-transform: scale(1); - } -} - -@-moz-keyframes bounceIn { - 0% { - opacity: 0; - -moz-transform: scale(.3); - } - - 50% { - opacity: 1; - -moz-transform: scale(1.05); - } - - 70% { - -moz-transform: scale(.9); - } - - 100% { - -moz-transform: scale(1); - } -} - -@-o-keyframes bounceIn { - 0% { - opacity: 0; - -o-transform: scale(.3); - } - - 50% { - opacity: 1; - -o-transform: scale(1.05); - } - - 70% { - -o-transform: scale(.9); - } - - 100% { - -o-transform: scale(1); - } -} - -@keyframes bounceIn { - 0% { - opacity: 0; - transform: scale(.3); - } - - 50% { - opacity: 1; - transform: scale(1.05); - } - - 70% { - transform: scale(.9); - } - - 100% { - transform: scale(1); - } -} - -.bounceIn { - -webkit-animation-name: bounceIn; - -moz-animation-name: bounceIn; - -o-animation-name: bounceIn; - animation-name: bounceIn; -} -@-webkit-keyframes bounceInUp { - 0% { - opacity: 0; - -webkit-transform: translateY(2000px); - } - - 60% { - opacity: 1; - -webkit-transform: translateY(-30px); - } - - 80% { - -webkit-transform: translateY(10px); - } - - 100% { - -webkit-transform: translateY(0); - } -} -@-moz-keyframes bounceInUp { - 0% { - opacity: 0; - -moz-transform: translateY(2000px); - } - - 60% { - opacity: 1; - -moz-transform: translateY(-30px); - } - - 80% { - -moz-transform: translateY(10px); - } - - 100% { - -moz-transform: translateY(0); - } -} - -@-o-keyframes bounceInUp { - 0% { - opacity: 0; - -o-transform: translateY(2000px); - } - - 60% { - opacity: 1; - -o-transform: translateY(-30px); - } - - 80% { - -o-transform: translateY(10px); - } - - 100% { - -o-transform: translateY(0); - } -} - -@keyframes bounceInUp { - 0% { - opacity: 0; - transform: translateY(2000px); - } - - 60% { - opacity: 1; - transform: translateY(-30px); - } - - 80% { - transform: translateY(10px); - } - - 100% { - transform: translateY(0); - } -} - -.bounceInUp { - -webkit-animation-name: bounceInUp; - -moz-animation-name: bounceInUp; - -o-animation-name: bounceInUp; - animation-name: bounceInUp; -} -@-webkit-keyframes bounceInDown { - 0% { - opacity: 0; - -webkit-transform: translateY(-2000px); - } - - 60% { - opacity: 1; - -webkit-transform: translateY(30px); - } - - 80% { - -webkit-transform: translateY(-10px); - } - - 100% { - -webkit-transform: translateY(0); - } -} - -@-moz-keyframes bounceInDown { - 0% { - opacity: 0; - -moz-transform: translateY(-2000px); - } - - 60% { - opacity: 1; - -moz-transform: translateY(30px); - } - - 80% { - -moz-transform: translateY(-10px); - } - - 100% { - -moz-transform: translateY(0); - } -} - -@-o-keyframes bounceInDown { - 0% { - opacity: 0; - -o-transform: translateY(-2000px); - } - - 60% { - opacity: 1; - -o-transform: translateY(30px); - } - - 80% { - -o-transform: translateY(-10px); - } - - 100% { - -o-transform: translateY(0); - } -} - -@keyframes bounceInDown { - 0% { - opacity: 0; - transform: translateY(-2000px); - } - - 60% { - opacity: 1; - transform: translateY(30px); - } - - 80% { - transform: translateY(-10px); - } - - 100% { - transform: translateY(0); - } -} - -.bounceInDown { - -webkit-animation-name: bounceInDown; - -moz-animation-name: bounceInDown; - -o-animation-name: bounceInDown; - animation-name: bounceInDown; -} -@-webkit-keyframes bounceInLeft { - 0% { - opacity: 0; - -webkit-transform: translateX(-2000px); - } - - 60% { - opacity: 1; - -webkit-transform: translateX(30px); - } - - 80% { - -webkit-transform: translateX(-10px); - } - - 100% { - -webkit-transform: translateX(0); - } -} - -@-moz-keyframes bounceInLeft { - 0% { - opacity: 0; - -moz-transform: translateX(-2000px); - } - - 60% { - opacity: 1; - -moz-transform: translateX(30px); - } - - 80% { - -moz-transform: translateX(-10px); - } - - 100% { - -moz-transform: translateX(0); - } -} - -@-o-keyframes bounceInLeft { - 0% { - opacity: 0; - -o-transform: translateX(-2000px); - } - - 60% { - opacity: 1; - -o-transform: translateX(30px); - } - - 80% { - -o-transform: translateX(-10px); - } - - 100% { - -o-transform: translateX(0); - } -} - -@keyframes bounceInLeft { - 0% { - opacity: 0; - transform: translateX(-2000px); - } - - 60% { - opacity: 1; - transform: translateX(30px); - } - - 80% { - transform: translateX(-10px); - } - - 100% { - transform: translateX(0); - } -} - -.bounceInLeft { - -webkit-animation-name: bounceInLeft; - -moz-animation-name: bounceInLeft; - -o-animation-name: bounceInLeft; - animation-name: bounceInLeft; -} -@-webkit-keyframes bounceInRight { - 0% { - opacity: 0; - -webkit-transform: translateX(2000px); - } - - 60% { - opacity: 1; - -webkit-transform: translateX(-30px); - } - - 80% { - -webkit-transform: translateX(10px); - } - - 100% { - -webkit-transform: translateX(0); - } -} - -@-moz-keyframes bounceInRight { - 0% { - opacity: 0; - -moz-transform: translateX(2000px); - } - - 60% { - opacity: 1; - -moz-transform: translateX(-30px); - } - - 80% { - -moz-transform: translateX(10px); - } - - 100% { - -moz-transform: translateX(0); - } -} - -@-o-keyframes bounceInRight { - 0% { - opacity: 0; - -o-transform: translateX(2000px); - } - - 60% { - opacity: 1; - -o-transform: translateX(-30px); - } - - 80% { - -o-transform: translateX(10px); - } - - 100% { - -o-transform: translateX(0); - } -} - -@keyframes bounceInRight { - 0% { - opacity: 0; - transform: translateX(2000px); - } - - 60% { - opacity: 1; - transform: translateX(-30px); - } - - 80% { - transform: translateX(10px); - } - - 100% { - transform: translateX(0); - } -} - -.bounceInRight { - -webkit-animation-name: bounceInRight; - -moz-animation-name: bounceInRight; - -o-animation-name: bounceInRight; - animation-name: bounceInRight; -} -@-webkit-keyframes bounceOut { - 0% { - -webkit-transform: scale(1); - } - - 25% { - -webkit-transform: scale(.95); - } - - 50% { - opacity: 1; - -webkit-transform: scale(1.1); - } - - 100% { - opacity: 0; - -webkit-transform: scale(.3); - } -} - -@-moz-keyframes bounceOut { - 0% { - -moz-transform: scale(1); - } - - 25% { - -moz-transform: scale(.95); - } - - 50% { - opacity: 1; - -moz-transform: scale(1.1); - } - - 100% { - opacity: 0; - -moz-transform: scale(.3); - } -} - -@-o-keyframes bounceOut { - 0% { - -o-transform: scale(1); - } - - 25% { - -o-transform: scale(.95); - } - - 50% { - opacity: 1; - -o-transform: scale(1.1); - } - - 100% { - opacity: 0; - -o-transform: scale(.3); - } -} - -@keyframes bounceOut { - 0% { - transform: scale(1); - } - - 25% { - transform: scale(.95); - } - - 50% { - opacity: 1; - transform: scale(1.1); - } - - 100% { - opacity: 0; - transform: scale(.3); - } -} - -.bounceOut { - -webkit-animation-name: bounceOut; - -moz-animation-name: bounceOut; - -o-animation-name: bounceOut; - animation-name: bounceOut; -} -@-webkit-keyframes bounceOutUp { - 0% { - -webkit-transform: translateY(0); - } - - 20% { - opacity: 1; - -webkit-transform: translateY(20px); - } - - 100% { - opacity: 0; - -webkit-transform: translateY(-2000px); - } -} - -@-moz-keyframes bounceOutUp { - 0% { - -moz-transform: translateY(0); - } - - 20% { - opacity: 1; - -moz-transform: translateY(20px); - } - - 100% { - opacity: 0; - -moz-transform: translateY(-2000px); - } -} - -@-o-keyframes bounceOutUp { - 0% { - -o-transform: translateY(0); - } - - 20% { - opacity: 1; - -o-transform: translateY(20px); - } - - 100% { - opacity: 0; - -o-transform: translateY(-2000px); - } -} - -@keyframes bounceOutUp { - 0% { - transform: translateY(0); - } - - 20% { - opacity: 1; - transform: translateY(20px); - } - - 100% { - opacity: 0; - transform: translateY(-2000px); - } -} - -.bounceOutUp { - -webkit-animation-name: bounceOutUp; - -moz-animation-name: bounceOutUp; - -o-animation-name: bounceOutUp; - animation-name: bounceOutUp; -} -@-webkit-keyframes bounceOutDown { - 0% { - -webkit-transform: translateY(0); - } - - 20% { - opacity: 1; - -webkit-transform: translateY(-20px); - } - - 100% { - opacity: 0; - -webkit-transform: translateY(2000px); - } -} - -@-moz-keyframes bounceOutDown { - 0% { - -moz-transform: translateY(0); - } - - 20% { - opacity: 1; - -moz-transform: translateY(-20px); - } - - 100% { - opacity: 0; - -moz-transform: translateY(2000px); - } -} - -@-o-keyframes bounceOutDown { - 0% { - -o-transform: translateY(0); - } - - 20% { - opacity: 1; - -o-transform: translateY(-20px); - } - - 100% { - opacity: 0; - -o-transform: translateY(2000px); - } -} - -@keyframes bounceOutDown { - 0% { - transform: translateY(0); - } - - 20% { - opacity: 1; - transform: translateY(-20px); - } - - 100% { - opacity: 0; - transform: translateY(2000px); - } -} - -.bounceOutDown { - -webkit-animation-name: bounceOutDown; - -moz-animation-name: bounceOutDown; - -o-animation-name: bounceOutDown; - animation-name: bounceOutDown; -} -@-webkit-keyframes bounceOutLeft { - 0% { - -webkit-transform: translateX(0); - } - - 20% { - opacity: 1; - -webkit-transform: translateX(20px); - } - - 100% { - opacity: 0; - -webkit-transform: translateX(-2000px); - } -} - -@-moz-keyframes bounceOutLeft { - 0% { - -moz-transform: translateX(0); - } - - 20% { - opacity: 1; - -moz-transform: translateX(20px); - } - - 100% { - opacity: 0; - -moz-transform: translateX(-2000px); - } -} - -@-o-keyframes bounceOutLeft { - 0% { - -o-transform: translateX(0); - } - - 20% { - opacity: 1; - -o-transform: translateX(20px); - } - - 100% { - opacity: 0; - -o-transform: translateX(-2000px); - } -} - -@keyframes bounceOutLeft { - 0% { - transform: translateX(0); - } - - 20% { - opacity: 1; - transform: translateX(20px); - } - - 100% { - opacity: 0; - transform: translateX(-2000px); - } -} - -.bounceOutLeft { - -webkit-animation-name: bounceOutLeft; - -moz-animation-name: bounceOutLeft; - -o-animation-name: bounceOutLeft; - animation-name: bounceOutLeft; -} -@-webkit-keyframes bounceOutRight { - 0% { - -webkit-transform: translateX(0); - } - - 20% { - opacity: 1; - -webkit-transform: translateX(-20px); - } - - 100% { - opacity: 0; - -webkit-transform: translateX(2000px); - } -} - -@-moz-keyframes bounceOutRight { - 0% { - -moz-transform: translateX(0); - } - - 20% { - opacity: 1; - -moz-transform: translateX(-20px); - } - - 100% { - opacity: 0; - -moz-transform: translateX(2000px); - } -} - -@-o-keyframes bounceOutRight { - 0% { - -o-transform: translateX(0); - } - - 20% { - opacity: 1; - -o-transform: translateX(-20px); - } - - 100% { - opacity: 0; - -o-transform: translateX(2000px); - } -} - -@keyframes bounceOutRight { - 0% { - transform: translateX(0); - } - - 20% { - opacity: 1; - transform: translateX(-20px); - } - - 100% { - opacity: 0; - transform: translateX(2000px); - } -} - -.bounceOutRight { - -webkit-animation-name: bounceOutRight; - -moz-animation-name: bounceOutRight; - -o-animation-name: bounceOutRight; - animation-name: bounceOutRight; -} -@-webkit-keyframes rotateIn { - 0% { - -webkit-transform-origin: center center; - -webkit-transform: rotate(-200deg); - opacity: 0; - } - - 100% { - -webkit-transform-origin: center center; - -webkit-transform: rotate(0); - opacity: 1; - } -} -@-moz-keyframes rotateIn { - 0% { - -moz-transform-origin: center center; - -moz-transform: rotate(-200deg); - opacity: 0; - } - - 100% { - -moz-transform-origin: center center; - -moz-transform: rotate(0); - opacity: 1; - } -} -@-o-keyframes rotateIn { - 0% { - -o-transform-origin: center center; - -o-transform: rotate(-200deg); - opacity: 0; - } - - 100% { - -o-transform-origin: center center; - -o-transform: rotate(0); - opacity: 1; - } -} -@keyframes rotateIn { - 0% { - transform-origin: center center; - transform: rotate(-200deg); - opacity: 0; - } - - 100% { - transform-origin: center center; - transform: rotate(0); - opacity: 1; - } -} - -.rotateIn { - -webkit-animation-name: rotateIn; - -moz-animation-name: rotateIn; - -o-animation-name: rotateIn; - animation-name: rotateIn; -} -@-webkit-keyframes rotateInUpLeft { - 0% { - -webkit-transform-origin: left bottom; - -webkit-transform: rotate(90deg); - opacity: 0; - } - - 100% { - -webkit-transform-origin: left bottom; - -webkit-transform: rotate(0); - opacity: 1; - } -} - -@-moz-keyframes rotateInUpLeft { - 0% { - -moz-transform-origin: left bottom; - -moz-transform: rotate(90deg); - opacity: 0; - } - - 100% { - -moz-transform-origin: left bottom; - -moz-transform: rotate(0); - opacity: 1; - } -} - -@-o-keyframes rotateInUpLeft { - 0% { - -o-transform-origin: left bottom; - -o-transform: rotate(90deg); - opacity: 0; - } - - 100% { - -o-transform-origin: left bottom; - -o-transform: rotate(0); - opacity: 1; - } -} - -@keyframes rotateInUpLeft { - 0% { - transform-origin: left bottom; - transform: rotate(90deg); - opacity: 0; - } - - 100% { - transform-origin: left bottom; - transform: rotate(0); - opacity: 1; - } -} - -.rotateInUpLeft { - -webkit-animation-name: rotateInUpLeft; - -moz-animation-name: rotateInUpLeft; - -o-animation-name: rotateInUpLeft; - animation-name: rotateInUpLeft; -} -@-webkit-keyframes rotateInDownLeft { - 0% { - -webkit-transform-origin: left bottom; - -webkit-transform: rotate(-90deg); - opacity: 0; - } - - 100% { - -webkit-transform-origin: left bottom; - -webkit-transform: rotate(0); - opacity: 1; - } -} - -@-moz-keyframes rotateInDownLeft { - 0% { - -moz-transform-origin: left bottom; - -moz-transform: rotate(-90deg); - opacity: 0; - } - - 100% { - -moz-transform-origin: left bottom; - -moz-transform: rotate(0); - opacity: 1; - } -} - -@-o-keyframes rotateInDownLeft { - 0% { - -o-transform-origin: left bottom; - -o-transform: rotate(-90deg); - opacity: 0; - } - - 100% { - -o-transform-origin: left bottom; - -o-transform: rotate(0); - opacity: 1; - } -} - -@keyframes rotateInDownLeft { - 0% { - transform-origin: left bottom; - transform: rotate(-90deg); - opacity: 0; - } - - 100% { - transform-origin: left bottom; - transform: rotate(0); - opacity: 1; - } -} - -.rotateInDownLeft { - -webkit-animation-name: rotateInDownLeft; - -moz-animation-name: rotateInDownLeft; - -o-animation-name: rotateInDownLeft; - animation-name: rotateInDownLeft; -} -@-webkit-keyframes rotateInUpRight { - 0% { - -webkit-transform-origin: right bottom; - -webkit-transform: rotate(-90deg); - opacity: 0; - } - - 100% { - -webkit-transform-origin: right bottom; - -webkit-transform: rotate(0); - opacity: 1; - } -} - -@-moz-keyframes rotateInUpRight { - 0% { - -moz-transform-origin: right bottom; - -moz-transform: rotate(-90deg); - opacity: 0; - } - - 100% { - -moz-transform-origin: right bottom; - -moz-transform: rotate(0); - opacity: 1; - } -} - -@-o-keyframes rotateInUpRight { - 0% { - -o-transform-origin: right bottom; - -o-transform: rotate(-90deg); - opacity: 0; - } - - 100% { - -o-transform-origin: right bottom; - -o-transform: rotate(0); - opacity: 1; - } -} - -@keyframes rotateInUpRight { - 0% { - transform-origin: right bottom; - transform: rotate(-90deg); - opacity: 0; - } - - 100% { - transform-origin: right bottom; - transform: rotate(0); - opacity: 1; - } -} - -.rotateInUpRight { - -webkit-animation-name: rotateInUpRight; - -moz-animation-name: rotateInUpRight; - -o-animation-name: rotateInUpRight; - animation-name: rotateInUpRight; -} -@-webkit-keyframes rotateInDownRight { - 0% { - -webkit-transform-origin: right bottom; - -webkit-transform: rotate(90deg); - opacity: 0; - } - - 100% { - -webkit-transform-origin: right bottom; - -webkit-transform: rotate(0); - opacity: 1; - } -} - -@-moz-keyframes rotateInDownRight { - 0% { - -moz-transform-origin: right bottom; - -moz-transform: rotate(90deg); - opacity: 0; - } - - 100% { - -moz-transform-origin: right bottom; - -moz-transform: rotate(0); - opacity: 1; - } -} - -@-o-keyframes rotateInDownRight { - 0% { - -o-transform-origin: right bottom; - -o-transform: rotate(90deg); - opacity: 0; - } - - 100% { - -o-transform-origin: right bottom; - -o-transform: rotate(0); - opacity: 1; - } -} - -@keyframes rotateInDownRight { - 0% { - transform-origin: right bottom; - transform: rotate(90deg); - opacity: 0; - } - - 100% { - transform-origin: right bottom; - transform: rotate(0); - opacity: 1; - } -} - -.rotateInDownRight { - -webkit-animation-name: rotateInDownRight; - -moz-animation-name: rotateInDownRight; - -o-animation-name: rotateInDownRight; - animation-name: rotateInDownRight; -} -@-webkit-keyframes rotateOut { - 0% { - -webkit-transform-origin: center center; - -webkit-transform: rotate(0); - opacity: 1; - } - - 100% { - -webkit-transform-origin: center center; - -webkit-transform: rotate(200deg); - opacity: 0; - } -} - -@-moz-keyframes rotateOut { - 0% { - -moz-transform-origin: center center; - -moz-transform: rotate(0); - opacity: 1; - } - - 100% { - -moz-transform-origin: center center; - -moz-transform: rotate(200deg); - opacity: 0; - } -} - -@-o-keyframes rotateOut { - 0% { - -o-transform-origin: center center; - -o-transform: rotate(0); - opacity: 1; - } - - 100% { - -o-transform-origin: center center; - -o-transform: rotate(200deg); - opacity: 0; - } -} - -@keyframes rotateOut { - 0% { - transform-origin: center center; - transform: rotate(0); - opacity: 1; - } - - 100% { - transform-origin: center center; - transform: rotate(200deg); - opacity: 0; - } -} - -.rotateOut { - -webkit-animation-name: rotateOut; - -moz-animation-name: rotateOut; - -o-animation-name: rotateOut; - animation-name: rotateOut; -} -@-webkit-keyframes rotateOutUpLeft { - 0% { - -webkit-transform-origin: left bottom; - -webkit-transform: rotate(0); - opacity: 1; - } - - 100% { - -webkit-transform-origin: left bottom; - -webkit-transform: rotate(-90deg); - opacity: 0; - } -} - -@-moz-keyframes rotateOutUpLeft { - 0% { - -moz-transform-origin: left bottom; - -moz-transform: rotate(0); - opacity: 1; - } - - 100% { - -moz-transform-origin: left bottom; - -moz-transform: rotate(-90deg); - opacity: 0; - } -} - -@-o-keyframes rotateOutUpLeft { - 0% { - -o-transform-origin: left bottom; - -o-transform: rotate(0); - opacity: 1; - } - - 100% { - -o-transform-origin: left bottom; - -o-transform: rotate(-90deg); - opacity: 0; - } -} - -@keyframes rotateOutUpLeft { - 0% { - transform-origin: left bottom; - transform: rotate(0); - opacity: 1; - } - - 100% { - transform-origin: left bottom; - transform: rotate(-90deg); - opacity: 0; - } -} - -.rotateOutUpLeft { - -webkit-animation-name: rotateOutUpLeft; - -moz-animation-name: rotateOutUpLeft; - -o-animation-name: rotateOutUpLeft; - animation-name: rotateOutUpLeft; -} -@-webkit-keyframes rotateOutDownLeft { - 0% { - -webkit-transform-origin: left bottom; - -webkit-transform: rotate(0); - opacity: 1; - } - - 100% { - -webkit-transform-origin: left bottom; - -webkit-transform: rotate(90deg); - opacity: 0; - } -} - -@-moz-keyframes rotateOutDownLeft { - 0% { - -moz-transform-origin: left bottom; - -moz-transform: rotate(0); - opacity: 1; - } - - 100% { - -moz-transform-origin: left bottom; - -moz-transform: rotate(90deg); - opacity: 0; - } -} - -@-o-keyframes rotateOutDownLeft { - 0% { - -o-transform-origin: left bottom; - -o-transform: rotate(0); - opacity: 1; - } - - 100% { - -o-transform-origin: left bottom; - -o-transform: rotate(90deg); - opacity: 0; - } -} - -@keyframes rotateOutDownLeft { - 0% { - transform-origin: left bottom; - transform: rotate(0); - opacity: 1; - } - - 100% { - transform-origin: left bottom; - transform: rotate(90deg); - opacity: 0; - } -} - -.rotateOutDownLeft { - -webkit-animation-name: rotateOutDownLeft; - -moz-animation-name: rotateOutDownLeft; - -o-animation-name: rotateOutDownLeft; - animation-name: rotateOutDownLeft; -} -@-webkit-keyframes rotateOutUpRight { - 0% { - -webkit-transform-origin: right bottom; - -webkit-transform: rotate(0); - opacity: 1; - } - - 100% { - -webkit-transform-origin: right bottom; - -webkit-transform: rotate(90deg); - opacity: 0; - } -} - -@-moz-keyframes rotateOutUpRight { - 0% { - -moz-transform-origin: right bottom; - -moz-transform: rotate(0); - opacity: 1; - } - - 100% { - -moz-transform-origin: right bottom; - -moz-transform: rotate(90deg); - opacity: 0; - } -} - -@-o-keyframes rotateOutUpRight { - 0% { - -o-transform-origin: right bottom; - -o-transform: rotate(0); - opacity: 1; - } - - 100% { - -o-transform-origin: right bottom; - -o-transform: rotate(90deg); - opacity: 0; - } -} - -@keyframes rotateOutUpRight { - 0% { - transform-origin: right bottom; - transform: rotate(0); - opacity: 1; - } - - 100% { - transform-origin: right bottom; - transform: rotate(90deg); - opacity: 0; - } -} - -.rotateOutUpRight { - -webkit-animation-name: rotateOutUpRight; - -moz-animation-name: rotateOutUpRight; - -o-animation-name: rotateOutUpRight; - animation-name: rotateOutUpRight; -} -@-webkit-keyframes rotateOutDownRight { - 0% { - -webkit-transform-origin: right bottom; - -webkit-transform: rotate(0); - opacity: 1; - } - - 100% { - -webkit-transform-origin: right bottom; - -webkit-transform: rotate(-90deg); - opacity: 0; - } -} - -@-moz-keyframes rotateOutDownRight { - 0% { - -moz-transform-origin: right bottom; - -moz-transform: rotate(0); - opacity: 1; - } - - 100% { - -moz-transform-origin: right bottom; - -moz-transform: rotate(-90deg); - opacity: 0; - } -} - -@-o-keyframes rotateOutDownRight { - 0% { - -o-transform-origin: right bottom; - -o-transform: rotate(0); - opacity: 1; - } - - 100% { - -o-transform-origin: right bottom; - -o-transform: rotate(-90deg); - opacity: 0; - } -} - -@keyframes rotateOutDownRight { - 0% { - transform-origin: right bottom; - transform: rotate(0); - opacity: 1; - } - - 100% { - transform-origin: right bottom; - transform: rotate(-90deg); - opacity: 0; - } -} - -.rotateOutDownRight { - -webkit-animation-name: rotateOutDownRight; - -moz-animation-name: rotateOutDownRight; - -o-animation-name: rotateOutDownRight; - animation-name: rotateOutDownRight; -} -@-webkit-keyframes hinge { - 0% { -webkit-transform: rotate(0); -webkit-transform-origin: top left; -webkit-animation-timing-function: ease-in-out; } - 20%, 60% { -webkit-transform: rotate(80deg); -webkit-transform-origin: top left; -webkit-animation-timing-function: ease-in-out; } - 40% { -webkit-transform: rotate(60deg); -webkit-transform-origin: top left; -webkit-animation-timing-function: ease-in-out; } - 80% { -webkit-transform: rotate(60deg) translateY(0); opacity: 1; -webkit-transform-origin: top left; -webkit-animation-timing-function: ease-in-out; } - 100% { -webkit-transform: translateY(700px); opacity: 0; } -} - -@-moz-keyframes hinge { - 0% { -moz-transform: rotate(0); -moz-transform-origin: top left; -moz-animation-timing-function: ease-in-out; } - 20%, 60% { -moz-transform: rotate(80deg); -moz-transform-origin: top left; -moz-animation-timing-function: ease-in-out; } - 40% { -moz-transform: rotate(60deg); -moz-transform-origin: top left; -moz-animation-timing-function: ease-in-out; } - 80% { -moz-transform: rotate(60deg) translateY(0); opacity: 1; -moz-transform-origin: top left; -moz-animation-timing-function: ease-in-out; } - 100% { -moz-transform: translateY(700px); opacity: 0; } -} - -@-o-keyframes hinge { - 0% { -o-transform: rotate(0); -o-transform-origin: top left; -o-animation-timing-function: ease-in-out; } - 20%, 60% { -o-transform: rotate(80deg); -o-transform-origin: top left; -o-animation-timing-function: ease-in-out; } - 40% { -o-transform: rotate(60deg); -o-transform-origin: top left; -o-animation-timing-function: ease-in-out; } - 80% { -o-transform: rotate(60deg) translateY(0); opacity: 1; -o-transform-origin: top left; -o-animation-timing-function: ease-in-out; } - 100% { -o-transform: translateY(700px); opacity: 0; } -} - -@keyframes hinge { - 0% { transform: rotate(0); transform-origin: top left; animation-timing-function: ease-in-out; } - 20%, 60% { transform: rotate(80deg); transform-origin: top left; animation-timing-function: ease-in-out; } - 40% { transform: rotate(60deg); transform-origin: top left; animation-timing-function: ease-in-out; } - 80% { transform: rotate(60deg) translateY(0); opacity: 1; transform-origin: top left; animation-timing-function: ease-in-out; } - 100% { transform: translateY(700px); opacity: 0; } -} - -.hinge { - -webkit-animation-name: hinge; - -moz-animation-name: hinge; - -o-animation-name: hinge; - animation-name: hinge; -} -/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ - -@-webkit-keyframes rollIn { - 0% { opacity: 0; -webkit-transform: translateX(-100%) rotate(-120deg); } - 100% { opacity: 1; -webkit-transform: translateX(0px) rotate(0deg); } -} - -@-moz-keyframes rollIn { - 0% { opacity: 0; -moz-transform: translateX(-100%) rotate(-120deg); } - 100% { opacity: 1; -moz-transform: translateX(0px) rotate(0deg); } -} - -@-o-keyframes rollIn { - 0% { opacity: 0; -o-transform: translateX(-100%) rotate(-120deg); } - 100% { opacity: 1; -o-transform: translateX(0px) rotate(0deg); } -} - -@keyframes rollIn { - 0% { opacity: 0; transform: translateX(-100%) rotate(-120deg); } - 100% { opacity: 1; transform: translateX(0px) rotate(0deg); } -} - -.rollIn { - -webkit-animation-name: rollIn; - -moz-animation-name: rollIn; - -o-animation-name: rollIn; - animation-name: rollIn; -} -/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ - -@-webkit-keyframes rollOut { - 0% { - opacity: 1; - -webkit-transform: translateX(0px) rotate(0deg); - } - - 100% { - opacity: 0; - -webkit-transform: translateX(100%) rotate(120deg); - } -} - -@-moz-keyframes rollOut { - 0% { - opacity: 1; - -moz-transform: translateX(0px) rotate(0deg); - } - - 100% { - opacity: 0; - -moz-transform: translateX(100%) rotate(120deg); - } -} - -@-o-keyframes rollOut { - 0% { - opacity: 1; - -o-transform: translateX(0px) rotate(0deg); - } - - 100% { - opacity: 0; - -o-transform: translateX(100%) rotate(120deg); - } -} - -@keyframes rollOut { - 0% { - opacity: 1; - transform: translateX(0px) rotate(0deg); - } - - 100% { - opacity: 0; - transform: translateX(100%) rotate(120deg); - } -} - -.rollOut { - -webkit-animation-name: rollOut; - -moz-animation-name: rollOut; - -o-animation-name: rollOut; - animation-name: rollOut; -} - -/* originally authored by Angelo Rohit - https://github.com/angelorohit */ - -@-webkit-keyframes lightSpeedIn { - 0% { -webkit-transform: translateX(100%) skewX(-30deg); opacity: 0; } - 60% { -webkit-transform: translateX(-20%) skewX(30deg); opacity: 1; } - 80% { -webkit-transform: translateX(0%) skewX(-15deg); opacity: 1; } - 100% { -webkit-transform: translateX(0%) skewX(0deg); opacity: 1; } -} - -@-moz-keyframes lightSpeedIn { - 0% { -moz-transform: translateX(100%) skewX(-30deg); opacity: 0; } - 60% { -moz-transform: translateX(-20%) skewX(30deg); opacity: 1; } - 80% { -moz-transform: translateX(0%) skewX(-15deg); opacity: 1; } - 100% { -moz-transform: translateX(0%) skewX(0deg); opacity: 1; } -} - -@-o-keyframes lightSpeedIn { - 0% { -o-transform: translateX(100%) skewX(-30deg); opacity: 0; } - 60% { -o-transform: translateX(-20%) skewX(30deg); opacity: 1; } - 80% { -o-transform: translateX(0%) skewX(-15deg); opacity: 1; } - 100% { -o-transform: translateX(0%) skewX(0deg); opacity: 1; } -} - -@keyframes lightSpeedIn { - 0% { transform: translateX(100%) skewX(-30deg); opacity: 0; } - 60% { transform: translateX(-20%) skewX(30deg); opacity: 1; } - 80% { transform: translateX(0%) skewX(-15deg); opacity: 1; } - 100% { transform: translateX(0%) skewX(0deg); opacity: 1; } -} - -.lightSpeedIn { - -webkit-animation-name: lightSpeedIn; - -moz-animation-name: lightSpeedIn; - -o-animation-name: lightSpeedIn; - animation-name: lightSpeedIn; - - -webkit-animation-timing-function: ease-out; - -moz-animation-timing-function: ease-out; - -o-animation-timing-function: ease-out; - animation-timing-function: ease-out; -} - -.animated.lightSpeedIn { - -webkit-animation-duration: 0.5s; - -moz-animation-duration: 0.5s; - -o-animation-duration: 0.5s; - animation-duration: 0.5s; -} - -/* originally authored by Angelo Rohit - https://github.com/angelorohit */ - -@-webkit-keyframes lightSpeedOut { - 0% { -webkit-transform: translateX(0%) skewX(0deg); opacity: 1; } - 100% { -webkit-transform: translateX(100%) skewX(-30deg); opacity: 0; } -} - -@-moz-keyframes lightSpeedOut { - 0% { -moz-transform: translateX(0%) skewX(0deg); opacity: 1; } - 100% { -moz-transform: translateX(100%) skewX(-30deg); opacity: 0; } -} - -@-o-keyframes lightSpeedOut { - 0% { -o-transform: translateX(0%) skewX(0deg); opacity: 1; } - 100% { -o-transform: translateX(100%) skewX(-30deg); opacity: 0; } -} - -@keyframes lightSpeedOut { - 0% { transform: translateX(0%) skewX(0deg); opacity: 1; } - 100% { transform: translateX(100%) skewX(-30deg); opacity: 0; } -} - -.lightSpeedOut { - -webkit-animation-name: lightSpeedOut; - -moz-animation-name: lightSpeedOut; - -o-animation-name: lightSpeedOut; - animation-name: lightSpeedOut; - - -webkit-animation-timing-function: ease-in; - -moz-animation-timing-function: ease-in; - -o-animation-timing-function: ease-in; - animation-timing-function: ease-in; -} - -.animated.lightSpeedOut { - -webkit-animation-duration: 0.25s; - -moz-animation-duration: 0.25s; - -o-animation-duration: 0.25s; - animation-duration: 0.25s; -} - -/* originally authored by Angelo Rohit - https://github.com/angelorohit */ - -@-webkit-keyframes wiggle { - 0% { -webkit-transform: skewX(9deg); } - 10% { -webkit-transform: skewX(-8deg); } - 20% { -webkit-transform: skewX(7deg); } - 30% { -webkit-transform: skewX(-6deg); } - 40% { -webkit-transform: skewX(5deg); } - 50% { -webkit-transform: skewX(-4deg); } - 60% { -webkit-transform: skewX(3deg); } - 70% { -webkit-transform: skewX(-2deg); } - 80% { -webkit-transform: skewX(1deg); } - 90% { -webkit-transform: skewX(0deg); } - 100% { -webkit-transform: skewX(0deg); } -} - -@-moz-keyframes wiggle { - 0% { -moz-transform: skewX(9deg); } - 10% { -moz-transform: skewX(-8deg); } - 20% { -moz-transform: skewX(7deg); } - 30% { -moz-transform: skewX(-6deg); } - 40% { -moz-transform: skewX(5deg); } - 50% { -moz-transform: skewX(-4deg); } - 60% { -moz-transform: skewX(3deg); } - 70% { -moz-transform: skewX(-2deg); } - 80% { -moz-transform: skewX(1deg); } - 90% { -moz-transform: skewX(0deg); } - 100% { -moz-transform: skewX(0deg); } -} - -@-o-keyframes wiggle { - 0% { -o-transform: skewX(9deg); } - 10% { -o-transform: skewX(-8deg); } - 20% { -o-transform: skewX(7deg); } - 30% { -o-transform: skewX(-6deg); } - 40% { -o-transform: skewX(5deg); } - 50% { -o-transform: skewX(-4deg); } - 60% { -o-transform: skewX(3deg); } - 70% { -o-transform: skewX(-2deg); } - 80% { -o-transform: skewX(1deg); } - 90% { -o-transform: skewX(0deg); } - 100% { -o-transform: skewX(0deg); } -} - -@keyframes wiggle { - 0% { transform: skewX(9deg); } - 10% { transform: skewX(-8deg); } - 20% { transform: skewX(7deg); } - 30% { transform: skewX(-6deg); } - 40% { transform: skewX(5deg); } - 50% { transform: skewX(-4deg); } - 60% { transform: skewX(3deg); } - 70% { transform: skewX(-2deg); } - 80% { transform: skewX(1deg); } - 90% { transform: skewX(0deg); } - 100% { transform: skewX(0deg); } -} - -.wiggle { - -webkit-animation-name: wiggle; - -moz-animation-name: wiggle; - -o-animation-name: wiggle; - animation-name: wiggle; - - -webkit-animation-timing-function: ease-in; - -moz-animation-timing-function: ease-in; - -o-animation-timing-function: ease-in; - animation-timing-function: ease-in; -} - -.animated.wiggle { - -webkit-animation-duration: 0.75s; - -moz-animation-duration: 0.75s; - -o-animation-duration: 0.75s; - animation-duration: 0.75s; -} diff --git a/openo-portal/portal-common/src/main/webapp/common/css/frame-style.css b/openo-portal/portal-common/src/main/webapp/common/css/frame-style.css deleted file mode 100644 index 4470f2be..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/css/frame-style.css +++ /dev/null @@ -1,255 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -#recommend_notice{ - height:30px; - width:100%; - left:0px; - right:0px; - line-height:30px; - text-align:center; - position:absolute; - float:bottom; - bottom:35px; - z-index:2; - cursor:default; -} - -#recommend_notice:hover { - color: #F75000; -} -.menuDivider{ - height:1px; - margin:9px 0; - text-align: center; - overflow:hidden; - background-color:#a6a6a6 !important; -} - -.page-content .page-breadcrumb.breadcrumb { - -webkit-border-radius: 0px; - -moz-border-radius: 0px; - border-radius: 0px; - box-shadow: none; - padding-right: 30px; - padding-left: 8px; - margin-top: 0px !important; - margin-bottom: 10px !important; - border:0px !important; - background-color: #fff; -} -.page-mainIframe{ -border: 0px; -margin: 0px; -padding: 0px; -} - -.zte-navbar-brand { - /*display: inline-block;*/ - padding:0px; - margin-top: -1px; - margin-right: 0px; - width: 225px; - height: 42px; -} - -.zte-navbar-brand img { - margin-left: 10px; - margin-top: 4px; -} - -.zte-navbar-brand.text-logo { - padding-left: 20px; - padding-top: 12px; -} -.zte-brand-text{ - font-size:14px; - font-family:Arial; - color:#ffffff !important; - font-family:"microsoft yahei"; -} -.zte-theme-panel { - width: 45px; - margin-top: -2px; - margin-right: -5px; - z-index: 999; - float: right; - position:relative; -} - -.zte-theme-panel > .toggler { - top:12px; - right:14px; - padding:11px; - cursor:pointer; - position:absolute; - display: block; - background:url(../image/icon-color.png) center no-repeat; -} - -.zte-theme-panel > .toggler:hover { - background-color: #3d3d3d; -} - -.zte-theme-panel > .toggler-close { - display: none; - top:4px; - right:0; - padding:20px; - cursor:pointer; - position:absolute; - background: #3d3d3d url(../image/icon-color-close.png) center no-repeat !important; -} - -.zte-theme-panel > .toggler-close:hover { - background-color:#222 !important; -} - -.zte-theme-panel > .theme-options { - min-width:228px; - top: 44px; - right: 0px; - display:none; - position:absolute; - background:#3d3d3d; -} - -.zte-theme-panel > .theme-options > .theme-option { - color:#cfcfcf; - padding: 15px; - border-top:1px solid #585858; - margin-top: 0px; - margin-bottom: 0px; -} - -.zte-theme-panel > .theme-options > .theme-option.theme-colors { - border-top: 0; -} - -.zte-theme-panel > .theme-options > .theme-option > span { - display: inline-block; - width: 80px; - font-size: 14px; -} - -.zte-theme-panel > .theme-options > .theme-option.theme-colors > span { - display: block; - width: auto; -} - -.zte-theme-panel > .theme-options > .theme-option > select.form-control { - display: inline; - width: 110px !important; -} - -.zte-theme-panel > .theme-options > .theme-option.theme-colors > ul { - list-style:none; - padding: 0; - display: block; - margin-bottom: 1px !important; - margin-top: 10px; -} - -.zte-theme-panel > .theme-options > .theme-option.theme-colors > ul > li { - width:24px; - height:24px; - margin:4 4px; - cursor:pointer; - list-style:none; - float: left; - border:solid 1px #707070; -} - -.zte-theme-panel > .theme-options > .theme-option.theme-colors > ul > li:first-child { - margin-left: 4; -} - -.zte-theme-panel > .theme-options > .theme-option.theme-colors > ul > li:hover, -.zte-theme-panel > .theme-options > .theme-option.theme-colors > ul > li.current { - border:solid 2px #ebebeb; -} - -.zte-theme-panel > .theme-options > .theme-option.theme-colors > ul > li.color-black { - background:#333438; -} -.zte-theme-panel> .theme-options > .theme-option.theme-colors > ul > li.color-ztebluelight { - background:#3366cc; -} -.zte-theme-panel> .theme-options > .theme-option.theme-colors > ul > li.color-ztebluelight2 { - background:#1178ee; -} -.zte-theme-panel> .theme-options > .theme-option.theme-colors > ul > li.color-ztebluelight3 { - background:#067ead; -} -.zte-theme-panel> .theme-options > .theme-option.theme-colors > ul > li.color-ztebluelight4 { - background:#333333; -} -.zte-theme-panel > .theme-options > .theme-option.theme-colors > ul > li.color-zteblue { - background:#1b8fd3; -} -.zte-theme-panel > .theme-options > .theme-option.theme-colors > ul > li.color-grey { - background:#6d6d6d; -} - -.zte-theme-panel > .theme-options > .theme-option.theme-colors > ul > li.color-blue { - background:#124f94; -} - -.zte-theme-panel > .theme-options > .theme-option.theme-colors > ul > li.color-brown { - background:#623f18; -} - -.zte-theme-panel > .theme-options > .theme-option.theme-colors > ul > li.color-purple { - background:#701584; -} - -.zte-theme-panel > .theme-options > .theme-option.theme-colors > ul > li.color-white { - background:#fff; -} -.header.navbar .navbar-nav { - min-width: 210px; -} -.header.navbar .navbar-toggle { - margin: 8px 0px 4px 6px; - padding: 5px 0px 6px 6px; -} - -.nav-tabs li a span.remove{ - color: #f00; - margin-left: 10px; - cursor:hand; -} -.nav-tabs li a span.tabdropremove{ - color: #f00; - margin-right: 10px; - float:right; - cursor:hand; -} -@media (min-width: 768px){ - .navbar-collapse.collapse.hideSideMenuForMainPage { - display: none !important; - } -} -#f_hormenu li.mega-menu-dropdown{ - margin-left:30px; -} -.page-sidebar .sidebar-toggler{ -margin-left:190px; -margin-bottom:5px; -} -.header.navbar .hor-menu ul.nav li.current .selected, -.header.navbar .hor-menu ul.nav li.active .selected{ -margin-bottom:-5px; -} \ No newline at end of file diff --git a/openo-portal/portal-common/src/main/webapp/common/css/login-apk.css b/openo-portal/portal-common/src/main/webapp/common/css/login-apk.css deleted file mode 100644 index 6b993284..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/css/login-apk.css +++ /dev/null @@ -1,183 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*** -Login page -***/ - -/* logo page */ -.login { - background-color: #666 !important; -} - -.login .logo { - margin: 0 auto; - margin-top:60px; - padding: 15px; - text-align: center; -} - - -.login .content { - background: url(../../../common/image/bg-white-lock.png) repeat; - width: 360px; - margin: 0 auto; - margin-bottom: 0px; - padding: 30px; - padding-top: 20px; - padding-bottom: 15px; -} - -.login .content h3 { - color: #eee; -} -.login .content h4 { - color: #eee; -} - -.login .content p, -.login .content label { - color: #fff; -} - -.login .content .login-form, -.login .content .forget-form { - padding: 0px; - margin: 0px; -} - -.login .content .form-control { - background-color: #fff; -} - -.login .content .forget-form { - display: none; -} - -.login .content .register-form { - display: none; -} - -.login .content .form-title { - font-weight: 300; - margin-bottom: 25px; -} - -.login .content .form-actions { - background-color: transparent; - clear: both; - border: 0px; - padding: 0px 30px 25px 30px; - margin-left: -30px; - margin-right: -30px; -} - -.login .content .form-actions .checkbox { - margin-left: 20px; - padding-left: 0; -} - -.login .content .forget-form .form-actions { - border: 0; - margin-bottom: 0; - padding-bottom: 20px; -} - -.login .content .register-form .form-actions { - border: 0; - margin-bottom: 0; - padding-bottom: 0px; -} - -.login .content .form-actions .checkbox { - margin-top: 8px; - display: inline-block; -} - -.login .content .form-actions .btn { - margin-top: 1px; -} - -.login .content .forget-password { - margin-top: 25px; -} - -.login .content .create-account { - border-top: 1px dotted #eee; - padding-top: 10px; - margin-top: 15px; -} - -.login .content .create-account a { - display: inline-block; - margin-top: 5px; -} - -/* select2 dropdowns */ -.login .content .select2-container i { - display: inline-block; - position: relative; - color: #ccc; - z-index: 1; - top:1px; - margin: 4px 4px 0px 3px; - width: 16px; - height: 16px; - font-size: 16px; - text-align: center; -} - -.login .content .has-error .select2-container i { - color: #b94a48; -} - -.login .content .select2-container a span { - font-size: 13px; -} - -.login .content .select2-container a span img { - margin-left: 4px; -} - -/* footer copyright */ -.login .copyright { - text-align: center; - margin: 0 auto; - padding: 10px; - color: #eee; - font-size: 13px; -} - -@media (max-width: 480px) { - /*** - Login page - ***/ - .login .logo { - margin-top:10px; - } - - .login .content { - padding: 30px; - width: 222px; - } - - .login .content h3 { - font-size: 22px; - } - - .login .checkbox { - font-size: 13px; - } -} \ No newline at end of file diff --git a/openo-portal/portal-common/src/main/webapp/common/css/login.css b/openo-portal/portal-common/src/main/webapp/common/css/login.css deleted file mode 100644 index 45b31147..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/css/login.css +++ /dev/null @@ -1,200 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*** -Login page -***/ - -/* logo page */ -.login { - background-color: #666 !important; -} - -.login .logo { - margin: 0 auto; - padding: 15px; - text-align: center; -} - - -.login .content { - background: url(../image/bg-white-lock.png) repeat; - width: 360px; - margin: 0 auto; - margin-top: 150px; - padding: 30px; - padding-top: 20px; - padding-bottom: 15px; - border-radius:5px; - -webkit-box-shadow: 2px 3px 3px #717171; - -moz-box-shadow: 2px 3px 3px #717171; - box-shadow: -1px 1px 1px rgba(255,255,255,0.6) inset,-3px 3px 5px rgba(0,0,0,0.2); -} - -.login .content h3 { - color: #474747; - letter-spacing:5px; - font-size:20px ; - font-family: 'Microsoft Yahei', sans-serif; - text-shadow:-1px 1px rgba(221, 221, 221, 1); -} -.login .content h4 { - color: #eee; -} - -.login .content p, -.login .content label { - color: #4b4b4b; -} - -.login .content .login-form, -.login .content .forget-form { - padding: 0px; - margin: 0px; -} - -.login .content .form-control { - background-color: #fff; - border-radius:15px; -} - -.login .content .forget-form { - display: none; -} - -.login .content .register-form { - display: none; -} - -.login .content .form-title { - font-weight: 300; - margin-bottom: 25px; - text-align: center; -} - -.login .content .form-actions { - background-color: transparent; - clear: both; - border: 0px; - padding: 0px 30px 25px 30px; - margin-left: -30px; - margin-right: -30px; -} - -.login .content .form-actions .checkbox { - margin-left: 20px; - padding-left: 0; -} - -.login .content .forget-form .form-actions { - border: 0; - margin-bottom: 0; - padding-bottom: 20px; -} - -.login .content .register-form .form-actions { - border: 0; - margin-bottom: 0; - padding-bottom: 0px; -} - -.login .content .form-actions .checkbox { - margin-top: 8px; - display: inline-block; -} - -.login .content .form-actions .btn { - margin-top: 1px; - border-radius:20px; -} - -.login .content .forget-password { - margin-top: 25px; -} - -.login .content .create-account { - border-top: 1px dotted #eee; - padding-top: 10px; - margin-top: 15px; -} - -.login .content .create-account a { - display: inline-block; - margin-top: 5px; -} - -/* select2 dropdowns */ -.login .content .select2-container i { - display: inline-block; - position: relative; - color: #ccc; - z-index: 1; - top:1px; - margin: 4px 4px 0px 3px; - width: 16px; - height: 16px; - font-size: 16px; - text-align: center; -} - -.login .content .has-error .select2-container i { - color: #b94a48; -} - -.login .content .select2-container a span { - font-size: 13px; -} - -.login .content .select2-container a span img { - margin-left: 4px; -} -.form-control:focus{ - border:1px solid #5ca3b7 !important; - box-shadow:0px 0px 2px #2aabec !important; -} -/* footer copyright */ -.login .copyright { - text-align: center; - margin: 0 auto; - padding: 10px; - color: #eee; - font-size: 13px; -} - -@media (max-width: 480px) { - /*** - Login page - ***/ - .login .logo { - margin-top:10px; - } - - .login .content { - padding: 30px; - width: 222px; - } - - .login .content h3 { - font-size: 22px; - } - - .login .checkbox { - font-size: 13px; - } -} - -.descLabel{ - width:320px; -} \ No newline at end of file diff --git a/openo-portal/portal-common/src/main/webapp/common/css/main_page.css b/openo-portal/portal-common/src/main/webapp/common/css/main_page.css deleted file mode 100644 index 4089657b..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/css/main_page.css +++ /dev/null @@ -1,48 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -html, body { - margin: 0; - padding: 0; -} - -.layout { - padding-top:0px; -} - -body { - font-family: microsoft yahei !important; - background: #484747; -} - -.main-page-wrapper { - margin-left: 100px; - margin-right: 100px; -} - -.brick .row { - margin-right: 5px; - margin-left: 5px; - margin-top: 10px; -} - -.column{ - padding-left: 5px; - padding-right: 5px; -} - -a:hover{ - color:white; -} diff --git a/openo-portal/portal-common/src/main/webapp/common/css/more-operation.css b/openo-portal/portal-common/src/main/webapp/common/css/more-operation.css deleted file mode 100644 index d9cc08a8..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/css/more-operation.css +++ /dev/null @@ -1,167 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -a { - text-decoration: none !important; -} - -.box{ -height:95px ; -color:#333; -text-align:right; -padding-bottom:20px; -font-size:14px; -text-align:center; -} - -.row a{ -font-weight:normal; -font-size:14px; - -} - -.alarmTitle{ -padding-left:20px; -margin-top: 10px; -} -@media (min-width: 758px) and (max-width: 997px){ - .alarmTitle{ - display:none; - } - .alarmTypePadding{ - padding-left: 25%; - } -} -@media (max-width: 757px){ - .alarmTitle{ - display:none; - } - .alarmTypePadding{ - padding-left: 20%; - } -} - -.titlefont{ - font-size:16px; -} -.label{ - font-weight: 400; -} - -.row1{ - margin-right: 0px !important; -} - -.queryLink{ - font-size: 14px; - margin-top: 10px; - color:#5b9bd1; -} -.carousel-control { - position: absolute; - top: 0; - left: 0; - bottom: 0; - width: 3% !important; - opacity: .5; - filter: alpha(opacity=50); - font-size: 20px; - color: #C7C7C7; - text-align: center; - text-shadow: 0 1px 2px rgba(0,0,0,.6); -} -.carousel-control:hover{ - color: #969494; -} -.carousel-control .glyphicon-chevron-left, .carousel-control .glyphicon-chevron-right, .carousel-control .icon-prev, .carousel-control .icon-next { - margin-left:0; - font-size:25px; - margin-top:-12px; -} -.carousel-control .icon-next, .carousel-control .glyphicon-chevron-right{ - right:35px; -} - -.carousel-inner{ - overflow: visible; -} - -.item { - overflow: visible !important; - display: block!important; - margin-bottom: 0px !important; -} - -.carousel-control.left,.carousel-control.right{ - background-image:none; -} -.upArrowArea{ - background:#fff; - margin-top:-18px; - margin-bottom: 15px; -} -.boxOperation { - color:#1178ee; - background-repeat: no-repeat; - background-position-y: 100%; - height:30px; - line-height:30px; - font-size: 14px; - font-weight:bold; - margin-top:5px; - height:35px; - padding-left:15px; - padding-right:15px; -} -.moreButton:first-child .boxOperation { - margin-left: 45px; -} -.moreButton:last-child .boxOperation { - margin-right: 45px; -} -.moreButton:first-child .boxOperationOnePage{ - margin-left: 0px !important; -} - -.moreOpen { - height: 40px; -} -.moreClose { - height: 0px; - display:none !important; -} -.moreButton{ - float: left; - position: relative; - min-height: 1px; - } -.boxOperation:hover{ - color:#1069d0; -} -.moreButtonSelected{ - background-color: #fff !important; - color:#333; - border-top:3px #f3565d solid; -} -ul{ - list-style-type:none; -} -li{ - list-style-type:none; -} -.dropdown-menu { - z-index: 9991 !important;; -} \ No newline at end of file diff --git a/openo-portal/portal-common/src/main/webapp/common/css/ngict-component.css b/openo-portal/portal-common/src/main/webapp/common/css/ngict-component.css deleted file mode 100644 index 99e24f31..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/css/ngict-component.css +++ /dev/null @@ -1,789 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -body { - color: #333; - font-size: 14px; - font-family: "Microsoft yahei", Arial !important; - background-color: transparent; -} - -/*fontIcon*/ - -[class^="ict-"], -[class*=" ict-"] { - padding-right: 3px; -} - -/*common color*/ - -.blue1 { - background-color: #5b9bd1; - color: #fff; -} - -.blue1:hover { - background-color: #487ca9; - color: #fff; -} - -.blue2 { - background-color: #57b5e3; - color: #fff; -} - -.blue2:hover { - background-color: #43a1cf; - color: #fff; -} - -.red { - background-color: #e35b5a; - color: #fff; -} - -.red:hover { - background-color: #d45150; - color: #fff; -} - -.green { - background-color: #44b6ae; - color: #fff; -} - -.green:hover { - background-color: #329d96; - color: #fff; -} - -.gold { - background-color: #c0af69; - color: #fff; -} - -.gold:hover { - background-color: #ad9a4d; - color: #fff; -} - -.grey { - background-color: #e5e5e5; - color: #333; -} - -.grey:hover { - background-color: #d8d8d8; - color: #333; -} - -.dark_grey { - background-color: #333; - color: #fff; -} - -.dark_grey:hover { - background-color: #101010; - color: #fff; -} - -.white { - background-color: #fff; - border: 1px solid #ddd; - color: #333; -} - -.white:hover { - background-color: #e5e5e5; - color: #333; -} - -/*** -Responsive & Scrollable Tables -***/ - -.table-scrollable { - width: 100%; - overflow-x: auto; - overflow-y: hidden; - border: 1px solid #dddddd; -} - -.table-scrollable > .table { - width: 100% !important; - margin: 0 !important; - margin-bottom: 0; - background-color: #fff; -} - -.table-scrollable > .table > thead > tr > th, -.table-scrollable > .table > tbody > tr > th, -.table-scrollable > .table > tfoot > tr > th, -.table-scrollable > .table > thead > tr > td, -.table-scrollable > .table > tbody > tr > td, -.table-scrollable > .table > tfoot > tr > td { - white-space: nowrap; -} - -.table-scrollable > .table-bordered { - border: 0; -} - -.table-scrollable > .table-bordered > thead > tr > th:first-child, -.table-scrollable > .table-bordered > tbody > tr > th:first-child, -.table-scrollable > .table-bordered > tfoot > tr > th:first-child, -.table-scrollable > .table-bordered > thead > tr > td:first-child, -.table-scrollable > .table-bordered > tbody > tr > td:first-child, -.table-scrollable > .table-bordered > tfoot > tr > td:first-child { - border-left: 0; -} - -.table-scrollable > .table-bordered > thead > tr > th:last-child, -.table-scrollable > .table-bordered > tbody > tr > th:last-child, -.table-scrollable > .table-bordered > tfoot > tr > th:last-child, -.table-scrollable > .table-bordered > thead > tr > td:last-child, -.table-scrollable > .table-bordered > tbody > tr > td:last-child, -.table-scrollable > .table-bordered > tfoot > tr > td:last-child { - border-right: 0; -} - -.table-scrollable > .table-bordered > thead > tr:last-child > th, -.table-scrollable > .table-bordered > tbody > tr:last-child > th, -.table-scrollable > .table-bordered > tfoot > tr:last-child > th, -.table-scrollable > .table-bordered > thead > tr:last-child > td, -.table-scrollable > .table-bordered > tbody > tr:last-child > td, -.table-scrollable > .table-bordered > tfoot > tr:last-child > td { - border-bottom: 0; -} - -/*form*/ - -.form { - padding: 0 !important; -} - -.form-group .multiRow { - margin-bottom: 15px; -} - -.form-group, -.form-group .btn { - font-size: 12px; -} - -.form-body { - padding: 10px; -} - -.form-actions { - padding-top: 20px -} - -.form-actions.nobg { - background-color: transparent; -} - -.form-actions.top { - margin-top: 0; - margin-bottom: 20px; - border-top: 0; - border-bottom: 1px solid #e5e5e5; -} - -/*.form-actions.fluid { - padding: 20px 0; -}*/ - -.form-actions .btnGroup { - padding-left: 0; -} - -.form-actions.fluid > [class^="col-"] { - padding-left: 13px; -} - -.form-actions:before, -.form-actions:after { - display: table; - line-height: 0; - content: ""; -} - -.form-actions:after { - clear: both; -} - -.form-section { - margin: 30px 0px 25px 0px; - padding-bottom: 5px; - border-bottom: 1px solid #eee; -} - -.form .form-section:first-child { - margin-top: 5px; -} - -.help-inline { - font-size: 13px; - color: #737373; - display: inline-block; - padding: 5px; -} - -.submBtn { - text-align: center; -} -.subm-iconMargin { -margin-left:-40px; -} -.subm-margin { -margin-left:-40px; -} - -/* left, right aligned form actions */ - -.form-actions.right { - padding-left: 0; - padding-right: 10px; - text-align: right; -} - -.form-actions.left { - padding-left: 10px; - padding-right: 0; - text-align: left; -} - -/* Checkbox */ - -.form-group .checkbox { - padding-left: 0; -} - -.form-title { - padding: 8px; - margin-bottom: 25px; - border-left: 2px solid #5b9bd1; - color: #1A78CA; - font-size: 16px; -} - -.checkbox-list > label { - display: block; -} - -.checkbox-list > label.checkbox-inline { - display: inline-block; -} - -.checkbox-list > label.checkbox-inline:first-child { - padding-left: 0; -} - -/* Radios */ -input[type="radio"]{ - cursor:pointer -} -.radio-list > label { - display: block; -} - -.radio-list > label.radio-inline { - display: inline-block; -} - -.radio-list > label.radio-inline:first-child { - padding-left: 0; -} - -.form-horizontal .radio-list .radio { - padding-top: 1px; -} - -.form-horizontal .radio-list > label { - margin-bottom: 0; -} - -.form-horizontal .radio > span { - margin-top: 2px; -} - -.help-block { - margin-top: 5px; - margin-bottom: 5px; - color: #a94442 !important; -} - -.form-inline input { - margin-bottom: 0px !important; -} -.form-horizontal .control-label{ - padding-top:4px; - text-align:right; -} - -.form-control-static { - font-size: 14px; - padding-top: 7px; -} - -.control-label .required { - color: #e02222; - font-size: 12px; - padding-left: 2px; -} - -/*TAB*/ - -.nav-tabs { - border: 0; - font-weight: bold; -} - -.nav-tabs > li.active > a, -.nav-tabs > li.active > a:hover, -.nav-tabs > li.active > a:focus { - border: 0; - border-top: 3px solid #F3565D; -} - -.nav-tabs > li > a { - border-radius: 0; - font-weight: bold; -} - -.nav-tabs > li > a:hover { - background-color: #f1f3fa; - border: 1Px solid #f1f3fa; -} - -/*button*/ - -.btn { - min-width: 80px; - letter-spacing: 1px; -} - -.btnGroup .btn { - margin-right: 15px; -} - -.pagination-panel .btn { - min-width: 4px; -} - -.btn.dropdown-toggle, -.btn-group .btn.dropdown-toggle, -.btn:hover, -.btn:disabled, -.btn[disabled], -.btn:focus, -.btn:active, -.btn.active { - outline: none !important; - background-image: none !important; - filter: none; - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; - text-shadow: none; -} -.btn-xs:hover{ -text-decoration:none ; -} -/*radius*/ - -.radius_l { - border-radius: 20px; -} - -.radius_m { - border-radius: 8px; -} - -.radius_s { - border-radius: 3px; -} - -/*Progress Bars*/ - -.progress { - border: 0; - background-image: none !important; - filter: none !important; - -webkit-box-shadow: none !important; - -moz-box-shadow: none !important; - box-shadow: none !important; -} - -.form-wizard .steps > li.active > a.step .number { - background-color: #45B6AF -} - -.progress > .progress-bar-success { - background-color: #45B6AF -} - -/*label*/ - -.label, -label { - font-weight: 400; - /*margin-bottom:15px;*/ -} - -/*表单中的组合*/ - -.input-group-btn-vertical.fa { - font-size: 12px; -} - -.spinner { - width: 60px; - margin-left: 10px; - margin-right: 30px; -} - -.spinner input { - text-align: right; -} - -.input-group-btn-vertical { - position: relative; - white-space: nowrap; - width: 1%; - vertical-align: middle; - display: table-cell; -} - -.input-group-btn-vertical > .btn { - display: block; - float: none; - width: 100%; - max-width: 100%; - padding: 6px; - margin-left: -1px; - position: relative; - border-radius: 0; -} - -.input-group-btn-vertical > .btn { - min-width: 20px; -} - -.input-group-btn-vertical > .btn:first-child { - border-top-right-radius: 4px; -} - -.input-group-btn-vertical > .btn:last-child { - margin-top: -2px; - border-bottom-right-radius: 4px; -} - -.input-group-btn-vertical i { - position: absolute; - top: -2px; - left: 5px; -} - -.input-group .form-control { - height: 26px !important; -} - -/*separator & title*/ - -.separator-line { - height: 1px; - width: 100%; - background: #ddd; - overflow: hidden; - margin-bottom: 15px; - margin-top: 6px; - opacity: 0.6; -} - -.separator { - opacity: 0.7; -} - -.separator:hover { - opacity: 1; -} - -.titlefont { - font-size: 16px; - margin-top:15px; -} - -/*link*/ - -a { - color: #428bca; - text-decoration: none ; - cursor:pointer; -} -a:hover{ - text-decoration: underline; -} -/*html滑块组件*/ - -input[type="range"] { - margin-top: 2px; - background-color: #f0f3f9; - border: 1px solid #ccd6e8; - border-radius: 15px; - width: 400px; - -webkit-appearance: none; - height: 15px; -} - -input[type="range"]::-webkit-slider-thumb { - -webkit-appearance: none; - cursor: pointer; - top: -5px; - height: 28px; - width: 15px; - transform: translateY(-4px); - background: none repeat scroll 0 0 #f0f3f9; - background-color: #9cc2cb; - border-radius: 20px; -} - -input[type="range"]:focus { - outline: none; -} - -/*ztree*/ - -.ztree * { - font-family: "microsoft yahei"; - font-size: 12px; -} - -.ztree { - padding: 15px 30px 0 5px; -} - -.ztree li a.curSelectedNode { - height: 28px; -} - -.ztree li span { - line-height: 16px; - margin-right: 2px; - margin-left: 6px -} - -.ztree li span.button.chk { - width: 13px; - height: 13px; - margin-left: 10px; - cursor: auto -} - -.ztree li span.button.add { - margin-left: 2px; - /* margin-right: -1px; */ - - margin-right: 4px; - background-position: -144px 0; - vertical-align: top; - *vertical-align: middle; - float: right; -} - -.ztree li span.button.edit { - margin-right: 4px; - background-position: -110px -48px; - vertical-align: top; - *vertical-align: middle; - float: right; -} - -.ztree li span.button.remove { - margin-right: 4px; - background-position: -110px -64px; - vertical-align: top; - *vertical-align: middle; - float: right; -} - -.ztree-select .ztree li a { - border: 1px solid #fff !important; -} - -/*table*/ - -table, -.dataTables_length, -.dataTables_info, -.dataTables_paginate { - font-size: 12px; -} - -table .heading { - font-size: 14px; - background: #fff !important; -} - -table.dataTable tbody th, -table.dataTable tbody td { - padding: 8px 10px 4px 10px !important; -} - -table tr:nth-of-type(odd) { - background: #f9f9f9; -} - -table tr:nth-of-type(even) { - background: #fff; -} - -table td:hover { - background-color: #f5f5f5; - border-bottom: 1px solid #d0d0d0; - border-top: 1px solid #d0d0d0; -} - -table tr td label { - cursor: pointer; -} - -.table-btn span { - padding-left: 5px; - padding-right: 5px; -} -.table-bordered>thead>tr>th, .table-bordered>thead>tr>td{ -border-bottom-width:1px; -} -/*select-box with icon*/ - -.iconselect-box .col-xs-1 { - width: 15px; - padding: 110px 0 0 0; -} - -.iconPosition > div { - margin: 20px 0px 0px 0px; -} - -/*-------------C3.css-------------*/ -.c3 path, .c3 line { - stroke: #008acd; -} - -.c3-line { - stroke-width: 3px; -} - -.c3-tooltip { - width: auto; -} - -.c3-tooltip td { - color: #000; -} - -.c3-axis.c3-axis-y { - stroke-width: 1px; -} - -.c3-axis.c3-axis-x { - stroke-width: 1px; -} - -/*checkbox & radio*/ -input[type="checkbox"] { - -webkit-appearance: none; - background: #fff url(../image/checkbox-radio/checkbox-init.png); - height: 18px; - vertical-align: middle; - width: 18px; - margin-bottom:5px; - margin-right:5px; -} - -input[type="checkbox"]:checked { - -webkit-appearance: none; - background: #fff url(../image/checkbox-radio/checkbox-checked.png); - height: 18px; - vertical-align: middle; - width: 18px; -} - -input[type="checkbox"]:focus, -input[type="checkbox"]:hover { - outline: none; -} - -input[type="checkbox"][disabled] { - -webkit-appearance: none; - background: #fff url(../image/checkbox-radio/checkbox-disabled.png); - height: 18px; - vertical-align: middle; - width: 18px; - margin-bottom:5px; - margin-right:5px; -} - -input[type="checkbox"][disabled]:checked { - -webkit-appearance: none; - background: #fff url(../image/checkbox-radio/checkbox-checked-disabled.png); - height: 18px; - vertical-align: middle; - width: 18px; -} - -input[type="radio"] { - -webkit-appearance: none; - background: #fff url(../image/checkbox-radio/radio-init.png); - height: 18px; - vertical-align: middle; - width: 18px; - margin-bottom:5px; - margin-right:5px; -} - -input[type="radio"]:checked { - -webkit-appearance: none; - background: #fff url(../image/checkbox-radio/radio-checked.png); - height: 18px; - vertical-align: middle; - width: 18px; -} - -input[type="radio"]:focus, -input[type="radio"]:hover { - outline: none; -} - -input[type="radio"][disabled] { - -webkit-appearance: none; - background: #fff url(../image/checkbox-radio/radio-disabled.png); - height: 18px; - vertical-align: middle; - width: 18px; - margin-bottom:5px; - margin-right:5px; -} - -input[type="radio"][disabled]:checked { - -webkit-appearance: none; - background: #fff url(../image/checkbox-radio/radio-checked-disabled.png); - height: 18px; - vertical-align: middle; - width: 18px; -} diff --git a/openo-portal/portal-common/src/main/webapp/common/css/plugins.css b/openo-portal/portal-common/src/main/webapp/common/css/plugins.css deleted file mode 100644 index 523986cd..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/css/plugins.css +++ /dev/null @@ -1,1561 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/************************** - PLUGIN CSS CUSTOMIZATIONS -**************************/ - -/*** -Calendar with full calendar -***/ -.external-event { - display: inline-block ; - cursor:move; - margin-bottom: 5px ; - margin-left: 5px ; -} - -.portlet .event-form-title { - font-size: 14px; - margin-top: 4px; - font-weight: 400; - margin-bottom: 10px; -} - -.portlet.calendar .fc-button { - -webkit-box-shadow: none ; - -moz-box-shadow: none ; - box-shadow: none ; - text-shadow: none; - border: 0 ; - padding: 6px 8px 30px 8px ; - margin-left:2px; - border-top-style: none; - border-bottom-style: none; - border-right-style: solid; - border-left-style: solid; - border-color: #ddd; - background: transparent; - color: #fff; - top: -46px; -} - -.portlet.calendar .fc-header { - margin-bottom:-21px; -} - -.portlet.calendar .fc-button-prev { - padding-right: 10px; - padding-left: 8px; -} - -.portlet.calendar .fc-button-next { - padding-right: 8px; - padding-left: 10px; -} - -.portlet.calendar .fc-button.fc-state-active, -.portlet.calendar .fc-button.fc-state-hover { - color: #666 ; - background-color: #F9F9F9 ; -} - -.portlet.calendar .fc-button.fc-state-disabled { - color: #ddd ; -} - -.portlet.calendar .fc-text-arrow { - font-size: 22px; - font-family: "Courier New", Courier, monospace; - vertical-align: baseline; -} - -/* begin: event element */ -.portlet.calendar .fc-event { - border: 0px; - background-color: #69a4e0; - color: #fff; -} - -.portlet.calendar .fc-event-inner { - border: 0px; -} - -.portlet.calendar .fc-event-time { - float: left; - text-align: left; - color: #fff; - font-size: 13px; - font-weight: 300; -} - -.portlet.calendar .fc-event-title { - text-align: left; - float: left; - color: #fff; - font-size: 13px; - font-weight: 300; -} -/* end: event element */ - -.portlet.calendar .fc-header-title h2 { - font-size: 14px ; - line-height: 20px; - font-weight: 400; - color: #111; -} - -.portlet.calendar .fc-widget-header { - background-image: none ; - filter:none; - background-color: #eee ; - text-transform: uppercase; - font-weight: 300; -} - -.portlet.calendar .mobile .fc-button { - margin-left: 2px ; -} - -.portlet.calendar .mobile .fc-button { - padding: 0px 6px 20px 6px ; - margin-left:2px ; - border: 0; - background-color: #ddd ; - background-image: none; - -webkit-box-shadow: none ; - -moz-box-shadow: none ; - box-shadow: none ; - -webkit-border-radius: 0 ; - -moz-border-radius: 0 ; - border-radius: 0 ; - color: #000; - text-shadow: none ; - text-align: center; -} - -.portlet.calendar .mobile .fc-state-hover, -.portlet.calendar .mobile .fc-state-active { - background-color: #eee ; -} - -.portlet.calendar .mobile .fc-button-prev { - margin-right: 5px; - margin-top: -2px; -} - -.portlet.calendar .mobile .fc-button-next { - margin-right: -0px; - margin-top: -2px; -} - -.portlet.calendar .mobile .fc-header-space { - margin: 0px ; - padding: 0px ; - width: 0px ; -} - - .portlet.calendar .mobile .fc-state-disabled { - color: #bbb ; - } - - .portlet.calendar .mobile .fc-header-left { - position: absolute; - z-index: 10; - } - - .portlet.calendar .mobile .fc-header-right { - position: absolute; - z-index: 9; - } - - .portlet.calendar .mobile .fc-header-left .fc-button { - top: -2px ; - } - - .portlet.calendar .mobile .fc-header-right { - position: relative; - right:0; - } - - .portlet.calendar .mobile .fc-header-right .fc-button { - top: 35px ; - } - - .portlet.calendar .mobile .fc-content { - margin-top: 53px; - } - - -/*** -Form wizard -***/ - -.form-wizard .progress { - margin-bottom: 30px; -} - -.form-wizard .steps { - //padding: 10px 0; - //margin-bottom: 15px; -} - -.form-wizard .steps { - background-color: #fff ; - background-image: none ; - filter:none ; - border: 0px; - box-shadow: none ; -} - -.form-wizard .steps li a { - background-color: #fff ; - background-image: none ; - filter:none; - border: 0px; - box-shadow: none ; -} - -.form-wizard .steps li a:hover { - background: none; -} - -.form-wizard .step:hover { - text-decoration: none; -} - -.form-wizard .step .number { - background-color: #eee; - display: inline-block; - text-align: center !important; - font-size: 16px; - font-weight: 300; - padding: 11px 15px 13px 15px; - margin-right: 10px; - height: 45px; - width: 45px; - -webkit-border-radius: 50% !important; - -moz-border-radius: 50% !important; - border-radius: 50% !important; -} - -.form-wizard .step .desc { - display: inline-block; - font-size: 16px; - font-weight: 300; -} - -.form-wizard .active .step .number { - background-color: #35aa47; - color: #fff; -} - -.form-wizard .active .step .desc { - color: #333; - font-weight: 400; -} - -.form-wizard .step i { - display: none; -} - -.form-wizard .done .step .number { - background-color: #f2ae43; - color: #fff; -} - -.form-wizard .done .step .desc { - font-weight: 400; -} - -.form-wizard .done .step i { - font-size: 12px; - font-weight: normal; - color: #999; - display: inline-block; -} - - -@media (min-width: 600px) and (max-width: 1280px) { - .form-wizard .step .desc { - margin-top: 10px; - display: block; - } -} - -@media (max-width: 600px) { - .form-wizard .steps > li > a { - text-align: left; - } -} - -@media (min-width: 600px){ - .nav-justified>li{ - display:table-cell; - width:1%; - } -} - -/*** -Google Maps -***/ -.gmaps { - height: 300px; - width: 100%; -} - -/* important! bootstrap sets max-width on img to 100% which conflicts with google map canvas*/ -.gmaps img { - max-width: none; -} - -#gmap_static div{ - background-repeat: no-repeat ; - background-position: 50% 50% ; - height:100%; - display:block; - height: 300px; -} - -#gmap_routes_instructions { - margin-top: 10px; - margin-bottom: 0px; -} - -/*** -SlimScrollBar plugins css changes -***/ -.scroller { - padding: 0px ; - margin: 0px ; - padding-right: 12px ; - overflow: hidden; -} - -.scroller-footer { - margin-top: 10px; -} - -.scroller-footer:after, -.scroller-footer:before { - content: ""; - display: table; - line-height: 0; -} - -.scroller-footer:after { - clear: both; -} - -.portlet-body .slimScrollBar { - margin-right: 0px ; -} - -/*** -jqvmap changes -***/ -.jqvmap-zoomin { - height: 16px; - width: 16px; - background-color: #666 ; -} - -.jqvmap-zoomout { - height: 16px; - width: 16px; - background-color: #666 ; -} - -.vmaps { - position: relative; - overflow: hidden; - height: 300px; -} - - -/*** -Error state for WYSIWYG Editors -***/ -.has-error .md-editor, -.has-error .wysihtml5-sandbox, -.has-error .cke { - border: 1px solid #B94A48 !important; -} - -.has-success .md-editor, -.has-success .wysihtml5-sandbox, -.has-success .cke { - border: 1px solid #468847 !important; -} - -/*** -Select2 plugin css changes -***/ - -/* enable form validation classes for select2 dropdowns */ -.has-error .select2-container .select2-choice { - border-color: #B94A48; -} - -.has-error .select2-container.select2-dropdown-open .select2-choice { - border-color: #e5e5e5; -} - -.has-error .select2-container.select2-dropdown-open .select2-choice > span { - color: #999999; -} - -.has-success .select2-container .select2-choice { - border-color: #468847; -} - -.has-success .select2-container.select2-dropdown-open .select2-choice { - border-color: #e5e5e5; -} - -.has-success .select2-container.select2-dropdown-open .select2-choice > span { - color: #999999; -} - - -/*** -Jansy File Input plugin css changes -***/ -.fileinput { - margin-bottom: 0; -} - - -/*** -WYSIWYG -***/ -.wysihtml5-toolbar li { - margin: 0px; - height: 29px; -} - -.wysihtml5-toolbar li .dropdown-menu { - margin-top: 5px; -} - -/*** -CKEditor css changes -***/ -.cke_bottom, -.cke_inner, -.cke_top, -.cke_reset, -.cke_dialog_title, -.cke_dialog_footer, -.cke_dialog { - background-image: none !important; - filter:none ; - border-top: 0 ; - border-bottom: 0 ; - -webkit-box-shadow: none !important; - -moz-box-shadow: none !important; - box-shadow: none !important; - text-shadow:none ; -} - -.cke_dialog_ui_button, -.cke_dialog_tab { - background-image: none !important; - filter:none ; - -webkit-box-shadow: none !important; - -moz-box-shadow: none !important; - box-shadow: none !important; - text-shadow:none !important; -} - -.cke_dialog_ui_button:hover, -.cke_dialog_tab:hover { - text-decoration: none; - text-shadow:none ; -} - -.cke_dialog_ui_input_text { - background-image: none !important; - filter:none ; - -webkit-box-shadow: none !important; - -moz-box-shadow: none !important; - box-shadow: none !important; -} - -.cke_combo_button, -.cke_button, -.cke_toolbar, -.cke_toolgroup { - background-image: none !important; - filter:none !important; - border: 0 ; - -webkit-box-shadow: none !important; - -moz-box-shadow: none !important; - box-shadow: none !important; -} - -.cke_button, -.cke_combo_button, -.cke_panel_grouptitle, -.cke_hc.cke_panel_listItem a { - background-image: none !important; - filter:none ; - text-shadow:none ; - -webkit-border-radius: 0px !important; - -moz-border-radius: 0px !important; - -ms-border-radius: 0px !important; - -o-border-radius: 0px !important; -} - -.cke_button:hover, -.cke_combo_button:hover { - background-color: #ddd; -} - -.cke_toolbar_break { - background-image: none !important; - filter:none !important; - border: 0 ; - box-shadow: none !important; - -webkit-box-shadow : none !important; - -moz-box-shadow: none !important; - -ms-box-shadow: none !important; - -o-box-shadow: none !important; -} - -/*** -Modify tags input plugin css -***/ -div.tagsinput { - min-height: 35px; - height: auto !important; - margin: 0; - padding: 5px 5px 0px 5px; - overflow: auto; -} - -div.tagsinput span.tag { - background: #aaa ; - color: #fff ; - border: 0 ; - padding: 3px 6px; - margin-top: 0; - margin-bottom: 5px; -} - -div.tagsinput input { - padding: 3px 6px ; - width: 75px !important; -} - -div.tagsinput span.tag a { - color: #fff ; -} - -div.tagsinput .not_valid { - color: #fff ; - padding: 3px 6px ; - background-color: #e02222 ; -} - -/*** -Gritter notification modify -***/ - -#gritter-notice-wrapper { - right:1px !important; -} - -.gritter-close { - left:auto !important; - right: 3px !important; -} - -.gritter-title { - font-family: 'Open Sans' ; - font-size: 18px ; - font-weight: 300 ; -} - -/*** -jQuery UI Sliders(new in v1.1.1) -***/ -.slider { - border: 0; - padding: 0; - display: block; - margin: 12px 5px; - min-height: 11px; -} - -.ui-slider-vertical { - width: 11px; -} - -.ui-slider-horizontal .ui-slider-handle { - top: -3px; -} - -.ui-slider-vertical .ui-slider-handle { - left: -3px; -} - -.ui-slider-vertical, -.ui-slider-handle { - filter: none !important; - background-image: none !important; -} - -/*** -Dropzone css changes(new in v1.1.1) -***/ -.dropzone { - -webkit-border-radius: 0px ; - -moz-border-radius: 0px ; - border-radius: 0px ; -} - - -/*** -Dashboard Charts(new in v1.2.1) -***/ -.easy-pie-chart, -.sparkline-chart { - text-align: center; -} - -.sparkline-chart { - margin-top: 15px; - position:relative ; -} - -.easy-pie-chart .number { - font-size: 16px; - font-weight: 300; - width: 85px; - margin: 0 auto; -} - -.sparkline-chart .number { - width: 100px; - margin: 0 auto; - margin-bottom: 10px; -} - -.sparkline-chart .title, -.easy-pie-chart .title { - display: block; - text-align: center; - color: #333; - font-weight: 300; - font-size: 16px; - margin-top: 5px; - margin-bottom: 10px; -} - -.sparkline-chart .title:hover, -.easy-pie-chart .title:hover { - color: #666; - text-decoration: none; -} - -.sparkline-chart .title > i, -.easy-pie-chart .title > i { - margin-top: 5px; -} - -/*** -Fancy box fix overlay fix(in v1.2.4) -***/ -.fancybox-overlay { - z-index: 10000 ; -} - -/*** -Datatables Plugin(in v1.3) -***/ -.dataTable { - width: 100% !important; - clear: both; - /*margin-top: 5px;*/ -} - -.dataTables_filter label { - line-height: 32px ; -} - -.dataTable .row-details { - margin-top: 3px; - display: inline-block; - cursor: pointer; - width: 14px; - height: 14px; -} - -.dataTable .row-details.row-details-close { - background: url("../image/datatable-row-openclose.png") no-repeat 0 0; -} - -.dataTable .row-details.row-details-open { - background: url("../image/datatable-row-openclose.png") no-repeat 0 -23px ; -} - -.dataTable .details { - background-color: #eee ; -} - -.dataTable .details td, -.dataTable .details th { - padding: 4px; - background: none ; - border: 0; -} - -.dataTable .details tr:hover td, -.dataTable .details tr:hover th { - background: none ; -} - -.dataTable .details tr:nth-child(odd) td, -.dataTable .details tr:nth-child(odd) th { - background-color: #fff ; -} - -.dataTable .details tr:nth-child(even) td, -.dataTable .details tr:nth-child(even) th { - background-color: #eee ; -} - -.dataTable > thead > tr > th.sorting, -.dataTable > thead > tr > th.sorting_asc, -.dataTable > thead > tr > th.sorting_desc { - padding-right: 18px; -} - -.dataTable .table-checkbox { - width: 8px !important; -} - -@media (max-width: 768px) { - .dataTables_wrapper .dataTables_length .form-control, - .dataTables_wrapper .dataTables_filter .form-control { - display: inline-block; - } - - /* .dataTables_wrapper .dataTables_info { - top: 17px; - }*/ - -/* .dataTables_wrapper .dataTables_paginate { - margin-top: -15px; - }*/ -} - -@media (max-width: 480px) { - .dataTables_wrapper .dataTables_filter .form-control { - width: 175px !important; - } - - .dataTables_wrapper .dataTables_paginate { - float: left; - margin-top: 20px; - } -} - -.dataTables_processing { - position: fixed; - top: 50%; - left: 50%; - min-width: 125px; - margin-left: 0; - padding: 7px; - text-align: center; - color: #333; - font-size: 13px; - border: 1px solid #ddd; - background-color: #eee; - vertical-align: middle; - -webkit-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); - -moz-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); - box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); -} - -.dataTables_processing span { - line-height:15px; - vertical-align: middle; -} - -.dataTables_empty { - text-align: center; -} - -/*** -Extended Datatable -***/ -.dataTables_extended_wrapper { - position: relative !important; - clear: both !important; -} -.dataTables_extended_wrapper .seperator { - padding: 0 2px; -} - -.dataTables_extended_wrapper .dataTables_paginate, -.dataTables_extended_wrapper .dataTables_length, -.dataTables_extended_wrapper .dataTables_info { - display: inline-block; - float: none !important; - padding: 0 !important; - margin: 0 !important; - position: static !important; - font-size: 13px; -} - -@media (max-width: 480px) { - - .dataTables_extended_wrapper .dataTables_paginate, - .dataTables_extended_wrapper .dataTables_length, - .dataTables_extended_wrapper .dataTables_info { - display: block; - margin-bottom: 10px !important; - } - - .dataTables_extended_wrapper .seperator { - display: none; - } -} - -.dataTables_extended_wrapper .dataTables_length label { - margin: 0 !important; - padding: 0 !important; - font-size: 13px; - float: none !important; - display: inline-block !important; -} - -.table-container .table-actions-wrapper { - display: none; -} - -/*** -Password Strength(in v1.4) -***/ -.password-strength .password-verdict { - display: inline-block; - margin-top: 6px; - margin-left: 5px; -} - -.password-strength .progress { - margin-top: 5px; - margin-bottom: 0; -} - -.password-strength .progress-bar { - padding: 2px; -} - -/*** -Uniform disabled checkbox, radio button fix(in v1.4) -***/ - -.table .uniform-inline { - padding: 0; - margin: 0; -} - -.checker { - margin-top: -2px !important; - margin-right: 2px !important; - display:inline; -} - -.checker input, -.radio input { - outline: none !important; -} - -div.checker.disabled span, -div.checker.disabled.active span{ - background-position: -152px -260px; -} - -div.checker.disabled:hover, -div.radio.disabled:hover { - cursor: not-allowed; -} - -div.radio, -div.checker { - margin-right: 0; - margin-left: 3px; -} - -/*** -jQuery Sparkline -***/ -.jqstooltip { - width: auto !important; - height: auto !important; -} - - -/*** -jQuery Multi Select -***/ - -.ms-container .ms-list { - border: 1px solid #e5e5e5; - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; - -} - -.ms-container .ms-optgroup-label{ - font-size: 14px; -} - -.ms-container .ms-selectable li.ms-elem-selectable, -.ms-container .ms-selection li.ms-elem-selection{ - font-size: 13px; -} - -.ms-container .ms-list.ms-focus { - border-color: #999999; - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; -} - -.ms-container .ms-selectable li.ms-hover, -.ms-container .ms-selection li.ms-hover{ - color: #333; - background-color: #eee; -} - -.ms-container .form-control { - margin-bottom: 5px; -} - -/*** -Bootstrap Colorpicker -***/ -.input-group.color .input-group-btn i { - position: absolute; - display: block; - cursor: pointer; - width: 20px; - height: 20px; - right: 6px; -} - -.colorpicker.dropdown-menu { - padding: 5px; -} - -/* change z-index when opened in modal */ -.modal-open .colorpicker { - z-index: 10055 !important; -} - -/*** -Bootstrap Datetimepicker -***/ - -.datetimepicker table td { - font-weight: 300 !important; - font-family: 'Open Sans' !important; -} - -.datetimepicker table th { - font-family: 'Open Sans' !important; - font-weight: 400 !important; -} - -.datetimepicker.dropdown-menu { - padding: 5px; -} - -.datetimepicker .active { - background-color:#4b8df8 !important; - background-image: none !important; - filter: none !important; -} - -.datetimepicker .active:hover { - background-color: #2678FC !important; - background-image: none !important; - filter: none !important; - -} - -/* change z-index when opened in modal */ -.modal-open .datetimepicker { - z-index: 10055 !important; -} - -/*** -Bootstrap Time Picker -***/ -.bootstrap-timepicker-widget table td a { - padding: 4px 0; -} - -.bootstrap-timepicker-widget input, -.bootstrap-timepicker-widget input:focus { - outline: none !important; - border: 0; -} - -.modal-open .bootstrap-timepicker-widget { - z-index: 10055 !important; -} - -.bootstrap-timepicker-widget.timepicker-orient-bottom:before, -.bootstrap-timepicker-widget.timepicker-orient-bottom:after { - top: auto; -} - -/*** -Bootstrap Datepicker -***/ - -.datepicker.dropdown-menu { - padding: 5px; -} - -.datepicker .selected { - background-color:#909090 !important; - background-image: none !important; - filter: none !important; -} - -.datepicker .active { - background-color:#4b8df8 !important; - background-image: none !important; - filter: none !important; -} - -.datepicker .active:hover { - background-color: #2678FC !important; - background-image: none !important; - filter: none !important; -} - -.datepicker .input-daterange input { - text-align: left; -} - -/* change z-index when opened in modal */ -.modal-open .datepicker { - z-index: 10055 !important; -} - -.datepicker table td { - font-weight: 300 !important; - font-family: 'Open Sans' !important; -} - -.datepicker table th { - font-family: 'Open Sans' !important; - font-weight: 400 !important; -} - - -/*** -Clockface -***/ - -.modal-open .clockface { - z-index: 10055 !important; -} - -.clockface .cell .inner.active, -.clockface .cell .outer.active { - background-color:#4b8df8 !important; - background-image: none ; - filter:none ; -} - - -/*** -Bootstrap Daterangepicker -***/ - -.modal-open .daterangepicker { - z-index: 10055 !important; -} - -.daterangepicker td { - text-shadow: none ; -} - -.daterangepicker td.active { - background-color: #4b8df8 ; - background-image: none ; - filter:none ; -} - -.daterangepicker th { - font-weight: 400; - font-size: 14px; -} - -.daterangepicker .ranges input[type="text"] { - width: 70px !important; - font-size: 11px; - vertical-align: middle; -} - -.daterangepicker .ranges label { - font-weight: 300; - display: block; -} - -.daterangepicker .ranges .btn { - margin-top: 10px; -} - -.daterangepicker.dropdown-menu { - padding: 5px; -} - -.daterangepicker .ranges li { - color: #333; -} - -.daterangepicker .ranges li.active, -.daterangepicker .ranges li:hover { - background: #4b8df8 !important; - border: 1px solid #4b8df8 !important; - color: #fff; -} - -.daterangepicker .range_inputs input { - margin-bottom: 0 !important; -} - -/*** -Bootstrap Editable -***/ - -.editable-input table, -.editable-input table th, -.editable-input table td, -.editable-input table tr { - border: 0 !important; -} - -.editable-input .combodate select { - margin-bottom: 5px; -} - -/*** -FuelUX Spinners -***/ - -.spinner-buttons.btn-group-vertical .btn { - text-align: center; - margin: 0; - height: 17px; - width: 22px; - padding-left: 6px; - padding-right: 6px; - padding-top: 0px; -} - - -/*** -NoUI Range Sliders -***/ -.noUi-handle { - height: 20px; - width: 20px; - margin: -3px 0 0 -20px; -} - -.noUi-base { - height: 16px; -} - -.noUi-connect { - background: #ffb848; -} - -/*** -Toastr Notifications -***/ -.toast { - -webkit-box-shadow: none !important; - -moz-box-shadow: none !important; - box-shadow: none !important; -} - -.toast { - background-color: #030303; -} -.toast-success { - background-color: #51a351; -} -.toast-error { - background-color: #bd362f; -} -.toast-info { - background-color: #2f96b4; -} -.toast-warning { - background-color: #f89406; -} - -.toast .toast-close-button { - display: inline-block; - margin-top: 0px; - margin-right: 0px; - text-indent: -100000px; - width: 11px; - height: 16px; - background-repeat: no-repeat !important; - background-image: url("../image/portlet-remove-icon-white.png") !important; -} - -.toast-top-center { - top: 12px; - margin: 0 auto; - left: 50%; - margin-left: -150px; -} - -.toast-bottom-center { - bottom: 12px; - margin: 0 auto; - left: 50%; - margin-left: -150px; -} - -/*** -Google reCaptcha -***/ -.form-recaptcha-img { - margin-bottom: 10px; - clear: both; - border: 1px solid #e5e5e5; - padding: 5px; -} - -iframe[src="about:blank"] { - display:none; -} - -/*** -Bootstrap Markdown -***/ -.md-input { - padding: 5px !important; - border-bottom: 0 !important; -} - -.md-editor .btn-toolbar { - margin-left: 0px; -} - -.md-editor.active { - border: 1px solid #999999; - -webkit-box-shadow: none !important; - -moz-box-shadow: none !important; - box-shadow: none !important; -} - -/*** -Bootstrap Datepaginator -***/ -.datepaginator a { - font-family: 'Open Sans'; - font-size: 13px; - font-weight: 300; -} - -.datepicker .today { - background-image: none !important; - filter: none !important; -} - -#dp-calendar { - right: 4px !important; -} - -/*** -Font Awesome 4.0 Demo -***/ -.fa-item { - font-size: 14px; - padding: 10px 10px 10px 20px; -} - -.fa-item i { - font-size: 16px; - display: inline-block; - width: 20px; -} - -.fa-item:hover { - cursor: pointer; - background: #eee; -} - -/*** -Bootstrap Modal -***/ -/* fix: content shifting to the right on modal open */ -.modal-open.page-overflow .page-container, -.modal-open.page-overflow .page-container .navbar-fixed-top, -.modal-open.page-overflow .page-container .navbar-fixed-bottom, -.modal-open.page-overflow .modal-scrollable { - overflow-y: auto !important; -} - -.modal-scrollable { - overflow: hidden !important; -} - - -/*** -jQuery Notific8 Plugin -***/ - -.jquery-notific8-message { - font-size: 13px; -} - -[class*="jquery-notific8"], -[class*="jquery-notific8"]:after, -[class*="jquery-notific8"]:before { - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; -} - -.right .jquery-notific8-close-sticky span, -.left .jquery-notific8-close-sticky span { - font-size: 10px; -} - -.jquery-notific8-heading { - font-weight: 300; - font-size: 16px; -} - -/*** -jQuery File Upload -***/ - -.blueimp-gallery .close { - background-image: url("../image/portlet-remove-icon-white.png") !important; - margin-top: -2px; -} - -.blueimp-gallery .prev, -.blueimp-gallery .next { - border-radius: 23px !important; -} - -/*** -Bootstrap Switch -***/ - -.has-switch { - border-color: #e5e5e5; -} - -.has-switch:focus { - -webkit-box-shadow: none; - box-shadow: none; -} - -/*** -Jstree -***/ - -.jstree-default .jstree-clicked { - border: 0; - background-color: #e1e1e1; - box-shadow:none; -} - -.jstree-default .jstree-hovered { - border: 0; - background-color: #eee; - box-shadow:none; -} - -.jstree-default .jstree-wholerow-clicked, -.jstree-wholerow .jstree-wholerow-clicked { - background: none; - border: 0; - background-color: #e1e1e1; - box-shadow:none; -} - -.jstree-default .jstree-wholerow-hovered, -.jstree-wholerow .jstree-wholerow-hovered { - border: 0; - background-color: #eee; - box-shadow:none; -} - -.jstree-icon.icon-lg { - margin-top: 1px; -} - -.jstree-open > .jstree-anchor > .fa-folder:before { - margin-left: 2px; - content: "\f07c"; -} - -.jstree-default.jstree-rtl .jstree-last { - background: transparent; - background-repeat: no-repeat; -} - -.vakata-context, -.vakata-context ul { - padding: 0; - min-width: 125px; - background-color: #ffffff; - -webkit-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); - -moz-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); - box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); - font-size: 14px; - font-family: "Segoe UI",Helvetica, Arial, sans-serif; - border: 1px solid #ddd; -} - -.vakata-context li a { - padding: 0 10px; -} - -.vakata-context .vakata-context-hover > a, -.vakata-context li a:hover { - background-color: #eee; - color: #333; - box-shadow: none; -} - -.vakata-context li a span, -.vakata-context li a ins { - display: none; -} - -.vakata-context .vakata-context-separator a, -.vakata-context-rtl .vakata-context-separator a { - margin: 0; -} - -.jstree-rename-input { - background-color: #ffffff !important; - border: 1px solid #e5e5e5 !important; - outline: none !important; - padding: 2px 6px !important; - margin-right: -4px !important; -} - -/*** -Bootstrap Select -***/ - -.bootstrap-select .btn { - border-color: #e5e5e5; -} - -.bootstrap-select.open .btn1 { - border-color: #999999; -} - -.bootstrap-select.open.dropup .btn1 { - border-color: #999999; -} - -.bootstrap-select .btn:focus { - outline: none !important; - outline-offset: 0; -} - -.bootstrap-select.btn-group .dropdown-menu { - margin-top: 1px; -} - -.bootstrap-select.btn-group .dropdown-menu > li > dt > .text { - font-weight: 600; - font-family: 'Open Sans'; - font-size: 14px; -} - -.bootstrap-select.btn-group .dropdown-menu .text-muted { - color: #999 !important; -} - -.bootstrap-select .caret { - border: 0; - width: auto; - height: auto; - margin-top: -10px !important; -} - -.bootstrap-select .caret:before { - content: "\f107"; - display: inline-block; - border: 0; - font-family: FontAwesome; - font-style: normal; - font-weight: normal; -} - -.bootstrap-select .selected i { - color: #aaa; -} - -/*** -Pace - Page Progress -***/ - -.pace .pace-progress { - z-index: 10000; - top: 40px; - height: 2px; -} - -.pace .pace-progress-inner { - box-shadow: none; -} - -.pace .pace-activity { - top: 44px; - right: 22px; - border-radius: 10px !important; -} - - -@media (max-width: 480px) { - - .page-header-fixed .pace .pace-progress { - top: 82px; - } - - .page-header-fixed .pace .pace-activity { - top: 88px; - right: 15px; - } - -} diff --git a/openo-portal/portal-common/src/main/webapp/common/css/print.css b/openo-portal/portal-common/src/main/webapp/common/css/print.css deleted file mode 100644 index dda6c5ed..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/css/print.css +++ /dev/null @@ -1,53 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -body { - background-color: #fff !important; -} - -.header { - display: none; -} - -.page-sidebar { - display: none; -} - -.theme-panel { - display: none; -} - -.hidden-print { - display: none; -} - -.footer { - display: none; -} - -.no-page-break { - page-break-after: avoid; -} - -.page-container { - margin: 0px !important; - padding: 0px !important; -} - -.page-content { - min-height: auto !important; - padding: 0px 20px 20px !important; - margin: 0 !important; -} \ No newline at end of file diff --git a/openo-portal/portal-common/src/main/webapp/common/css/style-custom.css b/openo-portal/portal-common/src/main/webapp/common/css/style-custom.css deleted file mode 100644 index c0052ed4..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/css/style-custom.css +++ /dev/null @@ -1,1510 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* remove rounds from all elements */ - -div, -input, -select, -textarea, -span, -img, -table, -td, -th, -p, -a, -button, -ul, -code, -pre, -li { - //-webkit-border-radius: 0 !important; - //-moz-border-radius: 0 !important; - //border-radius: 0 !important; -} - -/*** -Buttons & Dropdown Buttons -***/ - -.btn { - border-width: 0; - padding: 7px 14px; - font-size: 14px; - outline: none !important; - -webkit-box-shadow: none !important; - -moz-box-shadow: none !important; - box-shadow: none !important; - //-webkit-border-radius: 0 !important; - //-moz-border-radius: 0 !important; - //border-radius: 0 !important; - text-shadow: none; -} - -/* fix jumping group buttons */ -.btn-group.btn-group-solid .btn + .btn, -.btn-group.btn-group-solid .btn + .btn-group.btn-group-solid, -.btn-group.btn-group-solid .btn-group.btn-group-solid + .btn, -.btn-group.btn-group-solid .btn-group.btn-group-solid + .btn-group.btn-group-solid { - margin-left: 0px; -} - -.btn-group-vertical.btn-group-solid > .btn + .btn, -.btn-group-vertical.btn-group-solid > .btn + .btn-group, -.btn-group-vertical.btn-group-solid > .btn-group + .btn, -.btn-group-vertical.btn-group-solid > .btn-group + .btn-group { - margin-top: 0px; - margin-left: 0; -} - -.btn-default { - border-width: 1px; - padding: 6px 13px; -} - -.btn.red-stripe { - border-left: 3px solid #d84a38; -} - -.btn.blue-stripe { - border-left: 3px solid #4d90fe; -} - -.btn.purple-stripe { - border-left: 3px solid #852b99; -} - -.btn.green-stripe { - border-left: 3px solid #35aa47; -} - -.btn.yellow-stripe { - border-left: 3px solid #ffb848; -} - -.btn.dark-stripe { - border-left: 3px solid #555555; -} - -.btn.default { - color: #333333; - text-shadow: none; - background-color: #e5e5e5; -} -.btn.default:hover, -.btn.default:focus, -.btn.default:active, -.btn.default.active, -.btn.default[disabled], -.btn.default.disabled { - color: #333333; - background-color: #d8d8d8 !important; - outline: none !important; -} - -/* Red */ -.btn.red { - color: white; - text-shadow: none; - background-color: #d84a38; -} -.btn.red:hover, -.btn.red:focus, -.btn.red:active, -.btn.red.active, -.btn.red[disabled], -.btn.red.disabled { - background-color: #bb2413 !important; - color: #fff !important; - outline: none !important; -} - -/* Blue */ - -.btn.blue { - color: white; - text-shadow: none; - background-color: #4d90fe; -} -.btn.blue:hover, -.btn.blue:focus, -.btn.blue:active, -.btn.blue.active, -.btn.blue[disabled], -.btn.blue.disabled { - background-color: #0362fd !important; - color: #fff !important; - outline: none !important; -} - -.btn-group .btn.blue.dropdown-toggle { - background-color: #4d90fe !important; -} -.btn-group .btn.blue:hover, -.btn-group .btn.blue:focus, -.btn-group .btn.blue:active, -.btn-group .btn.blue.active, -.btn-group .btn.blue.disabled, -.btn-group .btn.blue[disabled] { - background-color: #0362fd !important; - color: #fff !important; - outline: none !important; -} - -/* Green */ -.btn.green { - color: white; - text-shadow: none; - background-color: #35aa47; -} -.btn.green:hover, -.btn.green:focus, -.btn.green:active, -.btn.green.active, -.btn.green.disabled, -.btn.green[disabled]{ - background-color: #1d943b !important; - color: #fff !important; - outline: none !important; -} - -/* Purple */ -.btn.purple { - color: white; - text-shadow: none; - background-color: #852b99; -} -.btn.purple:hover, -.btn.purple:focus, -.btn.purple:active, -.btn.purple.active, -.btn.purple.disabled, -.btn.purple[disabled] { - background-color: #6d1b81 !important; - color: #fff !important; - outline: none !important; -} - -.btn-group .btn.purple.dropdown-toggle { - background-color: #852b99 !important; -} -.btn-group .btn.purple:hover, -.btn-group .btn.purple:focus, -.btn-group .btn.purple:active, -.btn-group .btn.purple.active, -.btn-group .btn.purple.disabled, -.btn-group .btn.purple[disabled] { - background-color: #6d1b81 !important; - color: #fff !important; - outline: none !important; -} - -/* Yellow */ -.btn.yellow { - color: white; - text-shadow: none; - background-color: #ffb848; -} -.btn.yellow:hover, -.btn.yellow:focus, -.btn.yellow:active, -.btn.yellow.active, -.btn.yellow.disabled, -.btn.yellow[disabled] { - background-color: #eca22e !important; - color: #fff !important; - outline: none !important; -} - -.btn-group .btn.yellow.dropdown-toggle { - background-color: #ffb848 !important; -} -.btn-group .btn.yellow:hover, -.btn-group .btn.yellow:focus, -.btn-group .btn.yellow:active, -.btn-group .btn.yellow.active, -.btn-group .btn.yellow.disabled, -.btn-group .btn.yellow[disabled] { - background-color: #eca22e !important; - color: #fff !important; - outline: none !important; -} - -/* Black */ -.btn.dark { - color: white; - text-shadow: none; - background-color: #555555; -} -.btn.dark:hover, -.btn.dark:focus, -.btn.dark:active, -.btn.dark.active, -.btn.dark.disabled, -.btn.dark[disabled] { - background-color: #222222 !important; - color: #fff !important; - outline: none !important; -} - -.btn-group .btn.dark.dropdown-toggle { - background-color: #555555 !important; -} -.btn-group .btn.dark:hover, -.btn-group .btn.dark:focus, -.btn-group .btn.dark:active, -.btn-group .btn.dark.active, -.btn-group .btn.dark.disabled, -.btn-group .btn.dark[disabled] { - background-color: #222222 !important; - color: #fff !important; - outline: none !important; -} - -.btn-lg { - padding: 10px 16px; - font-size: 18px; - line-height: 1.33; - vertical-align: middle; -} - -.btn-lg > i { - font-size: 18px; -} - -.btn > i { - font-size: 14px; -} - -.btn-sm, -.btn-xs { - padding: 4px 10px 5px 10px; - font-size: 13px; - line-height: 1.5; -} - -.btn-sm > i, -.btn-xs > i { - font-size: 13px; -} - -.btn-xs { - padding: 1px 5px; -} - -.btn-block { - display: block; - width: 100%; - padding-left: 0; - padding-right: 0; -} - -/*** -Metro icons -***/ - -[class^="m-icon-"] { - display: inline-block; - width: 14px; - height: 14px; - margin-top: 3px; - line-height: 14px; - vertical-align: top; - background-image: url(../image/syncfusion-icons.png); - background-position: 0 0; - background-repeat: no-repeat; -} - -[class^="m-icon-big-"] { - display: inline-block; - width: 30px; - height: 30px; - margin: 6px; - vertical-align: middle; - background-image: url(../image/syncfusion-icons.png); - background-position: 0 0px; - background-repeat: no-repeat; -} - -/* large icons */ -.btn.m-icon-big { - padding: 9px 16px 8px 16px; -} - -.btn.m-icon-big.m-icon-only{ - padding: 9px 8px 8px 0px; -} - -.btn.m-icon-big [class^="m-icon-big-"] { - margin: 0 0 0 10px; -} - -.btn.m-icon-ony > i { - margin-left: 0px; -} - -/* default icons */ -.btn.m-icon { - padding: 7px 14px 7px 14px; -} - -.btn.m-icon [class^="m-icon-"] { - margin: 4px 0 0 5px; -} - -.btn.m-icon.m-icon-only { - padding: 7px 10px 7px 6px; -} - -/* white icon */ -.m-icon-white { - background-image: url(../image/syncfusion-icons-white.png); -} - -/* Misc */ -.m-icon-swapright { - background-position: -27px -10px; -} -.m-icon-swapdown { - background-position: -68px -10px; -} -.m-icon-swapleft { - background-position: -8px -10px; -} -.m-icon-swapup { - background-position: -46px -10px; -} -.m-icon-big-swapright{ - background-position: -42px -28px; -} -.m-icon-big-swapdown{ - background-position: -115px -28px; -} -.m-icon-big-swapleft{ - background-position: -6px -28px; -} -.m-icon-big-swapup{ - background-position: -78px -28px; -} - - -/*** -Popover - ***/ -.popover { - -webkit-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.2); - -moz-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.2); - box-shadow: 0 1px 8px rgba(0, 0, 0, 0.2); - padding: 0 !important; -} - -.popover .popover-title { - -webkit-border-radius: 0 !important; - -moz-border-radius: 0 !important; - border-radius: 0 !important; - margin: 0 !important; -} - -.info .popover .popover-title, -.popover.info .popover-title, -.info .popover .popover-content, -.popover.info .popover-content { - color:#27a9e3; -} - -.success .popover .popover-title, -.popover.success .popover-title, -.success .popover .popover-content, -.popover.success .popover-content { - color:#468847; -} - -.error .popover .popover-title, -.popover.error .popover-title, -.error .popover .popover-content, -.popover.error .popover-content { - color:#B94A48; -} - -.warning .popover .popover-title, -.popover.warning .popover-title, -.warning .popover .popover-content, -.popover.warning .popover-content { - color:#C09853; -} - -.popovers.yellow + .popover { - background: yellow; -} - -.popovers.yellow + .popover .popover-title { - background: yellow; -} - -.popovers.yellow + .popover .popover-content { - background: yellow; -} - -/*** -Dropdown -***/ - - /*Fixing dropdown issue on mobile devices in Bootstrap 3.2.2*/ -.dropdown-backdrop { - position: static; -} - -.dropdown:hover .caret, -.open.dropdown .caret { - opacity: 1; - filter: alpha(opacity=100); -} - - -.dropdown.open .dropdown-toggle { - color: #08c; - background: #ccc; - background: rgba(0, 0, 0, 0.3); -} - -/*** -Dropdown Menu -***/ - -.dropdown-menu { - position: absolute; - top: 100%; - left: 0; - z-index: 1000; - display: none; - float: left; - list-style: none; - text-shadow: none; - padding: 0px; - margin:0px; - background-color: #ffffff; - -webkit-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); - -moz-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); - box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); - font-size: 14px; - font-family: "Segoe UI",Helvetica, Arial, sans-serif; - border: 1px solid #ddd; -} - -/* custom dropdown conetnt */ -.dropdown-content { - padding:5px; -} - -.dropdown-content form { - margin:0; -} - -.dropdown.inline .dropdown-menu { - display: inline-block; - position: relative; -} - -.dropdown-menu.bottom-up { - top: auto; - bottom: 100%; - margin-bottom: 2px; -} - -.dropdown-menu li > a { - padding: 6px 0 6px 13px; - color: #333; - text-decoration: none; - display: block; - clear: both; - font-weight: normal; - line-height: 18px; - white-space: nowrap; -} - -.dropdown-menu li > a:hover, -.dropdown-menu .active > a, -.dropdown-menu .active > a:hover { - text-decoration: none; - background-image: none; - background-color: #eee; - color: #333; - filter:none; -} - -/* dropdown sub menu support for Bootsrap 3 */ -.dropdown-submenu { - position: relative; -} - -.dropdown-submenu > .dropdown-menu { - top: 5px; - left: 100%; - margin-top: -6px; - margin-left: -1px; -} - -.dropdown-submenu:hover > .dropdown-menu { - display: block; -} - -.dropup .dropdown-submenu > .dropdown-menu { - top: auto; - bottom: 0; - margin-top: 0; - margin-bottom: -2px; -} - -.dropdown-submenu > a:after { - position: absolute; - display: inline-block; - font-size: 14px; - right: 7px; - top: 7px; - font-family: FontAwesome; - height: auto; - content: "\f105"; - font-weight: 300; -} - -.dropdown-submenu:hover > a:after { - border-left-color: #ffffff; -} - -.dropdown-submenu.pull-left { - float: none; -} - -.dropdown-submenu.pull-left > .dropdown-menu { - left: -100%; - margin-left: 10px; -} - -.nav.pull-right > li > .dropdown-menu, -.nav > li > .dropdown-menu.pull-right { - right: 0; - left: auto; -} - -.nav.pull-right > li > .dropdown-menu:before, -.nav > li > .dropdown-menu.pull-right:before { - right: 12px; - left: auto; -} - -.nav.pull-right > li > .dropdown-menu:after, -.nav > li > .dropdown-menu.pull-right:after { - right: 13px; - left: auto; -} - -.nav.pull-right > li > .dropdown-menu .dropdown-menu, -.nav > li > .dropdown-menu.pull-right .dropdown-menu { - right: 100%; - left: auto; - margin-right: -1px; - margin-left: 0; - -webkit-border-radius: 6px 0 6px 6px; - -moz-border-radius: 6px 0 6px 6px; - border-radius: 6px 0 6px 6px; -} - -@media (max-width: 767px) { - - .navbar-nav .open .dropdown-menu { - position: absolute; - float: left; - width: auto; - margin-top: 0; - background-color: #ffffff; - border: 1px solid #ddd; - -webkit-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); - -moz-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); - box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); - } - - .navbar-nav .open .dropdown-menu > li > a { - padding: 6px 0 6px 13px; - color: #333 !important; - } - - .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-nav .open .dropdown-menu > li > a:focus { - background-color: #eee !important; - } - -} - -/*** -Dropdown Checkboxes (in v1.3) -***/ -.dropdown-checkboxes { - padding: 5px; -} - -.dropdown-checkboxes label { - display: block; - font-weight: 300; - color: #333; - margin-bottom: 4px; - margin-top: 4px; -} - - -/*** -Dropdown Menu Badges -***/ - -.dropdown-menu > li > a > .badge { - position: absolute; - margin-top: 1px; - right: 3px; - display: inline; - font-size: 11px; - font-weight: 300; - text-shadow:none; - height: 18px; - padding: 3px 6px 3px 6px; - text-align: center; - vertical-align: middle; - -webkit-border-radius: 12px !important; - -moz-border-radius: 12px !important; - border-radius: 12px !important; -} - -.dropdown-menu > li > a > .badge.badge-roundless { - -webkit-border-radius: 0 !important; - -moz-border-radius: 0 !important; - border-radius: 0 !important; -} - -/* end: sidebar menu badges */ - -/*** -Forms -***/ -code { - border: 1px solid #e1e1e1; - -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1); - -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1); - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1); -} -label { - font-weight: 400; - font-size: 14px; -} - -.form-control:-moz-placeholder { - color: #999999; -} -.form-control::-moz-placeholder { - color: #999999; -} -.form-control:-ms-input-placeholder { - color: #999999; -} -.form-control::-webkit-input-placeholder { - color: #999999; -} -.form-control { - font-size: 14px; - font-weight: normal; - color: #333333; - background-color: #ffffff; - border: 1px solid #e5e5e5; - border-radius: 0; - -webkit-box-shadow: none; - box-shadow: none; - -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; - transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; -} -.form-control:focus { - border-color: #999999; - outline: 0; - -webkit-box-shadow: none !important; - box-shadow: none !important; -} -.form-control[disabled], -.form-control[readonly], -fieldset[disabled] .form-control { - cursor: not-allowed; - background-color: #eeeeee; -} - -.form-control.height-auto { - height: auto; -} - -.uneditable-input { - padding: 6px 12px; - min-width: 206px; - font-size: 14px; - font-weight: normal; - height: 34px; - color: #333333; - background-color: #ffffff; - border: 1px solid #e5e5e5; - border-radius: 0; - -webkit-box-shadow: none; - box-shadow: none; - -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; - transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; -} - -label.form-control { - display: block; - margin-bottom: 5px; -} - -input[disabled], -select[disabled], -textarea[disabled] { - cursor: not-allowed; - background-color: #F4F4F4 !important; -} - -input[readonly], -select[readonly], -textarea[readonly] { - cursor: not-allowed; - background-color: #F9F9F9 !important; -} - -/* input groups */ -.input-group.input-group-fixed { - width: auto !important; -} - -.input-group-addon { - border-color: #e5e5e5; - background: #e5e5e5; - min-width: 39px; -} - -.input-group-addon > i { - color: #999; -} - -/* form control sizing */ -.form-control-inline { - display: inline-block !important; -} - -.input-mini { - width: 45px !important; -} - -.input-xsmall { - width: 80px !important; -} - -.input-small { - width: 120px !important; -} - -.input-medium { - width: 240px !important; -} - -.input-large { - width: 320px !important; -} - -.input-xlarge { - width: 480px !important; -} - -.input-inline { - display: inline-block; - width: auto; - vertical-align: middle; -} - -.form-group .input-inline { - margin-right: 5px; -} - -.input-sm { - height: 28px; - padding: 5px 10px; - font-size: 13px; -} - -select.input-sm { - height: 28px; - line-height: 28px; - padding: 2px 10px; -} - -/*** -Input spinner(in v1.4) -***/ - -input[type="text"].spinner, -input[type="password"].spinner, -input[type="datetime"].spinner, -input[type="datetime-local"].spinner, -input[type="date"].spinner, -input[type="month"].spinner, -input[type="time"].spinner, -input[type="week"].spinner, -input[type="number"].spinner, -input[type="email"].spinner, -input[type="url"].spinner, -input[type="search"].spinner, -input[type="tel"].spinner, -input[type="color"].spinner { - background-image: url("../image/input-spinner.gif") !important; - background-repeat: no-repeat; - background-position: right 8px; -} - -@media (max-width: 768px) { - - .input-large { - width: 250px !important; - } - - .input-xlarge { - width: 300px !important; - } - -} - -/*** -Error States -***/ - -.has-warning .help-inline, -.has-warning .help-block, -.has-warning .control-label { - color: #c09853; -} - -.has-warning .form-control { - border-color: #c09853; - -webkit-box-shadow: none; - box-shadow: none; -} - -.has-warning .form-control:focus { - border-color: #a47e3c; - -webkit-box-shadow: none; - box-shadow: none; -} - -.has-warning .input-group-addon { - color: #c09853; - background-color: #fcf8e3; - border-color: #c09853; -} - -.has-error .help-inline, -.has-error .help-block, -.has-error .control-label { - color: #b94a48; -} - -.has-error .form-control { - border-color: #b94a48; - -webkit-box-shadow: none; - box-shadow: none; -} - -.has-error .form-control:focus { - border-color: #953b39; - -webkit-box-shadow: none; - box-shadow: none; -} - -.has-error .input-group-addon { - color: #b94a48; - background-color: #f2dede; - border-color: #b94a48; -} - -.has-success .help-inline, -.has-success .help-block, -.has-success .control-label { - color: #468847; -} - -.has-success .form-control { - border-color: #468847; - -webkit-box-shadow: none; - box-shadow: none; -} - -.has-success .form-control:focus { - border-color: #356635; - -webkit-box-shadow: none; - box-shadow: none; -} - -.has-success .input-group-addon { - color: #468847; - background-color: #dff0d8; - border-color: #468847; -} - -/*** -Custom label and badges -***/ - -.label, -.badge { - font-weight: 300; - text-shadow: none !important; -} - -.label { - font-size: 12px; - padding: 3px 6px 3px 6px; -} - -.label.label-sm { - font-size: 12px; - padding: 1px 4px 1px 4px; -} - -h1 .label, -h2 .label, -h3 .label, -h4 .label, -h5 .label, -h6 .label, -h7 .label { - font-size: 75%; -} - -.badge { - font-size: 11px !important; - font-weight: 300; - text-align: center; - background-color: #e02222; - height: 18px; - padding: 3px 6px 3px 6px; - -webkit-border-radius: 12px !important; - -moz-border-radius: 12px !important; - border-radius: 12px !important; - text-shadow:none !important; - text-align: center; - vertical-align: middle; -} - -.badge.badge-roundless { - -webkit-border-radius: 0 !important; - -moz-border-radius: 0 !important; - border-radius: 0 !important; -} - -.badge-default, -.label-default { - background-color: #999 !important; -} - -.badge-primary, -.label-primary { - background-color: #428bca !important; -} - -.label-success, -.badge-success { - background-color: #3cc051; - background-image: none !important; -} - -.label-warning, -.badge-warning { - background-color: #fcb322; - background-image: none !important; -} - -.label-danger, -.badge-danger { - background-color: #ed4e2a; - background-image: none !important; -} - -.label-info, -.badge-info { - background-color: #57b5e3; - background-image: none !important; -} - -/* fix badge position for navs */ -.nav.nav-pills > li > a > .badge { - margin-top: -2px; -} - -.nav.nav-stacked > li > a > .badge { - margin-top: 1px; - margin-bottom: 0px; -} - -/*** -Iconic Labels -***/ - -.label.label-icon { - padding: 4px 1px 4px 5px; - margin-right: 2px; - text-align: center !important; -} - -.ie9 .label.label-icon, -.ie10 .label.label-icon { - padding: 3px 0px 3px 3px; -} - -.label.label-icon > i { - font-size: 12px; - text-align: center !important; -} - - -/*** -Pagination -***/ -.pagination { - margin: 10px 0; -} - -.pagination .active > a, -.pagination .active > a:hover { - background: #eee; - border-color: #dddddd; - color: #333; -} - - - -/*** -wells -***/ -.well { - -webkit-box-shadow: none !important; - -moz-box-shadow: none !important; - box-shadow: none !important; -} - -/* Bootstrap Tabs */ - -.dropup.open > .dropdown-toggle, -.dropdown.open > .dropdown-toggle { - border-color: #ddd !important; -} - -.nav-tabs > li > .dropdown-menu:after, -.nav-pills > li > .dropdown-menu:after, -.navbar-nav > li > .dropdown-menu:after, - -.nav-tabs > li > .dropdown-menu:before, -.nav-pills > li > .dropdown-menu:before, -.navbar-nav > li > .dropdown-menu:before { - display: none !important; -} - -.nav-tabs > .dropdown.open > .dropdown-toggle, -.nav-pills > .dropdown.open > .dropdown-toggle { - background: #eee !important; - color: #0d638f !important; -} - - -.nav-tabs, -.nav-pills { - margin-bottom: 10px; -} - -.tabs-right > .nav-tabs, -.tabs-left > .nav-tabs { - border-bottom: 0; -} - -.tabs-left > .nav-tabs > li, -.tabs-right > .nav-tabs > li { - float: none; -} - -.tabs-left > .nav-tabs > li > a, -.tabs-right > .nav-tabs > li > a { - min-width: 74px; - margin-right: 0; - margin-bottom: 3px; -} - -.tabs-left > .nav-tabs { - float: left; - margin-right: 19px; - border-right: 1px solid #ddd; -} - -.tabs-left > .nav-tabs > li > a { - margin-right: -1px; - -webkit-border-radius: 4px 0 0 4px; - -moz-border-radius: 4px 0 0 4px; - border-radius: 4px 0 0 4px; -} - -.tabs-left > .nav-tabs > li > a:hover, -.tabs-left > .nav-tabs > li > a:focus { - border-color: #eeeeee #dddddd #eeeeee #eeeeee; -} - -.tabs-left > .nav-tabs .active > a, -.tabs-left > .nav-tabs .active > a:hover, -.tabs-left > .nav-tabs .active > a:focus { - border-color: #ddd transparent #ddd #ddd; - *border-right-color: #ffffff; -} - -.tabs-right > .nav-tabs { - float: right; - margin-left: 19px; - border-left: 1px solid #ddd; -} - -.tabs-right > .nav-tabs > li > a { - margin-left: -1px; - -webkit-border-radius: 0 4px 4px 0; - -moz-border-radius: 0 4px 4px 0; - border-radius: 0 4px 4px 0; -} - -.tabs-right > .nav-tabs > li > a:hover, -.tabs-right > .nav-tabs > li > a:focus { - border-color: #eeeeee #eeeeee #eeeeee #dddddd; -} - -.tabs-right > .nav-tabs .active > a, -.tabs-right > .nav-tabs .active > a:hover, -.tabs-right > .nav-tabs .active > a:focus { - border-color: #ddd #ddd #ddd transparent; - *border-left-color: #ffffff; -} - -.tabs-below > .nav-tabs, -.tabs-below > .nav-pills { - border-bottom: 0; - margin-bottom: 0px; - margin-top: 10px; -} - -.tabs-below > .nav-tabs { - border-top: 1px solid #ddd; - margin-bottom: 0; - margin-top: 10px; -} - -.tabs-below > .nav-tabs > li { - margin-top: -1px; - margin-bottom: 0; -} - -.tabs-below > .nav-tabs > li > a { - -webkit-border-radius: 0 0 4px 4px; - -moz-border-radius: 0 0 4px 4px; - border-radius: 0 0 4px 4px; -} - -.tabs-below > .nav-tabs > li > a:hover, -.tabs-below > .nav-tabs > li > a:focus { - border-top-color: #ddd; - border-bottom-color: transparent; -} - -.tabs-below > .nav-tabs > .active > a, -.tabs-below > .nav-tabs > .active > a:hover, -.tabs-below > .nav-tabs > .active > a:focus { - border-color: transparent #ddd #ddd #ddd; -} - -/* BS3.0.3 removed tabbable class so its added back */ -.tabbable:before, -.tabbable:after { - display: table; - content: " "; -} - -.tabbable:after { - clear: both; -} - -.tabbable:before, -.tabbable:after { - display: table; - content: " "; -} - -.tabbable:after { - clear: both; -} - -/*** -Bootstrap modal -***/ - -.modal { - z-index: 10050 !important; - outline: none !important; -} - -.modal-header { - border-bottom: 1px solid #EFEFEF; -} - -.modal-header h3{ - font-weight: 300; -} - -.modal-small.modal-dialog { - width: 400px; -} - -.modal-wide.modal-dialog { - width: 60%; -} - -.modal-full.modal-dialog { - width: 100%; -} - -@media (max-width: 768px) { - - .modal-small.modal-dialog, - .modal-wide.modal-dialog, - .modal-full.modal-dialog { - width: auto; - } - -} - -/*** -Modal header close button fix -***/ -.modal-header .close { - margin-top: 0px !important; -} - -.modal > .loading { - position: absolute; - top: 50%; - left:50%; - margin-top: -22px; - margin-left: -22px; -} - -.modal-backdrop { - border: 0 !important; - outline: none !important; - z-index: 10049 !important; -} - -.modal-backdrop, -.modal-backdrop.fade.in { - background-color: #333 !important; -} - -/* fix: content shifting to the right on modal open due to scrollbar closed */ -.modal { - overflow-y: auto !important; -} - -.modal-open { - overflow-y: auto !important; -} - -.modal-open-noscroll { - overflow-y: hidden !important; -} - - -/*** -Image Carousel -***/ -.carousel.image-carousel .carousel-inner { - padding-top: 0; - padding-bottom: 0; -} - -.carousel.image-carousel .carousel-control i { - position: absolute; - top:40%; -} - -.carousel.image-carousel.image-carousel-hoverable .carousel-control i { - display: none; -} - -.carousel.image-carousel.image-carousel-hoverable:hover .carousel-control i { - display: inline-block; -} - -.carousel.image-carousel .carousel-control.left i { - left:10px; -} - -.carousel.image-carousel .carousel-control.right i { - right:10px; -} - -.carousel.image-carousel .carousel-indicators { - margin-top: 10px; - bottom: -7px; -} - -.carousel.image-carousel .carousel-indicators li { - background-color: #666; -} - -.carousel.image-carousel .carousel-indicators li.active { - background-color: #333; -} - -.carousel.image-carousel .carousel-caption { - position: absolute; - right: 0; - bottom: 0; - left: 0; - padding: 15px 15px 25px 15px; - background: #333333; - background: rgba(0, 0, 0, 0.75); -} - -.carousel.image-carousel .carousel-caption h4, -.carousel.image-carousel .carousel-caption h3, -.carousel.image-carousel .carousel-caption h2, -.carousel.image-carousel .carousel-caption p { - text-align: left; - line-height: 20px; - color: #ffffff; -} - -.carousel.image-carousel .carousel-caption h2, -.carousel.image-carousel .carousel-caption h3, -.carousel.image-carousel .carousel-caption h4 { - margin: 0 0 5px; -} - -.carousel.image-carousel .carousel-caption h2 a, -.carousel.image-carousel .carousel-caption h3 a, -.carousel.image-carousel .carousel-caption h4 a { - color: #aaa; -} - -.carousel.image-carousel .carousel-caption p { - margin-bottom: 0; -} - -.carousel.image-carousel .item { - margin: 0; -} - -/*** -Bootstrap Tables -***/ - -.table thead > tr > th { - border-bottom: 0; -} - -.table tbody tr.active td, -.table tbody tr.active th { - background-color: #e9e9e9 !important; -} - -.table tbody tr.active:hover td, -.table tbody tr.active:hover th { - background-color: #e1e1e1 !important; -} - -.table-striped tbody tr.active:nth-child(odd) td, -.table-striped tbody tr.active:nth-child(odd) th { - background-color: #017ebc; -} - -.table .heading > th { - background-color: #eee !important; -} - -/*** -Bootstrap Panel -***/ - -.panel { - -webkit-box-shadow: none !important; - -moz-box-shadow: none !important; - box-shadow: none !important; -} - -.panel .panel-title > a:hover { - text-decoration: none; -} - -.accordion .panel-heading { - padding: 0; -} - -.accordion .panel-title { - padding: 0; -} - -.accordion .panel-title .accordion-toggle { - display: block; - padding: 10px 15px; -} - -.accordion .accordion-toggle.accordion-toggle-styled { - background: url("../image/accordion-plusminus.png") no-repeat; - background-position: right -19px; - margin-right: 15px; -} - -.accordion .accordion-toggle.accordion-toggle-styled.collapsed { - background-position: right 12px; -} - -/*** -Responsive Image -***/ -.table td .img-responsive{ - width:100%; -} - -/*** -Unstyled List -***/ - -.list-unstyled li > .list-unstyled { - margin-left: 25px; -} - -.alarm-critical{ - background-color: rgb(255, 0, 0); -} - -.alarm-major{ - background-color: rgb(255, 150, 0); -} - -.alarm-minor{ - background-color: rgb(248, 252, 96); -} - -.alarm-warning{ - background-color: rgb(152, 240, 248); -} \ No newline at end of file diff --git a/openo-portal/portal-common/src/main/webapp/common/css/style-ict-bootstrap.css b/openo-portal/portal-common/src/main/webapp/common/css/style-ict-bootstrap.css deleted file mode 100644 index 49685ac2..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/css/style-ict-bootstrap.css +++ /dev/null @@ -1,838 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -@font-face { - font-family: 'Lato'; - font-style: normal; - font-weight: 400; - src: local('Lato Regular'), local('Lato-Regular'), url(9k-RPmcnxYEPm8CNFsH2gg.woff) format('woff'); -} -html, body, div, span, applet, object, blockquote, pre, -a, abbr, acronym, address, big, cite, code, -del, dfn, em, img, ins, kbd, q, s, samp, -small, strike, strong, sub, sup, tt, var, -b, u, i, center, -dl, dt, dd, ol, ul, li, -fieldset, form, label, legend, -table, caption, tbody, tfoot, thead, tr, th, td, -article, aside, canvas, details, embed, -figure, figcaption, footer, header, hgroup, -menu, nav, output, ruby, section, summary, -time, mark, audio, video { - margin: 0; - padding: 0; - border: 0; - font-size: 1em; - vertical-align: baseline; -} -/* HTML5 display-role reset for older browsers */ -article, aside, details, figcaption, figure, -footer, header, hgroup, menu, nav, section { - display: block; -} -body { - background: rgba(231, 231, 231, 0.43); - line-height: 1.125em; - color: white; - max-width: 1920px; - margin: 0 auto; - position: relative; - font-family: 'Lato', Helvetica, Arial, Tahoma; - text-shadow: 1px 1px 0 rgba(0,0,0,0.3); -} -ol, ul { - padding: 0 10px; - margin: 0 10px; - line-height: 1.5em; -} -h1, h2, h3, h4, h5, h6 { - text-shadow: 1px 1px 0 rgba(0,0,0,0.5); - font-family: 'Lato', Georgia, Helvetica, Tahoma; - margin: 10px 0; - font-weight: normal; -} -h1 { - font-size: 1.875em; -} -h2 { - font-size: 1.6em; - line-height: 1em; -} -h3 { - font-size: 1.25em; -} -h4 { - font-size: 1.125em; -} -h5 { - font-size: 1em; -} -h6 { - font-size: 0.875em; -} -a { - text-decoration: none; - color: white; -} -a:hover { - color: white; - opacity: 0.9; -} -a:visited { - color: white; -} -h2 { - cursor: pointer; -} -code, pre { - font-family: Monaco, Menlo, Consolas; - font-size: 1em; - color: #FFFFDE; - padding: 0 3px 2px; -} - -table { - border-collapse: collapse; - border-spacing: 0; -} - -.header { - /*padding: 14px 0; - background-color: rgb(19, 17, 17); - background-color: #006a3f; - background-image: - radial-gradient(rgba(0,0,0,0.1) 15%, transparent 16%), - radial-gradient(rgba(0,0,0,0.1) 15%, transparent 16%), - radial-gradient(rgba(255, 255, 255, 0.1) 15%, transparent 20%), - radial-gradient(rgba(255, 255, 255, 0.1) 15%, transparent 20%); - background-image: - -webkit-radial-gradient(rgba(0,0,0,0.1) 15%, transparent 16%), - -webkit-radial-gradient(rgba(0,0,0,0.1) 15%, transparent 16%), - -webkit-radial-gradient(rgba(255, 255, 255, 0.1) 15%, transparent 20%), - -webkit-radial-gradient(rgba(255, 255, 255, 0.1) 15%, transparent 20%); - background-position: 0 0px, 4px 4px, 0 1px, 4px 5px; - background-size: 8px 8px; - border-bottom: 1px solid rgb(41, 41, 41);*/ - margin-top: 1%; - /* margin-left: 10%; */ - margin-left: 90px; -} -@media (min-width: 1600px){ - .header { - margin-top: 1%; - margin-left: 95px; - } -} - -.header div.float-left { - /*padding-left: 2%;*/ -} - -@media (min-width: 769px) and (max-width: 1024px) { - .header div.float-left { - /*padding-left: 5%;*/ - } -} - -.header a { - font-size: 35px; - color: white; - display: block; - opacity: 0.8; -} -.header a:first-letter { - font-size: 60px; - line-height: 40px; - font-weight: bold; -} -.header .target { - margin-left: 5px; - margin-bottom: 20px; -} - -.header .reponsive-block { - list-style: none; - margin: 0px; - padding: 50px 2% 0 0; -} - -.header .reponsive-block li { - display: inline-block; - float:left; -} - -.header .reponsive-block a { - display: inline-block; - margin: 0 5px; - cursor: pointer; - background: url(../i/reponsive.png) no-repeat; -} - -.header .reponsive-block a.desktop { - background-position: 3px 0; - width: 34px; height: 26px; -} - -.header .reponsive-block a.tablet-landscape { - background-position: -49px 0; - width: 22px; - height: 22px; -} - -.header .reponsive-block a.tablet-portrait { - background-position: -90px 0; - width: 18px; - height: 24px; -} - -.header .reponsive-block a.iphone-landscape { - background-position: -129px 0; - width: 20px; - height: 20px; -} - -.header .reponsive-block a.iphone-portrait { - background-position: -166px 0; - width: 16px; - height: 26px; -} - -.header .reponsive-block a.desktop:hover, -.header .reponsive-block a.desktop.active { - background-position: 3px -34px; -} - -.header .reponsive-block a.tablet-landscape:hover, -.header .reponsive-block a.tablet-landscape.active { - background-position: -49px -34px; -} - -.header .reponsive-block a.tablet-portrait:hover, -.header .reponsive-block a.tablet-portrait.active { - background-position: -91px -33px; -} - -.header .reponsive-block a.iphone-landscape:hover, -.header .reponsive-block a.iphone-landscape.active { - background-position: -128px -33px; -} - -.header .reponsive-block a.iphone-portrait:hover, -.header .reponsive-block a.iphone-portrait.active { - background-position: -166px -33px; -} -.free-wall { - margin: auto; -} - -.free-wall-logo { - margin: auto; - height: 420px; -} -.size2-2 { - width: 80px; - height: 80px; -} - -.size11 { - height: 160px; - width: 160px; -} - -.size12 { - width: 160px; - height: 320px; -} - -.size21 { - width: 320px; - height: 160px; -} - -.size22 { - height: 320px; - width: 320px; -} - -.size13 { - width: 160px; - height: 480px; -} - -.size31 { - width: 480px; - height: 160px; -} - -.size23 { - width: 320px; - height: 480px; -} - -.size24 { - width: 320px; - height: 640px; -} - -.size32 { - width: 480px; - height: 320px; -} - -.size33 { - width: 480px; - height: 480px; -} - -.size34 { - width: 480px; - height: 640px; -} - -.size43 { - width: 640px; - height: 480px; -} - -.size35 { - width: 480px; - height: 800px; -} - -.size53 { - width: 800px; - height: 480px; -} - -.size36 { - width: 480px; - height: 960px; -} - -.size41 { - width: 270px; - height: 160px; -} -.size42 { - width: 270px; - height: 320px; -} -.size41-1024 { - width: 213px; - height: 133px; -} -.size42-1024 { - width: 213px; - height: 275px; -} -.size41-1366 { - width: 278px; - height: 156px; -} -.size42-1366 { - width: 278px; - height: 332px; -} -.size41-1440 { - width: 310px; - height: 168px; -} -.size42-1440 { - width: 310px; - height: 340px; -} -.size41-1600 { - width: 330px; - height: 173px; -} -.size42-1600 { - width: 330px; - height: 354px; -} - -.donate form { - height: 100%; - width: 100%; - background: rgb(44, 62, 80); -} - -.donate form .paypal { - display: block; - margin: auto; - padding: 20px 0px 0px 0px; - outline: 0; -} - -.img-demo { - vertical-align: bottom; - list-style: none; - margin:0; - padding: 0; -} - -.img-demo li { - float: left; - width: 25%; - text-align: center; -} - -.img-demo li img { - border: 2px solid white; - width: 98px; - height: 98px; -} - -.float-left { - float: left; -} - -.float-right { - float: right; -} - -.clearfix:before, -.clearfix:after { - content: ""; - display: table; -} - -.clearfix:after { - clear: both; -} - -.clearfix { - zoom: 1; /* For IE 6/7 (trigger hasLayout) */ -} - -.rest-left { - margin-left: 244px; -} - -.desc h1, -.desc h2, -.desc h3, -.desc h4, -.desc h5, -.desc h6 { - font-weight: bold; -} - -.desc h2 { - border-bottom: 1px solid rgba(0,0,0,0.1); - margin-top: 0px; - margin-bottom: 0px; - padding-bottom: 50px; -} - -.desc h2 span { - float: left; - display: block; - line-height: 50px; -} - -@media (max-width: 1024px) { - .brick { - height:140px; - } -} - -.brick { - margin-top:10px; - background-color: white; - /* float: left; */ - cursor: default; - overflow: hidden; - background-repeat: no-repeat; - background-size: cover; - background-position: center; - height:160px; -} - -@media (min-width: 1440px) { - .brick { - height:180px; - } -} - -.brick .cover { - overflow: hidden; - margin: 20px; - margin-top: 25%; - font-size: 30px; - float: right; - text-align: right; -} - -.brick .read-more { - position: absolute; - display: none; - bottom: 0px; - left: 0px; - right: 0px; - padding: 12px; - background: rgb(0, 0, 0); - background: rgba(0, 0, 0, 0.45); -} - -.brick:hover .read-more { - display: block; - cursor: pointer; -} - -.brick .desc { - display: none; -} - -.full-width .float-left { - display: none; -} - -.full-width .desc { - display: block; -} - -.full-width.brick { - box-shadow: none; - overflow: visible; - border: none !important; - background: none !important; -} - -.full-width.brick .cover { - margin: 0px 20px; - color: #333; -} - -.full-width.brick .cover * { - text-shadow: none; -} - -.full-width.brick .cover code { - color: #666; -} - -.open .float-left { - display: none; -} - -.open .desc { - display: block; -} - -.example { - width: 0px; - height: 0px; - overflow: visible !important; /* for ie7 */ -} - -.example-draggable { - cursor: move; -} - -.example-draggable * { - cursor: move; -} - -.example-draggable a { - cursor: pointer; -} - -.cell { - background-position: center center; - background-repeat: no-repeat; - background-size: cover; - position: absolute; - background-color: #222; -} - -[class*="-share"] { - cursor: pointer; - margin: 20px 0; - line-height: 30px; - padding-left: 30px; -} - -.facebook-share { - background: url(../i/fb.png) no-repeat left center; -} - -.twitter-share { - background: url(../i/tw.png) no-repeat left center; -} - -.google-share { - background: url(../i/gp.png) no-repeat left center; -} - -.download-icon { - background: url(../i/download.png) no-repeat left center; - display: block; - margin: 0 0 10px 0; - line-height: 30px; - padding-left: 30px; -} - -.js-icon { - background: url(../i/js.png) no-repeat left center; - display: block; - line-height: 30px; - padding-left: 30px; -} - -.fork { - float: right; - width: 100%; - height: 100%; - display: block; - background: url(../i/forkme.png) no-repeat top right; -} - -.back-button { - position: fixed; - z-index: 9999; - padding: 1%; - bottom: 2%; - right: 2%; - display: none; - background: black; -} - -.back-button .back-icon { - background: url(../i/back.png) no-repeat top center; - width: 45px; - height: 27px; - display: block; -} - -.back-button .back-icon:hover { - background: url(../i/back.png) no-repeat bottom center; -} - -@media (min-width: 1600px) { - .main-content-wrapper{ - width:100%; - margin-left:95px; - margin-right: 1%; - } -} - -@media (min-width: 1441px) and (max-width: 1599px) { - .main-content-wrapper{ - width:100%; - /*margin-left: 0%; */ - margin-left:75px; - margin-right: 1%; - } -} - -@media (min-width: 1367px) and (max-width: 1440px) { - .main-content-wrapper{ - width:100%; - margin-left: 75px; - margin-right: 1%; - } -} - -@media (min-width: 1281px) and (max-width: 1366px) { - .main-content-wrapper{ - width:100%; - /*margin-left: 2%; */ - margin-left:75px; - margin-right: 2%; - } -} - -@media (min-width: 1025px) and (max-width: 1280px) { - .main-content-wrapper{ - width:100%; - /*margin-left: 4%;*/ - margin-left:75px; - margin-right: 1%; - } -} - -@media (min-width: 769px) and (max-width: 1024px) { - .main-content-wrapper{ - width:100%; - /*margin-left: 6%;*/ - margin-left:75px; - margin-right: 1%; - } -} - -@media (min-width: 641px) and (max-width: 768px) { - .main-content-wrapper{ - width:100%; - margin-left: 10%; - margin-right: 1%; - } -} - -@media (min-width: 481px) and (max-width: 640px) { - .main-content-wrapper{ - width:100%; - margin-left: 0%; - margin-right: 1%; - } -} - -@media (max-width: 480px) { - .main-content-wrapper{ - width:100%; - margin-left: 9%; - margin-right: 1%; - } -} - -body{ - font-family: microsoft yahei; - background: #484747; -} - -.skyBlue-mainpage{ - background: -moz-linear-gradient(left top, #1cadd9, #20c0f0); - background: -webkit-gradient(linear, left top, right bottom, color-stop(0, #1cadd9), color-stop(1, #20c0f0)); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#1cadd9', endColorstr='#20c0f0', GradientType='0'); - background: linear-gradient(to bottom right,#1cadd9, #20c0f0); -} -.golden-mainpage{ - background-image: -moz-linear-gradient(left top, #bca374, #d9cf7a); - background-image: -webkit-gradient(linear, left top, right bottom, color-stop(0, #bca374), color-stop(1, #d9cf7a)); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#bca374, endColorstr=#d9cf7a, GradientType=0); - background: linear-gradient(to bottom right,#bca374, #d9cf7a); -} -.manLieONCloud-image{ - background-image: url('../image/mainpage/pic/1.png'); -} -.orange-mainpage{ - background-image: -moz-linear-gradient(left top, #f09c0a, #f4be35); - background-image: -webkit-gradient(linear, left top, right bottom, color-stop(0, #f09c0a), color-stop(1, #f4be35)); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#f09c0a, endColorstr=#f4be35, GradientType=0); - background: linear-gradient(to bottom right,#f09c0a, #f4be35); -} -.pinkishRed-mainpage{ - background-image: -moz-linear-gradient(left top, #e03655, #ef3a5b); - background-image: -webkit-gradient(linear, left top, right bottom, color-stop(0, #e03655), color-stop(1, #ef3a5b)); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#e03655, endColorstr=#ef3a5b, GradientType=0); - background: linear-gradient(to bottom right,#e03655, #ef3a5b); -} -.magicCube-image{ - background-image: url('../image/mainpage/pic/4.png'); -} -.magicThought-image{ - background-image: url('../image/mainpage/pic/5.png'); -} -.grassGreen-mainpage{ - background-image: -moz-linear-gradient(left top, #008b04, #03a501); - background-image: -webkit-gradient(linear, left top, right bottom, color-stop(0, #008b04), color-stop(1, #03a501)); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#008b04, endColorstr=#03a501, GradientType=0); - background: linear-gradient(to bottom right,#008b04, #03a501); -} -.meeting-image{ - background-image: url('../image/mainpage/pic/3.png'); -} -.earth-image{ - background-image: url('../image/mainpage/pic/2.png'); -} -.toolsImageBrokenLine{ - background-image: url('../image/mainpage/icon/1.png'); - height: 150px; - width: 120px; - margin-top: 15%; - margin-left:-5px; -} -.toolsImageHierachy{ - background-image: url('../image/mainpage/icon/2.png'); - height: 150px; - width: 120px; - margin-top: 15%; - margin-left:-5px; -} -.toolsImageGear{ - background-image: url('../image/mainpage/icon/3.png'); - height: 150px; - width: 120px; - margin-top: 15%; - margin-left:-5px; -} -.toolsImagePresent{ - background-image: url('../image/mainpage/icon/4.png'); - height: 150px; - width: 120px; - margin-top: 15%; - margin-left:-5px; -} -.toolsImageFile{ - background-image: url('../image/mainpage/icon/5.png'); - height: 150px; - width: 120px; - margin-top: 15%; - margin-left:-5px; -} -.toolsImageBriefcase{ - background-image: url('../image/mainpage/icon/6.png'); - height: 150px; - width: 120px; - margin-top: 15%; - margin-left:-5px; -} -.contentTip{ - opacity:0; - display:block; - padding: 20px; - text-align: left; - line-height: inherit; - text-indent: 2em; - position: absolute; -} -.contentTipShow{ - display:block; - padding: 20px; - text-align: left; - line-height: inherit; - text-indent: 2em; - position: absolute; -} -.coverHidden{ - display:none; -} -.coverShrink{ - width:0px !important; - height:0px !important; -} -/* -.brick .contentToggle{ - -webkit-transition: opacity 1s ease-in-out; - -moz-transition: opacity 1s ease-in-out; - -o-transition: opacity 1s ease-in-out; - transition: opacity 1s ease-in-out; -} -.brick .cover :hover{ - opacity:0; -} -*/ -.hideSideMenuForMainPage { - display: none! important; -} -.fullFillDiv { - width:100%; - height:100%; -} -@media screen and (min-width: 992px)and (max-width: 1280px) { - .brick .cover { - font-size:25px; - } -} - diff --git a/openo-portal/portal-common/src/main/webapp/common/css/style-ict.css b/openo-portal/portal-common/src/main/webapp/common/css/style-ict.css deleted file mode 100644 index 85ad3eff..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/css/style-ict.css +++ /dev/null @@ -1,820 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -@font-face { - font-family: 'Lato'; - font-style: normal; - font-weight: 400; - src: local('Lato Regular'), local('Lato-Regular'), url(9k-RPmcnxYEPm8CNFsH2gg.woff) format('woff'); -} -html, body, div, span, applet, object, blockquote, pre, -a, abbr, acronym, address, big, cite, code, -del, dfn, em, img, ins, kbd, q, s, samp, -small, strike, strong, sub, sup, tt, var, -b, u, i, center, -dl, dt, dd, ol, ul, li, -fieldset, form, label, legend, -table, caption, tbody, tfoot, thead, tr, th, td, -article, aside, canvas, details, embed, -figure, figcaption, footer, header, hgroup, -menu, nav, output, ruby, section, summary, -time, mark, audio, video { - margin: 0; - padding: 0; - border: 0; - font-size: 1em; - vertical-align: baseline; -} -/* HTML5 display-role reset for older browsers */ -article, aside, details, figcaption, figure, -footer, header, hgroup, menu, nav, section { - display: block; -} -body { - background: rgba(231, 231, 231, 0.43); - line-height: 1.125em; - color: white; - max-width: 1920px; - margin: 0 auto; - position: relative; - font-family: 'Lato', Helvetica, Arial, Tahoma; - text-shadow: 1px 1px 0 rgba(0,0,0,0.3); -} -ol, ul { - padding: 0 10px; - margin: 0 10px; - line-height: 1.5em; -} -h1, h2, h3, h4, h5, h6 { - text-shadow: 1px 1px 0 rgba(0,0,0,0.5); - font-family: 'Lato', Georgia, Helvetica, Tahoma; - margin: 10px 0; - font-weight: normal; -} -h1 { - font-size: 1.875em; -} -h2 { - font-size: 1.6em; - line-height: 1em; -} -h3 { - font-size: 1.25em; -} -h4 { - font-size: 1.125em; -} -h5 { - font-size: 1em; -} -h6 { - font-size: 0.875em; -} -a { - text-decoration: none; - color: white; -} -a:hover { - color: white; - opacity: 0.9; -} -a:visited { - color: white; -} -h2 { - cursor: pointer; -} -code, pre { - font-family: Monaco, Menlo, Consolas; - font-size: 1em; - color: #FFFFDE; - padding: 0 3px 2px; -} - -table { - border-collapse: collapse; - border-spacing: 0; -} - -.header { - /*padding: 14px 0; - background-color: rgb(19, 17, 17); - background-color: #006a3f; - background-image: - radial-gradient(rgba(0,0,0,0.1) 15%, transparent 16%), - radial-gradient(rgba(0,0,0,0.1) 15%, transparent 16%), - radial-gradient(rgba(255, 255, 255, 0.1) 15%, transparent 20%), - radial-gradient(rgba(255, 255, 255, 0.1) 15%, transparent 20%); - background-image: - -webkit-radial-gradient(rgba(0,0,0,0.1) 15%, transparent 16%), - -webkit-radial-gradient(rgba(0,0,0,0.1) 15%, transparent 16%), - -webkit-radial-gradient(rgba(255, 255, 255, 0.1) 15%, transparent 20%), - -webkit-radial-gradient(rgba(255, 255, 255, 0.1) 15%, transparent 20%); - background-position: 0 0px, 4px 4px, 0 1px, 4px 5px; - background-size: 8px 8px; - border-bottom: 1px solid rgb(41, 41, 41);*/ - margin-top: 3%; - /* margin-left: 10%; */ - margin-left: 75px; -} -@media (min-width: 1600px){ - .header { - margin-top: 3%; - margin-left: 95px; - } -} - -.header div.float-left { - /*padding-left: 2%;*/ -} - -@media (min-width: 769px) and (max-width: 1024px) { - .header div.float-left { - /*padding-left: 5%;*/ - } -} - -.header a { - font-size: 35px; - color: white; - display: block; - opacity: 0.8; -} -.header a:first-letter { - font-size: 60px; - line-height: 40px; - font-weight: bold; -} -.header .target { - margin-left: 5px; - margin-bottom: 20px; -} - -.header .reponsive-block { - list-style: none; - margin: 0px; - padding: 50px 2% 0 0; -} - -.header .reponsive-block li { - display: inline-block; - float:left; -} - -.header .reponsive-block a { - display: inline-block; - margin: 0 5px; - cursor: pointer; - background: url(../i/reponsive.png) no-repeat; -} - -.header .reponsive-block a.desktop { - background-position: 3px 0; - width: 34px; height: 26px; -} - -.header .reponsive-block a.tablet-landscape { - background-position: -49px 0; - width: 22px; - height: 22px; -} - -.header .reponsive-block a.tablet-portrait { - background-position: -90px 0; - width: 18px; - height: 24px; -} - -.header .reponsive-block a.iphone-landscape { - background-position: -129px 0; - width: 20px; - height: 20px; -} - -.header .reponsive-block a.iphone-portrait { - background-position: -166px 0; - width: 16px; - height: 26px; -} - -.header .reponsive-block a.desktop:hover, -.header .reponsive-block a.desktop.active { - background-position: 3px -34px; -} - -.header .reponsive-block a.tablet-landscape:hover, -.header .reponsive-block a.tablet-landscape.active { - background-position: -49px -34px; -} - -.header .reponsive-block a.tablet-portrait:hover, -.header .reponsive-block a.tablet-portrait.active { - background-position: -91px -33px; -} - -.header .reponsive-block a.iphone-landscape:hover, -.header .reponsive-block a.iphone-landscape.active { - background-position: -128px -33px; -} - -.header .reponsive-block a.iphone-portrait:hover, -.header .reponsive-block a.iphone-portrait.active { - background-position: -166px -33px; -} -.free-wall { - margin: auto; -} - -.free-wall-logo { - margin: auto; - height: 420px; -} -.size2-2 { - width: 80px; - height: 80px; -} - -.size11 { - height: 160px; - width: 160px; -} - -.size12 { - width: 160px; - height: 320px; -} - -.size21 { - width: 320px; - height: 160px; -} - -.size22 { - height: 320px; - width: 320px; -} - -.size13 { - width: 160px; - height: 480px; -} - -.size31 { - width: 480px; - height: 160px; -} - -.size23 { - width: 320px; - height: 480px; -} - -.size24 { - width: 320px; - height: 640px; -} - -.size32 { - width: 480px; - height: 320px; -} - -.size33 { - width: 480px; - height: 480px; -} - -.size34 { - width: 480px; - height: 640px; -} - -.size43 { - width: 640px; - height: 480px; -} - -.size35 { - width: 480px; - height: 800px; -} - -.size53 { - width: 800px; - height: 480px; -} - -.size36 { - width: 480px; - height: 960px; -} - -.size41 { - width: 270px; - height: 160px; -} -.size42 { - width: 270px; - height: 320px; -} -.size41-1024 { - width: 213px; - height: 133px; -} -.size42-1024 { - width: 213px; - height: 275px; -} -.size41-1366 { - width: 278px; - height: 156px; -} -.size42-1366 { - width: 278px; - height: 332px; -} -.size41-1440 { - width: 310px; - height: 168px; -} -.size42-1440 { - width: 310px; - height: 340px; -} -.size41-1600 { - width: 330px; - height: 173px; -} -.size42-1600 { - width: 330px; - height: 354px; -} - -.donate form { - height: 100%; - width: 100%; - background: rgb(44, 62, 80); -} - -.donate form .paypal { - display: block; - margin: auto; - padding: 20px 0px 0px 0px; - outline: 0; -} - -.img-demo { - vertical-align: bottom; - list-style: none; - margin:0; - padding: 0; -} - -.img-demo li { - float: left; - width: 25%; - text-align: center; -} - -.img-demo li img { - border: 2px solid white; - width: 98px; - height: 98px; -} - -.float-left { - float: left; -} - -.float-right { - float: right; -} - -.clearfix:before, -.clearfix:after { - content: ""; - display: table; -} - -.clearfix:after { - clear: both; -} - -.clearfix { - zoom: 1; /* For IE 6/7 (trigger hasLayout) */ -} - -.rest-left { - margin-left: 244px; -} - -.desc h1, -.desc h2, -.desc h3, -.desc h4, -.desc h5, -.desc h6 { - font-weight: bold; -} - -.desc h2 { - border-bottom: 1px solid rgba(0,0,0,0.1); - margin-top: 0px; - margin-bottom: 0px; - padding-bottom: 50px; -} - -.desc h2 span { - float: left; - display: block; - line-height: 50px; -} - -.brick { - background-color: white; - float: left; - cursor: default; - overflow: hidden; - background-repeat: no-repeat; - background-size: cover; - background-position: center; -} - -.brick .cover { - overflow: hidden; - margin: 20px; -/* margin-left: 60%; */ - margin-top: 25%; -/* width: 120px; */ - height: 30px; - font-size: 30px; - padding: 7px; - float: right; - text-align: right; -} - -.brick .read-more { - position: absolute; - display: none; - bottom: 0px; - left: 0px; - right: 0px; - padding: 12px; - background: rgb(0, 0, 0); - background: rgba(0, 0, 0, 0.45); -} - -.brick:hover .read-more { - display: block; - cursor: pointer; -} - -.brick .desc { - display: none; -} - -.full-width .float-left { - display: none; -} - -.full-width .desc { - display: block; -} - -.full-width.brick { - box-shadow: none; - overflow: visible; - border: none !important; - background: none !important; -} - -.full-width.brick .cover { - margin: 0px 20px; - color: #333; -} - -.full-width.brick .cover * { - text-shadow: none; -} - -.full-width.brick .cover code { - color: #666; -} - -.open .float-left { - display: none; -} - -.open .desc { - display: block; -} - -.example { - width: 0px; - height: 0px; - overflow: visible !important; /* for ie7 */ -} - -.example-draggable { - cursor: move; -} - -.example-draggable * { - cursor: move; -} - -.example-draggable a { - cursor: pointer; -} - -.cell { - background-position: center center; - background-repeat: no-repeat; - background-size: cover; - position: absolute; - background-color: #222; -} - -[class*="-share"] { - cursor: pointer; - margin: 20px 0; - line-height: 30px; - padding-left: 30px; -} - -.facebook-share { - background: url(../i/fb.png) no-repeat left center; -} - -.twitter-share { - background: url(../i/tw.png) no-repeat left center; -} - -.google-share { - background: url(../i/gp.png) no-repeat left center; -} - -.download-icon { - background: url(../i/download.png) no-repeat left center; - display: block; - margin: 0 0 10px 0; - line-height: 30px; - padding-left: 30px; -} - -.js-icon { - background: url(../i/js.png) no-repeat left center; - display: block; - line-height: 30px; - padding-left: 30px; -} - -.fork { - float: right; - width: 100%; - height: 100%; - display: block; - background: url(../i/forkme.png) no-repeat top right; -} - -.back-button { - position: fixed; - z-index: 9999; - padding: 1%; - bottom: 2%; - right: 2%; - display: none; - background: black; -} - -.back-button .back-icon { - background: url(../i/back.png) no-repeat top center; - width: 45px; - height: 27px; - display: block; -} - -.back-button .back-icon:hover { - background: url(../i/back.png) no-repeat bottom center; -} - -@media (min-width: 1600px) { - .main-content-wrapper{ - width:100%; - margin-left:95px; - margin-right: 1%; - } -} - -@media (min-width: 1441px) and (max-width: 1599px) { - .main-content-wrapper{ - width:100%; - /*margin-left: 0%; */ - margin-left:75px; - margin-right: 1%; - } -} - -@media (min-width: 1367px) and (max-width: 1440px) { - .main-content-wrapper{ - width:100%; - margin-left: 75px; - margin-right: 1%; - } -} - -@media (min-width: 1281px) and (max-width: 1366px) { - .main-content-wrapper{ - width:100%; - /*margin-left: 2%; */ - margin-left:75px; - margin-right: 2%; - } -} - -@media (min-width: 1025px) and (max-width: 1280px) { - .main-content-wrapper{ - width:100%; - /*margin-left: 4%;*/ - margin-left:75px; - margin-right: 1%; - } -} - -@media (min-width: 769px) and (max-width: 1024px) { - .main-content-wrapper{ - width:100%; - /*margin-left: 6%;*/ - margin-left:75px; - margin-right: 1%; - } -} - -@media (min-width: 641px) and (max-width: 768px) { - .main-content-wrapper{ - width:100%; - margin-left: 10%; - margin-right: 1%; - } -} - -@media (min-width: 481px) and (max-width: 640px) { - .main-content-wrapper{ - width:100%; - margin-left: 0%; - margin-right: 1%; - } -} - -@media (max-width: 480px) { - .main-content-wrapper{ - width:100%; - margin-left: 9%; - margin-right: 1%; - } -} - -body{ - font-family: microsoft yahei; - background: #484747; -} - -.skyBlue-mainpage{ - background: -moz-linear-gradient(left top, #1cadd9, #20c0f0); - background: -webkit-gradient(linear, left top, right bottom, color-stop(0, #1cadd9), color-stop(1, #20c0f0)); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#1cadd9', endColorstr='#20c0f0', GradientType='0'); - background: linear-gradient(to bottom right,#1cadd9, #20c0f0); -} -.golden-mainpage{ - background-image: -moz-linear-gradient(left top, #bca374, #d9cf7a); - background-image: -webkit-gradient(linear, left top, right bottom, color-stop(0, #bca374), color-stop(1, #d9cf7a)); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#bca374, endColorstr=#d9cf7a, GradientType=0); - background: linear-gradient(to bottom right,#bca374, #d9cf7a); -} -.manLieONCloud-image{ - background-image: url('../image/mainpage/pic/1.png'); -} -.orange-mainpage{ - background-image: -moz-linear-gradient(left top, #f09c0a, #f4be35); - background-image: -webkit-gradient(linear, left top, right bottom, color-stop(0, #f09c0a), color-stop(1, #f4be35)); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#f09c0a, endColorstr=#f4be35, GradientType=0); - background: linear-gradient(to bottom right,#f09c0a, #f4be35); -} -.pinkishRed-mainpage{ - background-image: -moz-linear-gradient(left top, #e03655, #ef3a5b); - background-image: -webkit-gradient(linear, left top, right bottom, color-stop(0, #e03655), color-stop(1, #ef3a5b)); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#e03655, endColorstr=#ef3a5b, GradientType=0); - background: linear-gradient(to bottom right,#e03655, #ef3a5b); -} -.magicCube-image{ - background-image: url('../image/mainpage/pic/4.png'); -} -.grassGreen-mainpage{ - background-image: -moz-linear-gradient(left top, #008b04, #03a501); - background-image: -webkit-gradient(linear, left top, right bottom, color-stop(0, #008b04), color-stop(1, #03a501)); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#008b04, endColorstr=#03a501, GradientType=0); - background: linear-gradient(to bottom right,#008b04, #03a501); -} -.meeting-image{ - background-image: url('../image/mainpage/pic/3.png'); -} -.earth-image{ - background-image: url('../image/mainpage/pic/2.png'); -} -.toolsImageBrokenLine{ - background-image: url('../image/mainpage/icon/1.png'); - height: 150px; - width: 120px; - top: 30px; - position: absolute; -} -.toolsImageHierachy{ - background-image: url('../image/mainpage/icon/2.png'); - height: 150px; - width: 120px; - top: 30px; - position: absolute; -} -.toolsImageGear{ - background-image: url('../image/mainpage/icon/3.png'); - height: 150px; - width: 120px; - top: 30px; - position: absolute; -} -.toolsImagePresent{ - background-image: url('../image/mainpage/icon/4.png'); - height: 150px; - width: 120px; - top: 30px; - position: absolute; -} -.toolsImageFile{ - background-image: url('../image/mainpage/icon/5.png'); - height: 150px; - width: 120px; - top: 30px; - position: absolute; -} -.toolsImageBriefcase{ - background-image: url('../image/mainpage/icon/6.png'); - height: 150px; - width: 120px; - top: 30px; - position: absolute; -} -.contentTip{ - opacity:0; - display:block; - padding: 20px; - text-align: left; - line-height: inherit; - text-indent: 2em; - position: absolute; -} -.contentTipShow{ - display:block; - padding: 20px; - text-align: left; - line-height: inherit; - text-indent: 2em; - position: absolute; -} -.coverHidden{ - display:none; -} -.coverShrink{ - width:0px !important; - height:0px !important; -} -/* -.brick .contentToggle{ - -webkit-transition: opacity 1s ease-in-out; - -moz-transition: opacity 1s ease-in-out; - -o-transition: opacity 1s ease-in-out; - transition: opacity 1s ease-in-out; -} -.brick .cover :hover{ - opacity:0; -} -*/ -.hideSideMenuForMainPage { - display: none! important; -} -.fullFillDiv { - width:100%; - height:100%; -} - diff --git a/openo-portal/portal-common/src/main/webapp/common/css/style-responsive.css b/openo-portal/portal-common/src/main/webapp/common/css/style-responsive.css deleted file mode 100644 index 9971b13a..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/css/style-responsive.css +++ /dev/null @@ -1,989 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*** -Responsive Theme. -Based on http://getbootstrap.com/css/#responsive-utilities-classes -***/ - -/*** -Fixed Footer -***/ - -.page-footer-fixed.page-footer-fixed-mobile .footer { - position: fixed; - left: 0; - right: 0; - z-index: 10000; - bottom: 0; -} - -.page-footer-fixed.page-footer-fixed-mobile .page-container { - margin-bottom: 20px !important; -} - -.page-footer-fixed.page-footer-fixed-mobile.page-sidebar-fixed .footer { - margin-left: 0 !important; -} - -/*** -Form Medium Devices Up To Large Devices -***/ - -@media (min-width: 992px) and (max-width: 1200px) { - - .page-boxed .header.navbar .dropdown .username { - display: none; - } - -} - -@media (max-width: 1024px) { - .hidden-1024 { - display: none; - } -} - -/*** -From Medium Devices Up To Larger Devices -***/ - -@media (min-width: 992px) { - - /*** - Page sidebar - ***/ - .page-sidebar { - width: 225px; - float: left; - position: relative; - margin-right: -100%; - } - - .page-sidebar.navbar-collapse { - max-height: none !important; - } - - /*** - Page content - ***/ - .page-content-wrapper { - float: left; - width: 100%; - } - - .page-content { - margin-left: 0px; - margin-top: 0px; - min-height: 500px; - padding: 20px 20px 0px 20px; - } - - .page-content.no-min-height { - min-height: auto; - } - - /*** - Footer - ***/ - .footer { - clear: left; - } - - /*** - Fixed Sidebar - ***/ - .page-sidebar-fixed .page-content { - min-height: 500px; - } - - .page-sidebar-fixed .page-sidebar { - position: fixed !important; - margin-left: 0; - top: 41px; - } - - .page-sidebar-fixed ul.page-sidebar-menu > li.last { - margin-bottom: 15px !important; - } - - .page-sidebar-fixed.page-sidebar-hover-on .page-sidebar { - z-index: 10000; - width: 35px; - } - - .page-sidebar-fixed.page-sidebar-hover-on .page-sidebar .selected { - display: none; - } - - .page-sidebar-fixed.page-sidebar-hover-on .page-content { - margin-left: 35px; - } - - .page-sidebar-fixed.page-sidebar-hover-on .footer { - margin-left: 35px; - } - - .page-sidebar-fixed .page-sidebar-closed .page-sidebar .sidebar-search .submit, - .page-sidebar-fixed .page-sidebar .sidebar-toggler { - -webkit-transition: all 0.3s ease; - -moz-transition: all 0.3s ease; - -o-transition: all 0.3s ease; - transition: all 0.3s ease; - } - - .page-sidebar-fixed.page-sidebar-reversed .page-sidebar-closed .page-sidebar .sidebar-search .submit, - .page-sidebar-fixed.page-sidebar-reversed .page-sidebar .sidebar-toggler { - -webkit-transition: none; - -moz-transition: none; - -o-transition: none; - transition: none; - } - - .page-sidebar-hovering { - overflow: hidden !important; - } - - .page-sidebar-hovering .sub-menu, - .page-sidebar-hovering span.title, - .page-sidebar-hovering span.arrow { - display: none !important; - } - - .page-sidebar-hovering .submit { - opacity: 0; - width: 0 !important; - height: 0 !important; - } - - /*** - Fixed Sidebar - ***/ - - .page-sidebar-fixed .footer { - margin-left: 225px; - background-color: #fff; - padding: 8px 20px 5px 20px; - } - - .page-sidebar-fixed .footer .footer-inner { - color: #333; - } - - .page-sidebar-fixed.page-sidebar-closed .footer { - margin-left: 35px; - } - - .page-sidebar-fixed .footer .footer-tools .go-top { - background-color: #666; - } - - .page-sidebar-fixed .footer .footer-tools .go-top i { - color: #ddd; - } - - /*** - Boxed Layout - ***/ - - .page-boxed .header.navbar .navbar-brand { - margin-left: 0px !important; - width: 226px; - } - - .page-boxed .header.navbar .navbar-brand img { - margin-left: 10px; - } - - .page-boxed .header.navbar .navbar-nav { - margin-right: 0px; - } - - .page-boxed .footer { - padding: 8px 0 5px 0; - } - - .page-boxed.page-sidebar-fixed .footer { - padding-right: 20px; - padding-left: 20px; - } - - /*** - Sidebar Reversed - ***/ - - .page-sidebar-reversed .page-sidebar { - float: right; - margin-right: 0; - margin-left: -100%; - } - - .page-sidebar-reversed.page-sidebar-fixed .page-sidebar { - margin-left: -225px; - } - - .page-sidebar-reversed .page-content { - margin-left: 0; - margin-right: 225px; - } - - .page-sidebar-reversed.page-sidebar-fixed .page-sidebar-wrapper { - position: relative; - float: right; - } - - .page-sidebar-reversed.page-sidebar-fixed .footer { - margin-left: 0; - margin-right: 225px; - padding: 8px 20px 5px 20px; - } - - .page-sidebar-reversed.page-sidebar-fixed.page-footer-fixed .footer { - margin-left: 0; - margin-right: 0; - } - - .page-sidebar-reversed.page-sidebar-fixed.page-sidebar-hover-on .page-content { - margin-left: 0; - margin-right: 35px; - } - - .page-sidebar-reversed.page-sidebar-fixed.page-sidebar-hover-on .footer { - margin-right: 35px; - } - - /*** - Sidebar Closed - ***/ - - .page-sidebar-closed .page-sidebar .sidebar-toggler { - margin-left: 3px; - } - - .page-sidebar-closed .page-sidebar .sidebar-search .form-container { - width: 29px; - margin-left: 3px; - } - - .page-sidebar-closed .page-sidebar .sidebar-search .form-container .input-box { - border-bottom: 0 !important; - } - - .page-sidebar-closed .page-sidebar .sidebar-search .form-container input[type="text"] { - display: none; - } - - .page-sidebar-closed .page-sidebar .sidebar-search .form-container .submit { - margin-top: 5px !important; - margin-left: 7px !important; - margin-right: 7px !important; - display: block !important; - } - - .page-sidebar-closed .page-sidebar .sidebar-search.open .form-container { - width: 255px; - position: relative; - z-index: 1; - padding-top: 0px; - } - - .page-sidebar-closed .page-sidebar .sidebar-search.open .form-container input[type="text"] { - margin-top: 7px; - margin-left: 8px; - padding-left: 10px; - padding-bottom: 2px; - width: 185px; - display: inline-block !important; - } - - .page-sidebar-closed .page-sidebar .sidebar-search.open .form-container .submit { - display: inline-block; - width: 13px; - height: 13px; - margin: 11px 8px 9px 6px !important; - } - - .page-sidebar-closed .page-sidebar .sidebar-search.open .form-container .remove { - background-repeat: no-repeat; - width: 11px; - height: 11px; - margin: 12px 8px 9px 8px !important; - display: inline-block !important; - float: left !important; - } - - .page-sidebar-closed .page-sidebar-menu > li > a .selected { - right: -3px !important; - } - - .page-sidebar-closed .page-sidebar-menu > li > a > .title, - .page-sidebar-closed .page-sidebar-menu > li > a > .arrow { - display: none !important; - } - - .page-sidebar-closed .page-sidebar .sidebar-toggler { - margin-right: 3px; - } - - .page-sidebar-closed .page-sidebar .sidebar-search { - margin-top: 6px; - margin-bottom: 6px; - } - - .page-sidebar-closed .page-sidebar-menu { - width: 35px !important; - } - - .page-sidebar-closed .page-sidebar-menu > li > a { - padding-left: 7px; - } - - .page-sidebar-fixed.page-sidebar-closed .page-sidebar-menu > li > a { - -webkit-transition: all 0.2s ease; - -moz-transition: all 0.2s ease; - -o-transition: all 0.2s ease; - transition: all 0.2s ease; - } - - .page-sidebar-reversed.page-sidebar-fixed.page-sidebar-closed .page-sidebar-menu > li > a { - -webkit-transition: none; - -moz-transition: none; - -o-transition: none; - transition: none; - } - - .page-sidebar-closed .page-sidebar-menu > li:hover { - width: 236px !important; - position: relative !important; - z-index: 2000; - display: block !important; - } - - .page-sidebar-closed .page-sidebar-menu > li.sidebar-toggler-wrapper:hover, - .page-sidebar-closed .page-sidebar-menu > li.sidebar-search-wrapper:hover { - width: 35px !important; - } - - .page-sidebar-closed .page-sidebar-menu > li:hover .selected { - display: none; - } - - .page-sidebar-closed .page-sidebar-menu > li:hover > a > i { - margin-right: 10px; - } - - .page-sidebar-closed .page-sidebar-menu > li:hover .title { - display: inline !important; - } - - .page-sidebar-closed .page-sidebar-menu > li > .sub-menu { - display: none !important; - } - - .page-sidebar-closed .page-sidebar-menu > li:hover > .sub-menu { - width: 200px; - position: absolute; - z-index: 2000; - left: 36px; - margin-top: 0; - top: 100%; - display: block !important; - } - - .page-sidebar-closed .page-sidebar-menu > li:hover > .sub-menu > li > .sub-menu, - .page-sidebar-closed .page-sidebar-menu > li:hover > .sub-menu > li > .sub-menu > li > .sub-menu { - width: 200px; - } - - /* 2rd level sub menu*/ - .page-sidebar-closed .page-sidebar-menu > li:hover > .sub-menu > li > a { - padding-left: 15px !important; - } - - /* 3rd level sub menu*/ - .page-sidebar-closed .page-sidebar-menu > li > ul.sub-menu > li > .sub-menu > li > a { - padding-left: 30px !important; - } - - /* 4rd level sub menu*/ - .page-sidebar-closed .page-sidebar-menu > li > ul.sub-menu > li > .sub-menu > li > .sub-menu > li > a { - padding-left: 45px !important; - } - - /* sidebar container */ - - .page-sidebar-closed .page-sidebar { - width: 35px; - } - - .page-sidebar-closed .page-content { - margin-left: 35px; - } - - /*** - Sidebar Reversed & Sidebar Closed - ***/ - - .page-sidebar-reversed.page-sidebar-closed .page-sidebar { - margin-left: -35px; - width: 35px; - } - - .page-sidebar-reversed.page-sidebar-closed .page-content { - margin-left: 0 !important; - margin-right: 35px !important; - } - - .page-sidebar-reversed.page-sidebar-closed .page-sidebar-menu > li:hover { - margin-left: -201px; - } - - .page-sidebar-reversed.page-sidebar-closed .page-sidebar-menu > li.sidebar-toggler-wrapper:hover, - .page-sidebar-reversed.page-sidebar-closed .page-sidebar-menu > li.sidebar-search-wrapper:hover { - margin-left: 0; - } - - .page-sidebar-reversed.page-sidebar-closed .page-sidebar .sidebar-search.open .form-container { - margin-left: -225px; - } - - .page-sidebar-reversed.page-sidebar-closed .page-sidebar .sidebar-search.open .form-container .submit { - margin: 11px 8px 9px 12px !important; - float: left !important; - } - - .page-sidebar-reversed.page-sidebar-closed .page-sidebar .sidebar-search.open .form-container .remove { - margin: 12px 6px 9px 8px !important; - float: right !important; - } - - .page-sidebar-reversed.page-sidebar-closed .page-sidebar-menu > li:hover > .sub-menu { - left:auto; - right: 36px; - } - - .page-sidebar-reversed.page-sidebar-fixed.page-sidebar-closed .footer { - margin-right: 35px; - } - - /*** - Fixed Footer - ***/ - - .page-footer-fixed .footer { - position: fixed; - left: 0; - right: 0; - z-index: 10000; - bottom: 0; - } - - .page-footer-fixed .page-container { - margin-bottom: 20px !important; - } - - .page-footer-fixed.page-sidebar-fixed .footer { - margin-left: 0 !important; - } - -} - -/*** -Up To Medium Devices -***/ - -@media (max-width:991px) { - - /*** - Page header - ***/ - .header.navbar { - padding: 0 20px 0 20px; - position: relative; - clear: both; - } - - .page-header-fixed.page-header-fixed-mobile .navbar-fixed-top { - position: fixed; - } - - .header.navbar .navbar-toggle { - display: inline-block; - } - - .page-sidebar.navbar-collapse { - max-height: none; /* set some max height to have a scrollable menu on mobile devices */ - } - - .page-sidebar.navbar-collapse.collapse { - display: none !important; - } - - .page-sidebar.navbar-collapse.in { - overflow: hidden !important; - overflow-y: auto !important; - display: block !important; - } - - .page-full-width .page-sidebar-menu { - display: block; - } - - .page-sidebar.navbar-collapse.navbar-no-scroll { - max-height: none !important; - } - - .header.navbar .nav li.dropdown i { - display: inline-block; - position: relative; - top:1px; - right:0px; - } - - .header.navbar .navbar-nav { - display: block; - margin-bottom: 0px !important; - } - - .header.navbar .navbar-nav .open .dropdown-menu { - position: absolute; - } - - .header.navbar .navbar-nav { - display: inline-block; - margin: 0 10px 0 0; - } - - .header.navbar .navbar-nav > li { - float: left; - } - - .header.navbar .navbar-brand { - margin-left: 0px !important; - padding-left: 0px !important; - } - - .header.navbar .navbar-brand img { - margin-left: 4px !important; - } - - - /*** - Header Search Box - ***/ - - .header.navbar .search-form { - display: none; - } - - .page-sidebar .header.navbar-responsive-search { - display: block; - } - - /*** - Page container - ***/ - .page-container { - margin: 0 !important; - padding: 0 !important; - } - - .page-header-fixed.page-header-fixed-mobile .page-container { - margin-top: 42px !important; - } - - /*** - Page content - ***/ - .page-content { - margin: 0px !important; - padding: 20px 20px 20px 20px !important; - min-height: 280px; - } - - /*** - Page sidebar - ***/ - .page-sidebar { - border-top: 0 !important; - margin: 20px; - } - - .page-sidebar.in { - border-top: 0 !important; - margin: 20px; - position: relative; - z-index: 5; - } - - .header.navbar .sidebar-toggler, - .page-sidebar .sidebar-toggler { - display: none; - } - - .page-sidebar ul { - margin-top:0px; - width:100%; - } - - .page-sidebar .selected { - display: none !important; - } - - .page-sidebar .sidebar-search .input-box { - width: 220px; - } - - /*** - Styler panel - ***/ - .styler-panel { - top:55px; - right:20px; - } - - /*** - Boxed Layout - ***/ - .page-boxed .header.navbar > .container, - .page-boxed .footer > .container, - .page-boxed > .container { - max-width: none !important; - margin: 0 !important; - padding: 0 !important; - } - -} - -/*** -From Small Devices Up To Medium Devices -***/ - -@media (min-width: 768px) and (max-width: 991px) { - - /*** - Body - ***/ - body { - padding-top: 0px; - } - - /*** - Page sidebar - ***/ - .page-sidebar .btn-navbar.collapsed .arrow { - display: none; - } - - .page-sidebar .btn-navbar .arrow { - position: absolute; - right: 25px; - width: 0; - height: 0; - top:50px; - border-bottom: 15px solid #5f646b; - border-left: 15px solid transparent; - border-right: 15px solid transparent; - } - - /*** - Boxed Layout - ***/ - .page-boxed .header.navbar > .container, - .page-boxed > .container { - margin: auto !important; - } - - .page-boxed .header.navbar { - margin: auto !important; - padding: 0; - } - - .page-boxed .footer { - padding-left: 0; - padding-right: 0; - } - -} - -/*** -Extra Small Devices Only -***/ - -@media (max-width: 767px) { - - /*** - Page header - ***/ - - .header.navbar { - padding: 0 10px 0 10px; - } - - .header.navbar .top-nav .nav{ - margin-top: 0px; - margin-right: 5px; - } - - .header.navbar .nav > li > .dropdown-menu.notification:after, - .header.navbar .nav > li > .dropdown-menu.notification:before { - margin-right: 160px; - } - - .header.navbar .nav > li > .dropdown-menu.notification { - margin-right: -160px; - } - - .header.navbar .nav > li > .dropdown-menu.inbox:after, - .header.navbar .nav > li > .dropdown-menu.inbox:before { - margin-right: 110px; - } - - .header.navbar .nav > li > .dropdown-menu.inbox { - margin-right: -110px; - } - - .header.navbar .nav > li > .dropdown-menu.tasks:after, - .header.navbar .nav > li > .dropdown-menu.tasks:before { - margin-right: 60px; - } - - .header.navbar .nav > li > .dropdown-menu.tasks { - margin-right: -60px; - } - - /* Header logo */ - .header.navbar .navbar-brand { - margin-left: 0px !important; - width: 110px; - } - - /*** - Page content - ***/ - .page-content { - padding: 20px 10px 10px 10px !important; - overflow: hidden; - } - - /*** - Page title - ***/ - .page-title { - margin-bottom: 20px; - font-size: 18px; - } - - .page-title small { - font-size: 13px; - padding-top: 3px; - } - - /*** - Styler pagel - ***/ - .styler-panel { - top:58px; - right:12px; - } - - /*** - Page breadcrumb - ***/ - .breadcrumb { - padding-left: 10px; - padding-right: 10px; - } - - /*** - Portlet form action - ***/ - .portlet-body.form .form-actions{ - padding-left: 15px; - } - - - /*** - Form input validation states - ***/ - .input-icon .input-error, - .input-icon .input-warning, - .input-icon .input-success { - top:-27px; - float: right; - right:10px !important; - } - - /*** - Advance tables - ***/ - .table-advance tr td.highlight:first-child a { - margin-left: 8px; - } - - /*** - Footer - ***/ - .footer { - padding-left: 10px; - padding-right: 10px; - } - - .footer .go-top { - float: right; - display: block; - margin-right: 0px; - } - - /*** - Vertical inline menu - ***/ - .ver-inline-menu li.active:after { - display: none; - } - - /*** - Form controls - ***/ - .form-horizontal .form-actions { - padding-left: 180px; - } - - .portlet .form-horizontal .form-actions { - padding-left: 190px; - } -} - -/*** -The Most Extra Small Devices Landscape Mode Only -***/ - -@media (max-width: 580px) { - - .header.navbar .username { - display: none; - } - -} - -@media (max-width: 480px) { - - /*** - Header navbar - ***/ - .page-header-fixed.page-header-fixed-mobile .header.navbar { - height: 84px; - } - - .page-header-fixed.page-header-fixed-mobile .page-container { - margin-top: 84px !important; - } - - .header.navbar .navbar-nav { - display: block; - clear: both; - margin-top: 2px; - margin-right: 0; - } - - .header.navbar .navbar-nav > li.dropdown .dropdown-toggle { - margin-top:-1px; - padding-left: 9px; - padding-right: 9px; - } - - .header.navbar .navbar-nav > li.dropdown.language .dropdown-toggle, - .header.navbar .navbar-nav > li.dropdown.user .dropdown-toggle { - padding-left: 4px; - padding-right: 15px; - } - - .header.navbar .navbar-nav li.dropdown .dropdown-toggle .badge { - top: 8px; - } - - /*** - Page sidebar - ***/ - .page-sidebar, - .page-sidebar.in { - margin: 0 10px 10px 10px; - } - - .page-header-fixed.page-header-fixed-mobile .page-sidebar, - .page-header-fixed.page-header-fixed-mobile .page-sidebar.in { - margin-top: 10px; - } - - /*** - Page title - ***/ - .page-title small { - display: block; - clear: both; - } - - /*** - Forms - ***/ - .portlet .form-horizontal .form-actions { - padding-left: 10px; - } - - /*** - Dashboard date range panel - ***/ - .page-content .breadcrumb .dashboard-date-range { - padding-bottom: 8px; - } - - .page-content .breadcrumb .dashboard-date-range span { - display: none; - } - - .page-content .breadcrumb > .btn-group span { - display: none; - } - - .page-content .breadcrumb > .btn-group > .btn { - padding-left: 7px; - padding-right: 7px; - } - - /*** - Hidden phone - ***/ - .hidden-480 { - display: none !important; - } -} - -/*** -The Most Extra Small Devices Portrait Mode Only -***/ - -@media (max-width: 320px) { - - /*** - Hidden phone - ***/ - .hidden-320 { - display: none; - } - - .header.navbar .navbar-brand { - width: 100px; - } -} \ No newline at end of file diff --git a/openo-portal/portal-common/src/main/webapp/common/css/style.css b/openo-portal/portal-common/src/main/webapp/common/css/style.css deleted file mode 100644 index 1cb9b76c..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/css/style.css +++ /dev/null @@ -1,4715 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*** -Colors -blue: #4b8df8 -light blue: #bfd5fa -red: #e02222 -yellow: #ffb848 -green: #35aa47 -purple: #852b99 -dark: #555555; -light grey: #fafafa; -***/ -/*fontIcon*/ -[class^="ict-"], [class*=" ict-"]{ - padding-right:3px; - display: inline-block; - width: 1.25em; - text-align: center; -} -.page-sidebar-menu [class^="ict-"], .page-sidebar-menu [class*=" ict-"]{ -padding-right:0; -} -/********************* - GENERAL RESET & SETUP -*********************/ - -/*** -Reset and overrides -***/ -body { - color: #333; - /*font-family: 'Open Sans', sans-serif; - font-size:13px; */ - font-family: "Microsoft yahei", Verdana, Arial, Helvetica, sans-serif !important; - padding: 0px !important; - margin: 0px !important; - direction: ltr; -} -.page-content-body{ -padding-left:15px; -padding-right:15px; -padding-top:10px; -} -/* -Internet Explorer 10 doesn't differentiate device width from viewport width, and thus doesn't -properly apply the media queries in Bootstrap's CSS. To address this, -you can optionally include the following CSS and JavaScript to work around this problem until Microsoft issues a fix. -*/ -@-webkit-viewport { - width: device-width; -} - -@-moz-viewport { - width: device-width; -} - -@-ms-viewport { - width: device-width; -} - -@-o-viewport { - width: device-width; -} - -@viewport { - width: device-width; -} - -/* Internet Explorer 10 doesn't differentiate device width from viewport width, -and thus doesn't properly apply the media queries in Bootstrap's CSS. To address this, following CSS code applied */ -@-ms-viewport { - width: auto !important; -} - -/*** -Custom Scrollbars -***/ - -::-webkit-scrollbar { - width: 12px; -} - -::-webkit-scrollbar-track { - background-color: #eaeaea; - border-left: 1px solid #cecece; -} - -::-webkit-scrollbar-thumb { - background-color: #cecece; -} - -::-webkit-scrollbar-thumb:hover { - background-color: #aaa; -} - -::-webkit-scrollbar-track { - border-radius: 0; - box-shadow: none; - border: 0; -} - -::-webkit-scrollbar-thumb { - border-radius: 0; - box-shadow: none; - border: 0; -} - -/*** -General typography -***/ -h1 small, -h2 small, -h3 small, -h4 small, -h5 small, -h6 small { - color: #444; -} - -h1, -h2, -h3, -h4, -h5, -h6 { - font-family: Arial, sans-serif; - font-weight: 300 !important; -} - -h1.block, -h2.block, -h3.block, -h4.block, -h5.block, -h6.block { - padding-top: 10px; - padding-bottom: 10px; -} - -a { - text-shadow: none !important; - color: #5b9bd1; -} - -/*** -Fix link outlines after click -***/ -a,a:focus, a:hover, a:active { - outline: 0; -} - -/*** -General backgrounds. Can be applied to any block or panel -***/ - -.bg-blue { - background-image: none !important; - background-color: #4b8df8 !important; - border-color:#4b8df8 !important; - color: #fff !important; -} - -.bg-red { - background-image: none !important; - background-color: #e02222 !important; - border-color: #e02222 !important; - color: #fff !important; -} - -.bg-yellow { - background-image: none !important; - background-color: #ffb848 !important; - border-color: #ffb848 !important; - color: #fff !important; -} - -.bg-green { - background-image: none !important; - background-color: #35aa47 !important; - border-color: #35aa47 !important; - color: #fff !important; -} - -.bg-purple { - background-image: none !important; - background-color: #852b99 !important; - border-color: #852b99 !important; - color: #fff !important; -} - -.bg-dark { - background-image: none !important; - background-color: #555555 !important; - border-color: #555555 !important; - color: #fff !important; -} - -.bg-grey { - background-image: none !important; - background-color: #fafafa !important; - border-color: #fafafa !important; -} - -/*** -Font Awesome Icons -***/ - -[class^="fa-"], -[class*=" fa-"] { - display: inline-block; -/* margin-top: 1px;*/ - font-size: 14px; - *margin-right: .3em; - line-height: 14px; -} - -/*** -Make font awesome icons fixed width(latest version issue) -***/ - -li [class^="fa-"], -li [class*=" fa-"] { - display: inline-block; - width: 1.25em; - text-align: center; -} -li [class^="fa-"].icon-large, -li [class*=" fa-"].icon-large { - /* increased font size for icon-large */ - width: 1.5625em; -} - -.page-breadcrumb .fa-angle-right{ - display:inline-block; - margin-left:8px; - margin-right:8px; -} - -.page-breadcrumb i[class^="fa-"], [class*=" fa-"],.page-breadcrumb i[class^="ict-"], [class*=" ict-"]{ - display:none; -} - - - -.fa-lg, -.icon-lg { - font-size: 16px; -} - -.fa-2x { - font-size: 2em; -} -.fa-3x { - font-size: 3em; -} -.fa-4x { - font-size: 4em; -} -.fa-5x { - font-size: 5em; -} - -.icon-default { - color: #ccc; -} - -.icon-success { - color: #468847; -} - -.icon-info { - color: #27a9e3; -} - -.icon-warning { - color: #dbc056; -} - -.icon-danger { - color: #B94A48; -} - -/*** -Close icon used for modal dialog and other UI element close buttons -***/ -.close { - display: inline-block; - margin-top: 0px; - margin-right: 0px; - width: 9px; - height: 9px; - background-repeat: no-repeat !important; - text-indent: -10000px; - outline: none; - background-image: url("../image/remove-icon-small.png") !important; -} - -.about{ - height:345px; - width:528px; -} - -.aboutmain{ - background-image: url("../image/about/about-bg-light.png"); -} - -.aboutinfo{ - background-image: url("../image/about/about-bg-dark.png"); -} - -.about a{ - color: white; - - margin-left:15px; - text-decoration: none; -} - -.about a.about_close{ - float:right; - margin-right:20px; - font-size: 1.2em; -} - -.about div{ - padding-top:10px; - -} - -.about div.info{ - float: right; - margin-right: 15px; - margin-top: 130px; - color: white; - font-size: 13px; -} - -.about div.info div{ - margin-left:15px; -} - -.about div.info img{ - margin-right: 55px; -} - -.aboutDlg{ - width: 530px; - margin-left:150px; -} - -/*** -General HR -***/ - -hr { - margin: 20px 0; - border: 0; - border-top: 1px solid #E0DFDF; - border-bottom: 1px solid #FEFEFE; -} - -/*** -Tools -***/ - -.display-none, -.display-hide { - display: none; -} - -.no-space { - margin: 0px !important; - padding: 0px !important; -} - -.no-margin { - margin:0; -} - -.no-border { - border:0 !important; -} - -.margin-bottom-5 { - margin-bottom: 5px; -} - -.margin-bottom-10 { - margin-bottom: 10px !important; -} - -.margin-top-10 { - margin-top: 10px !important; -} - -.margin-bottom-15 { - margin-bottom: 15px !important; -} - -.margin-bottom-20 { - margin-bottom: 20px !important; -} - -.margin-top-20 { - margin-top: 20px !important; -} - -.margin-bottom-25 { - margin-bottom: 25px !important; -} - -.margin-right-10 { - margin-right: 10px !important; -} - -.bold { - font-weight:600 !important; -} - -.fix-margin { - margin-left: 0px !important -} - -.border { - border: 1px solid red; -} - -.inline { - display: inline; -} - -.text-align-reverse { - text-align: right; -} - -/*** -ie8 & ie9 modes -***/ - -.visible-ie8 { - display: none; -} - -.ie8 .visible-ie8 { - display: inherit !important; -} - -.visible-ie9 { - display: none; -} - -.ie9 .visible-ie9 { - display: inherit !important; -} - -.hidden-ie8 { - display: inherit; -} - -.ie8 .hidden-ie8 { - display: none !important; -} - -.hidden-ie9 { - display: inherit; -} - -.ie9 .hidden-ie9 { - display: none !important; -} - -/******************** - GENERAL LAYOUT -*********************/ - -/*** -Header and header elements. -***/ - -.header.navbar { - width: 100%; - padding: 0 20px 0 20px; - margin: 0; - border: 0px; - padding: 0px; - box-shadow: none; - height: 42px; - min-height: 42px; -} - -.header.navbar.navbar-fixed-top { - z-index: 9995 !important; -} - -.header.navbar .navbar-brand { - display: inline-block; - margin-top: -1px; - margin-right: 0; - padding-left: 0; - padding-right: 0; - width: 225px; - height: 42px; -} - -.header.navbar .navbar-brand img { - margin-left: 20px; -} - -.header.navbar .navbar-brand.text-logo { - padding-left: 20px; - padding-top: 12px; -} - -.header.navbar .navbar-toggle { - margin: 8px 6px 4px 6px; - padding: 0; - padding-top:2px; - padding-bottom: 6px; - background-image: none; - filter:none; - box-shadow: none; - color: #fff; - border: 0; -} - -.header.navbar .navbar-toggle:hover { - text-decoration: none; - background: none; -} - -.header.navbar .navbar-nav { - margin-right: 20px; - display: block; -} - -.header.navbar .navbar-nav > li { - margin: 0px; - padding: 0px; -} - -.header.navbar .navbar-nav > li.dropdown, -.header.navbar .navbar-nav > li.dropdown > a { - padding-left: 4px; - padding-right: 4px; -} - -.header.navbar .navbar-nav > li.dropdown > a:last-child { - padding-right: 0; -} - -.header.navbar .navbar-nav > li.dropdown:last-child { - padding-right: 2px; -} - -.header.navbar .navbar-nav > li.dropdown .dropdown-toggle { - margin: 0px; - padding: 15px 10px 7px 10px; -} - -.header.navbar .navbar-nav > li.dropdown .dropdown-toggle > i { - font-size: 18px; -} - -.header.navbar .navbar-nav > li.dropdown .dropdown-menu > li > a > i { - font-size: 14px; -} - -.header.navbar .navbar-nav > li.dropdown.user .dropdown-toggle { - padding-top: 9px; - *padding: 9px 18px 6px 6px; -} - -.header.navbar .navbar-nav > li.dropdown.user .dropdown-toggle:hover { - text-decoration: none; -} - -.header.navbar .navbar-nav > li.dropdown.user .dropdown-toggle .username { - color: #ddd; -} - -.header.navbar .navbar-nav > li.dropdown.user .dropdown-toggle i { - display: inline-block; - margin-top: 5px; - margin: 0; - font-size: 16px; -} - -.header.navbar .navbar-nav > li.dropdown.user .dropdown-menu i { - width: 15px; - display: inline-block; -} - -.header.navbar .navbar-nav > li.dropdown .dropdown-toggle .badge { - position: absolute; - top: 8px; - right: 20px; -} - - -.header.navbar .navbar-nav > li.dropdown.system .dropdown-toggle { - padding: 13px 0px 6px 6px; -} - -.header.navbar .navbar-nav > li.dropdown.system .dropdown-toggle:hover { - text-decoration: none; -} - -.header.navbar .navbar-nav > li.dropdown.system .dropdown-toggle .sysname { - color: #ddd; -} - -.header.navbar .navbar-nav > li.dropdown.system .dropdown-toggle i { - display: inline-block; - margin-top: 5px; - margin: 0; - font-size: 16px; -} - -.header.navbar .navbar-nav > li.dropdown.system .dropdown-menu i { - width: 15px; - display: inline-block; -} - -/*** -Header Search -***/ -.header.navbar .search-form { - float: left; - display: inline-block; - padding: 0; - height: 41px; - margin:0; -} - -.header.navbar .search-form .form-control{ - margin-top: 8px; - border: 0; - padding-top: 1px; - padding-right: 27px; -} - -.header.navbar .search-form .submit { - position: relative; - display: block; - float: right; - margin-top: -21px; - margin-right: 8px; - width: 13px; - height: 15px; - box-shadow: none; - border: 0px; - padding: 0px; - background-color: none; - background-repeat: no-repeat !important; - outline: none !important; - opacity: 0.8; - filter: alpha(opacity=80); -} - -.header.navbar .search-form .submit:hover { - opacity: 1; - filter: alpha(opacity=100); -} - -/*** -Language Bar -***/ - -.header.navbar .navbar-nav > li.dropdown.language { - padding-left: 0; - padding-right: 0; - margin: 0; -} - -.header.navbar .navbar-nav > li.dropdown.language > a { - color: #ddd; - font-size: 13px; - padding: 11px 1px 11px 5px; -} - -.header.navbar .navbar-nav > li.dropdown.language > a > img { - margin-bottom: 2px; -} - -.header.navbar .navbar-nav > li.dropdown.language > a > i { - font-size: 16px; -} - -.header.navbar .navbar-nav > li.dropdown.language > .dropdown-menu > li > a > img { - margin-bottom: 2px; -} - -.header.navbar .navbar-nav .dropdown-menu { - margin-top: 3px; -} - -/*** -Page container -***/ - -.page-container { - margin: 0px; - padding: 0px; - position: relative; -} - -.page-container:before, -.page-container:after { - display: table; - content: " "; -} - -.page-container:after { - clear: both; -} - -.page-header-fixed .page-container { - margin-top: 42px; -} - -/*** IE 8 Fixes ***/ -/*** -Page sidebar -***/ - -.ie8 .page-sidebar { - width: 225px; - float: left; - position: relative; - margin-right: -100%; -} - -/*** -Page content -***/ - -.ie8 .page-content-wrapper { - float: left; - width: 100%; - } - -.ie8 .page-content { - margin-left: 225px; - margin-top: 0px; - min-height: 540px; - padding: 20px 20px 20px 20px; - } -/*** IE 8 Fixes ***/ - -/*** -Page sidebar -***/ - -.page-sidebar.navbar-collapse { - padding: 0; -} - -.page-sidebar-menu { - list-style: none; - margin: 0; - padding: 0; - margin: 0; - padding: 0; -} - -.page-sidebar-menu > li { - display: block; - margin: 0; - padding: 0; - border: 0px; -} - -.page-sidebar-menu > li.start > a { - border-top-color: transparent !important; -} - -.page-sidebar-menu > li:last-child > a, -.page-sidebar-menu > li.last > a { - border-bottom-color: transparent !important; -} - -.page-sidebar-menu > li > a { - display: block; - position: relative; - margin: 0; - border: 0px; - padding: 10px 15px; - text-decoration: none; - font-size: 14px; - font-weight: 300; -} - -.page-sidebar-fixed .page-sidebar-menu > li > a { - -webkit-transition: all 0.2s ease; - -moz-transition: all 0.2s ease; - -o-transition: all 0.2s ease; - transition: all 0.2s ease; -} - -.page-sidebar-reversed.page-sidebar-fixed .page-sidebar-menu > li > a{ - -webkit-transition: none; - -moz-transition: none; - -o-transition: none; - transition: none; -} - -.page-sidebar-menu > li > a i { - font-size: 16px; - margin-right: 5px; - text-shadow:none; -} - -.page-sidebar-menu > li.break { - margin-bottom: 20px; -} - -.page-sidebar-menu > li.open > a { - font-size: 14px; -} - -.page-sidebar-menu > li.active > a { - border: none; - text-shadow:none; - font-size: 14px; -} - -.page-sidebar-menu > li.active > a .selected { - display: block; - width: 8px; - height: 25px; - background-image: url("../image/sidebar-menu-arrow.png"); - float: right; - position: absolute; - right:0px; - top:8px; -} - -.page-sidebar-reversed .page-sidebar-menu > li.active > a .selected { - background-image: url("../image/sidebar-menu-arrow-reverse.png"); - right: auto; - left:0; -} - -.page-sidebar ul > li > a > .arrow:before { - float: right; - margin-top: 0px; - margin-right: 5px; - display: inline; - font-size: 16px; - font-family: FontAwesome; - height: auto; - content: "\f104"; - font-weight: 300; - text-shadow:none; -} - -.page-sidebar-menu > li > a > .arrow.open:before { - float: right; - margin-top: 0px; - margin-right: 3px; - display: inline; - font-family: FontAwesome; - height: auto; - font-size: 16px; - content: "\f107"; - font-weight: 300; - text-shadow:none; -} - -/* bagin: sidebar menu badges */ -.page-sidebar-menu li > a > .badge { - float: right; - margin-top: 1px; - margin-right: 13px; -} - -/* end: sidebar menu badges */ - -.page-sidebar-menu .sub-menu { - padding: 0; -} - -.page-sidebar-menu > li > ul.sub-menu { - display: none; - list-style: none; - clear: both; - margin: 8px 0px 8px 0px; -} - -.page-sidebar-menu > li.active > ul.sub-menu { - display: block; -} - -.page-sidebar-menu > li > ul.sub-menu > li { - background: none; - margin: 0px; - padding: 0px; - margin-top: 1px !important; -} - -.page-sidebar-menu > li > ul.sub-menu > li > a { - display: block; - margin: 0px 0px 0px 0px; - padding: 5px 0px; - padding-left: 44px !important; - text-decoration: none; - font-size: 14px; - font-weight: 300; - background: none; -} - -/* 3rd level sub menu */ -.page-sidebar-menu > li > ul.sub-menu > li ul.sub-menu { - display: none; - list-style: none; - clear: both; - margin: 0px 0px 0px 0px; -} - -.page-sidebar-menu > li > ul.sub-menu li > a > .arrow:before { - float: right; - margin-top: 1px; - margin-right: 20px; - display: inline; - font-size: 16px; - font-family: FontAwesome; - height: auto; - content: "\f104"; - font-weight: 300; - text-shadow:none; -} - -.page-sidebar-menu > li > ul.sub-menu li > a > .arrow.open:before { - float: right; - margin-top: 1px; - margin-right: 18px; - display: inline; - font-family: FontAwesome; - height: auto; - font-size: 16px; - content: "\f107"; - font-weight: 300; - text-shadow:none; -} - -.page-sidebar-menu > li.active > ul.sub-menu > li.active ul.sub-menu { - display: block; -} - -.page-sidebar-menu > li > ul.sub-menu > li ul.sub-menu li { - background: none; - margin: 0px; - padding: 0px; - margin-top: 1px !important; -} - -.page-sidebar-menu > li > ul.sub-menu li > ul.sub-menu > li > a { - display: block; - margin: 0px 0px 0px 0px; - padding: 5px 0px; - text-decoration: none; - font-size: 14px; - font-weight: 300; - background: none; -} - -.page-sidebar-menu > li > ul.sub-menu > li > ul.sub-menu > li > a { - padding-left: 60px; -} - -.page-sidebar-menu > li > ul.sub-menu > li > ul.sub-menu > li > ul.sub-menu > li > a { - padding-left: 80px; -} - -.page-sidebar-menu > li.active > ul.sub-menu > li.active ul.sub-menu > li.active ul.sub-menu { - display: block; -} - - -.page-sidebar-menu > li > ul.sub-menu li > ul.sub-menu > li > a > i { - font-size: 13px; -} - -/*** -Sidebar Search -***/ - -.page-sidebar .sidebar-search { - padding:0; - margin: 0; -} - -.page-sidebar .header.navbar-responsive-search { - display: none; -} - -.page-sidebar .sidebar-search .form-container { - margin: 15px 20px 15px 20px; - height: 35px; - padding-top: 7px; -} - -.page-sidebar .sidebar-search .form-container .submit { - display: block; - float: right; - margin-top: 3px; - width: 13px; - height: 15px; - background-repeat: no-repeat; - box-shadow: none; - border: 0px; - padding: 0px; - outline: none !important; -} - -.page-sidebar .sidebar-search .form-container input[type="text"] { - margin: 0px; - width: 165px; - border: 0px; - padding: 0 !important; - font-size: 14px !important; - box-shadow: none !important; - font-size: 14px; - font-weight: normal; -} - -.page-sidebar .sidebar-search .form-container input[type="text"]:focus { - outline: none !important; -} - -/*** -Sidebar toggler(show/hide) -***/ -.sidebar-toggler { - cursor: pointer; - opacity: 0.5; - filter: alpha(opacity=50); - width: 29px; - height: 29px; - background-repeat: no-repeat; -} - -.sidebar-toggler:hover { - filter: alpha(opacity=100); - opacity: 1; -} - -.page-sidebar .sidebar-toggler { - margin-top: 15px; - /* margin-left: 175px;*/ -} - -.header.navbar .sidebar-toggler { - float: left; - display: inline-block; - margin-top: 6px; - margin-left: -42px; -} - -/*** -Page content -***/ -.page-content { - margin-top: 0px; - padding: 0px; - background-color: #fff; -} - -.ie8 .page-content { - padding: 20px; - margin-left: 225px; - margin-top: 0px; - min-height: 760px; -} - -.ie8 .page-sidebar-fixed .page-content { - min-height: 600px; -} - -.ie8 .page-content.no-min-height { - min-height: auto; -} - -.page-full-width .page-content { - margin-left: 0px !important; -} - -.page-full-width .page-sidebar-menu { - display: none; -} - -/*** -Page title -***/ -.page-title { - padding: 0px; - font-size: 30px; - letter-spacing: -1px; - display: block; - color: #666; - margin: 0px 0px 15px 0px; - font-weight: 300; - font-family: 'Open Sans', sans-serif; -} - -.page-title small { - font-size: 14px; - letter-spacing: 0px; - font-weight: 300; - color: #888; -} - -/*** -Page breadcrumb -***/ - -.ie8 .row .page-breadcrumb.breadcrumb > li { - margin-right: 1px; -} - -.page-content .page-breadcrumb.breadcrumb { - -webkit-border-radius: 0px; - -moz-border-radius: 0px; - border-radius: 0px; - box-shadow: none; - padding-right: 30px; - padding-left: 8px; - margin-top: 15px; - margin-bottom: 25px; - border:0px !important; - background-color: #fff; -} - -.page-content .page-breadcrumb.breadcrumb > li > a, -.page-content .page-breadcrumb.breadcrumb > li > i, -.page-content .page-breadcrumb.breadcrumb > li > span { - color: #333; - font-size: 14px; - text-shadow:none; -} - -.page-content .page-breadcrumb.breadcrumb > li > i { - color: #666; -} - -.page-content .page-breadcrumb.breadcrumb > li+li:before { - display: none; -} - -/* Dashboard breadcrumb Dropdown */ -.page-content .page-breadcrumb.breadcrumb .more-botton-zone .btn-group { - right: 15px; - position: absolute; - margin-top: -8px; -} -.page-content .page-breadcrumb.breadcrumb .more-botton-zone { - position:inherit; -} - -.page-content .page-breadcrumb.breadcrumb .more-botton-zone .btn-group .btn { - padding-top: 8px; - padding-bottom: 8px; - font-size: 12px; -} - -/* Dashboard date range panel */ -.page-content .page-breadcrumb.breadcrumb .dashboard-date-range { - position: relative; - top: -8px; - margin-right: -30px; - display: none; - padding: 9px 9px 8px 9px; - cursor: pointer; - color: #fff; - background-color: #e02222; -} - -/* hack for chrome and safari */ -@media all and (-webkit-min-device-pixel-ratio:0) { - .page-content .page-breadcrumb.breadcrumb .dashboard-date-range { - padding: 9px; - } -} - -.page-content .page-breadcrumb.breadcrumb .dashboard-date-range > span { - font-size: 12px; - font-weight: 300; - color: #fff; - text-transform: uppercase; -} - -.page-content .page-breadcrumb.breadcrumb .dashboard-date-range > .fa-calendar { - text-transform: none; - color: #fff; - margin-top: 0px; - font-size: 14px; -} - -.page-content .page-breadcrumb.breadcrumb .dashboard-date-range > .fa-angle-down { - color:#fff; - font-size: 16px; -} - -/*** -Footer -***/ - -.footer { - padding: 8px 20px 5px 20px; - font-size: 12px; -} - -.footer:after, -.footer:before { - content: ""; - display: table; - line-height: 0; -} - -.footer:after { - clear: both; -} - -.footer .footer-inner { - float: left; - display: inline-block; -} - -.footer .footer-tools { - float: right; - display: inline-block; -} - -.footer .footer-tools .go-top { - display: block; - text-decoration: none; - cursor: pointer; - margin-top: -2px; - margin-right: 0px; - margin-bottom: 0px; - font-size: 16px; - padding: 0px 6px 0px 6px; -} - -.footer .footer-tools .go-top i { - font-size: 22px; - margin-bottom: 5px; -} - - -/******************** - GENERAL UI ELEMENTS -*********************/ - -/*** -Icon stuff -***/ -i.icon, a.icon { - color: #999; - margin-right: 5px; - font-weight: normal; - font-size: 13px; -} - -i.icon-black { - color: #000 !important; -} - -a.icon:hover { - text-decoration: none; - -webkit-transition: all 0.1s ease-in-out; - -moz-transition: all 0.1s ease-in-out; - -o-transition: all 0.1s ease-in-out; - -ms-transition: all 0.1s ease-in-out; - transition: all 0.1s ease-in-out; - opacity: .4; - filter:alpha(opacity=40); -} - -a.icon.huge i{ - font-size: 16px !important; -} - -i.big { - font-size: 20px; -} - -i.warning { - color: #d12610; -} - -i.critical { - color: #37b7f3; -} - -i.normal { - color: #52e136; -} - -/*** -Custom wells -***/ -.well { - background-color: #fafafa; - border: 1px solid #eee; - -webkit-border-radius: 0px; - -moz-border-radius: 0px; - border-radius: 0px; - -webkit-box-shadow: none !important; - -moz-box-shadow: none !important; - box-shadow: none !important; -} - -.well.mini { - padding: 7px !important; -} - -/*** -Form stuff -***/ - - -/*** -Bordered form layout -***/ - -/*** -Input icons -***/ - -/* input with right aligned and colored icons */ - -/* input with left aligned icons */ -.input-icon { - position: relative; -} - - -.input-icon input { - padding-left: 33px !important; -} - -.input-icon i { - color: #ccc; - display: block; - position: absolute; - margin: 11px 2px 4px 10px; - width: 16px; - height: 16px; - font-size: 16px; - text-align: center; -} - -.input-icon.right input { - padding-left: 12px !important; - padding-right: 33px !important; -} - -.input-icon.right i { - right: 8px; - float: right; -} - -.has-success .input-icon > i { - color: #468847; -} - -.has-warning .input-icon > i { - color: #c09853; -} - -.has-error .input-icon > i { - color: #b94a48; -} - -/*** -Portlets -***/ -.portlet { - clear: both; - margin-top: 0px; - margin-bottom: 25px; - padding: 0px; -} - -.portlet > .portlet-title { - margin-bottom: 15px; - border-bottom: 1px solid #eee; -} - -.portlet > .portlet-title:after, -.portlet > .portlet-title:before { - content: ""; - display: table; - line-height: 0; -} - -.portlet > .portlet-title:after { - clear: both; -} - -.portlet > .portlet-title > .caption { - float: left; - display: inline-block; - font-size: 18px; - line-height: 18px; - font-weight: 400; - margin: 0; - padding: 0; - margin-bottom: 8px; -} - -.portlet > .portlet-title > .caption > i { - float: left; - margin-top: 4px; - display: inline-block !important; - font-size: 13px; - margin-right: 5px; - color: #666; -} - -.portlet.blue > .portlet-title > .caption, -.portlet.green > .portlet-title > .caption, -.portlet.yellow > .portlet-title > .caption, -.portlet.red > .portlet-title > .caption, -.portlet.purple > .portlet-title > .caption, -.portlet.grey > .portlet-title > .caption { - color: #fff; -} - -.portlet.box.blue > .portlet-title > .caption > i, -.portlet.box.green > .portlet-title > .caption > i, -.portlet.box.grey > .portlet-title > .caption > i, -.portlet.box.yellow > .portlet-title > .caption > i, -.portlet.box.red > .portlet-title > .caption > i, -.portlet.box.purple > .portlet-title > .caption > i, -.portlet.box.light-grey > .portlet-title > .caption > i{ - color: #fff; -} - -.sortable .portlet > .portlet-title { - cursor: move; -} - -.portlet > .portlet-title > .tools, -.portlet > .portlet-title > .actions - { - display: inline-block; - padding: 0; - margin: 0; - margin-top: 6px; - float: right; -} - -.portlet > .portlet-title > .tools > a { - display: inline-block; - height: 16px; - margin-left:5px; -} - -.portlet > .portlet-title > .actions > .dropdown-menu i { - color: #000 !important; -} - -.portlet > .portlet-title > .tools > a.remove { - margin-bottom: 2px; - background-image:url(../image/portlet-remove-icon.png); - background-repeat: no-repeat; - width: 11px; -} - -.portlet > .portlet-title > .tools > a.config { - margin-bottom: 2px; - background-image:url(../image/portlet-config-icon.png); - background-repeat: no-repeat; - width: 12px; -} - -.portlet > .portlet-title > .tools > a.reload { - margin-bottom: 2px; - background-image:url(../image/portlet-reload-icon.png); - width: 13px; -} - -.portlet > .portlet-title > .tools > a.expand { - margin-bottom: 2px; - background-image:url(../image/portlet-expand-icon.png); - width: 14px; -} - -.portlet > .portlet-title > .tools > a.collapse { - margin-bottom: 2px; - background-image:url(../image/portlet-collapse-icon.png); - width: 14px; -} - -.portlet > .portlet-title > .tools > a:hover { - text-decoration: none; - -webkit-transition: all 0.1s ease-in-out; - -moz-transition: all 0.1s ease-in-out; - -o-transition: all 0.1s ease-in-out; - -ms-transition: all 0.1s ease-in-out; - transition: all 0.1s ease-in-out; - opacity:.6; - filter:'alpha(opacity=60)'; -} - -.portlet > .portlet-title > .actions > .btn-group { - margin-top: -13px; -} - -.portlet > .portlet-title > .actions > .btn { - padding: 4px 10px; - margin-top: -14px; -} - -.portlet > .portlet-title > .actions > .btn-group > .btn { - padding: 4px 10px; - margin-top: -1px; -} - -.portlet > .portlet-title > .actions > .btn.btn-sm { - padding: 3px 8px; - margin-top: -13px; -} - -.portlet > .portlet-title > .actions > .btn-group > .btn-sm { - padding: 3px 8px; - margin-top: -1px; -} - -.portlet > .portlet-title > .pagination.pagination-sm { - float: right !important; - display: inline-block !important; - margin: 0px; - margin-top: -4px; -} - -@media (max-width: 767px) { - .portlet > .portlet-title > .actions.btn-set > .btn-group, - .portlet > .portlet-title > .actions.btn-set > .btn { - margin-top: 0px; - margin-bottom: 5px; - } -} - -.portlet > .portlet-body { - clear: both; - padding: 0; -} - -.portlet > .portlet-empty { - min-height: 125px; -} - -.portlet > .portlet-body.light-blue, .portlet.light-blue { - background-color: #bfd5fa !important; -} - -.portlet > .portlet-body.blue, .portlet.blue { - background-color: #4b8df8 !important; -} - -.portlet > .portlet-body.red, .portlet.red { - background-color: #e02222 !important; -} - -.portlet > .portlet-body.yellow, .portlet.yellow { - background-color: #ffb848 !important; -} - -.portlet > .portlet-body.green, .portlet.green { - background-color: #35aa47 !important; -} - -.portlet > .portlet-body.purple, .portlet.purple { - background-color: #852b99 !important; -} - -.portlet > .portlet-body.light-grey, .portlet.light-grey { - background-color: #fafafa !important; -} - -.portlet > .portlet-body.grey, .portlet.grey { - background-color: #555555 !important; -} - -/* draggable girds */ - -.ui-sortable-placeholder { - border: 1px dotted black; - visibility: visible !important; - height: 100% !important; -} - -.ui-sortable-placeholder * { - visibility: hidden; -} - -.sortable-box-placeholder { - background-color: #f5f5f5; - border: 1px dashed #DDDDDD; - display: block; - /* float: left;*/ - margin-top: 0px !important; - margin-bottom: 24px !important; -} - -.sortable-box-placeholder * { - visibility:hidden; -} - -/*** -Solid colored portlet -***/ -.portlet.solid { - padding: 10px; -} - -.portlet.solid > .portlet-title > .tools { - margin-top: 2px; - border: 0px; -} - -.portlet.solid > .portlet-title { - margin-bottom: 5px; - border: 0px; -} - -.portlet.solid.bordered > .portlet-title { - margin-bottom: 15px; -} - -.portlet.solid.red > .portlet-title, -.portlet.solid.red > .portlet-title > .caption > i, -.portlet.solid.red > .portlet-body, - -.portlet.solid.green > .portlet-title, -.portlet.solid.green > .portlet-title > .caption > i, -.portlet.solid.green > .portlet-body, - -.portlet.solid.yellow > .portlet-title, -.portlet.solid.yellow > .portlet-title > .caption > i, -.portlet.solid.yellow > .portlet-body, - -.portlet.solid.grey > .portlet-title, -.portlet.solid.grey > .portlet-title > .caption > i, -.portlet.solid.grey > .portlet-body, - -.portlet.solid.purple > .portlet-title, -.portlet.solid.purple > .portlet-title > .caption > i, -.portlet.solid.purple > .portlet-body, - -.portlet.solid.blue > .portlet-title, -.portlet.solid.blue > .portlet-title > .caption > i, -.portlet.solid.blue > .portlet-body { - border: 0; - color: #fff; -} - -.portlet.bordered { - border-left: 2px solid #ddd; -} - -/*** -Box portlet -***/ - -.portlet.box { - padding:0px !important -} - -.portlet.box > .portlet-title { - padding:8px 10px 2px 10px; - border-bottom: 1px solid #eee; - color: #fff !important; -} - -.portlet.box > .portlet-title > .tools { - margin-top: 3px; -} - -.portlet.box > .portlet-title > .tools > a.remove, -.portlet.solid > .portlet-title > .tools > a.remove { - background-image:url(../image/portlet-remove-icon-white.png); -} - -.portlet.box > .portlet-title > .tools > a.config, -.portlet.solid > .portlet-title > .tools > a.config { - background-image:url(../image/portlet-config-icon-white.png); -} - -.portlet.box > .portlet-title > .tools > a.reload, -.portlet.solid > .portlet-title > .tools > a.reload { - background-image:url(../image/portlet-reload-icon-white.png); -} - -.portlet.box > .portlet-title > .tools > a.expand, -.portlet.solid > .portlet-title > .tools > a.expand { - background-image:url(../image/portlet-expand-icon-white.png); -} - -.portlet.box > .portlet-title > .tools > a.collapse, -.portlet.solid > .portlet-title > .tools > a.collapse { - background-image:url(../image/portlet-collapse-icon-white.png); -} - -/* portlet buttons */ -.portlet.box > .portlet-body { - background-color: #fff; - padding: 10px; -} - -.portlet.box > .portlet-title { - margin-bottom: 0px; -} - -.portlet.box.blue > .portlet-title { - background-color: #4b8df8; -} - -.portlet.box.blue { - border: 1px solid #b4cef8; - border-top: 0; -} - -.portlet.box.red > .portlet-title { - background-color: #e02222; -} - -.portlet.box.red { - border: 1px solid #ef8476; - border-top: 0; -} - -.portlet.box.yellow > .portlet-title { - background-color: #ffb848; -} - -.portlet.box.yellow { - border: 1px solid #fccb7e; - border-top: 0; -} - -.portlet.box.green > .portlet-title { - background-color: #35aa47; -} - -.portlet.box.green { - border: 1px solid #77e588; - border-top: 0; -} - -.portlet.box.purple > .portlet-title { - background-color: #852b99; -} - -.portlet.box.purple { - border: 1px solid #af5cc1; - border-top: 0; -} - -.portlet.box.grey > .portlet-title { - background-color: #555555; -} - -.portlet.box.grey { - border: 1px solid #9d9c9c; - border-top: 0; -} - -.portlet.box.light-grey > .portlet-title { - background-color: #aaa; -} - -.portlet.box.light-grey { - border: 1px solid #bbb; - border-top: 0; -} - -/*** -Charts and statistics -***/ -.chart, .pie, .bars { - overflow: hidden; - height: 300px; -} - -/*** -Statistic lists -***/ -.item-list.table .percent { - width: 30px; - float: right; - margin-right: 10px; - margin-top: 3px; -} - -/*** -Chart tooltips -***/ -.chart-tooltip { - clear: both; - z-index: 100; - background-color: #736e6e !important; - padding: 5px !important; - color: #fff; -} - -.chart-tooltip .label { - clear: both; - display: block; - margin-bottom: 2px; -} - -/*** -Mini chart containers -***/ -.bar-chart { - display: none -} - -.line-chart { - display: none -} - -/*** -Custom icon buttons -***/ -.icon-btn { - height: 60px; - min-width: 80px; - margin: 5px 5px 0 0; - border: 1px solid #ddd; - padding: 12px 0px 0px 0px; - background-color: #fafafa !important; - background-image: none !important; - filter:none !important; - -webkit-box-shadow: none !important; - -moz-box-shadow: none !important; - box-shadow: none !important; - display:inline-block !important; - color: #646464 !important; - text-shadow: none !important; - text-align: center; - cursor: pointer; - position: relative; - -webkit-transition: all 0.3s ease !important; - -moz-transition: all 0.3s ease !important; - -ms-transition: all 0.3s ease !important; - -o-transition: all 0.3s ease !important; - transition: all 0.3s ease !important; -} - -.icon-btn i { - font-size: 18px; -} - -.ie8 .icon-btn:hover { - filter: none !important; -} - -.icon-btn:hover { - text-decoration: none !important; - border-color: #999 !important; - color: #444 !important; - text-shadow: 0 1px 0px rgba(255, 255, 255, 1) !important; - -webkit-transition: all 0.3s ease !important; - -moz-transition: all 0.3s ease !important; - -ms-transition: all 0.3s ease !important; - -o-transition: all 0.3s ease !important; - transition: all 0.3s ease !important; - -webkit-box-shadow: none !important; - -moz-box-shadow: none !important; - box-shadow: none !important; -} - -.icon-btn:hover .badge { - -webkit-transition: all 0.3s ease !important; - -moz-transition: all 0.3s ease !important; - -ms-transition: all 0.3s ease !important; - -o-transition: all 0.3s ease !important; - transition: all 0.3s ease !important; - -webkit-box-shadow: none !important; - -moz-box-shadow: none !important; - box-shadow: none !important; -} - -.icon-btn div { - font-family: 'Open Sans', sans-serif; - margin-top: 5px; - margin-bottom: 20px; - color: #000; - font-size: 12px; - font-weight: 300; -} - -.icon-btn .badge { - position: absolute; - font-family: 'Open Sans', sans-serif; - font-size: 11px !important; - font-weight: 300; - top: -5px; - right: -5px; - padding: 3px 6px 3px 6px; - color: white !important; - text-shadow: none; - border-width: 0; - border-style: solid; - -webkit-border-radius: 12px !important; - -moz-border-radius: 12px !important; - border-radius: 12px !important; - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; -} - -/* extended dropdowns */ -.dropdown-menu.extended { - min-width: 160px !important; - max-width: 300px !important; - width: 233px !important; - background-color: #ffffff !important; -} - -.dropdown-menu.extended:before, -.dropdown-menu.extended:after { - border-bottom-color: #ddd !important; -} - -.dropdown-menu.extended li a{ - display: block; - padding: 5px 10px !important; - clear: both; - font-weight: normal; - line-height: 20px; - white-space: normal !important; -} - -.dropdown-menu.extended li i{ - margin-right: 3px; -} - -.dropdown-menu.extended li a{ - font-size: 13px; - padding: 10px !important; - background-color: #ffffff; -} - -.dropdown-menu.extended li a:hover { - background-image: none; - background-color: #f5f5f5; - color: #000; - filter:none; -} - -.dropdown-menu.extended li p{ - padding: 10px; - background-color: #eee; - margin: 0px; - font-size: 14px; - font-weight: 300; - color: #000; -} - -.dropdown-menu.extended li a{ - padding: 7px 0 5px 0px; - list-style: none; - border-bottom: 1px solid #f4f4f4 !important; - font-size: 12px; - text-shadow: none; -} - -.dropdown-menu.extended li:first-child a { - border-top: none; - border-bottom: 1px solid #f4f4f4 !important; -} - -.dropdown-menu.extended li:last-child a { - border-top: 1px solid white !important; - border-bottom: 1px solid #f4f4f4 !important; -} - -.dropdown-menu.extended li.external > a { - font-size: 13px; - font-weight: 400; -} - -.dropdown-menu.extended li.external > a > i{ - margin-top: 3px; - float: right; -} - -/* header notifications dropdowns */ -.dropdown-menu .dropdown-menu-list.scroller { - padding-right: 0 !important; - padding-left: 0; - list-style: none; -} - -.dropdown-menu.notification li > a .time { - font-size: 12px; - font-weight: 600; - text-align: right; - font-style: italic; -} - -/* header inbox dropdowns */ -.dropdown-menu.inbox li > a .photo { - float: left; - padding-right: 6px; -} - -.dropdown-menu.inbox li > a .photo > img { - height: 40px; - width: 40px; -} - -.dropdown-menu.inbox li > a .subject { - display: block; -} - -.dropdown-menu.inbox li > a .subject .from { - font-size: 14px; - font-weight: 400; - color: #02689b; -} - -.dropdown-menu.inbox li > a .subject .time { - font-size: 12px; - font-weight: 600; - font-style: italic; - position: relative; - float: right; -} - -.dropdown-menu.inbox li > a .message { - display: block !important; - font-size: 12px; -} - -/* header tasks */ -.dropdown-menu.tasks .task { - margin-bottom: 5px; -} - -.dropdown-menu.tasks .task .desc { - font-size: 13px; - font-weight: 300; -} - -.dropdown-menu.tasks .task .percent { - font-size: 14px; - font-weight: 600; - font-family: 'Open Sans', sans-serif; - float: right; - display: inline-block; -} - -.dropdown-menu.tasks .progress { - display: block; - height: 11px; - margin: 0px; -} - -/*** -General list for item with image -***/ -.item-list li .img { - height: 50px; - width: 50px; - float: left; - margin-top: 3px; - margin-right: 5px; -} - -.item-list { - margin: 0px; - list-style: none; -} - -.item-list li { - padding: 7px 0 5px 0px; - list-style: none; - border-top: 1px solid white; - border-bottom: 1px solid #EBEBEB; - font-size: 12px; -} - -.item-list li:first-child { - border-top: none; - border-bottom: 1px solid #EBEBEB; -} - -.item-list li:last-child { - border-top: none; - border-bottom: none; -} - -.item-list li .label { - margin-right: 5px; -} - -.item-list.todo li .label { - position: absolute; - right: 80px; -} - -.item-list.todo li .actions { - position: absolute; - right: 45px; -} - -/*** -Custom tables -***/ -.table-toolbar { - margin-bottom: 15px; -} - -.table.table-full-width { - width: 100% !important; -} - -.table .m-btn { - margin-top: 0px; - margin-left: 0px; - margin-right: 5px; -} - -.table thead tr th { - font-size: 14px; - font-weight: 600; -} - -.table-advance { - margin-bottom: 10px !important; -} - -.table-advance thead { - color: #999; -} - -.table-advance thead tr th{ - background-color: #DDD; - font-size: 14px; - font-weight: 400; - color: #666; -} - -.table-advance div.success, -.table-advance div.info, -.table-advance div.important, -.table-advance div.warning, -.table-advance div.danger { - position: absolute; - margin-top:-5px; - float: left; - width: 2px; - height: 30px; - margin-right: 20px !important; -} - -.table-advance tr td { - border-left-width: 0px; -} -.table-advance tr td:first-child { - border-left-width: 1px !important; -} - -.table-advance tr td.highlight:first-child a { - margin-left: 15px; -} - -.table-advance td.highlight div.success { - border-left: 2px solid #66ee66; -} - -.table-advance td.highlight div.info { - border-left: 2px solid #87ceeb; -} - -.table-advance td.highlight div.important { - border-left: 2px solid #f02c71; -} - -.table-advance td.highlight div.warning { - border-left: 2px solid #fdbb39; -} - -.table-advance td.highlight div.danger { - border-left: 2px solid #e23e29; -} - -/*** -Star rating -***/ -.rating { - unicode-bidi: bidi-override; - direction: rtl; - font-size: 30px; -} - -.rating span.star { - font-family: FontAwesome; - font-weight: normal; - font-style: normal; - display: inline-block; -} - -.rating span.star:hover { - cursor: pointer; -} - -.rating span.star:before { - content: "\f006"; - padding-right: 5px; - color: #999999; -} - -.rating span.star:hover:before, -.rating span.star:hover ~ span.star:before { - content: "\f005"; - color: #e3cf7a; -} - - -/*** -Item block with details shown on hover -***/ -.item { - overflow: hidden; - display: block; - margin-bottom: 20px; -} - -.item .details { - width: 100%; - display: none; - background-color: #000; - color: #fff !important; - padding: 5px; - text-align: center; - position: relative; - bottom:30px; - margin-bottom:-30px; - overflow: hidden; - z-index: 6; -} - -.item:hover .details { - display: block; - opacity: 0.7; - filter: alpha(opacity = 70); -} - -.item:hover .zoom-icon{ - opacity:0.5; - filter: alpha(opacity = 50); -} - -/*** -Zoom icon overlay on images -***/ -.zoom { - cursor: pointer; - width: 100%; - height: 100%; - position: relative; - z-index: 5; -} - -.zoom .zoom-icon { - background-image:url("../image/overlay-icon.png"); - background-color: #222; - background-repeat: no-repeat; - background-position: 50%; - position: absolute; - width: inherit; - height: inherit; - opacity: 0; - filter: alpha(opacity = 0); - z-index: 6; - top:0; -} - -/*** -Chats -***/ -.chats { - margin:0; - padding: 0; - margin-top: -15px; -} - -.chats li { - list-style: none; - padding: 5px 0; - margin: 10px auto; - font-size: 12px; -} - -.chats li img.avatar { - height: 45px; - width: 45px; - -webkit-border-radius: 50% !important; - -moz-border-radius: 50% !important; - border-radius: 50% !important; -} - -.chats li.in img.avatar { - float: left; - margin-right: 10px; -} - -.chats li .name { - color:#3590c1; - font-size: 13px; - font-weight: 400; -} - -.chats li .datetime { - color:#333; - font-size: 13px; - font-weight: 400; -} - -.chats li.out img.avatar { - float: right; - margin-left: 10px; -} - -.chats li .message { - display: block; - padding: 5px; - position: relative; -} - -.chats li.in .message { - text-align: left; - border-left: 2px solid #35aa47; - margin-left: 65px; - background: #fafafa -} - -.chats li.in .message .arrow { - display: block; - position: absolute; - top: 5px; - left: -8px; - width: 0; - height: 0; - - border-top: 8px solid transparent; - border-bottom: 8px solid transparent; - border-right: 8px solid #35aa47; -} - -.chats li.out .message .arrow { - display: block; - position: absolute; - top: 5px; - right: -8px; - border-top: 8px solid transparent; - border-bottom: 8px solid transparent; - border-left: 8px solid #da4a38; -} - -.chats li.out .message { - border-right: 2px solid #da4a38; - margin-right: 65px; - background: #fafafa; - text-align: right; -} - -.chats li.out .name, -.chats li.out .datetime { - text-align: right; -} - -.chats li .message .body { - display: block; -} - -.chat-form { - margin-top: 15px; - padding: 10px; - background-color: #e9eff3; - overflow: hidden; - clear: both; -} - -.chat-form .input-cont { - margin-right: 40px; -} - -.chat-form .input-cont .form-control { - width: 100% !important; - margin-bottom: 0px; -} - -.chat-form .input-cont input{ - border: 1px solid #ddd; - width: 100% !important; - margin-top: 0; -} - -.chat-form .input-cont input { - background-color: #fff !important; -} - -.chat-form .input-cont input:focus{ - border: 1px solid #4b8df9 !important; -} - -.chat-form .btn-cont { - margin-top: -42px; - position: relative; - float: right; - width:44px; -} - -.chat-form .btn-cont .arrow { - position: absolute; - top: 17px; - right: 43px; - border-top: 8px solid transparent; - border-bottom: 8px solid transparent; - border-right: 8px solid #4d90fe; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} - -.chat-form .btn-cont:hover .arrow { - border-right-color: #0362fd; -} - -.chat-form .btn-cont:hover .btn { - background-color: #0362fd; -} - -.chat-form .btn-cont .btn { - margin-top: 8px; -} - -/*** -System feeds -***/ -.feeds { - margin: 0px; - padding: 0px; - list-style: none; -} - -.feeds li { - background-color: #fafafa; - margin-bottom: 7px; -} - -.feeds li:before, -.feeds li:after { - display: table; - line-height: 0; - content: ""; -} - -.feeds li:after { - clear: both; -} - -.feeds li:last-child { - margin-bottom: 0px; -} - -.feeds .col1 { - float:left; - width:100%; - clear: both; -} - -.feeds .col2 { - float:left; - width:75px; - margin-left:-75px; -} - -.feeds .col1 .cont { - float:left; - margin-right:75px; - overflow:hidden; -} - -.feeds .col1 .cont .cont-col1 { - float:left; - margin-right:-100%; -} - -.feeds .col1 .cont .cont-col1 .label { - display: inline-block; - padding: 5px 4px 6px 5px; - vertical-align: middle; - text-align: center; -} -.feeds .col1 .cont .cont-col1 .label > i { - text-align: center; - font-size: 14px; -} - -.feeds .col1 .cont .cont-col2 { - float:left; - width:100%; -} - -.feeds .col1 .cont .cont-col2 .desc { - margin-left:35px; - padding-top: 4px; - padding-bottom: 5px; - overflow:hidden; -} - -.feeds .col2 .date { - padding: 4px 9px 5px 4px; - text-align: right; - font-style: italic; - color:#c1cbd0; -} - -/*** -Users -***/ -.user-info { - margin-bottom: 10px !important; -} - -.user-info img { - float: left; - margin-right: 5px; -} - -.user-info .details { - display: inline-block; -} - -.user-info .label { - font-weight: 300; - font-size: 11px; -} - -/*** -Accordions -***/ -.accordion-heading { - background:#eee; -} - -.accordion-heading a { - text-decoration:none; -} - -.accordion-heading a:hover { - text-decoration:none; -} - -/*** -Vertical inline menu -***/ -.ver-inline-menu { - padding: 0; - margin: 0; - list-style: none; -} - -.ver-inline-menu li { - position:relative; - margin-bottom:1px; -} - -.ver-inline-menu li i { - width: 37px; - height: 37px; - display: inline-block; - color:#b9cbd5; - font-size:15px; - padding:12px 10px 10px 8px; - margin:0 8px 0 0; - text-align: center; - background:#e0eaf0 !important; -} - -.ver-inline-menu li a { - font-size: 13px; - color:#557386; - display:block; - background:#f0f6fa; - border-left:solid 2px #c4d5df; -} - -.ver-inline-menu li:hover a, -.ver-inline-menu li:hover i { - background:#e0eaf0; - text-decoration:none; -} - -.ver-inline-menu li:hover i { - color:#fff; - background:#c4d5df !important; -} - -.ver-inline-menu li.active a, -.ver-inline-menu li:hover a { - font-size: 13px; -} - -.ver-inline-menu li.active a { - border-left:solid 2px #0c91e5; -} - -.ver-inline-menu li.active a, -.ver-inline-menu li.active i { - color:#fff; - background:#169ef4; - text-decoration:none; -} - -.ver-inline-menu li.active i { - background:#0c91e5 !important; -} - -.ver-inline-menu li.active:after { - content: ''; - display: inline-block; - border-bottom: 6px solid transparent; - border-top: 6px solid transparent; - border-left: 6px solid #169ef4; - position: absolute; - top: 12px; - right: -5px; -} - -/*** -Custom tabs -***/ -.nav-tabs > li > a > .badge, -.nav-pills > li > a > .badge { - margin-top: -3px; -} - -.nav-tabs > li > a, -.nav-pills > li > a { - font-size: 14px; -} - -.nav-tabs-sm > li > a, -.nav-pills-sm > li > a { - font-size: 13px; -} - -.tabbable-custom { - margin-bottom: 15px; - padding: 0px; - overflow: hidden; -} - -.tabbable-custom > .nav-tabs { - border: none; - margin: 0px; -} - -.tabbable-custom > .tab-content { - background-color: #fff; - border: 1px solid #ddd; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; - padding: 10px; -} - -.tabbable-custom.nav-justified .tab-content { - margin-top: -1px; -} - -.tabs-below.tabbable-custom.nav-justified .tab-content { - margin-top: 0px; - margin-bottom: -2px; -} - -.tabbable-custom.boxless > .tab-content { - padding:15px 0; - border-left:none; - border-right:none; - border-bottom:none; -} - -.tabbable-custom .nav-tabs > li { - margin-right: 2px; - border-top: 2px solid transparent; -} - -.tabbable-custom .nav-tabs > li > a { - margin-right: 0; - } - -.tabbable-custom .nav-tabs > li > a:hover { - background: none; - border-color:transparent; -} - -.tabbable-custom .nav-tabs > li.active { - border-top: 3px solid #d12610; - margin-top: 0; - position: relative; -} - -.tabbable-custom .nav-tabs > li.active > a { - border-top: none; - font-weight: 400; -} - -.tabbable-custom .nav-tabs > li.active > a:hover { - border-top: none; - background: #fff; - border-color: #d4d4d4 #d4d4d4 transparent; -} - -.tabbable-custom .nav-tabs > li { - margin-right: 2px; - border-top: 2px solid transparent; -} - -/* below tabs */ - -.tabs-below.tabbable-custom .nav-tabs > li > a { - border-top: none; - border-bottom: 2px solid transparent; - margin-top: -1px; -} - -.tabs-below.tabbable-custom .nav-tabs > li.active { - border-top: none; - border-bottom: 3px solid #d12610; - margin-bottom: 0; - position: relative; -} - -.tabs-below.tabbable-custom .nav-tabs > li.active > a { - border-bottom: none -} - -.tabs-below.tabbable-custom .nav-tabs > li.active > a:hover { - background: #fff; - border-color: #d4d4d4 #d4d4d4 transparent; -} - -/*full width tabs with bigger titles */ -.tabbable-custom.tabbable-full-width > .tab-content { - padding:15px 0; - border-left:none; - border-right:none; - border-bottom:none; -} - -.tabbable-custom.tabbable-full-width .nav-tabs > li > a { - color:#424242; - font-size:15px; - padding:9px 15px; -} - -/*** -Custom portlet tabs -***/ - -.portlet-tabs > .nav-tabs { - position: relative; - top: -41px; - margin-right: 10px; - overflow: hidden; -} - -.portlet-tabs > .nav-tabs > li { - float: right; -} - -.portlet-tabs > .nav-tabs { - border-bottom: none; -} - -.portlet-tabs > .nav-tabs > li > a { - color: #fff; - padding-top: 8px; - padding-bottom: 10px; - line-height: 16px; - margin-top: 6px; - margin-left: 0px; - margin-right: 0px; - border-left: 0; - border-right: 0; - -webkit-border-radius: 0px; - -moz-border-radius: 0px; - border-radius: 0px; -} - -.portlet-tabs > .nav-tabs > li:last-child > a { - border-right:0; -} - -.portlet-tabs > .nav-tabs > li { - margin-left: 1px; -} - -.portlet-tabs > .nav-tabs > li.active { - color: #333; - border-top-color: transparent; -} - -.portlet-tabs > .nav-tabs > li.active > a { - margin-bottom: 0px; - border-bottom: 0; - margin-left: 0px; - margin-right: 0px; - border-left: 0; - border-right: 0; - border-top-color:transparent !important; -} - -.portlet-tabs > .nav-tabs > li > a:hover { - color: #333; - margin-bottom: 0; - border-bottom-color: transparent; - margin-left: 0; - margin-right: 0; - border-left: 0; - border-right: 0; - border-top-color:transparent; - background-color: #fff; -} - -.portlet-tabs > .nav-tabs > .active > a { - color: #555555; - cursor: default; - background-color: #fff; -} - -.portlet-tabs > .nav-tabs > .active > a:hover { - background-color: #fff !important; -} - -.portlet-tabs > .tab-content { - padding: 10px !important; - margin: 0px; - margin-top: -50px !important; -} - -.portlet.tabbable .portlet-body { - padding: 0px; -} - -.tab-pane > p:last-child { - margin-bottom: 0px; -} - -/* reverse aligned tabs */ - -.tabs-reversed > li { - float: right; -} - -.tabs-reversed > li, -.tabs-reversed > li > a { - margin-right: 0; -} - -/*** -Dashboard container -***/ - -#dashboard { - overflow: hidden; -} - -/*** -Dashboard stats -***/ -.dashboard-stat { - margin-bottom: 25px; -} - -.portlet .dashboard-stat:last-child { - margin-bottom: 0; -} - -.dashboard-stat:before, -.dashboard-stat:after { - display: table; - line-height: 0; - content: ""; -} -.dashboard-stat:after { - clear: both; -} - -.dashboard-stat .visual { - width: 80px; - height:80px; - display: block; - float: left; - padding-top: 10px; - padding-left: 15px; - margin-bottom: 10px; -} - -.dashboard-stat .visual i { - font-size: 65px; - line-height: 65px; - color: #fff; -} - -.dashboard-stat .visual { - font-size: 35px; - line-height: 35px; -} - -@media (min-width: 992px) and (max-width: 1024px) { - - .dashboard-stat .visual i { - font-size: 28px; - line-height: 28px; - } - -} - -.dashboard-stat .details { - position: absolute; - right: 15px; - padding-right: 10px; -} - -.dashboard-stat .details .number { - padding-top: 15px; - text-align: right; - font-size: 34px; - line-height: 34px; - letter-spacing: -1px; - margin-bottom: 5px; - font-weight: 300; - color: #fff; -} - -.dashboard-stat .details .desc { - text-align: right; - font-size: 16px; - letter-spacing: 0px; - font-weight: 300; - color: #fff; -} - -.dashboard-stat .more { - clear: both; - display: block; - padding: 5px 10px 5px 10px; - text-transform: uppercase; - font-weight: 300; - font-size: 11px; - color: #fff; - opacity: 0.7; - filter: alpha(opacity=70); -} - -.dashboard-stat .more:hover { - text-decoration: none; - opacity: 1; - filter: alpha(opacity=100); -} - -.dashboard-stat .more > i { - display: inline-block; - margin-top: 1px; - float: right; -} - -.dashboard-stat.blue { - background-color: #27a9e3; -} - -.dashboard-stat.blue .more { - background-color: #208dbe; -} - -.dashboard-stat.green { - background-color: #28b779; -} - -.dashboard-stat.green .more { - background-color: #10a062; -} - -.dashboard-stat.red { - background-color: #e7191b; -} - -.dashboard-stat.red .more { - background-color:#bc0d0e; -} - -.dashboard-stat.yellow { - background-color: #ffb848; -} - -.dashboard-stat.yellow .more { - background-color: #cb871b; -} - -.dashboard-stat.purple { - background-color: #852b99; -} - -.dashboard-stat.purple .more { - background-color: #6e1881; -} - -/*** -Text Stats -***/ - -.text-stat h3 { - margin-top: 5px; - margin-bottom: 0px; - font-size: 18px; -} - -.text-stat span { - font-size: 12px; - text-transform: uppercase; -} - -@media (max-width: 767px) { - - .text-stat { - margin-top: 20px; - } - -} - -/*** -Tiles(new in v1.1.1) -***/ - -.tiles { - margin-right: -10px; -} - -.tiles:before, -.tiles:after { - display: table; - content: " "; -} - -.tiles:after { - clear: both; -} - -.tile { - display: block; - letter-spacing: 0.02em; - float: left; - height: 135px; - width: 135px !important; - cursor: pointer; - text-decoration: none; - color: #ffffff; - position: relative; - font-weight: 300; - font-size: 12px; - letter-spacing: 0.02em; - line-height: 20px; - overflow: hidden; - border: 4px solid transparent; - margin: 0 10px 10px 0; -} - -.tile:after, -.tile:before { - content: ""; - float: left; -} - -.tile.double { - width: 280px !important; -} - -.tile.double-down { - height: 280px !important; -} - -.tile:active, .tile.selected { - border-color: #ccc !important; -} - -.tile:hover { - border-color: #aaa !important; -} - -.tile.selected .corner:after { - content: ""; - display: inline-block; - border-left: 40px solid transparent; - border-bottom: 40px solid transparent; - border-right: 40px solid #ccc; - position: absolute; - top: -3px; - right: -3px; -} - -.tile.selected .check:after { - content: ""; - font-family: FontAwesome; - font-size: 13px; - content: "\f00c"; - display: inline-block; - position: absolute; - top: 2px; - right: 2px; -} - -.tile * { - color: #ffffff; -} - -.tile .tile-body { - height: 100%; - vertical-align: top; - padding: 10px 10px; - overflow: hidden; - position: relative; - font-weight: 400; - font-size: 12px; - color: #000000; - color: #ffffff; - margin-bottom: 10px; -} - -.tile .tile-body img { - float: left; - margin-right: 10px; -} - -.tile .tile-body img.pull-right { - float: right !important; - margin-left: 10px; - margin-right: 0px; -} - -.tile .tile-body .content { - display: inline-block; -} - -.tile .tile-body > i { - margin-top: 17px; - display: block; - font-size: 56px; - line-height: 56px; - text-align: center; -} - - -.tile.double-down i { - margin-top: 95px; -} - -.tile .tile-body h1, -.tile .tile-body h2, -.tile .tile-body h3, -.tile .tile-body h4, -.tile .tile-body h5, -.tile .tile-body h6, -.tile .tile-body p { - padding: 0; - margin: 0; - line-height: 14px; -} - -.tile .tile-body h3, -.tile .tile-body h4 { - margin-bottom: 5px; -} - -.tile .tile-body h1:hover, -.tile .tile-body h2:hover, -.tile .tile-body h3:hover, -.tile .tile-body h4:hover, -.tile .tile-body h5:hover, -.tile .tile-body h6:hover, -.tile .tile-body p:hover { - color: #ffffff; -} - -.tile .tile-body p { - font-weight: 400; - font-size: 13px; - color: #000000; - color: #ffffff; - line-height: 20px; - overflow: hidden; -} - -.tile .tile-body p:hover { - color: rgba(0, 0, 0, 0.8); -} - -.tile .tile-body p:active { - color: rgba(0, 0, 0, 0.4); -} - -.tile .tile-body p:hover { - color: #ffffff; -} - -.tile.icon > .tile-body { - padding: 0; -} - -.tile .tile-object { - position: absolute; - bottom: 0; - left: 0; - right: 0; - min-height: 30px; - background-color: transparent; - *zoom: 1; -} - -.tile .tile-object:before, -.tile .tile-object:after { - display: table; - content: ""; -} - -.tile .tile-object:after { - clear: both; -} - -.tile .tile-object > .name { - position: absolute; - bottom: 0; - left: 0; - margin-bottom: 5px; - margin-left: 10px; - margin-right: 15px; - font-weight: 400; - font-size: 13px; - color: #ffffff; -} - -.tile .tile-object > .name > i { - vertical-align: middle; - display: block; - font-size: 24px; - height: 18px; - width: 24px; -} - -.tile .tile-object > .number { - position: absolute; - bottom: 0; - right: 0; - margin-bottom: 0; - color: #ffffff; - text-align: center; - font-weight: 600; - font-size: 14px; - letter-spacing: 0.01em; - line-height: 14px; - margin-bottom: 8px; - margin-right: 10px; -} - -.tile.image > .tile-body { - padding: 0 !important; -} - -.tile.image > .tile-body > img{ - width: 100%; - height: auto; - min-height: 100%; - max-width: 100%; -} - -.tile.image .tile-body h3 { - display: inline-block; -} - -/*** -Theme Panel -***/ - -.theme-panel { - width: 400px; - margin-top: 0px; - margin-right: 1px; - z-index: 999; - float: right; - position:relative; -} - -.theme-panel > .toggler { - top:4px; - right:0; - padding:20px; - cursor:pointer; - position:absolute; - background:#c9c9c9 url(../image/icon-color.png) center no-repeat; -} - -.theme-panel > .toggler:hover { - background-color: #3d3d3d !important; -} - -.theme-panel > .toggler-close { - display: none; - top:4px; - right:0; - padding:20px; - cursor:pointer; - position:absolute; - background: #3d3d3d url(../image/icon-color-close.png) center no-repeat !important; -} - -.theme-panel > .toggler-close:hover { - background-color:#222 !important; -} - -.theme-panel > .theme-options { - top:4px; - right:40px; - display:none; - position:absolute; - background:#3d3d3d; -} - -.theme-panel > .theme-options > .theme-option { - color:#cfcfcf; - padding: 15px; - border-top:1px solid #585858; - margin-top: 0px; - margin-bottom: 0px; -} - -.theme-panel > .theme-options > .theme-option.theme-colors { - border-top: 0; -} - -.theme-panel > .theme-options > .theme-option > span { - text-transform:uppercase; - display: inline-block; - width: 138px; - font-size: 14px; -} - -.theme-panel > .theme-options > .theme-option.theme-colors > span { - display: block; - width: auto; -} - -.theme-panel > .theme-options > .theme-option > select.form-control { - display: inline; - width: 100px; - text-transform: lowercase; -} - -.theme-panel > .theme-options > .theme-option.theme-colors > ul { - list-style:none; - padding: 0; - display: block; - margin-bottom: 1px !important; - margin-top: 10px; -} - -.theme-panel > .theme-options > .theme-option.theme-colors > ul > li { - width:37px; - height:37px; - margin:0 4px; - cursor:pointer; - list-style:none; - float: left; - border:solid 1px #707070; -} - -.theme-panel > .theme-options > .theme-option.theme-colors > ul > li:first-child { - margin-left: 0; -} - -.theme-panel > .theme-options > .theme-option.theme-colors > ul > li:hover, -.theme-panel > .theme-options > .theme-option.theme-colors > ul > li.current { - border:solid 2px #ebebeb; -} - -.theme-panel > .theme-options > .theme-option.theme-colors > ul > li.color-black { - background:#333438; -} - -.theme-panel > .theme-options > .theme-option.theme-colors > ul > li.color-grey { - background:#6d6d6d; -} - -.theme-panel > .theme-options > .theme-option.theme-colors > ul > li.color-ztebluelight { - background:#3366cc; -} -.theme-panel > .theme-options > .theme-option.theme-colors > ul > li.color-ztebluelight { - background:#1ab3ec; -} - -.theme-panel > .theme-options > .theme-option.theme-colors > ul > li.color-blue { - background:#124f94; -} - -.theme-panel > .theme-options > .theme-option.theme-colors > ul > li.color-brown { - background:#623f18; -} - -.theme-panel > .theme-options > .theme-option.theme-colors > ul > li.color-purple { - background:#701584; -} - -.theme-panel > .theme-options > .theme-option.theme-colors > ul > li.color-white { - background:#fff; -} - -/*** -Top bar menu -***/ - -/* enable arrow for dropdown menu */ -.header.navbar .nav > li > .dropdown-menu:before { - position: absolute; - top: -7px; - right: 9px; - display: inline-block !important; - border-right: 7px solid transparent; - border-bottom: 7px solid #ccc; - border-left: 7px solid transparent; - border-bottom-color: rgba(0, 0, 0, 0.2); - content: ''; -} - -.header.navbar .nav > li > .dropdown-menu:after { - position: absolute; - top: -6px; - right: 10px; - display: inline-block !important; - border-right: 6px solid transparent; - border-bottom: 6px solid #fff; - border-left: 6px solid transparent; - content: ''; -} - -/*** -Mega Menu(new in v1.6) -***/ - -.mega-menu .nav, -.mega-menu .collapse, -.mega-menu .mega-menu-dropup, -.mega-menu .mega-menu-dropdown { - position: static; -} -.mega-menu .container { - position: relative; -} -.mega-menu .mega-menu-dropdown .dropdown-menu { - left: auto; - width: auto; -} -.mega-menu .nav.navbar-right .dropdown-menu { - left: auto; - right: 0; -} -.mega-menu .mega-menu-content { - padding: 10px; - margin: 0; -} -.mega-menu .mega-menu-full .dropdown-menu { - left: 20px; - right: 20px; -} - -.mega-menu-responsive-content { - padding: 10px 15px 10px 60px; -} - -.page-boxed .mega-menu .mega-menu-dropdown .dropdown-menu { - top: 42px; -} - -.page-boxed .mega-menu .mega-menu-dropdown.mega-menu-full .dropdown-menu { - margin: 0; - padding: 0; - left: 18px; - right: 18px; -} - -.mega-menu .mega-menu-submenu { - width: auto !important; - padding: 0px 30px 0px 0px !important; - margin: 0 !important; -} - - - .mega-menu-content .row :last-child>ul{ - border-right: 0 !important; -} - -.mega-menu .mega-menu-submenu li > h3 { - font-size: 14px; - margin-top: 10px; - padding-left: 5px; -} - -.mega-menu .mega-menu-submenu li { - padding: 2px !important; - margin: 0 !important; - list-style: none; -} - -.mega-menu .mega-menu-submenu li > a { - padding: 5px !important; - margin: 0 !important; -} - -/*** -Horezantal Menu(new in v1.2) -***/ - -.header.navbar .hor-menu { - margin: 0; - float: left; -} - -.header.navbar .hor-menu ul.nav li > a { - font-size: 15px; - padding: 11px 10px; -} - -.header.navbar .hor-menu ul.nav li.current .selected, -.header.navbar .hor-menu ul.nav li.active .selected { - left: 50%; - bottom:0; - position: absolute; - border-left: 6px solid transparent; - border-right: 6px solid transparent; - /*border-top: 6px solid #e02222;*/ - display: inline-block; - margin: 0; - width: 0px; - height:0px; - margin-left: -7px; - margin-bottom:-6px; -} - -/*drop-down*/ -.header.navbar .hor-menu .dropdown-menu { - margin-top: 0; - border: none; - box-shadow: none; -} - -.header.navbar .hor-menu .classic-menu-dropdown .dropdown-submenu > .dropdown-menu { - top: 0; -} - -.header.navbar .hor-menu .classic-menu-dropdown .dropdown-submenu > a:after { - top: 8px; - margin-right: 0px; -} - -.header.navbar .hor-menu .classic-menu-dropdown .dropdown-menu li > a { - padding: 7px 18px !important; - margin-bottom:1px; -} - -.header.navbar .hor-menu .classic-menu-dropdown .dropdown-menu .arrow { - display: none; -} - -.header.navbar .hor-menu .classic-menu-dropdown .dropdown-menu li > a:hover, -.header.navbar .hor-menu .classic-menu-dropdown .dropdown-menu li:hover > a, -.header.navbar .hor-menu .classic-menu-dropdown .dropdown-menu li.active > a { - filter:none !important; -} - -.header.navbar .hor-menu .nav > li > .dropdown-menu:after, -.header.navbar .hor-menu .nav > li > .dropdown-menu:before { - border-bottom: none !important; -} - -/*search*/ -.header.navbar .hor-menu .hor-menu-search-form-toggler { - display: inline-block; - padding: 12px 22px 12px 22px !important; - cursor: pointer; - background: url(../image/hor-menu-search.png) no-repeat center; -} - -.header.navbar .hor-menu .hor-menu-search-form-toggler:hover { - opacity: 0.8; - filter: alpha(opacity=80); -} - -.header.navbar .hor-menu a.hor-menu-search-form-toggler-close { - display: none; -} - -.header.navbar .hor-menu .search-form { - margin: 0; - top:42px; - right:0px; - padding:0 4px; - display:none; - z-index:999; - position:absolute; -} - -.header.navbar .hor-menu .search-form .btn { - padding: 7px 20px; - height: 32px; - width: 10px; - display: inline-block; -} - -.header.navbar .hor-menu .search-form .btn:hover { - opacity: 0.8; - filter: alpha(opacity=80); -} - -.header.navbar .hor-menu .search-form form { - margin-bottom: 0; -} - -.header.navbar .hor-menu .search-form form input { - background: none; - width: 200px; - border: none; - margin-top: 6px; -} - -/*** -Top News Blocks(new in v1.2.2) -***/ -.top-news { - color: #fff; - margin: 8px 0; -} - -.top-news a, -.top-news em, -.top-news span { - display: block; - text-align: left; -} - -.top-news a { - padding: 10px; - position: relative; - margin-bottom: 10px; -} - -.top-news a .top-news-icon { - right: 8px; - bottom: 15px; - opacity:0.3; - font-size: 35px; - position: absolute; - filter: alpha(opacity=30); /*For IE8*/ -} - -.top-news em { - margin-bottom: 0; - font-style: normal; -} - -.top-news span { - font-size: 18px; - margin-bottom: 5px; -} - -/*** -Block Images(new in v1.2.2) -***/ -.blog-images { - margin-bottom: 0; -} - -.blog-images li { - padding: 0; - margin: 0; - display: inline; -} - -.blog-images li a:hover { - text-decoration: none; -} - -.blog-images li img { - width: 50px; - height: 50px; - opacity: 0.6; - margin: 0 2px 8px; -} - -.blog-images li img:hover { - opacity: 1; - box-shadow: 0 0 0 4px #72c02c; - transition: all 0.4s ease-in-out 0s; - -moz-transition: all 0.4s ease-in-out 0s; - -webkit-transition: all 0.4s ease-in-out 0s; -} - -/*Sidebar Tags*/ -ul.sidebar-tags a { - color: #555; - font-size:12px; - padding:3px 5px; - background:#f7f7f7; - margin:0 2px 5px 0; - display:inline-block; -} - -ul.sidebar-tags a:hover, -ul.sidebar-tags a:hover i { - background: #EEE; - text-decoration:none; - -webkit-transition:all 0.3s ease-in-out; - -moz-transition:all 0.3s ease-in-out; - -o-transition:all 0.3s ease-in-out; - transition:all 0.3s ease-in-out; -} - -ul.sidebar-tags a i { - color:#777; -} - -ul.sidebar-tags li { - padding: 0; -} - -/*** -Social Icons(new in v1.2.2) -***/ -.social-icons { - padding: 0; - margin:0; -} - -.social-icons:after, -.social-icons:before { - content: ""; - display: table; -} - -.social-icons:after { - clear: both; -} - -.social-icons li { - float:left; - display:inline; - list-style:none; - margin-right:5px; - margin-bottom:5px; - text-indent:-9999px; -} -.social-icons li a, a.social-icon { - width:28px; - height:28px; - display:block; - background-position:0 0; - background-repeat:no-repeat; - transition: all 0.3s ease-in-out; - -o-transition: all 0.3s ease-in-out; - -ms-transition: all 0.3s ease-in-out; - -moz-transition: all 0.3s ease-in-out; - -webkit-transition: all 0.3s ease-in-out; -} -.social-icons li:hover a { - background-position:0 -38px; -} - -.social-icons-color li a { - opacity: 0.7; - background-position:0 -38px !important; -} - -.social-icons-color li a:hover { - opacity: 1; -} - -.social-icons .amazon {background: url(../image/social/amazon.png) no-repeat;} -.social-icons .behance {background: url(../image/social/behance.png) no-repeat;} -.social-icons .blogger {background: url(../image/social/blogger.png) no-repeat;} -.social-icons .deviantart {background: url(../image/social/deviantart.png) no-repeat;} -.social-icons .dribbble {background: url(../image/social/dribbble.png) no-repeat;} -.social-icons .dropbox {background: url(../image/social/dropbox.png) no-repeat;} -.social-icons .evernote {background: url(../image/social/evernote.png) no-repeat;} -.social-icons .facebook {background: url(../image/social/facebook.png) no-repeat;} -.social-icons .forrst {background: url(../image/social/forrst.png) no-repeat;} -.social-icons .github {background: url(../image/social/github.png) no-repeat;} -.social-icons .googleplus {background: url(../image/social/googleplus.png) no-repeat;} -.social-icons .jolicloud {background: url(../image/social/jolicloud.png) no-repeat;} -.social-icons .last-fm {background: url(../image/social/last-fm.png) no-repeat;} -.social-icons .linkedin {background: url(../image/social/linkedin.png) no-repeat;} -.social-icons .picasa {background: url(../image/social/picasa.png) no-repeat;} -.social-icons .pintrest {background: url(../image/social/pintrest.png) no-repeat;} -.social-icons .rss {background: url(../image/social/rss.png) no-repeat;} -.social-icons .skype {background: url(../image/social/skype.png) no-repeat;} -.social-icons .spotify {background: url(../image/social/spotify.png) no-repeat;} -.social-icons .stumbleupon {background: url(../image/social/stumbleupon.png) no-repeat;} -.social-icons .tumblr {background: url(../image/social/tumblr.png) no-repeat;} -.social-icons .twitter {background: url(../image/social/twitter.png) no-repeat;} -.social-icons .vimeo {background: url(../image/social/vimeo.png) no-repeat;} -.social-icons .wordpress {background: url(../image/social/wordpress.png) no-repeat;} -.social-icons .xing {background: url(../image/social/xing.png) no-repeat;} -.social-icons .yahoo {background: url(../image/social/yahoo.png) no-repeat;} -.social-icons .youtube {background: url(../image/social/youtube.png) no-repeat;} -.social-icons .vk {background: url(../image/social/vk.png) no-repeat;} -.social-icons .instagram {background: url(../image/social/instagram.png) no-repeat;} -.social-icons .reddit {background: url(../image/social/reddit.png) no-repeat;} -.social-icons .aboutme {background: url(../image/social/aboutme.png) no-repeat;} -.social-icons .flickr {background: url(../image/social/flickr.png) no-repeat;} -.social-icons .foursquare {background: url(../image/social/foursquare.png) no-repeat;} -.social-icons .gravatar {background: url(../image/social/gravatar.png) no-repeat;} -.social-icons .klout {background: url(../image/social/klout.png) no-repeat;} -.social-icons .myspace {background: url(../image/social/myspace.png) no-repeat;} -.social-icons .quora {background: url(../image/social/quora.png) no-repeat;} - -/*** -Inline Social Icons -***/ - -.social-icon { - display:inline-block !important; - width:28px; - height:28px; - background-position:0 0; - background-repeat:no-repeat; - transition: all 0.3s ease-in-out; - -o-transition: all 0.3s ease-in-out; - -ms-transition: all 0.3s ease-in-out; - -moz-transition: all 0.3s ease-in-out; - -webkit-transition: all 0.3s ease-in-out; -} - -.social-icon.amazon {background: url(../image/social/amazon.png) no-repeat;} -.social-icon.behance {background: url(../image/social/behance.png) no-repeat;} -.social-icon.blogger {background: url(../image/social/blogger.png) no-repeat;} -.social-icon.deviantart {background: url(../image/social/deviantart.png) no-repeat;} -.social-icon.dribbble {background: url(../image/social/dribbble.png) no-repeat;} -.social-icon.dropbox {background: url(../image/social/dropbox.png) no-repeat;} -.social-icon.evernote {background: url(../image/social/evernote.png) no-repeat;} -.social-icon.facebook {background: url(../image/social/facebook.png) no-repeat;} -.social-icon.forrst {background: url(../image/social/forrst.png) no-repeat;} -.social-icon.github {background: url(../image/social/github.png) no-repeat;} -.social-icon.googleplus {background: url(../image/social/googleplus.png) no-repeat;} -.social-icon.jolicloud {background: url(../image/social/jolicloud.png) no-repeat;} -.social-icon.last-fm {background: url(../image/social/last-fm.png) no-repeat;} -.social-icon.linkedin {background: url(../image/social/linkedin.png) no-repeat;} -.social-icon.picasa {background: url(../image/social/picasa.png) no-repeat;} -.social-icon.pintrest {background: url(../image/social/pintrest.png) no-repeat;} -.social-icon.rss {background: url(../image/social/rss.png) no-repeat;} -.social-icon.skype {background: url(../image/social/skype.png) no-repeat;} -.social-icon.spotify {background: url(../image/social/spotify.png) no-repeat;} -.social-icon.stumbleupon {background: url(../image/social/stumbleupon.png) no-repeat;} -.social-icon.tumblr {background: url(../image/social/tumblr.png) no-repeat;} -.social-icon.twitter {background: url(../image/social/twitter.png) no-repeat;} -.social-icon.vimeo {background: url(../image/social/vimeo.png) no-repeat;} -.social-icon.wordpress {background: url(../image/social/wordpress.png) no-repeat;} -.social-icon.xing {background: url(../image/social/xing.png) no-repeat;} -.social-icon.yahoo {background: url(../image/social/yahoo.png) no-repeat;} -.social-icon.youtube {background: url(../image/social/youtube.png) no-repeat;} -.social-icon.vk {background: url(../image/social/vk.png) no-repeat;} -.social-icon.instagram {background: url(../image/social/instagram.png) no-repeat;} -.social-icon.reddit {background: url(../image/social/reddit.png) no-repeat;} -.social-icon.aboutme {background: url(../image/social/aboutme.png) no-repeat;} -.social-icon.flickr {background: url(../image/social/flickr.png) no-repeat;} -.social-icon.foursquare {background: url(../image/social/foursquare.png) no-repeat;} -.social-icon.gravatar {background: url(../image/social/gravatar.png) no-repeat;} -.social-icon.klout {background: url(../image/social/klout.png) no-repeat;} -.social-icon.myspace {background: url(../image/social/myspace.png) no-repeat;} -.social-icon.quora {background: url(../image/social/quora.png) no-repeat;} - -.social-icon:hover { - background-position:0 -38px; -} - -.social-icon-color { - opacity: 0.7; - background-position:0 -38px !important; -} - -.social-icon-color:hover { - opacity: 1; -} - -/*** -Notes -***/ - -/* Common styles for all types */ -.note { - margin: 0 0 20px 0; - padding: 15px 30px 15px 15px; - border-left: 5px solid #eee; -} - -.note h1, -.note h2, -.note h3, -.note h4 { - margin-top: 0; -} - -.note p:last-child { - margin-bottom: 0; -} -.note code, -.note .highlight { - background-color: #fff; -} - -/* Variations */ -.note-danger { - background-color: #FAEAE6; - border-color: #ed4e2a; -} - -.note-warning { - background-color: #FCF3E1; - border-color: #fcb322; -} - -.note-info { - background-color: #E8F6FC; - border-color: #57b5e3; -} - -.note-success { - background-color: #EBFCEE; - border-color: #3cc051; -} - -/*** -Demo Utils -***/ -.scrollspy-example { - position: relative; - height: 200px; - margin-top: 10px; - overflow: auto; -} - -.util-btn-margin-bottom-5 .btn { - margin-bottom: 5px !important; -} - -.util-btn-group-margin-bottom-5 .btn-group { - margin-bottom: 5px !important; -} - -.fontawesome-demo i { - font-size: 18px; -} - -.fontawesome-demo li { - padding-top: 5px; - padding-bottom: 5px; -} - -.glyphicons-demo ul { - padding-left: 0; - padding-bottom: 1px; - margin-bottom: 20px; - list-style: none; - overflow: hidden; -} - -.bs-glyphicons { - padding-left: 0; - padding-bottom: 1px; - margin-bottom: 20px; - list-style: none; - overflow: hidden; -} -.glyphicons-demo ul li { - float: left; - width: 25%; - height: 115px; - padding: 10px; - margin: 0 -1px -1px 0; - font-size: 12px; - line-height: 1.4; - text-align: center; - border: 1px solid #ddd; -} - -.glyphicons-demo .glyphicon { - display: block; - margin: 5px auto 10px; - font-size: 24px; -} -.glyphicons-demo ul li:hover { - background-color: rgba(86,61,124,.1); -} - -@media (min-width: 768px) { - .glyphicons-demo ul li { - width: 12.5%; - } -} - -/*** -Forms -****/ - -.static-info { - margin-bottom: 10px; -} - -.static-info .name { - font-size: 14px; -} - -.static-info .value { - font-size: 14px; - font-weight: 600; -} - -.static-info.align-reverse .name, -.static-info.align-reverse .value { - text-align: right; -} - -input.placeholder, -textarea.placeholder { - color: #aaa !important; -} - -.help-block { - margin-top: 5px; - margin-bottom: 5px; -} - -.form-inline input { - margin-bottom: 0px !important; -} - -.control-label { - margin-top: 2px; -} - -.form-control-static { - font-size: 14px; - padding-top: 7px; -} - -.control-label .required { - color: #e02222; - font-size: 12px; - padding-left: 2px; -} - -.switch-wrapper { - display: inline-block; -} - -.form { - padding: 0 !important; -} - -.form-body { - padding: 10px; -} - -.form-actions { - padding: 20px 10px; - margin-top: 20px; -/* background-color: #f5f5f5; - border-top: 1px solid #e5e5e5;*/ - *zoom: 1; -} - -.form-actions.nobg { - background-color: transparent; -} - -.form-actions.top { - margin-top: 0; - margin-bottom: 20px; - border-top: 0; - border-bottom: 1px solid #e5e5e5; -} - -.form-actions.fluid { - padding: 20px 0; -} - -.form-actions.fluid > [class^="col-"] { - padding-left: 13px; -} - -.form-actions:before, -.form-actions:after { - display: table; - line-height: 0; - content: ""; -} - -.form-actions:after { - clear: both; -} - -.form-section { - margin: 30px 0px 25px 0px; - padding-bottom: 5px; - border-bottom: 1px solid #eee; -} - -.form .form-section:first-child { - margin-top: 5px; -} - -.help-inline { - font-size: 13px; - color: #737373; - display: inline-block; - padding: 5px; -} - -/* left, right aligned form actions */ -.form-actions.right { - padding-left: 0; - padding-right: 10px; - text-align: right; -} - -.form-actions.left { - padding-left: 10px; - padding-right: 0; - text-align: left; -} - -/* Checkboxes */ -.form-group .checkbox { - padding-left: 0; -} - -.checkbox-list > label { - display: block; -} - -.checkbox-list > label.checkbox-inline { - display: inline-block; -} - -.checkbox-list > label.checkbox-inline:first-child { - padding-left: 0; -} - -/* Radios */ - -.radio-list > label { - display: block; -} - -.radio-list > label.radio-inline { - display: inline-block; -} - -.radio-list > label.radio-inline:first-child { - padding-left: 0; -} - -.form-horizontal .radio-list .radio { - padding-top: 1px; -} - -.form-horizontal .radio-list > label { - margin-bottom: 0; -} - -.form-horizontal .radio > span { - margin-top: 2px; -} - -/* Rows seperated form layout */ -.form-row-seperated .form-group { - margin: 0; - border-bottom: 1px solid #efefef; - padding: 10px 0px 10px 0px; -} - -.form-row-seperated .form-group.last { - border-bottom: 0; - margin-bottom: 0; - padding-bottom: 10px; -} - -.form-row-seperated .form-actions { - margin-top: 0; -} - -.form-row-seperated .form-body { - padding: 0; - margin-top: 0; -} - -.form-row-seperated .help-block { - margin-bottom: 0; -} - -/* form bordered */ -.form-bordered .form-body { - margin: 0; - padding: 0; -} - -.form-bordered .form-actions { - margin-top: 0; -} - -.form-bordered .form-group { - margin: 0; - border-bottom: 1px solid #efefef; -} - -.form-bordered .form-group.last { - border-bottom: 0; -} - -.form-bordered .help-block { - margin-bottom: 0; -} - -.form-bordered .control-label { - padding-top: 16px; -} - -.form-bordered .form-group > div { - padding: 10px; - border-left: 1px solid #efefef; -} - -.form-bordered .form-actions.fluid > .row > div { - padding-left: 10px; -} - -.form-horizontal.form-bordered.form-row-stripped .form-group:nth-child(even) { - background-color: #fcfcfc; -} - -.form-horizontal.form-bordered.form-label-stripped .form-group:nth-child(even) { - background-color: #fcfcfc; -} - -.form-horizontal.form-bordered.form-row-stripped .form-control { - background: #fff !important; -} - -.form-horizontal.form-bordered.form-label-stripped .form-group:nth-child(even) > div { - background-color: #ffffff; -} - -/*** -Bordered form layout -***/ - -.form-bordered .form-control { - margin: 0; -} - - -/*** -Disabled Menu Link -***/ - -.disabled-link > a > span.text, -.disabled-link > a > span.title { - font-style: italic !important; - color: #888 !important; -} - -.disabled-link > a:hover { - cursor: not-allowed !important; -} - - -/*** -Responsive & Scrollable Tables -***/ - -.table-scrollable { - width: 100%; - overflow-x: auto; - overflow-y: hidden; - border: 1px solid #dddddd; - margin: 10px 0 !important; -} - -.table-scrollable > .table { - width: 100% !important; - margin: 0 !important; - margin-bottom: 0; - background-color: #fff; -} - -.table-scrollable > .table > thead > tr > th, -.table-scrollable > .table > tbody > tr > th, -.table-scrollable > .table > tfoot > tr > th, -.table-scrollable > .table > thead > tr > td, -.table-scrollable > .table > tbody > tr > td, -.table-scrollable > .table > tfoot > tr > td { - white-space: nowrap; -} - -.table-scrollable > .table-bordered { - border: 0; -} - -.table-scrollable > .table-bordered > thead > tr > th:first-child, -.table-scrollable > .table-bordered > tbody > tr > th:first-child, -.table-scrollable > .table-bordered > tfoot > tr > th:first-child, -.table-scrollable > .table-bordered > thead > tr > td:first-child, -.table-scrollable > .table-bordered > tbody > tr > td:first-child, -.table-scrollable > .table-bordered > tfoot > tr > td:first-child { - border-left: 0; -} - -.table-scrollable > .table-bordered > thead > tr > th:last-child, -.table-scrollable > .table-bordered > tbody > tr > th:last-child, -.table-scrollable > .table-bordered > tfoot > tr > th:last-child, -.table-scrollable > .table-bordered > thead > tr > td:last-child, -.table-scrollable > .table-bordered > tbody > tr > td:last-child, -.table-scrollable > .table-bordered > tfoot > tr > td:last-child { - border-right: 0; -} - -.table-scrollable > .table-bordered > thead > tr:last-child > th, -.table-scrollable > .table-bordered > tbody > tr:last-child > th, -.table-scrollable > .table-bordered > tfoot > tr:last-child > th, -.table-scrollable > .table-bordered > thead > tr:last-child > td, -.table-scrollable > .table-bordered > tbody > tr:last-child > td, -.table-scrollable > .table-bordered > tfoot > tr:last-child > td { - border-bottom: 0; -} - -/*** -Responsive Flip Scroll Tables -***/ - -.flip-scroll table { width: 100%; } - -@media only screen and (max-width: 768px) { - - .flip-scroll .flip-content:after { visibility: hidden; display: block; font-size: 0; content: " "; clear: both; height: 0; } - .flip-scroll * html .flip-content { zoom: 1; } - .flip-scroll *:first-child+html .flip-content { zoom: 1; } - - .flip-scroll table { width: 100%; border-collapse: collapse; border-spacing: 0; } - - .flip-scroll th, - .flip-scroll td { margin: 0; vertical-align: top; } - .flip-scroll th { - text-align: left; - border: 0 !important; - border-bottom: 1px solid #ddd !important; - border-right: 1px solid #ddd !important; - font-size: 13px !important; - padding: 5px; - width: auto !important; - } - - .flip-scroll table { display: block; position: relative; width: 100%; } - .flip-scroll thead { - display: block; - float: left; - } - .flip-scroll tbody { - display: block; - width: auto; - position: relative; - overflow-x: auto; - white-space: nowrap; - } - .flip-scroll thead tr { display: block; } - .flip-scroll th { display: block; text-align: right; } - .flip-scroll tbody tr { display: inline-block; vertical-align: top; margin-left: -5px; } - .flip-scroll td { display: block; min-height: 1.25em; text-align: left; border-top: 0 !important; border-left: 0 !important; border-right: 0 !important} - - /* sort out borders */ - - .flip-scroll th { border-bottom: 0; border-left: 0; } - .flip-scroll td { border-left: 0; border-right: 0; border-bottom: 0; } - .flip-scroll tbody tr { border-left: 1px solid #ddd; } - .flip-scroll th:last-child, - .flip-scroll td:last-child { border-bottom: 1px solid #ddd; } - -} - -/*** -UI Loading -***/ - -.loading-message { - display: inline-block; - min-width: 125px; - padding: 10px; - margin: 0 auto; - color: #000 !important; - font-size: 13px; - font-weight: 400; - text-align: center; - vertical-align: middle; -} - -.loading-message span { - line-height:20px; - vertical-align: middle; -} - -.loading-message.loading-message-boxed { - border: 1px solid #ddd; - background-color: #eee; - -webkit-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); - -moz-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); - box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); -} - -.page-loading { - position: fixed; - top: 50%; - left: 50%; - min-width: 125px; - margin-left: -50px; - margin-top: -30px; - padding: 7px; - text-align: center; - color: #333; - font-size: 13px; - border: 1px solid #ddd; - background-color: #eee; - vertical-align: middle; - -webkit-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); - -moz-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); - box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); -} - -.page-loading span { - line-height:20px; - vertical-align: middle; -} - -.zteDivWidth -{ - width:auto !important -} - - - -.nav-load-error {} - -.nav-pos-option {} - -/*TAB*/ -.nav-tabs{ -border:0; -} -.nav-tabs>li.active>a, .nav-tabs>li.active>a:hover, .nav-tabs>li.active>a:focus{ -border:0; -border-top:3px solid #F3565D; -} -.nav-tabs>li>a{ -border-radius:0; -} -.nav-tabs>li>a:hover{ -background-color:#f1f3fa; -border:1Px solid #f1f3fa; -} -/*button*/ -.btn{ -min-width: 80px; -letter-spacing:1px; -} -.btnGroup .btn{ -margin-left:15px; -margin-right:15px; -} -.pagination-panel .btn{ -min-width: 4px; } -/*radius*/ -.radius_l{ -border-radius: 20px; -} -.radius_m{ -border-radius: 8px; -} -.radius_s{ -border-radius: 3px; -} -/*common color*/ -.blue1 { - background-color:#5b9bd1; - color:#fff; -} -.blue1:hover{ - background-color:#487ca9; - color:#fff; -} -.blue2{ - background-color:#57b5e3; - color:#fff; -} -.blue2:hover{ - background-color:#43a1cf; - color:#fff; -} -.red{ - background-color:#E35B5A; - color:#fff; -} -.red:hover{ - background-color:#ad9a4d; - color:#fff; -} -.green{ - background-color:#44B6AE; -} -.green:hover{ - background-color:#329d96; -} -.yellow{ - background-color:#C0AF69; - color:#fff; -} -.yellow:hover{ - background-color:#d45150; - color:#fff; -} -.grey{ - background-color:#e5e5e5; - color:#333; -} -.grey:hover{ - background-color:#d8d8d8; - color:#333; -} -/*Progress Bars*/ -.progress { - border: 0; - background-image: none !important; - filter: none !important; - -webkit-box-shadow: none !important; - -moz-box-shadow: none !important; - box-shadow: none !important; - -} -.form-wizard .steps > li.active > a.step .number{ -background-color:#45B6AF -} -.progress > .progress-bar-success{ -background-color:#45B6AF -} -/*label*/ -label{ -font-weight:400; -margin-bottom:15px; -} -/**/ -.input-group-btn-vertical.fa{ -font-size:12px; -} -.spinner { - width: 60px; - margin-left:10px; - margin-right:30px; -} -.spinner input { - text-align: right; -} -.input-group-btn-vertical { - position: relative; - white-space: nowrap; - width: 1%; - vertical-align: middle; - display: table-cell; -} -.input-group-btn-vertical > .btn { - display: block; - float: none; - width: 100%; - max-width: 100%; - padding: 6px; - margin-left: -1px; - position: relative; - border-radius: 0; -} -.input-group-btn-vertical > .btn{ - min-width:20px; -} -.input-group-btn-vertical > .btn:first-child { - border-top-right-radius: 4px; -} -.input-group-btn-vertical > .btn:last-child { - margin-top: -2px; - border-bottom-right-radius: 4px; -} -.input-group-btn-vertical i{ - position: absolute; - top: -2px; - left: 5px; -} -.input-group .form-control{ -height:26px !important; -} - -.about{ - height:345px; - width:528px; -} - -.aboutmain{ - background-image: url("../image/about/about-bg-light.png"); -} - -.aboutinfo{ - background-image: url("../image/about/about-bg-dark.png"); -} - -.about a{ - color: white; - - margin-left:15px; - text-decoration: none; -} - -.about a.about_close{ - float:right; - margin-right:20px; - font-size: 1.2em; -} - -.about div{ - padding-top:7px; - -} - -.about div.info{ - float: right; - margin-right: 15px; - margin-top: 130px; - color: white; - font-size: 13px; -} - -.about div.info div{ - margin-left:15px; -} - -.about div.info img{ - margin-right: 55px; -} - -.aboutDlg{ - width: 530px; - margin-left:150px; -} - -.aboutDlg .dataTable{ - background-color: white; - -} - -.aboutDlg table.dataTable .heading>th.sorting_disabled { - background-color: white !important; -} - -.aboutDlg #abouttable_wrapper{ - height:285px; - background-color: white; - padding:0px; - overflow:auto; -} - -.aboutDlg td , .aboutDlg .table thead tr th{ - font-size:13px; - font-weight:100; -} - -.aboutDlg{ - font-family:microsoft yahei,Arial; - letter-spacing:1px; -} - -.aboutDlg tr { - height:37px; -} \ No newline at end of file diff --git a/openo-portal/portal-common/src/main/webapp/common/css/themes/black.css b/openo-portal/portal-common/src/main/webapp/common/css/themes/black.css deleted file mode 100644 index 031fcb74..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/css/themes/black.css +++ /dev/null @@ -1,388 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*** -Default theme -***/ - -/*** -Reset and overrides -***/ -body { - background-color: #3d3d3d !important; -} -/*** -Page header -***/ -.header { - filter: none !important; - background-image: none !important; - background-color: #212121 !important; -} -.header .btn-navbar { - background-color: #212121 !important; -} -.header .navbar-nav .dropdown-toggle:hover, -.header .navbar-nav .dropdown.open .dropdown-toggle { - background-color: #383838 !important; -} -.header .navbar-nav li.dropdown .dropdown-toggle i { - color: #8a8a8a !important; -} -.page-content .page-breadcrumb.breadcrumb{ -background-color:#F5F5F5 !important; -} -/*** -Header Search -***/ -.header .search-form { - background-color: #000; -} - -.header .search-form .form-control { - color: #999; - border: 0; - background-color: #000; -} - -.header .search-form .form-control::-webkit-input-placeholder { /* WebKit browsers */ - color: #777; -} -.header .search-form .form-control:-moz-placeholder { /* Mozilla Firefox 4 to 18 */ - color: #777; -} -.header .search-form .form-control::-moz-placeholder { /* Mozilla Firefox 19+ */ - color: #777; -} -.header .search-form .form-control:-ms-input-placeholder { /* Internet Explorer 10+ */ - color: #777; -} - -.header .search-form .submit { - background: url(../../image/search-icon-light.png); -} - -/*** -Hor menu -***/ -.header .hor-menu ul.nav li a { - color: #999; -} - -.header .hor-menu ul.nav li.open > a, -.header .hor-menu ul.nav li > a:hover, -.header .hor-menu ul.nav li > a:focus { - color: #fff; - background: #383838; -} - -.header .hor-menu .dropdown-menu li:hover > a, -.header .hor-menu ul.nav li.active > a, -.header .hor-menu ul.nav li.active > a:hover { - color: #fff; - background: #e02222 !important; -} - -.header .hor-menu ul.nav li.current > a, -.header .hor-menu ul.nav li.current > a:hover { - color: #fff; - background: #e02222 !important; -} - -.header .hor-menu .dropdown-menu { - background: #383838; -} -.header .hor-menu .dropdown-menu li > a { - color: #999; -} - -.header .hor-menu .hor-menu-search-form-toggler.off { - background: #383838 url(../../image/hor-menu-search-close.png) no-repeat center; -} - -.header .hor-menu .search-form { - background:#383838; -} - -.header .hor-menu .search-form form input { - color: #999; -} - -.header .hor-menu .search-form .btn { - color: #999; - background: url(../../image/search-icon.png) no-repeat center; -} - -.header .hor-menu .search-form form input::-webkit-input-placeholder { /* WebKit browsers */ - color: #999; -} -.header .hor-menu .search-form form input:-moz-placeholder { /* Mozilla Firefox 4 to 18 */ - color: #999; -} -.header .hor-menu .search-form form input::-moz-placeholder { /* Mozilla Firefox 19+ */ - color: #999; -} -.header .hor-menu .search-form form input:-ms-input-placeholder { /* Internet Explorer 10+ */ - color: #999; -} -.btn-group .btn.blue.dropdown-toggle{ - background-color: #3d3d3d !important; - color: #fff !important; -} -/*** -Mega Menu -***/ -.mega-menu .mega-menu-submenu { - border-right: 1px solid #444; -} -.mega-menu .mega-menu-submenu li h3 { - color: #fff; -} -/*** -Page sidebar -***/ -.page-sidebar { - background-color: #3d3d3d; -} -ul.page-sidebar-menu > li > a { - border-top: 1px solid #5c5c5c !important; - color: #ffffff !important; -} -ul.page-sidebar-menu > li:last-child > a { - border-bottom: 1px solid transparent !important; -} -ul.page-sidebar-menu > li a i { - color: #969696; -} -ul.page-sidebar-menu > li.open > a, -ul.page-sidebar-menu > li > a:hover, -ul.page-sidebar-menu > li:hover > a { - background: #303030; -} -ul.page-sidebar-menu > li.active > a { - background: #e02222 !important; - border-top-color: transparent !important; - color: #ffffff; -} -ul.page-sidebar-menu > li.active > a i { - color: #ffffff; -} -ul.page-sidebar-menu > li > ul.sub-menu > li:first-child > a { - border-top: 0px !important; -} -ul.page-sidebar-menu > li > ul.sub-menu > li.active > a, -ul.page-sidebar-menu > li > ul.sub-menu > li > a:hover { - color: #ffffff !important; - background: #575757 !important; -} -ul.page-sidebar-menu > li > ul.sub-menu > li > a:hover { - background: #575757 !important; -} -/* 3rd level sub menu */ -ul.page-sidebar-menu > li > ul.sub-menu li > ul.sub-menu > li.active > a, -ul.page-sidebar-menu > li > ul.sub-menu li > ul.sub-menu > li > a:hover, -ul.page-sidebar-menu > li > ul.sub-menu li.open > a { - color: #ffffff !important; - background: #575757 !important; -} -/* font color for all sub menu links*/ -ul.page-sidebar-menu li > ul.sub-menu > li > a { - color: #bdbdbd; -} -/* menu arrows */ -ul.page-sidebar-menu > li > a .arrow:before, -ul.page-sidebar-menu > li > a .arrow.open:before { - color: #7d7d7d !important; -} -ul.page-sidebar-menu > li > ul.sub-menu a .arrow:before, -ul.page-sidebar-menu > li > ul.sub-menu a .arrow.open:before { - color: #707070 !important; -} -ul.page-sidebar-menu > li > a > .arrow.open:before { - color: #8a8a8a !important; -} -ul.page-sidebar-menu > li.active > a .arrow:before, -ul.page-sidebar-menu > li.active > a .arrow.open:before { - color: #ffffff !important; -} -/* sidebar search */ -.page-sidebar .sidebar-search input { - background-color: #242424 !important; - color: #7d7d7d; -} -.page-sidebar .sidebar-search input::-webkit-input-placeholder { - color: #7d7d7d !important; -} -.page-sidebar .sidebar-search input:-moz-placeholder { - color: #7d7d7d !important; -} -.page-sidebar .sidebar-search input:-ms-input-placeholder { - color: #7d7d7d !important; -} -.page-sidebar .sidebar-search input { - background-color: #3d3d3d !important; - color: #bfbfbf !important; -} -.page-sidebar .sidebar-search .input-box { - border-bottom: 1px solid #7d7d7d !important; -} -.page-sidebar .sidebar-search .submit { - background-image: url(../../image/search-icon.png); -} -/*** -Sidebar toggler -***/ -.sidebar-toggler { - background-image: url(../../image/sidebar-toggler.jpg); - background-color: #242424; -} -/* search box bg color on expanded */ -.page-sidebar-closed .page-sidebar .sidebar-search.open .form-container { - background-color: #3d3d3d !important; -} -.page-sidebar-closed .page-sidebar .sidebar-search.open .form-container .remove { - background-image: url("../../image/sidebar-search-close.png"); -} -/* sub menu bg color on hover menu item */ -.page-sidebar-closed ul.page-sidebar-menu > li:hover .sub-menu { - background-color: #3d3d3d; -} -/*** -Footer -***/ -.footer .footer-inner { - color: #999999; -} -.footer .footer-tools .go-top { - background-color: #4f4f4f; -} -.footer .footer-tools .go-top:hover { - opacity: 0.7; - filter: alpha(opacity=70); -} -.footer .footer-tools .go-top i { - color: #8a8a8a; -} -/*** -Footer Layouts (new in v1.3) -***/ -/* begin:fixed footer */ -.page-footer-fixed .footer { - background-color: #242424; -} -.page-footer-fixed .footer .footer-inner { - color: #999999; -} -.page-footer-fixed .footer .footer-tools .go-top { - background-color: #4f4f4f; -} -.page-footer-fixed .footer .footer-tools .go-top i { - color: #8a8a8a; -} -/* end:fixed footer */ -/*** -Gritter Notifications -***/ -.gritter-top { - background: url(../../thirdparty/gritter/images/gritter.png) no-repeat left -30px !important; -} -.gritter-bottom { - background: url(../../thirdparty/gritter/images/gritter.png) no-repeat left bottom !important; -} -.gritter-item { - display: block; - background: url(../../thirdparty/gritter/images/gritter.png) no-repeat left -40px !important; -} -.gritter-close { - background: url(../../thirdparty/gritter/images/gritter.png) no-repeat left top !important; -} -.gritter-title { - text-shadow: none !important; - /* Not supported by IE :( */ - -} -/* for the light (white) version of the gritter notice */ -.gritter-light .gritter-item, -.gritter-light .gritter-bottom, -.gritter-light .gritter-top, -.gritter-light .gritter-close { - background-image: url(../../thirdparty/gritter/images/gritter-light.png) !important; -} -.gritter-item-wrapper a { - color: #18a5ed; -} -.gritter-item-wrapper a:hover { - color: #0b6694; -} -/* begin: boxed page */ -@media (min-width: 992px) { - .page-boxed { - background-color: #2e2e2e !important; - } - .page-boxed .page-container { - background-color: #3d3d3d; - border-left: 1px solid #5e5e5e; - border-bottom: 1px solid #5e5e5e; - } - .page-boxed.page-sidebar-reversed .page-container { - border-left: 0; - border-right: 1px solid #5e5e5e; - } - .page-boxed.page-sidebar-fixed .page-container { - border-left: 0; - border-bottom: 0; - } - .page-boxed.page-sidebar-reversed.page-sidebar-fixed .page-container { - border-left: 0; - border-right: 0; - border-bottom: 0; - } - .page-boxed.page-sidebar-fixed .page-sidebar { - border-left: 1px solid #5e5e5e; - } - .page-boxed.page-sidebar-reversed.page-sidebar-fixed .page-sidebar { - border-right: 1px solid #5e5e5e; - border-left: 0; - } - .page-boxed.page-sidebar-fixed.page-footer-fixed .footer { - background-color: #2e2e2e !important; - } -} -/* end: boxed page */ -/*** -Landscape phone to portrait tablet -***/ -@media (max-width: 991px) { - /*** - page sidebar - ***/ - .page-sidebar { - background-color: #292929 !important; - } - ul.page-sidebar-menu > li > a { - border-top: 1px solid #4a4a4a !important; - } - ul.page-sidebar-menu > li:last-child > a { - border-bottom: 0 !important; - } - .page-sidebar .sidebar-search input { - background-color: #292929 !important; - } - ul.page-sidebar-menu > li.open > a, - ul.page-sidebar-menu > li > a:hover, - ul.page-sidebar-menu > li:hover > a { - background: #1e1e1e; - } -} diff --git a/openo-portal/portal-common/src/main/webapp/common/css/themes/black_ifrm.css b/openo-portal/portal-common/src/main/webapp/common/css/themes/black_ifrm.css deleted file mode 100644 index b3d684c6..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/css/themes/black_ifrm.css +++ /dev/null @@ -1,207 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*** -light_ifrm theme -***/ -td>a>span[class^="ict-"], td>a>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>div>span[class^="ict-"], td>div>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>div>span>span[class^="ict-"], td>div>span>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>span>span[class^="ict-"], td>span>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -/* button style*/ -.buttonRounded, -.buttonRoundedOver, -.buttonRoundedFocused, -.buttonRoundedFocusedOver, -.buttonRoundedDown, -.buttonRoundedFocusedDown, -.buttonRoundedSelected, -.buttonRoundedSelectedFocused, -.buttonRoundedSelectedDown, -.buttonRoundedSelectedFocusedDown, -.buttonRoundedSelectedOver, -.buttonRoundedSelectedFocusedOver, -.buttonRoundedDisabled, -.buttonRoundedSelectedDisabled { - background-color: #3d3d3d; - color: #fff; - border: 0px solid #b15a59; - border-radius: 0px; - font-family: Arial, Verdana, sans-serif; - font-size: 12px; - /*padding: 0 3px;*/ - padding-left:7px !important; - padding-right:7px !important; - height:30px !important; -} -.buttonRoundedDisabled, .buttonRoundedSelectedDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} -.buttonRoundedOver, -.buttonRoundedFocusedOver, -.buttonRoundedSelectedFocused, -.buttonRoundedSelectedFocusedOver, -.buttonRoundedDown, -.buttonRoundedFocusedDown { - background-color: #212121; - height:30px !important; -} - -.menuButton, -.menuButtonOver, -.menuButtonDown, -.menuButtonDisabled, -.menuButtonFocused, -.menuButtonFocusedDown, -.menuButtonFocusedOver, -.menuButtonSelected, -.menuButtonSelectedDown, -.menuButtonSelectedOver, -.menuButtonSelectedDisabled { - background-color: #3d3d3d; - border: 0px solid #ababab; - color: #fff; - font-family: Arial, Verdana, sans-serif; - font-size: 12px; - padding-left: 7px !important; - padding-right: 7px !important; - height:30px !important; -} -.menuButtonOver { - background-color: #212121; - } -.menuButtonDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} -.buttonTitle, -.buttonTitleOver, -.buttonTitleDown, -.buttonTitleSelected, -.buttonTitleFocused, -.buttonTitleSelectedFocused, -.buttonTitleSelectedOver, -.buttonTitleFocusedOver, -.buttonTitleSelectedFocusedOver, -.buttonTitleSelectedDown, -.buttonTitleFocusedDown, -.buttonTitleSelectedFocusedDown, -.buttonTitleDisabled, -.buttonTitleSelectedDisabled { - color: #fff ; - } -.buttonTitleDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} - /* windowBody dialogBody Style */ - .windowBody, -.dialogBody { - background-color: white; - border: 1px solid #d1d1d1; - border-top: 0; -} -.windowHeader, -.dialogHeader { - background-color: #3d3d3d; - padding: 0; -} -/* sectionHeader Style */ -.sectionHeaderopened { - background-color: #3d3d3d; - } - .sectionHeaderclosed { - background-color: #262626; - } - -#dt_example h1{ -color:#3d3d3d; -font-weight:600 !important; -} - - /*cell style*/ -.tallCellOver, -.tallCellOverDark { - background-color: #ffede4; - border-bottom: 1px solid #ffede4; - border-top: 1px solid #ffede4; - } -.tallCellSelected, -.tallCellSelectedDark { - background: #f8dddd; - border-bottom: 1px solid #f8dddd; - border-top: 1px solid #f8dddd; - } -.tallCellSelectedOver, -.tallCellSelectedOverDark { - background: #f8dddd; - border-bottom: 1px solid #f8dddd; - border-top: 1px solid #f8dddd; - } -.imgHeaderButtonOver, -.imgHeaderButtonDown, -.headerButtonOver, -.headerButtonDown, -.sorterButtonOver, -.sorterButtonDown { - background-color: #c4d7e2; - } - .cellSelected, -.cellSelectedDark, -.specialColSelected, -.recordSummaryCellSelected, -.recordSummaryCellSelectedDark { - background: #f8dddd !important; - border-bottom: 1px solid #f8dddd; - border-top: 1px solid #f8dddd; - } -.cellSelectedOver, -.cellSelectedOverDark, -.specialColSelectedOver, -.recordSummaryCellSelectedOver, -.recordSummaryCellSelectedOverDark { - background: #f8dddd !important; - border-bottom: 1px solid #f8dddd; - border-top: 1px solid #f8dddd; -} -.cellOver, -.cellOverDark, -.specialColOver, -.recordSummaryCellOver, -.recordSummaryCellOverDark { - background: #ffede4 !important; - border-bottom: 1px solid #ffede4; - border-top: 1px solid #ffede4; - } -.treeCellOver, -.treeCellOverDark { - background-color: #ffede4; -} diff --git a/openo-portal/portal-common/src/main/webapp/common/css/themes/blue.css b/openo-portal/portal-common/src/main/webapp/common/css/themes/blue.css deleted file mode 100644 index 296a9db0..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/css/themes/blue.css +++ /dev/null @@ -1,374 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*** -Blue theme -***/ -/*** -Reset and overrides -***/ -body { - background-color: #1570a6 !important; -} -/*** -Page header -***/ -.header { - filter: none !important; - background-image: none !important; - background-color: #0f4e74 !important; -} -.header .btn-navbar { - background-color: #0f4e74 !important; -} -.header .navbar-nav .dropdown-toggle:hover, -.header .navbar-nav .dropdown.open .dropdown-toggle { - color: #fff; - background-color: #146a9d !important; -} -.header .navbar-nav li.dropdown .dropdown-toggle i { - color: #68bbec !important; -} -.page-content .page-breadcrumb.breadcrumb{ -background-color:#F5F5F5 !important; -} -/*** -Header Search -***/ -.header .search-form { - background-color: #0B4263; -} - -.header .search-form .form-control{ - color: #68bbec; - border: 0; - background-color: #0B4263; -} - -.header .search-form .submit { - background: url(../../image/search-icon-blue.png); -} - -/*** -Hor menu -***/ -.header .hor-menu ul.nav li a { - color: #ccc; -} - -.header .hor-menu ul.nav li.open > a, -.header .hor-menu ul.nav li > a:hover, -.header .hor-menu ul.nav li > a:focus { - color: #fff; - background: #146a9d; -} - -.header .hor-menu .dropdown-menu li:hover > a, -.header .hor-menu ul.nav li.active > a, -.header .hor-menu ul.nav li.active > a:hover { - color: #fff; - background: #e02222 !important; -} - -.header .hor-menu ul.nav li.current > a, -.header .hor-menu ul.nav li.current > a:hover { - color: #fff; - background: #e02222 !important; -} - -.header .hor-menu .dropdown-menu { - background: #146a9d; -} -.header .hor-menu .dropdown-menu li > a { - color: #ccc; -} - -.header .hor-menu .hor-menu-search-form-toggler.off { - background: #146a9d url(../../image/hor-menu-search-close-white.png) no-repeat center; -} - -.header .hor-menu .search-form { - background:#146a9d; -} - -.header .hor-menu .search-form form input { - color: #ccc; -} - -.header .hor-menu .search-form .btn { - color: #ccc; - background: url(../../image/search-icon-white.png) no-repeat center; -} - -.header .hor-menu .search-form form input::-webkit-input-placeholder { /* WebKit browsers */ - color: #ccc; -} -.header .hor-menu .search-form form input:-moz-placeholder { /* Mozilla Firefox 4 to 18 */ - color: #ccc; -} -.header .hor-menu .search-form form input::-moz-placeholder { /* Mozilla Firefox 19+ */ - color: #ccc; -} -.header .hor-menu .search-form form input:-ms-input-placeholder { /* Internet Explorer 10+ */ - color: #ccc; -} - -/*** -Mega Menu -***/ -.mega-menu .mega-menu-submenu { - border-right: 1px solid #1876AD; -} - -.mega-menu .mega-menu-submenu li h3 { - color: #fff; -} - -/*** -Page sidebar -***/ -.page-sidebar { - background-color: #1570a6; -} -ul.page-sidebar-menu > li > a { - border-top: 1px solid #1c95dc !important; - color: #ffffff !important; -} -ul.page-sidebar-menu > li:last-child > a { - border-bottom: 1px solid transparent !important; -} -ul.page-sidebar-menu > li a i { - color: #7fc5ef; -} -ul.page-sidebar-menu > li.open > a, -ul.page-sidebar-menu > li > a:hover, -ul.page-sidebar-menu > li:hover > a { - background: #12618f; -} -ul.page-sidebar-menu > li.active > a { - background: #cc1d1d !important; - border-top-color: transparent !important; - color: #ffffff; -} -ul.page-sidebar-menu > li.active > a i { - color: #ffffff; -} -ul.page-sidebar-menu > li > ul.sub-menu > li:first-child > a { - border-top: 0px !important; -} -ul.page-sidebar-menu > li > ul.sub-menu > li.active > a, -ul.page-sidebar-menu > li > ul.sub-menu > li > a:hover { - color: #ffffff !important; - background: #1b8fd3 !important; -} -ul.page-sidebar-menu > li > ul.sub-menu > li > a:hover { - background: #1b8fd3 !important; -} -/* 3rd level sub menu */ -ul.page-sidebar-menu > li > ul.sub-menu li > ul.sub-menu > li.active > a, -ul.page-sidebar-menu > li > ul.sub-menu li > ul.sub-menu > li > a:hover, -ul.page-sidebar-menu > li > ul.sub-menu li.open > a { - color: #ffffff !important; - background: #1b8fd3 !important; -} -/* font color for all sub menu links*/ -ul.page-sidebar-menu li > ul.sub-menu > li > a { - color: #c3e4f7; -} -/* menu arrows */ -ul.page-sidebar-menu > li > a .arrow:before, -ul.page-sidebar-menu > li > a .arrow.open:before { - color: #51b1e9 !important; -} -ul.page-sidebar-menu > li > ul.sub-menu a .arrow:before, -ul.page-sidebar-menu > li > ul.sub-menu a .arrow.open:before { - color: #3ba6e6 !important; -} -ul.page-sidebar-menu > li > a > .arrow.open:before { - color: #68bbec !important; -} -ul.page-sidebar-menu > li.active > a .arrow:before, -ul.page-sidebar-menu > li.active > a .arrow.open:before { - color: #ffffff !important; -} -/* sidebar search */ -.page-sidebar .sidebar-search input { - background-color: #0f5179 !important; - color: #51b1e9; -} -.page-sidebar .sidebar-search input::-webkit-input-placeholder { - color: #51b1e9 !important; -} -.page-sidebar .sidebar-search input:-moz-placeholder { - color: #51b1e9 !important; -} -.page-sidebar .sidebar-search input:-ms-input-placeholder { - color: #51b1e9 !important; -} -.page-sidebar .sidebar-search input { - background-color: #1570a6 !important; - color: #bfbfbf !important; -} -.page-sidebar .sidebar-search .input-box { - border-bottom: 1px solid #51b1e9 !important; -} -.page-sidebar .sidebar-search .submit { - background-image: url(../../image/search-icon-blue.png); -} -/*** -Sidebar toggler -***/ -.sidebar-toggler { - background-image: url(../../image/sidebar-toggler-blue.jpg); - background-color: #0f5179; -} -/* search box bg color on expanded */ -.page-sidebar-closed .page-sidebar .sidebar-search.open .form-container { - background-color: #1570a6 !important; -} -.page-sidebar-closed .page-sidebar .sidebar-search.open .form-container .remove { - background-image: url("../../image/sidebar-search-close-blue.png"); -} -/* sub menu bg color on hover menu item */ -.page-sidebar-closed ul.page-sidebar-menu > li:hover .sub-menu { - background-color: #1570a6; -} -/*** -Footer -***/ -.footer .footer-inner { - color: #68bbec; -} -.footer .footer-tools .go-top { - background-color: #1985c6; -} -.footer .footer-tools .go-top:hover { - opacity: 0.7; - filter: alpha(opacity=70); -} -.footer .footer-tools .go-top i { - color: #68bbec; -} -/*** -Footer Layouts (new in v1.3) -***/ -/* begin:fixed footer */ -.page-footer-fixed .footer { - background-color: #0f5179; -} -.page-footer-fixed .footer .footer-inner { - color: #68bbec; -} -.page-footer-fixed .footer .footer-tools .go-top { - background-color: #1985c6; -} -.page-footer-fixed .footer .footer-tools .go-top i { - color: #68bbec; -} -/* end:fixed footer */ -/*** -Gritter Notifications -***/ -.gritter-top { - background: url(../../thirdparty/gritter/images/gritter-blue.png) no-repeat left -30px !important; -} -.gritter-bottom { - background: url(../../thirdparty/gritter/images/gritter-blue.png) no-repeat left bottom !important; -} -.gritter-item { - display: block; - background: url(../../thirdparty/gritter/images/gritter-blue.png) no-repeat left -40px !important; -} -.gritter-close { - background: url(../../thirdparty/gritter/images/gritter-blue.png) no-repeat left top !important; -} -.gritter-title { - text-shadow: none !important; - /* Not supported by IE :( */ - -} -/* for the light (white) version of the gritter notice */ -.gritter-light .gritter-item, -.gritter-light .gritter-bottom, -.gritter-light .gritter-top, -.gritter-light .gritter-close { - background-image: url(../../thirdparty/gritter/images/gritter-light.png) !important; -} -.gritter-item-wrapper a { - color: #18a5ed; -} -.gritter-item-wrapper a:hover { - color: #0b6694; -} -/* begin: boxed page */ -@media (min-width: 992px) { - .page-boxed { - background-color: #125e8b !important; - } - .page-boxed .page-container { - background-color: #1570a6; - border-left: 1px solid #1c98e1; - border-bottom: 1px solid #1c98e1; - } - .page-boxed.page-sidebar-reversed .page-container { - border-left: 0; - border-right: 1px solid #1c98e1; - } - .page-boxed.page-sidebar-fixed .page-container { - border-left: 0; - border-bottom: 0; - } - .page-boxed.page-sidebar-reversed.page-sidebar-fixed .page-container { - border-left: 0; - border-right: 0; - border-bottom: 0; - } - .page-boxed.page-sidebar-fixed .page-sidebar { - border-left: 1px solid #1c98e1; - } - .page-boxed.page-sidebar-reversed.page-sidebar-fixed .page-sidebar { - border-right: 1px solid #1c98e1; - border-left: 0; - } - .page-boxed.page-sidebar-fixed.page-footer-fixed .footer { - background-color: #125e8b !important; - } -} -/* end: boxed page */ -/*** -Landscape phone to portrait tablet -***/ -@media (max-width: 991px) { - /*** - page sidebar - ***/ - .page-sidebar { - background-color: #105882 !important; - } - ul.page-sidebar-menu > li > a { - border-top: 1px solid #187fbd !important; - } - ul.page-sidebar-menu > li:last-child > a { - border-bottom: 0 !important; - } - .page-sidebar .sidebar-search input { - background-color: #105882 !important; - } - ul.page-sidebar-menu > li.open > a, - ul.page-sidebar-menu > li > a:hover, - ul.page-sidebar-menu > li:hover > a { - background: #0e4b70; - } -} diff --git a/openo-portal/portal-common/src/main/webapp/common/css/themes/blue_ifrm.css b/openo-portal/portal-common/src/main/webapp/common/css/themes/blue_ifrm.css deleted file mode 100644 index c9d274af..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/css/themes/blue_ifrm.css +++ /dev/null @@ -1,207 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*** -light_ifrm theme -***/ -td>a>span[class^="ict-"], td>a>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>div>span[class^="ict-"], td>div>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>div>span>span[class^="ict-"], td>div>span>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>span>span[class^="ict-"], td>span>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -/* button style*/ -.buttonRounded, -.buttonRoundedOver, -.buttonRoundedFocused, -.buttonRoundedFocusedOver, -.buttonRoundedDown, -.buttonRoundedFocusedDown, -.buttonRoundedSelected, -.buttonRoundedSelectedFocused, -.buttonRoundedSelectedDown, -.buttonRoundedSelectedFocusedDown, -.buttonRoundedSelectedOver, -.buttonRoundedSelectedFocusedOver, -.buttonRoundedDisabled, -.buttonRoundedSelectedDisabled { - background-color: #3f9ed5; - color: #fff; - border: 0px solid #b15a59; - border-radius: 0px; - font-family: Arial, Verdana, sans-serif; - font-size: 12px; - /*padding: 0 3px;*/ - padding-left:7px !important; - padding-right:7px !important; - height:30px !important; -} -.buttonRoundedDisabled, .buttonRoundedSelectedDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} -.buttonRoundedOver, -.buttonRoundedFocusedOver, -.buttonRoundedSelectedFocused, -.buttonRoundedSelectedFocusedOver, -.buttonRoundedDown, -.buttonRoundedFocusedDown { - background-color: #398ec0; - height:30px !important; -} - -.menuButton, -.menuButtonOver, -.menuButtonDown, -.menuButtonDisabled, -.menuButtonFocused, -.menuButtonFocusedDown, -.menuButtonFocusedOver, -.menuButtonSelected, -.menuButtonSelectedDown, -.menuButtonSelectedOver, -.menuButtonSelectedDisabled { - background-color: #3f9ed5; - border: 0px solid #ababab; - color: #fff; - font-family: Arial, Verdana, sans-serif; - font-size: 12px; - padding-left: 7px !important; - padding-right: 7px !important; - height:30px !important; -} -.menuButtonOver { - background-color: #398ec0; - } -.menuButtonDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} - - .buttonTitle, -.buttonTitleOver, -.buttonTitleDown, -.buttonTitleSelected, -.buttonTitleFocused, -.buttonTitleSelectedFocused, -.buttonTitleSelectedOver, -.buttonTitleFocusedOver, -.buttonTitleSelectedFocusedOver, -.buttonTitleSelectedDown, -.buttonTitleFocusedDown, -.buttonTitleSelectedFocusedDown, -.buttonTitleDisabled, -.buttonTitleSelectedDisabled { - color: #fff ; - } - .buttonTitleDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} - /* windowBody dialogBody Style */ - .windowBody, -.dialogBody { - background-color: white; - border: 1px solid #3f9ed5; - border-top: 0; -} -.windowHeader, -.dialogHeader { - background-color: #3f9ed5; - padding: 0; -} -/* sectionHeader Style */ -.sectionHeaderopened { - background-color: #3f9ed5; - } - .sectionHeaderclosed { - background-color: #52ade2; - } - -#dt_example h1{ -color:#438eb9; -font-weight:600 !important; -} - /*cell style*/ -.tallCellOver, -.tallCellOverDark { - background-color: #d9e3e8; - border-bottom: 1px solid #d9e3e8; - border-top: 1px solid #d9e3e8; - } -.tallCellSelected, -.tallCellSelectedDark { - background: #c4d7e2; - border-bottom: 1px solid #c4d7e2; - border-top: 1px solid #c4d7e2; - } -.tallCellSelectedOver, -.tallCellSelectedOverDark { - background: #c4d7e2; - border-bottom: 1px solid #c4d7e2; - border-top: 1px solid #c4d7e2; - } -.imgHeaderButtonOver, -.imgHeaderButtonDown, -.headerButtonOver, -.headerButtonDown, -.sorterButtonOver, -.sorterButtonDown { - background-color: #c4d7e2; - } -.cellSelected, -.cellSelectedDark, -.specialColSelected, -.recordSummaryCellSelected, -.recordSummaryCellSelectedDark { - background: #c4d7e2 !important; - border-bottom: 1px solid #c4d7e2; - border-top: 1px solid #c4d7e2; - } -.cellSelectedOver, -.cellSelectedOverDark, -.specialColSelectedOver, -.recordSummaryCellSelectedOver, -.recordSummaryCellSelectedOverDark { - background: #c4d7e2 !important; - border-bottom: 1px solid #c4d7e2; - border-top: 1px solid #c4d7e2; -} -.cellOver, -.cellOverDark, -.specialColOver, -.recordSummaryCellOver, -.recordSummaryCellOverDark { - background: #d9e3e8 !important; - border-bottom: 1px solid #d9e3e8; - border-top: 1px solid #d9e3e8; - } -.treeCellOver, -.treeCellOverDark { - background-color: #d9e3e8; -} diff --git a/openo-portal/portal-common/src/main/webapp/common/css/themes/brown.css b/openo-portal/portal-common/src/main/webapp/common/css/themes/brown.css deleted file mode 100644 index afbe0365..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/css/themes/brown.css +++ /dev/null @@ -1,376 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*** -Brown theme -***/ -/*** -Reset and overrides -***/ -body { - background-color: #623f18 !important; -} -/*** -Page header -***/ -.header { - filter: none !important; - background-image: none !important; - background-color: #35220d !important; -} -.header .btn-navbar { - background-color: #35220d !important; -} -.header .navbar-nav .dropdown-toggle:hover, -.header .navbar-nav .dropdown.open .dropdown-toggle { - background-color: #5a3a16 !important; -} -.header .navbar-nav li.dropdown .dropdown-toggle i { - color: #d18d42 !important; -} -.btn-group .btn.blue.dropdown-toggle{ -background-color: #8d6a43 !important; -} -.page-content .page-breadcrumb.breadcrumb{ -background-color:#F5F5F5 !important; -} -/*** -Header Search -***/ -.header .search-form { - background-color: #241709; -} - -.header .search-form .form-control{ - color: #ccc; - border: 0; - background-color: #241709; -} - -.header .search-form .submit { - background: url(../../image/search-icon-brown.png); -} -/*** -Hor menu -***/ -.header .hor-menu ul.nav li a { - color: #ccc; -} - -.header .hor-menu ul.nav li.open > a, -.header .hor-menu ul.nav li > a:hover, -.header .hor-menu ul.nav li > a:focus { - color: #fff; - background: #5a3a16; -} - -.header .hor-menu .dropdown-menu li:hover > a, -.header .hor-menu ul.nav li.active > a, -.header .hor-menu ul.nav li.active > a:hover { - color: #fff; - background: #e02222 !important; -} - -.header .hor-menu ul.nav li.current > a, -.header .hor-menu ul.nav li.current > a:hover { - color: #fff; - background: #e02222 !important; -} - - -.header .hor-menu .dropdown-menu { - background: #5a3a16; -} -.header .hor-menu .dropdown-menu li > a { - color: #ccc; -} - -.header .hor-menu .hor-menu-search-form-toggler.off { - background: #5a3a16 url(../../image/hor-menu-search-close-white.png) no-repeat center; -} - -.header .hor-menu .search-form { - background:#5a3a16; -} - -.header .hor-menu .search-form form input { - color: #ccc; -} - -.header .hor-menu .search-form .btn { - color: #ccc; - background: url(../../image/search-icon-white.png) no-repeat center; -} - -.header .hor-menu .search-form form input::-webkit-input-placeholder { /* WebKit browsers */ - color: #ccc; -} -.header .hor-menu .search-form form input:-moz-placeholder { /* Mozilla Firefox 4 to 18 */ - color: #ccc; -} -.header .hor-menu .search-form form input::-moz-placeholder { /* Mozilla Firefox 19+ */ - color: #ccc; -} -.header .hor-menu .search-form form input:-ms-input-placeholder { /* Internet Explorer 10+ */ - color: #ccc; -} - -/*** -Mega Menu -***/ -.mega-menu .mega-menu-submenu { - border-right: 1px solid #6B451B; -} - -.mega-menu .mega-menu-submenu li h3 { - color: #fff; -} - -/*** -Page sidebar -***/ -.page-sidebar { - background-color: #623f18; -} -ul.page-sidebar-menu > li > a { - border-top: 1px solid #935f24 !important; - color: #ffffff !important; -} -ul.page-sidebar-menu > li:last-child > a { - border-bottom: 1px solid transparent !important; -} -ul.page-sidebar-menu > li a i { - color: #9a6d3a; -} -ul.page-sidebar-menu > li.open > a, -ul.page-sidebar-menu > li > a:hover, -ul.page-sidebar-menu > li:hover > a { - background: #4e3112; -} -ul.page-sidebar-menu > li.active > a { - background: #4e3112 !important; - border-top-color: transparent !important; - color: #ffffff; -} -ul.page-sidebar-menu > li.active > a i { - color: #ffffff; -} -ul.page-sidebar-menu > li > ul.sub-menu > li:first-child > a { - border-top: 0px !important; -} -ul.page-sidebar-menu > li > ul.sub-menu > li.active > a, -ul.page-sidebar-menu > li > ul.sub-menu > li > a:hover { - color: #ffffff !important; - background: #8b5922 !important; -} -ul.page-sidebar-menu > li > ul.sub-menu > li > a:hover { - background: #8b5922 !important; -} -/* 3rd level sub menu */ -ul.page-sidebar-menu > li > ul.sub-menu li > ul.sub-menu > li.active > a, -ul.page-sidebar-menu > li > ul.sub-menu li > ul.sub-menu > li > a:hover, -ul.page-sidebar-menu > li > ul.sub-menu li.open > a { - color: #ffffff !important; - background: #8b5922 !important; -} -/* font color for all sub menu links*/ -ul.page-sidebar-menu li > ul.sub-menu > li > a { - color: #e5bf94; -} -/* menu arrows */ -ul.page-sidebar-menu > li > a .arrow:before, -ul.page-sidebar-menu > li > a .arrow.open:before { - color: #c88131 !important; -} -ul.page-sidebar-menu > li > ul.sub-menu a .arrow:before, -ul.page-sidebar-menu > li > ul.sub-menu a .arrow.open:before { - color: #b4742c !important; -} -ul.page-sidebar-menu > li > a > .arrow.open:before { - color: #d18d42 !important; -} -ul.page-sidebar-menu > li.active > a .arrow:before, -ul.page-sidebar-menu > li.active > a .arrow.open:before { - color: #ffffff !important; -} -/* sidebar search */ -.page-sidebar .sidebar-search input { - background-color: #39250e !important; - color: #b18d65; -} -.page-sidebar .sidebar-search input::-webkit-input-placeholder { - color: #b18d65 !important; -} -.page-sidebar .sidebar-search input:-moz-placeholder { - color: #b18d65 !important; -} -.page-sidebar .sidebar-search input:-ms-input-placeholder { - color: #b18d65 !important; -} -.page-sidebar .sidebar-search input { - background-color: #623f18 !important; - color: #b18d65 !important; -} -.page-sidebar .sidebar-search .input-box { - border-bottom: 1px solid #845f36 !important; -} -.page-sidebar .sidebar-search .submit { - background-image: url(../../image/search-icon-brown.png); -} -/*** -Sidebar toggler -***/ -.sidebar-toggler { - background-image: url(../../image/sidebar-toggler-brown.jpg); - background-color: #39250e; -} -/* search box bg color on expanded */ -.page-sidebar-closed .page-sidebar .sidebar-search.open .form-container { - background-color: #623f18 !important; -} -.page-sidebar-closed .page-sidebar .sidebar-search.open .form-container .remove { - background-image: url("../../image/sidebar-search-close-brown.png"); -} -/* sub menu bg color on hover menu item */ -.page-sidebar-closed ul.page-sidebar-menu > li:hover .sub-menu { - background-color: #623f18; -} -/*** -Footer -***/ -.footer .footer-inner { - color: #999999; -} -.footer .footer-tools .go-top { - background-color: #7f511f; -} -.footer .footer-tools .go-top:hover { - opacity: 0.7; - filter: alpha(opacity=70); -} -.footer .footer-tools .go-top i { - color: #d18d42; -} -/*** -Footer Layouts (new in v1.3) -***/ -/* begin:fixed footer */ -.page-footer-fixed .footer { - background-color: #39250e; -} -.page-footer-fixed .footer .footer-inner { - color: #999999; -} -.page-footer-fixed .footer .footer-tools .go-top { - background-color: #7f511f; -} -.page-footer-fixed .footer .footer-tools .go-top i { - color: #d18d42; -} -/* end:fixed footer */ -/*** -Gritter Notifications -***/ -.gritter-top { - background: url(../../thirdparty/gritter/images/gritter-brown.png) no-repeat left -30px !important; -} -.gritter-bottom { - background: url(../../thirdparty/gritter/images/gritter-brown.png) no-repeat left bottom !important; -} -.gritter-item { - display: block; - background: url(../../thirdparty/gritter/images/gritter-brown.png) no-repeat left -40px !important; -} -.gritter-close { - background: url(../../thirdparty/gritter/images/gritter-brown.png) no-repeat left top !important; -} -.gritter-title { - text-shadow: none !important; - /* Not supported by IE :( */ - -} -/* for the light (white) version of the gritter notice */ -.gritter-light .gritter-item, -.gritter-light .gritter-bottom, -.gritter-light .gritter-top, -.gritter-light .gritter-close { - background-image: url(../../thirdparty/gritter/images/gritter-light.png) !important; -} -.gritter-item-wrapper a { - color: #b18d65; -} -.gritter-item-wrapper a:hover { - color: #755a3b; -} -/* begin: boxed page */ -@media (min-width: 992px) { - .page-boxed { - background-color: #492f12 !important; - } - .page-boxed .page-container { - background-color: #623f18; - border-left: 1px solid #976125; - border-bottom: 1px solid #976125; - } - .page-boxed.page-sidebar-reversed .page-container { - border-left: 0; - border-right: 1px solid #976125; - } - .page-boxed.page-sidebar-fixed .page-container { - border-left: 0; - border-bottom: 0; - } - .page-boxed.page-sidebar-reversed.page-sidebar-fixed .page-container { - border-left: 0; - border-right: 0; - border-bottom: 0; - } - .page-boxed.page-sidebar-fixed .page-sidebar { - border-left: 1px solid #976125; - } - .page-boxed.page-sidebar-reversed.page-sidebar-fixed .page-sidebar { - border-right: 1px solid #976125; - border-left: 0; - } - .page-boxed.page-sidebar-fixed.page-footer-fixed .footer { - background-color: #492f12 !important; - } -} -/* end: boxed page */ -/*** -Landscape phone to portrait tablet -***/ -@media (max-width: 991px) { - /*** - page sidebar - ***/ - .page-sidebar { - background-color: #412a10 !important; - } - ul.page-sidebar-menu > li > a { - border-top: 1px solid #764c1d !important; - } - ul.page-sidebar-menu > li:last-child > a { - border-bottom: 0 !important; - } - .page-sidebar .sidebar-search input { - background-color: #412a10 !important; - } - ul.page-sidebar-menu > li.open > a, - ul.page-sidebar-menu > li > a:hover, - ul.page-sidebar-menu > li:hover > a { - background: #311f0c; - } -} diff --git a/openo-portal/portal-common/src/main/webapp/common/css/themes/brown_ifrm.css b/openo-portal/portal-common/src/main/webapp/common/css/themes/brown_ifrm.css deleted file mode 100644 index b8663344..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/css/themes/brown_ifrm.css +++ /dev/null @@ -1,207 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*** -light_ifrm theme -***/ -td>a>span[class^="ict-"], td>a>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>div>span[class^="ict-"], td>div>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>div>span>span[class^="ict-"], td>div>span>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>span>span[class^="ict-"], td>span>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -/* button style*/ -.buttonRounded, -.buttonRoundedOver, -.buttonRoundedFocused, -.buttonRoundedFocusedOver, -.buttonRoundedDown, -.buttonRoundedFocusedDown, -.buttonRoundedSelected, -.buttonRoundedSelectedFocused, -.buttonRoundedSelectedDown, -.buttonRoundedSelectedFocusedDown, -.buttonRoundedSelectedOver, -.buttonRoundedSelectedFocusedOver, -.buttonRoundedDisabled, -.buttonRoundedSelectedDisabled { - background-color: #8d6a43; - color: #fff; - border: 0px solid #b15a59; - border-radius: 0px; - font-family: Arial, Verdana, sans-serif; - font-size: 12px; - /*padding: 0 3px;*/ - padding-left:7px !important; - padding-right:7px !important; - height:30px !important; -} -.buttonRoundedDisabled, .buttonRoundedSelectedDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} -.buttonRoundedOver, -.buttonRoundedFocusedOver, -.buttonRoundedSelectedFocused, -.buttonRoundedSelectedFocusedOver, -.buttonRoundedDown, -.buttonRoundedFocusedDown { - background-color: #805b32; - height:30px !important; -} - -.menuButton, -.menuButtonOver, -.menuButtonDown, -.menuButtonDisabled, -.menuButtonFocused, -.menuButtonFocusedDown, -.menuButtonFocusedOver, -.menuButtonSelected, -.menuButtonSelectedDown, -.menuButtonSelectedOver, -.menuButtonSelectedDisabled { - background-color: #8d6a43; - border: 0px solid #ababab; - color: #fff; - font-family: Arial, Verdana, sans-serif; - font-size: 12px; - padding-left: 7px !important; - padding-right: 7px !important; - height:30px !important; -} -.menuButtonOver { - background-color: #805b32; - } - .menuButtonDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} - .buttonTitle, -.buttonTitleOver, -.buttonTitleDown, -.buttonTitleSelected, -.buttonTitleFocused, -.buttonTitleSelectedFocused, -.buttonTitleSelectedOver, -.buttonTitleFocusedOver, -.buttonTitleSelectedFocusedOver, -.buttonTitleSelectedDown, -.buttonTitleFocusedDown, -.buttonTitleSelectedFocusedDown, -.buttonTitleDisabled, -.buttonTitleSelectedDisabled { - color: #fff ; -} -.buttonTitleDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} - /* windowBody dialogBody Style */ - .windowBody, -.dialogBody { - background-color: white; - border: 1px solid #8d6a43; - border-top: 0; -} -.windowHeader, -.dialogHeader { - background-color: #8d6a43; - padding: 0; -} -/* sectionHeader Style */ -.sectionHeaderopened { - background-color: #8d6a43; - } - .sectionHeaderclosed { - background-color: #9f7b53; - } - -#dt_example h1{ -color:#8d6a43; -font-weight:600 !important; -} - /*cell style*/ -.tallCellOver, -.tallCellOverDark { - background-color: #ece0d3; - border-bottom: 1px solid #ece0d3; - border-top: 1px solid #ece0d3; - } -.tallCellSelected, -.tallCellSelectedDark { - background: #d4c2af; - border-bottom: 1px solid #d4c2af; - border-top: 1px solid #d4c2af; - } -.tallCellSelectedOver, -.tallCellSelectedOverDark { - background: #d4c2af; - border-bottom: 1px solid #d4c2af; - border-top: 1px solid #d4c2af; - } -.imgHeaderButtonOver, -.imgHeaderButtonDown, -.headerButtonOver, -.headerButtonDown, -.sorterButtonOver, -.sorterButtonDown { - background-color: #cbaf8f; - } -.cellSelected, -.cellSelectedDark, -.specialColSelected, -.recordSummaryCellSelected, -.recordSummaryCellSelectedDark { - background: #d4c2af !important; - border-bottom: 1px solid #d4c2af; - border-top: 1px solid #d4c2af; - } -.cellSelectedOver, -.cellSelectedOverDark, -.specialColSelectedOver, -.recordSummaryCellSelectedOver, -.recordSummaryCellSelectedOverDark { - background: #d4c2af !important; - border-bottom: 1px solid #d4c2af; - border-top: 1px solid #d4c2af; -} -.cellOver, -.cellOverDark, -.specialColOver, -.recordSummaryCellOver, -.recordSummaryCellOverDark { - background: #ece0d3 !important; - border-bottom: 1px solid #ece0d3; - border-top: 1px solid #ece0d3; - } -.treeCellOver, -.treeCellOverDark { - background-color: #ece0d3; -} - diff --git a/openo-portal/portal-common/src/main/webapp/common/css/themes/grey.css b/openo-portal/portal-common/src/main/webapp/common/css/themes/grey.css deleted file mode 100644 index eb1d9bc5..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/css/themes/grey.css +++ /dev/null @@ -1,372 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*** -Grey theme -***/ -/*** -Reset and overrides -***/ -body { - background-color: #666666 !important; -} -/*** -Page header -***/ -.header { - filter: none !important; - background-image: none !important; - background-color: #4a4a4a !important; -} -.header .btn-navbar { - background-color: #4a4a4a !important; -} -.header .navbar-nav .dropdown-toggle:hover, -.header .navbar-nav .dropdown.open .dropdown-toggle { - background-color: #616161 !important; -} -.header .navbar-nav li.dropdown .dropdown-toggle i { - color: #b3b3b3 !important; -} -.page-content .page-breadcrumb.breadcrumb{ -background-color:#F5F5F5 !important; -} -/*** -Header Search -***/ -.header .search-form { - background-color: #3a3a3a; -} - -.header .search-form .form-control{ - color: #ccc; - border: 0; - background-color: #3a3a3a; -} - -.header .search-form .submit { - background: url(../../image/search-icon-light.png); -} -/*** -Hor menu -***/ -.header .hor-menu ul.nav li a { - color: #ccc; -} - -.header .hor-menu ul.nav li.open > a, -.header .hor-menu ul.nav li > a:hover, -.header .hor-menu ul.nav li > a:focus { - color: #fff; - background: #616161; -} - -.header .hor-menu .dropdown-menu li:hover > a, -.header .hor-menu ul.nav li.active > a, -.header .hor-menu ul.nav li.active > a:hover { - color: #fff; - background: #e02222 !important; -} - -.header .hor-menu ul.nav li.current > a, -.header .hor-menu ul.nav li.current > a:hover { - color: #fff; - background: #e02222 !important; -} - -.header .hor-menu .dropdown-menu { - background: #616161; -} -.header .hor-menu .dropdown-menu li > a { - color: #ccc; -} - -.header .hor-menu .hor-menu-search-form-toggler.off { - background: #616161 url(../../image/hor-menu-search-close-white.png) no-repeat center; -} - -.header .hor-menu .search-form { - background:#616161; -} - -.header .hor-menu .search-form form input { - color: #ccc; -} - -.header .hor-menu .search-form .btn { - color: #ccc; - background: url(../../image/search-icon-white.png) no-repeat center; -} - -.header .hor-menu .search-form form input::-webkit-input-placeholder { /* WebKit browsers */ - color: #ccc; -} -.header .hor-menu .search-form form input:-moz-placeholder { /* Mozilla Firefox 4 to 18 */ - color: #ccc; -} -.header .hor-menu .search-form form input::-moz-placeholder { /* Mozilla Firefox 19+ */ - color: #ccc; -} -.header .hor-menu .search-form form input:-ms-input-placeholder { /* Internet Explorer 10+ */ - color: #ccc; -} - -/*** -Mega Menu -***/ -.mega-menu .mega-menu-submenu { - border-right: 1px solid #757575; -} - -.mega-menu .mega-menu-submenu li h3 { - color: #fff; -} - -/*** -Page sidebar -***/ -.page-sidebar { - background-color: #666666; -} -ul.page-sidebar-menu > li > a { - border-top: 1px solid #858585 !important; - color: #ffffff !important; -} -ul.page-sidebar-menu > li:last-child > a { - border-bottom: 1px solid transparent !important; -} -ul.page-sidebar-menu > li a i { - color: #bfbfbf; -} -ul.page-sidebar-menu > li.open > a, -ul.page-sidebar-menu > li > a:hover, -ul.page-sidebar-menu > li:hover > a { - background: #595959; -} -ul.page-sidebar-menu > li.active > a { - background: #e02222 !important; - border-top-color: transparent !important; - color: #ffffff; -} -ul.page-sidebar-menu > li.active > a i { - color: #ffffff; -} -ul.page-sidebar-menu > li > ul.sub-menu > li:first-child > a { - border-top: 0px !important; -} -ul.page-sidebar-menu > li > ul.sub-menu > li.active > a, -ul.page-sidebar-menu > li > ul.sub-menu > li > a:hover { - color: #ffffff !important; - background: #808080 !important; -} -ul.page-sidebar-menu > li > ul.sub-menu > li > a:hover { - background: #808080 !important; -} -/* 3rd level sub menu */ -ul.page-sidebar-menu > li > ul.sub-menu li > ul.sub-menu > li.active > a, -ul.page-sidebar-menu > li > ul.sub-menu li > ul.sub-menu > li > a:hover, -ul.page-sidebar-menu > li > ul.sub-menu li.open > a { - color: #ffffff !important; - background: #808080 !important; -} -/* font color for all sub menu links*/ -ul.page-sidebar-menu li > ul.sub-menu > li > a { - color: #e6e6e6; -} -/* menu arrows */ -ul.page-sidebar-menu > li > a .arrow:before, -ul.page-sidebar-menu > li > a .arrow.open:before { - color: #a6a6a6 !important; -} -ul.page-sidebar-menu > li > ul.sub-menu a .arrow:before, -ul.page-sidebar-menu > li > ul.sub-menu a .arrow.open:before { - color: #999999 !important; -} -ul.page-sidebar-menu > li > a > .arrow.open:before { - color: #b3b3b3 !important; -} -ul.page-sidebar-menu > li.active > a .arrow:before, -ul.page-sidebar-menu > li.active > a .arrow.open:before { - color: #ffffff !important; -} -/* sidebar search */ -.page-sidebar .sidebar-search input { - background-color: #4d4d4d !important; - color: #a6a6a6; -} -.page-sidebar .sidebar-search input::-webkit-input-placeholder { - color: #a6a6a6 !important; -} -.page-sidebar .sidebar-search input:-moz-placeholder { - color: #a6a6a6 !important; -} -.page-sidebar .sidebar-search input:-ms-input-placeholder { - color: #a6a6a6 !important; -} -.page-sidebar .sidebar-search input { - background-color: #666666 !important; - color: #bfbfbf !important; -} -.page-sidebar .sidebar-search .input-box { - border-bottom: 1px solid #a6a6a6 !important; -} -.page-sidebar .sidebar-search .submit { - background-image: url(../../image/search-icon.png); -} -/*** -Sidebar toggler -***/ -.sidebar-toggler { - background-image: url(../../image/sidebar-toggler.jpg); - background-color: #4d4d4d; -} -/* search box bg color on expanded */ -.page-sidebar-closed .page-sidebar .sidebar-search.open .form-container { - background-color: #666666 !important; -} -.page-sidebar-closed .page-sidebar .sidebar-search.open .form-container .remove { - background-image: url("../../image/sidebar-search-close.png"); -} -/* sub menu bg color on hover menu item */ -.page-sidebar-closed ul.page-sidebar-menu > li:hover .sub-menu { - background-color: #666666; -} -/*** -Footer -***/ -.footer .footer-inner { - color: #b3b3b3; -} -.footer .footer-tools .go-top { - background-color: #787878; -} -.footer .footer-tools .go-top:hover { - opacity: 0.7; - filter: alpha(opacity=70); -} -.footer .footer-tools .go-top i { - color: #b3b3b3; -} -/*** -Footer Layouts (new in v1.3) -***/ -/* begin:fixed footer */ -.page-footer-fixed .footer { - background-color: #4d4d4d; -} -.page-footer-fixed .footer .footer-inner { - color: #b3b3b3; -} -.page-footer-fixed .footer .footer-tools .go-top { - background-color: #787878; -} -.page-footer-fixed .footer .footer-tools .go-top i { - color: #b3b3b3; -} -/* end:fixed footer */ -/*** -Gritter Notifications -***/ -.gritter-top { - background: url(../../thirdparty/gritter/images/gritter.png) no-repeat left -30px !important; -} -.gritter-bottom { - background: url(../../thirdparty/gritter/images/gritter.png) no-repeat left bottom !important; -} -.gritter-item { - display: block; - background: url(../../thirdparty/gritter/images/gritter.png) no-repeat left -40px !important; -} -.gritter-close { - background: url(../../thirdparty/gritter/images/gritter.png) no-repeat left top !important; -} -.gritter-title { - text-shadow: none !important; - /* Not supported by IE :( */ - -} -/* for the light (white) version of the gritter notice */ -.gritter-light .gritter-item, -.gritter-light .gritter-bottom, -.gritter-light .gritter-top, -.gritter-light .gritter-close { - background-image: url(../../thirdparty/gritter/images/gritter-light.png) !important; -} -.gritter-item-wrapper a { - color: #18a5ed; -} -.gritter-item-wrapper a:hover { - color: #0b6694; -} -/* begin: boxed page */ -@media (min-width: 992px) { - .page-boxed { - background-color: #575757 !important; - } - .page-boxed .page-container { - background-color: #666666; - border-left: 1px solid #878787; - border-bottom: 1px solid #878787; - } - .page-boxed.page-sidebar-reversed .page-container { - border-left: 0; - border-right: 1px solid #878787; - } - .page-boxed.page-sidebar-fixed .page-container { - border-left: 0; - border-bottom: 0; - } - .page-boxed.page-sidebar-reversed.page-sidebar-fixed .page-container { - border-left: 0; - border-right: 0; - border-bottom: 0; - } - .page-boxed.page-sidebar-fixed .page-sidebar { - border-left: 1px solid #878787; - } - .page-boxed.page-sidebar-reversed.page-sidebar-fixed .page-sidebar { - border-right: 1px solid #878787; - border-left: 0; - } - .page-boxed.page-sidebar-fixed.page-footer-fixed .footer { - background-color: #575757 !important; - } -} -/* end: boxed page */ -/*** -Landscape phone to portrait tablet -***/ -@media (max-width: 991px) { - /*** - page sidebar - ***/ - .page-sidebar { - background-color: #525252 !important; - } - ul.page-sidebar-menu > li > a { - border-top: 1px solid #737373 !important; - } - ul.page-sidebar-menu > li:last-child > a { - border-bottom: 0 !important; - } - .page-sidebar .sidebar-search input { - background-color: #525252 !important; - } - ul.page-sidebar-menu > li.open > a, - ul.page-sidebar-menu > li > a:hover, - ul.page-sidebar-menu > li:hover > a { - background: #474747; - } -} diff --git a/openo-portal/portal-common/src/main/webapp/common/css/themes/grey_ifrm.css b/openo-portal/portal-common/src/main/webapp/common/css/themes/grey_ifrm.css deleted file mode 100644 index 62ca4023..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/css/themes/grey_ifrm.css +++ /dev/null @@ -1,209 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*** -light_ifrm theme -***/ -td>a>span[class^="ict-"], td>a>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>div>span[class^="ict-"], td>div>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>div>span>span[class^="ict-"], td>div>span>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>span>span[class^="ict-"], td>span>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -/* button style*/ -.buttonRounded, -.buttonRoundedOver, -.buttonRoundedFocused, -.buttonRoundedFocusedOver, -.buttonRoundedDown, -.buttonRoundedFocusedDown, -.buttonRoundedSelected, -.buttonRoundedSelectedFocused, -.buttonRoundedSelectedDown, -.buttonRoundedSelectedFocusedDown, -.buttonRoundedSelectedOver, -.buttonRoundedSelectedFocusedOver, -.buttonRoundedDisabled, -.buttonRoundedSelectedDisabled { - background-color: #69a0f8; - color: #fff; - border: 0px solid #b15a59; - border-radius: 0px; - font-family: Arial, Verdana, sans-serif; - font-size: 12px; - /*padding: 0 3px;*/ - padding-left:7px !important; - padding-right:7px !important; - height:30px !important; -} -.buttonRoundedDisabled, .buttonRoundedSelectedDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} -.buttonRoundedOver, -.buttonRoundedFocusedOver, -.buttonRoundedSelectedFocused, -.buttonRoundedSelectedFocusedOver, -.buttonRoundedDown, -.buttonRoundedFocusedDown { - background-color: #4b8df8; - height:30px !important; -} - -.menuButton, -.menuButtonOver, -.menuButtonDown, -.menuButtonDisabled, -.menuButtonFocused, -.menuButtonFocusedDown, -.menuButtonFocusedOver, -.menuButtonSelected, -.menuButtonSelectedDown, -.menuButtonSelectedOver, -.menuButtonSelectedDisabled { - background-color: #69a0f8; - border: 0px solid #ababab; - color: #fff; - font-family: Arial, Verdana, sans-serif; - font-size: 12px; - padding-left: 7px !important; - padding-right: 7px !important; - height:30px !important; -} -.menuButtonOver { - background-color: #4b8df8; - } -.menuButtonDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} -.buttonTitle, -.buttonTitleOver, -.buttonTitleDown, -.buttonTitleSelected, -.buttonTitleFocused, -.buttonTitleSelectedFocused, -.buttonTitleSelectedOver, -.buttonTitleFocusedOver, -.buttonTitleSelectedFocusedOver, -.buttonTitleSelectedDown, -.buttonTitleFocusedDown, -.buttonTitleSelectedFocusedDown, -.buttonTitleDisabled, -.buttonTitleSelectedDisabled { - color: #fff ; - } -.buttonTitleDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} - /* windowBody dialogBody Style */ - .windowBody, -.dialogBody { - background-color: white; - border: 1px solid #69a0f8; - border-top: 0; -} -.windowHeader, -.dialogHeader { - background-color: #69a0f8; - padding: 0; -} -/* sectionHeader Style */ -.sectionHeaderopened { - background-color: #69a0f8; - } - .sectionHeaderclosed { - background-color: #5e9bfd; - } - -#dt_example h1{ -color:#4b8df8; -font-weight:600 !important; -} - - - /*cell style*/ -.tallCellOver, -.tallCellOverDark { - background-color: #ffede4; - border-bottom: 1px solid #ffede4; - border-top: 1px solid #ffede4; - } -.tallCellSelected, -.tallCellSelectedDark { - background: #f8dddd; - border-bottom: 1px solid #f8dddd; - border-top: 1px solid #f8dddd; - } -.tallCellSelectedOver, -.tallCellSelectedOverDark { - background: #f8dddd; - border-bottom: 1px solid #f8dddd; - border-top: 1px solid #f8dddd; - } -.imgHeaderButtonOver, -.imgHeaderButtonDown, -.headerButtonOver, -.headerButtonDown, -.sorterButtonOver, -.sorterButtonDown { - background-color: #c4d7e2; - } -.cellSelected, -.cellSelectedDark, -.specialColSelected, -.recordSummaryCellSelected, -.recordSummaryCellSelectedDark { - background: #f8dddd !important; - border-bottom: 1px solid #f8dddd; - border-top: 1px solid #f8dddd; - } -.cellSelectedOver, -.cellSelectedOverDark, -.specialColSelectedOver, -.recordSummaryCellSelectedOver, -.recordSummaryCellSelectedOverDark { - background: #f8dddd !important; - border-bottom: 1px solid #f8dddd; - border-top: 1px solid #f8dddd; -} -.cellOver, -.cellOverDark, -.specialColOver, -.recordSummaryCellOver, -.recordSummaryCellOverDark { - background: #ffede4 !important; - border-bottom: 1px solid #ffede4; - border-top: 1px solid #ffede4; - } -.treeCellOver, -.treeCellOverDark { - background-color: #ffede4; -} - diff --git a/openo-portal/portal-common/src/main/webapp/common/css/themes/light.css b/openo-portal/portal-common/src/main/webapp/common/css/themes/light.css deleted file mode 100644 index 3932cb19..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/css/themes/light.css +++ /dev/null @@ -1,479 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*** -light theme -***/ - -/*** -Reset and overrides -***/ -body { - background-color: #fafafa !important; -} -/*** -Page header -***/ -.header { - filter: none !important; - background-image: none !important; - background-color: #434343 !important; -} -.header .btn-navbar { - background-color: #434343 !important; -} -.header .navbar-nav .dropdown-toggle:hover, -.header .navbar-nav .dropdown.open .dropdown-toggle { - background-color: #4f4f4f !important; -} -.header .navbar-nav li.dropdown .dropdown-toggle i { - color: #808080 !important; -} -.btn-group .btn.blue.dropdown-toggle{ -background-color: #28b779 !important; -} -.page-content .page-breadcrumb.breadcrumb{ -background-color:#F5F5F5 !important; -} -/*** -Header Search -***/ -.header .search-form { - background-color: #3a3a3a; -} - -.header .search-form .form-control{ - color: #ccc; - border: 0; - background-color: #3a3a3a; -} - -.header .search-form .submit { - background: url(../../image/search-icon.png); -} -/*** -Hor menu -***/ -.header .hor-menu ul.nav li a { - color: #ccc; -} - -.header .hor-menu ul.nav li.open > a, -.header .hor-menu ul.nav li > a:hover, -.header .hor-menu ul.nav li > a:focus { - color: #fff; - background: #4f4f4f; -} - -.header .hor-menu .dropdown-menu li:hover > a, -.header .hor-menu ul.nav li.active > a, -.header .hor-menu ul.nav li.active > a:hover { - color: #fff; - background: #51b88b !important; -} -.header.navbar .hor-menu ul.nav li.current .selected, -.header.navbar .hor-menu ul.nav li.active .selected { - border-top: 6px solid #51b88b; - } - -.header .hor-menu ul.nav li.current > a, -.header .hor-menu ul.nav li.current > a:hover { - color: #fff; - background: #e02222 !important; -} - -.header .hor-menu .dropdown-menu { - background: #4f4f4f; -} -.header .hor-menu .dropdown-menu li > a { - color: #ccc; -} - -.header .hor-menu .hor-menu-search-form-toggler.off { - background: #4f4f4f url(../../image/hor-menu-search-close-white.png) no-repeat center; -} - -.header .hor-menu .search-form { - background:#4f4f4f; -} - -.header .hor-menu .search-form form input { - color: #ccc; -} - -.header .hor-menu .search-form .btn { - color: #ccc; - background: url(../../image/search-icon-white.png) no-repeat center; -} - -.header .hor-menu .search-form form input::-webkit-input-placeholder { /* WebKit browsers */ - color: #ccc; -} -.header .hor-menu .search-form form input:-moz-placeholder { /* Mozilla Firefox 4 to 18 */ - color: #ccc; -} -.header .hor-menu .search-form form input::-moz-placeholder { /* Mozilla Firefox 19+ */ - color: #ccc; -} -.header .hor-menu .search-form form input:-ms-input-placeholder { /* Internet Explorer 10+ */ - color: #ccc; -} - -/*** -Mega Menu -***/ -.mega-menu .mega-menu-submenu { - border-right: 1px solid #656565; -} - -.mega-menu .mega-menu-submenu li h3 { - color: #fff; -} - -/*** -Page sidebar -***/ -.page-content { - border-left: 1px solid #e2e2e2 !important; - border-bottom: 1px solid #e2e2e2 !important; -} -.page-sidebar-reversed .page-content { - border-left: 0; - border-right: 1px solid #e2e2e2 !important; -} -.page-sidebar { - background-color: #fafafa; -} -.page-sidebar-fixed .page-content { - border: 0 !important; -} -.page-sidebar-fixed .page-sidebar { - border-right: 1px solid #e2e2e2 !important; -} - - -ul.page-sidebar-menu > li > a { - border-top: 1px solid #e2e2e2 !important; - color: #000 !important; - font-weight: 400; -} - -ul.page-sidebar-menu > li:first-child > a { - border-top: 1px solid transparent !important; -} - -ul.page-sidebar-menu > li:last-child > a { - border-bottom: 1px solid transparent !important; -} - -ul.page-sidebar-menu > li a i { - color: #bbb !important; -} -ul.page-sidebar-menu > li.open > a, -ul.page-sidebar-menu > li > a:hover, -ul.page-sidebar-menu > li:hover > a { - background: #eee; - border-top: 1px solid #e8e8e8; -} -ul.page-sidebar-menu > li.active > a .selected { - right:-7px; - top:0px; - width: 7px; - height: 39px; - background-image: url("../../image/sidebar-menu-arrow-green.png"); -} -.page-sidebar-reversed ul.page-sidebar-menu > li.active > a .selected { - right: auto; - left:-7px; - background-image: url("../../image/sidebar-menu-arrow-green-reverse.png"); -} -ul.page-sidebar-menu > li.active i { - color: #fff !important; -} -.page-sidebar-fixed ul.page-sidebar-menu > li.active > a .selected { - display: none; -} -ul.page-sidebar-menu > li.active > a{ - background: #28b779 !important; - border-top-color: transparent !important; - color:#fff !important; -} -ul.page-sidebar-menu > li.active > a i { - color: #fff; -} -ul.page-sidebar-menu > li > a > .arrow:before, -ul.page-sidebar-menu > li > a > .arrow.open:before { - color: #ccc !important; -} -ul.page-sidebar-menu > li.active > a .arrow:before, -ul.page-sidebar-menu > li.active > a .arrow.open:before { - color: #fff !important; -} -ul.page-sidebar-menu > li > ul.sub-menu > li:first-child > a { - border-top: 0px !important; -} - -ul.page-sidebar-menu ul.sub-menu > li > a { - font-weight: 400 !important; - color: #333 !important; -} -ul.page-sidebar-menu ul.sub-menu > li.active > a, -ul.page-sidebar-menu ul.sub-menu > li > a:hover { - color: #818181 !important; - background: #efefef !important; -} - -ul.page-sidebar-menu > li > ul.sub-menu a .arrow:before, -ul.page-sidebar-menu > li > ul.sub-menu a .arrow.open:before { - color: #ccc !important; -} - -/* sub menu links effects */ -ul.page-sidebar-menu ul.sub-menu > li.active > a, -ul.page-sidebar-menu ul.sub-menu > li > a:hover, -ul.page-sidebar-menu ul.sub-menu > li.open > a { - color: #818181 !important; - background: #efefef !important; -} -ul.page-sidebar-menu ul.sub-menu > li > a i { - color: #bbb !important; -} - -/* sidebar search */ -.page-sidebar .sidebar-search input { - background-color: #fbfbfb !important; - color: #727272 !important; -} -.page-sidebar .sidebar-search input::-webkit-input-placeholder { - color: #aaa !important; -} -.page-sidebar .sidebar-search input:-moz-placeholder { - color: #aaa !important; -} -.page-sidebar .sidebar-search input:-ms-input-placeholder { - color: #aaa !important; -} -.page-sidebar .sidebar-search .input-box { - border-bottom: 1px solid #e2e2e2 !important; -} -.page-sidebar .sidebar-search .submit { - background-image: url(../../image/search-icon-white.png); -} - -/*** -Sidebar toggler -***/ -.sidebar-toggler { - background-image: url(../../image/sidebar-toggler-light.jpg); - background-color: #333; -} -/* search box bg color on expanded */ -.page-sidebar-closed .page-sidebar .sidebar-search.open .form-container { - background-color: #fbfbfb !important; -} -.page-sidebar-closed .page-sidebar .sidebar-search.open .form-container .remove { - background-image: url("../../image/sidebar-search-close-light.png"); -} -/* sub menu bg color on hover menu item */ -.page-sidebar-closed ul.page-sidebar-menu > li:hover .sub-menu { - background-color: #fbfbfb; -} -/*** -Footer -***/ -.footer .footer-inner { - color: #333333; -} -.footer .footer-tools .go-top { - background-color: #666666; -} -.footer .footer-tools .go-top:hover { - opacity: 0.7; - filter: alpha(opacity=70); -} -.footer .footer-tools .go-top i { - color: #999999; -} -/*** -Footer Layouts (new in v1.3) -***/ -/* begin:fixed footer */ -.page-footer-fixed .footer { - background-color: #434343; -} -.page-footer-fixed .footer .footer-inner { - color: #aaaaaa; -} -.page-footer-fixed .footer .footer-tools .go-top { - background-color: #666666; -} -.page-footer-fixed .footer .footer-tools .go-top i { - color: #aaaaaa; -} -/* end:fixed footer */ -/*** -Gritter Notifications -***/ -.gritter-top { - background: url(../../thirdparty/gritter/images/gritter.png) no-repeat left -30px !important; -} -.gritter-bottom { - background: url(../../thirdparty/gritter/images/gritter.png) no-repeat left bottom !important; -} -.gritter-item { - display: block; - background: url(../../thirdparty/gritter/images/gritter.png) no-repeat left -40px !important; -} -.gritter-close { - background: url(../../thirdparty/gritter/images/gritter.png) no-repeat left top !important; -} -.gritter-title { - text-shadow: none !important; - /* Not supported by IE :( */ - -} -/* for the light (white) version of the gritter notice */ -.gritter-light .gritter-item, -.gritter-light .gritter-bottom, -.gritter-light .gritter-top, -.gritter-light .gritter-close { - background-image: url(../../thirdparty/gritter/images/gritter-light.png) !important; -} -.gritter-item-wrapper a { - color: #18a5ed; -} -.gritter-item-wrapper a:hover { - color: #0b6694; -} -/* begin: boxed page */ -@media (min-width: 992px) { - .page-boxed { - background-color: #E8E8E8 !important; - } - .page-boxed .page-container { - background-color: #fafafa; - border-left: 1px solid #e2e2e2; - border-bottom: 1px solid #e2e2e2; - } - .page-sidebar-reversed.page-boxed .page-container { - border-left: 0; - border-right: 1px solid #e2e2e2; - } - .page-boxed.page-sidebar-fixed .page-container { - border-left: 0; - border-bottom: 0; - } - .page-boxed.page-sidebar-fixed .page-sidebar { - border-left: 1px solid #e2e2e2; - } - .page-boxed.page-sidebar-reversed.page-sidebar-fixed .page-sidebar { - border-right: 1px solid #e2e2e2; - border-left: 0; - } - .page-boxed.page-sidebar-fixed.page-footer-fixed .footer { - background-color: #E8E8E8 !important; - } -} -/* end: boxed page */ -/*** -Landscape phone to portrait tablet -***/ -@media (max-width: 991px) { - /*** - page sidebar - ***/ - .page-sidebar { - background-color: #f1f1f1 !important; - border-right: none !important; - } - .page-sidebar-fixed .page-sidebar { - border-right: none !important; - } - .page-content { - border-left: none !important; - } - ul.page-sidebar-menu > li > a { - border-top: 1px solid #ccc !important; - } - ul.page-sidebar-menu > li:last-child > a { - border-bottom: 0 !important; - } - - ul.page-sidebar-menu > li.open > a, - ul.page-sidebar-menu > li > a:hover { - color: #666666 !important; - background-color: #dddddd !important; - } - ul.page-sidebar-menu > li.open > a { - border-bottom-color: transparent !important; - } - ul.page-sidebar-menu > li.active > a { - color: #ffffff !important; - background-color: #28b779 !important; - } - - ul.page-sidebar-menu ul.sub-menu > li > a { - color: #111 !important; - } - - ul.page-sidebar-menu ul.sub-menu > li.open > a, - ul.page-sidebar-menu ul.sub-menu > li.active > a, - ul.page-sidebar-menu ul.sub-menu > li > a:hover { - color: #666666 !important; - background: #dddddd !important; - } - - .page-sidebar .sidebar-search input { - background-color: #f1f1f1 !important; - color: #ccc !important; - } - - .page-sidebar .sidebar-search .input-box { - border-bottom-color: #ccc !important; - } - .page-sidebar .sidebar-search input::-webkit-input-placeholder { - color: #ccc !important; - } - .page-sidebar .sidebar-search input:-moz-placeholder { - color: #ccc !important; - } - .page-sidebar .sidebar-search input:-ms-input-placeholder { - color: #ccc !important; - } - - /*** - page footer - ***/ - - .footer { - background-color: #434343; - } - - .footer .footer-inner { - color: #cccccc; - } - .footer .footer-tools .go-top { - background-color: #666666; - } - .footer .footer-tools .go-top i { - color: #999999; - } -} - -@media (max-width: 767px) { - body { - background-color: #333 !important; - } -} \ No newline at end of file diff --git a/openo-portal/portal-common/src/main/webapp/common/css/themes/light_ifrm.css b/openo-portal/portal-common/src/main/webapp/common/css/themes/light_ifrm.css deleted file mode 100644 index 640cb51c..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/css/themes/light_ifrm.css +++ /dev/null @@ -1,207 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*** -light_ifrm theme -***/ -td>a>span[class^="ict-"], td>a>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>div>span[class^="ict-"], td>div>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>div>span>span[class^="ict-"], td>div>span>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>span>span[class^="ict-"], td>span>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -/* button style*/ -.buttonRounded, -.buttonRoundedOver, -.buttonRoundedFocused, -.buttonRoundedFocusedOver, -.buttonRoundedDown, -.buttonRoundedFocusedDown, -.buttonRoundedSelected, -.buttonRoundedSelectedFocused, -.buttonRoundedSelectedDown, -.buttonRoundedSelectedFocusedDown, -.buttonRoundedSelectedOver, -.buttonRoundedSelectedFocusedOver, -.buttonRoundedDisabled, -.buttonRoundedSelectedDisabled { - background-color: #5fbf95; - color: #fff; - border: 0px solid #b15a59; - border-radius: 0px; - font-family: Arial, Verdana, sans-serif; - font-size: 12px; - /*padding: 0 3px;*/ - padding-left:7px !important; - padding-right:7px !important; - height:30px !important; -} -.buttonRoundedDisabled, .buttonRoundedSelectedDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} -.buttonRoundedOver, -.buttonRoundedFocusedOver, -.buttonRoundedSelectedFocused, -.buttonRoundedSelectedFocusedOver, -.buttonRoundedDown, -.buttonRoundedFocusedDown { - background-color: #1faa6e; - height:30px !important; -} - -.menuButton, -.menuButtonOver, -.menuButtonDown, -.menuButtonDisabled, -.menuButtonFocused, -.menuButtonFocusedDown, -.menuButtonFocusedOver, -.menuButtonSelected, -.menuButtonSelectedDown, -.menuButtonSelectedOver, -.menuButtonSelectedDisabled { - background-color: #5fbf95; - border: 0px solid #ababab; - color: #fff; - font-family: Arial, Verdana, sans-serif; - font-size: 12px; - padding-left: 7px !important; - padding-right: 7px !important; - height:30px !important; -} -.menuButtonOver { - background-color: #1faa6e; - } -.menuButtonDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} - .buttonTitle, -.buttonTitleOver, -.buttonTitleDown, -.buttonTitleSelected, -.buttonTitleFocused, -.buttonTitleSelectedFocused, -.buttonTitleSelectedOver, -.buttonTitleFocusedOver, -.buttonTitleSelectedFocusedOver, -.buttonTitleSelectedDown, -.buttonTitleFocusedDown, -.buttonTitleSelectedFocusedDown, -.buttonTitleDisabled, -.buttonTitleSelectedDisabled { - color: #fff ; - } - .buttonTitleDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} - /* windowBody dialogBody Style */ - .windowBody, -.dialogBody { - background-color: white; - border: 1px solid #51b88b; - border-top: 0; -} -.windowHeader, -.dialogHeader { - background-color: #51b88b; - padding: 0; -} -/* sectionHeader Style */ -.sectionHeaderopened { - background-color: #51b88b; - } - .sectionHeaderclosed { - background-color: #70c6a0; - } - -#dt_example h1{ -color:#51b88b; -font-weight:600 !important; -} - /*cell style*/ -.tallCellOver, -.tallCellOverDark { - background-color: #d7eae3; - border-bottom: 1px solid #d7eae3; - border-top: 1px solid #d7eae3; - } -.tallCellSelected, -.tallCellSelectedDark { - background: #c7e5da; - border-bottom: 1px solid #c7e5da; - border-top: 1px solid #c7e5da; - } -.tallCellSelectedOver, -.tallCellSelectedOverDark { - background: #c7e5da; - border-bottom: 1px solid #c7e5da; - border-top: 1px solid #c7e5da; - } -.imgHeaderButtonOver, -.imgHeaderButtonDown, -.headerButtonOver, -.headerButtonDown, -.sorterButtonOver, -.sorterButtonDown { - background-color: #aadac5; - } -.cellSelected, -.cellSelectedDark, -.specialColSelected, -.recordSummaryCellSelected, -.recordSummaryCellSelectedDark { - background: #c7e5da !important; - border-bottom: 1px solid #c7e5da; - border-top: 1px solid #c7e5da; - } -.cellSelectedOver, -.cellSelectedOverDark, -.specialColSelectedOver, -.recordSummaryCellSelectedOver, -.recordSummaryCellSelectedOverDark { - background: #c7e5da !important; - border-bottom: 1px solid #c7e5da; - border-top: 1px solid #c7e5da; -} -.cellOver, -.cellOverDark, -.specialColOver, -.recordSummaryCellOver, -.recordSummaryCellOverDark { - background: #d7eae3 !important; - border-bottom: 1px solid #d7eae3; - border-top: 1px solid #d7eae3; - } -.treeCellOver, -.treeCellOverDark { - background-color: #d7eae3; -} - diff --git a/openo-portal/portal-common/src/main/webapp/common/css/themes/purple.css b/openo-portal/portal-common/src/main/webapp/common/css/themes/purple.css deleted file mode 100644 index 08b7c6f1..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/css/themes/purple.css +++ /dev/null @@ -1,375 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*** -Purple theme -***/ -/*** -Reset and overrides -***/ -body { - background-color: #701584 !important; -} -/*** -Page header -***/ -.header { - filter: none !important; - background-image: none !important; - background-color: #470d54 !important; -} -.header .btn-navbar { - background-color: #470d54 !important; -} -.header .navbar-nav .dropdown-toggle:hover, -.header .navbar-nav .dropdown.open .dropdown-toggle { - background-color: #69147b !important; -} -.header .navbar-nav li.dropdown .dropdown-toggle i { - color: #c84fe3 !important; -} -.btn-group .btn.blue.dropdown-toggle{ -background-color: #571067 !important; -} -.page-content .page-breadcrumb.breadcrumb{ -background-color:#F5F5F5 !important; -} -/*** -Header Search -***/ -.header .search-form { - background-color: #360A40; -} - -.header .search-form .form-control{ - color: #ccc; - border: 0; - background-color: #360A40; -} - -.header .search-form .submit { - background: url(../../image/search-icon-purple.png); -} -/*** -Hor menu -***/ -.header .hor-menu ul.nav li a { - color: #ccc; -} - -.header .hor-menu ul.nav li.open > a, -.header .hor-menu ul.nav li > a:hover, -.header .hor-menu ul.nav li > a:focus { - color: #fff; - background: #69147b; -} - -.header .hor-menu .dropdown-menu li:hover > a, -.header .hor-menu ul.nav li.active > a, -.header .hor-menu ul.nav li.active > a:hover { - color: #fff; - background: #e02222 !important; -} - -.header .hor-menu ul.nav li.current > a, -.header .hor-menu ul.nav li.current > a:hover { - color: #fff; - background: #e02222 !important; -} - -.header .hor-menu .dropdown-menu { - background: #69147b; -} -.header .hor-menu .dropdown-menu li > a { - color: #ccc; -} - -.header .hor-menu .hor-menu-search-form-toggler.off { - background: #69147b url(../../image/hor-menu-search-close-white.png) no-repeat center; -} - -.header .hor-menu .search-form { - background:#69147b; -} - -.header .hor-menu .search-form form input { - color: #ccc; -} - -.header .hor-menu .search-form .btn { - color: #ccc; - background: url(../../image/search-icon-white.png) no-repeat center; -} - -.header .hor-menu .search-form form input::-webkit-input-placeholder { /* WebKit browsers */ - color: #ccc; -} -.header .hor-menu .search-form form input:-moz-placeholder { /* Mozilla Firefox 4 to 18 */ - color: #ccc; -} -.header .hor-menu .search-form form input::-moz-placeholder { /* Mozilla Firefox 19+ */ - color: #ccc; -} -.header .hor-menu .search-form form input:-ms-input-placeholder { /* Internet Explorer 10+ */ - color: #ccc; -} - -/*** -Mega Menu -***/ -.mega-menu .mega-menu-submenu { - border-right: 1px solid #78188C; -} - -.mega-menu .mega-menu-submenu li h3 { - color: #fff; -} - -/*** -Page sidebar -***/ -.page-sidebar { - background-color: #701584; -} -ul.page-sidebar-menu > li > a { - border-top: 1px solid #9d1db9 !important; - color: #ffffff !important; -} -ul.page-sidebar-menu > li:last-child > a { - border-bottom: 1px solid transparent !important; -} -ul.page-sidebar-menu > li a i { - color: #cf65e7; -} -ul.page-sidebar-menu > li.open > a, -ul.page-sidebar-menu > li > a:hover, -ul.page-sidebar-menu > li:hover > a { - background: #5d116e; -} -ul.page-sidebar-menu > li.active > a { - background: #571067 !important; - border-top-color: transparent !important; - color: #ffffff; -} -ul.page-sidebar-menu > li.active > a i { - color: #ffffff; -} -ul.page-sidebar-menu > li > ul.sub-menu > li:first-child > a { - border-top: 0px !important; -} -ul.page-sidebar-menu > li > ul.sub-menu > li.active > a, -ul.page-sidebar-menu > li > ul.sub-menu > li > a:hover { - color: #ffffff !important; - background: #951cb0 !important; -} -ul.page-sidebar-menu > li > ul.sub-menu > li > a:hover { - background: #951cb0 !important; -} -/* 3rd level sub menu */ -ul.page-sidebar-menu > li > ul.sub-menu li > ul.sub-menu > li.active > a, -ul.page-sidebar-menu > li > ul.sub-menu li > ul.sub-menu > li > a:hover, -ul.page-sidebar-menu > li > ul.sub-menu li.open > a { - color: #ffffff !important; - background: #951cb0 !important; -} -/* font color for all sub menu links*/ -ul.page-sidebar-menu li > ul.sub-menu > li > a { - color: #e4a7f1; -} -/* menu arrows */ -ul.page-sidebar-menu > li > a .arrow:before, -ul.page-sidebar-menu > li > a .arrow.open:before { - color: #c239df !important; -} -ul.page-sidebar-menu > li > ul.sub-menu a .arrow:before, -ul.page-sidebar-menu > li > ul.sub-menu a .arrow.open:before { - color: #bb23dc !important; -} -ul.page-sidebar-menu > li > a > .arrow.open:before { - color: #c84fe3 !important; -} -ul.page-sidebar-menu > li.active > a .arrow:before, -ul.page-sidebar-menu > li.active > a .arrow.open:before { - color: #ffffff !important; -} -/* sidebar search */ -.page-sidebar .sidebar-search input { - background-color: #4b0e58 !important; - color: #bf55d7; -} -.page-sidebar .sidebar-search input::-webkit-input-placeholder { - color: #b84dd0 !important; -} -.page-sidebar .sidebar-search input:-moz-placeholder { - color: #b84dd0 !important; -} -.page-sidebar .sidebar-search input:-ms-input-placeholder { - color: #b84dd0 !important; -} -.page-sidebar .sidebar-search input { - background-color: #701584 !important; - color: #bfbfbf !important; -} -.page-sidebar .sidebar-search .input-box { - border-bottom: 1px solid #a93bc1 !important; -} -.page-sidebar .sidebar-search .submit { - background-image: url(../../image/search-icon-purple.png); -} -/*** -Sidebar toggler -***/ -.sidebar-toggler { - background-image: url(../../image/sidebar-toggler-purple.jpg); - background-color: #4b0e58; -} -/* search box bg color on expanded */ -.page-sidebar-closed .page-sidebar .sidebar-search.open .form-container { - background-color: #701584 !important; -} -.page-sidebar-closed .page-sidebar .sidebar-search.open .form-container .remove { - background-image: url("../../image/sidebar-search-close-purple.png"); -} -/* sub menu bg color on hover menu item */ -.page-sidebar-closed ul.page-sidebar-menu > li:hover .sub-menu { - background-color: #701584; -} -/*** -Footer -***/ -.footer .footer-inner { - color: #c84fe3; -} -.footer .footer-tools .go-top { - background-color: #8a1aa3; -} -.footer .footer-tools .go-top:hover { - opacity: 0.7; - filter: alpha(opacity=70); -} -.footer .footer-tools .go-top i { - color: #c84fe3; -} -/*** -Footer Layouts (new in v1.3) -***/ -/* begin:fixed footer */ -.page-footer-fixed .footer { - background-color: #4b0e58; -} -.page-footer-fixed .footer .footer-inner { - color: #c84fe3; -} -.page-footer-fixed .footer .footer-tools .go-top { - background-color: #8a1aa3; -} -.page-footer-fixed .footer .footer-tools .go-top i { - color: #c84fe3; -} -/* end:fixed footer */ -/*** -Gritter Notifications -***/ -.gritter-top { - background: url(../../thirdparty/gritter/images/gritter-purple.png) no-repeat left -30px !important; -} -.gritter-bottom { - background: url(../../thirdparty/gritter/images/gritter-purple.png) no-repeat left bottom !important; -} -.gritter-item { - display: block; - background: url(../../thirdparty/gritter/images/gritter-purple.png) no-repeat left -40px !important; -} -.gritter-close { - background: url(../../thirdparty/gritter/images/gritter-purple.png) no-repeat left top !important; -} -.gritter-title { - text-shadow: none !important; - /* Not supported by IE :( */ - -} -/* for the light (white) version of the gritter notice */ -.gritter-light .gritter-item, -.gritter-light .gritter-bottom, -.gritter-light .gritter-top, -.gritter-light .gritter-close { - background-image: url(../../thirdparty/gritter/images/gritter-light.png) !important; -} -.gritter-item-wrapper a { - color: #18a5ed; -} -.gritter-item-wrapper a:hover { - color: #0b6694; -} -/* begin: boxed page */ -@media (min-width: 992px) { - .page-boxed { - background-color: #5a116a !important; - } - .page-boxed .page-container { - background-color: #701584; - border-left: 1px solid #a11ebd; - border-bottom: 1px solid #a11ebd; - } - .page-boxed.page-sidebar-reversed .page-container { - border-left: 0; - border-right: 1px solid #a11ebd; - } - .page-boxed.page-sidebar-fixed .page-container { - border-left: 0; - border-bottom: 0; - } - .page-boxed.page-sidebar-reversed.page-sidebar-fixed .page-container { - border-left: 0; - border-right: 0; - border-bottom: 0; - } - .page-boxed.page-sidebar-fixed .page-sidebar { - border-left: 1px solid #a11ebd; - } - .page-boxed.page-sidebar-reversed.page-sidebar-fixed .page-sidebar { - border-right: 1px solid #a11ebd; - border-left: 0; - } - .page-boxed.page-sidebar-fixed.page-footer-fixed .footer { - background-color: #5a116a !important; - } -} -/* end: boxed page */ -/*** -Landscape phone to portrait tablet -***/ -@media (max-width: 991px) { - /*** - page sidebar - ***/ - .page-sidebar { - background-color: #520f61 !important; - } - ul.page-sidebar-menu > li > a { - border-top: 1px solid #83189a !important; - } - ul.page-sidebar-menu > li:last-child > a { - border-bottom: 0 !important; - } - .page-sidebar .sidebar-search input { - background-color: #520f61 !important; - } - ul.page-sidebar-menu > li.open > a, - ul.page-sidebar-menu > li > a:hover, - ul.page-sidebar-menu > li:hover > a { - background: #430d4f; - } -} diff --git a/openo-portal/portal-common/src/main/webapp/common/css/themes/purple_ifrm.css b/openo-portal/portal-common/src/main/webapp/common/css/themes/purple_ifrm.css deleted file mode 100644 index 7a4826d5..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/css/themes/purple_ifrm.css +++ /dev/null @@ -1,207 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*** -Purple_ifrm theme -***/ -td>a>span[class^="ict-"], td>a>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>div>span[class^="ict-"], td>div>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>div>span>span[class^="ict-"], td>div>span>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>span>span[class^="ict-"], td>span>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -/* button style*/ -.buttonRounded, -.buttonRoundedOver, -.buttonRoundedFocused, -.buttonRoundedFocusedOver, -.buttonRoundedDown, -.buttonRoundedFocusedDown, -.buttonRoundedSelected, -.buttonRoundedSelectedFocused, -.buttonRoundedSelectedDown, -.buttonRoundedSelectedFocusedDown, -.buttonRoundedSelectedOver, -.buttonRoundedSelectedFocusedOver, -.buttonRoundedDisabled, -.buttonRoundedSelectedDisabled { - background-color: #b045c7; - color: #fff !important; - border: 0px solid #b15a59; - font-family: Arial, Verdana, sans-serif; - font-size: 12px; - /*padding: 0 3px;*/ - padding-left:7px !important; - padding-right:7px !important; - height:30px !important; -} -.buttonRoundedDisabled, .buttonRoundedSelectedDisabled{ - background-color: #f0f0f0; - color: #dadada !important; - opacity: 1; -} -.buttonRoundedOver, -.buttonRoundedFocusedOver, -.buttonRoundedSelectedFocused, -.buttonRoundedSelectedFocusedOver , -.buttonRoundedDown, -.buttonRoundedFocusedDown{ - background-color: #8f32a3; - height:30px !important; -} - -.menuButton, -.menuButtonOver, -.menuButtonDown, -.menuButtonDisabled, -.menuButtonFocused, -.menuButtonFocusedDown, -.menuButtonFocusedOver, -.menuButtonSelected, -.menuButtonSelectedDown, -.menuButtonSelectedOver, -.menuButtonSelectedDisabled { - background-color: #b045c7; - border: 0px solid #ababab; - color: #fff !important; - font-family: Arial, Verdana, sans-serif; - font-size: 12px; - padding-left: 7px !important; - padding-right: 7px !important; - height:30px !important; -} -.menuButtonOver { - background-color: #8f32a3; - } -.menuButtonDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} - .buttonTitle, -.buttonTitleOver, -.buttonTitleDown, -.buttonTitleSelected, -.buttonTitleFocused, -.buttonTitleSelectedFocused, -.buttonTitleSelectedOver, -.buttonTitleFocusedOver, -.buttonTitleSelectedFocusedOver, -.buttonTitleSelectedDown, -.buttonTitleFocusedDown, -.buttonTitleSelectedFocusedDown, -.buttonTitleDisabled, -.buttonTitleSelectedDisabled { - color: #fff ; - } - .buttonTitleDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} - /* windowBody dialogBody Style */ - .windowBody, -.dialogBody { - background-color: white; - border: 1px solid #5d116e; - border-top: 0; -} - -.windowHeader, -.dialogHeader { - background-color: #5d116e; - padding: 0; -} -/* sectionHeader Style */ -.sectionHeaderopened { - background-color: #8f32a3; - } - .sectionHeaderclosed { - background-color: #a03bb6; - } - -#dt_example h1{ -color:#8f32a3; -font-weight:600 !important; -} - /*cell style*/ -.tallCellOver, -.tallCellOverDark { - background-color: #e7c7ee; - border-bottom: 1px solid #e7c7ee; - border-top: 1px solid #e7c7ee; - } -.tallCellSelected, -.tallCellSelectedDark { - background: #d49ce0; - border-bottom: 1px solid #d49ce0; - border-top: 1px solid #d49ce0; - } -.tallCellSelectedOver, -.tallCellSelectedOverDark { - background: #d49ce0; - border-bottom: 1px solid #d49ce0; - border-top: 1px solid #d49ce0; - } -.imgHeaderButtonOver, -.imgHeaderButtonDown, -.headerButtonOver, -.headerButtonDown, -.sorterButtonOver, -.sorterButtonDown { - background-color: #ecd4f1; - } -.cellSelected, -.cellSelectedDark, -.specialColSelected, -.recordSummaryCellSelected, -.recordSummaryCellSelectedDark { - background: #d49ce0 !important; - border-bottom: 1px solid #d49ce0; - border-top: 1px solid #d49ce0; - } -.cellSelectedOver, -.cellSelectedOverDark, -.specialColSelectedOver, -.recordSummaryCellSelectedOver, -.recordSummaryCellSelectedOverDark { - background: #d49ce0 !important; - border-bottom: 1px solid #d49ce0; - border-top: 1px solid #d49ce0; -} -.cellOver, -.cellOverDark, -.specialColOver, -.recordSummaryCellOver, -.recordSummaryCellOverDark { - background: #e7c7ee !important; - border-bottom: 1px solid #e7c7ee; - border-top: 1px solid #e7c7ee; - } -.treeCellOver, -.treeCellOverDark { - background-color: #e7c7ee; -} - diff --git a/openo-portal/portal-common/src/main/webapp/common/css/themes/zteblue.css b/openo-portal/portal-common/src/main/webapp/common/css/themes/zteblue.css deleted file mode 100644 index c95553fa..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/css/themes/zteblue.css +++ /dev/null @@ -1,398 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*** -Blue theme -***/ -/*** -Reset and overrides -***/ -body { - background-color: #e8e8e8 !important; -} -/*** -Page header -***/ -.header { - filter: none !important; - background-image: none !important; - background-color: #1b8fd3 !important; -} -.header .btn-navbar { - background-color: #1b8fd3!important; -} -.header .navbar-nav .dropdown-toggle:hover, -.header .navbar-nav .dropdown.open .dropdown-toggle { - color: #fff; - background-color: #ee5c00 !important; -} -.header .navbar-nav li.dropdown .dropdown-toggle i { - color: #fff !important; -} -.page-content .page-breadcrumb.breadcrumb .dashboard-date-range{ -background-color: #ee5c00 !important; -} -.btn-group .btn.blue.dropdown-toggle{ -background-color: #ee5c00 !important; -} -.page-content .page-breadcrumb.breadcrumb{ -background-color:#F5F5F5 !important; -} -/*** -Header Search -***/ -.header .search-form { - background-color: #0B4263; -} - -.header .search-form .form-control{ - color: #68bbec; - border: 0; - background-color: #0B4263; -} - -.header .search-form .submit { - background: url(../../image/search-icon-blue.png); -} -.zte-theme-panel > .toggler:hover { - background-color: #146a9d !important; -} -/*** -Hor menu -***/ -.header .hor-menu ul.nav li a { - color: #ccc; -} - -.header .hor-menu ul.nav li.open > a, -.header .hor-menu ul.nav li > a:hover, -.header .hor-menu ul.nav li > a:focus { - color: #fff; - background: #146a9d; -} - -.header .hor-menu .dropdown-menu li:hover > a, -.header .hor-menu ul.nav li.active > a, -.header .hor-menu ul.nav li.active > a:hover { - color: #fff; - background: #ee5c00 !important; -} -.header.navbar .hor-menu ul.nav li.current .selected, -.header.navbar .hor-menu ul.nav li.active .selected { - border-top: 6px solid #ee5c00; - } -.header .hor-menu ul.nav li.current > a, -.header .hor-menu ul.nav li.current > a:hover { - color: #fff; - background: #e02222 !important; -} - -.header .hor-menu .dropdown-menu { - background: #146a9d; -} -.header .hor-menu .dropdown-menu li > a { - color: #ccc; -} - -.header .hor-menu .hor-menu-search-form-toggler.off { - background: #146a9d url(../../image/hor-menu-search-close-white.png) no-repeat center; -} - -.header .hor-menu .search-form { - background:#146a9d; -} - -.header .hor-menu .search-form form input { - color: #ccc; -} - -.header .hor-menu .search-form .btn { - color: #ccc; - background: url(../../image/search-icon-white.png) no-repeat center; -} - -.header .hor-menu .search-form form input::-webkit-input-placeholder { /* WebKit browsers */ - color: #ccc; -} -.header .hor-menu .search-form form input:-moz-placeholder { /* Mozilla Firefox 4 to 18 */ - color: #ccc; -} -.header .hor-menu .search-form form input::-moz-placeholder { /* Mozilla Firefox 19+ */ - color: #ccc; -} -.header .hor-menu .search-form form input:-ms-input-placeholder { /* Internet Explorer 10+ */ - color: #ccc; -} - -/*** -Mega Menu -***/ -.mega-menu .mega-menu-submenu { - border-right: 1px solid #1876AD; -} - -.mega-menu .mega-menu-submenu li h3 { - color: #fff; -} - -/*** -Page sidebar -***/ -.page-sidebar { - background-color: #e8e8e8; -} -ul.page-sidebar-menu > li > a { - border-top: 1px solid #d3d1d1 !important; - /*color: black !important;*/ -} -ul.page-sidebar-menu > li:last-child > a { - border-bottom: 1px solid transparent !important; -} -ul.page-sidebar-menu > li a i { - /*color: black !important;*/ -} -ul.page-sidebar-menu > li.open > a{ -border-bottom: 1px solid #d3d1d1 !important; -color: #0d638f; -} -ul.page-sidebar-menu > li > a:hover -/*ul.page-sidebar-menu > li:hover > a */{ - background: #1b8fd3; - color: #ffffff; -} -ul.page-sidebar-menu > li.active > a { - background: #ee5c00 !important; - border-top-color: transparent !important; - color: #ffffff; -} -ul.page-sidebar-menu > li.active > a i { - color: #ffffff; -} -ul.page-sidebar-menu > li > ul.sub-menu > li:first-child > a { - border-top: 0px !important; -} -ul.page-sidebar-menu > li > ul.sub-menu > li.active > a, -ul.page-sidebar-menu > li > ul.sub-menu > li > a:hover { - color: #ffffff !important; - background: #1b8fd3 !important; -} -ul.page-sidebar-menu > li > ul.sub-menu > li > a:hover { - background: #1b8fd3 !important; -} -/* 3rd level sub menu */ -ul.page-sidebar-menu > li > ul.sub-menu li > ul.sub-menu > li.active > a, -ul.page-sidebar-menu > li > ul.sub-menu li > ul.sub-menu > li > a:hover, -ul.page-sidebar-menu > li > ul.sub-menu li.open > a { - color: #ffffff !important; - background: #1b8fd3 !important; -} -/* font color for all sub menu links*/ -ul.page-sidebar-menu li > ul.sub-menu > li > a { - /*color: #c3e4f7;*/ -} -/* menu arrows */ -ul.page-sidebar-menu > li > a .arrow:before, -ul.page-sidebar-menu > li > a .arrow.open:before { - /*color: #51b1e9 !important;*/ -} -ul.page-sidebar-menu > li > ul.sub-menu a .arrow:before, -ul.page-sidebar-menu > li > ul.sub-menu a .arrow.open:before { - color: #3ba6e6 !important; -} -ul.page-sidebar-menu > li > a > .arrow.open:before { - /* color: #68bbec !important;*/ -} -ul.page-sidebar-menu > li.active > a .arrow:before, -ul.page-sidebar-menu > li.active > a .arrow.open:before { - color: #ffffff !important; -} -/* sidebar search */ -.page-sidebar .sidebar-search input { - background-color: #0f5179 !important; - color: #0d638f; -} -.page-sidebar .sidebar-search input::-webkit-input-placeholder { - color: #0d638f !important; -} -.page-sidebar .sidebar-search input:-moz-placeholder { - color: #0d638f !important; -} -.page-sidebar .sidebar-search input:-ms-input-placeholder { - color: #0d638f !important; -} -.page-sidebar .sidebar-search input { - background-color: #e8e8e8 !important; - /* color: #bfbfbf !important;*/ -} -.page-sidebar .sidebar-search .input-box { - border-bottom: 1px solid #0d638f !important; -} -.page-sidebar .sidebar-search .submit { - background-image: url(../../image/search-icon-blue.png); -} -/*** -Sidebar toggler -***/ -.sidebar-toggler { - background-image: url(../../image/sidebar-toggler-grey.jpg); - background-color: #0f5179; -} -/* search box bg color on expanded */ -.page-sidebar-closed .page-sidebar .sidebar-search.open .form-container { - background-color: #1b8fd3 !important; -} -.page-sidebar-closed .page-sidebar .sidebar-search.open .form-container .remove { - background-image: url("../../image/sidebar-search-close-blue.png"); -} -/* sub menu bg color on hover menu item */ -.page-sidebar-closed ul.page-sidebar-menu > li:hover .sub-menu { - background-color: #1b8fd3; -} -/*** -Footer -***/ -.footer .footer-inner { - color: #7c7c7c; -} -.footer .footer-tools .go-top { - background-color: #1985c6; -} -.footer .footer-tools .go-top:hover { - opacity: 0.7; - filter: alpha(opacity=70); -} -.footer .footer-tools .go-top i { - color: #68bbec; -} -/*** -Footer Layouts (new in v1.3) -***/ -/* begin:fixed footer */ -.page-footer-fixed .footer { - background-color: #0f5179; -} -.page-footer-fixed .footer .footer-inner { - color: #68bbec; -} -.page-footer-fixed .footer .footer-tools .go-top { - background-color: #1985c6; -} -.page-footer-fixed .footer .footer-tools .go-top i { - color: #68bbec; -} -/* end:fixed footer */ -/*** -Gritter Notifications -***/ -.gritter-top { - background: url(../../thirdparty/gritter/images/gritter-blue.png) no-repeat left -30px !important; -} -.gritter-bottom { - background: url(../../thirdparty/gritter/images/gritter-blue.png) no-repeat left bottom !important; -} -.gritter-item { - display: block; - background: url(../../thirdparty/gritter/images/gritter-blue.png) no-repeat left -40px !important; -} -.gritter-close { - background: url(../../thirdparty/gritter/images/gritter-blue.png) no-repeat left top !important; -} -.gritter-title { - text-shadow: none !important; - /* Not supported by IE :( */ - -} -/* for the light (white) version of the gritter notice */ -.gritter-light .gritter-item, -.gritter-light .gritter-bottom, -.gritter-light .gritter-top, -.gritter-light .gritter-close { - background-image: url(../../thirdparty/gritter/images/gritter-light.png) !important; -} -.gritter-item-wrapper a { - color: #18a5ed; -} -.gritter-item-wrapper a:hover { - color: #0b6694; -} -/* begin: boxed page */ -@media (min-width: 992px) { - .page-boxed { - background-color: #125e8b !important; - } - .page-boxed .page-container { - background-color: #1570a6; - border-left: 1px solid #1c98e1; - border-bottom: 1px solid #1c98e1; - } - .page-boxed.page-sidebar-reversed .page-container { - border-left: 0; - border-right: 1px solid #1c98e1; - } - .page-boxed.page-sidebar-fixed .page-container { - border-left: 0; - border-bottom: 0; - } - .page-boxed.page-sidebar-reversed.page-sidebar-fixed .page-container { - border-left: 0; - border-right: 0; - border-bottom: 0; - } - .page-boxed.page-sidebar-fixed .page-sidebar { - border-left: 1px solid #1c98e1; - } - .page-boxed.page-sidebar-reversed.page-sidebar-fixed .page-sidebar { - border-right: 1px solid #1c98e1; - border-left: 0; - } - .page-boxed.page-sidebar-fixed.page-footer-fixed .footer { - background-color: #125e8b !important; - } -} -/* end: boxed page */ -/*** -Landscape phone to portrait tablet -***/ -@media (max-width: 991px) { - /*** - page sidebar - ***/ - .page-sidebar { - background-color: #3d95c9 !important; - } - ul.page-sidebar-menu > li > a { - border-top: 1px solid #187fbd !important; - } - ul.page-sidebar-menu > li:last-child > a { - border-bottom: 0 !important; - } - .page-sidebar .sidebar-search input { - background-color: #3d95c9 !important; - } - ul.page-sidebar-menu > li.open > a{ - border-bottom: 1px solid #187fbd !important; - - } - ul.page-sidebar-menu > li > a:hover/*, - ul.page-sidebar-menu > li:hover > a */{ - background: #0e4b70; - } - ul.page-sidebar-menu > li a i{ - color:#fff !important; - } - ul.page-sidebar-menu > li a{ - color:#fff !important; - } -} diff --git a/openo-portal/portal-common/src/main/webapp/common/css/themes/zteblue_ifrm.css b/openo-portal/portal-common/src/main/webapp/common/css/themes/zteblue_ifrm.css deleted file mode 100644 index bb4a3820..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/css/themes/zteblue_ifrm.css +++ /dev/null @@ -1,206 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*** -light_ifrm theme -***/ -td>a>span[class^="ict-"], td>a>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>div>span[class^="ict-"], td>div>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>div>span>span[class^="ict-"], td>div>span>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>span>span[class^="ict-"], td>span>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -/* button style*/ -.buttonRounded, -.buttonRoundedOver, -.buttonRoundedFocused, -.buttonRoundedFocusedOver, -.buttonRoundedDown, -.buttonRoundedFocusedDown, -.buttonRoundedSelected, -.buttonRoundedSelectedFocused, -.buttonRoundedSelectedDown, -.buttonRoundedSelectedFocusedDown, -.buttonRoundedSelectedOver, -.buttonRoundedSelectedFocusedOver, -.buttonRoundedDisabled, -.buttonRoundedSelectedDisabled { - background-color: #4da9df; - color: #fff; - border: 0px solid #b15a59; - border-radius: 0px; - font-family: Arial, Verdana, sans-serif; - font-size: 12px; - /*padding: 0 3px;*/ - padding-left:7px !important; - padding-right:7px !important; - height:30px !important; -} -.buttonRoundedDisabled, .buttonRoundedSelectedDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} -.buttonRoundedOver, -.buttonRoundedFocusedOver, -.buttonRoundedSelectedFocused, -.buttonRoundedSelectedFocusedOver, -.buttonRoundedDown, -.buttonRoundedFocusedDown { - background-color: #479fd3; - height:30px !important; -} - -.menuButton, -.menuButtonOver, -.menuButtonDown, -.menuButtonDisabled, -.menuButtonFocused, -.menuButtonFocusedDown, -.menuButtonFocusedOver, -.menuButtonSelected, -.menuButtonSelectedDown, -.menuButtonSelectedOver, -.menuButtonSelectedDisabled { - background-color: #4da9df; - border: 0px solid #ababab; - color: #fff; - font-family: Arial, Verdana, sans-serif; - font-size: 12px; - padding-left: 7px !important; - padding-right: 7px !important; - height:30px !important; -} -.menuButtonOver { - background-color: #479fd3; - } -.menuButtonDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} - .buttonTitle, -.buttonTitleOver, -.buttonTitleDown, -.buttonTitleSelected, -.buttonTitleFocused, -.buttonTitleSelectedFocused, -.buttonTitleSelectedOver, -.buttonTitleFocusedOver, -.buttonTitleSelectedFocusedOver, -.buttonTitleSelectedDown, -.buttonTitleFocusedDown, -.buttonTitleSelectedFocusedDown, -.buttonTitleDisabled, -.buttonTitleSelectedDisabled { - color: #fff ; - } - .buttonTitleDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} - /* windowBody dialogBody Style */ - .windowBody, -.dialogBody { - background-color: white; - border: 1px solid #2c9ada; - border-top: 0; -} -.windowHeader, -.dialogHeader { - background-color: #2c9ada; - padding: 0; -} -/* sectionHeader Style */ -.sectionHeaderopened { - background-color: #438eb9; - } - .sectionHeaderclosed { - background-color: #3a85b0; - } - -#dt_example h1{ -color:#438eb9; -font-weight:600 !important; -} - /*cell style*/ -.tallCellOver, -.tallCellOverDark { - background-color: #ffede4; - border-bottom: 1px solid #ffede4; - border-top: 1px solid #ffede4; - } -.tallCellSelected, -.tallCellSelectedDark { - background: #f8dddd; - border-bottom: 1px solid #f8dddd; - border-top: 1px solid #f8dddd; - } -.tallCellSelectedOver, -.tallCellSelectedOverDark { - background: #f8dddd; - border-bottom: 1px solid #f8dddd; - border-top: 1px solid #f8dddd; - } -.imgHeaderButtonOver, -.imgHeaderButtonDown, -.headerButtonOver, -.headerButtonDown, -.sorterButtonOver, -.sorterButtonDown { - background-color: #c4d7e2; - } -.cellSelected, -.cellSelectedDark, -.specialColSelected, -.recordSummaryCellSelected, -.recordSummaryCellSelectedDark { - background: #f8dddd !important; - border-bottom: 1px solid #f8dddd; - border-top: 1px solid #f8dddd; - } -.cellSelectedOver, -.cellSelectedOverDark, -.specialColSelectedOver, -.recordSummaryCellSelectedOver, -.recordSummaryCellSelectedOverDark { - background: #f8dddd !important; - border-bottom: 1px solid #f8dddd; - border-top: 1px solid #f8dddd; -} -.cellOver, -.cellOverDark, -.specialColOver, -.recordSummaryCellOver, -.recordSummaryCellOverDark { - background: #ffede4 !important; - border-bottom: 1px solid #ffede4; - border-top: 1px solid #ffede4; - } -.treeCellOver, -.treeCellOverDark { - background-color: #ffede4; -} diff --git a/openo-portal/portal-common/src/main/webapp/common/css/themes/ztebluelight.css b/openo-portal/portal-common/src/main/webapp/common/css/themes/ztebluelight.css deleted file mode 100644 index 10dda58a..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/css/themes/ztebluelight.css +++ /dev/null @@ -1,450 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*** -Blue theme -***/ -/*** -Reset and overrides -***/ -body { - background-color: #f1f3fa !important; - font-family:"microsoft yahei"; -} -.page-content{ -background-color:#f1f3fa !important; -} -.page-sidebar-menu > li.active > a .selected{ -background-image:url("../../image/sidebar-menu-arrow-bluelight.png") -} -/*** -Page header -***/ -.header { - filter: none !important; - background-image: none !important; - background-color: #3366CC !important; -} -.header .btn-navbar { - background-color: #3366CC!important; -} -.header .navbar-nav .dropdown-toggle:hover, -.header .navbar-nav .dropdown.open .dropdown-toggle { - color: #fff; - background-color: #3061c1 !important; -} -.header .navbar-nav li.dropdown .dropdown-toggle i { - color: white !important; -} -.zte-theme-panel > .toggler:hover { - background-color: #6192f7 !important; -} -.page-content .page-breadcrumb.breadcrumb .dashboard-date-range{ - background-color: #3366CC !important; -} -.btn-group .btn.blue.dropdown-toggle{ - background-color: #3366CC !important; -} -.btn-group .btn.blue.dropdown-toggle:hover{ - background-color: #2f5ebd !important; -} -/*** -Header Search -***/ -.header .search-form { - background-color: #0B4263; -} - -.header .search-form .form-control{ - color: #68bbec; - border: 0; - background-color: #0B4263; -} - -.header .search-form .submit { - background: url(../../image/search-icon-blue.png); -} - -/*** -Hor menu -***/ -.header .hor-menu ul.nav li a { - color: #fff; -} - -.header .hor-menu ul.nav li.open > a, -.header .hor-menu ul.nav li > a:hover, -.header .hor-menu ul.nav li > a:focus { - color: #bdcff4; - background: #3366CC; -} -.header .hor-menu .dropdown-menu li > a { - color: #333 !important ; -} -.header .hor-menu .dropdown-menu li:hover > a{ - color: #3366CC !important; - background: #e5e8f0 !important; -} -.dropdown-menu .mega-menu-content .row .mega-menu-submenu .active > a, -.dropdown-menu .mega-menu-content .row .mega-menu-submenu .active > a:hover{ - color:#333 !important; - background: #D9E5FF !important; -} -.header .hor-menu ul.nav li.active > a, -.header .hor-menu ul.nav li.active > a:hover { - color: #fff; - background: #3366CC !important; -} -.header .hor-menu ul.nav li.current > a, -.header .hor-menu ul.nav li.current > a:hover { - color: #3366CC; - background: #4174dc !important; -} - -.header .hor-menu .dropdown-menu { - background: #fff ; - border: 1px #769be6 solid !important ; - border-top:0 !important ; - border-bottom-right-radius:5px !important ; - border-bottom-left-radius:5px !important ; - padding-right:20px; -} - -.header .hor-menu .hor-menu-search-form-toggler.off { - background: #4d7ee1 url(../../image/hor-menu-search-close-white.png) no-repeat center; -} - -.header .hor-menu .search-form { - background:#4d7ee1; -} - -.header .hor-menu .search-form form input { - color: #ccc; -} -.header .hor-menu .search-form form input::-webkit-input-placeholder { /* WebKit browsers */ - color: #ccc; -} -.header .hor-menu .search-form form input:-moz-placeholder { /* Mozilla Firefox 4 to 18 */ - color: #ccc; -} -.header .hor-menu .search-form form input::-moz-placeholder { /* Mozilla Firefox 19+ */ - color: #ccc; -} -.header .hor-menu .search-form form input:-ms-input-placeholder { /* Internet Explorer 10+ */ - color: #ccc; -} - -.header.navbar .hor-menu ul.nav li.current .selected, -.header.navbar .hor-menu ul.nav li.active .selected { - border-top: 6px solid #3366CC; -} -/*** -Mega Menu -***/ -.mega-menu .mega-menu-submenu { - //border-right: 1px solid #d5d5d5; -} - -.mega-menu .mega-menu-submenu li h3 { - color: #5681DA; - font-weight:600 !important; - -} -/*.mega-menu-dropdown .fa, -#page-f-sidebar-menu .sub-menu .fa, -.sub-menu .sub-menu .fa -{ -display:none; -}去掉左边二级菜单图标*/ -#main_hormenu .mega-menu-dropdown{ -margin-left:30px; -} -/*** -Page sidebar -***/ -.page-sidebar { - background-color: #f1f3fa; -} -ul.page-sidebar-menu > li:last-child > a { - border-bottom: 1px solid transparent !important; -} -.ul.page-sidebar-menu > li a i { - /* color: #0d638f;*/ -} -ul.page-sidebar-menu > li.open > a{ -border-bottom: 1px solid #e0e2e9 !important; -} -ul.page-sidebar-menu > li > a { - border-top: 1px solid #e0e2e9 !important; - /*background: #fff !important;*/ - color: #2e487d !important; -} -ul.page-sidebar-menu > li > a:hover{ - background: #fff !important; - color: #3366CC !important; -} -ul.page-sidebar-menu > li.active > a { - background: #3366CC !important; - border-top-color: transparent !important; - color: #ffffff !important; -} -ul.page-sidebar-menu > li.active > a:hover { - background: #507edb !important; - border-top-color: transparent !important; - color: #ffffff !important; -} -ul.page-sidebar-menu > li.active > a i { - color: #ffffff; -} -ul.page-sidebar-menu > li > ul.sub-menu > li:first-child > a { - border-top: 0px !important; -} -ul.page-sidebar-menu > li > ul.sub-menu > li > a{ - color: #2e487d;/*right menu*/ -} -ul.page-sidebar-menu > li > ul.sub-menu > li.active > a { - color: #3366CC !important; - background: #dde2f1 !important; -} -ul.page-sidebar-menu > li > ul.sub-menu > li.active > a:hover { - background: #e3e7f5 !important; -} -ul.page-sidebar-menu > li > ul.sub-menu > li > a:hover { - background: #eee !important; - color:#3366CC; -} -ul.page-sidebar-menu > li.open > a{ - color:#fff; - } -/* 3rd level sub menu */ -ul.page-sidebar-menu > li > ul.sub-menu li > ul.sub-menu > li.active > a, -ul.page-sidebar-menu > li > ul.sub-menu li > ul.sub-menu > li > a:hover, -ul.page-sidebar-menu > li > ul.sub-menu li.open > a { - color: #3366CC !important; - background: #fff !important; -} -/* font color for all sub menu links*/ -ul.page-sidebar-menu li > ul.sub-menu > li > a { - /*color: #c3e4f7;*/ -} -/* menu arrows */ -ul.page-sidebar-menu > li > a .arrow:before, -ul.page-sidebar-menu > li > a .arrow.open:before { - /*color: #51b1e9 !important;*/ -} -ul.page-sidebar-menu > li > ul.sub-menu a .arrow:before, -ul.page-sidebar-menu > li > ul.sub-menu a .arrow.open:before { - color: #3ba6e6 !important; -} -ul.page-sidebar-menu > li > a > .arrow.open:before { - color: #68bbec !important; -} -ul.page-sidebar-menu > li.active > a .arrow:before, -ul.page-sidebar-menu > li.active > a .arrow.open:before { - color: #ffffff !important; -} -/* sidebar search */ -.page-sidebar .sidebar-search input { - background-color: #0f5179 !important; - color: #000000; -} -.page-sidebar .sidebar-search input::-webkit-input-placeholder { - color: #000000 !important; -} -.page-sidebar .sidebar-search input:-moz-placeholder { - color: #000000 !important; -} -.page-sidebar .sidebar-search input:-ms-input-placeholder { - color: #000000 !important; -} -.page-sidebar .sidebar-search input { - background-color: #eeeeee !important; - /*color: white !important;*/ -} -.page-sidebar .sidebar-search .input-box { - border-bottom: 1px solid #000000 !important; -} -.page-sidebar .sidebar-search .submit { - background-image: url(../../image/search-icon-blue.png); -} -/*** -Sidebar toggler -***/ -.sidebar-toggler { - background-image: url(../../image/sidebar-toggler-grey.jpg); - background-color: #0f5179; -} -/* search box bg color on expanded */ -.page-sidebar-closed .page-sidebar .sidebar-search.open .form-container { - background-color: #3366CC !important; -} -.page-sidebar-closed .page-sidebar .sidebar-search.open .form-container .remove { - background-image: url("../../image/sidebar-search-close-blue.png"); -} -/* sub menu bg color on hover menu item */ -.page-sidebar-closed ul.page-sidebar-menu > li:hover .sub-menu { - background-color: #e4e4e4; -} -/*** -Footer -***/ -.footer .footer-inner { - color: #7c7c7c; -} -.footer .footer-tools .go-top { - background-color: #1985c6; -} -.footer .footer-tools .go-top:hover { - opacity: 0.7; - filter: alpha(opacity=70); -} -.footer .footer-tools .go-top i { - color: #68bbec; -} -/*** -Footer Layouts (new in v1.3) -***/ -/* begin:fixed footer */ -.page-footer-fixed .footer { - background-color: #0f5179; -} -.page-footer-fixed .footer .footer-inner { - color: #68bbec; -} -.page-footer-fixed .footer .footer-tools .go-top { - background-color: #1985c6; -} -.page-footer-fixed .footer .footer-tools .go-top i { - color: #68bbec; -} -/* end:fixed footer */ -/*** -Gritter Notifications -***/ -.gritter-top { - background: url(../../thirdparty/gritter/images/gritter-blue.png) no-repeat left -30px !important; -} -.gritter-bottom { - background: url(../../thirdparty/gritter/images/gritter-blue.png) no-repeat left bottom !important; -} -.gritter-item { - display: block; - background: url(../../thirdparty/gritter/images/gritter-blue.png) no-repeat left -40px !important; -} -.gritter-close { - background: url(../../thirdparty/gritter/images/gritter-blue.png) no-repeat left top !important; -} -.gritter-title { - text-shadow: none !important; - /* Not supported by IE :( */ - -} -/* for the light (white) version of the gritter notice */ -.gritter-light .gritter-item, -.gritter-light .gritter-bottom, -.gritter-light .gritter-top, -.gritter-light .gritter-close { - background-image: url(../../thirdparty/gritter/images/gritter-light.png) !important; -} -.gritter-item-wrapper a { - color: #18a5ed; -} -.gritter-item-wrapper a:hover { - color: #0b6694; -} -/* begin: boxed page */ -@media (min-width: 992px) { - .page-boxed { - background-color: #fff !important; - } - .page-boxed .page-container { - background-color: #fff; - border-left: 1px solid #1c98e1; - border-bottom: 1px solid #1c98e1; - } - .page-boxed.page-sidebar-reversed .page-container { - border-left: 0; - border-right: 1px solid #1c98e1; - } - .page-boxed.page-sidebar-fixed .page-container { - border-left: 0; - border-bottom: 0; - } - .page-boxed.page-sidebar-reversed.page-sidebar-fixed .page-container { - border-left: 0; - border-right: 0; - border-bottom: 0; - } - .page-boxed.page-sidebar-fixed .page-sidebar { - border-left: 1px solid #1c98e1; - } - .page-boxed.page-sidebar-reversed.page-sidebar-fixed .page-sidebar { - border-right: 1px solid #1c98e1; - border-left: 0; - } - .page-boxed.page-sidebar-fixed.page-footer-fixed .footer { - background-color: #125e8b !important; - } -ul.page-sidebar-menu > li .active> a{ - background: #3366CC !important; -} -/* end: boxed page */ -/*** -Landscape phone to portrait tablet -***/ -@media (max-width: 991px) { - /*** - page sidebar - ***/ - .page-sidebar { - background-color: #f1f3fa !important; - } - ul.page-sidebar-menu > li > a { - border-top: 1px solid #e0e2e9 !important; - - } - ul.page-sidebar-menu > li > a :hover{ - border-top: 1px solid #e0e2e9 !important; - color: #fff !important; - } - ul.page-sidebar-menu > li:last-child > a { - border-bottom: 0 !important; - } - .page-sidebar .sidebar-search input { - background-color: #4072d6 !important; - color:#c5c5c7 !important; - } - .page-sidebar .sidebar-search input::-webkit-input-placeholder { - color: #c5c5c7 !important; -} - .page-sidebar .sidebar-search input:-moz-placeholder { - color: #c5c5c7 !important; -} - .page-sidebar .sidebar-search input:-ms-input-placeholder { - color: #c5c5c7 !important; -} - ul.page-sidebar-menu > li.open > a, - ul.page-sidebar-menu > li.open > a:hover, - ul.page-sidebar-menu > li > a:hover{ - background: #3366CC !important; - } - ul.page-sidebar-menu > li > a:hover, - ul.page-sidebar-menu > li:hover > a { - background: #fff !important; - } - ul.page-sidebar-menu li > ul.sub-menu > li > a { - color: #3366CC; -} - diff --git a/openo-portal/portal-common/src/main/webapp/common/css/themes/ztebluelight2.css b/openo-portal/portal-common/src/main/webapp/common/css/themes/ztebluelight2.css deleted file mode 100644 index 6e16c8e1..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/css/themes/ztebluelight2.css +++ /dev/null @@ -1,520 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*** -Blue theme -***/ -/*** -Reset and overrides -***/ -body { - background-color: #f9f9f9 !important; - font-family: "microsoft yahei" !important; -} - -.page-content { - background-color: #f1f3fa !important; -} - -/*** -Page header -***/ -.header { - filter: none !important; - /*background-image: none !important;*/ - background-color: #1178ee !important; - /* background: -webkit-linear-gradient(#37c4fa, #0081bb ); - background: -o-linear-gradient(#37c4fa, #0081bb ); - background: -moz-linear-gradient(#37c4fa, #0081bb ); - background: linear-gradient(#37c4fa, #0081bb ); */ -} - -.header .btn-navbar { - background-color: #f9f9f9 !important; -} - -.header .navbar-nav .dropdown-toggle:hover, -.header .navbar-nav .dropdown.open .dropdown-toggle { - color: #fff; - background-color: #1470d8 !important; -} - -.zte-theme-panel > .toggler:hover { - background-color: #70abcd !important; -} - -.header .navbar-nav li.dropdown .dropdown-toggle i { - color: #fff !important; -} - -.btn-group .btn.blue.dropdown-toggle { - background-color: #1178EE !important; -} - -.btn-group .btn.blue.dropdown-toggle:hover { - background-color: #0f70df !important; -} - -/*** -Header Search -***/ -.header .search-form { - background-color: #0B4263; -} - -.header .search-form .form-control { - color: #68bbec; - border: 0; - background-color: #0B4263; -} - -.header .search-form .submit { - background: url(../../image/search-icon-blue.png); -} - -/*** -Hor menu -***/ -.header .hor-menu ul.nav li a { - color: #fff; -} - -.header .hor-menu ul.nav li.open > a, -.header .hor-menu ul.nav li > a:hover, -.header .hor-menu ul.nav li > a:focus { - color: #D4E9F2; - background-color: #1178ee; - /*background: -webkit-linear-gradient(#37c4fa, #0081bb ); - background: -o-linear-gradient(#37c4fa, #0081bb ); - background: -moz-linear-gradient(#37c4fa, #0081bb ); - background: linear-gradient(#37c4fa, #0081bb );*/ -} - -.header.navbar .hor-menu ul.nav li.current .selected, -.header.navbar .hor-menu ul.nav li.active .selected { - border-top: 6px solid #0081bb; -} - -.header .hor-menu .dropdown-menu li:hover > a, -.header .hor-menu ul.nav li.active > a, -.header .hor-menu ul.nav li.active > a:hover { - color: #fff; - /*background: -webkit-linear-gradient(#37c4fa, #0081bb ); - background: -o-linear-gradient(#37c4fa, #0081bb ); - background: -moz-linear-gradient(#37c4fa, #0081bb ); - background: linear-gradient(#37c4fa, #0081bb );*/ -} - -.header.navbar .hor-menu ul.nav li.current .selected, -.header.navbar .hor-menu ul.nav li.active .selected { - border-top: 6px solid #0081bb; -} - -.header .hor-menu ul.nav li.current > a, -.header .hor-menu ul.nav li.current > a:hover { - color: #fff; - background: #e02222 !important; -} - -.header .hor-menu .dropdown-menu { - background: #1178EE; -} - -.header .hor-menu .dropdown-menu li > a { - color: #ccc; -} - -.header .hor-menu .hor-menu-search-form-toggler.off { - background: #126ed8 url(../../image/hor-menu-search-close-white.png) no-repeat center; -} - -.header .hor-menu .search-form { - background: #126ed8; -} - -.header .hor-menu .search-form form input { - color: #ccc; -} - -.header .hor-menu .search-form .btn { - color: #ccc; - background: url(../../image/search-icon-white.png) no-repeat center; -} - -.header .hor-menu .search-form form input::-webkit-input-placeholder { - /* WebKit browsers */ - color: #ccc; -} - -.header .hor-menu .search-form form input:-moz-placeholder { - /* Mozilla Firefox 4 to 18 */ - color: #ccc; -} - -.header .hor-menu .search-form form input::-moz-placeholder { - /* Mozilla Firefox 19+ */ - color: #ccc; -} - -.header .hor-menu .search-form form input:-ms-input-placeholder { - /* Internet Explorer 10+ */ - color: #ccc; -} - -.dropdown-menu .mega-menu-content .row .mega-menu-submenu li:hover > a { - color: #fff !important; - background: #388ef1 !important; -} - -.dropdown-menu .mega-menu-content .row .mega-menu-submenu .active > a, -.dropdown-menu .mega-menu-content .row .mega-menu-submenu .active > a:hover { - color: #fff !important; - background: #0e6ad4 !important; -} - -/*** -Mega Menu -***/ -.mega-menu .mega-menu-submenu { - border-right: 1px solid #1876AD; -} - -.mega-menu .mega-menu-submenu li h3 { - color: #fff; - font-family: "microsoft yahei" -} - -/*** -Page sidebar -***/ -.page-sidebar { - background-color: #f9f9f9; -} - -ul.page-sidebar-menu > li > a { - border-top: 1px solid #e5e5e5 !important; - color: #616161 !important; - border-left: 3px solid transparent !important; -} - -ul.page-sidebar-menu > li > a:hover { - color: #1178EE !important; - background-color: #eee; -} - -ul.page-sidebar-menu > li:last-child > a { - border-bottom: 1px solid #e5e5e5 !important; -} - -/*ul.page-sidebar-menu > li a i { - color: #e5e5e5 ! important; -}*/ -ul.page-sidebar-menu ul.sub-menu > li > a { - color: #616161 !important; -} - -ul.page-sidebar-menu ul.sub-menu > li.active > a { - color: #1178EE !important; -} - -ul.page-sidebar-menu ul.sub-menu > li > a:hover { - color: #1178EE !important; - background-color: #eee; -} - -ul.page-sidebar-menu > li > a:hover, -ul.page-sidebar-menu > li:hover > a { - background: #fff; - color: #585858; - border-left: 3px solid #1178ee !important; -} - -ul.page-sidebar-menu > li.open > a { - background: #fff; - color: #585858; - border-bottom: 1px solid #e5e5e5 !important; -} - -ul.page-sidebar-menu > li.active > a { - background: #fff !important; - border-top: 1px solid #e5e5e5 !important; - color: #1178ee !important; - font-weight: bold; -} - -ul.page-sidebar-menu > li.active > a i { - color: #1178ee; -} - -ul.page-sidebar-menu > li > ul.sub-menu > li:first-child > a { - /* border-top: 1px solid #e5e5e5 !important;*/ -} - -ul.page-sidebar-menu > li > ul.sub-menu > li.active > a -ul.page-sidebar-menu > li > ul.sub-menu > li > a:hover { - color: #4b88b7 !important; -} - -ul.page-sidebar-menu > li > ul.sub-menu > li > a:hover { - /* background: #1b8fd3 !important;*/ -} - -/* 3rd level sub menu */ -ul.page-sidebar-menu > li > ul.sub-menu li > ul.sub-menu > li.active > a, -ul.page-sidebar-menu > li > ul.sub-menu li > ul.sub-menu > li > a:hover, -ul.page-sidebar-menu > li > ul.sub-menu li.open > a { - color: #ffffff !important; - border-bottom: 1px solid #e5e5e5 !important; -} - -.page-sidebar-menu > li.active > a .selected { - /* background-image: url(../../image/sidebar-menu-arrow-blue.png) !important;*/ - border-right: 2px solid #1178ee !important; - height: 37px !important; - top: 2px !important; -} - -/* font color for all sub menu links*/ -ul.page-sidebar-menu li > ul.sub-menu > li > a { - /*color: #c3e4f7;*/ -} - -/* menu arrows */ -ul.page-sidebar-menu > li > a .arrow:before, -ul.page-sidebar-menu > li > a .arrow.open:before { - /*color: #51b1e9 !important;*/ -} - -ul.page-sidebar-menu > li > ul.sub-menu a .arrow:before, -ul.page-sidebar-menu > li > ul.sub-menu a .arrow.open:before { - color: #3ba6e6 !important; -} - -ul.page-sidebar-menu > li > a > .arrow.open:before { - /* color: #68bbec !important;*/ -} - -/*ul.page-sidebar-menu > li.active > a .arrow:before, -ul.page-sidebar-menu > li.active > a .arrow.open:before { - color: #ffffff !important; -}*/ -/* sidebar search */ -.page-sidebar .sidebar-search input { - background-color: #0f5179 !important; - color: #1178ee; -} - -.page-sidebar .sidebar-search input::-webkit-input-placeholder { - color: #1178ee !important; -} - -.page-sidebar .sidebar-search input:-moz-placeholder { - color: #1178ee !important; -} - -.page-sidebar .sidebar-search input:-ms-input-placeholder { - color: #1178ee !important; -} - -.page-sidebar .sidebar-search input { - background-color: #f9f9f9 !important; - /* color: #bfbfbf !important;*/ -} - -.page-sidebar .sidebar-search .input-box { - border-bottom: 1px solid #1178ee !important; -} - -.page-sidebar .sidebar-search .submit { - background-image: url(../../image/search-icon-blue.png); -} - -/*** -Sidebar toggler -***/ -.sidebar-toggler { - background-image: url(../../image/sidebar-toggler-grey.jpg); - background-color: #0f5179; -} - -/* search box bg color on expanded */ -.page-sidebar-closed .page-sidebar .sidebar-search.open .form-container { - background-color: #f9f9f9 !important; -} - -.page-sidebar-closed .page-sidebar .sidebar-search.open .form-container .remove { - background-image: url("../../image/sidebar-search-close-blue.png"); -} - -/* sub menu bg color on hover menu item */ -.page-sidebar-closed ul.page-sidebar-menu > li:hover .sub-menu { - background-color: #f9f9f9; -} - -/*** -Footer -***/ -.footer .footer-inner { - color: #7c7c7c; -} - -.footer .footer-tools .go-top { - background-color: #1985c6; -} - -.footer .footer-tools .go-top:hover { - opacity: 0.7; - filter: alpha(opacity=70); -} - -.footer .footer-tools .go-top i { - color: #68bbec; -} - -/*** -Footer Layouts (new in v1.3) -***/ -/* begin:fixed footer */ -.page-footer-fixed .footer { - background-color: #0f5179; -} - -.page-footer-fixed .footer .footer-inner { - color: #68bbec; -} - -.page-footer-fixed .footer .footer-tools .go-top { - background-color: #1985c6; -} - -.page-footer-fixed .footer .footer-tools .go-top i { - color: #68bbec; -} - -/* end:fixed footer */ -/*** -Gritter Notifications -***/ -.gritter-top { - background: url(../../thirdparty/gritter/images/gritter-blue.png) no-repeat left -30px !important; -} - -.gritter-bottom { - background: url(../../thirdparty/gritter/images/gritter-blue.png) no-repeat left bottom !important; -} - -.gritter-item { - display: block; - background: url(../../thirdparty/gritter/images/gritter-blue.png) no-repeat left -40px !important; -} - -.gritter-close { - background: url(../../thirdparty/gritter/images/gritter-blue.png) no-repeat left top !important; -} - -.gritter-title { - text-shadow: none !important; - /* Not supported by IE :( */ - -} - -/* for the light (white) version of the gritter notice */ -.gritter-light .gritter-item, -.gritter-light .gritter-bottom, -.gritter-light .gritter-top, -.gritter-light .gritter-close { - background-image: url(../../thirdparty/gritter/images/gritter-light.png) !important; -} - -.gritter-item-wrapper a { - color: #18a5ed; -} - -.gritter-item-wrapper a:hover { - color: #0b6694; -} - -/* begin: boxed page */ -@media (min-width: 992px) { - .page-boxed { - background-color: #125e8b !important; - } - - .page-boxed .page-container { - background-color: #1570a6; - border-left: 1px solid #1c98e1; - border-bottom: 1px solid #1c98e1; - } - - .page-boxed.page-sidebar-reversed .page-container { - border-left: 0; - border-right: 1px solid #1c98e1; - } - - .page-boxed.page-sidebar-fixed .page-container { - border-left: 0; - border-bottom: 0; - } - - .page-boxed.page-sidebar-reversed.page-sidebar-fixed .page-container { - border-left: 0; - border-right: 0; - border-bottom: 0; - } - - .page-boxed.page-sidebar-fixed .page-sidebar { - border-left: 1px solid #1c98e1; - } - - .page-boxed.page-sidebar-reversed.page-sidebar-fixed .page-sidebar { - border-right: 1px solid #1c98e1; - border-left: 0; - } - - .page-boxed.page-sidebar-fixed.page-footer-fixed .footer { - background-color: #125e8b !important; - } -} - -/* end: boxed page */ -/*** -Landscape phone to portrait tablet -***/ -@media (max-width: 991px) { - /*** - page sidebar - ***/ - .page-sidebar { - background-color: #f9f9f9 !important; - } - - ul.page-sidebar-menu > li > a { - border-top: 1px solid #e5e5e5 !important; - } - - ul.page-sidebar-menu > li:last-child > a { - border-bottom: 0 !important; - } - - .page-sidebar .sidebar-search input { - background-color: #f9f9f9 !important; - } - - ul.page-sidebar-menu > li.open > a, - ul.page-sidebar-menu > li > a:hover, - ul.page-sidebar-menu > li:hover > a { - background: #fff; - } -} diff --git a/openo-portal/portal-common/src/main/webapp/common/css/themes/ztebluelight2_ifrm.css b/openo-portal/portal-common/src/main/webapp/common/css/themes/ztebluelight2_ifrm.css deleted file mode 100644 index 2c2ef5ea..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/css/themes/ztebluelight2_ifrm.css +++ /dev/null @@ -1,229 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*** -ztebluelight2_ifrm theme -***/ -body{ - background-color: white!important; -} - -td>a>span[class^="ict-"], td>a>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>div>span[class^="ict-"], td>div>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>div>span>span[class^="ict-"], td>div>span>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>span>span[class^="ict-"], td>span>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -/* button style*/ -.buttonRounded, -.buttonRoundedOver, -.buttonRoundedFocused, -.buttonRoundedFocusedOver, -.buttonRoundedDown, -.buttonRoundedFocusedDown, -.buttonRoundedSelected, -.buttonRoundedSelectedFocused, -.buttonRoundedSelectedDown, -.buttonRoundedSelectedFocusedDown, -.buttonRoundedSelectedOver, -.buttonRoundedSelectedFocusedOver, -.buttonRoundedDisabled, -.buttonRoundedSelectedDisabled { - background-color: #1095cd; - color: #fff; - border: 0px solid #b15a59; - border-radius: 0px; - font-family: Arial, Verdana, sans-serif; - font-size: 12px; - /*padding: 0 3px;*/ - padding-left:7px !important; - padding-right:7px !important; - height:30px !important; -} -.buttonRoundedDisabled, .buttonRoundedSelectedDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} -.buttonRoundedOver, -.buttonRoundedFocusedOver, -.buttonRoundedSelectedFocused, -.buttonRoundedSelectedFocusedOver, -.buttonRoundedDown, -.buttonRoundedFocusedDown { - background-color: #3a85b0; - height:30px !important; -} - -.menuButton, -.menuButtonOver, -.menuButtonDown, -.menuButtonDisabled, -.menuButtonFocused, -.menuButtonFocusedDown, -.menuButtonFocusedOver, -.menuButtonSelected, -.menuButtonSelectedDown, -.menuButtonSelectedOver, -.menuButtonSelectedDisabled { - background-color: #0081bb; - border: 0px solid #ababab; - color: #fff; - font-family: Arial, Verdana, sans-serif; - font-size: 12px; - padding-left: 7px !important; - padding-right: 7px !important; - height:30px !important; -} -.menuButtonOver { - background-color: #3a85b0; - } -.menuButtonDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} - .buttonTitle, -.buttonTitleOver, -.buttonTitleDown, -.buttonTitleSelected, -.buttonTitleFocused, -.buttonTitleSelectedFocused, -.buttonTitleSelectedOver, -.buttonTitleFocusedOver, -.buttonTitleSelectedFocusedOver, -.buttonTitleSelectedDown, -.buttonTitleFocusedDown, -.buttonTitleSelectedFocusedDown, -.buttonTitleDisabled, -.buttonTitleSelectedDisabled { - color: #fff ; - } - .buttonTitleDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} - /* windowBody dialogBody Style */ - .windowBody, -.dialogBody { - background-color: white; - border: 1px solid #0081bb; - border-top: 0; -} -.windowHeader, -.dialogHeader { - background-color: #0081bb; - padding: 0; -} -/* sectionHeader Style */ -.sectionHeaderopened { - background-color: #0081bb; - } - .sectionHeaderclosed { - background-color: #3a85b0; - } - -#dt_example h1{ -color:#0081bb; -font-weight:600 !important; -} -/*cell style*/ -.tallCellOver, -.tallCellOverDark { - background-color: #d9e3e8; - border-bottom: 1px solid #d9e3e8; - border-top: 1px solid #d9e3e8; - } -.tallCellSelected, -.tallCellSelectedDark { - background: #c4d7e2; - border-bottom: 1px solid #c4d7e2; - border-top: 1px solid #c4d7e2; - } -.tallCellSelectedOver, -.tallCellSelectedOverDark { - background: #c4d7e2; - border-bottom: 1px solid #c4d7e2; - border-top: 1px solid #c4d7e2; - } -.imgHeaderButtonOver, -.imgHeaderButtonDown, -.headerButtonOver, -.headerButtonDown, -.sorterButtonOver, -.sorterButtonDown { - background-color: #c4d7e2; - } -.cellSelected, -.cellSelectedDark, -.specialColSelected, -.recordSummaryCellSelected, -.recordSummaryCellSelectedDark { - background: #c4d7e2 !important; - border-bottom: 1px solid #c4d7e2; - border-top: 1px solid #c4d7e2; - } -.cellSelectedOver, -.cellSelectedOverDark, -.specialColSelectedOver, -.recordSummaryCellSelectedOver, -.recordSummaryCellSelectedOverDark { - background: #c4d7e2 !important; - border-bottom: 1px solid #c4d7e2; - border-top: 1px solid #c4d7e2; -} -.cellOver, -.cellOverDark, -.specialColOver, -.recordSummaryCellOver, -.recordSummaryCellOverDark { - background: #d9e3e8 !important; - border-bottom: 1px solid #d9e3e8; - border-top: 1px solid #d9e3e8; - } -.treeCellOver, -.treeCellOverDark { - background-color: #d9e3e8; -} -/*日志管理的蓝色大圆角筛选按é’?/ -.blue { - background-color: #fff; - color:#1095cd; - } -.blue:hover { - background-color: #e8f3fd; - color:#5b9bd1; - } -.blue.selected{ - border:0; - background-color: #1178EE; - color:#fff; -} -.blue.selected:hover{ - border:0; - background-color: #1178EE; - color:#fff; -} diff --git a/openo-portal/portal-common/src/main/webapp/common/css/themes/ztebluelight3.css b/openo-portal/portal-common/src/main/webapp/common/css/themes/ztebluelight3.css deleted file mode 100644 index da9c959a..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/css/themes/ztebluelight3.css +++ /dev/null @@ -1,497 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*** -light theme -***/ - -/*** -Reset and overrides -***/ -body { - background-color: #eeeeee !important; -} -/*** -Page header -***/ -.header { - background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #3993ba), color-stop(50%, #1f88b3), color-stop(100%, #067ead)); - background-image: -moz-linear-gradient(top, #3993ba 0%, #1f88b3 50%, #067ead 100%); - background-image: -o-linear-gradient(top, #3993ba 0%, #1f88b3 50%, #067ead 100%); - background-image: linear-gradient(top, #3993ba 0%, #1f88b3 50%, #067ead 100%); - background-color: #1584b0 ; -} -.header .btn-navbar { - background-color: #434343 !important; -} -.header .navbar-nav .dropdown-toggle:hover, -.header .navbar-nav .dropdown.open .dropdown-toggle { - background-color: #4399bd !important; -} -.header .navbar-nav li.dropdown .dropdown-toggle i { - color: #ffffff !important; -} -.zte-theme-panel > .toggler:hover { - background-color: #54aacf !important; -} -.btn-group .btn.blue.dropdown-toggle{ -background-color: #428bca !important; -} -.page-content .page-breadcrumb.breadcrumb{ -background-color:#F5F5F5 !important; -} -/*** -Header Search -***/ -.header .search-form { - background-color: #3a3a3a; -} - -.header .search-form .form-control{ - color: #ccc; - border: 0; - background-color: #3a3a3a; -} - -.header .search-form .submit { - background: url(../../image/search-icon.png); -} - -/*** -Hor menu -***/ -.header .hor-menu ul.nav li a { - color: #ccc; -} - -.header .hor-menu ul.nav li.open > a, -.header .hor-menu ul.nav li > a:hover, -.header .hor-menu ul.nav li > a:focus { - color: #fff; - background: #4399bd; -} - -.header .hor-menu .dropdown-menu li:hover > a, -.header .hor-menu ul.nav li.active > a, -.header .hor-menu ul.nav li.active > a:hover { - color: #fff; - background: #136c8f !important; -} -.header.navbar .hor-menu ul.nav li.current .selected, -.header.navbar .hor-menu ul.nav li.active .selected { - border-top: 6px solid #136c8f; - } -.header .hor-menu ul.nav li.current > a, -.header .hor-menu ul.nav li.current > a:hover { - color: #fff; - background: #e02222 !important; -} - -.header .hor-menu .dropdown-menu { - background: #4399bd; -} -.header .hor-menu .dropdown-menu li > a { - color: #ccc; -} - -.header .hor-menu .hor-menu-search-form-toggler.off { - background: #4399bd url(../../image/hor-menu-search-close-white.png) no-repeat center; -} - -.header .hor-menu .search-form { - background:#4399bd; -} - -.header .hor-menu .search-form form input { - color: #ccc; -} - -.header .hor-menu .search-form .btn { - color: #ccc; - background: url(../../image/search-icon-white.png) no-repeat center; -} - -.header .hor-menu .search-form form input::-webkit-input-placeholder { /* WebKit browsers */ - color: #ccc; -} -.header .hor-menu .search-form form input:-moz-placeholder { /* Mozilla Firefox 4 to 18 */ - color: #ccc; -} -.header .hor-menu .search-form form input::-moz-placeholder { /* Mozilla Firefox 19+ */ - color: #ccc; -} -.header .hor-menu .search-form form input:-ms-input-placeholder { /* Internet Explorer 10+ */ - color: #ccc; -} - -/*** -Mega Menu -***/ -.mega-menu .mega-menu-submenu { - border-right: 1px solid #656565; -} - -.mega-menu .mega-menu-submenu li h3 { - color: #fff; -} - -/*** -Page sidebar -***/ -/*.page-content { - border-left: 1px solid #e2e2e2 !important; - border-bottom: 1px solid #e2e2e2 !important;*/ -} -.page-sidebar-reversed .page-content { - border-left: 0; - border-right: 1px solid #e2e2e2 !important; -} -.page-sidebar { - background-color: #eeeeee; -} -.page-sidebar-fixed .page-content { - border: 0 !important; -} -.page-sidebar-fixed .page-sidebar { - border-right: 1px solid #e2e2e2 !important; -} - - -ul.page-sidebar-menu > li > a { - border-top: 1px solid #ececec !important; - border-bottom: 1px solid #cccccc !important; - color: #000 !important; - font-weight: 400; - background-color: #e0e0e0 !important; -} - -ul.page-sidebar-menu > li:first-child > a { - border-top: 1px solid transparent !important; -} - -ul.page-sidebar-menu > li:last-child > a { - border-bottom: 1px solid transparent !important; -} - -ul.page-sidebar-menu > li a i { - color: #000000 !important; -} -ul.page-sidebar-menu > li.open > a, -ul.page-sidebar-menu > li > a:hover, -ul.page-sidebar-menu > li:hover > a { - background: #eee; - border-top: 1px solid #e8e8e8; -} -/*ul.page-sidebar-menu > li.active > a .selected { - right:-7px; - top:0px; - width: 7px; - height: 39px; - background-image: url("../../image/sidebar-menu-arrow-green.png"); -} */ -.page-sidebar-reversed ul.page-sidebar-menu > li.active > a .selected { - right: auto; - left:-7px; - background-image: url("../../image/sidebar-menu-arrow-green-reverse.png"); -} -ul.page-sidebar-menu > li.active i { - color: #fff !important; -} -.page-sidebar-fixed ul.page-sidebar-menu > li.active > a .selected { - display: none; -} -ul.page-sidebar-menu > li.active > a{ - background: #428bca !important; - border-top-color: transparent !important; - color:#fff!important; -} -ul.page-sidebar-menu > li.active > a i { - color: #fff; -} -ul.page-sidebar-menu > li > a > .arrow:before, -ul.page-sidebar-menu > li > a > .arrow.open:before { - color: #ccc !important; -} -ul.page-sidebar-menu > li.active > a .arrow:before, -ul.page-sidebar-menu > li.active > a .arrow.open:before { - color: #fff !important; -} -ul.page-sidebar-menu > li > ul.sub-menu > li:first-child > a { - border-top: 0px !important; -} - -ul.page-sidebar-menu ul.sub-menu > li > a { - font-weight: 400 !important; - color: #333 !important; -} -ul.page-sidebar-menu ul.sub-menu > li.active > a, -ul.page-sidebar-menu ul.sub-menu > li > a:hover { - color: #818181 !important; - background: #efefef !important; -} - -ul.page-sidebar-menu > li > ul.sub-menu a .arrow:before, -ul.page-sidebar-menu > li > ul.sub-menu a .arrow.open:before { - color: #ccc !important; -} - -/* sub menu links effects */ -ul.page-sidebar-menu ul.sub-menu > li.active > a, -ul.page-sidebar-menu ul.sub-menu > li.active > a:hover{ - color: #000 !important; - background: #dbe6ea !important; -} -ul.page-sidebar-menu ul.sub-menu > li > a:hover, -ul.page-sidebar-menu ul.sub-menu > li.open > a { - color: #000000 !important; - background: #e7e7e7 !important; -} -ul.page-sidebar-menu ul.sub-menu > li > a i { - color: #000000 !important; -} - -/* sidebar search */ -.page-sidebar .sidebar-search input { - background-color: #eeeeee !important; - color: #727272 !important; -} -.page-sidebar .sidebar-search input::-webkit-input-placeholder { - color: #aaa !important; -} -.page-sidebar .sidebar-search input:-moz-placeholder { - color: #aaa !important; -} -.page-sidebar .sidebar-search input:-ms-input-placeholder { - color: #aaa !important; -} -.page-sidebar .sidebar-search .input-box { - border-bottom: 1px solid #e2e2e2 !important; -} -.page-sidebar .sidebar-search .submit { - background-image: url(../../image/search-icon-white.png); -} - -/*** -Sidebar toggler -***/ -.sidebar-toggler { - background-image: url(../../image/sidebar-toggler-light.jpg); - background-color: #333; -} -/* search box bg color on expanded */ -.page-sidebar-closed .page-sidebar .sidebar-search.open .form-container { - background-color: #fbfbfb !important; -} -.page-sidebar-closed .page-sidebar .sidebar-search.open .form-container .remove { - background-image: url("../../image/sidebar-search-close-light.png"); -} -/* sub menu bg color on hover menu item */ -.page-sidebar-closed ul.page-sidebar-menu > li:hover .sub-menu { - background-color: #eeeeee; -} -/*** -Footer -***/ -.footer .footer-inner { - color: #333333; -} -.footer .footer-tools .go-top { - background-color: #666666; -} -.footer .footer-tools .go-top:hover { - opacity: 0.7; - filter: alpha(opacity=70); -} -.footer .footer-tools .go-top i { - color: #999999; -} -/*** -Footer Layouts (new in v1.3) -***/ -/* begin:fixed footer */ -.page-footer-fixed .footer { - background-color: #434343; -} -.page-footer-fixed .footer .footer-inner { - color: #aaaaaa; -} -.page-footer-fixed .footer .footer-tools .go-top { - background-color: #666666; -} -.page-footer-fixed .footer .footer-tools .go-top i { - color: #aaaaaa; -} -/* end:fixed footer */ -/*** -Gritter Notifications -***/ -.gritter-top { - background: url(../../thirdparty/gritter/images/gritter.png) no-repeat left -30px !important; -} -.gritter-bottom { - background: url(../../thirdparty/gritter/images/gritter.png) no-repeat left bottom !important; -} -.gritter-item { - display: block; - background: url(../../thirdparty/gritter/images/gritter.png) no-repeat left -40px !important; -} -.gritter-close { - background: url(../../thirdparty/gritter/images/gritter.png) no-repeat left top !important; -} -.gritter-title { - text-shadow: none !important; - /* Not supported by IE :( */ - -} -/* for the light (white) version of the gritter notice */ -.gritter-light .gritter-item, -.gritter-light .gritter-bottom, -.gritter-light .gritter-top, -.gritter-light .gritter-close { - background-image: url(../../thirdparty/gritter/images/gritter-light.png) !important; -} -.gritter-item-wrapper a { - color: #18a5ed; -} -.gritter-item-wrapper a:hover { - color: #0b6694; -} -/* begin: boxed page */ -@media (min-width: 992px) { - .page-boxed { - background-color: #E8E8E8 !important; - } - .page-boxed .page-container { - background-color: #eeeeee; - border-left: 1px solid #e2e2e2; - border-bottom: 1px solid #e2e2e2; - } - .page-sidebar-reversed.page-boxed .page-container { - border-left: 0; - border-right: 1px solid #e2e2e2; - } - .page-boxed.page-sidebar-fixed .page-container { - border-left: 0; - border-bottom: 0; - } - .page-boxed.page-sidebar-fixed .page-sidebar { - border-left: 1px solid #e2e2e2; - } - .page-boxed.page-sidebar-reversed.page-sidebar-fixed .page-sidebar { - border-right: 1px solid #e2e2e2; - border-left: 0; - } - .page-boxed.page-sidebar-fixed.page-footer-fixed .footer { - background-color: #E8E8E8 !important; - } -} -/* end: boxed page */ -/*** -Landscape phone to portrait tablet -***/ -@media (max-width: 991px) { - /*** - page sidebar - ***/ - .page-sidebar { - background-color: #f1f1f1 !important; - border-right: none !important; - } - .page-sidebar-fixed .page-sidebar { - border-right: none !important; - } - .page-content { - border-left: none !important; - } - ul.page-sidebar-menu > li > a { - border-top: 1px solid #ececec !important; - border-bottom: 1px solid #cccccc !important; - } - ul.page-sidebar-menu > li:last-child > a { - border-bottom: 0 !important; - } - - ul.page-sidebar-menu > li.open > a,{ - color: #666666 !important; - background-color: #e0e0e0 !important; - } - - /*ul.page-sidebar-menu > li > a:hover { - color: #666666 !important; - background-color: #e7e7e7 !important; - }*/ - ul.page-sidebar-menu > li.open > a { - border-bottom-color: transparent !important; - } - /* ul.page-sidebar-menu > li.active > a { - color: #ffffff !important; - background-color: #28b779 !important; - }*/ - - ul.page-sidebar-menu ul.sub-menu > li > a { - color: #111 !important; - } -ul.page-sidebar-menu ul.sub-menu > li.active > a{ - color: #000 !important; - background: #dbe6ea !important; -} - ul.page-sidebar-menu ul.sub-menu > li.open > a, - ul.page-sidebar-menu ul.sub-menu > li > a:hover { - color: #000 !important; - background: #e7e7e7 !important; - } - - .page-sidebar .sidebar-search input { - background-color: #f1f1f1 !important; - color: #ccc !important; - } - - .page-sidebar .sidebar-search .input-box { - border-bottom-color: #ccc !important; - } - .page-sidebar .sidebar-search input::-webkit-input-placeholder { - color: #ccc !important; - } - .page-sidebar .sidebar-search input:-moz-placeholder { - color: #ccc !important; - } - .page-sidebar .sidebar-search input:-ms-input-placeholder { - color: #ccc !important; - } - - /*** - page footer - ***/ - - .footer { - background-color: #434343; - } - - .footer .footer-inner { - color: #cccccc; - } - .footer .footer-tools .go-top { - background-color: #666666; - } - .footer .footer-tools .go-top i { - color: #999999; - } -} - -@media (max-width: 767px) { - body { - background-color: #077ead !important; - } -} \ No newline at end of file diff --git a/openo-portal/portal-common/src/main/webapp/common/css/themes/ztebluelight3_ifrm.css b/openo-portal/portal-common/src/main/webapp/common/css/themes/ztebluelight3_ifrm.css deleted file mode 100644 index 10714dde..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/css/themes/ztebluelight3_ifrm.css +++ /dev/null @@ -1,220 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*** -light_ifrm theme -***/ -td>a>span[class^="ict-"], td>a>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>div>span[class^="ict-"], td>div>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>div>span>span[class^="ict-"], td>div>span>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>span>span[class^="ict-"], td>span>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -/* button style*/ -.buttonRounded, -.buttonRoundedOver, -.buttonRoundedFocused, -.buttonRoundedFocusedOver, -.buttonRoundedDown, -.buttonRoundedFocusedDown, -.buttonRoundedSelected, -.buttonRoundedSelectedFocused, -.buttonRoundedSelectedDown, -.buttonRoundedSelectedFocusedDown, -.buttonRoundedSelectedOver, -.buttonRoundedSelectedFocusedOver, -.buttonRoundedDisabled, -.buttonRoundedSelectedDisabled { - background-color: #47a5cc; - color: #fff; - border: 0px solid #b15a59; - border-radius: 0px; - font-family: Arial, Verdana, sans-serif; - font-size: 12px; - /*padding: 0 3px;*/ - padding-left:7px !important; - padding-right:7px !important; - height:30px !important; -} -.buttonRoundedDisabled, .buttonRoundedSelectedDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} -.buttonRoundedOver, -.buttonRoundedFocusedOver, -.buttonRoundedSelectedFocused, -.buttonRoundedSelectedFocusedOver, -.buttonRoundedDown, -.buttonRoundedFocusedDown { - background-color: #3a8fb3; - height:30px !important; -} - -.menuButton, -.menuButtonOver, -.menuButtonDown, -.menuButtonDisabled, -.menuButtonFocused, -.menuButtonFocusedDown, -.menuButtonFocusedOver, -.menuButtonSelected, -.menuButtonSelectedDown, -.menuButtonSelectedOver, -.menuButtonSelectedDisabled { - background-color: #47a5cc; - border: 0px solid #ababab; - color: #fff; - font-family: Arial, Verdana, sans-serif; - font-size: 12px; - padding-left: 7px !important; - padding-right: 7px !important; - height:30px !important; -} -.menuButtonOver { - background-color: #3a8fb3; - } -.menuButtonDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} - - .buttonTitle, -.buttonTitleOver, -.buttonTitleDown, -.buttonTitleSelected, -.buttonTitleFocused, -.buttonTitleSelectedFocused, -.buttonTitleSelectedOver, -.buttonTitleFocusedOver, -.buttonTitleSelectedFocusedOver, -.buttonTitleSelectedDown, -.buttonTitleFocusedDown, -.buttonTitleSelectedFocusedDown, -.buttonTitleDisabled, -.buttonTitleSelectedDisabled { - color: #fff ; - } - .buttonTitleDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} - /* windowBody dialogBody Style */ - .windowBody, -.dialogBody { - background-color: white; - border: 1px solid #2b8db6; - border-top: 0; -} -.windowHeader, -.dialogHeader { - background-color: #2b8db6; - padding: 0; -} -/* sectionHeader Style */ -.sectionHeaderopened { - background-color: #2b8db6; - } - .sectionHeaderclosed { - background-color: #3899c2; - } - -#dt_example h1{ -color:#2b8db6; -font-weight:600 !important; -} -/*cell style*/ -.tallCellOver, -.tallCellOverDark { - background-color: #c4d7e2; - } -.imgHeaderButtonOver, -.imgHeaderButtonDown, -.headerButtonOver, -.headerButtonDown, -.sorterButtonOver, -.sorterButtonDown { - background-color: #c4d7e2; - } - /*cell style*/ -.tallCellOver, -.tallCellOverDark { - background-color: #d9e3e8; - border-bottom: 1px solid #d9e3e8; - border-top: 1px solid #d9e3e8; - } -.tallCellSelected, -.tallCellSelectedDark { - background: #c4d7e2; - border-bottom: 1px solid #c4d7e2; - border-top: 1px solid #c4d7e2; - } -.tallCellSelectedOver, -.tallCellSelectedOverDark { - background: #c4d7e2; - border-bottom: 1px solid #c4d7e2; - border-top: 1px solid #c4d7e2; - } -.imgHeaderButtonOver, -.imgHeaderButtonDown, -.headerButtonOver, -.headerButtonDown, -.sorterButtonOver, -.sorterButtonDown { - background-color: #c4d7e2; - } -.cellSelected, -.cellSelectedDark, -.specialColSelected, -.recordSummaryCellSelected, -.recordSummaryCellSelectedDark { - background: #c4d7e2 !important; - border-bottom: 1px solid #c4d7e2; - border-top: 1px solid #c4d7e2; - } -.cellSelectedOver, -.cellSelectedOverDark, -.specialColSelectedOver, -.recordSummaryCellSelectedOver, -.recordSummaryCellSelectedOverDark { - background: #c4d7e2 !important; - border-bottom: 1px solid #c4d7e2; - border-top: 1px solid #c4d7e2; -} -.cellOver, -.cellOverDark, -.specialColOver, -.recordSummaryCellOver, -.recordSummaryCellOverDark { - background: #d9e3e8 !important; - border-bottom: 1px solid #d9e3e8; - border-top: 1px solid #d9e3e8; - } -.treeCellOver, -.treeCellOverDark { - background-color: #d9e3e8; -} diff --git a/openo-portal/portal-common/src/main/webapp/common/css/themes/ztebluelight4.css b/openo-portal/portal-common/src/main/webapp/common/css/themes/ztebluelight4.css deleted file mode 100644 index ff534473..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/css/themes/ztebluelight4.css +++ /dev/null @@ -1,620 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*** -light theme -***/ - -/*** -Reset and overrides -***/ -body { - background-color: #f1f3fa !important; -} - -.page-content .page-breadcrumb.breadcrumb .dashboard-date-range { - background-color: #ededed !important; -} - -.page-content { - background-color: #f1f3fa !important; -} - -.vSplitbar { - background-color: transparent !important; -} - -.btn-group .btn.blue.dropdown-toggle { - background-color: #333 !important; -} - -.btn-group .btn.blue.dropdown-toggle:hover { - background-color: #000 !important; -} - -/*** -Page header -***/ -.header { - filter: none !important; - background-color: #333333 !important; -} - -.header .btn-navbar { - background-color: #434343 !important; -} - -.header .navbar-nav .dropdown-toggle:hover, -.header .navbar-nav .dropdown.open .dropdown-toggle { - background-color: #40484c !important; -} - -.header .navbar-nav li.dropdown .dropdown-toggle i { - color: #ffffff !important; -} - -.zte-theme-panel > .toggler:hover { - background-color: #40484c !important; -} - -/*** -Header Search -***/ -.header .search-form { - background-color: #3a3a3a; -} - -.header .search-form .form-control { - color: #ccc; - border: 0; - background-color: #3a3a3a; -} - -.header .search-form .submit { - background: url(../../image/search-icon.png); -} - -/*** -Hor menu -***/ -.header .hor-menu ul.nav li a { - color: #fff; -} - -.header .hor-menu ul.nav li.open > a, -.header .hor-menu ul.nav li > a:hover, -.header .hor-menu ul.nav li > a:focus { - color: #ccc; - background: #333333; -} - -.header .hor-menu .dropdown-menu li:hover > a, -.header .hor-menu ul.nav li.active > a, -.header .hor-menu ul.nav li.active > a:hover { - color: #fff; - background: #333 !important; -} - -.header.navbar .hor-menu ul.nav li.current .selected, -.header.navbar .hor-menu ul.nav li.active .selected { - border-top: 6px solid #101010; -} - -.header .hor-menu ul.nav li.current > a, -.header .hor-menu ul.nav li.current > a:hover { - color: #fff; - background: #e02222 !important; -} - -.header .hor-menu .dropdown-menu { - background: #4f4f4f; -} - -.header .hor-menu .dropdown-menu li > a { - color: #ccc; -} - -.header .hor-menu .hor-menu-search-form-toggler.off { - background: #4f4f4f url(../../image/hor-menu-search-close-white.png) no-repeat center; -} - -.header .hor-menu .search-form { - background: #4f4f4f; -} - -.header .hor-menu .search-form form input { - color: #ccc; -} - -.header .hor-menu .search-form .btn { - color: #ccc; - background: url(../../image/search-icon-white.png) no-repeat center; -} - -.header .hor-menu .search-form form input::-webkit-input-placeholder { - /* WebKit browsers */ - color: #ccc; -} - -.header .hor-menu .search-form form input:-moz-placeholder { - /* Mozilla Firefox 4 to 18 */ - color: #ccc; -} - -.header .hor-menu .search-form form input::-moz-placeholder { - /* Mozilla Firefox 19+ */ - color: #ccc; -} - -.header .hor-menu .search-form form input:-ms-input-placeholder { - /* Internet Explorer 10+ */ - color: #ccc; -} - -/*** -Mega Menu -***/ -.mega-menu .mega-menu-submenu { - border-right: 1px solid #656565; -} - -.mega-menu .mega-menu-submenu li h3 { - color: #fff; -} - -/*** -Page sidebar -***/ -/*.page-content { - border-left: 1px solid #e2e2e2 !important; - border-bottom: 1px solid #e2e2e2 !important; -}*/ -.page-sidebar-menu > li.active > a .selected { - background-image: none !important; - border-right:#5C9ACF 3px solid; - height:40px !important; - top:0 !important; -} - -.page-sidebar-reversed .page-content { - border-left: 0; - border-right: 1px solid #e2e2e2 !important; -} - -.page-sidebar { - background-color: #f1f3fa; -} - -.page-sidebar-fixed .page-content { - border: 0 !important; -} - -.page-sidebar-fixed .page-sidebar { - border-right: 1px solid #e2e2e2 !important; -} - -ul.page-sidebar-menu > li > a { - border: 1px solid #dddddd !important; - color: #000 !important; - font-weight: 400; - background-color: #fff !important; - margin-left: 3px; - margin-right: 3px; - margin-bottom: 5px; - -webkit-border-radius: 3px !important; - -moz-border-radius: 3px !important; - -ms-border-radius: 3px !important; - -o-border-radius: 3px !important; - border-radius: 3px !important; -} - -.page-sidebar-menu > li.start > a { - border-top: 1px solid #dddddd !important; -} - -ul.page-sidebar-menu > li:first-child > a { - border-top: 1px solid #dddddd !important; -} - -ul.page-sidebar-menu > li:last-child > a { - border-bottom: 1px solid #dddddd !important; -} - -/*ul.page-sidebar-menu > li a i { - color: #000 !important; -}*/ - -/*ul.page-sidebar-menu > li.open > a:hover { - background: #ededed !important; - color: #000 !important; -}*/ -ul.page-sidebar-menu > li.open > a { - background: #fff !important; - color: #000 !important; -} -ul.page-sidebar-menu > li.active > a:hover { - background: #fff !important; - color: #5C9ACF !important ; - //border-left: #5C9ACF 3px solid; -} - - -/*ul.page-sidebar-menu > li.active > a .selected { - right:-7px; - top:0px; - width: 7px; - height: 39px; - background-image: url("../../image/sidebar-menu-arrow-green.png");*/ - } - -.page-sidebar-reversed ul.page-sidebar-menu > li.active > a .selected { - right: auto; - left: -7px; - background-image: url("../../image/sidebar-menu-arrow-green-reverse.png"); -} - -/*ul.page-sidebar-menu > li.active i { - color: #fff !important; -}*/ -.page-sidebar-fixed ul.page-sidebar-menu > li.active > a .selected { - display: none; -} - -ul.page-sidebar-menu > li.active > a { - background: #fff !important; - border-right-color: transparent !important; - color: #1177CF !important; -} - -ul.page-sidebar-menu > li.active > a i { - color: #5C9ACF; -} - -ul.page-sidebar-menu > li > a > .arrow:before, -ul.page-sidebar-menu > li > a > .arrow.open:before { - color: #ccc !important; -} - -ul.page-sidebar-menu > li.active > a .arrow:before, -ul.page-sidebar-menu > li.active > a .arrow.open:before { - color: #5C9ACF !important; -} - -ul.page-sidebar-menu > li > ul.sub-menu > li:first-child > a { - border-top: 0px !important; -} - -ul.page-sidebar-menu ul.sub-menu > li > a { - font-weight: 400 !important; - color: #2a6496 !important; - margin-left: 4px !important; - margin-right: 4px !important; - margin-bottom: 5px !important; -} - -ul.page-sidebar-menu ul.sub-menu > li.active > a, -ul.page-sidebar-menu ul.sub-menu > li > a:hover { - color: #818181 !important; - background: #ededed !important; -} - -ul.page-sidebar-menu > li > ul.sub-menu a .arrow:before, -ul.page-sidebar-menu > li > ul.sub-menu a .arrow.open:before { - color: #ccc !important; -} - -/* sub menu links effects */ -ul.page-sidebar-menu ul.sub-menu > li.active > a, -ul.page-sidebar-menu ul.sub-menu > li.active > a:hover { - color: #1177CF !important; - background: #dbe6ea !important; -} - -ul.page-sidebar-menu ul.sub-menu > li > a:hover, -ul.page-sidebar-menu ul.sub-menu > li.open > a { - color: #428bca !important; - background: #eaf1f4 !important; -} - -ul.page-sidebar-menu > li > a:hover, -ul.page-sidebar-menu > li.active > a:hover { - background-color: #ecf1f5 !important; - color: #585858; -} -/* sidebar search */ -.page-sidebar .sidebar-search input { - background-color: #f5f5f5 !important; - color: #727272 !important; -} - -.page-sidebar .sidebar-search input::-webkit-input-placeholder { - color: #aaa !important; -} - -.page-sidebar .sidebar-search input:-moz-placeholder { - color: #aaa !important; -} - -.page-sidebar .sidebar-search input:-ms-input-placeholder { - color: #aaa !important; -} - -.page-sidebar .sidebar-search .input-box { - border-bottom: 1px solid #e2e2e2 !important; -} - -.page-sidebar .sidebar-search .submit { - background-image: url(../../image/search-icon-white.png); -} - -/*** -Sidebar toggler -***/ -.sidebar-toggler { - background-image: url(../../image/sidebar-toggler-light.jpg); - background-color: #333; -} - -/* search box bg color on expanded */ -.page-sidebar-closed .page-sidebar .sidebar-search.open .form-container { - background-color: #fbfbfb !important; -} - -.page-sidebar-closed .page-sidebar .sidebar-search.open .form-container .remove { - background-image: url("../../image/sidebar-search-close-light.png"); -} - -/* sub menu bg color on hover menu item */ -.page-sidebar-closed ul.page-sidebar-menu > li:hover .sub-menu { - background-color: #f5f5f5; -} - -/*** -Footer -***/ -.footer .footer-inner { - color: #333333; -} - -.footer .footer-tools .go-top { - background-color: #666666; -} - -.footer .footer-tools .go-top:hover { - opacity: 0.7; - filter: alpha(opacity=70); -} - -.footer .footer-tools .go-top i { - color: #999999; -} - -/*** -Footer Layouts (new in v1.3) -***/ -/* begin:fixed footer */ -.page-footer-fixed .footer { - background-color: #434343; -} - -.page-footer-fixed .footer .footer-inner { - color: #aaaaaa; -} - -.page-footer-fixed .footer .footer-tools .go-top { - background-color: #666666; -} - -.page-footer-fixed .footer .footer-tools .go-top i { - color: #aaaaaa; -} - -/* end:fixed footer */ -/*** -Gritter Notifications -***/ -.gritter-top { - background: url(../../thirdparty/gritter/images/gritter.png) no-repeat left -30px !important; -} - -.gritter-bottom { - background: url(../../thirdparty/gritter/images/gritter.png) no-repeat left bottom !important; -} - -.gritter-item { - display: block; - background: url(../../thirdparty/gritter/images/gritter.png) no-repeat left -40px !important; -} - -.gritter-close { - background: url(../../thirdparty/gritter/images/gritter.png) no-repeat left top !important; -} - -.gritter-title { - text-shadow: none !important; - /* Not supported by IE :( */ - -} - -/* for the light (white) version of the gritter notice */ -.gritter-light .gritter-item, -.gritter-light .gritter-bottom, -.gritter-light .gritter-top, -.gritter-light .gritter-close { - background-image: url(../../thirdparty/gritter/images/gritter-light.png) !important; -} - -.gritter-item-wrapper a { - color: #18a5ed; -} - -.gritter-item-wrapper a:hover { - color: #0b6694; -} - -/* begin: boxed page */ -@media (min-width: 992px) { - .page-boxed { - background-color: #E8E8E8 !important; - } - - .page-boxed .page-container { - background-color: #f5f5f5; - border-left: 1px solid #e2e2e2; - border-bottom: 1px solid #e2e2e2; - } - - .page-sidebar-reversed.page-boxed .page-container { - border-left: 0; - border-right: 1px solid #e2e2e2; - } - - .page-boxed.page-sidebar-fixed .page-container { - border-left: 0; - border-bottom: 0; - } - - .page-boxed.page-sidebar-fixed .page-sidebar { - border-left: 1px solid #e2e2e2; - } - - .page-boxed.page-sidebar-reversed.page-sidebar-fixed .page-sidebar { - border-right: 1px solid #e2e2e2; - border-left: 0; - } - - .page-boxed.page-sidebar-fixed.page-footer-fixed .footer { - background-color: #E8E8E8 !important; - } - - .page-sidebar-closed .page-sidebar-menu > li > a { - margin-left: 0; - margin-right: 0; - } -} - -/* end: boxed page */ -/*** -Landscape phone to portrait tablet -***/ -@media (max-width: 991px) { - /*** - page sidebar - ***/ - .page-sidebar-closed .page-sidebar-menu > li > a { - margin-left: 0; - margin-right: 0; - } - - .page-sidebar { - background-color: #f1f1f1 !important; - border-right: none !important; - } - - .page-sidebar-fixed .page-sidebar { - border-right: none !important; - } - - .page-content { - border-left: none !important; - } - - ul.page-sidebar-menu > li > a { - border-top: 1px solid #ececec !important; - border-bottom: 1px solid #cccccc !important; - } - - /* ul.page-sidebar-menu > li:last-child > a { - border-bottom: 0 !important; - }*/ - ul.page-sidebar-menu > li.open > a, { - color: #666666 !important; - background-color: #e0e0e0 !important; - } - - /*ul.page-sidebar-menu > li > a:hover { - color: #666666 !important; - background-color: #e7e7e7 !important; - }*/ - ul.page-sidebar-menu > li.open > a { - border-bottom-color: transparent !important; - } - - /* ul.page-sidebar-menu > li.active > a { - color: #ffffff !important; - background-color: #28b779 !important; - }*/ - /*ul.page-sidebar-menu ul.sub-menu > li > a { - color: #111 !important; - }*/ - /*ul.page-sidebar-menu ul.sub-menu > li.active > a{ - color: #000 !important; - background: #dbe6ea !important; */ -} - -/* ul.page-sidebar-menu ul.sub-menu > li.open > a, - ul.page-sidebar-menu ul.sub-menu > li > a:hover { - color: #000 !important; - background: #e7e7e7 !important; - }*/ - -.page-sidebar .sidebar-search input { - background-color: #f1f1f1 !important; - color: #ccc !important; -} - -.page-sidebar .sidebar-search .input-box { - border-bottom-color: #ccc !important; -} - -.page-sidebar .sidebar-search input::-webkit-input-placeholder { - color: #ccc !important; -} - -.page-sidebar .sidebar-search input:-moz-placeholder { - color: #ccc !important; -} - -.page-sidebar .sidebar-search input:-ms-input-placeholder { - color: #ccc !important; -} - -/*** -page footer -***/ - -.footer { - background-color: #434343; -} - -.footer .footer-inner { - color: #cccccc; -} - -.footer .footer-tools .go-top { - background-color: #666666; -} - -.footer .footer-tools .go-top i { - color: #999999; -} - - } - -@media (max-width: 767px) { - body { - background-color: #333333 !important; - } -} \ No newline at end of file diff --git a/openo-portal/portal-common/src/main/webapp/common/css/themes/ztebluelight4_ifrm.css b/openo-portal/portal-common/src/main/webapp/common/css/themes/ztebluelight4_ifrm.css deleted file mode 100644 index d0bf1b4f..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/css/themes/ztebluelight4_ifrm.css +++ /dev/null @@ -1,209 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*** -ztebluelight4_ifrm theme -***/ -body{ - background-color: white!important; -} -td>a>span[class^="ict-"], td>a>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>div>span[class^="ict-"], td>div>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>div>span>span[class^="ict-"], td>div>span>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>span>span[class^="ict-"], td>span>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -/* button style*/ -.buttonRounded, -.buttonRoundedOver, -.buttonRoundedFocused, -.buttonRoundedFocusedOver, -.buttonRoundedDown, -.buttonRoundedFocusedDown, -.buttonRoundedSelected, -.buttonRoundedSelectedFocused, -.buttonRoundedSelectedDown, -.buttonRoundedSelectedFocusedDown, -.buttonRoundedSelectedOver, -.buttonRoundedSelectedFocusedOver, -.buttonRoundedDisabled, -.buttonRoundedSelectedDisabled { - background-color: #47a080; - color: #fff; - border: 0px solid #b15a59; - border-radius: 0px; - font-family: Arial, Verdana, sans-serif; - font-size: 12px; - /*padding: 0 3px;*/ - padding-left:7px !important; - padding-right:7px !important; - height:30px !important; -} -.buttonRoundedDisabled, .buttonRoundedSelectedDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} -.buttonRoundedOver, -.buttonRoundedFocusedOver, -.buttonRoundedSelectedFocused, -.buttonRoundedSelectedFocusedOver, -.buttonRoundedDown, -.buttonRoundedFocusedDown { - background-color: #3f9375; - height:30px !important; -} - -.menuButton, -.menuButtonOver, -.menuButtonDown, -.menuButtonDisabled, -.menuButtonFocused, -.menuButtonFocusedDown, -.menuButtonFocusedOver, -.menuButtonSelected, -.menuButtonSelectedDown, -.menuButtonSelectedOver, -.menuButtonSelectedDisabled { - background-color: #47a080; - border: 0px solid #ababab; - color: #fff; - font-family: Arial, Verdana, sans-serif; - font-size: 12px; - padding-left: 7px !important; - padding-right: 7px !important; - height:30px !important; -} -.menuButtonOver { - background-color: #3f9375; - } -.menuButtonDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} - .buttonTitle, -.buttonTitleOver, -.buttonTitleDown, -.buttonTitleSelected, -.buttonTitleFocused, -.buttonTitleSelectedFocused, -.buttonTitleSelectedOver, -.buttonTitleFocusedOver, -.buttonTitleSelectedFocusedOver, -.buttonTitleSelectedDown, -.buttonTitleFocusedDown, -.buttonTitleSelectedFocusedDown, -.buttonTitleDisabled, -.buttonTitleSelectedDisabled { - color: #fff ; - } - .buttonTitleDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} - /* windowBody dialogBody Style */ - .windowBody, -.dialogBody { - background-color: white; - border: 1px solid #47a080; - border-top: 0; -} -.windowHeader, -.dialogHeader { - background-color: #47a080; - padding: 0; -} -/* sectionHeader Style */ -.sectionHeaderopened { - background-color: #47a080; - } - .sectionHeaderclosed { - background-color: #4ca887; - } - -#dt_example h1{ -color:#47a080; -font-weight:600 !important; -} - /*cell style*/ -.tallCellOver, -.tallCellOverDark { - background-color: #d7eae3; - border-bottom: 1px solid #d7eae3; - border-top: 1px solid #d7eae3; - } -.tallCellSelected, -.tallCellSelectedDark { - background: #c7e5da; - border-bottom: 1px solid #c7e5da; - border-top: 1px solid #c7e5da; - } -.tallCellSelectedOver, -.tallCellSelectedOverDark { - background: #c7e5da; - border-bottom: 1px solid #c7e5da; - border-top: 1px solid #c7e5da; - } -.imgHeaderButtonOver, -.imgHeaderButtonDown, -.headerButtonOver, -.headerButtonDown, -.sorterButtonOver, -.sorterButtonDown { - background-color: #a2cfbf; - } -.cellSelected, -.cellSelectedDark, -.specialColSelected, -.recordSummaryCellSelected, -.recordSummaryCellSelectedDark { - background: #c7e5da !important; - border-bottom: 1px solid #c7e5da; - border-top: 1px solid #c7e5da; - } -.cellSelectedOver, -.cellSelectedOverDark, -.specialColSelectedOver, -.recordSummaryCellSelectedOver, -.recordSummaryCellSelectedOverDark { - background: #c7e5da !important; - border-bottom: 1px solid #c7e5da; - border-top: 1px solid #c7e5da; -} -.cellOver, -.cellOverDark, -.specialColOver, -.recordSummaryCellOver, -.recordSummaryCellOverDark { - background: #d7eae3 !important; - border-bottom: 1px solid #d7eae3; - border-top: 1px solid #d7eae3; - } -.treeCellOver, -.treeCellOverDark { - background-color: #d7eae3; -} diff --git a/openo-portal/portal-common/src/main/webapp/common/css/themes/ztebluelight_ifrm.css b/openo-portal/portal-common/src/main/webapp/common/css/themes/ztebluelight_ifrm.css deleted file mode 100644 index 7b06ddfb..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/css/themes/ztebluelight_ifrm.css +++ /dev/null @@ -1,228 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*** -ztebluelight_ifrm theme -***/ -body{ - background-color: white!important; -} -td>a>span[class^="ict-"], td>a>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>div>span[class^="ict-"], td>div>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>div>span>span[class^="ict-"], td>div>span>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>span>span[class^="ict-"], td>span>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} - -/* button style*/ -.buttonRounded, -.buttonRoundedOver, -.buttonRoundedFocused, -.buttonRoundedFocusedOver, -.buttonRoundedDown, -.buttonRoundedFocusedDown, -.buttonRoundedSelected, -.buttonRoundedSelectedFocused, -.buttonRoundedSelectedDown, -.buttonRoundedSelectedFocusedDown, -.buttonRoundedSelectedOver, -.buttonRoundedSelectedFocusedOver, -.buttonRoundedDisabled, -.buttonRoundedSelectedDisabled { - background-color: #3366cc ; - color: #fff; - border: 0px solid #b15a59; - font-family: Arial, Verdana, sans-serif; - font-size: 12px; - /*padding: 0 3px;*/ - padding-left:7px !important; - padding-right:7px !important; - height:30px !important; -} -.buttonRoundedDisabled, .buttonRoundedSelectedDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} -.buttonRoundedOver, -.buttonRoundedFocusedOver, -.buttonRoundedSelectedFocused, -.buttonRoundedSelectedFocusedOver , -.buttonRoundedDown, -.buttonRoundedFocusedDown{ - background-color: #6997f5; - height:30px !important; -} - -.menuButton, -.menuButtonOver, -.menuButtonDown, -.menuButtonDisabled, -.menuButtonFocused, -.menuButtonFocusedDown, -.menuButtonFocusedOver, -.menuButtonSelected, -.menuButtonSelectedDown, -.menuButtonSelectedOver, -.menuButtonSelectedDisabled { - background-color: #3366cc; - border: 0px solid #ababab; - color: #fff; - font-family: Arial, Verdana, sans-serif; - font-size: 12px; - padding-left: 7px !important; - padding-right: 7px !important; - height:30px !important; -} -.menuButtonOver { - background-color: #6997f5; - } -.menuButtonDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} - .buttonTitle, -.buttonTitleOver, -.buttonTitleDown, -.buttonTitleSelected, -.buttonTitleFocused, -.buttonTitleSelectedFocused, -.buttonTitleSelectedOver, -.buttonTitleFocusedOver, -.buttonTitleSelectedFocusedOver, -.buttonTitleSelectedDown, -.buttonTitleFocusedDown, -.buttonTitleSelectedFocusedDown, -.buttonTitleDisabled, -.buttonTitleSelectedDisabled { - color: #fff ; - } -.buttonTitleDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} - /* windowBody dialogBody Style */ - .windowBody, -.dialogBody { - background-color: white; - border: 1px solid #b4cef8; - border-top: 0; -} -.windowHeader, -.dialogHeader { - background-color: #3366cc; - padding: 0; -} -/* sectionHeader Style */ -.sectionHeaderopened { - background-color: #3366cc; - } - .sectionHeaderclosed { - background-color: #619bfa; - } - -#dt_example h1{ -color:#3366cc; -font-weight:600 !important; -} -/*cell style*/ -.tallCellOver, -.tallCellOverDark { - background-color: #ffede4; - border-bottom: 1px solid #ffede4; - border-top: 1px solid #ffede4; - } -.tallCellSelected, -.tallCellSelectedDark { - background: #f8dddd; - border-bottom: 1px solid #f8dddd; - border-top: 1px solid #f8dddd; - } -.tallCellSelectedOver, -.tallCellSelectedOverDark { - background: #f8dddd; - border-bottom: 1px solid #f8dddd; - border-top: 1px solid #f8dddd; - } -.imgHeaderButtonOver, -.imgHeaderButtonDown, -.headerButtonOver, -.headerButtonDown, -.sorterButtonOver, -.sorterButtonDown { - background-color: #c4d7e2; -} -.cellSelected, -.cellSelectedDark, -.specialColSelected, -.recordSummaryCellSelected, -.recordSummaryCellSelectedDark { - background: #f8dddd !important; - border-bottom: 1px solid #f8dddd; - border-top: 1px solid #f8dddd; - } -.cellSelectedOver, -.cellSelectedOverDark, -.specialColSelectedOver, -.recordSummaryCellSelectedOver, -.recordSummaryCellSelectedOverDark { - background: #f8dddd !important; - border-bottom: 1px solid #f8dddd; - border-top: 1px solid #f8dddd; -} -.cellOver, -.cellOverDark, -.specialColOver, -.recordSummaryCellOver, -.recordSummaryCellOverDark { - background: #ffede4 !important; - border-bottom: 1px solid #ffede4; - border-top: 1px solid #ffede4; - } -.treeCellOver, -.treeCellOverDark { - background-color: #ffede4; -} -/*日志管理的蓝色大圆角筛选按é’?/ -.blue { - background-color: #fff; - color:#1991c5; -} -.blue:hover { - background-color: #e8f3fd; - color:#3366cc; -} -.blue.selected{ - border:0; - background-color: #3366cc; - color:#fff; -} -.blue.selected:hover{ - border:0; - background-color: #3366cc; - color:#fff; -} \ No newline at end of file diff --git a/openo-portal/portal-common/src/main/webapp/common/default.html b/openo-portal/portal-common/src/main/webapp/common/default.html deleted file mode 100644 index 8d2eb6ca..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/default.html +++ /dev/null @@ -1,174 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    - - -
    - -
    -
    -
    -
    -
    - - -
    -
    -
    -
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/i18n/web-framework-i18n-en-US.properties b/openo-portal/portal-common/src/main/webapp/common/i18n/web-framework-i18n-en-US.properties deleted file mode 100644 index 18da1883..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/i18n/web-framework-i18n-en-US.properties +++ /dev/null @@ -1,222 +0,0 @@ -# -# Copyright 2016-2017, CMCC Technologies Co., Ltd. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -com_zte_ums_ict_framework_ui_page_title=OPEN-O System -com_zte_ums_ict_framework_ui_main_title=OPEN-O -com_zte_ums_ict_framework_ui_skin_select=Theme Color -com_zte_ums_ict_framework_ui_language=Language -com_zte_ums_ict_framework_ui_language_zhcn=中文 -com_zte_ums_ict_framework_ui_language_en=English -com_zte_ums_ict_framework_ui_skin_layout=Layout -com_zte_ums_ict_framework_ui_layout_fluid=Fluid -com_zte_ums_ict_framework_ui_layout_boxed=Boxed -com_zte_ums_ict_framework_ui_page_head=Header -com_zte_ums_ict_framework_ui_page_fixed=Fixed -com_zte_ums_ict_framework_ui_page_default=Default -com_zte_ums_ict_framework_ui_page_head_fixed=Fixed -com_zte_ums_ict_framework_ui_page_head_default=Default -com_zte_ums_ict_framework_ui_page_sidebar_fixed=Fixed -com_zte_ums_ict_framework_ui_page_sidebar_default=Default -com_zte_ums_ict_framework_ui_side_bar=Sidebar -com_zte_ums_ict_framework_ui_sidebar_location=Sidebar Position -com_zte_ums_ict_framework_ui_navbar_direction=Menu Direction -com_zte_ums_ict_framework_ui_navbar_direction_horizontal=Horizontal -com_zte_ums_ict_framework_ui_navbar_direction_vertical=Vertical -com_zte_ums_ict_framework_ui_navbar_direction_fmenu=Category Navigation -com_zte_ums_ict_framework_ui_keep_top=Top -com_zte_ums_ict_framework_ui_keep_left=Left -com_zte_ums_ict_framework_ui_keep_right=Right -com_zte_ums_ict_framework_ui_page_footer=Footer - -com_zte_ums_ict_framework_ui_basic_info=Basic Information -com_zte_ums_ict_framework_ui_search_value=Search... -com_zte_ums_ict_framework_ui_sidebar_mainPage=Home -com_zte_ums_ict_framework_ui_sidebar_topo=Topology -com_zte_ums_ict_framework_ui_sidebar_resList=Resource Table -com_zte_ums_ict_framework_ui_sidebar_physicTopo=Physical Topology -com_zte_ums_ict_framework_ui_sidebar_linkTopo=Relation Topology -com_zte_ums_ict_framework_ui_sidebar_alarm=Alarm -com_zte_ums_ict_framework_ui_sidebar_alarm_summary=Alarm Summary -com_zte_ums_ict_framework_ui_sidebar_currentAlarm=Active Alarm -com_zte_ums_ict_framework_ui_sidebar_historyAlarm=History Alarm -com_zte_ums_ict_framework_ui_sidebar_notice=Notification -com_zte_ums_ict_framework_ui_sidebar_alarmRule=Alarm Setting -com_zte_ums_ict_framework_ui_sidebar_queryAlarm=Query Alarm -com_zte_ums_ict_framework_ui_sidebar_alarmStat=Alarm Statistic -com_zte_ums_ict_framework_ui_sidebar_alarmSetup=Alarm Setting -com_zte_ums_ict_framework_ui_sidebar_perform=Performance - -com_zte_ums_ict_framework_ui_sidebar_pm_meatask=Measure Management -com_zte_ums_ict_framework_ui_sidebar_index=Index Management -com_zte_ums_ict_framework_ui_sidebar_threshold=Threshold Management - -com_zte_ums_ict_framework_ui_sidebar_historySearch=History Query -com_zte_ums_ict_framework_ui_sidebar_realTimeSearch=Realtime Data Query -com_zte_ums_ict_framework_ui_sidebar_counterAndIndicator=Counter and Index -com_zte_ums_ict_framework_ui_sidebar_measureTaskMang=Measurement Task -com_zte_ums_ict_framework_ui_sidebar_generalTemplateMang=Common Template -com_zte_ums_ict_framework_ui_sidebar_config=Configuration -com_zte_ums_ict_framework_ui_sidebar_itDevMang=IT Resource Management -com_zte_ums_ict_framework_ui_sidebar_ipDevMang=IP Resource Management -com_zte_ums_ict_framework_ui_sidebar_autoFind=Auto Discovery -com_zte_ums_ict_framework_ui_sidebar_pollConfig=Poll Configuration -com_zte_ums_ict_framework_ui_sidebar_smcenter=Security Center -com_zte_ums_ict_framework_ui_sidebar_security=Security -com_zte_ums_ict_framework_ui_sidebar_smGuide=security Entry -com_zte_ums_ict_framework_ui_sidebar_deptMang=Department Management -com_zte_ums_ict_framework_ui_sidebar_userMang=User Management -com_zte_ums_ict_framework_ui_sidebar_roleMang=Role Management -com_zte_ums_ict_framework_ui_sidebar_acccRule=Customize User Account Rule -com_zte_ums_ict_framework_ui_sidebar_roleAndRoleset=Role & Role Set -com_zte_ums_ict_framework_ui_sidebar_role=Role Management -com_zte_ums_ict_framework_ui_sidebar_roleset=Role Set Management -com_zte_ums_ict_framework_ui_sidebar_log=Log -com_zte_ums_ict_framework_ui_sidebar_operationLog=Operation Log -com_zte_ums_ict_framework_ui_sidebar_sysLog=System Log -com_zte_ums_ict_framework_ui_sidebar_securityLog=Security Log -com_zte_ums_ict_framework_ui_sidebar_sysLogMultiTab=System Log(Multi-tab Example) -com_zte_ums_ict_framework_ui_sidebar_operationLogMultiTab=Operation Log(Multi-tab Example) -com_zte_ums_ict_framework_ui_sidebar_system=System -com_zte_ums_ict_framework_ui_sidebar_dataBackup=Backup Data -com_zte_ums_ict_framework_ui_sidebar_fileBackup=Backup Files -com_zte_ums_ict_framework_ui_sidebar_license=License -com_zte_ums_ict_framework_ui_sidebar_sysState=System Status -com_zte_ums_ict_framework_ui_sidebar_SystemMang=System Management - -com_zte_ums_ict_framework_ui_sidebar_monitor=Monitor -com_zte_ums_ict_framework_ui_sidebar_alarmByCell=Active Alarm Statistic by NE -com_zte_ums_ict_framework_ui_sidebar_alarmByCellType=Active Alarm Statistic by NE Type -com_zte_ums_ict_framework_ui_breadcrumbs_moreOper=More Operation -com_zte_ums_ict_framework_ui_sidebar_dbStructBack=DB Struct Backup -com_zte_ums_ict_framework_ui_sidebar_baseDataBack=Base Data Backup -com_zte_ums_ict_framework_ui_sidebar_logDataBackRestore=Log Data Back&Restore -com_zte_ums_ict_framework_ui_sidebar_alarmDataBackRestore=Alarm Data Back&Restore -com_zte_ums_ict_framework_ui_sidebar_dbBack=Database Backup -com_zte_ums_ict_framework_ui_breadcrumbs_ruleSetup=Rule Setup -com_zte_ums_ngict_dashboard=Dashboard - -com_zte_ums_ict_framework_ui_sidebar_levelRedefineSetup=Severity Regrading Setting -com_zte_ums_ict_framework_ui_sidebar_disposeSuggestionSetup=Handing Suggestion Setting -com_zte_ums_ict_framework_ui_sidebar_AlarmBoxSetup=Set Alarm Box -com_zte_ums_ict_framework_ui_sidebar_measureObjectMang=MO Management -com_zte_ums_ict_framework_ui_sidebar_thresholdTaskMang=Threshold Task -com_zte_ums_ict_framework_ui_sidebar_anDevMan=AN Device Management -com_zte_ums_ict_framework_ui_sidebar_cellMang=Cell management -com_zte_ums_ict_framework_ui_sidebar_snmpPing= SNMP Ping -com_zte_ums_ict_framework_ui_sidebar_telnet=Telnet -com_zte_ums_ict_framework_ui_sidebar_workOder=Work Order -com_zte_ums_ict_framework_ui_sidebar_resMang=Resource Management -com_zte_ums_ict_framework_ui_sidebar_SecurityMang=Security Management -com_zte_ums_ict_framework_ui_sidebar_userLockStatus=Show Locked Users -com_zte_ums_ict_framework_ui_sidebar_loginUserMang=Login User Management -com_zte_ums_ict_framework_ui_sidebar_userBlackList=User Blacklist -com_zte_ums_ict_framework_ui_sidebar_operationSet=Operation Set Management -com_zte_ums_ict_framework_ui_sidebar_LogMang=Log Management -com_zte_ums_ict_framework_ui_sidebar_backRestore=Backup and Restore -com_zte_ums_ict_framework_ui_sidebar_dbStructBack=Backup Whole DB Structure -com_zte_ums_ict_framework_ui_sidebar_baseDataBack=Backup Basic Data -com_zte_ums_ict_framework_ui_sidebar_logDataBackRestore=Log Data Backup and Restore -com_zte_ums_ict_framework_ui_sidebar_alarmDataBackRestore=Alarm Data Backup and Restore -com_zte_ums_ict_framework_ui_loading=loading...... -com_zte_ums_ict_framework_ui_searching=searching...... -com_zte_ums_ict_framework_ui_clickTooFast=You click on too fast, please wait for a while to click the menu, thank you! -com_zte_ums_ict_framework_ui_loadmenuerror=loading menu failed. -com_zte_ums_ict_framework_ui_confirmlogout=Do you confirm to logout? -com_zte_ums_aos_framework_ui_heartbeat_fail=The session is invalidated. -com_zte_ums_ict_framework_ui_fixedsidedefaultheaderError=Default Header with Fixed Sidebar option is not supported. Proceed with Fixed Header with Fixed Sidebar. -com_zte_ums_ict_framework_ui_fixedsiderightpositionError=Fixed Sidebar with right position is not supported. Set Sidebar as default. -com_zte_ums_ict_framework_ui_loadchgpwdpageError=loading change password page failed. -com_zte_ums_ict_framework_ui_searchmessage=The {0} keyword search results as follows: -com_zte_ums_ict_framework_ui_month=January,February,March,April,May,June,July,August,September,October,November,December -com_zte_ums_ict_framework_ui_customdate=Custom date -com_zte_ums_ict_framework_ui_from=From -com_zte_ums_ict_framework_ui_to=To -com_zte_ums_ict_framework_ui_apply=Apply -com_zte_ums_ict_framework_ui_today=Today -com_zte_ums_ict_framework_ui_yestoday=Yestoday -com_zte_ums_ict_framework_ui_lastdays=Last {0} days -com_zte_ums_ict_framework_ui_thismonth=This month -com_zte_ums_ict_framework_ui_lastmonth=Last month - -com_zte_ums_ict_framework_ui_group_about=About -com_zte_ums_ict_framework_ui_group_logout=Logout -com_zte_ums_ict_framework_ui_changePwd=Change Password -com_zte_ums_ict_framework_ui_group_fullscreen=Full Screen -com_zte_ums_ict_framework_ui_group_exitfullscreen=Exit Full Screen -com_zte_ums_ict_framework_moudle_help = Help -com_zte_ums_ict_framework_moudle_menutoggler=More - - -com_zte_ums_ict_alarmcount_total_label = Total:{0} -com_zte_ums_ict_alarmcount_critical_label = Critical:{0} -com_zte_ums_ict_alarmcount_critical_text = Critical Alarm -com_zte_ums_ict_alarmcount_major_label = Major:{0} -com_zte_ums_ict_alarmcount_major_text = Major Alarm -com_zte_ums_ict_alarmcount_minor_label = Minor:{0} -com_zte_ums_ict_alarmcount_minor_text = Minor Alarm -com_zte_ums_ict_alarmcount_warning_label = Warning:{0} -com_zte_ums_ict_alarmcount_warning_text = Warning Alarm -com_zte_ums_ict_alarmcount_none_label=No alarm Now! -com_zte_ums_ict_alarmcount_total_after_text = ,Now!" -com_zte_ums_ict_alarmcount_total_before_text =Total Alarm Number: - -com_zte_ums_ict_framework_ui_sidebar_performMonitor=Perform Monitor -com_zte_ums_ict_framework_ui_sidebar_resource=Resource -com_zte_ums_ict_framework_ui_sidebar_manualAdd=Manual Add -com_zte_ums_ict_framework_ui_sidebar_gisTopo=GIS Topo - - -com_zte_ums_ict_framework_ui_sidebar_userDispatch=User Dispatch -com_zte_ums_ict_framework_ui_sidebar_roleCollect=Role Collection - -com_zte_ums_ict_sm_user_op_ok=Operation succeeded. -com_zte_ums_ict_sm_user_close_button=Close -com_zte_ums_ict_sm_user_confirm=OK -com_zte_ums_ict_sm_user_ok=OK -com_zte_ums_ict_sm_user_modify_current_password_label=      User Password Set -com_zte_ums_ict_sm_user_modify_current_password=User Password Set -com_zte_ums_ict_sm_user_old_password=Old Password -com_zte_ums_ict_sm_user_confirmpassword=Confirm New Password -com_zte_ums_ict_sm_user_cancel_button=Cancel -com_zte_ums_ict_sm_user_password=New Password -com_zte_ums_ict_sm_password_confirm_not_consistent = The New Password and the Confirm New Password are inconsistent. -com_zte_ums_ict_sm_user_inputoldpwd=Please input old password -com_zte_ums_ict_sm_user_inputnewpwd=Please input new password -com_zte_ums_ict_sm_user_inputnewpwdagain=Please input new password again -com_zte_ums_ict_portal_chgpwd_oldpwdError=Old password error -com_zte_ums_ict_login_inputname=Please input user name -com_zte_ums_ict_login_inputpwd=Please input user password - -com_zte_ums_ict_framework_ui_ztebluelight=ZTE Blue Light -com_zte_ums_ict_framework_ui_zteblue=ZTE Blue -com_zte_ums_ict_framework_ui_blue=Blue - -com_zte_ums_ict_about_ppu_field_name =Name -com_zte_ums_ict_about_ppu_field_version = Version -com_zte_ums_ict_about_ppu_field_desc = Description -com_zte_ums_ict_about_ppu_field_time = Update Time -com_zte_ums_ict_framework_moudle_about = About -com_zte_ums_ict_framework_about_detail = Info -com_zte_ums_ict_framework_about_version=Version: -com_zte_ums_ict_portal_login_companyName=2014 @; ZTE - Corporation - -com_zte_ums_ict_framework_main_page_dashboard=Dashboard -com_zte_ums_ict_framework_main_page_monitor=Monitor -com_zte_ums_ict_framework_main_page_alarm=Alarm -com_zte_ums_ict_framework_main_page_performance=Performance -com_zte_ums_ict_framework_main_page_security=Security -com_zte_ums_ict_framework_main_page_log=Log -com_zte_ums_ict_framework_main_page_system=System \ No newline at end of file diff --git a/openo-portal/portal-common/src/main/webapp/common/i18n/web-framework-login-i18n-en-US.properties b/openo-portal/portal-common/src/main/webapp/common/i18n/web-framework-login-i18n-en-US.properties deleted file mode 100644 index 4f5ba8af..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/i18n/web-framework-login-i18n-en-US.properties +++ /dev/null @@ -1,25 +0,0 @@ -# -# Copyright 2016-2017, CMCC Technologies Co., Ltd. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -openo_login_title=OPEN-O System -openo_login_welcome=Welcome -openo_login_userPasswordError=User name or password is not available. -openo_login_connectError=System error occurred. -openo_input_userName=Please Input User Name -openo_input_password=Please Input Password -openo_login_rememberMe=Remember Me -openo_login_username=Username: -openo_login_password=Password: -openo_login_login=Login diff --git a/openo-portal/portal-common/src/main/webapp/common/i18n/web-framework-mainPage-i18n-en-US.properties b/openo-portal/portal-common/src/main/webapp/common/i18n/web-framework-mainPage-i18n-en-US.properties deleted file mode 100644 index cb08ef41..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/i18n/web-framework-mainPage-i18n-en-US.properties +++ /dev/null @@ -1,24 +0,0 @@ -# -# Copyright 2016-2017, CMCC Technologies Co., Ltd. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -openo_main_page_title=OPEN-O System -org_openo_orchestrator_framework_main_page_service=Service -org_openo_orchestrator_framework_main_page_cloud=Cloud -org_openo_orchestrator_framework_main_page_orchestrator=Orchestrator -org_openo_orchestrator_framework_main_page_monitor=Monitor -org_openo_orchestrator_framework_main_page_resource=Resource -org_openo_orchestrator_framework_main_page_design=Design -org_openo_orchestrator_framework_main_page_alarm=Alarm -org_openo_orchestrator_framework_main_page_performance=Performance diff --git a/openo-portal/portal-common/src/main/webapp/common/i18n/web-framework-menu-i18n-en-US.properties b/openo-portal/portal-common/src/main/webapp/common/i18n/web-framework-menu-i18n-en-US.properties deleted file mode 100644 index bf8ceaf6..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/i18n/web-framework-menu-i18n-en-US.properties +++ /dev/null @@ -1,41 +0,0 @@ -# -# Copyright 2016-2017, CMCC Technologies Co., Ltd. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -openo_menu_service=Service -openo_menu_service_service_management=Service Management -openo_menu_orchestrator=Orchestrator -openo_menu_orchestrator_model_design=Model Design -openo_menu_orchestrator_node_type=Node Type -openo_menu_orchestrator_package=Package -openo_menu_orchestrator_service_template=Service Template -openo_menu_orchestrator_host_image=Host Image -openo_menu_orchestrator_lifecycle=Lifecycle -openo_menu_resource_mgr=Resource Mgr -openo_menu_resource_mgr_sdno=Resource Mgr sdno -openo_menu_resource_mgr_nfvo=Resource Mgr Nfvo -openo_menu_user=User -openo_menu_user_user_management=User Management -openo_menu_topology=Topology -openo_menu_topology_physical_topology=Physical Topology -openo_menu_topology_service_topology=Service Topology -openo_menu_performance=Performance -openo_menu_performance_performance_query=Performance Query -openo_menu_alarm_alarm_query=Alarm Query -openo_menu_manage_view=Manage View -openo_menu_manage_view_vim_manage=VIM Manage -openo_menu_manage_view_vnfm=VNFM -openo_menu_manage_view_sdn_controller=SDN Controller -openo_menu_monitor=Monitor -openo_menu_monitor_parameter_setting=Parameter Setting diff --git a/openo-portal/portal-common/src/main/webapp/common/image/License.txt b/openo-portal/portal-common/src/main/webapp/common/image/License.txt deleted file mode 100644 index d1ce787a..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/License.txt +++ /dev/null @@ -1,362 +0,0 @@ -THIS LICENSE FILE CONTAINS THE LICENSE APPLICABLE DEPENDING ON THE TYPE OF CONTRIBUTIONS. - -APACHE LICENSE 2 IS APPLICABLE FOR SOURCE CODE, CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL FOR DOCUMENTATION - -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - - -Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - -"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - -"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - -"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - -"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - -"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - -"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - -"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - -"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - -"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - -"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - -2. Grant of Copyright License. - -Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. - -Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - -4. Redistribution. - -You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - -You must give any other recipients of the Work or Derivative Works a copy of this License; and You must cause any modified files to carry prominent notices stating that You changed the files; and You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - -5. Submission of Contributions. - -Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - -6. Trademarks. - -This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. - -Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. - -In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. - -While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS - -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - -Attribution 4.0 International - -https://creativecommons.org/licenses/by/4.0/legalcode - -Creative Commons Corporation ("Creative Commons") is not a law firm and does not provide legal services or legal advice. Distribution of Creative Commons public licenses does not create a lawyer-client or other relationship. Creative Commons makes its licenses and related information available on an "as-is" basis. Creative Commons gives no warranties regarding its licenses, any material licensed under their terms and conditions, or any related information. Creative Commons disclaims all liability for damages resulting from their use to the fullest extent possible. - -Using Creative Commons Public Licenses - -Creative Commons public licenses provide a standard set of terms and conditions that creators and other rights holders may use to share original works of authorship and other material subject to copyright and certain other rights specified in the public license below. The following considerations are for informational purposes only, are not exhaustive, and do not form part of our licenses. - - Considerations for licensors: Our public licenses are - intended for use by those authorized to give the public - permission to use material in ways otherwise restricted by - copyright and certain other rights. Our licenses are - irrevocable. Licensors should read and understand the terms - and conditions of the license they choose before applying it. - Licensors should also secure all rights necessary before - applying our licenses so that the public can reuse the - material as expected. Licensors should clearly mark any - material not subject to the license. This includes other CC- - licensed material, or material used under an exception or - limitation to copyright. More considerations for licensors: - wiki.creativecommons.org/Considerations_for_licensors - Considerations for the public: By using one of our public - licenses, a licensor grants the public permission to use the - licensed material under specified terms and conditions. If - the licensor's permission is not necessary for any reason--for - example, because of any applicable exception or limitation to - copyright--then that use is not regulated by the license. Our - licenses grant only permissions under copyright and certain - other rights that a licensor has authority to grant. Use of - the licensed material may still be restricted for other - reasons, including because others have copyright or other - rights in the material. A licensor may make special requests, - such as asking that all changes be marked or described. - Although not required by our licenses, you are encouraged to - respect those requests where reasonable. More_considerations - for the public: - wiki.creativecommons.org/Considerations_for_licensees -Creative Commons Attribution 4.0 International Public License - -By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions. - - -Section 1 -- Definitions. - - a. Adapted Material means material subject to Copyright and Similar - Rights that is derived from or based upon the Licensed Material - and in which the Licensed Material is translated, altered, - arranged, transformed, or otherwise modified in a manner requiring - permission under the Copyright and Similar Rights held by the - Licensor. For purposes of this Public License, where the Licensed - Material is a musical work, performance, or sound recording, - Adapted Material is always produced where the Licensed Material is - synched in timed relation with a moving image. - b. Adapter's License means the license You apply to Your Copyright - and Similar Rights in Your contributions to Adapted Material in - accordance with the terms and conditions of this Public License. - c. Copyright and Similar Rights means copyright and/or similar rights - closely related to copyright including, without limitation, - performance, broadcast, sound recording, and Sui Generis Database - Rights, without regard to how the rights are labeled or - categorized. For purposes of this Public License, the rights - specified in Section 2(b)(1)-(2) are not Copyright and Similar - Rights. - d. Effective Technological Measures means those measures that, in the - absence of proper authority, may not be circumvented under laws - fulfilling obligations under Article 11 of the WIPO Copyright - Treaty adopted on December 20, 1996, and/or similar international - agreements. - e. Exceptions and Limitations means fair use, fair dealing, and/or - any other exception or limitation to Copyright and Similar Rights - that applies to Your use of the Licensed Material. - f. Licensed Material means the artistic or literary work, database, - or other material to which the Licensor applied this Public - License. - g. Licensed Rights means the rights granted to You subject to the - terms and conditions of this Public License, which are limited to - all Copyright and Similar Rights that apply to Your use of the - Licensed Material and that the Licensor has authority to license. - h. Licensor means the individual(s) or entity(ies) granting rights - under this Public License. - i. Share means to provide material to the public by any means or - process that requires permission under the Licensed Rights, such - as reproduction, public display, public performance, distribution, - dissemination, communication, or importation, and to make material - available to the public including in ways that members of the - public may access the material from a place and at a time - individually chosen by them. - j. Sui Generis Database Rights means rights other than copyright - resulting from Directive 96/9/EC of the European Parliament and of - the Council of 11 March 1996 on the legal protection of databases, - as amended and/or succeeded, as well as other essentially - equivalent rights anywhere in the world. - k. You means the individual or entity exercising the Licensed Rights - under this Public License. Your has a corresponding meaning. - -Section 2 -- Scope. - - a. License grant. - 1. Subject to the terms and conditions of this Public License, - the Licensor hereby grants You a worldwide, royalty-free, - non-sublicensable, non-exclusive, irrevocable license to - exercise the Licensed Rights in the Licensed Material to: - a. reproduce and Share the Licensed Material, in whole or - in part; and - b. produce, reproduce, and Share Adapted Material. - 2. Exceptions and Limitations. For the avoidance of doubt, where - Exceptions and Limitations apply to Your use, this Public - License does not apply, and You do not need to comply with - its terms and conditions. - 3. Term. The term of this Public License is specified in Section - 6(a). - 4. Media and formats; technical modifications allowed. The - Licensor authorizes You to exercise the Licensed Rights in - all media and formats whether now known or hereafter created, - and to make technical modifications necessary to do so. The - Licensor waives and/or agrees not to assert any right or - authority to forbid You from making technical modifications - necessary to exercise the Licensed Rights, including - technical modifications necessary to circumvent Effective - Technological Measures. For purposes of this Public License, - simply making modifications authorized by this Section 2(a) - (4) never produces Adapted Material. - 5. Downstream recipients. - a. Offer from the Licensor -- Licensed Material. Every - recipient of the Licensed Material automatically - receives an offer from the Licensor to exercise the - Licensed Rights under the terms and conditions of this - Public License. - b. No downstream restrictions. You may not offer or impose - any additional or different terms or conditions on, or - apply any Effective Technological Measures to, the - Licensed Material if doing so restricts exercise of the - Licensed Rights by any recipient of the Licensed - Material. - 6. No endorsement. Nothing in this Public License constitutes or - may be construed as permission to assert or imply that You - are, or that Your use of the Licensed Material is, connected - with, or sponsored, endorsed, or granted official status by, - the Licensor or others designated to receive attribution as - provided in Section 3(a)(1)(A)(i). - b. Other rights. - 1. Moral rights, such as the right of integrity, are not - licensed under this Public License, nor are publicity, - privacy, and/or other similar personality rights; however, to - the extent possible, the Licensor waives and/or agrees not to - assert any such rights held by the Licensor to the limited - extent necessary to allow You to exercise the Licensed - Rights, but not otherwise. - 2. Patent and trademark rights are not licensed under this - Public License. - 3. To the extent possible, the Licensor waives any right to - collect royalties from You for the exercise of the Licensed - Rights, whether directly or through a collecting society - under any voluntary or waivable statutory or compulsory - licensing scheme. In all other cases the Licensor expressly - reserves any right to collect such royalties. - -Section 3 -- License Conditions. - -Your exercise of the Licensed Rights is expressly made subject to the following conditions. - - a. Attribution. - 1. If You Share the Licensed Material (including in modified - form), You must: - a. retain the following if it is supplied by the Licensor - with the Licensed Material: - i. identification of the creator(s) of the Licensed - Material and any others designated to receive - attribution, in any reasonable manner requested by - the Licensor (including by pseudonym if - designated); - ii. a copyright notice; - iii. a notice that refers to this Public License; - iv. a notice that refers to the disclaimer of - warranties; - v. a URI or hyperlink to the Licensed Material to the - extent reasonably practicable; - b. indicate if You modified the Licensed Material and - retain an indication of any previous modifications; and - c. indicate the Licensed Material is licensed under this - Public License, and include the text of, or the URI or - hyperlink to, this Public License. - 2. You may satisfy the conditions in Section 3(a)(1) in any - reasonable manner based on the medium, means, and context in - which You Share the Licensed Material. For example, it may be - reasonable to satisfy the conditions by providing a URI or - hyperlink to a resource that includes the required - information. - 3. If requested by the Licensor, You must remove any of the - information required by Section 3(a)(1)(A) to the extent - reasonably practicable. - 4. If You Share Adapted Material You produce, the Adapter's - License You apply must not prevent recipients of the Adapted - Material from complying with this Public License. - -Section 4 -- Sui Generis Database Rights. - -Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material: - - a. for the avoidance of doubt, Section 2(a)(1) grants You the right - to extract, reuse, reproduce, and Share all or a substantial - portion of the contents of the database; - b. if You include all or a substantial portion of the database - contents in a database in which You have Sui Generis Database - Rights, then the database in which You have Sui Generis Database - Rights (but not its individual contents) is Adapted Material; and - c. You must comply with the conditions in Section 3(a) if You Share - all or a substantial portion of the contents of the database. -For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights. - - -Section 5 -- Disclaimer of Warranties and Limitation of Liability. - - a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE - EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS - AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF - ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, - IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, - WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR - PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, - ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT - KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT - ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. - b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE - TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, - NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, - INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, - COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR - USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN - ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR - DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR - IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. - c. The disclaimer of warranties and limitation of liability provided - above shall be interpreted in a manner that, to the extent - possible, most closely approximates an absolute disclaimer and - waiver of all liability. - -Section 6 -- Term and Termination. - - a. This Public License applies for the term of the Copyright and - Similar Rights licensed here. However, if You fail to comply with - this Public License, then Your rights under this Public License - terminate automatically. - b. Where Your right to use the Licensed Material has terminated under - Section 6(a), it reinstates: - 1. automatically as of the date the violation is cured, provided - it is cured within 30 days of Your discovery of the - violation; or - 2. upon express reinstatement by the Licensor. - For the avoidance of doubt, this Section 6(b) does not affect any - right the Licensor may have to seek remedies for Your violations - of this Public License. - c. For the avoidance of doubt, the Licensor may also offer the - Licensed Material under separate terms or conditions or stop - distributing the Licensed Material at any time; however, doing so - will not terminate this Public License. - d. Sections 1, 5, 6, 7, and 8 survive termination of this Public - License. - -Section 7 -- Other Terms and Conditions. - - a. The Licensor shall not be bound by any additional or different - terms or conditions communicated by You unless expressly agreed. - b. Any arrangements, understandings, or agreements regarding the - Licensed Material not stated herein are separate from and - independent of the terms and conditions of this Public License. - -Section 8 -- Interpretation. - - a. For the avoidance of doubt, this Public License does not, and - shall not be interpreted to, reduce, limit, restrict, or impose - conditions on any use of the Licensed Material that could lawfully - be made without permission under this Public License. - b. To the extent possible, if any provision of this Public License is - deemed unenforceable, it shall be automatically reformed to the - minimum extent necessary to make it enforceable. If the provision - cannot be reformed, it shall be severed from this Public License - without affecting the enforceability of the remaining terms and - conditions. - c. No term or condition of this Public License will be waived and no - failure to comply consented to unless expressly agreed to by the - Licensor. - d. Nothing in this Public License constitutes or may be interpreted - as a limitation upon, or waiver of, any privileges and immunities - that apply to the Licensor or You, including from the legal - processes of any jurisdiction or authority. -Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the "Licensor." The text of the Creative Commons public licenses is dedicated to the public domain under the CC0 Public Domain Dedication. Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at creativecommons.org/policies, Creative Commons does not authorize the use of the trademark "Creative Commons" or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses. - -Creative Commons may be contacted at creativecommons.org. \ No newline at end of file diff --git a/openo-portal/portal-common/src/main/webapp/common/image/about/License.txt b/openo-portal/portal-common/src/main/webapp/common/image/about/License.txt deleted file mode 100644 index d1ce787a..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/about/License.txt +++ /dev/null @@ -1,362 +0,0 @@ -THIS LICENSE FILE CONTAINS THE LICENSE APPLICABLE DEPENDING ON THE TYPE OF CONTRIBUTIONS. - -APACHE LICENSE 2 IS APPLICABLE FOR SOURCE CODE, CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL FOR DOCUMENTATION - -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - - -Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - -"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - -"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - -"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - -"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - -"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - -"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - -"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - -"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - -"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - -"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - -2. Grant of Copyright License. - -Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. - -Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - -4. Redistribution. - -You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - -You must give any other recipients of the Work or Derivative Works a copy of this License; and You must cause any modified files to carry prominent notices stating that You changed the files; and You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - -5. Submission of Contributions. - -Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - -6. Trademarks. - -This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. - -Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. - -In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. - -While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS - -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - -Attribution 4.0 International - -https://creativecommons.org/licenses/by/4.0/legalcode - -Creative Commons Corporation ("Creative Commons") is not a law firm and does not provide legal services or legal advice. Distribution of Creative Commons public licenses does not create a lawyer-client or other relationship. Creative Commons makes its licenses and related information available on an "as-is" basis. Creative Commons gives no warranties regarding its licenses, any material licensed under their terms and conditions, or any related information. Creative Commons disclaims all liability for damages resulting from their use to the fullest extent possible. - -Using Creative Commons Public Licenses - -Creative Commons public licenses provide a standard set of terms and conditions that creators and other rights holders may use to share original works of authorship and other material subject to copyright and certain other rights specified in the public license below. The following considerations are for informational purposes only, are not exhaustive, and do not form part of our licenses. - - Considerations for licensors: Our public licenses are - intended for use by those authorized to give the public - permission to use material in ways otherwise restricted by - copyright and certain other rights. Our licenses are - irrevocable. Licensors should read and understand the terms - and conditions of the license they choose before applying it. - Licensors should also secure all rights necessary before - applying our licenses so that the public can reuse the - material as expected. Licensors should clearly mark any - material not subject to the license. This includes other CC- - licensed material, or material used under an exception or - limitation to copyright. More considerations for licensors: - wiki.creativecommons.org/Considerations_for_licensors - Considerations for the public: By using one of our public - licenses, a licensor grants the public permission to use the - licensed material under specified terms and conditions. If - the licensor's permission is not necessary for any reason--for - example, because of any applicable exception or limitation to - copyright--then that use is not regulated by the license. Our - licenses grant only permissions under copyright and certain - other rights that a licensor has authority to grant. Use of - the licensed material may still be restricted for other - reasons, including because others have copyright or other - rights in the material. A licensor may make special requests, - such as asking that all changes be marked or described. - Although not required by our licenses, you are encouraged to - respect those requests where reasonable. More_considerations - for the public: - wiki.creativecommons.org/Considerations_for_licensees -Creative Commons Attribution 4.0 International Public License - -By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions. - - -Section 1 -- Definitions. - - a. Adapted Material means material subject to Copyright and Similar - Rights that is derived from or based upon the Licensed Material - and in which the Licensed Material is translated, altered, - arranged, transformed, or otherwise modified in a manner requiring - permission under the Copyright and Similar Rights held by the - Licensor. For purposes of this Public License, where the Licensed - Material is a musical work, performance, or sound recording, - Adapted Material is always produced where the Licensed Material is - synched in timed relation with a moving image. - b. Adapter's License means the license You apply to Your Copyright - and Similar Rights in Your contributions to Adapted Material in - accordance with the terms and conditions of this Public License. - c. Copyright and Similar Rights means copyright and/or similar rights - closely related to copyright including, without limitation, - performance, broadcast, sound recording, and Sui Generis Database - Rights, without regard to how the rights are labeled or - categorized. For purposes of this Public License, the rights - specified in Section 2(b)(1)-(2) are not Copyright and Similar - Rights. - d. Effective Technological Measures means those measures that, in the - absence of proper authority, may not be circumvented under laws - fulfilling obligations under Article 11 of the WIPO Copyright - Treaty adopted on December 20, 1996, and/or similar international - agreements. - e. Exceptions and Limitations means fair use, fair dealing, and/or - any other exception or limitation to Copyright and Similar Rights - that applies to Your use of the Licensed Material. - f. Licensed Material means the artistic or literary work, database, - or other material to which the Licensor applied this Public - License. - g. Licensed Rights means the rights granted to You subject to the - terms and conditions of this Public License, which are limited to - all Copyright and Similar Rights that apply to Your use of the - Licensed Material and that the Licensor has authority to license. - h. Licensor means the individual(s) or entity(ies) granting rights - under this Public License. - i. Share means to provide material to the public by any means or - process that requires permission under the Licensed Rights, such - as reproduction, public display, public performance, distribution, - dissemination, communication, or importation, and to make material - available to the public including in ways that members of the - public may access the material from a place and at a time - individually chosen by them. - j. Sui Generis Database Rights means rights other than copyright - resulting from Directive 96/9/EC of the European Parliament and of - the Council of 11 March 1996 on the legal protection of databases, - as amended and/or succeeded, as well as other essentially - equivalent rights anywhere in the world. - k. You means the individual or entity exercising the Licensed Rights - under this Public License. Your has a corresponding meaning. - -Section 2 -- Scope. - - a. License grant. - 1. Subject to the terms and conditions of this Public License, - the Licensor hereby grants You a worldwide, royalty-free, - non-sublicensable, non-exclusive, irrevocable license to - exercise the Licensed Rights in the Licensed Material to: - a. reproduce and Share the Licensed Material, in whole or - in part; and - b. produce, reproduce, and Share Adapted Material. - 2. Exceptions and Limitations. For the avoidance of doubt, where - Exceptions and Limitations apply to Your use, this Public - License does not apply, and You do not need to comply with - its terms and conditions. - 3. Term. The term of this Public License is specified in Section - 6(a). - 4. Media and formats; technical modifications allowed. The - Licensor authorizes You to exercise the Licensed Rights in - all media and formats whether now known or hereafter created, - and to make technical modifications necessary to do so. The - Licensor waives and/or agrees not to assert any right or - authority to forbid You from making technical modifications - necessary to exercise the Licensed Rights, including - technical modifications necessary to circumvent Effective - Technological Measures. For purposes of this Public License, - simply making modifications authorized by this Section 2(a) - (4) never produces Adapted Material. - 5. Downstream recipients. - a. Offer from the Licensor -- Licensed Material. Every - recipient of the Licensed Material automatically - receives an offer from the Licensor to exercise the - Licensed Rights under the terms and conditions of this - Public License. - b. No downstream restrictions. You may not offer or impose - any additional or different terms or conditions on, or - apply any Effective Technological Measures to, the - Licensed Material if doing so restricts exercise of the - Licensed Rights by any recipient of the Licensed - Material. - 6. No endorsement. Nothing in this Public License constitutes or - may be construed as permission to assert or imply that You - are, or that Your use of the Licensed Material is, connected - with, or sponsored, endorsed, or granted official status by, - the Licensor or others designated to receive attribution as - provided in Section 3(a)(1)(A)(i). - b. Other rights. - 1. Moral rights, such as the right of integrity, are not - licensed under this Public License, nor are publicity, - privacy, and/or other similar personality rights; however, to - the extent possible, the Licensor waives and/or agrees not to - assert any such rights held by the Licensor to the limited - extent necessary to allow You to exercise the Licensed - Rights, but not otherwise. - 2. Patent and trademark rights are not licensed under this - Public License. - 3. To the extent possible, the Licensor waives any right to - collect royalties from You for the exercise of the Licensed - Rights, whether directly or through a collecting society - under any voluntary or waivable statutory or compulsory - licensing scheme. In all other cases the Licensor expressly - reserves any right to collect such royalties. - -Section 3 -- License Conditions. - -Your exercise of the Licensed Rights is expressly made subject to the following conditions. - - a. Attribution. - 1. If You Share the Licensed Material (including in modified - form), You must: - a. retain the following if it is supplied by the Licensor - with the Licensed Material: - i. identification of the creator(s) of the Licensed - Material and any others designated to receive - attribution, in any reasonable manner requested by - the Licensor (including by pseudonym if - designated); - ii. a copyright notice; - iii. a notice that refers to this Public License; - iv. a notice that refers to the disclaimer of - warranties; - v. a URI or hyperlink to the Licensed Material to the - extent reasonably practicable; - b. indicate if You modified the Licensed Material and - retain an indication of any previous modifications; and - c. indicate the Licensed Material is licensed under this - Public License, and include the text of, or the URI or - hyperlink to, this Public License. - 2. You may satisfy the conditions in Section 3(a)(1) in any - reasonable manner based on the medium, means, and context in - which You Share the Licensed Material. For example, it may be - reasonable to satisfy the conditions by providing a URI or - hyperlink to a resource that includes the required - information. - 3. If requested by the Licensor, You must remove any of the - information required by Section 3(a)(1)(A) to the extent - reasonably practicable. - 4. If You Share Adapted Material You produce, the Adapter's - License You apply must not prevent recipients of the Adapted - Material from complying with this Public License. - -Section 4 -- Sui Generis Database Rights. - -Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material: - - a. for the avoidance of doubt, Section 2(a)(1) grants You the right - to extract, reuse, reproduce, and Share all or a substantial - portion of the contents of the database; - b. if You include all or a substantial portion of the database - contents in a database in which You have Sui Generis Database - Rights, then the database in which You have Sui Generis Database - Rights (but not its individual contents) is Adapted Material; and - c. You must comply with the conditions in Section 3(a) if You Share - all or a substantial portion of the contents of the database. -For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights. - - -Section 5 -- Disclaimer of Warranties and Limitation of Liability. - - a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE - EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS - AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF - ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, - IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, - WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR - PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, - ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT - KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT - ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. - b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE - TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, - NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, - INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, - COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR - USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN - ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR - DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR - IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. - c. The disclaimer of warranties and limitation of liability provided - above shall be interpreted in a manner that, to the extent - possible, most closely approximates an absolute disclaimer and - waiver of all liability. - -Section 6 -- Term and Termination. - - a. This Public License applies for the term of the Copyright and - Similar Rights licensed here. However, if You fail to comply with - this Public License, then Your rights under this Public License - terminate automatically. - b. Where Your right to use the Licensed Material has terminated under - Section 6(a), it reinstates: - 1. automatically as of the date the violation is cured, provided - it is cured within 30 days of Your discovery of the - violation; or - 2. upon express reinstatement by the Licensor. - For the avoidance of doubt, this Section 6(b) does not affect any - right the Licensor may have to seek remedies for Your violations - of this Public License. - c. For the avoidance of doubt, the Licensor may also offer the - Licensed Material under separate terms or conditions or stop - distributing the Licensed Material at any time; however, doing so - will not terminate this Public License. - d. Sections 1, 5, 6, 7, and 8 survive termination of this Public - License. - -Section 7 -- Other Terms and Conditions. - - a. The Licensor shall not be bound by any additional or different - terms or conditions communicated by You unless expressly agreed. - b. Any arrangements, understandings, or agreements regarding the - Licensed Material not stated herein are separate from and - independent of the terms and conditions of this Public License. - -Section 8 -- Interpretation. - - a. For the avoidance of doubt, this Public License does not, and - shall not be interpreted to, reduce, limit, restrict, or impose - conditions on any use of the Licensed Material that could lawfully - be made without permission under this Public License. - b. To the extent possible, if any provision of this Public License is - deemed unenforceable, it shall be automatically reformed to the - minimum extent necessary to make it enforceable. If the provision - cannot be reformed, it shall be severed from this Public License - without affecting the enforceability of the remaining terms and - conditions. - c. No term or condition of this Public License will be waived and no - failure to comply consented to unless expressly agreed to by the - Licensor. - d. Nothing in this Public License constitutes or may be interpreted - as a limitation upon, or waiver of, any privileges and immunities - that apply to the Licensor or You, including from the legal - processes of any jurisdiction or authority. -Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the "Licensor." The text of the Creative Commons public licenses is dedicated to the public domain under the CC0 Public Domain Dedication. Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at creativecommons.org/policies, Creative Commons does not authorize the use of the trademark "Creative Commons" or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses. - -Creative Commons may be contacted at creativecommons.org. \ No newline at end of file diff --git a/openo-portal/portal-common/src/main/webapp/common/image/about/about-bg-dark.png b/openo-portal/portal-common/src/main/webapp/common/image/about/about-bg-dark.png deleted file mode 100644 index e6e984edc3e05ff756bd400f323f57104f646fac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 87487 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 mj+lYN=|8+^ebnBaGOui_N&g5|29?*RbM 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 B9>o9v diff --git a/openo-portal/portal-common/src/main/webapp/common/image/accordion-plusminus.png b/openo-portal/portal-common/src/main/webapp/common/image/accordion-plusminus.png deleted file mode 100644 index 1fef17828a0d8cdbb8500ff8569916fdf59a74dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmeAS@N?(olHy`uVBq!ia0vp@K&->T1|;`M8@&fok|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XTs&PILn>}1{rLaip4rSM``ViSJD$vtIKgl@P*_=GipMom zsV7rdEHzBrn3F;-uUHo7tL!0s`pwPFo_asrxV^nh7+EA3zDP#eJ}5bo3^b3y)78&q Iol`;+01Xp0GXMYp diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ajax-loading.gif b/openo-portal/portal-common/src/main/webapp/common/image/ajax-loading.gif deleted file mode 100644 index 115f89846f6c96fd07e75e40d28735a7afd725ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29959 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 diff --git a/openo-portal/portal-common/src/main/webapp/common/image/arrow-down.png b/openo-portal/portal-common/src/main/webapp/common/image/arrow-down.png deleted file mode 100644 index c503da9b0ed331e3956396c27936596902e9b419..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 966 zcmaJ=yKmD#95(M#QHg~CB&5@IDbVg2uC4_)GSCi_9d}W`;2|TPQ*h( zEbtc~u`n`$#0CsSpbp&_5eqvDD_c3INyZ!?c)N+oq%q$MO)@AWD}3K zQVgGX0b_GqVIv7FyN@Yol+lncgK?(QVtx<>@qiWM0_3gX^H`YNR zK}^8I)B=gO<3}jb;8+(iJG~Yl7(-}ZgNH%2%o-?>5CetJW^7TCfU5FRPEl297099_ z3nE);M#>>YMe-V$e2{qyoerw&<%utL(qNC$00}}I$9$aSN!S&nd_JFQ$a01uGSSed zR+90f<*9;>BRg~h>JlHMidLHps0LZ2hbef$OxBMkWnu*r5-SiSUQAP(0!{P(P|us8 zBU;Bt@%~ddY7PS|)Nw=xq0JiCSx#LAs1#z0lCVk0&a{fP9-$=akpPq$Dp=WeeTT%+ zl`-BlQN@p_<=eQTYmh1MuIr$(m^BQks3^I7Ns1s;(Jjamv++J@Bwk zr(EZVtIp-7qu>S1vyMaeK6c6>@xVA`_#Co68kgFhbhczZyNgV$+kF zv$17|+2CWJO?$}3`s%`?B6||3q8FRV_xA6DgU6T8?;da80iEk#KGfc$7o55m7-0RK v@9eES|9SylE8jl(dG*}uS7*<>JO(~-Z~3P`zU|-qnZB%wQPtmU-hJ{1g~}`y diff --git a/openo-portal/portal-common/src/main/webapp/common/image/avatar.png b/openo-portal/portal-common/src/main/webapp/common/image/avatar.png deleted file mode 100644 index 2a14b35d609df2c27dbe48e983af072441ddf586..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2016 zcmah~dpJ~iA0Kq1Vq4L>F6$VyvF1Kz#xR%*nKJG%)=G0ZIBMpMnKNeGHf&L>q$Qh@ zdLAT6%N9wY^3KxA7O$e7w?rhidab3KUGJHewm;ry-}9Vve!t)M`FuX#>v_)p;K0pm zO{`2X7|dF}KQ9zrar$SKA^N_cRo_IHPY_=r5(dX18j%vju%)mV1o$#hJQxa!q$x?= zpeF`n^br&;M1+C>rUaJZMS2WgD^s9s493%2s}MMQ~B_n7>3IYjFB*qP z6cWjo%plTf42~O}N2IX1JT7gC%a^MVkz4{UaiPDs#J}Y-xk^xkz{+qK-nG=d-~H;D*tFNJuV)H7b2!7vlt#P%Q^GRfU1gZi2i_?Z4vE7flBr}W(Va}8QQg=? zjxU$tN2Sp?bS@FQ$dP`K?f>NvQ0D}F8$W34k_nv^{r3HkqKEfm4$9HlR-!|!#BK4# zV3x)4dF*iQz01OuKu7kPa$K49G7fOiXT-m#Yaid(XT<2$#y`H!#E`L_B^U$aWk9EG z(mrd;LD9nlPUjk82Ks;KWBx;+i7bs}JuJU@^JdAGDm#lu-syZzTU*;>Tj$@_XD`fu zzVQ96a%D@MWk2kf)*X8~NZiO+wI`idnplwTNH5B#sFBDsVt+Z0e%7?Ar?!;9G5mI1 z`6*}L5pK+-UCut0tI~dTs&H4)Ll3+7c9vcLBCEvNqxO3I4bs_fZ!F|tQZ`mS@Vc=6 zhLQAq_>ilm?Q=`$Tyav7qU=Oh^Qy<|EJW=t*~?F2jVD@uy^HVDJq2pdoJmVbN!h&{ zmdkZxKj#gHL`PfS!bBA?Dsc!S!`msw%hMAHhxyv9YoH_oF@Eyn3~% zbMvP2Z)RsLihFu`e9ZS6+1ZjA42Flt{kwP3Z+K-VWJoo&a6YzRQRS#uZIhwZezzew zR187Tkz>akPw~UfWY@TOU5qerI_j`-*r+qp{k6EQBBI+m%cm02XrADo|MJWH{JiV9 zT|kjruFFJ+!RNtsmLHcyRz8i|Iv&R?HM^V>cFk95;c#dO4qts}^weelD*&OvP4VUS z?bU3cwxXg!#P-tQlBU|aldnGSvV3aWP~F~cHxw}-OzVQba_LWz-!UrA$;qLb*0o%^ zWN3AI+Yz0iN$t7fttD#AI_81G!v4oGv9WeGHXY^9n&it1#?5-;Ty5Aj($?12w{PEC zE^~^|>c+=6c4bnciVv^QS+#jK)CUevPE8e^XliN-&+QPJnVC(m-*#}czhFb!XPs}> zH~*gd@~9hWlsJpN`r$J3p&2do$`=H_Tlq@$$%y{yi@vm-e?KkvLrolZA0f?fHa zd-tsTOu{W&$mNdePk$1`COdqe9f7FT7EK+39`mjVg{aZLZpS}Yyd0)oC!yuJm1}#O z_Vve=udiHT1>p0(5nk9bYu6%aV40i%sKZS&Gc&IWr+ZCH8umOI4xW+OXNiYT=uR~> ztSfCC`H>9e6%KAVBs3jfNciIPls&mGBQo);kl=rvDxsQ21J9mxBqj|K=q29_1q S`WNW`xqRP1UOi_=_J09Ca5*~w diff --git a/openo-portal/portal-common/src/main/webapp/common/image/bg-opacity.png b/openo-portal/portal-common/src/main/webapp/common/image/bg-opacity.png deleted file mode 100644 index 1be54cb028063275df98706c0d76c38836ac60c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 130 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE;=WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2!fo6;Bt(kcwMLDG3P~2@8}Gk`@?Am=;_)5XkJ#D`Q%)LV`me afnlv6!-|87^#_3J89ZJ6T-G@yGywqeOe2y2 diff --git a/openo-portal/portal-common/src/main/webapp/common/image/bg-white-lock.png b/openo-portal/portal-common/src/main/webapp/common/image/bg-white-lock.png deleted file mode 100644 index 159e17543778ea47536e826aaf0ed7d94fd6ad15..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2816 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 diff --git a/openo-portal/portal-common/src/main/webapp/common/image/checkbox-radio/checkbox-init.png b/openo-portal/portal-common/src/main/webapp/common/image/checkbox-radio/checkbox-init.png deleted file mode 100644 index e352cc517b84491160583438a2f334055caee932..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2833 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 diff --git a/openo-portal/portal-common/src/main/webapp/common/image/checkbox-radio/radio-checked-disabled.png b/openo-portal/portal-common/src/main/webapp/common/image/checkbox-radio/radio-checked-disabled.png deleted file mode 100644 index 16eecc57e55cefd80d1e2d01da75eb98f028e448..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2993 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 diff --git a/openo-portal/portal-common/src/main/webapp/common/image/checkbox-radio/radio-checked.png b/openo-portal/portal-common/src/main/webapp/common/image/checkbox-radio/radio-checked.png deleted file mode 100644 index 6c60d128a3e8d85506e16665de93fd05fe30b5fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3235 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 diff --git a/openo-portal/portal-common/src/main/webapp/common/image/checkbox-radio/radio-hover.png b/openo-portal/portal-common/src/main/webapp/common/image/checkbox-radio/radio-hover.png deleted file mode 100644 index 03138ca620bc6ce4f1d83e2d3c709de8b1febf19..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3068 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 diff --git a/openo-portal/portal-common/src/main/webapp/common/image/empty.png b/openo-portal/portal-common/src/main/webapp/common/image/empty.png deleted file mode 100644 index a1d202bc0ec5934d11a67049e013e730f92b72f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2790 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 diff --git a/openo-portal/portal-common/src/main/webapp/common/image/firefox_icon.png b/openo-portal/portal-common/src/main/webapp/common/image/firefox_icon.png deleted file mode 100644 index 81470065160671429898a0e3195c7e989b359931..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3759 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 diff --git a/openo-portal/portal-common/src/main/webapp/common/image/hor-menu-search-close-white.png b/openo-portal/portal-common/src/main/webapp/common/image/hor-menu-search-close-white.png deleted file mode 100644 index d5bebfc9fa92d3f7b22d1f49e13b18080b4e1db7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^+#t-s1|(OmDOUqhk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5X5}fnHb2$pvd7O`|{uQukIUoO#9BjEo1O>^>bP0l+XkKu-!yx diff --git a/openo-portal/portal-common/src/main/webapp/common/image/hor-menu-search-close.png b/openo-portal/portal-common/src/main/webapp/common/image/hor-menu-search-close.png deleted file mode 100644 index 6dae950c606a89b11a5c60972e422cb45267cd98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmeAS@N?(olHy`uVBq!ia0vp^+#t-s1|(OmDOUqhk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XTs&PILn>}1Wn^Uh`27EWJ)4un625Z^O9Wh$x&ItrD4^FD z%p@&8+w=a!%spKnEjw!_C#o@Jy6wqRvoh)6OAksCP&mLKuq1Z2Q)Z?x&^!iDS3j3^ HP63(3`I}gvk>t!S%FItK?c-a=(Do0vaqvoUrym7)M;h`;uc~A8O3Slgh04A z3D>SxkuCChjs!?v*aMyI*V_X^hqs758BWt~wILO*h?Sg>_Jl97=5roI-1V-Fwu2RD nml1;~N>GU^c46tkJmW9DhC=qggEkbq(~shxqcY)qgt6UTqoN#b diff --git a/openo-portal/portal-common/src/main/webapp/common/image/hor-menu-search.png b/openo-portal/portal-common/src/main/webapp/common/image/hor-menu-search.png deleted file mode 100644 index 2a72156c82385ae970884e62337703c90e029742..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 299 zcmV+`0o4A9P)o>)O8Jssh|_xH5SUF z%|2vQQce*C8gu2duEJQ8)2=rwU$#3B0i?923f)m@K5b;Rm&no0inQ*X8<>M&{e&KH zM?g0k*@XGj3x(*9Q0wqnc%bAA|ZCw|j@8&G&OdD5WpBY_g?pp|T xtY~ciBRpb9Pg?tQgu0ooE8jw6VfOnHU;u}Y`(zPLDo6kT002ovPDHLkV1f*hdVBx? diff --git a/openo-portal/portal-common/src/main/webapp/common/image/icon-color-close.png b/openo-portal/portal-common/src/main/webapp/common/image/icon-color-close.png deleted file mode 100644 index 9b7dfacce6f9320a2a288775463ea299eaf60e75..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1031 zcmaJ=PiWIn91f^sjMd2mryk^yoy0Z&);4Qgoo&;(I6FpHSYaZ|lGinK$&1O`nob0_ ziA+3?5FJ0Stum)b$&Y@EFSDlIlPzuA?ak6jPms8K~;ztLw0z zq7DEfo5Q*EB}qdjqxu-eGi}1AsQv-ZR<$C;UqV%buu z#FTm&@CG#d3a1R+QeLAPvS)eBl~cU?h-uI3mvHjo8;MRf|z;uuYw?xkSb4Oz>r zm5CIL^;DbX8O~3s4os*24>ipO+Qk{T@Asd=ZnkVgHUnKW>uBWS^4)$YTS_`m#mLDb zG*hqQXaQm57LW~+V_`6ESUM`XRdhNnDVB>>OM{9WqY0le3|-=qq8N(z@?tU);`x-& zC-n6t6RDKIi{X%%NYuG9(q>I);W}5}=L$`^ej}JRi7Z3Mn1lMDgG^9OSTdS=5eA#; z)wp_dFI-bDOU$tTwf=R@^&`?d{<6`uWYcJSXpvrbNK=1aoZKQ0;<_Tov)gauI=GTdA;*Y$J~0mcmGlGLHlv~XQkZosfAr$ zTRF5G_!T{}@TRS2j#;QY`B7<|*uL^yzA^Ob^vmBL?_GOno!VH1mDO*t^Dn4);Lgp1 f8-cF_Z@(X#q^MiLFFTtnOa9YTQX}$OVsh~h$B|0z diff --git a/openo-portal/portal-common/src/main/webapp/common/image/icon-color.png b/openo-portal/portal-common/src/main/webapp/common/image/icon-color.png deleted file mode 100644 index b9666ee98e52467a3cec1a187bbd1163cb5e3cea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1240 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`Gjk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+m=!WZB1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%s|1+P|wiV z#N6CmN5ROz&_Lh7NZ-&%*U;R`*vQJjKmiJrfVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8EkR}&8R-I5=oVMzl_XZ^<`pZ$OmImpPAEg{v+u2}(t{7puX=A(aKG z`a!A1`K3k4z=%sz23b{L$o& z6x?oc!l_pu=oo!av?4__ObD2EKuma|1#;lYJ~a=R){B6NdRf(^-3$zjex5FlAr-fh z{`~)M&peSKR#Dk-mIQk@tCPbYG2b5Xj{O23`3Hx zPF6w$_bN6?4#m}u*A=*q)KB1femL2J=kvnIMcwC{+*T~Q%o5XgR(<)xD)k4O7@qt( zAK>~`MS}0}*MPnG3u}@UrX~OAm%TALvC-D7S>k{4`OHHOfBKFr>C`ngx^Ra{O{S~# z?|Dzopr0LK2G AJpcdz diff --git a/openo-portal/portal-common/src/main/webapp/common/image/icon-img-down.png b/openo-portal/portal-common/src/main/webapp/common/image/icon-img-down.png deleted file mode 100644 index 1b85914d6c825f67b4b167d6dd03e770418d051a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1023 zcmaJ=Pe>F|93C|+L@VlI67d*CO4|9i>x?_NuItX48_go)f(u=ooq4*G&b)Evt-I?* zQ3!*&cIZ?$sffA>26e4d6hQ<*P=TH5;K9JKH|y@&p>5#J`@{Erzwh^ZzjtdgbET`J zr-P!XuJnYW1v42ZPqdT&?#kV_WIBgaIXs1CaY^?el`v5rg0!vAK@I9=W$_gprl>Yx zWpg;EUXu-EGkSnw%C<|`6g3<#ySgzCG04L?%ZbrHwqMY|GGp}gpvtLk5*Dn9We-j* zXR^lfyb(3&_y`y-%S6D2SO;Z$!SUsCjIQd+WE~u{G^j%Ge2hLcl~X4{5_u2|GF-^u zL=K2N!-pf1BwYpq$8#(vu)GlBB{?j}90zJ2O`>_`tgI>HwOC{qqYD_jGRu}qC8iW+ zkT=Kj(P%W#5QGpxg#3zw^>WDZd+Q1c^bOB)v4tEEDC&7s#4(yUJxsxN8?ugHD-$Ug zTh?8cXSg7xI#5;r54G(E+Q%9^^7~I=KU;Ajt3e+XJ%e1_Y;O?Cm6IOSG4iqqE!3+x zSwI;11>}O{)F7C)921rNDq2Q4+;SSW-BV=TpL%!Y88K zP+~}uq6(Li>RbgGMH@P}&NYv?k*3_B5p0)4R-k7sL37+gHmD{nTg|=jP4#MAv$+?c zDVHT?*x*|Ky5{;3>78KNXj-yqv^{i4uY07a*9S(n$b%@Rl|;7uF~4_k5N{LrN7LWq zOtimUc)8hsai+5Q`1$#X>#fgj?tj{jyO)kV{6cBc>fX@VNxg5Q<;?2U&+jSi)Y65K zJ3Bq2`P=uq$2F=naC+rF%9F8~wLj~1MVbHr diff --git a/openo-portal/portal-common/src/main/webapp/common/image/icon-img-up.png b/openo-portal/portal-common/src/main/webapp/common/image/icon-img-up.png deleted file mode 100644 index d90af40050f681b13675439bc2ea4db4d56f69bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 999 zcmaJ=J#5oJ7`!=zzq^gqYY^kQiV>73G{JDFeaM`F`}?``-86cTeiex06$;DURck zdQEG@GaJ*FCfWbz!)G7abd6S8bcJ+i&kQhEvPl~Q-8I*71Dp2l)(2eVxC!7iTeM}| zQ!L^NW{eRc*Jo^wD=tL7X>DK%+IZdZRQ~(xH#~4`m0!&n(D2K+>(urFyt234wDvYE z+2$8+fnuaE0T)vfMDC^+Dv`?fbrrUbk3}BzA#_9K&rG$9Iw+F>gPZ^}7R*DCM*_;u z6$*t}AVCC0D2YhQpn{T>6bQlK<5{%8?kEkdI*7$~D&M8lS46Sb>j}NAK!SA<$+8@4 zNK%F&GU2XA%_!rA>7jy#Lo0B6>JSgaie{T^Q@1uFoQCIB<5bT@8o}`Uxw}crVgey#d!A?5@;e64?7 z^YDoEPP`m7E!&LR9(%0U1J=|j^j>EV;=Znxn$hR>uhY|oiTt;%>H}GjZ%od<{qgcR z0Qm9&;%0>8;_TDA>6z(ds(wAWnc6>cK6xi!F4nHxvAXv0L1OaAv5yZEht*=~_wyIv g=7nmmlvsR};J(&&_OG6#-^EW)uPke?mewBs0j@SSF8}}l diff --git a/openo-portal/portal-common/src/main/webapp/common/image/input-spinner.gif b/openo-portal/portal-common/src/main/webapp/common/image/input-spinner.gif deleted file mode 100644 index 5b33f7e54f4e55b6b8774d86d96895db9af044b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1849 zcma*odr(tX9tZI2z31lM+(&YVk%mZ}5P~KlG2s=WSbGzm0!x7^P##Mnh7t-jP!X0Q zk_SQ}Po-L1tlDK;6l?(>v)e5ZBQx4|Y-Q?nr@Px3?9h(3ZWr3^tj=`TP57gKr87N$ zp2wWee1GRRCwo_xahnw)5cxNPJbCg2L6DV|6`#+yw6v6!mDS$f9-JvFD^n;GQ&UrZ zzh5jCkByB101O60U0q#p_1BM>Cv-vP?&s4@g_((4_1L=L$(a91)0=J91Gas#R{McE znYG^9*0A5YZ>#;~+Wkn(W5B0^yELIYLP!K}mB~<)AM@1&nqekynuaEGqPrzoH|KodRXJy)%+w_fu3nE5>@Bd_b zqC$EQ;{c`T&?EsNO|igL9gC7Ygxv?aQUEXMq?~>wg{EyW;VcJ37CUF#HjrT=KQO_* zS>M9yydXk18D(+QDJ1>r);Lav_uYKp$T?4vr{Q$lTo&pKv^?(>L-)G2*lwH!Ah7k? z7oH<8h-(KTKt5V6$8gF)C7Io&P5=SjTh)=zV=E2EUhQZP##L8S{d%UK>>+y82>+FV+#^BzW7u3F)Bb>=lYQ%%j`F>ASe zo*cw@V#u6T`A2He;70mR(V&iV&-7{qP~=SRf&jm9-T{*ZeZ}$rd0#6c&fLG^xJcf5 z+p<`wJYgW+_s*V{uI$nMB;%8`S_3>PfGOj3Rq}@Cx^+j?rk92fANSFDBYnOqQ>Vdj z)(|$AhP4t&Lb=Gvo2#3Gl%9<=Gv`Mz?Po@P4iLF!x}GUWJICDlFk-hS^Whyh7x~VH z@0vD1>HYD4&e+~yzS*-sFR{9`{QEEZO1zg7>R&7cHts-6j!xHVdA8eI+ZlVzd%`es zJT@$#GX(gvCJ1oJN%yLBK}{V=V;seo;!w|Yte!W1%5qLNFWqvZW>h&IiH+oPT=b@E zPhGzv5=(Un*X>v`>%8h_nj^NdYcE6NHS_ifkCV$*D)Tqrbu`s;<=t<4 zAHNqNV?6(g<1PY-w@#I-WYFViz?9TrkMr)u0g`O`u|>T;k|2sV*YF^punvT;$SuTy{j3Gv)yqD!R_CF>yR)MzmmYS5v+~R zXAdD%ng9?df;wd8GxR#%3O+gz};Vo;)sK%Bj-q>Oq%R7JU-KD?vYu>#2UjaDo z&8$>5xW~?KPD_#XFToU1hIb*VOMidUr6iYiO0N|i-7s`T8!cFT`rN!^1Pt78J93i6 z5HI1wIM$94m{3SLDvISDe6$ZG1;eq_D9RTaaC>=cO{@Bs>$IlPCPJJ$h$)-3vzNUQ6OsN#_zWxey!_9%hxwH2_dEJi=yY|1c7nDm2_Lm!Cof8-R_+9UkS zcBE(o47yE)oMR(Q=dp1a2wTX5KvvGyLqlWTa7V&!A*|w|)ax~1_~aJ0=_Lilg*0iQk7#ZD EAHN$8j{pDw diff --git a/openo-portal/portal-common/src/main/webapp/common/image/integration/License.txt b/openo-portal/portal-common/src/main/webapp/common/image/integration/License.txt deleted file mode 100644 index d1ce787a..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/integration/License.txt +++ /dev/null @@ -1,362 +0,0 @@ -THIS LICENSE FILE CONTAINS THE LICENSE APPLICABLE DEPENDING ON THE TYPE OF CONTRIBUTIONS. - -APACHE LICENSE 2 IS APPLICABLE FOR SOURCE CODE, CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL FOR DOCUMENTATION - -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - - -Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - -"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - -"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - -"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - -"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - -"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - -"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - -"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - -"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - -"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - -"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - -2. Grant of Copyright License. - -Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. - -Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - -4. Redistribution. - -You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - -You must give any other recipients of the Work or Derivative Works a copy of this License; and You must cause any modified files to carry prominent notices stating that You changed the files; and You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - -5. Submission of Contributions. - -Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - -6. Trademarks. - -This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. - -Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. - -In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. - -While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS - -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - -Attribution 4.0 International - -https://creativecommons.org/licenses/by/4.0/legalcode - -Creative Commons Corporation ("Creative Commons") is not a law firm and does not provide legal services or legal advice. Distribution of Creative Commons public licenses does not create a lawyer-client or other relationship. Creative Commons makes its licenses and related information available on an "as-is" basis. Creative Commons gives no warranties regarding its licenses, any material licensed under their terms and conditions, or any related information. Creative Commons disclaims all liability for damages resulting from their use to the fullest extent possible. - -Using Creative Commons Public Licenses - -Creative Commons public licenses provide a standard set of terms and conditions that creators and other rights holders may use to share original works of authorship and other material subject to copyright and certain other rights specified in the public license below. The following considerations are for informational purposes only, are not exhaustive, and do not form part of our licenses. - - Considerations for licensors: Our public licenses are - intended for use by those authorized to give the public - permission to use material in ways otherwise restricted by - copyright and certain other rights. Our licenses are - irrevocable. Licensors should read and understand the terms - and conditions of the license they choose before applying it. - Licensors should also secure all rights necessary before - applying our licenses so that the public can reuse the - material as expected. Licensors should clearly mark any - material not subject to the license. This includes other CC- - licensed material, or material used under an exception or - limitation to copyright. More considerations for licensors: - wiki.creativecommons.org/Considerations_for_licensors - Considerations for the public: By using one of our public - licenses, a licensor grants the public permission to use the - licensed material under specified terms and conditions. If - the licensor's permission is not necessary for any reason--for - example, because of any applicable exception or limitation to - copyright--then that use is not regulated by the license. Our - licenses grant only permissions under copyright and certain - other rights that a licensor has authority to grant. Use of - the licensed material may still be restricted for other - reasons, including because others have copyright or other - rights in the material. A licensor may make special requests, - such as asking that all changes be marked or described. - Although not required by our licenses, you are encouraged to - respect those requests where reasonable. More_considerations - for the public: - wiki.creativecommons.org/Considerations_for_licensees -Creative Commons Attribution 4.0 International Public License - -By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions. - - -Section 1 -- Definitions. - - a. Adapted Material means material subject to Copyright and Similar - Rights that is derived from or based upon the Licensed Material - and in which the Licensed Material is translated, altered, - arranged, transformed, or otherwise modified in a manner requiring - permission under the Copyright and Similar Rights held by the - Licensor. For purposes of this Public License, where the Licensed - Material is a musical work, performance, or sound recording, - Adapted Material is always produced where the Licensed Material is - synched in timed relation with a moving image. - b. Adapter's License means the license You apply to Your Copyright - and Similar Rights in Your contributions to Adapted Material in - accordance with the terms and conditions of this Public License. - c. Copyright and Similar Rights means copyright and/or similar rights - closely related to copyright including, without limitation, - performance, broadcast, sound recording, and Sui Generis Database - Rights, without regard to how the rights are labeled or - categorized. For purposes of this Public License, the rights - specified in Section 2(b)(1)-(2) are not Copyright and Similar - Rights. - d. Effective Technological Measures means those measures that, in the - absence of proper authority, may not be circumvented under laws - fulfilling obligations under Article 11 of the WIPO Copyright - Treaty adopted on December 20, 1996, and/or similar international - agreements. - e. Exceptions and Limitations means fair use, fair dealing, and/or - any other exception or limitation to Copyright and Similar Rights - that applies to Your use of the Licensed Material. - f. Licensed Material means the artistic or literary work, database, - or other material to which the Licensor applied this Public - License. - g. Licensed Rights means the rights granted to You subject to the - terms and conditions of this Public License, which are limited to - all Copyright and Similar Rights that apply to Your use of the - Licensed Material and that the Licensor has authority to license. - h. Licensor means the individual(s) or entity(ies) granting rights - under this Public License. - i. Share means to provide material to the public by any means or - process that requires permission under the Licensed Rights, such - as reproduction, public display, public performance, distribution, - dissemination, communication, or importation, and to make material - available to the public including in ways that members of the - public may access the material from a place and at a time - individually chosen by them. - j. Sui Generis Database Rights means rights other than copyright - resulting from Directive 96/9/EC of the European Parliament and of - the Council of 11 March 1996 on the legal protection of databases, - as amended and/or succeeded, as well as other essentially - equivalent rights anywhere in the world. - k. You means the individual or entity exercising the Licensed Rights - under this Public License. Your has a corresponding meaning. - -Section 2 -- Scope. - - a. License grant. - 1. Subject to the terms and conditions of this Public License, - the Licensor hereby grants You a worldwide, royalty-free, - non-sublicensable, non-exclusive, irrevocable license to - exercise the Licensed Rights in the Licensed Material to: - a. reproduce and Share the Licensed Material, in whole or - in part; and - b. produce, reproduce, and Share Adapted Material. - 2. Exceptions and Limitations. For the avoidance of doubt, where - Exceptions and Limitations apply to Your use, this Public - License does not apply, and You do not need to comply with - its terms and conditions. - 3. Term. The term of this Public License is specified in Section - 6(a). - 4. Media and formats; technical modifications allowed. The - Licensor authorizes You to exercise the Licensed Rights in - all media and formats whether now known or hereafter created, - and to make technical modifications necessary to do so. The - Licensor waives and/or agrees not to assert any right or - authority to forbid You from making technical modifications - necessary to exercise the Licensed Rights, including - technical modifications necessary to circumvent Effective - Technological Measures. For purposes of this Public License, - simply making modifications authorized by this Section 2(a) - (4) never produces Adapted Material. - 5. Downstream recipients. - a. Offer from the Licensor -- Licensed Material. Every - recipient of the Licensed Material automatically - receives an offer from the Licensor to exercise the - Licensed Rights under the terms and conditions of this - Public License. - b. No downstream restrictions. You may not offer or impose - any additional or different terms or conditions on, or - apply any Effective Technological Measures to, the - Licensed Material if doing so restricts exercise of the - Licensed Rights by any recipient of the Licensed - Material. - 6. No endorsement. Nothing in this Public License constitutes or - may be construed as permission to assert or imply that You - are, or that Your use of the Licensed Material is, connected - with, or sponsored, endorsed, or granted official status by, - the Licensor or others designated to receive attribution as - provided in Section 3(a)(1)(A)(i). - b. Other rights. - 1. Moral rights, such as the right of integrity, are not - licensed under this Public License, nor are publicity, - privacy, and/or other similar personality rights; however, to - the extent possible, the Licensor waives and/or agrees not to - assert any such rights held by the Licensor to the limited - extent necessary to allow You to exercise the Licensed - Rights, but not otherwise. - 2. Patent and trademark rights are not licensed under this - Public License. - 3. To the extent possible, the Licensor waives any right to - collect royalties from You for the exercise of the Licensed - Rights, whether directly or through a collecting society - under any voluntary or waivable statutory or compulsory - licensing scheme. In all other cases the Licensor expressly - reserves any right to collect such royalties. - -Section 3 -- License Conditions. - -Your exercise of the Licensed Rights is expressly made subject to the following conditions. - - a. Attribution. - 1. If You Share the Licensed Material (including in modified - form), You must: - a. retain the following if it is supplied by the Licensor - with the Licensed Material: - i. identification of the creator(s) of the Licensed - Material and any others designated to receive - attribution, in any reasonable manner requested by - the Licensor (including by pseudonym if - designated); - ii. a copyright notice; - iii. a notice that refers to this Public License; - iv. a notice that refers to the disclaimer of - warranties; - v. a URI or hyperlink to the Licensed Material to the - extent reasonably practicable; - b. indicate if You modified the Licensed Material and - retain an indication of any previous modifications; and - c. indicate the Licensed Material is licensed under this - Public License, and include the text of, or the URI or - hyperlink to, this Public License. - 2. You may satisfy the conditions in Section 3(a)(1) in any - reasonable manner based on the medium, means, and context in - which You Share the Licensed Material. For example, it may be - reasonable to satisfy the conditions by providing a URI or - hyperlink to a resource that includes the required - information. - 3. If requested by the Licensor, You must remove any of the - information required by Section 3(a)(1)(A) to the extent - reasonably practicable. - 4. If You Share Adapted Material You produce, the Adapter's - License You apply must not prevent recipients of the Adapted - Material from complying with this Public License. - -Section 4 -- Sui Generis Database Rights. - -Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material: - - a. for the avoidance of doubt, Section 2(a)(1) grants You the right - to extract, reuse, reproduce, and Share all or a substantial - portion of the contents of the database; - b. if You include all or a substantial portion of the database - contents in a database in which You have Sui Generis Database - Rights, then the database in which You have Sui Generis Database - Rights (but not its individual contents) is Adapted Material; and - c. You must comply with the conditions in Section 3(a) if You Share - all or a substantial portion of the contents of the database. -For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights. - - -Section 5 -- Disclaimer of Warranties and Limitation of Liability. - - a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE - EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS - AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF - ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, - IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, - WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR - PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, - ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT - KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT - ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. - b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE - TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, - NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, - INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, - COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR - USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN - ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR - DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR - IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. - c. The disclaimer of warranties and limitation of liability provided - above shall be interpreted in a manner that, to the extent - possible, most closely approximates an absolute disclaimer and - waiver of all liability. - -Section 6 -- Term and Termination. - - a. This Public License applies for the term of the Copyright and - Similar Rights licensed here. However, if You fail to comply with - this Public License, then Your rights under this Public License - terminate automatically. - b. Where Your right to use the Licensed Material has terminated under - Section 6(a), it reinstates: - 1. automatically as of the date the violation is cured, provided - it is cured within 30 days of Your discovery of the - violation; or - 2. upon express reinstatement by the Licensor. - For the avoidance of doubt, this Section 6(b) does not affect any - right the Licensor may have to seek remedies for Your violations - of this Public License. - c. For the avoidance of doubt, the Licensor may also offer the - Licensed Material under separate terms or conditions or stop - distributing the Licensed Material at any time; however, doing so - will not terminate this Public License. - d. Sections 1, 5, 6, 7, and 8 survive termination of this Public - License. - -Section 7 -- Other Terms and Conditions. - - a. The Licensor shall not be bound by any additional or different - terms or conditions communicated by You unless expressly agreed. - b. Any arrangements, understandings, or agreements regarding the - Licensed Material not stated herein are separate from and - independent of the terms and conditions of this Public License. - -Section 8 -- Interpretation. - - a. For the avoidance of doubt, this Public License does not, and - shall not be interpreted to, reduce, limit, restrict, or impose - conditions on any use of the Licensed Material that could lawfully - be made without permission under this Public License. - b. To the extent possible, if any provision of this Public License is - deemed unenforceable, it shall be automatically reformed to the - minimum extent necessary to make it enforceable. If the provision - cannot be reformed, it shall be severed from this Public License - without affecting the enforceability of the remaining terms and - conditions. - c. No term or condition of this Public License will be waived and no - failure to comply consented to unless expressly agreed to by the - Licensor. - d. Nothing in this Public License constitutes or may be interpreted - as a limitation upon, or waiver of, any privileges and immunities - that apply to the Licensor or You, including from the legal - processes of any jurisdiction or authority. -Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the "Licensor." The text of the Creative Commons public licenses is dedicated to the public domain under the CC0 Public Domain Dedication. Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at creativecommons.org/policies, Creative Commons does not authorize the use of the trademark "Creative Commons" or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses. - -Creative Commons may be contacted at creativecommons.org. \ No newline at end of file diff --git a/openo-portal/portal-common/src/main/webapp/common/image/integration/openo_bg_1.jpg b/openo-portal/portal-common/src/main/webapp/common/image/integration/openo_bg_1.jpg deleted file mode 100644 index db94b166550fb71d58a15ca2411922a35fcaa181..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 152396 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') - .insertBefore( $('li:last', an[i])[0] ) - .bind('click', function (e) { - e.preventDefault(); - oSettings._iDisplayStart = (parseInt($('a', this).text(),10)-1) * oPaging.iLength; - fnDraw( oSettings ); - } ); - } - - // Add / remove disabled classes from the static elements - if ( oPaging.iPage === 0 ) { - $('li:first', an[i]).addClass('disabled'); - } else { - $('li:first', an[i]).removeClass('disabled'); - } - - if ( oPaging.iPage === oPaging.iTotalPages-1 || oPaging.iTotalPages === 0 ) { - $('li:last', an[i]).addClass('disabled'); - } else { - $('li:last', an[i]).removeClass('disabled'); - } - } - } - } -} ); - -/* Bootstrap style full number pagination control */ -$.extend( $.fn.dataTableExt.oPagination, { - "bootstrap_full_number": { - "fnInit": function( oSettings, nPaging, fnDraw ) { - var oLang = oSettings.oLanguage.oPaginate; - var fnClickHandler = function ( e ) { - e.preventDefault(); - if ( oSettings.oApi._fnPageChange(oSettings, e.data.action) ) { - fnDraw( oSettings ); - } - }; - - $(nPaging).append( - '
      ' + - '' + - ''+ - '' + - '' + - '
    ' - ); - var els = $('a', nPaging); - $(els[0]).bind('click.DT', { action: "first" }, fnClickHandler); - $(els[1]).bind( 'click.DT', { action: "previous" }, fnClickHandler ); - $(els[2]).bind('click.DT', { action: "next" }, fnClickHandler); - $(els[3]).bind('click.DT', { action: "last" }, fnClickHandler); - }, - - "fnUpdate": function ( oSettings, fnDraw ) { - var iListLength = 5; - var oPaging = oSettings.oInstance.fnPagingInfo(); - var an = oSettings.aanFeatures.p; - var i, j, sClass, iStart, iEnd, iHalf=Math.floor(iListLength/2); - - if ( oPaging.iTotalPages < iListLength) { - iStart = 1; - iEnd = oPaging.iTotalPages; - } - else if ( oPaging.iPage <= iHalf ) { - iStart = 1; - iEnd = iListLength; - } else if ( oPaging.iPage >= (oPaging.iTotalPages-iHalf) ) { - iStart = oPaging.iTotalPages - iListLength + 1; - iEnd = oPaging.iTotalPages; - } else { - iStart = oPaging.iPage - iHalf + 1; - iEnd = iStart + iListLength - 1; - } - - - - for ( i=0, iLen=an.length ; i'+j+'') - .insertBefore( $('li.next:first', an[i])[0] ) - .bind('click', function (e) { - e.preventDefault(); - oSettings._iDisplayStart = (parseInt($('a', this).text(),10)-1) * oPaging.iLength; - fnDraw( oSettings ); - } ); - } - - // Add / remove disabled classes from the static elements - if ( oPaging.iPage === 0 ) { - $('li.prev', an[i]).addClass('disabled'); - } else { - $('li.prev', an[i]).removeClass('disabled'); - } - - if ( oPaging.iPage === oPaging.iTotalPages-1 || oPaging.iTotalPages === 0 ) { - $('li.next', an[i]).addClass('disabled'); - } else { - $('li.next', an[i]).removeClass('disabled'); - } - } - } - } -} ); - -/* Bootstrap style full number pagination control */ -$.extend( $.fn.dataTableExt.oPagination, { - "bootstrap_extended": { - "fnInit": function( oSettings, nPaging, fnDraw ) { - var oLang = oSettings.oLanguage.oPaginate; - var oPaging = oSettings.oInstance.fnPagingInfo(); - - var fnClickHandler = function ( e ) { - e.preventDefault(); - if ( oSettings.oApi._fnPageChange(oSettings, e.data.action) ) { - fnDraw( oSettings ); - } - }; - - $(nPaging).append( - '
    ' + oLang.sPage + ' ' + - '' + - '' + - ' ' + - oLang.sPageOf + ' ' + - '
    ' - ); - - var els = $('a', nPaging); - - $(els[0]).bind('click.DT', { action: "previous" }, fnClickHandler ); - $(els[1]).bind('click.DT', { action: "next" }, fnClickHandler); - - $('.pagination-panel-input', nPaging).bind('change.DT', function(e) { - var oPaging = oSettings.oInstance.fnPagingInfo(); - e.preventDefault(); - var page = parseInt($(this).val()); - if (page > 0 && page < oPaging.iTotalPages) { - if ( oSettings.oApi._fnPageChange(oSettings, page-1) ) { - fnDraw( oSettings ); - } - } else { - $(this).val(oPaging.iPage + 1); - } - }); - - $('.pagination-panel-input', nPaging).bind('keypress.DT', function(e) { - var oPaging = oSettings.oInstance.fnPagingInfo(); - if (e.which == 13) { - var page = parseInt($(this).val()); - if (page > 0 && page < oSettings.oInstance.fnPagingInfo().iTotalPages) { - if ( oSettings.oApi._fnPageChange(oSettings, page-1) ) { - fnDraw( oSettings ); - } - } else { - $(this).val(oPaging.iPage + 1); - } - e.preventDefault(); - } - }); - }, - - "fnUpdate": function ( oSettings, fnDraw ) { - var iListLength = 5; - var oPaging = oSettings.oInstance.fnPagingInfo(); - var an = oSettings.aanFeatures.p; - var i, j, sClass, iStart, iEnd, iHalf=Math.floor(iListLength/2); - - if ( oPaging.iTotalPages < iListLength) { - iStart = 1; - iEnd = oPaging.iTotalPages; - } - else if ( oPaging.iPage <= iHalf ) { - iStart = 1; - iEnd = iListLength; - } else if ( oPaging.iPage >= (oPaging.iTotalPages-iHalf) ) { - iStart = oPaging.iTotalPages - iListLength + 1; - iEnd = oPaging.iTotalPages; - } else { - iStart = oPaging.iPage - iHalf + 1; - iEnd = iStart + iListLength - 1; - } - - - for ( i=0, iLen=an.length ; i'+j+'') - .insertBefore( $('li.next:first', an[i])[0] ) - .bind('click', function (e) { - e.preventDefault(); - oSettings._iDisplayStart = (parseInt($('a', this).text(),10)-1) * oPaging.iLength; - fnDraw( oSettings ); - } ); - } - - // Add / remove disabled classes from the static elements - if ( oPaging.iPage === 0 ) { - $('a.prev', an[i]).addClass('disabled'); - } else { - $('a.prev', an[i]).removeClass('disabled'); - } - - if ( oPaging.iPage === oPaging.iTotalPages-1 || oPaging.iTotalPages === 0 ) { - $('a.next', an[i]).addClass('disabled'); - } else { - $('a.next', an[i]).removeClass('disabled'); - } - } - } - } -} ); - -/* - * TableTools Bootstrap compatibility - * Required TableTools 2.1+ - */ -if ( $.fn.DataTable.TableTools ) { - // Set the classes that TableTools uses to something suitable for Bootstrap - $.extend( true, $.fn.DataTable.TableTools.classes, { - "container": "btn-group", - "buttons": { - "normal": "btn default", - "disabled": "btn disabled" - }, - "collection": { - "container": "DTTT_dropdown dropdown-menu", - "buttons": { - "normal": "", - "disabled": "disabled" - } - } - } ); - - // Have the collection use a bootstrap compatible dropdown - $.extend( true, $.fn.DataTable.TableTools.DEFAULTS.oTags, { - "collection": { - "container": "ul", - "button": "li", - "liner": "a" - } - } ); -} \ No newline at end of file diff --git a/openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/DataTableICT.js b/openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/DataTableICT.js deleted file mode 100644 index 27234eff..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/DataTableICT.js +++ /dev/null @@ -1,1459 +0,0 @@ -/*** - Wrapper/Helper Class for datagrid based on jQuery Datatable Plugin - ***/ -var DatatableICT = function () { - - var contextData; - var tableOptions; // main options - var dataTable; // datatable object - var table; // actual table jquery object - var tableContainer; // actual table container object - var tableWrapper; // actual table wrapper jquery object - var tableInitialized = false; - var ajaxParams = []; // set filter mode - var columns; - var xsHiddenColumns; - var smHiddenColumns; - var columnMaxLength = 30; - var columnsTooLong; - var hidden_xs_maxWidth = 768; - var hidden_sm_maxWidth = 991; - - var openRowFlag = false; - var rowOverFlag = false; - var rowCheckable = false; - - var aTargetsAll; - var sTotalRecordsSource; - var totalRecords; - var tableHeight; - - var requestType="GET"; - var callbackList = []; - var checkedRowDatas = []; - var currentPageData; - - var includedInXsHiddenColumns = function(columnId){ - for(var i=0;i tr > td:nth-child(1) input[type="checkbox"]:checked', table).size(); - var text = tableOptions.dataTable.oLanguage.sGroupActions; - if (selected > 0) { - $('.table-group-actions > span', tableWrapper).text(text.replace("_TOTAL_", selected)); - } else { - $('.table-group-actions > span', tableWrapper).text(""); - } - } - - var jsonObjectToArray = function(json, columns, iDraw){ - var jsonToDatatable = {aaData:[], sEcho:iDraw, iTotalRecords:0, iTotalDisplayRecords:0 }; - //获取数据的属性 - var dataField; - //性能的情况 - if(json.data){ - dataField = json.data; - } - //告警的情况 - if(json.response && json.response.data){ - dataField = json.response.data; - } - for(var i=0; i"); - } - if(openRowFlag){ - jsonToDatatable.aaData[i].push(""); - } - for(var j=0; j= hidden_xs_maxWidth && $(window).width() < hidden_sm_maxWidth && includedInSmHiddenColumns(columns[j].columnId )){ - /*隐藏pad尺寸需要隐藏的列*/ - }else if($(window).width() < hidden_xs_maxWidth && includedInXsHiddenColumns(columns[j].columnId )){ - /*隐藏手机尺寸需要隐藏的列*/ - }else{ - var currentColumnId = columns[j].columnId; - if(jQuery.inArray(currentColumnId, columnsTooLong) > -1){ - var rawText = ""; - for(var k=0;k columnMaxLength){ - jsonToDatatable.aaData[i].push(rawText.slice(0, columnMaxLength) + '...'); - }else{ - jsonToDatatable.aaData[i].push(resRowObject[currentColumnId]); - } - } else { - jsonToDatatable.aaData[i].push(resRowObject[currentColumnId]); - } - - } - } - } - jsonToDatatable.sEcho++; - //取得总行数 - var totalRow = 0; - if(requestType == "POST"){ //性能的情况单独发请求获得总行数 - totalRow = totalRecords; - }else{ - var totalRecordsSource = eval('json.' + sTotalRecordsSource); - if(totalRecordsSource && totalRecordsSource.length >0){ - totalRow = parseInt(totalRecordsSource); - } - } - if(isNaN(totalRow)){ - alert('All rows counting number got fail!'); - }else{ - jsonToDatatable.iTotalRecords = totalRow; - jsonToDatatable.iTotalDisplayRecords = totalRow; - } - return jsonToDatatable; - } - - var singleAlarmDel = function(divOverlay){ - - //根据浮动框的当前id获取需要删除的行 - var trId = divOverlay.attr('id_tr'); - tr=$('tr#' + trId); - var tds = $(tr).children(); - var tdAlarmId = ""; - if(rowCheckable){ - tdAlarmId = $(tds.eq(2)).text(); - }else{ - tdAlarmId = $(tds.eq(1)).text(); - } - - var data= { - "alarmId":[parseInt(tdAlarmId)] - }; - - var sSource = "/web/rest/web/fm/curalarms?data=" + JSON.stringify(data) + "&_operationType=remove&_dataSource=isc_PageRestDataSource_0&isc_metaDataPrefix=_&isc_dataFormat=json"; - - $.ajax( { - "dataType": 'json', - "type": "DELETE", - "url": sSource, - "data" : null, - "contentType" : 'application/json; charset=utf-8', - "success": function(json) { - if(json.response.status == 0){ - var resRowObject = json.response.data[0]; - //alert('删除成功'); - } - if(json.response.status == -1){ - //alert('删除失败'); - } - }, - "error": function() { - alert('Communication Error!'); - } - } ); - } - - var singleAlarmAckUnAck = function(divOverlay, ackType){ - - //根据浮动框的当前id获取需要确认的行 - var trId = divOverlay.attr('id_tr'); - var tr = $('tr#' + trId); - - //取得隐藏的头部表格的相应行 - var $tableHead = $('div.dataTables_scrollHeadInner > table.dataTable', contextData.wrapperDivContext); - //var trHead = $('tbody > tr:nth-child(' + trId + ')', $tableHead); - var trHead = $('tr#' + trId.replace('body', 'head'), $tableHead); - var tdDivs = $('td > div', trHead); - - var tds = $(tr).children(); - var tdAlarmId = ""; - if(rowCheckable){ - tdAlarmId = $(tds.eq(2)).text(); - }else{ - tdAlarmId = $(tds.eq(1)).text(); - } - - var aoData = - { - "dataSource":"isc_PageRestDataSource_0", - "operationType":"update", - "componentId":"isc_com_zte_ums_aos_fm_view_eventview_table_AlarmTable_0", - "data":{ - "viewType":1, - "state":ackType, - "alarmId":[ - parseInt(tdAlarmId) - ] - }, - "oldValues":null - }; - - var sSource = "/web/rest/web/fm/curalarms?isc_dataFormat=json"; - - $.ajax( { - "dataType": 'json', - "type": "PUT", - "url": sSource, - "contentType": 'application/json; charset=utf-8', - "data": JSON.stringify(aoData), - "success": function(json) { - if(callbackList[1]){ - json = callbackList[1](json); - } - if(json.response.status == 0){ - var resRowObject = json.response.data[0]; - var columnsCopy = $.extend(true, [], columns); - //隐藏列的情况下需要特殊处理 - if($(window).width()>=hidden_xs_maxWidth && $(window).width() -1) { - var rawText = ""; - for(var k=0;k columnMaxLength){ - $(tds.eq(i)).html(rawText.slice(0, columnMaxLength) + '...'); - $(tdDivs.eq(i)).html(rawText.slice(0, columnMaxLength) + '...'); - }else{ - $(tds.eq(i)).html(resRowObject[currentColumnId]); - $(tdDivs.eq(i)).html(resRowObject[currentColumnId]); - } - } else { - $(tds.eq(i)).html(resRowObject[currentColumnId]); - $(tdDivs.eq(i)).html(resRowObject[currentColumnId]); - } - } - //更新缓存中的当前行数据 - for (var t = 0; t < dataTable.datas.length; t++) { - var temp = dataTable.datas[t]; - if (temp.alarmId == resRowObject['alarmId']) { - dataTable.datas[t] = resRowObject; - break; - } - } - } - if(json.response.status == -1){ - $('div#myModalConfirm' + contextData.curentDatableId).modal({ - keyboard: false, - backdrop: 'static' - }); - $('span#alarm_number' + contextData.curentDatableId).html(tdAlarmId); - //国际化信息 - if(ackType==1){ - $('span#aos_fm_alarm_opeater_ack_already').html($.i18n.prop('aos_fm_alarm_opeater_ack_already_ok').replace(/\"/g,"").replace(";", "")); - }else{ - $('span#aos_fm_alarm_opeater_ack_already').html($.i18n.prop('aos_fm_alarm_opeater_ack_already_un').replace(/\"/g,"").replace(";", "")); - } - } - }, - "error": function() { - alert('Communication Error!'); - } - } ); - } - - var addRowOverlap = function(){ - var $tableData = $('table#datatable_ajax' + contextData.curentDatableId); - //取得隐藏的头部表格的相应行 - var $tableHead = $('div.dataTables_scrollHeadInner > table.dataTable', contextData.wrapperDivContext); - var trHeads = $tableHead.find('tr').get(); - $.each( trHeads, function( index, trHead ){ - $(trHead).attr('id', 'headTableTR' + index); - }); - //取得浮动div - var $divOverlay = $('div#divOverlay' + contextData.curentDatableId); - var divScrollHead = $('div.dataTables_scrollHead', contextData.wrapperDivContext); - var divRightPadding = $('div#divRightPadding' + contextData.curentDatableId); - //取表头下边沿位置 - var tableHeadBottomHeight = $(divScrollHead).position().top + $(divScrollHead).height(); - var tableBottom = $tableData.position().top + $tableData.height() + 3; - //取表格右边沿位置 - var tableRightEdgePosition = $(divRightPadding).position().left; - var trs = $tableData.find('tr').get(); - $.each( trs, function( index, tr ){ - var tdEmpty = $('td.dataTables_empty',tr); - if(!tdEmpty || tdEmpty.length ==0 ){ - $(tr).attr('id', 'bodyTableTR' + index + contextData.curentDatableId); - //$divOverlay.attr('id_tr', 'bodyTableTR' + index); - $(tr).one('hover', function(){ - var rowPos = $(tr).position(); - var currentTrTop = rowPos.top; - //var bottomLeft = rowPos.left; - $divOverlay.attr('id_tr', 'bodyTableTR' + index + contextData.curentDatableId); - $divOverlay.css({ - display: 'block', - position: 'absolute', - 'background-color': '#e5e5e5', - //opacity: 0.7, - border: 'solid 0px', - top: currentTrTop + 6, - left: tableRightEdgePosition - 308, - width: 300, - height: 30 - }); - //防止浮动框跳出表格内容区域 - if( $divOverlay.position().top < tableHeadBottomHeight || $divOverlay.position().top + $divOverlay.height() > tableBottom){ - $divOverlay.css('display', 'none'); - } - var buttonConfirm = $('div#buttonConfirm', $divOverlay); - var buttonUnConfirm = $('div#buttonUnConfirm', $divOverlay); - $(buttonConfirm).one('click', function(){ - var buttonRoundedTDsConfirm = $(buttonConfirm).find('td.buttonRounded'); - var buttonRoundedTDsUnConfirm = $(buttonUnConfirm).find('td.buttonRoundedDisabled'); - if(buttonRoundedTDsConfirm && buttonRoundedTDsConfirm.length > 0){ - $.each(buttonRoundedTDsConfirm, function(index, td){ - $(td).removeClass('buttonRounded').addClass('buttonRoundedDisabled'); - }); - $.each(buttonRoundedTDsUnConfirm, function(index, td){ - $(td).removeClass('buttonRoundedDisabled').addClass('buttonRounded'); - }); - $divOverlay.css('display', 'none'); - singleAlarmAckUnAck($divOverlay, 1); - } - }); - $(buttonUnConfirm).one('click', function(){ - var buttonRoundedTDsUnConfirm = $(buttonUnConfirm).find('td.buttonRounded'); - var buttonRoundedTDsConfirm = $(buttonConfirm).find('td.buttonRoundedDisabled'); - if(buttonRoundedTDsUnConfirm && buttonRoundedTDsUnConfirm.length > 0){ - $.each(buttonRoundedTDsUnConfirm, function(index, td){ - $(td).removeClass('buttonRounded').addClass('buttonRoundedDisabled'); - }); - $.each(buttonRoundedTDsConfirm, function(index, td){ - $(td).removeClass('buttonRoundedDisabled').addClass('buttonRounded'); - }); - $divOverlay.css('display', 'none'); - singleAlarmAckUnAck($divOverlay, 2); - } - }); - var buttonDelete = $('div#buttonDelete', $divOverlay); - $(buttonDelete).die().live('click', function(){ - //弹出删除确认对话框 - $('div#myModal' + contextData.curentDatableId).modal({ - keyboard: false, - backdrop: 'static' - }); - $('#delConfirm' + contextData.curentDatableId).die().live('click', function(){ - $divOverlay.css('display', 'none'); - dataTable.fnClose(tr); - $(tr).remove(); - //删除表头表格的相应行 - $('tr#' + $(tr).attr('id').replace('body', 'head'), $tableHead).remove(); - //删除后端数据 - singleAlarmDel($divOverlay); - //刷新表格 - dataTable.fnAdjustColumnSizing(); - }); - }); - //展开行的情况隐藏 - $('td.details > table.detailTable').on('hover', function(){ - $divOverlay.css('display', 'none'); - }); - }); - } - }); - } - - return { - - //main function to initiate the module - init: function (options, columnsDefined, xsHiddenColumnsDefined, smHiddenColumnsDefined) { - - if (!$().dataTable) { - return; - } - - var the = this; - - //记录需要禁掉默认排序的列 - var aTargets = []; - var targetsLength = columnsDefined.length; - if(rowCheckable)targetsLength++; - if(openRowFlag)targetsLength++; - for(var i=0;i<'col-md-4 col-sm-12'<'table-group-actions pull-right'>>r><'table-scrollable't><'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'>r>>", // datatable layout - - "aoColumnDefs" : [{ // define columns sorting options(by default all columns are sortable extept the first checkbox column) - 'bSortable' : false, - 'aTargets' : aTargets - }], - - "bAutoWidth": false, // disable fixed width and enable fluid table - //"bSortCellsTop": true, // make sortable only the first row in thead - "sPaginationType": "bootstrap_extended", // pagination type(bootstrap, bootstrap_full_number or bootstrap_extended) - "bProcessing": true, // enable/disable display message box on record load - "bServerSide": true, // enable/disable server side ajax loading - "sAjaxSource": "", // define ajax source URL - //"sServerMethod": "GET", - - // handle ajax request - "fnServerData": function ( sSource, aoData, fnCallback, oSettings ) { - //for ICT Paging - //var startIndex = aoData[3].value;//"iDisplayStart" - //var pageLength = aoData[4].value;//"iDisplayLength" - var oPaging = oSettings.oInstance.fnPagingInfo(); - //var startIndex = oPaging.iStart; - var pageLength = oPaging.iLength; - var curPageNo = oPaging.iPage + 1; - - for(var k=aoData.length-1;k>=0;k--){ - var flag = -1; - if(aoData[k].name=='pageSize'){ - aoData[k].value=pageLength; - flag++; - } - if(aoData[k].name=='pageNo'){ - aoData[k].value=curPageNo; - flag++ - } - if(flag == 1)break; - } - - if(requestType == "POST"){ - - var postData; - for(var k=aoData.length-1;k>=0;k--){ - if(aoData[k].name=='data'){ - postData = aoData[k].value; - postData.pageSize = pageLength; - postData.pageNo = curPageNo; - break; - } - } - - oSettings.jqXHR = $.ajax( { - "dataType": 'json', - "type": "POST", - "url": sSource, - "data": JSON.stringify(postData), - "contentType": 'application/json; charset=utf-8', - "success": function(res, textStatus, jqXHR) { - if (res.sMessage) { - openoFrameWork.alert({type: (res.sStatus == 'OK' ? 'success' : 'danger'), icon: (res.sStatus == 'OK' ? 'check' : 'warning'), message: res.sMessage, container: tableWrapper, place: 'prepend'}); - } - if ($('.group-checkable', tableContainer).size() === 1) { - $('.group-checkable', tableContainer).attr("checked", false); - $.uniform.update($('.group-checkable', tableContainer)); - } - if (tableOptions.onSuccess) { - tableOptions.onSuccess.call(the); - } - - if(callbackList[1]){ - res = callbackList[1](res); - } - - //转换返回数据给datatable - res = jsonObjectToArray(res, columns, oSettings.iDraw); - - //重绘表格 - fnCallback(res, textStatus, jqXHR); - }, - "error": function() { - if (tableOptions.onError) { - tableOptions.onError.call(the); - } - openoFrameWork.alert({type: 'danger', icon: 'warning', message: tableOptions.dataTable.oLanguage.sAjaxRequestGeneralError, container: tableWrapper, place: 'prepend'}); - $('.dataTables_processing', tableWrapper).remove(); - } - } ); - - } else { - - oSettings.jqXHR = $.ajax( { - "dataType": 'json', - "type": "GET", - "url": sSource, - "data": aoData, - "success": function(res, textStatus, jqXHR) { - if (res.sMessage) { - openoFrameWork.alert({type: (res.sStatus == 'OK' ? 'success' : 'danger'), icon: (res.sStatus == 'OK' ? 'check' : 'warning'), message: res.sMessage, container: tableWrapper, place: 'prepend'}); - } - if ($('.group-checkable', tableContainer).size() === 1) { - $('.group-checkable', tableContainer).attr("checked", false); - $.uniform.update($('.group-checkable', tableContainer)); - } - if (tableOptions.onSuccess) { - tableOptions.onSuccess.call(the); - } - //保存数据在dataTable对象中给行详细信息面板用 - if(res.response){ //告警的情况,返回数据在response属性里 - dataTable.datas = res.response.data; - if(res.response.status < 0){ - alert(res.response.data); - return; - } - } - - //保存当前页原始数据的备份 - currentPageData = $.extend(true, {}, res.response.data);; - - if(callbackList[1]){ - res = callbackList[1](res); - } - - //转换返回数据给datatable - res = jsonObjectToArray(res, columns, oSettings.iDraw); - - //重绘表格 - fnCallback(res, textStatus, jqXHR); - }, - "error": function() { - if (tableOptions.onError) { - tableOptions.onError.call(the); - } - openoFrameWork.alert({type: 'danger', icon: 'warning', message: tableOptions.dataTable.oLanguage.sAjaxRequestGeneralError, container: tableWrapper, place: 'prepend'}); - $('.dataTables_processing', tableWrapper).remove(); - } - } ); - } - - }, - - // pass additional parameter - "fnServerParams": function ( aoData ) { - //here can be added an external ajax request parameters. - //for(var i in ajaxParams) { - for(var i=0; i table.dataTable', tableWrapper); - var tbodyHead = $('tbody', $tableHead); - if(tbodyHead && tbodyHead.length >0){ - $(tbodyHead).remove(); - } - - var $tableBody = $('table#datatable_ajax' + contextData.curentDatableId, tableWrapper); - var trIn = $('thead > tr:nth-child(1)', $tableHead); - var trBodyHead = $('thead > tr:nth-child(1)', $tableBody); - var tds = $(trIn).children(); - var ths = $(trBodyHead).children(); - for(var k=0;k' + tds.eq(k).html() + ''); - } - var bodyRows = $('tbody > tr', $tableBody); - for(var i=0;i' + tds.eq(j).html() + ''); - $(tds.eq(j)).height('0px'); - $(tds.eq(j)).css('padding-top','0px'); - $(tds.eq(j)).css('padding-bottom','0px'); - $(tds.eq(j)).css('border-top-width','0px'); - $(tds.eq(j)).css('border-bottom-width','0px'); - } - $(rowClone).height('0px'); - $tableHead.append($(rowClone).prop("outerHTML")); - } - - $('div.dataTables_scrollBody', tableWrapper).css('width','100%'); - $('div.dataTables_scrollHead', tableWrapper).css('width','98.5%'); - $('div.dataTables_scrollHeadInner', tableWrapper).css('padding-right', 0); - - //添加浮动确认反确认按钮 - if(rowOverFlag){ - addRowOverlap(); - } - - //设置表格本体高度 - $('div.dataTables_scrollBody', tableWrapper).css('height', tableHeight); - } - } - }, options); - - tableOptions = options; - - columns = columnsDefined; - xsHiddenColumns = xsHiddenColumnsDefined; - smHiddenColumns = smHiddenColumnsDefined; - // create table's jquery object - table = $(options.src); - tableContainer = table.parents("div#table-container" + contextData.curentDatableId); - // apply the special class that used to restyle the default datatable - - $.fn.dataTableExt.oStdClasses.sWrapper = $.fn.dataTableExt.oStdClasses.sWrapper + " dataTables_extended_wrapper"; - - // initialize a datatable - dataTable = table.dataTable(options.dataTable); - - tableWrapper = table.parents('div.dataTables_wrapper', tableContainer); - - // modify table per page dropdown input by appliying some classes - $('.dataTables_length select', tableWrapper).addClass("form-control input-xsmall input-sm"); - - // handle group checkboxes check/uncheck - $('.group-checkable', tableContainer).change(function () { - var set = $('tbody > tr > td:nth-child(1) input[type="checkbox"]', table); - var checked = $(this).is(":checked"); - $(set).each(function () { - $(this).attr("checked", checked); - }); - $.uniform.update(set); - countSelectedRecords(); - }); - - // handle row's checkbox click - table.on('change', 'tbody > tr > td:nth-child(1) input[type="checkbox"]', function(){ - countSelectedRecords(); - }); - - //if ($.browser.safari) { - // $('.table-container').css('width','100%'); - //} - //填充表头右边界 - $('div.dataTables_scrollHead', tableContainer).css('display','inline-block'); - //var dataTables_scrollHead_height = $('.dataTables_scrollHead').css( "height" ); - $("div.dataTables_scrollHead", tableContainer).after("
    "); - if($.browser.mozilla){ - $('div#divRightPadding', tableContainer).css('height', '40'); - } - - //隐藏掉某些列 - var $tableHead = $('div.dataTables_scrollHeadInner > table.dataTable', tableWrapper); - var $tableBody = $('table#datatable_ajax' + contextData.curentDatableId, tableWrapper); - - for(var i=0;i tr > th#' + columns[j].columnId, $tableHead).addClass('hidden-xs'); - $('thead > tr > th#' + columns[j].columnId, $tableBody).addClass('hidden-xs'); - break; - } - } - } - - for(var i=0;i tr > th#' + columns[j].columnId, $tableHead).addClass('hidden-sm'); - $('thead > tr > th#' + columns[j].columnId, $tableBody).addClass('hidden-sm'); - break; - } - } - } - },//end init------------------------------------------------------------------------------------ - - getSelectedRowsCount: function() { - return $('tbody > tr > td:nth-child(1) input[type="checkbox"]:checked', table).size(); - }, - - getSelectedRows: function() { - var rows = []; - $('tbody > tr > td:nth-child(1) input[type="checkbox"]:checked', table).each(function(){ - rows.push({rowDataNo: $(this).attr("rowDataNo"), name: $(this).attr("name"), value: $(this).val()}); - }); - - return rows; - }, - - addAjaxParam: function(name, value) { - ajaxParams.push({"name": name, "value": value}); - }, - - clearAjaxParams: function(name, value) { - ajaxParams = []; - }, - - getDataTable: function() { - return dataTable; - }, - - getTableWrapper: function() { - return tableWrapper; - }, - - gettableContainer: function() { - return tableContainer; - }, - - getTable: function() { - return table; - }, - - setOpenRowFlag: function(openRowFlagInput) { - openRowFlag = openRowFlagInput; - }, - - setRowOverFlag: function(rowOverFlagInput) { - rowOverFlag = rowOverFlagInput; - }, - - setRowCheckable: function(rowCheckableInput) { - rowCheckable = rowCheckableInput; - }, - - setColumnsTooLong: function(columnsTooLongInput) { - columnsTooLong = columnsTooLongInput; - }, - - setSTotalRecordsSource: function(sTotalRecordsSourceInput){ - sTotalRecordsSource = sTotalRecordsSourceInput; - }, - - setTotalRecords: function(totalRecordsInput){ - totalRecords = totalRecordsInput; - }, - - setTableHeight: function(tableHeightInput){ - tableHeight = tableHeightInput; - }, - - setCallbackList: function(list){ - if($.isArray(list)){ - callbackList = list; - } - }, - - getCheckedRowDatas:function(){ - checkedRowDatas = []; - $('tbody > tr > td:nth-child(1) input[type="checkbox"]:checked', table).each(function(){ - var rowNoId = $(this).attr("rowDataNo"); - var rowNoIndex = rowNoId.slice(rowNoId.indexOf("_") + 1); - checkedRowDatas.push(currentPageData[parseInt(rowNoIndex)]); - }); - return checkedRowDatas; - }, - - setRequestType: function(requestTypeInput){ - requestType = requestTypeInput; - }, - - setContextData: function(newContextData){ - contextData = newContextData; - }, - - setTotalPage: function(newTotalPage){ - $("#datatable_ajax" + contextData.curentDatableId + "_info").html(tableOptions.dataTable.oLanguage.sInfo.replace("_TOTAL_", newTotalPage + "")); - } - - }; - -}; - -var TableAjaxICT = function () { - - var contextData; - - var initPickers = function () { - //init date pickers - $('.date-picker').datepicker({ - //rtl: App.isRTL(), - autoclose: true - }); - } - - //判断a数组是否包含b数组 - function isContained(largeArray, smallArray){ - if(!(largeArray instanceof Array) || !(smallArray instanceof Array)) - return false; - if(largeArray.length < smallArray.length) - return false; - for(var i = 0; i < smallArray.length; i++){ - var flag = false; - for(j=0;j' + alarmId + ''; - sOut += '' + columns[4].columnTitle + '' + perceivedSeverity + ''; - sOut += '' + columns[9].columnTitle + '' + alarmType + ''; - sOut += '' + columns[3].columnTitle + '' + alarmRaisedTime + ''; - - sOut += '' + columns[5].columnTitle + '' + probableCauseDesc + ''; - sOut += '' + columns[15].columnTitle + '' + alarmChangedTime + ''; - sOut += '' + columns[11].columnTitle + '' + ackState + ''; - - sOut += '' + columns[12].columnTitle + '' + ackTime + ''; - sOut += '' + columns[13].columnTitle + '' + ackUserId + ''; - sOut += '' + columns[14].columnTitle + '' + ackSystemId + ''; - sOut += '' + columns[7].columnTitle + '' + neip + ''; - - sOut += '' + columns[2].columnTitle + '' + moc + ''; - sOut += '' + columns[1].columnTitle + '' + resDisplayName + ''; - - sOut += '' + columns[8].columnTitle + '' + componentname + ''; - sOut += '' + columns[16].columnTitle + '' + position1 + ''; - - sOut += '' + columns[10].columnTitle + '' + specificproblem + ''; - - sOut += '' + columns[6].columnTitle + '' + additionalText + ''; - - sOut += '' + $.i18n.prop('aos_fm_SuggestionSetting_view_DefaultSuggestionGroupTitle').replace(';', '').replace(/\"/g,'') + '' + ''; - - sOut += '' + $.i18n.prop('aos_fm_SuggestionSetting_view_SettingSuggestionGroupTitle').replace(';', '').replace(/\"/g,'') + ''; - - sOut += ''; - - /* - var systemType = 0; - var code = 0; - for (var i = 0; i < oTable.datas.length; i++) { - var temp = oTable.datas[i]; - if (temp.alarmId == oTr['alarmId'].value) { - systemType = temp.systemType; - code = temp.probableCauseCode; - } - }*/ - var data = { - "systemType" : systemType, - "code" : code - }; - var sendData = JSON.stringify(data); - $.ajax({ - "dataType" : 'json', - "type" : "GET", - "url" : "/web/rest/web/fm/Maintenance" + "?" + "data=" + sendData, - "contentType" : 'application/json; charset=utf-8', - "data" : null, - "success" : function (json) { - $('tr').find('td#defaulInfo' + id).text(json.defaulInfo); - $('tr').find('td#customInfo' + id).text(json.customInfo); - var modify = $('#customInfoModify' + id); - modify.on('click', function () { - var span = $('#modifyBtnSpan' + id); - var customInfo = $('tr').find('td#customInfo' + id); - var cancel = $('#cancelDiv' + id); - if (span['0'].className === 'fa fa-pencil-square-o') { - var value = customInfo['0'].textContent; - customInfo['0'].textContent = ''; - customInfo['0'].innerHTML = ''; - span['0'].className = 'fa fa-floppy-o'; - cancel['0'].innerHTML = ''; - $('#cancelBtn' + id).on('click', function () { - customInfo['0'].innerHTML = ''; - customInfo['0'].textContent = value; - cancel['0'].innerHTML = ''; - span['0'].className = 'fa fa-pencil-square-o'; - }); - } else { - var inputValue = $('#customInfoInput' + id)['0'].value; - customInfo['0'].innerHTML = ''; - customInfo['0'].textContent = inputValue; - span['0'].className = 'fa fa-pencil-square-o'; - cancel['0'].innerHTML = ''; - var modifyData = { - "systemType" : systemType, - "code" : code, - "defaulInfo" : json.defaulInfo, - "customInfo" : inputValue - }; - $.ajax({ - "dataType" : 'json', - "type" : "PUT", - "url" : "/web/rest/web/fm/Maintenance", - "contentType" : 'application/json; charset=utf-8', - "data" : JSON.stringify(modifyData), - "error" : function () { - alert('Modify Error!'); - } - }); - } - }); - }, - "error" : function () { - alert('Communication Error!'); - } - }); - - return sOut; - } - - var generateColumns = function(columns, openRowFlag, rowCheckable){ - var $tableData = $('table#datatable_ajax' + contextData.curentDatableId); - var theadTR = $('thead > tr', $tableData); - if(rowCheckable){ - theadTR.append(''); - } - if(openRowFlag){ - theadTR.append('  '); - } - for(var i=0;i' + columns[i].columnTitle + ''); - } - } - - var sortHandling = function(oTable, openRowFlag, rowCheckable){ - var indexSkip = -1; - if(openRowFlag&&rowCheckable){ - indexSkip = 1; - }else if(openRowFlag&&!rowCheckable||!openRowFlag&&rowCheckable){ - indexSkip = 0; - } - var $sortOrder = 0; //排序类型 1表示升序,0表示降序 - var tableWrapper = $('div.dataTables_wrapper', contextData.wrapperDivContext); - var $tableHead = $('div.dataTables_scrollHeadInner > table.dataTable', tableWrapper); - var $tableData = $('table#datatable_ajax' + contextData.curentDatableId); - var clearSort = function(currentTh){ - var ths = $tableHead.find('th').get(); - var tableDataHeadTHs = $tableData.find('th').get(); - $.each( ths, function( index, th ){ - if(index > indexSkip){ - if($(th).text() != currentTh.text()){ - if($(th).is('.sorting_disabled')){ - //do nothing; - }else if($(th).is('.sorting_asc')){ - $(th).removeClass('sorting_asc').addClass('sorting_disabled'); - $(tableDataHeadTHs[index]).removeClass('sorting_asc').addClass('sorting_disabled'); - }else if($(th).is('.sorting_desc')){ - $(th).removeClass('sorting_desc').addClass('sorting_disabled'); - $(tableDataHeadTHs[index]).removeClass('sorting_desc').addClass('sorting_disabled'); - } - } - } - }); - } - - $('th', $tableHead).each(function( column ) - { - if(column>indexSkip){ - //处理三种有可能存在的排序字段,比较方法 - var findSortKey; - if( $(this).is('.sort-title') || $(this).is('.sorting_disabled') ) - { - findSortKey = function( $cell ) - { - var cellText = $cell.text(); - if(isNaN(cellText)){ - return $cell.text().toUpperCase(); - }else{ - return parseFloat(cellText); - } - //return $cell.text().toUpperCase(); - } - } - else if( $(this).is('.sort-date') ) - { - findSortKey = function( $cell ) - { - return Date.parse('1' + $cell.text()); - } - } - else if( $(this).is('.sort-price') ) - { - findSortKey = function( $cell ) - { - var key = parseFloat($cell.text().replace(/^[^\d.]*/, '')) - return isNaN(key) ? 0 : key; - } - } - - //排序 - if( findSortKey ) - { - $(this).click(function() - { - $sortOrder = $sortOrder == 0 ? 1 : 0; - var tableDataHeadTHs = $tableData.find('th').get(); - - if($sortOrder == 1){ - if($(this).is('.sorting_disabled')){ - $(this).removeClass('sorting_disabled').addClass('sorting_asc'); - $(tableDataHeadTHs[column]).removeClass('sorting_disabled').addClass('sorting_asc'); - }else if($(this).is('.sorting_asc')){ - $(this).removeClass('sorting_asc').addClass('sorting_desc'); - $(tableDataHeadTHs[column]).removeClass('sorting_asc').addClass('sorting_desc'); - }else if($(this).is('.sorting_desc')){ - $(this).removeClass('sorting_desc').addClass('sorting_asc'); - $(tableDataHeadTHs[column]).removeClass('sorting_desc').addClass('sorting_asc'); - } - }else{ - if($(this).is('.sorting_disabled')){ - $(this).removeClass('sorting_disabled').addClass('sorting_desc'); - $(tableDataHeadTHs[column]).removeClass('sorting_disabled').addClass('sorting_desc'); - }else if($(this).is('.sorting_asc')){ - $(this).removeClass('sorting_asc').addClass('sorting_desc'); - $(tableDataHeadTHs[column]).removeClass('sorting_asc').addClass('sorting_desc'); - }else if($(this).is('.sorting_desc')){ - $(this).removeClass('sorting_desc').addClass('sorting_asc'); - $(tableDataHeadTHs[column]).removeClass('sorting_desc').addClass('sorting_asc'); - } - } - clearSort($(this)); - - var rows = $tableData.find('tbody > tr').get(); - - $.each( rows, function( index, row ) - { - //先关掉所有行 - if ( oTable.fnIsOpen(row) ) - { - $(row).find('.row-details').click(); - } - }); - - //重新取得所有行,否则排序后表格显示异常 - rows = $tableData.find('tbody > tr').get(); - - $.each( rows, function( index, row ) - { - row.sortKey = findSortKey($(row).children('td').eq(column)); - }); - //排序方法 - rows.sort(function( a, b ) - { - if( $sortOrder == 1 ) - { - //升序 - if(a.sortKey < b.sortKey) return -1; - if(a.sortKey > b.sortKey) return 1; - return 0; - } - else - { - //降序 - if(a.sortKey < b.sortKey) return 1; - if(a.sortKey > b.sortKey) return -1; - return 0; - } - }); - //排序后的对象添加给$table - $.each( rows, function( index, row ) - { - $tableData.children('tbody').append(row); - row.sortKey = null; - }); - }); - } - } - }); - } - - var handleRecords = function(requestDatas, columns, xsHiddenColumns, smHiddenColumns, oLanguage, openRowFlag, rowCheckable, rowOverFlag, requestURL, requestParameters, tableHeight, columnsTooLong, sTotalRecordsSource, callbackList, totalRecords, requestType) { - - /* - jQuery.getJSON('/web/newict/framework/thirdparty/data-tables/app-universal-i18n-datatable-' + lang + '.json', - function(data) { - oLanguage = data; - }); - */ - grid = DatatableICT(); - grid.setCallbackList(callbackList); - grid.setContextData(contextData); - grid.setOpenRowFlag(openRowFlag); - grid.setRowCheckable(rowCheckable); - grid.setRowOverFlag(rowOverFlag); - grid.setColumnsTooLong(columnsTooLong); - grid.setSTotalRecordsSource(sTotalRecordsSource); - grid.setTotalRecords(totalRecords); - grid.setTableHeight(tableHeight); - grid.setRequestType(requestType); - //取得查询条件 -// if(!requestStr || requestStr.length == 0){ -// requestStr = JSON.stringify(requestAllData); -// } - grid.clearAjaxParams(); - if(requestType == "GET"){ - grid.addAjaxParam('data', JSON.stringify(requestDatas)); - }else{ - grid.addAjaxParam('data', requestDatas); - } - //取得其他参数 - for(var i=0;i table.dataTable', tableWrapper); - var ths = $tableHead.find('th').get(); - var $tableData = $('table#datatable_ajax' + contextData.curentDatableId); - var tableDataHeadTHs = $tableData.find('th').get(); - $.each( ths, function( index, th ){ - //clear all sort direction - if($(th).is('.sorting_disabled')){ - //do nothing; - }else if($(th).is('.sorting_asc')){ - $(th).removeClass('sorting_asc').addClass('sorting_disabled'); - $(tableDataHeadTHs[index]).removeClass('sorting_asc').addClass('sorting_disabled'); - }else if($(th).is('.sorting_desc')){ - $(th).removeClass('sorting_desc').addClass('sorting_disabled'); - $(tableDataHeadTHs[index]).removeClass('sorting_desc').addClass('sorting_disabled'); - } - }); - - }, - onError: function(grid) { - // execute some code on network or other general error - }, - dataTable: { - "sDom" : "tr<'row'<'col-md-6 col-sm-12'><'col-md-6 col-sm-12'pli>>", // datatable layout - "oLanguage": oLanguage, - //"bAutoWidth": true, - "sScrollY": tableHeight, - "bScrollCollapse": true, - "sScrollX": "100%", - //"sScrollXInner": "110%", - "aLengthMenu": [ - [20, 50, 100], - [20, 50, 100] // change per page values here - ], - "iDisplayLength": 100, // default record count per page - "bServerSide": true, // server side processing - "sAjaxSource": requestURL // ajax source - } - }, columns, xsHiddenColumns, smHiddenColumns, openRowFlag, rowCheckable); - } - - /* - * Insert a 'details' column to the table - */ - var insertDetails = function (oTable, columns, rowCheckable) { - - var $tableData = $('table#datatable_ajax' + contextData.curentDatableId); - - $tableData.on('click', ' tbody td .row-details', function () { - var nTr = $(this).parents('tr')[0]; - if (oTable.fnIsOpen(nTr)) { - /* This row is already open - close it */ - $(this).addClass("row-details-close").removeClass("row-details-open"); - oTable.fnClose(nTr); - } else { - /* Open this row */ - $(this).addClass("row-details-open").removeClass("row-details-close"); - oTable.fnOpen(nTr, fnFormatDetails(oTable, nTr, columns, rowCheckable), 'details'); - } - }); - } - - return { - - //main function to initiate the module - init: function (requestDatas, lang, configPathPrefix, callbackList, newColumns, totalPage) { - - var oLanguage; - var columns; - var xsHiddenColumns; - var smHiddenColumns; - var columnsAll; - - var openRowFlag = false; - var rowOverFlag = false; - var rowCheckable = false; - var requestURL=""; - var requestAllData; - var requestParameters; - - var tableHeight; - var tableWidth; - - var columnsTooLong; - var sTotalRecordsSource=""; - var totalRecords = 0; - - var requestType = "GET"; - - //取得当前配置及国际化信息 - $.ajax({ - dataType: 'json', - url: configPathPrefix + '-' + lang + '.json', - async: false, - contentType:'application/json; charset=utf-8', - "success": function(data) { - oLanguage = data.language; - columns = data.columns; - if(newColumns){ - columns = newColumns; - } - xsHiddenColumns = data.xsHiddenColumns; - smHiddenColumns = data.smHiddenColumns; - columnsAll = data.columnsAll; - if(newColumns){ - columnsAll = newColumns; - } - openRowFlag = data.openRowFlag == 'true'? true: false; - rowOverFlag = data.rowOverFlag == 'true'? true: false; - rowCheckable = data.rowCheckable == 'true'? true: false; - requestURL = data.requestURL; - //requestAllData = data.requestAllData; - requestParameters = data.requestParameters; - tableHeight = data.tableHeight; - tableWidth = data.tableWidth; - columnsTooLong = data.columnsTooLong; - sTotalRecordsSource = data.sTotalRecordsSource; - if(data.sTotalRecords){ //性能的情况直接指定总行数 - totalRecords = parseInt(data.sTotalRecords); - } - if(totalPage){ //可以从参数指定总行数,适用于单独发请求获得总行数的场景 - totalRecords = totalPage; - } - if(data.requestType){ - requestType = data.requestType; - } - }, - "error" : function (xhr, info) { - alert('Communication Error! Error reason:' + info); - } - }); - - $('div#dataTableWrapperDiv' + contextData.curentDatableId).css('width', tableWidth); - - if(!isContained(xsHiddenColumns, smHiddenColumns) || !isContained(columns, xsHiddenColumns) || !isContained(columnsAll, columns)){ - alert('Columns claim error: (smHiddenColumns <= xsHiddenColumns <= columns <= columnsAll) Please!'); - return; - } - - generateColumns(columns, openRowFlag, rowCheckable); - //initPickers(); - handleRecords(requestDatas, columns, xsHiddenColumns, smHiddenColumns, oLanguage, openRowFlag, rowCheckable, rowOverFlag, requestURL, requestParameters, tableHeight, columnsTooLong, sTotalRecordsSource, callbackList, totalRecords, requestType); - //获得初始化完毕的DataTable对象 - var oTable = grid.getDataTable(); - if(openRowFlag){ - insertDetails(oTable, columnsAll, rowCheckable); - } - sortHandling(oTable, openRowFlag, rowCheckable); - //oTable.fnAdjustColumnSizing(true); - return oTable; - }, - - getDataGrid: function(){ - return grid; - }, - - setContextData: function(newContextData){ - contextData = newContextData; - } - - }; - -}(); - -var addTableElementsId = function(){ - - var outterDivs = $('div.dataTableWrapperDiv'); - var currentId; - - if(outterDivs && outterDivs.length > 0) { - var maxId = -1; - var divIdNo; - $.each(outterDivs, function (index, div) { - var divId = $(div).attr("id"); - divIdNo = divId.substring(20); - if (divIdNo || divIdNo.length > 0){ - if (parseInt(divIdNo) > maxId) { - maxId = parseInt(divIdNo); - } - } - }); - currentId = maxId + 1; - } - - var curentDatableId = "_" + currentId; - - var dataTableWrapperDiv = $('div#dataTableWrapperDiv');//新添加的outterDiv - $(dataTableWrapperDiv).attr("id", "dataTableWrapperDiv" + curentDatableId); - var dataTableWrapperDivContext = dataTableWrapperDiv; - $('div.table-container', dataTableWrapperDiv).attr("id", "table-container" + curentDatableId); - $('table#datatable_ajax', dataTableWrapperDiv).attr("id", "datatable_ajax" + curentDatableId); - $('div#divOverlay', dataTableWrapperDiv).attr("id", "divOverlay" + curentDatableId); - //$('div#buttonConfirm', dataTableWrapperDiv).attr("id", "buttonConfirm" + curentDatableId); - //$('div#buttonUnConfirm', dataTableWrapperDiv).attr("id", "buttonUnConfirm" + curentDatableId); - $('div#myModal', dataTableWrapperDiv).attr("id", "myModal" + curentDatableId); - $('div#myModalConfirm', dataTableWrapperDiv).attr("id", "myModalConfirm" + curentDatableId); - $('span#alarm_number', dataTableWrapperDiv).attr("id", "alarm_number" + curentDatableId); - - return { - "curentDatableId": curentDatableId, - "wrapperDivContext":dataTableWrapperDivContext - } -} - -var DataTableICT = function(requestDatas, tableDivId, tableDivPath, configPathPrefix, callbackList, newColumns, totalPage){ - - /* var requestStr = ""; - if(datas){ - requestStr = JSON.stringify(datas); - } */ - - var lang = getLanguage(); - //lang = 'en-US'; - - /**取得表格组件所需html片段 **/ - /*jQuery('div#' + tableDivId).load(tableDivPath, function() { - var contextData = addTableElementsId(); - TableAjaxICT.setContextData(contextData); - - var lang = getLanguage(); - //lang = 'en-US'; - var oTable = TableAjaxICT.init(requestStr, lang, configPathPrefix); - - //重新调节列宽以适应window resize - $(window).bind('resize', function () { - //oTable.DataTable.models.oSettings.bAjaxDataGet = false; - oTable.fnAdjustColumnSizing(); - } ); - });*/ - - /**同步取得表格组件所需html片段 **/ - $.ajax({ - async : false, - "dataType" : "html", - "type" : "GET", - "url" : tableDivPath, - "data" : null, - "success" : function (html, textStatus, jqXHR) { - $('div#' + tableDivId).html(html); - }, - "error" : function () { - alert("Communication error!"); - } - }); - - var contextData = addTableElementsId(); - TableAjaxICT.setContextData(contextData); - - var oTable = TableAjaxICT.init(requestDatas, lang, configPathPrefix, callbackList, newColumns, totalPage); - - //重新调节列宽以适应window resize - $(window).bind('resize', function () { - //oTable.DataTable.models.oSettings.bAjaxDataGet = false; - oTable.fnAdjustColumnSizing(); - } ); - - return TableAjaxICT.getDataGrid(); -} diff --git a/openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/DataTableSmartClient.js b/openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/DataTableSmartClient.js deleted file mode 100644 index 4c737734..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/DataTableSmartClient.js +++ /dev/null @@ -1,1215 +0,0 @@ -/*** - Wrapper/Helper Class for datagrid based on jQuery Datatable Plugin - ***/ -var DatatableICT = function () { - - var tableOptions; // main options - var dataTable; // datatable object - var table; // actual table jquery object - var tableContainer; // actual table container object - var tableWrapper; // actual table wrapper jquery object - var tableInitialized = false; - var ajaxParams = []; // set filter mode - var columns; - var xsHiddenColumns; - var smHiddenColumns; - var columnMaxLength = 30; - var columnsTooLong; - var hidden_xs_maxWidth = 768; - var hidden_sm_maxWidth = 991; - - var openRowFlag = false; - var rowOverFlag = false; - var rowCheckable = false; - - var aTargetsAll; - var sTotalRecordsSource; - var tableHeight; - - var includedInXsHiddenColumns = function(columnId){ - for(var i=0;i tr > td:nth-child(1) input[type="checkbox"]:checked', table).size(); - var text = tableOptions.dataTable.oLanguage.sGroupActions; - if (selected > 0) { - $('.table-group-actions > span', tableWrapper).text(text.replace("_TOTAL_", selected)); - } else { - $('.table-group-actions > span', tableWrapper).text(""); - } - } - - var jsonObjectToArray = function(json, columns, iDraw){ - var jsonToDatatable = {aaData:[], sEcho:iDraw, iTotalRecords:0, iTotalDisplayRecords:0 }; - for(var i=0; i"); - } - if(openRowFlag){ - jsonToDatatable.aaData[i].push(""); - } - for(var j=0; j= hidden_xs_maxWidth && $(window).width() < hidden_sm_maxWidth && includedInSmHiddenColumns(columns[j].columnId )){ - /*隐藏pad尺寸需要隐藏的列*/ - }else if($(window).width() < hidden_xs_maxWidth && includedInXsHiddenColumns(columns[j].columnId )){ - /*隐藏手机尺寸需要隐藏的列*/ - }else{ - var currentColumnId = columns[j].columnId; - if(jQuery.inArray(currentColumnId, columnsTooLong) > -1){ - var rawText = ""; - for(var k=0;k columnMaxLength){ - jsonToDatatable.aaData[i].push(rawText.slice(0, columnMaxLength) + '...'); - }else{ - jsonToDatatable.aaData[i].push(resRowObject[currentColumnId]); - } - } else { - jsonToDatatable.aaData[i].push(resRowObject[currentColumnId]); - } - - } - } - } - jsonToDatatable.sEcho++; - var totalRow = 0; - var totalRecordsSource = eval('json.' + sTotalRecordsSource); - if(totalRecordsSource && totalRecordsSource.length >0){ - totalRow = parseInt(totalRecordsSource); - } - if(isNaN(totalRow)){ - alert('All rows counting number got fail!'); - }else{ - jsonToDatatable.iTotalRecords = totalRow; - jsonToDatatable.iTotalDisplayRecords = totalRow; - } - return jsonToDatatable; - } - - var singleAlarmDel = function(divOverlay){ - - //根据浮动框的当前id获取需要删除的行 - var trId = divOverlay.attr('id_tr'); - tr=$('tr#' + trId); - var tds = $(tr).children(); - var tdAlarmId = $(tds.eq(2)).text(); - - var data= { - "alarmId":[parseInt(tdAlarmId)] - }; - - var sSource = "/web/rest/web/fm/curalarms?data=" + JSON.stringify(data) + "&_operationType=remove&_dataSource=isc_PageRestDataSource_0&isc_metaDataPrefix=_&isc_dataFormat=json"; - - $.ajax( { - "dataType": 'json', - "type": "DELETE", - "url": sSource, - "data" : null, - "contentType" : 'application/json; charset=utf-8', - "success": function(json) { - if(json.response.status == 0){ - var resRowObject = json.response.data[0]; - //alert('删除成功'); - } - if(json.response.status == -1){ - //alert('删除失败'); - } - }, - "error": function() { - alert('Communication Error!'); - } - } ); - } - - var singleAlarmAckUnAck = function(divOverlay, ackType){ - - //根据浮动框的当前id获取需要确认的行 - var trId = divOverlay.attr('id_tr'); - var tr = $('tr#' + trId); - - //取得隐藏的头部表格的相应行 - var $tableHead = $('div.dataTables_scrollHeadInner > table.dataTable'); - //var trHead = $('tbody > tr:nth-child(' + trId + ')', $tableHead); - var trHead = $('tr#' + trId.replace('body', 'head'), $tableHead); - var tdDivs = $('td > div', trHead); - - var tds = $(tr).children(); - var tdAlarmId = ""; - if(rowCheckable){ - tdAlarmId = $(tds.eq(2)).text(); - }else{ - tdAlarmId = $(tds.eq(1)).text(); - } - - var aoData = - { - "dataSource":"isc_PageRestDataSource_0", - "operationType":"update", - "componentId":"isc_com_zte_ums_aos_fm_view_eventview_table_AlarmTable_0", - "data":{ - "viewType":1, - "state":ackType, - "alarmId":[ - parseInt(tdAlarmId) - ] - }, - "oldValues":null - }; - - var sSource = "/web/rest/web/fm/curalarms?isc_dataFormat=json"; - - $.ajax( { - "dataType": 'json', - "type": "PUT", - "url": sSource, - "contentType": 'application/json; charset=utf-8', - "data": JSON.stringify(aoData), - "success": function(json) { - json = AlarmLabels.transformFieldNames(json); - if(json.response.status == 0){ - var resRowObject = json.response.data[0]; - var columnsCopy = $.extend(true, [], columns); - //隐藏列的情况下需要特殊处理 - if($(window).width()>=hidden_xs_maxWidth && $(window).width() -1) { - var rawText = ""; - for(var k=0;k columnMaxLength){ - $(tds.eq(i)).html(rawText.slice(0, columnMaxLength) + '...'); - $(tdDivs.eq(i)).html(rawText.slice(0, columnMaxLength) + '...'); - }else{ - $(tds.eq(i)).html(resRowObject[currentColumnId]); - $(tdDivs.eq(i)).html(resRowObject[currentColumnId]); - } - } else { - $(tds.eq(i)).html(resRowObject[currentColumnId]); - $(tdDivs.eq(i)).html(resRowObject[currentColumnId]); - } - } - //更新缓存中的当前行数据 - for (var t = 0; t < dataTable.datas.length; t++) { - var temp = dataTable.datas[t]; - if (temp.alarmId == resRowObject['alarmId']) { - dataTable.datas[t] = resRowObject; - break; - } - } - } - if(json.response.status == -1){ - $('div#myModalConfirm').modal({ - keyboard: false, - backdrop: 'static' - }); - $('span#alarm_number').html(tdAlarmId); - //国际化信息 - if(ackType==1){ - $('span#aos_fm_alarm_opeater_ack_already').html($.i18n.prop('aos_fm_alarm_opeater_ack_already_ok')); - }else{ - $('span#aos_fm_alarm_opeater_ack_already').html($.i18n.prop('aos_fm_alarm_opeater_ack_already_un')); - } - } - }, - "error": function() { - alert('Communication Error!'); - } - } ); - } - - var addRowOverlap = function(){ - var $tableData = $('table#datatable_ajax'); - //取得隐藏的头部表格的相应行 - var $tableHead = $('div.dataTables_scrollHeadInner > table.dataTable'); - var trHeads = $tableHead.find('tr').get(); - $.each( trHeads, function( index, trHead ){ - $(trHead).attr('id', 'headTableTR' + index); - }); - //取得浮动div - var $divOverlay = $('div#divOverlay'); - var divScrollHead = $('div.dataTables_scrollHead'); - var divRightPadding = $('div#divRightPadding'); - //取表头下边沿位置 - var tableHeadBottomHeight = $(divScrollHead).position().top + $(divScrollHead).height(); - var tableBottom = $tableData.position().top + $tableData.height(); - //取表格右边沿位置 - var tableRightEdgePosition = $(divRightPadding).position().left; - var trs = $tableData.find('tr').get(); - $.each( trs, function( index, tr ){ - var tdEmpty = $('td.dataTables_empty',tr); - if(!tdEmpty || tdEmpty.length ==0 ){ - $(tr).attr('id', 'bodyTableTR' + index); - //$divOverlay.attr('id_tr', 'bodyTableTR' + index); - $(tr).one('hover', function(){ - var rowPos = $(tr).position(); - var currentTrTop = rowPos.top; - //var bottomLeft = rowPos.left; - $divOverlay.attr('id_tr', 'bodyTableTR' + index); - $divOverlay.css({ - display: 'block', - position: 'absolute', - 'background-color': '#e5e5e5', - //opacity: 0.7, - border: 'solid 0px', - top: currentTrTop + 6, - left: tableRightEdgePosition - 308, - width: 300, - height: 30 - }); - //防止浮动框跳出表格内容区域 - if( $divOverlay.position().top < tableHeadBottomHeight || $divOverlay.position().top + $divOverlay.height() > tableBottom){ - $divOverlay.css('display', 'none'); - } - var buttonConfirm = $('div#buttonConfirm', $divOverlay); - var buttonUnConfirm = $('div#buttonUnConfirm', $divOverlay); - $(buttonConfirm).one('click', function(){ - var buttonRoundedTDsConfirm = $(buttonConfirm).find('td.buttonRounded'); - var buttonRoundedTDsUnConfirm = $(buttonUnConfirm).find('td.buttonRoundedDisabled'); - if(buttonRoundedTDsConfirm && buttonRoundedTDsConfirm.length > 0){ - $.each(buttonRoundedTDsConfirm, function(index, td){ - $(td).removeClass('buttonRounded').addClass('buttonRoundedDisabled'); - }); - $.each(buttonRoundedTDsUnConfirm, function(index, td){ - $(td).removeClass('buttonRoundedDisabled').addClass('buttonRounded'); - }); - $divOverlay.css('display', 'none'); - singleAlarmAckUnAck($divOverlay, 1); - } - }); - $(buttonUnConfirm).one('click', function(){ - var buttonRoundedTDsUnConfirm = $(buttonUnConfirm).find('td.buttonRounded'); - var buttonRoundedTDsConfirm = $(buttonConfirm).find('td.buttonRoundedDisabled'); - if(buttonRoundedTDsUnConfirm && buttonRoundedTDsUnConfirm.length > 0){ - $.each(buttonRoundedTDsUnConfirm, function(index, td){ - $(td).removeClass('buttonRounded').addClass('buttonRoundedDisabled'); - }); - $.each(buttonRoundedTDsConfirm, function(index, td){ - $(td).removeClass('buttonRoundedDisabled').addClass('buttonRounded'); - }); - $divOverlay.css('display', 'none'); - singleAlarmAckUnAck($divOverlay, 2); - } - }); - var buttonDelete = $('div#buttonDelete', $divOverlay); - $(buttonDelete).die().live('click', function(){ - //弹出删除确认对话框 - $('div#myModal').modal({ - keyboard: false, - backdrop: 'static' - }); - $('#delConfirm').die().live('click', function(){ - $divOverlay.css('display', 'none'); - dataTable.fnClose(tr); - $(tr).remove(); - //删除表头表格的相应行 - $('tr#' + $(tr).attr('id').replace('body', 'head'), $tableHead).remove(); - //删除后端数据 - singleAlarmDel($divOverlay); - //刷新表格 - dataTable.fnAdjustColumnSizing(); - }); - }); - //展开行的情况隐藏 - $('td.details > table.detailTable').on('hover', function(){ - $divOverlay.css('display', 'none'); - }); - }); - } - }); - } - - return { - - //main function to initiate the module - init: function (options, columnsDefined, xsHiddenColumnsDefined, smHiddenColumnsDefined) { - - if (!$().dataTable) { - return; - } - - var the = this; - - //记录需要禁掉默认排序的列 - var aTargets = []; - var targetsLength = columnsDefined.length; - if(rowCheckable)targetsLength++; - if(openRowFlag)targetsLength++; - for(var i=0;i<'col-md-4 col-sm-12'<'table-group-actions pull-right'>>r><'table-scrollable't><'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'>r>>", // datatable layout - - "aoColumnDefs" : [{ // define columns sorting options(by default all columns are sortable extept the first checkbox column) - 'bSortable' : false, - 'aTargets' : aTargets - }], - - "bAutoWidth": false, // disable fixed width and enable fluid table - //"bSortCellsTop": true, // make sortable only the first row in thead - "sPaginationType": "bootstrap_extended", // pagination type(bootstrap, bootstrap_full_number or bootstrap_extended) - "bProcessing": true, // enable/disable display message box on record load - "bServerSide": true, // enable/disable server side ajax loading - "sAjaxSource": "", // define ajax source URL - //"sServerMethod": "GET", - - // handle ajax request - "fnServerData": function ( sSource, aoData, fnCallback, oSettings ) { - //for ICT Paging - //var startIndex = aoData[3].value;//"iDisplayStart" - //var pageLength = aoData[4].value;//"iDisplayLength" - var oPaging = oSettings.oInstance.fnPagingInfo(); - //var startIndex = oPaging.iStart; - var pageLength = oPaging.iLength; - var curPageNo = oPaging.iPage + 1; - - for(var k=aoData.length-1;k>=0;k--){ - var flag = -1; - if(aoData[k].name=='pageSize'){ - aoData[k].value=pageLength; - flag++; - } - if(aoData[k].name=='pageNo'){ - aoData[k].value=curPageNo; - flag++ - } - if(flag == 1)break; - } - - oSettings.jqXHR = $.ajax( { - "dataType": 'json', - "type": "GET", - "url": sSource, - "data": aoData, - "success": function(res, textStatus, jqXHR) { - if (res.sMessage) { - openoFrameWork.alert({type: (res.sStatus == 'OK' ? 'success' : 'danger'), icon: (res.sStatus == 'OK' ? 'check' : 'warning'), message: res.sMessage, container: tableWrapper, place: 'prepend'}); - } - if ($('.group-checkable', tableContainer).size() === 1) { - $('.group-checkable', tableContainer).attr("checked", false); - $.uniform.update($('.group-checkable', tableContainer)); - } - if (tableOptions.onSuccess) { - tableOptions.onSuccess.call(the); - } - //保存数据在dataTable对象中给行详细信息面板用 - dataTable.datas = res.response.data; - if(res.response.status < 0){ - alert(res.response.data); - return; - } - - //告警字段值转换 - res = AlarmLabels.transformFieldNames(res); - - res = jsonObjectToArray(res, columns, oSettings.iDraw); - - //重绘表格 - fnCallback(res, textStatus, jqXHR); - }, - "error": function() { - if (tableOptions.onError) { - tableOptions.onError.call(the); - } - openoFrameWork.alert({type: 'danger', icon: 'warning', message: tableOptions.dataTable.oLanguage.sAjaxRequestGeneralError, container: tableWrapper, place: 'prepend'}); - $('.dataTables_processing', tableWrapper).remove(); - } - } ); - - }, - - // pass additional parameter - "fnServerParams": function ( aoData ) { - //here can be added an external ajax request parameters. - //for(var i in ajaxParams) { - for(var i=0; i table.dataTable', tableWrapper); - var tbodyHead = $('tbody', $tableHead); - if(tbodyHead && tbodyHead.length >0){ - $(tbodyHead).remove(); - } - - var $tableBody = $('table#datatable_ajax', tableWrapper); - var trIn = $('thead > tr:nth-child(1)', $tableHead); - var trBodyHead = $('thead > tr:nth-child(1)', $tableBody); - var tds = $(trIn).children(); - var ths = $(trBodyHead).children(); - for(var k=0;k' + tds.eq(k).html() + ''); - } - var bodyRows = $('tbody > tr', $tableBody); - for(var i=0;i' + tds.eq(j).html() + ''); - $(tds.eq(j)).height('0px'); - $(tds.eq(j)).css('padding-top','0px'); - $(tds.eq(j)).css('padding-bottom','0px'); - $(tds.eq(j)).css('border-top-width','0px'); - $(tds.eq(j)).css('border-bottom-width','0px'); - } - $(rowClone).height('0px'); - $tableHead.append($(rowClone).prop("outerHTML")); - } - - $('.dataTables_scrollBody').css('width','100%'); - $('.dataTables_scrollHead').css('width','98.5%'); - $('.dataTables_scrollHeadInner').css('padding-right', 0); - - //添加浮动确认反确认按钮 - if(rowOverFlag){ - addRowOverlap(); - } - - //设置表格本体高度 - $('div.dataTables_scrollBody').css('height', tableHeight); - } - } - }, options); - - tableOptions = options; - - columns = columnsDefined; - xsHiddenColumns = xsHiddenColumnsDefined; - smHiddenColumns = smHiddenColumnsDefined; - // create table's jquery object - table = $(options.src); - tableContainer = table.parents(".table-container"); - // apply the special class that used to restyle the default datatable - - $.fn.dataTableExt.oStdClasses.sWrapper = $.fn.dataTableExt.oStdClasses.sWrapper + " dataTables_extended_wrapper"; - - // initialize a datatable - dataTable = table.dataTable(options.dataTable); - - tableWrapper = table.parents('.dataTables_wrapper'); - - // modify table per page dropdown input by appliying some classes - $('.dataTables_length select', tableWrapper).addClass("form-control input-xsmall input-sm"); - - // handle group checkboxes check/uncheck - $('.group-checkable', tableContainer).change(function () { - var set = $('tbody > tr > td:nth-child(1) input[type="checkbox"]', table); - var checked = $(this).is(":checked"); - $(set).each(function () { - $(this).attr("checked", checked); - }); - $.uniform.update(set); - countSelectedRecords(); - }); - - // handle row's checkbox click - table.on('change', 'tbody > tr > td:nth-child(1) input[type="checkbox"]', function(){ - countSelectedRecords(); - }); - - //填充表头右边界 - $('.dataTables_scrollHead').css('display','inline-block'); - //var dataTables_scrollHead_height = $('.dataTables_scrollHead').css( "height" ); - $(".dataTables_scrollHead").after("
    "); - if($.browser.mozilla){ - $('#divRightPadding').css('height', '40'); - } - - //隐藏掉某些列 - var $tableHead = $('div.dataTables_scrollHeadInner > table.dataTable', tableWrapper); - var $tableBody = $('table#datatable_ajax', tableWrapper); - - for(var i=0;i tr > th#' + columns[j].columnId, $tableHead).addClass('hidden-xs'); - $('thead > tr > th#' + columns[j].columnId, $tableBody).addClass('hidden-xs'); - break; - } - } - } - - for(var i=0;i tr > th#' + columns[j].columnId, $tableHead).addClass('hidden-sm'); - $('thead > tr > th#' + columns[j].columnId, $tableBody).addClass('hidden-sm'); - break; - } - } - } - },//end init------------------------------------------------------------------------------------ - - getSelectedRowsCount: function() { - return $('tbody > tr > td:nth-child(1) input[type="checkbox"]:checked', table).size(); - }, - - getSelectedRows: function() { - var rows = []; - $('tbody > tr > td:nth-child(1) input[type="checkbox"]:checked', table).each(function(){ - rows.push({name: $(this).attr("name"), value: $(this).val()}); - }); - - return rows; - }, - - addAjaxParam: function(name, value) { - ajaxParams.push({"name": name, "value": value}); - }, - - clearAjaxParams: function(name, value) { - ajaxParams = []; - }, - - getDataTable: function() { - return dataTable; - }, - - getTableWrapper: function() { - return tableWrapper; - }, - - gettableContainer: function() { - return tableContainer; - }, - - getTable: function() { - return table; - }, - - setOpenRowFlag: function(openRowFlagInput) { - openRowFlag = openRowFlagInput; - }, - - setRowOverFlag: function(rowOverFlagInput) { - rowOverFlag = rowOverFlagInput; - }, - - setRowCheckable: function(rowCheckableInput) { - rowCheckable = rowCheckableInput; - }, - - setColumnsTooLong: function(columnsTooLongInput) { - columnsTooLong = columnsTooLongInput; - }, - - setSTotalRecordsSource: function(sTotalRecordsSourceInput){ - sTotalRecordsSource = sTotalRecordsSourceInput; - }, - - setTableHeight: function(tableHeightInput){ - tableHeight = tableHeightInput; - } - - }; - -}; - -var TableAjaxICT = function () { - - var initPickers = function () { - //init date pickers - $('.date-picker').datepicker({ - //rtl: App.isRTL(), - autoclose: true - }); - } - - //判断a数组是否包含b数组 - function isContained(largeArray, smallArray){ - if(!(largeArray instanceof Array) || !(smallArray instanceof Array)) - return false; - if(largeArray.length < smallArray.length) - return false; - for(var i = 0; i < smallArray.length; i++){ - var flag = false; - for(j=0;j' + alarmId + ''; - sOut += '' + columns[4].columnTitle + '' + perceivedSeverity + ''; - sOut += '' + columns[9].columnTitle + '' + alarmType + ''; - sOut += '' + columns[3].columnTitle + '' + alarmRaisedTime + ''; - - sOut += '' + columns[5].columnTitle + '' + probableCauseDesc + ''; - sOut += '' + columns[15].columnTitle + '' + alarmChangedTime + ''; - sOut += '' + columns[11].columnTitle + '' + ackState + ''; - - sOut += '' + columns[12].columnTitle + '' + ackTime + ''; - sOut += '' + columns[13].columnTitle + '' + ackUserId + ''; - sOut += '' + columns[14].columnTitle + '' + ackSystemId + ''; - sOut += '' + columns[7].columnTitle + '' + neip + ''; - - sOut += '' + columns[2].columnTitle + '' + moc + ''; - sOut += '' + columns[1].columnTitle + '' + resDisplayName + ''; - - sOut += '' + columns[8].columnTitle + '' + componentname + ''; - sOut += '' + columns[16].columnTitle + '' + position1 + ''; - - sOut += '' + columns[10].columnTitle + '' + specificproblem + ''; - - sOut += '' + columns[6].columnTitle + '' + additionalText + ''; - - sOut += '' + $.i18n.prop('aos_fm_SuggestionSetting_view_DefaultSuggestionGroupTitle').replace(';', '').replace(/\"/g,'') + '' + ''; - - sOut += '' + $.i18n.prop('aos_fm_SuggestionSetting_view_SettingSuggestionGroupTitle').replace(';', '').replace(/\"/g,'') + ''; - - sOut += ''; - - /* - var systemType = 0; - var code = 0; - for (var i = 0; i < oTable.datas.length; i++) { - var temp = oTable.datas[i]; - if (temp.alarmId == oTr['alarmId'].value) { - systemType = temp.systemType; - code = temp.probableCauseCode; - } - }*/ - var data = { - "systemType" : systemType, - "code" : code - }; - var sendData = JSON.stringify(data); - $.ajax({ - "dataType" : 'json', - "type" : "GET", - "url" : "/web/rest/web/fm/Maintenance" + "?" + "data=" + sendData, - "contentType" : 'application/json; charset=utf-8', - "data" : null, - "success" : function (json) { - $('tr').find('td#defaulInfo' + id).text(json.defaulInfo); - $('tr').find('td#customInfo' + id).text(json.customInfo); - var modify = $('#customInfoModify' + id); - modify.on('click', function () { - var span = $('#modifyBtnSpan' + id); - var customInfo = $('tr').find('td#customInfo' + id); - var cancel = $('#cancelDiv' + id); - if (span['0'].className === 'fa fa-pencil-square-o') { - var value = customInfo['0'].textContent; - customInfo['0'].textContent = ''; - customInfo['0'].innerHTML = ''; - span['0'].className = 'fa fa-floppy-o'; - cancel['0'].innerHTML = ''; - $('#cancelBtn' + id).on('click', function () { - customInfo['0'].innerHTML = ''; - customInfo['0'].textContent = value; - cancel['0'].innerHTML = ''; - span['0'].className = 'fa fa-pencil-square-o'; - }); - } else { - var inputValue = $('#customInfoInput' + id)['0'].value; - customInfo['0'].innerHTML = ''; - customInfo['0'].textContent = inputValue; - span['0'].className = 'fa fa-pencil-square-o'; - cancel['0'].innerHTML = ''; - var modifyData = { - "systemType" : systemType, - "code" : code, - "defaulInfo" : json.defaulInfo, - "customInfo" : inputValue - }; - $.ajax({ - "dataType" : 'json', - "type" : "PUT", - "url" : "/web/rest/web/fm/Maintenance", - "contentType" : 'application/json; charset=utf-8', - "data" : JSON.stringify(modifyData), - "error" : function () { - alert('Modify Error!'); - } - }); - } - }); - }, - "error" : function () { - alert('Communication Error!'); - } - }); - - return sOut; - } - - var generateColumns = function(columns, openRowFlag, rowCheckable){ - var $tableData = $('table#datatable_ajax'); - var theadTR = $('thead > tr', $tableData); - if(rowCheckable){ - theadTR.append(''); - } - if(openRowFlag){ - theadTR.append('  '); - } - for(var i=0;i' + columns[i].columnTitle + ''); - } - } - - var sortHandling = function(oTable, openRowFlag, rowCheckable){ - var indexSkip = -1; - if(openRowFlag&&rowCheckable){ - indexSkip = 1; - }else if(openRowFlag&&!rowCheckable||!openRowFlag&&rowCheckable){ - indexSkip = 0; - } - var $sortOrder = 0; //排序类型 1表示升序,0表示降序 - var tableWrapper = $('div#datatable_ajax_wrapper'); - var $tableHead = $('div.dataTables_scrollHeadInner > table.dataTable', tableWrapper); - var $tableData = $('table#datatable_ajax'); - var clearSort = function(currentTh){ - var ths = $tableHead.find('th').get(); - var tableDataHeadTHs = $tableData.find('th').get(); - $.each( ths, function( index, th ){ - if(index > indexSkip){ - if($(th).text() != currentTh.text()){ - if($(th).is('.sorting_disabled')){ - //do nothing; - }else if($(th).is('.sorting_asc')){ - $(th).removeClass('sorting_asc').addClass('sorting_disabled'); - $(tableDataHeadTHs[index]).removeClass('sorting_asc').addClass('sorting_disabled'); - }else if($(th).is('.sorting_desc')){ - $(th).removeClass('sorting_desc').addClass('sorting_disabled'); - $(tableDataHeadTHs[index]).removeClass('sorting_desc').addClass('sorting_disabled'); - } - } - } - }); - } - - $('th', $tableHead).each(function( column ) - { - if(column>indexSkip){ - //处理三种有可能存在的排序字段,比较方法 - var findSortKey; - if( $(this).is('.sort-title') || $(this).is('.sorting_disabled') ) - { - findSortKey = function( $cell ) - { - var cellText = $cell.text(); - if(isNaN(cellText)){ - return $cell.text().toUpperCase(); - }else{ - return parseFloat(cellText); - } - //return $cell.text().toUpperCase(); - } - } - else if( $(this).is('.sort-date') ) - { - findSortKey = function( $cell ) - { - return Date.parse('1' + $cell.text()); - } - } - else if( $(this).is('.sort-price') ) - { - findSortKey = function( $cell ) - { - var key = parseFloat($cell.text().replace(/^[^\d.]*/, '')) - return isNaN(key) ? 0 : key; - } - } - - //排序 - if( findSortKey ) - { - $(this).click(function() - { - $sortOrder = $sortOrder == 0 ? 1 : 0; - var tableDataHeadTHs = $tableData.find('th').get(); - - if($sortOrder == 1){ - if($(this).is('.sorting_disabled')){ - $(this).removeClass('sorting_disabled').addClass('sorting_asc'); - $(tableDataHeadTHs[column]).removeClass('sorting_disabled').addClass('sorting_asc'); - }else if($(this).is('.sorting_asc')){ - $(this).removeClass('sorting_asc').addClass('sorting_desc'); - $(tableDataHeadTHs[column]).removeClass('sorting_asc').addClass('sorting_desc'); - }else if($(this).is('.sorting_desc')){ - $(this).removeClass('sorting_desc').addClass('sorting_asc'); - $(tableDataHeadTHs[column]).removeClass('sorting_desc').addClass('sorting_asc'); - } - }else{ - if($(this).is('.sorting_disabled')){ - $(this).removeClass('sorting_disabled').addClass('sorting_desc'); - $(tableDataHeadTHs[column]).removeClass('sorting_disabled').addClass('sorting_desc'); - }else if($(this).is('.sorting_asc')){ - $(this).removeClass('sorting_asc').addClass('sorting_desc'); - $(tableDataHeadTHs[column]).removeClass('sorting_asc').addClass('sorting_desc'); - }else if($(this).is('.sorting_desc')){ - $(this).removeClass('sorting_desc').addClass('sorting_asc'); - $(tableDataHeadTHs[column]).removeClass('sorting_desc').addClass('sorting_asc'); - } - } - clearSort($(this)); - - var rows = $tableData.find('tbody > tr').get(); - - $.each( rows, function( index, row ) - { - //先关掉所有行 - if ( oTable.fnIsOpen(row) ) - { - $(row).find('.row-details').click(); - } - }); - - //重新取得所有行,否则排序后表格显示异常 - rows = $tableData.find('tbody > tr').get(); - - $.each( rows, function( index, row ) - { - row.sortKey = findSortKey($(row).children('td').eq(column)); - }); - //排序方法 - rows.sort(function( a, b ) - { - if( $sortOrder == 1 ) - { - //升序 - if(a.sortKey < b.sortKey) return -1; - if(a.sortKey > b.sortKey) return 1; - return 0; - } - else - { - //降序 - if(a.sortKey < b.sortKey) return 1; - if(a.sortKey > b.sortKey) return -1; - return 0; - } - }); - //排序后的对象添加给$table - $.each( rows, function( index, row ) - { - $tableData.children('tbody').append(row); - row.sortKey = null; - }); - }); - } - } - }); - } - - var handleRecords = function(requestStr, columns, xsHiddenColumns, smHiddenColumns, oLanguage, openRowFlag, rowCheckable, rowOverFlag, requestURL, requestParameters, tableHeight, columnsTooLong, sTotalRecordsSource) { - - /* - jQuery.getJSON('/web/newict/framework/thirdparty/data-tables/app-universal-i18n-datatable-' + lang + '.json', - function(data) { - oLanguage = data; - }); - */ - grid.setOpenRowFlag(openRowFlag); - grid.setRowCheckable(rowCheckable); - grid.setRowOverFlag(rowOverFlag); - grid.setColumnsTooLong(columnsTooLong); - grid.setSTotalRecordsSource(sTotalRecordsSource); - grid.setTableHeight(tableHeight); - //取得查询条件 -// if(!requestStr || requestStr.length == 0){ -// requestStr = JSON.stringify(requestAllData); -// } - grid.clearAjaxParams(); - grid.addAjaxParam('data', requestStr); - //取得其他参数 - for(var i=0;i table.dataTable', tableWrapper); - var ths = $tableHead.find('th').get(); - var $tableData = $('table#datatable_ajax'); - var tableDataHeadTHs = $tableData.find('th').get(); - $.each( ths, function( index, th ){ - //clear all sort direction - if($(th).is('.sorting_disabled')){ - //do nothing; - }else if($(th).is('.sorting_asc')){ - $(th).removeClass('sorting_asc').addClass('sorting_disabled'); - $(tableDataHeadTHs[index]).removeClass('sorting_asc').addClass('sorting_disabled'); - }else if($(th).is('.sorting_desc')){ - $(th).removeClass('sorting_desc').addClass('sorting_disabled'); - $(tableDataHeadTHs[index]).removeClass('sorting_desc').addClass('sorting_disabled'); - } - }); - - }, - onError: function(grid) { - // execute some code on network or other general error - }, - dataTable: { - "sDom" : "tr<'row'<'col-md-6 col-sm-12'><'col-md-6 col-sm-12'pli>>", // datatable layout - "oLanguage": oLanguage, - //"bAutoWidth": true, - "sScrollY": tableHeight, - "bScrollCollapse": true, - "sScrollX": "100%", - //"sScrollXInner": "110%", - "aLengthMenu": [ - [20, 50, 100], - [20, 50, 100] // change per page values here - ], - "iDisplayLength": 20, // default record count per page - "bServerSide": true, // server side processing - "sAjaxSource": requestURL // ajax source - } - }, columns, xsHiddenColumns, smHiddenColumns, openRowFlag, rowCheckable); - } - - /* - * Insert a 'details' column to the table - */ - var insertDetails = function (oTable, columns, rowCheckable) { - - var $tableData = $('table#datatable_ajax'); - - $tableData.on('click', ' tbody td .row-details', function () { - var nTr = $(this).parents('tr')[0]; - if (oTable.fnIsOpen(nTr)) { - /* This row is already open - close it */ - $(this).addClass("row-details-close").removeClass("row-details-open"); - oTable.fnClose(nTr); - } else { - /* Open this row */ - $(this).addClass("row-details-open").removeClass("row-details-close"); - oTable.fnOpen(nTr, fnFormatDetails(oTable, nTr, columns, rowCheckable), 'details'); - } - }); - } - - return { - - //main function to initiate the module - init: function (requestStr, lang, configPathPrefix) { - - var oLanguage; - var columns; - var xsHiddenColumns; - var smHiddenColumns; - var columnsAll; - - var openRowFlag = false; - var rowOverFlag = false; - var rowCheckable = false; - var requestURL=""; - var requestAllData; - var requestParameters; - - var tableHeight; - var tableWidth; - - var columnsTooLong; - var sTotalRecordsSource=""; - - //取得当前配置及国际化信息 - $.ajax({ - dataType: 'json', - url: configPathPrefix + '-' + lang + '.json', - async: false, - contentType:'application/json; charset=utf-8', - "success": function(data) { - oLanguage = data.language; - columns = data.columns; - xsHiddenColumns = data.xsHiddenColumns; - smHiddenColumns = data.smHiddenColumns; - columnsAll = data.columnsAll; - openRowFlag = data.openRowFlag == 'true'? true: false; - rowOverFlag = data.rowOverFlag == 'true'? true: false; - rowCheckable = data.rowCheckable == 'true'? true: false; - requestURL = data.requestURL; - //requestAllData = data.requestAllData; - requestParameters = data.requestParameters; - tableHeight = data.tableHeight; - tableWidth = data.tableWidth; - columnsTooLong = data.columnsTooLong; - sTotalRecordsSource = data.sTotalRecordsSource; - }, - "error" : function (xhr, info) { - alert('Communication Error! Error reason:' + info); - } - }); - - $('#dataTableWrapperDiv').css('width', tableWidth); - - if(!isContained(xsHiddenColumns, smHiddenColumns) || !isContained(columns, xsHiddenColumns) || !isContained(columnsAll, columns)){ - alert('Columns claim error: (smHiddenColumns <= xsHiddenColumns <= columns <= columnsAll) Please!'); - return; - } - - generateColumns(columns, openRowFlag, rowCheckable); - //initPickers(); - handleRecords(requestStr, columns, xsHiddenColumns, smHiddenColumns, oLanguage, openRowFlag, rowCheckable, rowOverFlag, requestURL, requestParameters, tableHeight, columnsTooLong, sTotalRecordsSource); - //获得初始化完毕的DataTable对象 - var oTable = grid.getDataTable(); - if(openRowFlag){ - insertDetails(oTable, columnsAll, rowCheckable); - } - sortHandling(oTable, openRowFlag, rowCheckable); - //oTable.fnAdjustColumnSizing(true); - return oTable; - } - - }; - -}(); - -var DataTableSmartClient = function(datas, configPathPrefix){ - - var requestStr = ""; - if(datas){ - requestStr = JSON.stringify(datas); - } - - var lang = getLanguage(); - //lang = 'en-US'; - loadi18n_FM(lang); - //requestStr = ""; - var oTable = TableAjaxICT.init(requestStr, lang, configPathPrefix); - - //重新调节列宽以适应window resize - $(window).one('resize', function () { - //oTable.DataTable.models.oSettings.bAjaxDataGet = false; - oTable.fnAdjustColumnSizing(false); - } ); -} diff --git a/openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/DataTableSmartClientApp.js b/openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/DataTableSmartClientApp.js deleted file mode 100644 index 25cdb5ff..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/DataTableSmartClientApp.js +++ /dev/null @@ -1,1312 +0,0 @@ -/*** - Wrapper/Helper Class for datagrid based on jQuery Datatable Plugin - ***/ -var DatatableICT = function () { - - var tableOptions; // main options - var dataTable; // datatable object - var table; // actual table jquery object - var tableContainer; // actual table container object - var tableWrapper; // actual table wrapper jquery object - var tableInitialized = false; - var ajaxParams = []; // set filter mode - var columns; - var xsHiddenColumns; - var smHiddenColumns; - var columnMaxLength = 30; - var columnsTooLong; - var hidden_xs_maxWidth = 768; - var hidden_sm_maxWidth = 991; - - var openRowFlag = false; - var rowOverFlag = false; - var rowCheckable = false; - - var aTargetsAll; - var sTotalRecordsSource; - var tableHeight; - - var callbackList = []; - - var includedInXsHiddenColumns = function(columnId){ - for(var i=0;i tr > td:nth-child(1) input[type="checkbox"]:checked', table).size(); - var text = tableOptions.dataTable.oLanguage.sGroupActions; - if (selected > 0) { - $('.table-group-actions > span', tableWrapper).text(text.replace("_TOTAL_", selected)); - } else { - $('.table-group-actions > span', tableWrapper).text(""); - } - } - - var jsonObjectToArray = function(json, columns, iDraw){ - var jsonToDatatable = {aaData:[], sEcho:iDraw, iTotalRecords:0, iTotalDisplayRecords:0 }; - for(var i=0; i"); - } - if(openRowFlag){ - jsonToDatatable.aaData[i].push(""); - } - for(var j=0; j= hidden_xs_maxWidth && $(window).width() < hidden_sm_maxWidth && includedInSmHiddenColumns(columns[j].columnId )){ - /*隐藏pad尺寸需要隐藏的列*/ - }else if($(window).width() < hidden_xs_maxWidth && includedInXsHiddenColumns(columns[j].columnId )){ - /*隐藏手机尺寸需要隐藏的列*/ - }else{ - var currentColumnId = columns[j].columnId; - if(jQuery.inArray(currentColumnId, columnsTooLong) > -1){ - var rawText = ""; - for(var k=0;k columnMaxLength){ - jsonToDatatable.aaData[i].push(rawText.slice(0, columnMaxLength) + '...'); - }else{ - jsonToDatatable.aaData[i].push(resRowObject[currentColumnId]); - } - } else { - jsonToDatatable.aaData[i].push(resRowObject[currentColumnId]); - } - - } - } - } - jsonToDatatable.sEcho++; - var totalRow = 0; - var totalRecordsSource = eval('json.' + sTotalRecordsSource); - if(totalRecordsSource && totalRecordsSource.length >0){ - totalRow = parseInt(totalRecordsSource); - } - if(isNaN(totalRow)){ - alert('All rows counting number got fail!'); - }else{ - jsonToDatatable.iTotalRecords = totalRow; - jsonToDatatable.iTotalDisplayRecords = totalRow; - } - return jsonToDatatable; - } - - var singleAlarmDel = function(divOverlay){ - - //根据浮动框的当前id获取需要删除的行 - var trId = divOverlay.attr('id_tr'); - tr=$('tr#' + trId); - var tds = $(tr).children(); - var tdAlarmId = ""; - if(rowCheckable){ - tdAlarmId = $(tds.eq(2)).text(); - }else{ - tdAlarmId = $(tds.eq(1)).text(); - } - - var data= { - "alarmId":[parseInt(tdAlarmId)] - }; - - var sSource = "/web/rest/web/fm/curalarms?data=" + JSON.stringify(data) + "&_operationType=remove&_dataSource=isc_PageRestDataSource_0&isc_metaDataPrefix=_&isc_dataFormat=json"; - - $.ajax( { - "dataType": 'json', - "type": "DELETE", - "url": sSource, - "data" : null, - "contentType" : 'application/json; charset=utf-8', - "success": function(json) { - if(json.response.status == 0){ - var resRowObject = json.response.data[0]; - //alert('删除成功'); - } - if(json.response.status == -1){ - //alert('删除失败'); - } - }, - "error": function() { - alert('Communication Error!'); - } - } ); - } - - var singleAlarmAckUnAck = function(divOverlay, ackType){ - - //根据浮动框的当前id获取需要确认的行 - var trId = divOverlay.attr('id_tr'); - var tr = $('tr#' + trId); - - //取得隐藏的头部表格的相应行 - var $tableHead = $('div.dataTables_scrollHeadInner > table.dataTable'); - //var trHead = $('tbody > tr:nth-child(' + trId + ')', $tableHead); - var trHead = $('tr#' + trId.replace('body', 'head'), $tableHead); - var tdDivs = $('td > div', trHead); - - var tds = $(tr).children(); - var tdAlarmId = ""; - if(rowCheckable){ - tdAlarmId = $(tds.eq(2)).text(); - }else{ - tdAlarmId = $(tds.eq(1)).text(); - } - - var aoData = - { - "dataSource":"isc_PageRestDataSource_0", - "operationType":"update", - "componentId":"isc_com_zte_ums_aos_fm_view_eventview_table_AlarmTable_0", - "data":{ - "viewType":1, - "state":ackType, - "alarmId":[ - parseInt(tdAlarmId) - ] - }, - "oldValues":null - }; - - var sSource = "/web/rest/web/fm/curalarms?isc_dataFormat=json"; - - $.ajax( { - "dataType": 'json', - "type": "PUT", - "url": sSource, - "contentType": 'application/json; charset=utf-8', - "data": JSON.stringify(aoData), - "success": function(json) { - /*for(var i=0;i0){ - json = callbackList[i](json); - break; - } - }*/ - //json = AlarmLabels.transformFieldNames(json); - if(callbackList[1]){ - json = callbackList[1](json); - } - if(json.response.status == 0){ - var resRowObject = json.response.data[0]; - var columnsCopy = $.extend(true, [], columns); - //隐藏列的情况下需要特殊处理 - if($(window).width()>=hidden_xs_maxWidth && $(window).width() -1) { - var rawText = ""; - for(var k=0;k columnMaxLength){ - $(tds.eq(i)).html(rawText.slice(0, columnMaxLength) + '...'); - $(tdDivs.eq(i)).html(rawText.slice(0, columnMaxLength) + '...'); - }else{ - $(tds.eq(i)).html(resRowObject[currentColumnId]); - $(tdDivs.eq(i)).html(resRowObject[currentColumnId]); - } - } else { - $(tds.eq(i)).html(resRowObject[currentColumnId]); - $(tdDivs.eq(i)).html(resRowObject[currentColumnId]); - } - } - //更新缓存中的当前行数据 - for (var t = 0; t < dataTable.datas.length; t++) { - var temp = dataTable.datas[t]; - if (temp.alarmId == resRowObject['alarmId']) { - dataTable.datas[t] = resRowObject; - break; - } - } - } - if(json.response.status == -1){ - $('div#myModalConfirm').modal({ - keyboard: false, - backdrop: 'static' - }); - $('span#alarm_number').html(tdAlarmId); - //国际化信息 - if(ackType==1){ - $('span#aos_fm_alarm_opeater_ack_already').html($.i18n.prop('aos_fm_alarm_opeater_ack_already_ok')); - }else{ - $('span#aos_fm_alarm_opeater_ack_already').html($.i18n.prop('aos_fm_alarm_opeater_ack_already_un')); - } - } - //填充单元格颜色 - var divColor = $("div.cellBackgroundColor", tr); - $(divColor).parent().css("background", $(divColor).css("background-color")); - }, - "error": function() { - alert('Communication Error!'); - } - } ); - } - - var addRowOverlap = function(){ - var $tableData = $('table#datatable_ajax'); - //取得隐藏的头部表格的相应行 - var $tableHead = $('div.dataTables_scrollHeadInner > table.dataTable'); - var trHeads = $tableHead.find('tr').get(); - $.each( trHeads, function( index, trHead ){ - $(trHead).attr('id', 'headTableTR' + index); - }); - //取得浮动div - var $divOverlay = $('div#divOverlay'); - var divScrollHead = $('div.dataTables_scrollHead'); - var divRightPadding = $('div#divRightPadding'); - //取表头下边沿位置 - var tableHeadBottomHeight = $(divScrollHead).position().top + $(divScrollHead).height(); - var tableBottom = $tableData.position().top + $tableData.height() + 3; - //取表格右边沿位置 - var tableRightEdgePosition = $(divRightPadding).position().left; - var trs = $tableData.find('tr').get(); - $.each( trs, function( index, tr ){ - var tdEmpty = $('td.dataTables_empty',tr); - if(!tdEmpty || tdEmpty.length ==0 ){ - $(tr).attr('id', 'bodyTableTR' + index); - //$divOverlay.attr('id_tr', 'bodyTableTR' + index); - $(tr).one('hover', function(){ - var rowPos = $(tr).position(); - var currentTrTop = rowPos.top; - //var bottomLeft = rowPos.left; - $divOverlay.attr('id_tr', 'bodyTableTR' + index); - $divOverlay.css({ - display: 'block', - position: 'absolute', - 'background-color': '#e5e5e5', - //opacity: 0.7, - border: 'solid 0px', - top: currentTrTop + 6, - left: tableRightEdgePosition - 308, - width: 300, - height: 30 - }); - //防止浮动框跳出表格内容区域 - if( $divOverlay.position().top < tableHeadBottomHeight || $divOverlay.position().top + $divOverlay.height() > tableBottom){ - $divOverlay.css('display', 'none'); - } - var buttonConfirm = $('div#buttonConfirm', $divOverlay); - var buttonUnConfirm = $('div#buttonUnConfirm', $divOverlay); - //初始化悬浮按钮当前行的确认反确认状态 - if($(tr).find('span.alarmAck') && $(tr).find('span.alarmAck').length >0){ - var spanAck = $(tr).find('span.alarmAck'); - var ackState = $(spanAck).attr('ack_id'); - var buttonTDsConfirm = $(buttonConfirm).find('td'); - var buttonTDsUnConfirm = $(buttonUnConfirm).find('td'); - if(ackState=="2"){ - if(buttonTDsConfirm && buttonTDsConfirm.length > 0 && buttonTDsUnConfirm && buttonTDsUnConfirm.length > 0){ - $.each(buttonTDsConfirm, function(index, td){ - $(td).removeClass('buttonRoundedDisabled').addClass('buttonRounded'); - }); - $.each(buttonTDsUnConfirm, function(index, td){ - $(td).removeClass('buttonRounded').addClass('buttonRoundedDisabled'); - }); - } - }else{ - if(buttonTDsConfirm && buttonTDsConfirm.length > 0 && buttonTDsUnConfirm && buttonTDsUnConfirm.length > 0){ - $.each(buttonTDsConfirm, function(index, td){ - $(td).removeClass('buttonRounded').addClass('buttonRoundedDisabled'); - }); - $.each(buttonTDsUnConfirm, function(index, td){ - $(td).removeClass('buttonRoundedDisabled').addClass('buttonRounded'); - }); - } - } - } - //添加确认反确认点击事件 - $(buttonConfirm).one('click', function(){ - var buttonRoundedTDsConfirm = $(buttonConfirm).find('td.buttonRounded'); - var buttonRoundedTDsUnConfirm = $(buttonUnConfirm).find('td.buttonRoundedDisabled'); - if(buttonRoundedTDsConfirm && buttonRoundedTDsConfirm.length > 0){ - $.each(buttonRoundedTDsConfirm, function(index, td){ - $(td).removeClass('buttonRounded').addClass('buttonRoundedDisabled'); - }); - $.each(buttonRoundedTDsUnConfirm, function(index, td){ - $(td).removeClass('buttonRoundedDisabled').addClass('buttonRounded'); - }); - $divOverlay.css('display', 'none'); - singleAlarmAckUnAck($divOverlay, 1); - } - }); - $(buttonUnConfirm).one('click', function(){ - var buttonRoundedTDsUnConfirm = $(buttonUnConfirm).find('td.buttonRounded'); - var buttonRoundedTDsConfirm = $(buttonConfirm).find('td.buttonRoundedDisabled'); - if(buttonRoundedTDsUnConfirm && buttonRoundedTDsUnConfirm.length > 0){ - $.each(buttonRoundedTDsUnConfirm, function(index, td){ - $(td).removeClass('buttonRounded').addClass('buttonRoundedDisabled'); - }); - $.each(buttonRoundedTDsConfirm, function(index, td){ - $(td).removeClass('buttonRoundedDisabled').addClass('buttonRounded'); - }); - $divOverlay.css('display', 'none'); - singleAlarmAckUnAck($divOverlay, 2); - } - }); - var buttonDelete = $('div#buttonDelete', $divOverlay); - $(buttonDelete).die().live('click', function(){ - $divOverlay.css('display', 'none'); - var trIdToDelete = $divOverlay.attr('id_tr'); - var toDeleteTr=$('tr#' + trIdToDelete); - $("td", toDeleteTr).addClass('dataTableTdSelected'); - //弹出删除确认对话框 - $('div#myModal').modal({ - keyboard: false, - backdrop: 'static' - }); - $('#delConfirm').die().live('click', function(){ - //$divOverlay.css('display', 'none'); - dataTable.fnClose(tr); - //删除后端数据 - singleAlarmDel($divOverlay); - //删除当前行 - $(tr).remove(); - //删除表头表格的相应行 - $('tr#' + $(tr).attr('id').replace('body', 'head'), $tableHead).remove(); - //刷新表格 - //dataTable.fnAdjustColumnSizing(); - }); - $('#myModal').on('hidden.bs.modal', function (e) { - $("td", toDeleteTr).removeClass('dataTableTdSelected'); - }) - }); - //展开行的情况隐藏 - $('td.details > table.detailTable').on('hover', function(){ - $divOverlay.css('display', 'none'); - }); - $('div#myModal').on('hover', function(){ - $divOverlay.css('display', 'none'); - }); - }); - } - }); - } - - return { - - //main function to initiate the module - init: function (options, columnsDefined, xsHiddenColumnsDefined, smHiddenColumnsDefined) { - - if (!$().dataTable) { - return; - } - - var the = this; - - //记录需要禁掉默认排序的列 - var aTargets = []; - var targetsLength = columnsDefined.length; - if(rowCheckable)targetsLength++; - if(openRowFlag)targetsLength++; - for(var i=0;i<'col-md-4 col-sm-12'<'table-group-actions pull-right'>>r><'table-scrollable't><'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'>r>>", // datatable layout - - "aoColumnDefs" : [{ // define columns sorting options(by default all columns are sortable extept the first checkbox column) - 'bSortable' : false, - 'aTargets' : aTargets - }], - - "bAutoWidth": false, // disable fixed width and enable fluid table - //"bSortCellsTop": true, // make sortable only the first row in thead - "sPaginationType": "bootstrap_extended", // pagination type(bootstrap, bootstrap_full_number or bootstrap_extended) - "bProcessing": true, // enable/disable display message box on record load - "bServerSide": true, // enable/disable server side ajax loading - "sAjaxSource": "", // define ajax source URL - //"sServerMethod": "GET", - - // handle ajax request - "fnServerData": function ( sSource, aoData, fnCallback, oSettings ) { - //for ICT Paging - //var startIndex = aoData[3].value;//"iDisplayStart" - //var pageLength = aoData[4].value;//"iDisplayLength" - var oPaging = oSettings.oInstance.fnPagingInfo(); - //var startIndex = oPaging.iStart; - var pageLength = oPaging.iLength; - var curPageNo = oPaging.iPage + 1; - - for(var k=aoData.length-1;k>=0;k--){ - var flag = -1; - if(aoData[k].name=='pageSize'){ - aoData[k].value=pageLength; - flag++; - } - if(aoData[k].name=='pageNo'){ - aoData[k].value=curPageNo; - flag++ - } - if(flag == 1)break; - } - - oSettings.jqXHR = $.ajax( { - "dataType": 'json', - "type": "GET", - "url": sSource, - "data": aoData, - "success": function(res, textStatus, jqXHR) { - if (res.sMessage) { - openoFrameWork.alert({type: (res.sStatus == 'OK' ? 'success' : 'danger'), icon: (res.sStatus == 'OK' ? 'check' : 'warning'), message: res.sMessage, container: tableWrapper, place: 'prepend'}); - } - if ($('.group-checkable', tableContainer).size() === 1) { - $('.group-checkable', tableContainer).attr("checked", false); - $.uniform.update($('.group-checkable', tableContainer)); - } - if (tableOptions.onSuccess) { - tableOptions.onSuccess.call(the); - } - //保存数据在dataTable对象中给行详细信息面板用 - dataTable.datas = res.response.data; - if(res.response.status < 0){ - alert(res.response.data); - return; - } - - //告警字段值转换 - //res = AlarmLabels.transformFieldNames(res); - /*for(var i=0;i0){ - res = callbackList[i](res); - break; - } - }*/ - if(callbackList[1]){ - res = callbackList[1](res); - } - - res = jsonObjectToArray(res, columns, oSettings.iDraw); - - //重绘表格 - fnCallback(res, textStatus, jqXHR); - }, - "error": function() { - if (tableOptions.onError) { - tableOptions.onError.call(the); - } - openoFrameWork.alert({type: 'danger', icon: 'warning', message: tableOptions.dataTable.oLanguage.sAjaxRequestGeneralError, container: tableWrapper, place: 'prepend'}); - $('.dataTables_processing', tableWrapper).remove(); - } - } ); - - }, - - // pass additional parameter - "fnServerParams": function ( aoData ) { - //here can be added an external ajax request parameters. - //for(var i in ajaxParams) { - for(var i=0; i table.dataTable', tableWrapper); - var tbodyHead = $('tbody', $tableHead); - if(tbodyHead && tbodyHead.length >0){ - $(tbodyHead).remove(); - } - - var $tableBody = $('table#datatable_ajax', tableWrapper); - var trIn = $('thead > tr:nth-child(1)', $tableHead); - var trBodyHead = $('thead > tr:nth-child(1)', $tableBody); - var tds = $(trIn).children(); - var ths = $(trBodyHead).children(); - for(var k=0;k' + tds.eq(k).html() + ''); - } - var bodyRows = $('tbody > tr', $tableBody); - for(var i=0;i' + tds.eq(j).html() + ''); - $(tds.eq(j)).height('0px'); - $(tds.eq(j)).css('padding-top','0px'); - $(tds.eq(j)).css('padding-bottom','0px'); - $(tds.eq(j)).css('border-top-width','0px'); - $(tds.eq(j)).css('border-bottom-width','0px'); - } - $(rowClone).height('0px'); - $tableHead.append($(rowClone).prop("outerHTML")); - } - - $('.dataTables_scrollBody').css('width','100%'); - $('.dataTables_scrollHead').css('width','98.5%'); - $('.dataTables_scrollHeadInner').css('padding-right', 0); - - //添加浮动确认反确认按钮 - if(rowOverFlag){ - addRowOverlap(); - } - - //填充单元格颜色 - var divColors = $("div.cellBackgroundColor", $tableBody); - $.each( divColors, function( index, divColor ){ - $(divColor).parent().css("background", $(divColor).css("background-color")); - }); - - //设置表格本体高度 - $('div.dataTables_scrollBody').css('height', tableHeight); - } - } - }, options); - - tableOptions = options; - - columns = columnsDefined; - xsHiddenColumns = xsHiddenColumnsDefined; - smHiddenColumns = smHiddenColumnsDefined; - // create table's jquery object - table = $(options.src); - tableContainer = table.parents(".table-container"); - // apply the special class that used to restyle the default datatable - - $.fn.dataTableExt.oStdClasses.sWrapper = $.fn.dataTableExt.oStdClasses.sWrapper + " dataTables_extended_wrapper"; - - // initialize a datatable - dataTable = table.dataTable(options.dataTable); - - tableWrapper = table.parents('.dataTables_wrapper'); - - // modify table per page dropdown input by appliying some classes - $('.dataTables_length select', tableWrapper).addClass("form-control input-xsmall input-sm"); - - // handle group checkboxes check/uncheck - $('.group-checkable', tableContainer).change(function () { - var set = $('tbody > tr > td:nth-child(1) input[type="checkbox"]', table); - var checked = $(this).is(":checked"); - $(set).each(function () { - $(this).attr("checked", checked); - }); - $.uniform.update(set); - countSelectedRecords(); - }); - - // handle row's checkbox click - table.on('change', 'tbody > tr > td:nth-child(1) input[type="checkbox"]', function(){ - countSelectedRecords(); - }); - - //填充表头右边界 - $('.dataTables_scrollHead').css('display','inline-block'); - //var dataTables_scrollHead_height = $('.dataTables_scrollHead').css( "height" ); - $(".dataTables_scrollHead").after("
    "); - if($.browser.mozilla){ - $('#divRightPadding').css('height', '40'); - } - - //隐藏掉某些列 - var $tableHead = $('div.dataTables_scrollHeadInner > table.dataTable', tableWrapper); - var $tableBody = $('table#datatable_ajax', tableWrapper); - - for(var i=0;i tr > th#' + columns[j].columnId, $tableHead).addClass('hidden-xs'); - $('thead > tr > th#' + columns[j].columnId, $tableBody).addClass('hidden-xs'); - break; - } - } - } - - for(var i=0;i tr > th#' + columns[j].columnId, $tableHead).addClass('hidden-sm'); - $('thead > tr > th#' + columns[j].columnId, $tableBody).addClass('hidden-sm'); - break; - } - } - } - },//end init------------------------------------------------------------------------------------ - - getSelectedRowsCount: function() { - return $('tbody > tr > td:nth-child(1) input[type="checkbox"]:checked', table).size(); - }, - - getSelectedRows: function() { - var rows = []; - $('tbody > tr > td:nth-child(1) input[type="checkbox"]:checked', table).each(function(){ - rows.push({name: $(this).attr("name"), value: $(this).val()}); - }); - - return rows; - }, - - addAjaxParam: function(name, value) { - ajaxParams.push({"name": name, "value": value}); - }, - - clearAjaxParams: function(name, value) { - ajaxParams = []; - }, - - getDataTable: function() { - return dataTable; - }, - - getTableWrapper: function() { - return tableWrapper; - }, - - gettableContainer: function() { - return tableContainer; - }, - - getTable: function() { - return table; - }, - - setOpenRowFlag: function(openRowFlagInput) { - openRowFlag = openRowFlagInput; - }, - - setRowOverFlag: function(rowOverFlagInput) { - rowOverFlag = rowOverFlagInput; - }, - - setRowCheckable: function(rowCheckableInput) { - rowCheckable = rowCheckableInput; - }, - - setColumnsTooLong: function(columnsTooLongInput) { - columnsTooLong = columnsTooLongInput; - }, - - setSTotalRecordsSource: function(sTotalRecordsSourceInput){ - sTotalRecordsSource = sTotalRecordsSourceInput; - }, - - setTableHeight: function(tableHeightInput){ - tableHeight = tableHeightInput; - }, - - setCallbackList: function(list){ - if($.isArray(list)){ - callbackList = list; - } - } - - }; - -}; - -var TableAjaxICT = function () { - - var initPickers = function () { - //init date pickers - $('.date-picker').datepicker({ - //rtl: App.isRTL(), - autoclose: true - }); - } - - //判断a数组是否包含b数组 - function isContained(largeArray, smallArray){ - if(!(largeArray instanceof Array) || !(smallArray instanceof Array)) - return false; - if(largeArray.length < smallArray.length) - return false; - for(var i = 0; i < smallArray.length; i++){ - var flag = false; - for(j=0;j 0){ - detailTableId = "alarmDetailInfo" + detailTables.length; - } - var sOut = ''; - sOut += ''; - sOut += ''; - sOut += ''; - sOut += ''; - - sOut += ''; - sOut += ''; - sOut += ''; - - sOut += ''; - sOut += ''; - sOut += ''; - sOut += ''; - - sOut += ''; - sOut += ''; - - sOut += ''; - sOut += ''; - - sOut += ''; - - sOut += ''; - - sOut += ''; - - sOut += ''; - - sOut += '
    ' + columns[0].columnTitle + '' + alarmId + '' + columns[4].columnTitle + '' + perceivedSeverity + '' + columns[9].columnTitle + '' + alarmType + '' + columns[3].columnTitle + '' + alarmRaisedTime + '
    ' + columns[5].columnTitle + '' + probableCauseDesc + '' + columns[15].columnTitle + '' + alarmChangedTime + '' + columns[11].columnTitle + '' + ackState + '
    ' + columns[12].columnTitle + '' + ackTime + '' + columns[13].columnTitle + '' + ackUserId + '' + columns[14].columnTitle + '' + ackSystemId + '' + columns[7].columnTitle + '' + neip + '
    ' + columns[2].columnTitle + '' + moc + '' + columns[1].columnTitle + '' + resDisplayName + '
    ' + columns[8].columnTitle + '' + componentname + '' + columns[16].columnTitle + '' + position1 + '
    ' + columns[10].columnTitle + '' + specificproblem + '
    ' + columns[6].columnTitle + '' + additionalText + '
    ' + $.i18n.prop('aos_fm_SuggestionSetting_view_DefaultSuggestionGroupTitle').replace(';', '').replace(/\"/g,'') + '' + '
    ' + $.i18n.prop('aos_fm_SuggestionSetting_view_SettingSuggestionGroupTitle').replace(';', '').replace(/\"/g,'') + '
    '; - - /* - var systemType = 0; - var code = 0; - for (var i = 0; i < oTable.datas.length; i++) { - var temp = oTable.datas[i]; - if (temp.alarmId == oTr['alarmId'].value) { - systemType = temp.systemType; - code = temp.probableCauseCode; - } - }*/ - var data = { - "systemType" : systemType, - "code" : code - }; - var sendData = JSON.stringify(data); - $.ajax({ - "dataType" : 'json', - "type" : "GET", - "url" : "/web/rest/web/fm/Maintenance" + "?" + "data=" + sendData, - "contentType" : 'application/json; charset=utf-8', - "data" : null, - "success" : function (json) { - $('tr').find('td#defaulInfo' + id).text(json.defaulInfo); - $('tr').find('td#customInfo' + id).text(json.customInfo); - var modify = $('#customInfoModify' + id); - modify.on('click', function () { - var span = $('#modifyBtnSpan' + id); - var customInfo = $('tr').find('td#customInfo' + id); - var cancel = $('#cancelDiv' + id); - if (span['0'].className === 'fa fa-pencil-square-o') { - var value = customInfo['0'].textContent; - customInfo['0'].textContent = ''; - customInfo['0'].innerHTML = ''; - span['0'].className = 'fa fa-floppy-o'; - cancel['0'].innerHTML = ''; - $('#cancelBtn' + id).on('click', function () { - customInfo['0'].innerHTML = ''; - customInfo['0'].textContent = value; - cancel['0'].innerHTML = ''; - span['0'].className = 'fa fa-pencil-square-o'; - }); - } else { - var inputValue = $('#customInfoInput' + id)['0'].value; - customInfo['0'].innerHTML = ''; - customInfo['0'].textContent = inputValue; - span['0'].className = 'fa fa-pencil-square-o'; - cancel['0'].innerHTML = ''; - var modifyData = { - "systemType" : systemType, - "code" : code, - "defaulInfo" : json.defaulInfo, - "customInfo" : inputValue - }; - $.ajax({ - "dataType" : 'json', - "type" : "PUT", - "url" : "/web/rest/web/fm/Maintenance", - "contentType" : 'application/json; charset=utf-8', - "data" : JSON.stringify(modifyData), - "error" : function () { - alert('Modify Error!'); - } - }); - } - }); - }, - "error" : function () { - alert('Communication Error!'); - } - }); - - return sOut; - } - - var generateColumns = function(columns, openRowFlag, rowCheckable){ - var $tableData = $('table#datatable_ajax'); - var theadTR = $('thead > tr', $tableData); - if(rowCheckable){ - theadTR.append(''); - } - if(openRowFlag){ - theadTR.append('  '); - } - for(var i=0;i' + columns[i].columnTitle + ''); - } - } - - var sortHandling = function(oTable, openRowFlag, rowCheckable){ - var indexSkip = -1; - if(openRowFlag&&rowCheckable){ - indexSkip = 1; - }else if(openRowFlag&&!rowCheckable||!openRowFlag&&rowCheckable){ - indexSkip = 0; - } - var $sortOrder = 0; //排序类型 1表示升序,0表示降序 - var tableWrapper = $('div#datatable_ajax_wrapper'); - var $tableHead = $('div.dataTables_scrollHeadInner > table.dataTable', tableWrapper); - var $tableData = $('table#datatable_ajax'); - var clearSort = function(currentTh){ - var ths = $tableHead.find('th').get(); - var tableDataHeadTHs = $tableData.find('th').get(); - $.each( ths, function( index, th ){ - if(index > indexSkip){ - if($(th).text() != currentTh.text()){ - if($(th).is('.sorting_disabled')){ - //do nothing; - }else if($(th).is('.sorting_asc')){ - $(th).removeClass('sorting_asc').addClass('sorting_disabled'); - $(tableDataHeadTHs[index]).removeClass('sorting_asc').addClass('sorting_disabled'); - }else if($(th).is('.sorting_desc')){ - $(th).removeClass('sorting_desc').addClass('sorting_disabled'); - $(tableDataHeadTHs[index]).removeClass('sorting_desc').addClass('sorting_disabled'); - } - } - } - }); - } - - $('th', $tableHead).each(function( column ) - { - if(column>indexSkip){ - //处理三种有可能存在的排序字段,比较方法 - var findSortKey; - if( $(this).is('.sort-title') || $(this).is('.sorting_disabled') ) - { - findSortKey = function( $cell ) - { - var cellText = $cell.text(); - if(isNaN(cellText)){ - return $cell.text().toUpperCase(); - }else{ - return parseFloat(cellText); - } - //return $cell.text().toUpperCase(); - } - } - else if( $(this).is('.sort-date') ) - { - findSortKey = function( $cell ) - { - return Date.parse('1' + $cell.text()); - } - } - else if( $(this).is('.sort-price') ) - { - findSortKey = function( $cell ) - { - var key = parseFloat($cell.text().replace(/^[^\d.]*/, '')) - return isNaN(key) ? 0 : key; - } - } - - //排序 - if( findSortKey ) - { - $(this).click(function() - { - $sortOrder = $sortOrder == 0 ? 1 : 0; - var tableDataHeadTHs = $tableData.find('th').get(); - - if($sortOrder == 1){ - if($(this).is('.sorting_disabled')){ - $(this).removeClass('sorting_disabled').addClass('sorting_asc'); - $(tableDataHeadTHs[column]).removeClass('sorting_disabled').addClass('sorting_asc'); - }else if($(this).is('.sorting_asc')){ - $(this).removeClass('sorting_asc').addClass('sorting_desc'); - $(tableDataHeadTHs[column]).removeClass('sorting_asc').addClass('sorting_desc'); - }else if($(this).is('.sorting_desc')){ - $(this).removeClass('sorting_desc').addClass('sorting_asc'); - $(tableDataHeadTHs[column]).removeClass('sorting_desc').addClass('sorting_asc'); - } - }else{ - if($(this).is('.sorting_disabled')){ - $(this).removeClass('sorting_disabled').addClass('sorting_desc'); - $(tableDataHeadTHs[column]).removeClass('sorting_disabled').addClass('sorting_desc'); - }else if($(this).is('.sorting_asc')){ - $(this).removeClass('sorting_asc').addClass('sorting_desc'); - $(tableDataHeadTHs[column]).removeClass('sorting_asc').addClass('sorting_desc'); - }else if($(this).is('.sorting_desc')){ - $(this).removeClass('sorting_desc').addClass('sorting_asc'); - $(tableDataHeadTHs[column]).removeClass('sorting_desc').addClass('sorting_asc'); - } - } - clearSort($(this)); - - var rows = $tableData.find('tbody > tr').get(); - - $.each( rows, function( index, row ) - { - //先关掉所有行 - if ( oTable.fnIsOpen(row) ) - { - $(row).find('.row-details').click(); - } - }); - - //重新取得所有行,否则排序后表格显示异常 - rows = $tableData.find('tbody > tr').get(); - - $.each( rows, function( index, row ) - { - row.sortKey = findSortKey($(row).children('td').eq(column)); - }); - //排序方法 - rows.sort(function( a, b ) - { - if( $sortOrder == 1 ) - { - //升序 - if(a.sortKey < b.sortKey) return -1; - if(a.sortKey > b.sortKey) return 1; - return 0; - } - else - { - //降序 - if(a.sortKey < b.sortKey) return 1; - if(a.sortKey > b.sortKey) return -1; - return 0; - } - }); - //排序后的对象添加给$table - $.each( rows, function( index, row ) - { - $tableData.children('tbody').append(row); - row.sortKey = null; - }); - }); - } - } - }); - } - - var handleRecords = function(requestStr, columns, xsHiddenColumns, smHiddenColumns, oLanguage, openRowFlag, rowCheckable, rowOverFlag, requestURL, requestParameters, tableHeight, columnsTooLong, sTotalRecordsSource, callbackList) { - - /* - jQuery.getJSON('/web/newict/framework/thirdparty/data-tables/app-universal-i18n-datatable-' + lang + '.json', - function(data) { - oLanguage = data; - }); - */ - grid.setCallbackList(callbackList); - grid.setOpenRowFlag(openRowFlag); - grid.setRowCheckable(rowCheckable); - grid.setRowOverFlag(rowOverFlag); - grid.setColumnsTooLong(columnsTooLong); - grid.setSTotalRecordsSource(sTotalRecordsSource); - grid.setTableHeight(tableHeight); - //取得查询条件 -// if(!requestStr || requestStr.length == 0){ -// requestStr = JSON.stringify(requestAllData); -// } - grid.clearAjaxParams(); - grid.addAjaxParam('data', requestStr); - //取得其他参数 - for(var i=0;i table.dataTable', tableWrapper); - var ths = $tableHead.find('th').get(); - var $tableData = $('table#datatable_ajax'); - var tableDataHeadTHs = $tableData.find('th').get(); - $.each( ths, function( index, th ){ - //clear all sort direction - if($(th).is('.sorting_disabled')){ - //do nothing; - }else if($(th).is('.sorting_asc')){ - $(th).removeClass('sorting_asc').addClass('sorting_disabled'); - $(tableDataHeadTHs[index]).removeClass('sorting_asc').addClass('sorting_disabled'); - }else if($(th).is('.sorting_desc')){ - $(th).removeClass('sorting_desc').addClass('sorting_disabled'); - $(tableDataHeadTHs[index]).removeClass('sorting_desc').addClass('sorting_disabled'); - } - }); - - }, - onError: function(grid) { - // execute some code on network or other general error - }, - dataTable: { - "sDom" : "tr<'row'<'col-md-6 col-sm-12'><'col-md-6 col-sm-12'pli>>", // datatable layout - "oLanguage": oLanguage, - //"bAutoWidth": true, - "sScrollY": tableHeight, - "bScrollCollapse": true, - "sScrollX": "100%", - //"sScrollXInner": "110%", - "aLengthMenu": [ - [20, 50, 100], - [20, 50, 100] // change per page values here - ], - "iDisplayLength": 20, // default record count per page - "bServerSide": true, // server side processing - "sAjaxSource": requestURL // ajax source - } - }, columns, xsHiddenColumns, smHiddenColumns, openRowFlag, rowCheckable); - } - - /* - * Insert a 'details' column to the table - */ - var insertDetails = function (oTable, columns, rowCheckable) { - - var $tableData = $('table#datatable_ajax'); - - $tableData.on('click', ' tbody td .row-details', function () { - var nTr = $(this).parents('tr')[0]; - if (oTable.fnIsOpen(nTr)) { - /* This row is already open - close it */ - $(this).addClass("row-details-close").removeClass("row-details-open"); - oTable.fnClose(nTr); - } else { - /* Open this row */ - $(this).addClass("row-details-open").removeClass("row-details-close"); - oTable.fnOpen(nTr, fnFormatDetails(oTable, nTr, columns, rowCheckable), 'details'); - //填充单元格颜色 - var divColor = $("div.cellBackgroundColor", $("table#" + detailTableId)); - $(divColor).parent().css("background", $(divColor).css("background-color")); - } - }); - } - - return { - - //main function to initiate the module - init: function (requestStr, lang, configPathPrefix, callbackList) { - - var oLanguage; - var columns; - var xsHiddenColumns; - var smHiddenColumns; - var columnsAll; - - var openRowFlag = false; - var rowOverFlag = false; - var rowCheckable = false; - var requestURL=""; - var requestAllData; - var requestParameters; - - var tableHeight; - var tableWidth; - - var columnsTooLong; - var sTotalRecordsSource=""; - - //取得当前配置及国际化信息 - $.ajax({ - dataType: 'json', - url: configPathPrefix + '-' + lang + '.json', - async: false, - contentType:'application/json; charset=utf-8', - "success": function(data) { - oLanguage = data.language; - columns = data.columns; - xsHiddenColumns = data.xsHiddenColumns; - smHiddenColumns = data.smHiddenColumns; - columnsAll = data.columnsAll; - openRowFlag = data.openRowFlag == 'true'? true: false; - rowOverFlag = data.rowOverFlag == 'true'? true: false; - rowCheckable = data.rowCheckable == 'true'? true: false; - requestURL = data.requestURL; - //requestAllData = data.requestAllData; - requestParameters = data.requestParameters; - tableHeight = data.tableHeight; - tableWidth = data.tableWidth; - columnsTooLong = data.columnsTooLong; - sTotalRecordsSource = data.sTotalRecordsSource; - }, - "error" : function (xhr, info) { - alert('Communication Error! Error reason:' + info); - } - }); - - $('#dataTableWrapperDiv').css('width', tableWidth); - - if(!isContained(xsHiddenColumns, smHiddenColumns) || !isContained(columns, xsHiddenColumns) || !isContained(columnsAll, columns)){ - alert('Columns claim error: (smHiddenColumns <= xsHiddenColumns <= columns <= columnsAll) Please!'); - return; - } - - generateColumns(columns, openRowFlag, rowCheckable); - //initPickers(); - handleRecords(requestStr, columns, xsHiddenColumns, smHiddenColumns, oLanguage, openRowFlag, rowCheckable, rowOverFlag, requestURL, requestParameters, tableHeight, columnsTooLong, sTotalRecordsSource, callbackList); - //获得初始化完毕的DataTable对象 - var oTable = grid.getDataTable(); - if(openRowFlag){ - insertDetails(oTable, columnsAll, rowCheckable); - } - sortHandling(oTable, openRowFlag, rowCheckable); - //oTable.fnAdjustColumnSizing(true); - return oTable; - } - - }; - -}(); - -var DataTableSmartClientApp = function(datas, configPathPrefix, callbackList){ - - var requestStr = ""; - if(datas){ - requestStr = JSON.stringify(datas); - } - - var lang = getLanguage(); - //lang = 'en-US'; - /*for(var i=0;i0){ - callbackList[i](lang); - break; - } - }*/ - if(callbackList && callbackList[0]){ - callbackList[0](lang); - } - //requestStr = ""; - var oTable = TableAjaxICT.init(requestStr, lang, configPathPrefix, callbackList); - - //重新调节列宽以适应window resize - $(window).one('resize', function () { - //oTable.DataTable.models.oSettings.bAjaxDataGet = false; - oTable.fnAdjustColumnSizing(false); - } ); -} diff --git a/openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/app-test-i18n-datatable-zh-CN.json b/openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/app-test-i18n-datatable-zh-CN.json deleted file mode 100644 index 90996845..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/app-test-i18n-datatable-zh-CN.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "language":{ - "sProcessing": "  å¤„理中...", - "sLengthMenu": "|每页 _MENU_ 条结果", - "sZeroRecords": "没有匹配结果", - "sInfo": "|总共找到 _TOTAL_ 条结果", - "sInfoEmpty": "共 0 项", - "sGroupActions": "_TOTAL_ 条结果被选择: ", - "sAjaxRequestGeneralError": "不能完成请求,请检查您的网络连接情况。", - "sEmptyTable": "表中数据为空", - "oPaginate": { - "sPrevious": "前页", - "sNext": "下页", - "sPage": "第", - "sPageOf": "页,总页数:" - } - }, - "columnsAll":[ - {"columnId":"0", "columnTitle":"开始时间"}, - {"columnId":"1", "columnTitle":"结束时间"}, - {"columnId":"2", "columnTitle":"查询粒度"}, - {"columnId":"3", "columnTitle":"网元位置"}, - {"columnId":"4", "columnTitle":"CPU使用率(百分比)"} - ], - "columns":[ - {"columnId":"0", "columnTitle":"开始时间"}, - {"columnId":"1", "columnTitle":"结束时间"}, - {"columnId":"2", "columnTitle":"查询粒度"}, - {"columnId":"3", "columnTitle":"网元位置"}, - {"columnId":"4", "columnTitle":"CPU使用率(百分比)"} - ], - "xsHiddenColumns":[ - ], - "smHiddenColumns":[ - ], - "columnsTooLong":["3"], - - "rowCheckable": "true", - "openRowFlag" : "false", - "rowOverFlag" : "false", - - "tableHeight":"250px", - "tableWidth":"100%", - - "requestType": "POST", - "requestURL": "/web/rest/web-pm/queryPmPageData", - "requestParameters":[ - ], - "sTotalRecordsSource":"response.extData", - "sTotalRecords":"108" -} \ No newline at end of file diff --git a/openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/app-universal-i18n-datatable-en-US.json b/openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/app-universal-i18n-datatable-en-US.json deleted file mode 100644 index 666f1cda..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/app-universal-i18n-datatable-en-US.json +++ /dev/null @@ -1,89 +0,0 @@ -{ - "language":{ - "sProcessing": "  Loading...", - "sLengthMenu": "|View _MENU_ records", - "sInfo": "|Found total _TOTAL_ records", - "sInfoEmpty": "No records found to show", - "sGroupActions": "_TOTAL_ records selected: ", - "sAjaxRequestGeneralError": "Could not complete request. Please check your internet connection", - "sEmptyTable": "No data available in table", - "sZeroRecords": "No matching records found", - "oPaginate": { - "sPrevious": "Prev", - "sNext": "Next", - "sPage": "Page", - "sPageOf": "of" - } - }, - "columnsAll":[ - {"columnId":"alarmId", "columnTitle":"Alarm Id"}, - {"columnId":"resDisplayName", "columnTitle":"NE"}, - {"columnId":"moc", "columnTitle":"NE Type"}, - {"columnId":"alarmRaisedTime", "columnTitle":"Raised Time"}, - {"columnId":"perceivedSeverity", "columnTitle":"Severity"}, - {"columnId":"probableCauseDesc", "columnTitle":"Alarm Code"}, - {"columnId":"additionalText", "columnTitle":"Appendix Text"}, - {"columnId":"neip", "columnTitle":"NE IP"}, - {"columnId":"componentname", "columnTitle":"Location"}, - {"columnId":"alarmType", "columnTitle":"Alarm Type"}, - {"columnId":"specificproblem", "columnTitle":"Specific Problem"}, - {"columnId":"ackState", "columnTitle":"Acknowledged State"}, - {"columnId":"ackTime", "columnTitle":"Acknowledge Time"}, - {"columnId":"ackUserId", "columnTitle":"Acknowledge User"}, - {"columnId":"ackSystemId", "columnTitle":"Acknowledge System"}, - {"columnId":"alarmChangedTime", "columnTitle":"Changed Time"}, - {"columnId":"position1", "columnTitle":"Resource ID"} - ], - "columns":[ - {"columnId":"alarmId", "columnTitle":"Alarm Id"}, - {"columnId":"resDisplayName", "columnTitle":"NE"}, - {"columnId":"moc", "columnTitle":"NE Type"}, - {"columnId":"alarmRaisedTime", "columnTitle":"Raised Time"}, - {"columnId":"perceivedSeverity", "columnTitle":"Severity"}, - {"columnId":"probableCauseDesc", "columnTitle":"Alarm Code"}, - {"columnId":"additionalText", "columnTitle":"Appendix Text"}, - {"columnId":"neip", "columnTitle":"NE IP"}, - {"columnId":"componentname", "columnTitle":"Location"}, - {"columnId":"alarmType", "columnTitle":"Alarm Type"}, - {"columnId":"specificproblem", "columnTitle":"Specific Problem"}, - {"columnId":"ackState", "columnTitle":"Acknowledged State"}, - {"columnId":"ackTime", "columnTitle":"Acknowledge Time"}, - {"columnId":"ackUserId", "columnTitle":"Acknowledge User"}, - {"columnId":"ackSystemId", "columnTitle":"Acknowledge System"}, - {"columnId":"alarmChangedTime", "columnTitle":"Changed Time"}, - {"columnId":"position1", "columnTitle":"Resource ID"} - ], - "xsHiddenColumns":[ - {"columnId":"additionalText", "columnTitle":"Appendix Text"}, - {"columnId":"neip", "columnTitle":"NE IP"}, - {"columnId":"componentname", "columnTitle":"Location"}, - {"columnId":"position1", "columnTitle":"Resource ID"} - ], - "smHiddenColumns":[ - {"columnId":"position1", "columnTitle":"Resource ID"} - ], - "columnsTooLong":["additionalText", "moc", "componentname", "specificproblem", "position1"], - "sTotalRecordsSource":"response.extData", - - "rowCheckable": "true", - "openRowFlag" : "true", - "rowOverFlag" : "true", - - "tableHeight":"520px", - "tableWidth":"100%", - - "requestURL": "/web/rest/web/fm/curalarms", - "requestParameters":[ - {"paraId":"pageSize", "paraValue":"20"}, - {"paraId":"pageNo", "paraValue":"1"}, - {"paraId":"_operationType", "paraValue":"fetch"}, - {"paraId":"_startRow", "paraValue":"0"}, - {"paraId":"_endRow", "paraValue":"75"}, - {"paraId":"_textMatchStyle", "paraValue":"exact"}, - {"paraId":"_componentId", "paraValue":"isc_com_zte_ums_aos_fm_view_eventview_table_AlarmTable_0"}, - {"paraId":"_dataSource", "paraValue":"isc_PageRestDataSource_0"}, - {"paraId":"isc_metaDataPrefix", "paraValue":"_"}, - {"paraId":"isc_dataFormat", "paraValue":"json"} - ], - "sTotalRecordsSource":"response.extData" -} \ No newline at end of file diff --git a/openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/app-universal-i18n-datatable-zh-CN.json b/openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/app-universal-i18n-datatable-zh-CN.json deleted file mode 100644 index 155ed357..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/app-universal-i18n-datatable-zh-CN.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "language":{ - "sProcessing": "  å¤„理中...", - "sLengthMenu": "|每页 _MENU_ 条结果", - "sZeroRecords": "没有匹配结果", - "sInfo": "|总共找到 _TOTAL_ 条结果", - "sInfoEmpty": "共 0 项", - "sGroupActions": "_TOTAL_ 条结果被选择: ", - "sAjaxRequestGeneralError": "不能完成请求,请检查您的网络连接情况。", - "sEmptyTable": "表中数据为空", - "oPaginate": { - "sPrevious": "前页", - "sNext": "下页", - "sPage": "第", - "sPageOf": "页,总页数:" - } - }, - "columnsAll":[ - {"columnId":"alarmId", "columnTitle":"告警编号"}, - {"columnId":"resDisplayName", "columnTitle":"网元"}, - {"columnId":"moc", "columnTitle":"网元类型"}, - {"columnId":"alarmRaisedTime", "columnTitle":"发生时间"}, - {"columnId":"perceivedSeverity", "columnTitle":"级别"}, - {"columnId":"probableCauseDesc", "columnTitle":"告警码"}, - {"columnId":"additionalText", "columnTitle":"附加文本"}, - {"columnId":"neip", "columnTitle":"网元IP"}, - {"columnId":"componentname", "columnTitle":"网元内定位"}, - {"columnId":"alarmType", "columnTitle":"告警类型"}, - {"columnId":"specificproblem", "columnTitle":"告警原因"}, - {"columnId":"ackState", "columnTitle":"确认状态"}, - {"columnId":"ackTime", "columnTitle":"确认时间"}, - {"columnId":"ackUserId", "columnTitle":"确认用户"}, - {"columnId":"ackSystemId", "columnTitle":"确认系统"}, - {"columnId":"alarmChangedTime", "columnTitle":"修改时间"}, - {"columnId":"position1", "columnTitle":"资源ID"} - ], - "columns":[ - {"columnId":"alarmId", "columnTitle":"告警编号"}, - {"columnId":"resDisplayName", "columnTitle":"网元"}, - {"columnId":"moc", "columnTitle":"网元类型"}, - {"columnId":"alarmRaisedTime", "columnTitle":"发生时间"}, - {"columnId":"perceivedSeverity", "columnTitle":"级别"}, - {"columnId":"probableCauseDesc", "columnTitle":"告警码"}, - {"columnId":"additionalText", "columnTitle":"附加文本"}, - {"columnId":"neip", "columnTitle":"网元IP"}, - {"columnId":"componentname", "columnTitle":"网元内定位"}, - {"columnId":"alarmType", "columnTitle":"告警类型"}, - {"columnId":"specificproblem", "columnTitle":"告警原因"}, - {"columnId":"ackState", "columnTitle":"确认状态"}, - {"columnId":"ackTime", "columnTitle":"确认时间"}, - {"columnId":"ackUserId", "columnTitle":"确认用户"}, - {"columnId":"ackSystemId", "columnTitle":"确认系统"}, - {"columnId":"alarmChangedTime", "columnTitle":"修改时间"}, - {"columnId":"position1", "columnTitle":"资源ID"} - ], - "xsHiddenColumns":[ - {"columnId":"additionalText", "columnTitle":"附加文本"}, - {"columnId":"neip", "columnTitle":"网元IP"}, - {"columnId":"componentname", "columnTitle":"网元内定位"}, - {"columnId":"position1", "columnTitle":"资源ID"} - ], - "smHiddenColumns":[ - {"columnId":"position1", "columnTitle":"资源ID"} - ], - "columnsTooLong":["additionalText", "moc", "componentname", "specificproblem", "position1"], - - "rowCheckable": "true", - "openRowFlag" : "true", - "rowOverFlag" : "true", - - "tableHeight":"520px", - "tableWidth":"100%", - - "requestURL": "/web/rest/web/fm/curalarms", - "requestAllData": {"rule":{"ruleId":-1,"name":"当前告警","creator":"admin","createTime":1397439767310,"modifier":"","modifyTime":0,"description":"","state":true,"ruleType":1,"ruleSort":1,"owner":"","attrs":"","ruleData":""}}, - "requestParameters":[ - {"paraId":"pageSize", "paraValue":"20"}, - {"paraId":"pageNo", "paraValue":"1"}, - {"paraId":"_operationType", "paraValue":"fetch"}, - {"paraId":"_startRow", "paraValue":"0"}, - {"paraId":"_endRow", "paraValue":"75"}, - {"paraId":"_textMatchStyle", "paraValue":"exact"}, - {"paraId":"_componentId", "paraValue":"isc_com_zte_ums_aos_fm_view_eventview_table_AlarmTable_0"}, - {"paraId":"_dataSource", "paraValue":"isc_PageRestDataSource_0"}, - {"paraId":"isc_metaDataPrefix", "paraValue":"_"}, - {"paraId":"isc_dataFormat", "paraValue":"json"} - ], - "sTotalRecordsSource":"response.extData" -} - diff --git a/openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/dataTable.html b/openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/dataTable.html deleted file mode 100644 index d2491d3e..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/dataTable.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - - - - - - -
    -
    -
    -
    -
    - - - - - - -
    - - - - - -
    -
    -
    - -
    -
    - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/dataTables.bootstrap.css b/openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/dataTables.bootstrap.css deleted file mode 100644 index a5a05475..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/dataTables.bootstrap.css +++ /dev/null @@ -1,331 +0,0 @@ -div.dataTables_length label { - font-weight: normal; - text-align: left; - white-space: nowrap; -} - -div.dataTables_length select { - height: 28px; - display: inline-block; -} - -div.dataTables_filter { - text-align: right; -} - -div.dataTables_filter label { - font-weight: normal; - white-space: nowrap; - text-align: left; -} - -div.dataTables_filter input { - margin-left: 0.5em; - display: inline-block; -} - -div.dataTables_info { - padding-top: 8px; - white-space: nowrap; -} - -div.dataTables_paginate { - margin: 0; - white-space: nowrap; - text-align: right; -} - -div.dataTables_paginate ul.pagination { - margin: 2px 0; - white-space: nowrap; -} - -@media screen and (max-width: 767px) { - div.dataTables_length, - div.dataTables_filter, - div.dataTables_info, - div.dataTables_paginate { - text-align: center; - } -} - - -table.dataTable td, -table.dataTable th { - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; -} - - -table.dataTable { - clear: both; - margin-top: 6px !important; - margin-bottom: 6px !important; - max-width: none !important; -} - -table.dataTable thead .sorting, -table.dataTable thead .sorting_asc, -table.dataTable thead .sorting_desc, -table.dataTable thead .sorting_asc_disabled, -table.dataTable thead .sorting_desc_disabled { - cursor: pointer; -} - -table.dataTable thead .sorting { background: url('../images/sort_both.png') no-repeat center right; } -table.dataTable thead .sorting_asc { background: url('../images/sort_asc.png') no-repeat center right; } -table.dataTable thead .sorting_desc { background: url('../images/sort_desc.png') no-repeat center right; } - -table.dataTable thead .sorting_asc_disabled { background: url('../images/sort_asc_disabled.png') no-repeat center right; } -table.dataTable thead .sorting_desc_disabled { background: url('../images/sort_desc_disabled.png') no-repeat center right; } - -table.dataTable thead > tr > th { - padding-left: 18px; - padding-right: 18px; -} - -table.dataTable th:active { - outline: none; -} - -/* Scrolling */ -div.dataTables_scrollHead table { - margin-bottom: 0 !important; - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; -} - -div.dataTables_scrollHead table thead tr:last-child th:first-child, -div.dataTables_scrollHead table thead tr:last-child td:first-child { - border-bottom-left-radius: 0 !important; - border-bottom-right-radius: 0 !important; -} - -div.dataTables_scrollBody table { - border-top: none; - margin-top: 0 !important; - margin-bottom: 0 !important; -} - -div.dataTables_scrollBody tbody tr:first-child th, -div.dataTables_scrollBody tbody tr:first-child td { - border-top: none; -} - -div.dataTables_scrollFoot table { - margin-top: 0 !important; - border-top: none; -} - -/* Frustratingly the border-collapse:collapse used by Bootstrap makes the column - width calculations when using scrolling impossible to align columns. We have - to use separate - */ -table.table-bordered.dataTable { - border-collapse: separate !important; -} -table.table-bordered thead th, -table.table-bordered thead td { - border-left-width: 0; - border-top-width: 0; -} -table.table-bordered tbody th, -table.table-bordered tbody td { - border-left-width: 0; - border-bottom-width: 0; -} -table.table-bordered th:last-child, -table.table-bordered td:last-child { - border-right-width: 0; -} -div.dataTables_scrollHead table.table-bordered { - border-bottom-width: 0; -} - - - - -/* - * TableTools styles - */ -.table.dataTable tbody tr.active td, -.table.dataTable tbody tr.active th { - background-color: #08C; - color: white; -} - -.table.dataTable tbody tr.active:hover td, -.table.dataTable tbody tr.active:hover th { - background-color: #0075b0 !important; -} - -.table.dataTable tbody tr.active th > a, -.table.dataTable tbody tr.active td > a { - color: white; -} - -.table-striped.dataTable tbody tr.active:nth-child(odd) td, -.table-striped.dataTable tbody tr.active:nth-child(odd) th { - background-color: #017ebc; -} - -table.DTTT_selectable tbody tr { - cursor: pointer; -} - -div.DTTT .btn:hover { - text-decoration: none !important; -} - -ul.DTTT_dropdown.dropdown-menu { - z-index: 2003; -} - -ul.DTTT_dropdown.dropdown-menu a { - color: #333 !important; /* needed only when demo_page.css is included */ -} - -ul.DTTT_dropdown.dropdown-menu li { - position: relative; -} - -ul.DTTT_dropdown.dropdown-menu li:hover a { - background-color: #0088cc; - color: white !important; -} - -div.DTTT_collection_background { - z-index: 2002; -} - -/* TableTools information display */ -div.DTTT_print_info { - position: fixed; - top: 50%; - left: 50%; - width: 400px; - height: 150px; - margin-left: -200px; - margin-top: -75px; - text-align: center; - color: #333; - padding: 10px 30px; - opacity: 0.95; - - background-color: white; - border: 1px solid rgba(0, 0, 0, 0.2); - border-radius: 6px; - - -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.5); - box-shadow: 0 3px 7px rgba(0, 0, 0, 0.5); -} - -div.DTTT_print_info h6 { - font-weight: normal; - font-size: 28px; - line-height: 28px; - margin: 1em; -} - -div.DTTT_print_info p { - font-size: 14px; - line-height: 20px; -} - -div.dataTables_processing { - position: absolute; - top: 50%; - left: 50%; - width: 100%; - height: 60px; - margin-left: -50%; - margin-top: -25px; - padding-top: 20px; - padding-bottom: 20px; - text-align: center; - font-size: 1.2em; - background-color: white; - background: -webkit-gradient(linear, left top, right top, color-stop(0%, rgba(255,255,255,0)), color-stop(25%, rgba(255,255,255,0.9)), color-stop(75%, rgba(255,255,255,0.9)), color-stop(100%, rgba(255,255,255,0))); - background: -webkit-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%); - background: -moz-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%); - background: -ms-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%); - background: -o-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%); - background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%); -} - - - -/* - * FixedColumns styles - */ -div.DTFC_LeftHeadWrapper table, -div.DTFC_LeftFootWrapper table, -div.DTFC_RightHeadWrapper table, -div.DTFC_RightFootWrapper table, -table.DTFC_Cloned tr.even { - background-color: white; - margin-bottom: 0; -} - -div.DTFC_RightHeadWrapper table , -div.DTFC_LeftHeadWrapper table { - border-bottom: none !important; - margin-bottom: 0 !important; - border-top-right-radius: 0 !important; - border-bottom-left-radius: 0 !important; - border-bottom-right-radius: 0 !important; -} - -div.DTFC_RightHeadWrapper table thead tr:last-child th:first-child, -div.DTFC_RightHeadWrapper table thead tr:last-child td:first-child, -div.DTFC_LeftHeadWrapper table thead tr:last-child th:first-child, -div.DTFC_LeftHeadWrapper table thead tr:last-child td:first-child { - border-bottom-left-radius: 0 !important; - border-bottom-right-radius: 0 !important; -} - -div.DTFC_RightBodyWrapper table, -div.DTFC_LeftBodyWrapper table { - border-top: none; - margin: 0 !important; -} - -div.DTFC_RightBodyWrapper tbody tr:first-child th, -div.DTFC_RightBodyWrapper tbody tr:first-child td, -div.DTFC_LeftBodyWrapper tbody tr:first-child th, -div.DTFC_LeftBodyWrapper tbody tr:first-child td { - border-top: none; -} - -div.DTFC_RightFootWrapper table, -div.DTFC_LeftFootWrapper table { - border-top: none; - margin-top: 0 !important; -} - - -/* - * FixedHeader styles - */ -div.FixedHeader_Cloned table { - margin: 0 !important -} - - - - -div.dataTables_length, div.dataTables_info { - display: inline; -} - -div.dataTables_paginate { - display: inline; - float: right !important; -} - -input.pagination-panel-input { - width: 50px; -} - - diff --git a/openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/jquery.dataTables-1.9.4.js b/openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/jquery.dataTables-1.9.4.js deleted file mode 100644 index f5b29c84..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/jquery.dataTables-1.9.4.js +++ /dev/null @@ -1,12101 +0,0 @@ -/** - * @summary DataTables - * @description Paginate, search and sort HTML tables - * @version 1.9.4 - * @file jquery.dataTables.js - * @author Allan Jardine (www.sprymedia.co.uk) - * @contact www.sprymedia.co.uk/contact - * - * @copyright Copyright 2008-2012 Allan Jardine, all rights reserved. - * - * This source file is free software, under either the GPL v2 license or a - * BSD style license, available at: - * http://datatables.net/license_gpl2 - * http://datatables.net/license_bsd - * - * This source file is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details. - * - * For details please refer to: http://www.datatables.net - */ - -/*jslint evil: true, undef: true, browser: true */ -/*globals $, jQuery,define,_fnExternApiFunc,_fnInitialise,_fnInitComplete,_fnLanguageCompat,_fnAddColumn,_fnColumnOptions,_fnAddData,_fnCreateTr,_fnGatherData,_fnBuildHead,_fnDrawHead,_fnDraw,_fnReDraw,_fnAjaxUpdate,_fnAjaxParameters,_fnAjaxUpdateDraw,_fnServerParams,_fnAddOptionsHtml,_fnFeatureHtmlTable,_fnScrollDraw,_fnAdjustColumnSizing,_fnFeatureHtmlFilter,_fnFilterComplete,_fnFilterCustom,_fnFilterColumn,_fnFilter,_fnBuildSearchArray,_fnBuildSearchRow,_fnFilterCreateSearch,_fnDataToSearch,_fnSort,_fnSortAttachListener,_fnSortingClasses,_fnFeatureHtmlPaginate,_fnPageChange,_fnFeatureHtmlInfo,_fnUpdateInfo,_fnFeatureHtmlLength,_fnFeatureHtmlProcessing,_fnProcessingDisplay,_fnVisibleToColumnIndex,_fnColumnIndexToVisible,_fnNodeToDataIndex,_fnVisbleColumns,_fnCalculateEnd,_fnConvertToWidth,_fnCalculateColumnWidths,_fnScrollingWidthAdjust,_fnGetWidestNode,_fnGetMaxLenString,_fnStringToCss,_fnDetectType,_fnSettingsFromNode,_fnGetDataMaster,_fnGetTrNodes,_fnGetTdNodes,_fnEscapeRegex,_fnDeleteIndex,_fnReOrderIndex,_fnColumnOrdering,_fnLog,_fnClearTable,_fnSaveState,_fnLoadState,_fnCreateCookie,_fnReadCookie,_fnDetectHeader,_fnGetUniqueThs,_fnScrollBarWidth,_fnApplyToChildren,_fnMap,_fnGetRowData,_fnGetCellData,_fnSetCellData,_fnGetObjectDataFn,_fnSetObjectDataFn,_fnApplyColumnDefs,_fnBindAction,_fnCallbackReg,_fnCallbackFire,_fnJsonString,_fnRender,_fnNodeToColumnIndex,_fnInfoMacros,_fnBrowserDetect,_fnGetColumns*/ - -(/** @lends */function( window, document, undefined ) { - -(function( factory ) { - "use strict"; - - // Define as an AMD module if possible - if ( typeof define === 'function' && define.amd ) - { - define( ['jquery'], factory ); - } - /* Define using browser globals otherwise - * Prevent multiple instantiations if the script is loaded twice - */ - else if ( jQuery && !jQuery.fn.dataTable ) - { - factory( jQuery ); - } -} -(/** @lends */function( $ ) { - "use strict"; - /** - * DataTables is a plug-in for the jQuery Javascript library. It is a - * highly flexible tool, based upon the foundations of progressive - * enhancement, which will add advanced interaction controls to any - * HTML table. For a full list of features please refer to - * DataTables.net. - * - * Note that the DataTable object is not a global variable but is - * aliased to jQuery.fn.DataTable and jQuery.fn.dataTable through which - * it may be accessed. - * - * @class - * @param {object} [oInit={}] Configuration object for DataTables. Options - * are defined by {@link DataTable.defaults} - * @requires jQuery 1.3+ - * - * @example - * // Basic initialisation - * $(document).ready( function { - * $('#example').dataTable(); - * } ); - * - * @example - * // Initialisation with configuration options - in this case, disable - * // pagination and sorting. - * $(document).ready( function { - * $('#example').dataTable( { - * "bPaginate": false, - * "bSort": false - * } ); - * } ); - */ - var DataTable = function( oInit ) - { - - - /** - * Add a column to the list used for the table with default values - * @param {object} oSettings dataTables settings object - * @param {node} nTh The th element for this column - * @memberof DataTable#oApi - */ - function _fnAddColumn( oSettings, nTh ) - { - var oDefaults = DataTable.defaults.columns; - var iCol = oSettings.aoColumns.length; - var oCol = $.extend( {}, DataTable.models.oColumn, oDefaults, { - "sSortingClass": oSettings.oClasses.sSortable, - "sSortingClassJUI": oSettings.oClasses.sSortJUI, - "nTh": nTh ? nTh : document.createElement('th'), - "sTitle": oDefaults.sTitle ? oDefaults.sTitle : nTh ? nTh.innerHTML : '', - "aDataSort": oDefaults.aDataSort ? oDefaults.aDataSort : [iCol], - "mData": oDefaults.mData ? oDefaults.oDefaults : iCol - } ); - oSettings.aoColumns.push( oCol ); - - /* Add a column specific filter */ - if ( oSettings.aoPreSearchCols[ iCol ] === undefined || oSettings.aoPreSearchCols[ iCol ] === null ) - { - oSettings.aoPreSearchCols[ iCol ] = $.extend( {}, DataTable.models.oSearch ); - } - else - { - var oPre = oSettings.aoPreSearchCols[ iCol ]; - - /* Don't require that the user must specify bRegex, bSmart or bCaseInsensitive */ - if ( oPre.bRegex === undefined ) - { - oPre.bRegex = true; - } - - if ( oPre.bSmart === undefined ) - { - oPre.bSmart = true; - } - - if ( oPre.bCaseInsensitive === undefined ) - { - oPre.bCaseInsensitive = true; - } - } - - /* Use the column options function to initialise classes etc */ - _fnColumnOptions( oSettings, iCol, null ); - } - - - /** - * Apply options for a column - * @param {object} oSettings dataTables settings object - * @param {int} iCol column index to consider - * @param {object} oOptions object with sType, bVisible and bSearchable etc - * @memberof DataTable#oApi - */ - function _fnColumnOptions( oSettings, iCol, oOptions ) - { - var oCol = oSettings.aoColumns[ iCol ]; - - /* User specified column options */ - if ( oOptions !== undefined && oOptions !== null ) - { - /* Backwards compatibility for mDataProp */ - if ( oOptions.mDataProp && !oOptions.mData ) - { - oOptions.mData = oOptions.mDataProp; - } - - if ( oOptions.sType !== undefined ) - { - oCol.sType = oOptions.sType; - oCol._bAutoType = false; - } - - $.extend( oCol, oOptions ); - _fnMap( oCol, oOptions, "sWidth", "sWidthOrig" ); - - /* iDataSort to be applied (backwards compatibility), but aDataSort will take - * priority if defined - */ - if ( oOptions.iDataSort !== undefined ) - { - oCol.aDataSort = [ oOptions.iDataSort ]; - } - _fnMap( oCol, oOptions, "aDataSort" ); - } - - /* Cache the data get and set functions for speed */ - var mRender = oCol.mRender ? _fnGetObjectDataFn( oCol.mRender ) : null; - var mData = _fnGetObjectDataFn( oCol.mData ); - - oCol.fnGetData = function (oData, sSpecific) { - var innerData = mData( oData, sSpecific ); - - if ( oCol.mRender && (sSpecific && sSpecific !== '') ) - { - return mRender( innerData, sSpecific, oData ); - } - return innerData; - }; - oCol.fnSetData = _fnSetObjectDataFn( oCol.mData ); - - /* Feature sorting overrides column specific when off */ - if ( !oSettings.oFeatures.bSort ) - { - oCol.bSortable = false; - } - - /* Check that the class assignment is correct for sorting */ - if ( !oCol.bSortable || - ($.inArray('asc', oCol.asSorting) == -1 && $.inArray('desc', oCol.asSorting) == -1) ) - { - oCol.sSortingClass = oSettings.oClasses.sSortableNone; - oCol.sSortingClassJUI = ""; - } - else if ( $.inArray('asc', oCol.asSorting) == -1 && $.inArray('desc', oCol.asSorting) == -1 ) - { - oCol.sSortingClass = oSettings.oClasses.sSortable; - oCol.sSortingClassJUI = oSettings.oClasses.sSortJUI; - } - else if ( $.inArray('asc', oCol.asSorting) != -1 && $.inArray('desc', oCol.asSorting) == -1 ) - { - oCol.sSortingClass = oSettings.oClasses.sSortableAsc; - oCol.sSortingClassJUI = oSettings.oClasses.sSortJUIAscAllowed; - } - else if ( $.inArray('asc', oCol.asSorting) == -1 && $.inArray('desc', oCol.asSorting) != -1 ) - { - oCol.sSortingClass = oSettings.oClasses.sSortableDesc; - oCol.sSortingClassJUI = oSettings.oClasses.sSortJUIDescAllowed; - } - } - - - /** - * Adjust the table column widths for new data. Note: you would probably want to - * do a redraw after calling this function! - * @param {object} oSettings dataTables settings object - * @memberof DataTable#oApi - */ - function _fnAdjustColumnSizing ( oSettings ) - { - /* Not interested in doing column width calculation if auto-width is disabled */ - if ( oSettings.oFeatures.bAutoWidth === false ) - { - return false; - } - - _fnCalculateColumnWidths( oSettings ); - for ( var i=0 , iLen=oSettings.aoColumns.length ; i
    for filtering data. - *
      - *
    • - * Function input parameters: - *
        - *
      • {*} Data from the column cell to be prepared for filtering
      • - *
      - *
    • - *
    • - * Function return: - *
        - *
      • {string|null} Formatted string that will be used for the filtering.
      • - *
      - * - *
    - * - * Note that as of v1.9, it is typically preferable to use mData to prepare data for - * the different uses that DataTables can put the data to. Specifically mData when - * used as a function will give you a 'type' (sorting, filtering etc) that you can use to - * prepare the data as required for the different types. As such, this method is deprecated. - * @type object - * @default {} - * @deprecated - * - * @example - * $.fn.dataTableExt.ofnSearch['title-numeric'] = function ( sData ) { - * return sData.replace(/\n/g," ").replace( /<.*?>/g, "" ); - * } - */ - "ofnSearch": {}, - - - /** - * Container for all private functions in DataTables so they can be exposed externally - * @type object - * @default {} - */ - "oApi": {}, - - - /** - * Storage for the various classes that DataTables uses - * @type object - * @default {} - */ - "oStdClasses": {}, - - - /** - * Storage for the various classes that DataTables uses - jQuery UI suitable - * @type object - * @default {} - */ - "oJUIClasses": {}, - - - /** - * Pagination plug-in methods - The style and controls of the pagination can significantly - * impact on how the end user interacts with the data in your table, and DataTables allows - * the addition of pagination controls by extending this object, which can then be enabled - * through the sPaginationType initialisation parameter. Each pagination type that - * is added is an object (the property name of which is what sPaginationType refers - * to) that has two properties, both methods that are used by DataTables to update the - * control's state. - *
      - *
    • - * fnInit - Initialisation of the paging controls. Called only during initialisation - * of the table. It is expected that this function will add the required DOM elements - * to the page for the paging controls to work. The element pointer - * 'oSettings.aanFeatures.p' array is provided by DataTables to contain the paging - * controls (note that this is a 2D array to allow for multiple instances of each - * DataTables DOM element). It is suggested that you add the controls to this element - * as children - *
        - *
      • - * Function input parameters: - *
          - *
        • {object} DataTables settings object: see {@link DataTable.models.oSettings}.
        • - *
        • {node} Container into which the pagination controls must be inserted
        • - *
        • {function} Draw callback function - whenever the controls cause a page - * change, this method must be called to redraw the table.
        • - *
        - *
      • - *
      • - * Function return: - *
          - *
        • No return required
        • - *
        - * - *
      - * - *
    • - * fnInit - This function is called whenever the paging status of the table changes and is - * typically used to update classes and/or text of the paging controls to reflex the new - * status. - *
        - *
      • - * Function input parameters: - *
          - *
        • {object} DataTables settings object: see {@link DataTable.models.oSettings}.
        • - *
        • {function} Draw callback function - in case you need to redraw the table again - * or attach new event listeners
        • - *
        - *
      • - *
      • - * Function return: - *
          - *
        • No return required
        • - *
        - * - *
      - * - *
    - * @type object - * @default {} - * - * @example - * $.fn.dataTableExt.oPagination.four_button = { - * "fnInit": function ( oSettings, nPaging, fnCallbackDraw ) { - * nFirst = document.createElement( 'span' ); - * nPrevious = document.createElement( 'span' ); - * nNext = document.createElement( 'span' ); - * nLast = document.createElement( 'span' ); - * - * nFirst.appendChild( document.createTextNode( oSettings.oLanguage.oPaginate.sFirst ) ); - * nPrevious.appendChild( document.createTextNode( oSettings.oLanguage.oPaginate.sPrevious ) ); - * nNext.appendChild( document.createTextNode( oSettings.oLanguage.oPaginate.sNext ) ); - * nLast.appendChild( document.createTextNode( oSettings.oLanguage.oPaginate.sLast ) ); - * - * nFirst.className = "paginate_button first"; - * nPrevious.className = "paginate_button previous"; - * nNext.className="paginate_button next"; - * nLast.className = "paginate_button last"; - * - * nPaging.appendChild( nFirst ); - * nPaging.appendChild( nPrevious ); - * nPaging.appendChild( nNext ); - * nPaging.appendChild( nLast ); - * - * $(nFirst).click( function () { - * oSettings.oApi._fnPageChange( oSettings, "first" ); - * fnCallbackDraw( oSettings ); - * } ); - * - * $(nPrevious).click( function() { - * oSettings.oApi._fnPageChange( oSettings, "previous" ); - * fnCallbackDraw( oSettings ); - * } ); - * - * $(nNext).click( function() { - * oSettings.oApi._fnPageChange( oSettings, "next" ); - * fnCallbackDraw( oSettings ); - * } ); - * - * $(nLast).click( function() { - * oSettings.oApi._fnPageChange( oSettings, "last" ); - * fnCallbackDraw( oSettings ); - * } ); - * - * $(nFirst).bind( 'selectstart', function () { return false; } ); - * $(nPrevious).bind( 'selectstart', function () { return false; } ); - * $(nNext).bind( 'selectstart', function () { return false; } ); - * $(nLast).bind( 'selectstart', function () { return false; } ); - * }, - * - * "fnUpdate": function ( oSettings, fnCallbackDraw ) { - * if ( !oSettings.aanFeatures.p ) { - * return; - * } - * - * // Loop over each instance of the pager - * var an = oSettings.aanFeatures.p; - * for ( var i=0, iLen=an.length ; i - *
  • - * Function input parameters: - *
      - *
    • {*} Data to compare to the second parameter
    • - *
    • {*} Data to compare to the first parameter
    • - *
    - *
  • - *
  • - * Function return: - *
      - *
    • {int} Sorting match: <0 if first parameter should be sorted lower than - * the second parameter, ===0 if the two parameters are equal and >0 if - * the first parameter should be sorted height than the second parameter.
    • - *
    - * - * - * @type object - * @default {} - * - * @example - * // Case-sensitive string sorting, with no pre-formatting method - * $.extend( $.fn.dataTableExt.oSort, { - * "string-case-asc": function(x,y) { - * return ((x < y) ? -1 : ((x > y) ? 1 : 0)); - * }, - * "string-case-desc": function(x,y) { - * return ((x < y) ? 1 : ((x > y) ? -1 : 0)); - * } - * } ); - * - * @example - * // Case-insensitive string sorting, with pre-formatting - * $.extend( $.fn.dataTableExt.oSort, { - * "string-pre": function(x) { - * return x.toLowerCase(); - * }, - * "string-asc": function(x,y) { - * return ((x < y) ? -1 : ((x > y) ? 1 : 0)); - * }, - * "string-desc": function(x,y) { - * return ((x < y) ? 1 : ((x > y) ? -1 : 0)); - * } - * } ); - */ - "oSort": {}, - - - /** - * Version string for plug-ins to check compatibility. Allowed format is - * a.b.c.d.e where: a:int, b:int, c:int, d:string(dev|beta), e:int. d and - * e are optional - * @type string - * @default Version number - */ - "sVersion": DataTable.version, - - - /** - * How should DataTables report an error. Can take the value 'alert' or 'throw' - * @type string - * @default alert - */ - "sErrMode": "alert", - - - /** - * Store information for DataTables to access globally about other instances - * @namespace - * @private - */ - "_oExternConfig": { - /* int:iNextUnique - next unique number for an instance */ - "iNextUnique": 0 - } - }; - - - - - /** - * Template object for the way in which DataTables holds information about - * search information for the global filter and individual column filters. - * @namespace - */ - DataTable.models.oSearch = { - /** - * Flag to indicate if the filtering should be case insensitive or not - * @type boolean - * @default true - */ - "bCaseInsensitive": true, - - /** - * Applied search term - * @type string - * @default Empty string - */ - "sSearch": "", - - /** - * Flag to indicate if the search term should be interpreted as a - * regular expression (true) or not (false) and therefore and special - * regex characters escaped. - * @type boolean - * @default false - */ - "bRegex": false, - - /** - * Flag to indicate if DataTables is to use its smart filtering or not. - * @type boolean - * @default true - */ - "bSmart": true - }; - - - - - /** - * Template object for the way in which DataTables holds information about - * each individual row. This is the object format used for the settings - * aoData array. - * @namespace - */ - DataTable.models.oRow = { - /** - * TR element for the row - * @type node - * @default null - */ - "nTr": null, - - /** - * Data object from the original data source for the row. This is either - * an array if using the traditional form of DataTables, or an object if - * using mData options. The exact type will depend on the passed in - * data from the data source, or will be an array if using DOM a data - * source. - * @type array|object - * @default [] - */ - "_aData": [], - - /** - * Sorting data cache - this array is ostensibly the same length as the - * number of columns (although each index is generated only as it is - * needed), and holds the data that is used for sorting each column in the - * row. We do this cache generation at the start of the sort in order that - * the formatting of the sort data need be done only once for each cell - * per sort. This array should not be read from or written to by anything - * other than the master sorting methods. - * @type array - * @default [] - * @private - */ - "_aSortData": [], - - /** - * Array of TD elements that are cached for hidden rows, so they can be - * reinserted into the table if a column is made visible again (or to act - * as a store if a column is made hidden). Only hidden columns have a - * reference in the array. For non-hidden columns the value is either - * undefined or null. - * @type array nodes - * @default [] - * @private - */ - "_anHidden": [], - - /** - * Cache of the class name that DataTables has applied to the row, so we - * can quickly look at this variable rather than needing to do a DOM check - * on className for the nTr property. - * @type string - * @default Empty string - * @private - */ - "_sRowStripe": "" - }; - - - - /** - * Template object for the column information object in DataTables. This object - * is held in the settings aoColumns array and contains all the information that - * DataTables needs about each individual column. - * - * Note that this object is related to {@link DataTable.defaults.columns} - * but this one is the internal data store for DataTables's cache of columns. - * It should NOT be manipulated outside of DataTables. Any configuration should - * be done through the initialisation options. - * @namespace - */ - DataTable.models.oColumn = { - /** - * A list of the columns that sorting should occur on when this column - * is sorted. That this property is an array allows multi-column sorting - * to be defined for a column (for example first name / last name columns - * would benefit from this). The values are integers pointing to the - * columns to be sorted on (typically it will be a single integer pointing - * at itself, but that doesn't need to be the case). - * @type array - */ - "aDataSort": null, - - /** - * Define the sorting directions that are applied to the column, in sequence - * as the column is repeatedly sorted upon - i.e. the first value is used - * as the sorting direction when the column if first sorted (clicked on). - * Sort it again (click again) and it will move on to the next index. - * Repeat until loop. - * @type array - */ - "asSorting": null, - - /** - * Flag to indicate if the column is searchable, and thus should be included - * in the filtering or not. - * @type boolean - */ - "bSearchable": null, - - /** - * Flag to indicate if the column is sortable or not. - * @type boolean - */ - "bSortable": null, - - /** - * Deprecated When using fnRender, you have two options for what - * to do with the data, and this property serves as the switch. Firstly, you - * can have the sorting and filtering use the rendered value (true - default), - * or you can have the sorting and filtering us the original value (false). - * - * Please note that this option has now been deprecated and will be removed - * in the next version of DataTables. Please use mRender / mData rather than - * fnRender. - * @type boolean - * @deprecated - */ - "bUseRendered": null, - - /** - * Flag to indicate if the column is currently visible in the table or not - * @type boolean - */ - "bVisible": null, - - /** - * Flag to indicate to the type detection method if the automatic type - * detection should be used, or if a column type (sType) has been specified - * @type boolean - * @default true - * @private - */ - "_bAutoType": true, - - /** - * Developer definable function that is called whenever a cell is created (Ajax source, - * etc) or processed for input (DOM source). This can be used as a compliment to mRender - * allowing you to modify the DOM element (add background colour for example) when the - * element is available. - * @type function - * @param {element} nTd The TD node that has been created - * @param {*} sData The Data for the cell - * @param {array|object} oData The data for the whole row - * @param {int} iRow The row index for the aoData data store - * @default null - */ - "fnCreatedCell": null, - - /** - * Function to get data from a cell in a column. You should never - * access data directly through _aData internally in DataTables - always use - * the method attached to this property. It allows mData to function as - * required. This function is automatically assigned by the column - * initialisation method - * @type function - * @param {array|object} oData The data array/object for the array - * (i.e. aoData[]._aData) - * @param {string} sSpecific The specific data type you want to get - - * 'display', 'type' 'filter' 'sort' - * @returns {*} The data for the cell from the given row's data - * @default null - */ - "fnGetData": null, - - /** - * Deprecated Custom display function that will be called for the - * display of each cell in this column. - * - * Please note that this option has now been deprecated and will be removed - * in the next version of DataTables. Please use mRender / mData rather than - * fnRender. - * @type function - * @param {object} o Object with the following parameters: - * @param {int} o.iDataRow The row in aoData - * @param {int} o.iDataColumn The column in question - * @param {array} o.aData The data for the row in question - * @param {object} o.oSettings The settings object for this DataTables instance - * @returns {string} The string you which to use in the display - * @default null - * @deprecated - */ - "fnRender": null, - - /** - * Function to set data for a cell in the column. You should never - * set the data directly to _aData internally in DataTables - always use - * this method. It allows mData to function as required. This function - * is automatically assigned by the column initialisation method - * @type function - * @param {array|object} oData The data array/object for the array - * (i.e. aoData[]._aData) - * @param {*} sValue Value to set - * @default null - */ - "fnSetData": null, - - /** - * Property to read the value for the cells in the column from the data - * source array / object. If null, then the default content is used, if a - * function is given then the return from the function is used. - * @type function|int|string|null - * @default null - */ - "mData": null, - - /** - * Partner property to mData which is used (only when defined) to get - * the data - i.e. it is basically the same as mData, but without the - * 'set' option, and also the data fed to it is the result from mData. - * This is the rendering method to match the data method of mData. - * @type function|int|string|null - * @default null - */ - "mRender": null, - - /** - * Unique header TH/TD element for this column - this is what the sorting - * listener is attached to (if sorting is enabled.) - * @type node - * @default null - */ - "nTh": null, - - /** - * Unique footer TH/TD element for this column (if there is one). Not used - * in DataTables as such, but can be used for plug-ins to reference the - * footer for each column. - * @type node - * @default null - */ - "nTf": null, - - /** - * The class to apply to all TD elements in the table's TBODY for the column - * @type string - * @default null - */ - "sClass": null, - - /** - * When DataTables calculates the column widths to assign to each column, - * it finds the longest string in each column and then constructs a - * temporary table and reads the widths from that. The problem with this - * is that "mmm" is much wider then "iiii", but the latter is a longer - * string - thus the calculation can go wrong (doing it properly and putting - * it into an DOM object and measuring that is horribly(!) slow). Thus as - * a "work around" we provide this option. It will append its value to the - * text that is found to be the longest string for the column - i.e. padding. - * @type string - */ - "sContentPadding": null, - - /** - * Allows a default value to be given for a column's data, and will be used - * whenever a null data source is encountered (this can be because mData - * is set to null, or because the data source itself is null). - * @type string - * @default null - */ - "sDefaultContent": null, - - /** - * Name for the column, allowing reference to the column by name as well as - * by index (needs a lookup to work by name). - * @type string - */ - "sName": null, - - /** - * Custom sorting data type - defines which of the available plug-ins in - * afnSortData the custom sorting will use - if any is defined. - * @type string - * @default std - */ - "sSortDataType": 'std', - - /** - * Class to be applied to the header element when sorting on this column - * @type string - * @default null - */ - "sSortingClass": null, - - /** - * Class to be applied to the header element when sorting on this column - - * when jQuery UI theming is used. - * @type string - * @default null - */ - "sSortingClassJUI": null, - - /** - * Title of the column - what is seen in the TH element (nTh). - * @type string - */ - "sTitle": null, - - /** - * Column sorting and filtering type - * @type string - * @default null - */ - "sType": null, - - /** - * Width of the column - * @type string - * @default null - */ - "sWidth": null, - - /** - * Width of the column when it was first "encountered" - * @type string - * @default null - */ - "sWidthOrig": null - }; - - - - /** - * Initialisation options that can be given to DataTables at initialisation - * time. - * @namespace - */ - DataTable.defaults = { - /** - * An array of data to use for the table, passed in at initialisation which - * will be used in preference to any data which is already in the DOM. This is - * particularly useful for constructing tables purely in Javascript, for - * example with a custom Ajax call. - * @type array - * @default null - * @dtopt Option - * - * @example - * // Using a 2D array data source - * $(document).ready( function () { - * $('#example').dataTable( { - * "aaData": [ - * ['Trident', 'Internet Explorer 4.0', 'Win 95+', 4, 'X'], - * ['Trident', 'Internet Explorer 5.0', 'Win 95+', 5, 'C'], - * ], - * "aoColumns": [ - * { "sTitle": "Engine" }, - * { "sTitle": "Browser" }, - * { "sTitle": "Platform" }, - * { "sTitle": "Version" }, - * { "sTitle": "Grade" } - * ] - * } ); - * } ); - * - * @example - * // Using an array of objects as a data source (mData) - * $(document).ready( function () { - * $('#example').dataTable( { - * "aaData": [ - * { - * "engine": "Trident", - * "browser": "Internet Explorer 4.0", - * "platform": "Win 95+", - * "version": 4, - * "grade": "X" - * }, - * { - * "engine": "Trident", - * "browser": "Internet Explorer 5.0", - * "platform": "Win 95+", - * "version": 5, - * "grade": "C" - * } - * ], - * "aoColumns": [ - * { "sTitle": "Engine", "mData": "engine" }, - * { "sTitle": "Browser", "mData": "browser" }, - * { "sTitle": "Platform", "mData": "platform" }, - * { "sTitle": "Version", "mData": "version" }, - * { "sTitle": "Grade", "mData": "grade" } - * ] - * } ); - * } ); - */ - "aaData": null, - - - /** - * If sorting is enabled, then DataTables will perform a first pass sort on - * initialisation. You can define which column(s) the sort is performed upon, - * and the sorting direction, with this variable. The aaSorting array should - * contain an array for each column to be sorted initially containing the - * column's index and a direction string ('asc' or 'desc'). - * @type array - * @default [[0,'asc']] - * @dtopt Option - * - * @example - * // Sort by 3rd column first, and then 4th column - * $(document).ready( function() { - * $('#example').dataTable( { - * "aaSorting": [[2,'asc'], [3,'desc']] - * } ); - * } ); - * - * // No initial sorting - * $(document).ready( function() { - * $('#example').dataTable( { - * "aaSorting": [] - * } ); - * } ); - */ - "aaSorting": [[0,'asc']], - - - /** - * This parameter is basically identical to the aaSorting parameter, but - * cannot be overridden by user interaction with the table. What this means - * is that you could have a column (visible or hidden) which the sorting will - * always be forced on first - any sorting after that (from the user) will - * then be performed as required. This can be useful for grouping rows - * together. - * @type array - * @default null - * @dtopt Option - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "aaSortingFixed": [[0,'asc']] - * } ); - * } ) - */ - "aaSortingFixed": null, - - - /** - * This parameter allows you to readily specify the entries in the length drop - * down menu that DataTables shows when pagination is enabled. It can be - * either a 1D array of options which will be used for both the displayed - * option and the value, or a 2D array which will use the array in the first - * position as the value, and the array in the second position as the - * displayed options (useful for language strings such as 'All'). - * @type array - * @default [ 10, 25, 50, 100 ] - * @dtopt Option - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "aLengthMenu": [[10, 25, 50, -1], [10, 25, 50, "All"]] - * } ); - * } ); - * - * @example - * // Setting the default display length as well as length menu - * // This is likely to be wanted if you remove the '10' option which - * // is the iDisplayLength default. - * $(document).ready( function() { - * $('#example').dataTable( { - * "iDisplayLength": 25, - * "aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]] - * } ); - * } ); - */ - "aLengthMenu": [ 10, 25, 50, 100 ], - - - /** - * The aoColumns option in the initialisation parameter allows you to define - * details about the way individual columns behave. For a full list of - * column options that can be set, please see - * {@link DataTable.defaults.columns}. Note that if you use aoColumns to - * define your columns, you must have an entry in the array for every single - * column that you have in your table (these can be null if you don't which - * to specify any options). - * @member - */ - "aoColumns": null, - - /** - * Very similar to aoColumns, aoColumnDefs allows you to target a specific - * column, multiple columns, or all columns, using the aTargets property of - * each object in the array. This allows great flexibility when creating - * tables, as the aoColumnDefs arrays can be of any length, targeting the - * columns you specifically want. aoColumnDefs may use any of the column - * options available: {@link DataTable.defaults.columns}, but it _must_ - * have aTargets defined in each object in the array. Values in the aTargets - * array may be: - *
      - *
    • a string - class name will be matched on the TH for the column
    • - *
    • 0 or a positive integer - column index counting from the left
    • - *
    • a negative integer - column index counting from the right
    • - *
    • the string "_all" - all columns (i.e. assign a default)
    • - *
    - * @member - */ - "aoColumnDefs": null, - - - /** - * Basically the same as oSearch, this parameter defines the individual column - * filtering state at initialisation time. The array must be of the same size - * as the number of columns, and each element be an object with the parameters - * "sSearch" and "bEscapeRegex" (the latter is optional). 'null' is also - * accepted and the default will be used. - * @type array - * @default [] - * @dtopt Option - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoSearchCols": [ - * null, - * { "sSearch": "My filter" }, - * null, - * { "sSearch": "^[0-9]", "bEscapeRegex": false } - * ] - * } ); - * } ) - */ - "aoSearchCols": [], - - - /** - * An array of CSS classes that should be applied to displayed rows. This - * array may be of any length, and DataTables will apply each class - * sequentially, looping when required. - * @type array - * @default null Will take the values determined by the oClasses.sStripe* - * options - * @dtopt Option - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "asStripeClasses": [ 'strip1', 'strip2', 'strip3' ] - * } ); - * } ) - */ - "asStripeClasses": null, - - - /** - * Enable or disable automatic column width calculation. This can be disabled - * as an optimisation (it takes some time to calculate the widths) if the - * tables widths are passed in using aoColumns. - * @type boolean - * @default true - * @dtopt Features - * - * @example - * $(document).ready( function () { - * $('#example').dataTable( { - * "bAutoWidth": false - * } ); - * } ); - */ - "bAutoWidth": true, - - - /** - * Deferred rendering can provide DataTables with a huge speed boost when you - * are using an Ajax or JS data source for the table. This option, when set to - * true, will cause DataTables to defer the creation of the table elements for - * each row until they are needed for a draw - saving a significant amount of - * time. - * @type boolean - * @default false - * @dtopt Features - * - * @example - * $(document).ready( function() { - * var oTable = $('#example').dataTable( { - * "sAjaxSource": "sources/arrays.txt", - * "bDeferRender": true - * } ); - * } ); - */ - "bDeferRender": false, - - - /** - * Replace a DataTable which matches the given selector and replace it with - * one which has the properties of the new initialisation object passed. If no - * table matches the selector, then the new DataTable will be constructed as - * per normal. - * @type boolean - * @default false - * @dtopt Options - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "sScrollY": "200px", - * "bPaginate": false - * } ); - * - * // Some time later.... - * $('#example').dataTable( { - * "bFilter": false, - * "bDestroy": true - * } ); - * } ); - */ - "bDestroy": false, - - - /** - * Enable or disable filtering of data. Filtering in DataTables is "smart" in - * that it allows the end user to input multiple words (space separated) and - * will match a row containing those words, even if not in the order that was - * specified (this allow matching across multiple columns). Note that if you - * wish to use filtering in DataTables this must remain 'true' - to remove the - * default filtering input box and retain filtering abilities, please use - * {@link DataTable.defaults.sDom}. - * @type boolean - * @default true - * @dtopt Features - * - * @example - * $(document).ready( function () { - * $('#example').dataTable( { - * "bFilter": false - * } ); - * } ); - */ - "bFilter": true, - - - /** - * Enable or disable the table information display. This shows information - * about the data that is currently visible on the page, including information - * about filtered data if that action is being performed. - * @type boolean - * @default true - * @dtopt Features - * - * @example - * $(document).ready( function () { - * $('#example').dataTable( { - * "bInfo": false - * } ); - * } ); - */ - "bInfo": true, - - - /** - * Enable jQuery UI ThemeRoller support (required as ThemeRoller requires some - * slightly different and additional mark-up from what DataTables has - * traditionally used). - * @type boolean - * @default false - * @dtopt Features - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "bJQueryUI": true - * } ); - * } ); - */ - "bJQueryUI": false, - - - /** - * Allows the end user to select the size of a formatted page from a select - * menu (sizes are 10, 25, 50 and 100). Requires pagination (bPaginate). - * @type boolean - * @default true - * @dtopt Features - * - * @example - * $(document).ready( function () { - * $('#example').dataTable( { - * "bLengthChange": false - * } ); - * } ); - */ - "bLengthChange": true, - - - /** - * Enable or disable pagination. - * @type boolean - * @default true - * @dtopt Features - * - * @example - * $(document).ready( function () { - * $('#example').dataTable( { - * "bPaginate": false - * } ); - * } ); - */ - "bPaginate": true, - - - /** - * Enable or disable the display of a 'processing' indicator when the table is - * being processed (e.g. a sort). This is particularly useful for tables with - * large amounts of data where it can take a noticeable amount of time to sort - * the entries. - * @type boolean - * @default false - * @dtopt Features - * - * @example - * $(document).ready( function () { - * $('#example').dataTable( { - * "bProcessing": true - * } ); - * } ); - */ - "bProcessing": false, - - - /** - * Retrieve the DataTables object for the given selector. Note that if the - * table has already been initialised, this parameter will cause DataTables - * to simply return the object that has already been set up - it will not take - * account of any changes you might have made to the initialisation object - * passed to DataTables (setting this parameter to true is an acknowledgement - * that you understand this). bDestroy can be used to reinitialise a table if - * you need. - * @type boolean - * @default false - * @dtopt Options - * - * @example - * $(document).ready( function() { - * initTable(); - * tableActions(); - * } ); - * - * function initTable () - * { - * return $('#example').dataTable( { - * "sScrollY": "200px", - * "bPaginate": false, - * "bRetrieve": true - * } ); - * } - * - * function tableActions () - * { - * var oTable = initTable(); - * // perform API operations with oTable - * } - */ - "bRetrieve": false, - - - /** - * Indicate if DataTables should be allowed to set the padding / margin - * etc for the scrolling header elements or not. Typically you will want - * this. - * @type boolean - * @default true - * @dtopt Options - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "bScrollAutoCss": false, - * "sScrollY": "200px" - * } ); - * } ); - */ - "bScrollAutoCss": true, - - - /** - * When vertical (y) scrolling is enabled, DataTables will force the height of - * the table's viewport to the given height at all times (useful for layout). - * However, this can look odd when filtering data down to a small data set, - * and the footer is left "floating" further down. This parameter (when - * enabled) will cause DataTables to collapse the table's viewport down when - * the result set will fit within the given Y height. - * @type boolean - * @default false - * @dtopt Options - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "sScrollY": "200", - * "bScrollCollapse": true - * } ); - * } ); - */ - "bScrollCollapse": false, - - - /** - * Enable infinite scrolling for DataTables (to be used in combination with - * sScrollY). Infinite scrolling means that DataTables will continually load - * data as a user scrolls through a table, which is very useful for large - * dataset. This cannot be used with pagination, which is automatically - * disabled. Note - the Scroller extra for DataTables is recommended in - * in preference to this option. - * @type boolean - * @default false - * @dtopt Features - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "bScrollInfinite": true, - * "bScrollCollapse": true, - * "sScrollY": "200px" - * } ); - * } ); - */ - "bScrollInfinite": false, - - - /** - * Configure DataTables to use server-side processing. Note that the - * sAjaxSource parameter must also be given in order to give DataTables a - * source to obtain the required data for each draw. - * @type boolean - * @default false - * @dtopt Features - * @dtopt Server-side - * - * @example - * $(document).ready( function () { - * $('#example').dataTable( { - * "bServerSide": true, - * "sAjaxSource": "xhr.php" - * } ); - * } ); - */ - "bServerSide": false, - - - /** - * Enable or disable sorting of columns. Sorting of individual columns can be - * disabled by the "bSortable" option for each column. - * @type boolean - * @default true - * @dtopt Features - * - * @example - * $(document).ready( function () { - * $('#example').dataTable( { - * "bSort": false - * } ); - * } ); - */ - "bSort": true, - - - /** - * Allows control over whether DataTables should use the top (true) unique - * cell that is found for a single column, or the bottom (false - default). - * This is useful when using complex headers. - * @type boolean - * @default false - * @dtopt Options - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "bSortCellsTop": true - * } ); - * } ); - */ - "bSortCellsTop": false, - - - /** - * Enable or disable the addition of the classes 'sorting_1', 'sorting_2' and - * 'sorting_3' to the columns which are currently being sorted on. This is - * presented as a feature switch as it can increase processing time (while - * classes are removed and added) so for large data sets you might want to - * turn this off. - * @type boolean - * @default true - * @dtopt Features - * - * @example - * $(document).ready( function () { - * $('#example').dataTable( { - * "bSortClasses": false - * } ); - * } ); - */ - "bSortClasses": true, - - - /** - * Enable or disable state saving. When enabled a cookie will be used to save - * table display information such as pagination information, display length, - * filtering and sorting. As such when the end user reloads the page the - * display display will match what thy had previously set up. - * @type boolean - * @default false - * @dtopt Features - * - * @example - * $(document).ready( function () { - * $('#example').dataTable( { - * "bStateSave": true - * } ); - * } ); - */ - "bStateSave": false, - - - /** - * Customise the cookie and / or the parameters being stored when using - * DataTables with state saving enabled. This function is called whenever - * the cookie is modified, and it expects a fully formed cookie string to be - * returned. Note that the data object passed in is a Javascript object which - * must be converted to a string (JSON.stringify for example). - * @type function - * @param {string} sName Name of the cookie defined by DataTables - * @param {object} oData Data to be stored in the cookie - * @param {string} sExpires Cookie expires string - * @param {string} sPath Path of the cookie to set - * @returns {string} Cookie formatted string (which should be encoded by - * using encodeURIComponent()) - * @dtopt Callbacks - * - * @example - * $(document).ready( function () { - * $('#example').dataTable( { - * "fnCookieCallback": function (sName, oData, sExpires, sPath) { - * // Customise oData or sName or whatever else here - * return sName + "="+JSON.stringify(oData)+"; expires=" + sExpires +"; path=" + sPath; - * } - * } ); - * } ); - */ - "fnCookieCallback": null, - - - /** - * This function is called when a TR element is created (and all TD child - * elements have been inserted), or registered if using a DOM source, allowing - * manipulation of the TR element (adding classes etc). - * @type function - * @param {node} nRow "TR" element for the current row - * @param {array} aData Raw data array for this row - * @param {int} iDataIndex The index of this row in aoData - * @dtopt Callbacks - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "fnCreatedRow": function( nRow, aData, iDataIndex ) { - * // Bold the grade for all 'A' grade browsers - * if ( aData[4] == "A" ) - * { - * $('td:eq(4)', nRow).html( 'A' ); - * } - * } - * } ); - * } ); - */ - "fnCreatedRow": null, - - - /** - * This function is called on every 'draw' event, and allows you to - * dynamically modify any aspect you want about the created DOM. - * @type function - * @param {object} oSettings DataTables settings object - * @dtopt Callbacks - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "fnDrawCallback": function( oSettings ) { - * alert( 'DataTables has redrawn the table' ); - * } - * } ); - * } ); - */ - "fnDrawCallback": null, - - - /** - * Identical to fnHeaderCallback() but for the table footer this function - * allows you to modify the table footer on every 'draw' even. - * @type function - * @param {node} nFoot "TR" element for the footer - * @param {array} aData Full table data (as derived from the original HTML) - * @param {int} iStart Index for the current display starting point in the - * display array - * @param {int} iEnd Index for the current display ending point in the - * display array - * @param {array int} aiDisplay Index array to translate the visual position - * to the full data array - * @dtopt Callbacks - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "fnFooterCallback": function( nFoot, aData, iStart, iEnd, aiDisplay ) { - * nFoot.getElementsByTagName('th')[0].innerHTML = "Starting index is "+iStart; - * } - * } ); - * } ) - */ - "fnFooterCallback": null, - - - /** - * When rendering large numbers in the information element for the table - * (i.e. "Showing 1 to 10 of 57 entries") DataTables will render large numbers - * to have a comma separator for the 'thousands' units (e.g. 1 million is - * rendered as "1,000,000") to help readability for the end user. This - * function will override the default method DataTables uses. - * @type function - * @member - * @param {int} iIn number to be formatted - * @returns {string} formatted string for DataTables to show the number - * @dtopt Callbacks - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "fnFormatNumber": function ( iIn ) { - * if ( iIn < 1000 ) { - * return iIn; - * } else { - * var - * s=(iIn+""), - * a=s.split(""), out="", - * iLen=s.length; - * - * for ( var i=0 ; i<iLen ; i++ ) { - * if ( i%3 === 0 && i !== 0 ) { - * out = "'"+out; - * } - * out = a[iLen-i-1]+out; - * } - * } - * return out; - * }; - * } ); - * } ); - */ - "fnFormatNumber": function ( iIn ) { - if ( iIn < 1000 ) - { - // A small optimisation for what is likely to be the majority of use cases - return iIn; - } - - var s=(iIn+""), a=s.split(""), out="", iLen=s.length; - - for ( var i=0 ; iA
    ' ); - * } - * } - * } ); - * } ); - */ - "fnRowCallback": null, - - - /** - * This parameter allows you to override the default function which obtains - * the data from the server ($.getJSON) so something more suitable for your - * application. For example you could use POST data, or pull information from - * a Gears or AIR database. - * @type function - * @member - * @param {string} sSource HTTP source to obtain the data from (sAjaxSource) - * @param {array} aoData A key/value pair object containing the data to send - * to the server - * @param {function} fnCallback to be called on completion of the data get - * process that will draw the data on the page. - * @param {object} oSettings DataTables settings object - * @dtopt Callbacks - * @dtopt Server-side - * - * @example - * // POST data to server - * $(document).ready( function() { - * $('#example').dataTable( { - * "bProcessing": true, - * "bServerSide": true, - * "sAjaxSource": "xhr.php", - * "fnServerData": function ( sSource, aoData, fnCallback, oSettings ) { - * oSettings.jqXHR = $.ajax( { - * "dataType": 'json', - * "type": "POST", - * "url": sSource, - * "data": aoData, - * "success": fnCallback - * } ); - * } - * } ); - * } ); - */ - "fnServerData": function ( sUrl, aoData, fnCallback, oSettings ) { - oSettings.jqXHR = $.ajax( { - "url": sUrl, - "data": aoData, - "success": function (json) { - if ( json.sError ) { - oSettings.oApi._fnLog( oSettings, 0, json.sError ); - } - - $(oSettings.oInstance).trigger('xhr', [oSettings, json]); - fnCallback( json ); - }, - "dataType": "json", - "cache": false, - "type": oSettings.sServerMethod, - "error": function (xhr, error, thrown) { - if ( error == "parsererror" ) { - oSettings.oApi._fnLog( oSettings, 0, "DataTables warning: JSON data from "+ - "server could not be parsed. This is caused by a JSON formatting error." ); - } - } - } ); - }, - - - /** - * It is often useful to send extra data to the server when making an Ajax - * request - for example custom filtering information, and this callback - * function makes it trivial to send extra information to the server. The - * passed in parameter is the data set that has been constructed by - * DataTables, and you can add to this or modify it as you require. - * @type function - * @param {array} aoData Data array (array of objects which are name/value - * pairs) that has been constructed by DataTables and will be sent to the - * server. In the case of Ajax sourced data with server-side processing - * this will be an empty array, for server-side processing there will be a - * significant number of parameters! - * @returns {undefined} Ensure that you modify the aoData array passed in, - * as this is passed by reference. - * @dtopt Callbacks - * @dtopt Server-side - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "bProcessing": true, - * "bServerSide": true, - * "sAjaxSource": "scripts/server_processing.php", - * "fnServerParams": function ( aoData ) { - * aoData.push( { "name": "more_data", "value": "my_value" } ); - * } - * } ); - * } ); - */ - "fnServerParams": null, - - - /** - * Load the table state. With this function you can define from where, and how, the - * state of a table is loaded. By default DataTables will load from its state saving - * cookie, but you might wish to use local storage (HTML5) or a server-side database. - * @type function - * @member - * @param {object} oSettings DataTables settings object - * @return {object} The DataTables state object to be loaded - * @dtopt Callbacks - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "bStateSave": true, - * "fnStateLoad": function (oSettings) { - * var o; - * - * // Send an Ajax request to the server to get the data. Note that - * // this is a synchronous request. - * $.ajax( { - * "url": "/state_load", - * "async": false, - * "dataType": "json", - * "success": function (json) { - * o = json; - * } - * } ); - * - * return o; - * } - * } ); - * } ); - */ - "fnStateLoad": function ( oSettings ) { - var sData = this.oApi._fnReadCookie( oSettings.sCookiePrefix+oSettings.sInstance ); - var oData; - - try { - oData = (typeof $.parseJSON === 'function') ? - $.parseJSON(sData) : eval( '('+sData+')' ); - } catch (e) { - oData = null; - } - - return oData; - }, - - - /** - * Callback which allows modification of the saved state prior to loading that state. - * This callback is called when the table is loading state from the stored data, but - * prior to the settings object being modified by the saved state. Note that for - * plug-in authors, you should use the 'stateLoadParams' event to load parameters for - * a plug-in. - * @type function - * @param {object} oSettings DataTables settings object - * @param {object} oData The state object that is to be loaded - * @dtopt Callbacks - * - * @example - * // Remove a saved filter, so filtering is never loaded - * $(document).ready( function() { - * $('#example').dataTable( { - * "bStateSave": true, - * "fnStateLoadParams": function (oSettings, oData) { - * oData.oSearch.sSearch = ""; - * } - * } ); - * } ); - * - * @example - * // Disallow state loading by returning false - * $(document).ready( function() { - * $('#example').dataTable( { - * "bStateSave": true, - * "fnStateLoadParams": function (oSettings, oData) { - * return false; - * } - * } ); - * } ); - */ - "fnStateLoadParams": null, - - - /** - * Callback that is called when the state has been loaded from the state saving method - * and the DataTables settings object has been modified as a result of the loaded state. - * @type function - * @param {object} oSettings DataTables settings object - * @param {object} oData The state object that was loaded - * @dtopt Callbacks - * - * @example - * // Show an alert with the filtering value that was saved - * $(document).ready( function() { - * $('#example').dataTable( { - * "bStateSave": true, - * "fnStateLoaded": function (oSettings, oData) { - * alert( 'Saved filter was: '+oData.oSearch.sSearch ); - * } - * } ); - * } ); - */ - "fnStateLoaded": null, - - - /** - * Save the table state. This function allows you to define where and how the state - * information for the table is stored - by default it will use a cookie, but you - * might want to use local storage (HTML5) or a server-side database. - * @type function - * @member - * @param {object} oSettings DataTables settings object - * @param {object} oData The state object to be saved - * @dtopt Callbacks - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "bStateSave": true, - * "fnStateSave": function (oSettings, oData) { - * // Send an Ajax request to the server with the state object - * $.ajax( { - * "url": "/state_save", - * "data": oData, - * "dataType": "json", - * "method": "POST" - * "success": function () {} - * } ); - * } - * } ); - * } ); - */ - "fnStateSave": function ( oSettings, oData ) { - this.oApi._fnCreateCookie( - oSettings.sCookiePrefix+oSettings.sInstance, - this.oApi._fnJsonString(oData), - oSettings.iCookieDuration, - oSettings.sCookiePrefix, - oSettings.fnCookieCallback - ); - }, - - - /** - * Callback which allows modification of the state to be saved. Called when the table - * has changed state a new state save is required. This method allows modification of - * the state saving object prior to actually doing the save, including addition or - * other state properties or modification. Note that for plug-in authors, you should - * use the 'stateSaveParams' event to save parameters for a plug-in. - * @type function - * @param {object} oSettings DataTables settings object - * @param {object} oData The state object to be saved - * @dtopt Callbacks - * - * @example - * // Remove a saved filter, so filtering is never saved - * $(document).ready( function() { - * $('#example').dataTable( { - * "bStateSave": true, - * "fnStateSaveParams": function (oSettings, oData) { - * oData.oSearch.sSearch = ""; - * } - * } ); - * } ); - */ - "fnStateSaveParams": null, - - - /** - * Duration of the cookie which is used for storing session information. This - * value is given in seconds. - * @type int - * @default 7200 (2 hours) - * @dtopt Options - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "iCookieDuration": 60*60*24; // 1 day - * } ); - * } ) - */ - "iCookieDuration": 7200, - - - /** - * When enabled DataTables will not make a request to the server for the first - * page draw - rather it will use the data already on the page (no sorting etc - * will be applied to it), thus saving on an XHR at load time. iDeferLoading - * is used to indicate that deferred loading is required, but it is also used - * to tell DataTables how many records there are in the full table (allowing - * the information element and pagination to be displayed correctly). In the case - * where a filtering is applied to the table on initial load, this can be - * indicated by giving the parameter as an array, where the first element is - * the number of records available after filtering and the second element is the - * number of records without filtering (allowing the table information element - * to be shown correctly). - * @type int | array - * @default null - * @dtopt Options - * - * @example - * // 57 records available in the table, no filtering applied - * $(document).ready( function() { - * $('#example').dataTable( { - * "bServerSide": true, - * "sAjaxSource": "scripts/server_processing.php", - * "iDeferLoading": 57 - * } ); - * } ); - * - * @example - * // 57 records after filtering, 100 without filtering (an initial filter applied) - * $(document).ready( function() { - * $('#example').dataTable( { - * "bServerSide": true, - * "sAjaxSource": "scripts/server_processing.php", - * "iDeferLoading": [ 57, 100 ], - * "oSearch": { - * "sSearch": "my_filter" - * } - * } ); - * } ); - */ - "iDeferLoading": null, - - - /** - * Number of rows to display on a single page when using pagination. If - * feature enabled (bLengthChange) then the end user will be able to override - * this to a custom setting using a pop-up menu. - * @type int - * @default 10 - * @dtopt Options - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "iDisplayLength": 50 - * } ); - * } ) - */ - "iDisplayLength": 10, - - - /** - * Define the starting point for data display when using DataTables with - * pagination. Note that this parameter is the number of records, rather than - * the page number, so if you have 10 records per page and want to start on - * the third page, it should be "20". - * @type int - * @default 0 - * @dtopt Options - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "iDisplayStart": 20 - * } ); - * } ) - */ - "iDisplayStart": 0, - - - /** - * The scroll gap is the amount of scrolling that is left to go before - * DataTables will load the next 'page' of data automatically. You typically - * want a gap which is big enough that the scrolling will be smooth for the - * user, while not so large that it will load more data than need. - * @type int - * @default 100 - * @dtopt Options - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "bScrollInfinite": true, - * "bScrollCollapse": true, - * "sScrollY": "200px", - * "iScrollLoadGap": 50 - * } ); - * } ); - */ - "iScrollLoadGap": 100, - - - /** - * By default DataTables allows keyboard navigation of the table (sorting, paging, - * and filtering) by adding a tabindex attribute to the required elements. This - * allows you to tab through the controls and press the enter key to activate them. - * The tabindex is default 0, meaning that the tab follows the flow of the document. - * You can overrule this using this parameter if you wish. Use a value of -1 to - * disable built-in keyboard navigation. - * @type int - * @default 0 - * @dtopt Options - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "iTabIndex": 1 - * } ); - * } ); - */ - "iTabIndex": 0, - - - /** - * All strings that DataTables uses in the user interface that it creates - * are defined in this object, allowing you to modified them individually or - * completely replace them all as required. - * @namespace - */ - "oLanguage": { - /** - * Strings that are used for WAI-ARIA labels and controls only (these are not - * actually visible on the page, but will be read by screenreaders, and thus - * must be internationalised as well). - * @namespace - */ - "oAria": { - /** - * ARIA label that is added to the table headers when the column may be - * sorted ascending by activing the column (click or return when focused). - * Note that the column header is prefixed to this string. - * @type string - * @default : activate to sort column ascending - * @dtopt Language - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "oAria": { - * "sSortAscending": " - click/return to sort ascending" - * } - * } - * } ); - * } ); - */ - "sSortAscending": ": activate to sort column ascending", - - /** - * ARIA label that is added to the table headers when the column may be - * sorted descending by activing the column (click or return when focused). - * Note that the column header is prefixed to this string. - * @type string - * @default : activate to sort column ascending - * @dtopt Language - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "oAria": { - * "sSortDescending": " - click/return to sort descending" - * } - * } - * } ); - * } ); - */ - "sSortDescending": ": activate to sort column descending" - }, - - /** - * Pagination string used by DataTables for the two built-in pagination - * control types ("two_button" and "full_numbers") - * @namespace - */ - "oPaginate": { - /** - * Text to use when using the 'full_numbers' type of pagination for the - * button to take the user to the first page. - * @type string - * @default First - * @dtopt Language - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "oPaginate": { - * "sFirst": "First page" - * } - * } - * } ); - * } ); - */ - "sFirst": "First", - - - /** - * Text to use when using the 'full_numbers' type of pagination for the - * button to take the user to the last page. - * @type string - * @default Last - * @dtopt Language - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "oPaginate": { - * "sLast": "Last page" - * } - * } - * } ); - * } ); - */ - "sLast": "Last", - - - /** - * Text to use for the 'next' pagination button (to take the user to the - * next page). - * @type string - * @default Next - * @dtopt Language - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "oPaginate": { - * "sNext": "Next page" - * } - * } - * } ); - * } ); - */ - "sNext": "Next", - - - /** - * Text to use for the 'previous' pagination button (to take the user to - * the previous page). - * @type string - * @default Previous - * @dtopt Language - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "oPaginate": { - * "sPrevious": "Previous page" - * } - * } - * } ); - * } ); - */ - "sPrevious": "Previous" - }, - - /** - * This string is shown in preference to sZeroRecords when the table is - * empty of data (regardless of filtering). Note that this is an optional - * parameter - if it is not given, the value of sZeroRecords will be used - * instead (either the default or given value). - * @type string - * @default No data available in table - * @dtopt Language - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "sEmptyTable": "No data available in table" - * } - * } ); - * } ); - */ - "sEmptyTable": "No data available in table", - - - /** - * This string gives information to the end user about the information that - * is current on display on the page. The _START_, _END_ and _TOTAL_ - * variables are all dynamically replaced as the table display updates, and - * can be freely moved or removed as the language requirements change. - * @type string - * @default Showing _START_ to _END_ of _TOTAL_ entries - * @dtopt Language - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "sInfo": "Got a total of _TOTAL_ entries to show (_START_ to _END_)" - * } - * } ); - * } ); - */ - "sInfo": "Showing _START_ to _END_ of _TOTAL_ entries", - - - /** - * Display information string for when the table is empty. Typically the - * format of this string should match sInfo. - * @type string - * @default Showing 0 to 0 of 0 entries - * @dtopt Language - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "sInfoEmpty": "No entries to show" - * } - * } ); - * } ); - */ - "sInfoEmpty": "Showing 0 to 0 of 0 entries", - - - /** - * When a user filters the information in a table, this string is appended - * to the information (sInfo) to give an idea of how strong the filtering - * is. The variable _MAX_ is dynamically updated. - * @type string - * @default (filtered from _MAX_ total entries) - * @dtopt Language - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "sInfoFiltered": " - filtering from _MAX_ records" - * } - * } ); - * } ); - */ - "sInfoFiltered": "(filtered from _MAX_ total entries)", - - - /** - * If can be useful to append extra information to the info string at times, - * and this variable does exactly that. This information will be appended to - * the sInfo (sInfoEmpty and sInfoFiltered in whatever combination they are - * being used) at all times. - * @type string - * @default Empty string - * @dtopt Language - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "sInfoPostFix": "All records shown are derived from real information." - * } - * } ); - * } ); - */ - "sInfoPostFix": "", - - - /** - * DataTables has a build in number formatter (fnFormatNumber) which is used - * to format large numbers that are used in the table information. By - * default a comma is used, but this can be trivially changed to any - * character you wish with this parameter. - * @type string - * @default , - * @dtopt Language - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "sInfoThousands": "'" - * } - * } ); - * } ); - */ - "sInfoThousands": ",", - - - /** - * Detail the action that will be taken when the drop down menu for the - * pagination length option is changed. The '_MENU_' variable is replaced - * with a default select list of 10, 25, 50 and 100, and can be replaced - * with a custom select box if required. - * @type string - * @default Show _MENU_ entries - * @dtopt Language - * - * @example - * // Language change only - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "sLengthMenu": "Display _MENU_ records" - * } - * } ); - * } ); - * - * @example - * // Language and options change - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "sLengthMenu": 'Display records' - * } - * } ); - * } ); - */ - "sLengthMenu": "Show _MENU_ entries", - - - /** - * When using Ajax sourced data and during the first draw when DataTables is - * gathering the data, this message is shown in an empty row in the table to - * indicate to the end user the the data is being loaded. Note that this - * parameter is not used when loading data by server-side processing, just - * Ajax sourced data with client-side processing. - * @type string - * @default Loading... - * @dtopt Language - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "sLoadingRecords": "Please wait - loading..." - * } - * } ); - * } ); - */ - "sLoadingRecords": "Loading...", - - - /** - * Text which is displayed when the table is processing a user action - * (usually a sort command or similar). - * @type string - * @default Processing... - * @dtopt Language - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "sProcessing": "DataTables is currently busy" - * } - * } ); - * } ); - */ - "sProcessing": "Processing...", - - - /** - * Details the actions that will be taken when the user types into the - * filtering input text box. The variable "_INPUT_", if used in the string, - * is replaced with the HTML text box for the filtering input allowing - * control over where it appears in the string. If "_INPUT_" is not given - * then the input box is appended to the string automatically. - * @type string - * @default Search: - * @dtopt Language - * - * @example - * // Input text box will be appended at the end automatically - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "sSearch": "Filter records:" - * } - * } ); - * } ); - * - * @example - * // Specify where the filter should appear - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "sSearch": "Apply filter _INPUT_ to table" - * } - * } ); - * } ); - */ - "sSearch": "Search:", - - - /** - * All of the language information can be stored in a file on the - * server-side, which DataTables will look up if this parameter is passed. - * It must store the URL of the language file, which is in a JSON format, - * and the object has the same properties as the oLanguage object in the - * initialiser object (i.e. the above parameters). Please refer to one of - * the example language files to see how this works in action. - * @type string - * @default Empty string - i.e. disabled - * @dtopt Language - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "sUrl": "http://www.sprymedia.co.uk/dataTables/lang.txt" - * } - * } ); - * } ); - */ - "sUrl": "", - - - /** - * Text shown inside the table records when the is no information to be - * displayed after filtering. sEmptyTable is shown when there is simply no - * information in the table at all (regardless of filtering). - * @type string - * @default No matching records found - * @dtopt Language - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "sZeroRecords": "No records to display" - * } - * } ); - * } ); - */ - "sZeroRecords": "No matching records found" - }, - - - /** - * This parameter allows you to have define the global filtering state at - * initialisation time. As an object the "sSearch" parameter must be - * defined, but all other parameters are optional. When "bRegex" is true, - * the search string will be treated as a regular expression, when false - * (default) it will be treated as a straight string. When "bSmart" - * DataTables will use it's smart filtering methods (to word match at - * any point in the data), when false this will not be done. - * @namespace - * @extends DataTable.models.oSearch - * @dtopt Options - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "oSearch": {"sSearch": "Initial search"} - * } ); - * } ) - */ - "oSearch": $.extend( {}, DataTable.models.oSearch ), - - - /** - * By default DataTables will look for the property 'aaData' when obtaining - * data from an Ajax source or for server-side processing - this parameter - * allows that property to be changed. You can use Javascript dotted object - * notation to get a data source for multiple levels of nesting. - * @type string - * @default aaData - * @dtopt Options - * @dtopt Server-side - * - * @example - * // Get data from { "data": [...] } - * $(document).ready( function() { - * var oTable = $('#example').dataTable( { - * "sAjaxSource": "sources/data.txt", - * "sAjaxDataProp": "data" - * } ); - * } ); - * - * @example - * // Get data from { "data": { "inner": [...] } } - * $(document).ready( function() { - * var oTable = $('#example').dataTable( { - * "sAjaxSource": "sources/data.txt", - * "sAjaxDataProp": "data.inner" - * } ); - * } ); - */ - "sAjaxDataProp": "aaData", - - - /** - * You can instruct DataTables to load data from an external source using this - * parameter (use aData if you want to pass data in you already have). Simply - * provide a url a JSON object can be obtained from. This object must include - * the parameter 'aaData' which is the data source for the table. - * @type string - * @default null - * @dtopt Options - * @dtopt Server-side - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "sAjaxSource": "http://www.sprymedia.co.uk/dataTables/json.php" - * } ); - * } ) - */ - "sAjaxSource": null, - - - /** - * This parameter can be used to override the default prefix that DataTables - * assigns to a cookie when state saving is enabled. - * @type string - * @default SpryMedia_DataTables_ - * @dtopt Options - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "sCookiePrefix": "my_datatable_", - * } ); - * } ); - */ - "sCookiePrefix": "SpryMedia_DataTables_", - - - /** - * This initialisation variable allows you to specify exactly where in the - * DOM you want DataTables to inject the various controls it adds to the page - * (for example you might want the pagination controls at the top of the - * table). DIV elements (with or without a custom class) can also be added to - * aid styling. The follow syntax is used: - *
      - *
    • The following options are allowed: - *
        - *
      • 'l' - Length changing
      • 'f' - Filtering input - *
      • 't' - The table!
      • - *
      • 'i' - Information
      • - *
      • 'p' - Pagination
      • - *
      • 'r' - pRocessing
      • - *
      - *
    • - *
    • The following constants are allowed: - *
        - *
      • 'H' - jQueryUI theme "header" classes ('fg-toolbar ui-widget-header ui-corner-tl ui-corner-tr ui-helper-clearfix')
      • - *
      • 'F' - jQueryUI theme "footer" classes ('fg-toolbar ui-widget-header ui-corner-bl ui-corner-br ui-helper-clearfix')
      • - *
      - *
    • - *
    • The following syntax is expected: - *
        - *
      • '<' and '>' - div elements
      • - *
      • '<"class" and '>' - div with a class
      • - *
      • '<"#id" and '>' - div with an ID
      • - *
      - *
    • - *
    • Examples: - *
        - *
      • '<"wrapper"flipt>'
      • - *
      • '<lf<t>ip>'
      • - *
      - *
    • - *
    - * @type string - * @default lfrtip (when bJQueryUI is false) or - * <"H"lfr>t<"F"ip> (when bJQueryUI is true) - * @dtopt Options - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "sDom": '<"top"i>rt<"bottom"flp><"clear">' - * } ); - * } ); - */ - "sDom": "lfrtip", - - - /** - * DataTables features two different built-in pagination interaction methods - * ('two_button' or 'full_numbers') which present different page controls to - * the end user. Further methods can be added using the API (see below). - * @type string - * @default two_button - * @dtopt Options - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "sPaginationType": "full_numbers" - * } ); - * } ) - */ - "sPaginationType": "two_button", - - - /** - * Enable horizontal scrolling. When a table is too wide to fit into a certain - * layout, or you have a large number of columns in the table, you can enable - * x-scrolling to show the table in a viewport, which can be scrolled. This - * property can be any CSS unit, or a number (in which case it will be treated - * as a pixel measurement). - * @type string - * @default blank string - i.e. disabled - * @dtopt Features - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "sScrollX": "100%", - * "bScrollCollapse": true - * } ); - * } ); - */ - "sScrollX": "", - - - /** - * This property can be used to force a DataTable to use more width than it - * might otherwise do when x-scrolling is enabled. For example if you have a - * table which requires to be well spaced, this parameter is useful for - * "over-sizing" the table, and thus forcing scrolling. This property can by - * any CSS unit, or a number (in which case it will be treated as a pixel - * measurement). - * @type string - * @default blank string - i.e. disabled - * @dtopt Options - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "sScrollX": "100%", - * "sScrollXInner": "110%" - * } ); - * } ); - */ - "sScrollXInner": "", - - - /** - * Enable vertical scrolling. Vertical scrolling will constrain the DataTable - * to the given height, and enable scrolling for any data which overflows the - * current viewport. This can be used as an alternative to paging to display - * a lot of data in a small area (although paging and scrolling can both be - * enabled at the same time). This property can be any CSS unit, or a number - * (in which case it will be treated as a pixel measurement). - * @type string - * @default blank string - i.e. disabled - * @dtopt Features - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "sScrollY": "200px", - * "bPaginate": false - * } ); - * } ); - */ - "sScrollY": "", - - - /** - * Set the HTTP method that is used to make the Ajax call for server-side - * processing or Ajax sourced data. - * @type string - * @default GET - * @dtopt Options - * @dtopt Server-side - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "bServerSide": true, - * "sAjaxSource": "scripts/post.php", - * "sServerMethod": "POST" - * } ); - * } ); - */ - "sServerMethod": "GET" - }; - - - - /** - * Column options that can be given to DataTables at initialisation time. - * @namespace - */ - DataTable.defaults.columns = { - /** - * Allows a column's sorting to take multiple columns into account when - * doing a sort. For example first name / last name columns make sense to - * do a multi-column sort over the two columns. - * @type array - * @default null Takes the value of the column index automatically - * @dtopt Columns - * - * @example - * // Using aoColumnDefs - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumnDefs": [ - * { "aDataSort": [ 0, 1 ], "aTargets": [ 0 ] }, - * { "aDataSort": [ 1, 0 ], "aTargets": [ 1 ] }, - * { "aDataSort": [ 2, 3, 4 ], "aTargets": [ 2 ] } - * ] - * } ); - * } ); - * - * @example - * // Using aoColumns - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumns": [ - * { "aDataSort": [ 0, 1 ] }, - * { "aDataSort": [ 1, 0 ] }, - * { "aDataSort": [ 2, 3, 4 ] }, - * null, - * null - * ] - * } ); - * } ); - */ - "aDataSort": null, - - - /** - * You can control the default sorting direction, and even alter the behaviour - * of the sort handler (i.e. only allow ascending sorting etc) using this - * parameter. - * @type array - * @default [ 'asc', 'desc' ] - * @dtopt Columns - * - * @example - * // Using aoColumnDefs - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumnDefs": [ - * { "asSorting": [ "asc" ], "aTargets": [ 1 ] }, - * { "asSorting": [ "desc", "asc", "asc" ], "aTargets": [ 2 ] }, - * { "asSorting": [ "desc" ], "aTargets": [ 3 ] } - * ] - * } ); - * } ); - * - * @example - * // Using aoColumns - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumns": [ - * null, - * { "asSorting": [ "asc" ] }, - * { "asSorting": [ "desc", "asc", "asc" ] }, - * { "asSorting": [ "desc" ] }, - * null - * ] - * } ); - * } ); - */ - "asSorting": [ 'asc', 'desc' ], - - - /** - * Enable or disable filtering on the data in this column. - * @type boolean - * @default true - * @dtopt Columns - * - * @example - * // Using aoColumnDefs - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumnDefs": [ - * { "bSearchable": false, "aTargets": [ 0 ] } - * ] } ); - * } ); - * - * @example - * // Using aoColumns - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumns": [ - * { "bSearchable": false }, - * null, - * null, - * null, - * null - * ] } ); - * } ); - */ - "bSearchable": true, - - - /** - * Enable or disable sorting on this column. - * @type boolean - * @default true - * @dtopt Columns - * - * @example - * // Using aoColumnDefs - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumnDefs": [ - * { "bSortable": false, "aTargets": [ 0 ] } - * ] } ); - * } ); - * - * @example - * // Using aoColumns - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumns": [ - * { "bSortable": false }, - * null, - * null, - * null, - * null - * ] } ); - * } ); - */ - "bSortable": true, - - - /** - * Deprecated When using fnRender() for a column, you may wish - * to use the original data (before rendering) for sorting and filtering - * (the default is to used the rendered data that the user can see). This - * may be useful for dates etc. - * - * Please note that this option has now been deprecated and will be removed - * in the next version of DataTables. Please use mRender / mData rather than - * fnRender. - * @type boolean - * @default true - * @dtopt Columns - * @deprecated - */ - "bUseRendered": true, - - - /** - * Enable or disable the display of this column. - * @type boolean - * @default true - * @dtopt Columns - * - * @example - * // Using aoColumnDefs - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumnDefs": [ - * { "bVisible": false, "aTargets": [ 0 ] } - * ] } ); - * } ); - * - * @example - * // Using aoColumns - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumns": [ - * { "bVisible": false }, - * null, - * null, - * null, - * null - * ] } ); - * } ); - */ - "bVisible": true, - - - /** - * Developer definable function that is called whenever a cell is created (Ajax source, - * etc) or processed for input (DOM source). This can be used as a compliment to mRender - * allowing you to modify the DOM element (add background colour for example) when the - * element is available. - * @type function - * @param {element} nTd The TD node that has been created - * @param {*} sData The Data for the cell - * @param {array|object} oData The data for the whole row - * @param {int} iRow The row index for the aoData data store - * @param {int} iCol The column index for aoColumns - * @dtopt Columns - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumnDefs": [ { - * "aTargets": [3], - * "fnCreatedCell": function (nTd, sData, oData, iRow, iCol) { - * if ( sData == "1.7" ) { - * $(nTd).css('color', 'blue') - * } - * } - * } ] - * }); - * } ); - */ - "fnCreatedCell": null, - - - /** - * Deprecated Custom display function that will be called for the - * display of each cell in this column. - * - * Please note that this option has now been deprecated and will be removed - * in the next version of DataTables. Please use mRender / mData rather than - * fnRender. - * @type function - * @param {object} o Object with the following parameters: - * @param {int} o.iDataRow The row in aoData - * @param {int} o.iDataColumn The column in question - * @param {array} o.aData The data for the row in question - * @param {object} o.oSettings The settings object for this DataTables instance - * @param {object} o.mDataProp The data property used for this column - * @param {*} val The current cell value - * @returns {string} The string you which to use in the display - * @dtopt Columns - * @deprecated - */ - "fnRender": null, - - - /** - * The column index (starting from 0!) that you wish a sort to be performed - * upon when this column is selected for sorting. This can be used for sorting - * on hidden columns for example. - * @type int - * @default -1 Use automatically calculated column index - * @dtopt Columns - * - * @example - * // Using aoColumnDefs - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumnDefs": [ - * { "iDataSort": 1, "aTargets": [ 0 ] } - * ] - * } ); - * } ); - * - * @example - * // Using aoColumns - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumns": [ - * { "iDataSort": 1 }, - * null, - * null, - * null, - * null - * ] - * } ); - * } ); - */ - "iDataSort": -1, - - - /** - * This parameter has been replaced by mData in DataTables to ensure naming - * consistency. mDataProp can still be used, as there is backwards compatibility - * in DataTables for this option, but it is strongly recommended that you use - * mData in preference to mDataProp. - * @name DataTable.defaults.columns.mDataProp - */ - - - /** - * This property can be used to read data from any JSON data source property, - * including deeply nested objects / properties. mData can be given in a - * number of different ways which effect its behaviour: - *
      - *
    • integer - treated as an array index for the data source. This is the - * default that DataTables uses (incrementally increased for each column).
    • - *
    • string - read an object property from the data source. Note that you can - * use Javascript dotted notation to read deep properties / arrays from the - * data source.
    • - *
    • null - the sDefaultContent option will be used for the cell (null - * by default, so you will need to specify the default content you want - - * typically an empty string). This can be useful on generated columns such - * as edit / delete action columns.
    • - *
    • function - the function given will be executed whenever DataTables - * needs to set or get the data for a cell in the column. The function - * takes three parameters: - *
        - *
      • {array|object} The data source for the row
      • - *
      • {string} The type call data requested - this will be 'set' when - * setting data or 'filter', 'display', 'type', 'sort' or undefined when - * gathering data. Note that when undefined is given for the type - * DataTables expects to get the raw data for the object back
      • - *
      • {*} Data to set when the second parameter is 'set'.
      • - *
      - * The return value from the function is not required when 'set' is the type - * of call, but otherwise the return is what will be used for the data - * requested.
    • - *
    - * - * Note that prior to DataTables 1.9.2 mData was called mDataProp. The name change - * reflects the flexibility of this property and is consistent with the naming of - * mRender. If 'mDataProp' is given, then it will still be used by DataTables, as - * it automatically maps the old name to the new if required. - * @type string|int|function|null - * @default null Use automatically calculated column index - * @dtopt Columns - * - * @example - * // Read table data from objects - * $(document).ready( function() { - * var oTable = $('#example').dataTable( { - * "sAjaxSource": "sources/deep.txt", - * "aoColumns": [ - * { "mData": "engine" }, - * { "mData": "browser" }, - * { "mData": "platform.inner" }, - * { "mData": "platform.details.0" }, - * { "mData": "platform.details.1" } - * ] - * } ); - * } ); - * - * @example - * // Using mData as a function to provide different information for - * // sorting, filtering and display. In this case, currency (price) - * $(document).ready( function() { - * var oTable = $('#example').dataTable( { - * "aoColumnDefs": [ { - * "aTargets": [ 0 ], - * "mData": function ( source, type, val ) { - * if (type === 'set') { - * source.price = val; - * // Store the computed dislay and filter values for efficiency - * source.price_display = val=="" ? "" : "$"+numberFormat(val); - * source.price_filter = val=="" ? "" : "$"+numberFormat(val)+" "+val; - * return; - * } - * else if (type === 'display') { - * return source.price_display; - * } - * else if (type === 'filter') { - * return source.price_filter; - * } - * // 'sort', 'type' and undefined all just use the integer - * return source.price; - * } - * } ] - * } ); - * } ); - */ - "mData": null, - - - /** - * This property is the rendering partner to mData and it is suggested that - * when you want to manipulate data for display (including filtering, sorting etc) - * but not altering the underlying data for the table, use this property. mData - * can actually do everything this property can and more, but this parameter is - * easier to use since there is no 'set' option. Like mData is can be given - * in a number of different ways to effect its behaviour, with the addition of - * supporting array syntax for easy outputting of arrays (including arrays of - * objects): - *
      - *
    • integer - treated as an array index for the data source. This is the - * default that DataTables uses (incrementally increased for each column).
    • - *
    • string - read an object property from the data source. Note that you can - * use Javascript dotted notation to read deep properties / arrays from the - * data source and also array brackets to indicate that the data reader should - * loop over the data source array. When characters are given between the array - * brackets, these characters are used to join the data source array together. - * For example: "accounts[, ].name" would result in a comma separated list with - * the 'name' value from the 'accounts' array of objects.
    • - *
    • function - the function given will be executed whenever DataTables - * needs to set or get the data for a cell in the column. The function - * takes three parameters: - *
        - *
      • {array|object} The data source for the row (based on mData)
      • - *
      • {string} The type call data requested - this will be 'filter', 'display', - * 'type' or 'sort'.
      • - *
      • {array|object} The full data source for the row (not based on mData)
      • - *
      - * The return value from the function is what will be used for the data - * requested.
    • - *
    - * @type string|int|function|null - * @default null Use mData - * @dtopt Columns - * - * @example - * // Create a comma separated list from an array of objects - * $(document).ready( function() { - * var oTable = $('#example').dataTable( { - * "sAjaxSource": "sources/deep.txt", - * "aoColumns": [ - * { "mData": "engine" }, - * { "mData": "browser" }, - * { - * "mData": "platform", - * "mRender": "[, ].name" - * } - * ] - * } ); - * } ); - * - * @example - * // Use as a function to create a link from the data source - * $(document).ready( function() { - * var oTable = $('#example').dataTable( { - * "aoColumnDefs": [ - * { - * "aTargets": [ 0 ], - * "mData": "download_link", - * "mRender": function ( data, type, full ) { - * return 'Download'; - * } - * ] - * } ); - * } ); - */ - "mRender": null, - - - /** - * Change the cell type created for the column - either TD cells or TH cells. This - * can be useful as TH cells have semantic meaning in the table body, allowing them - * to act as a header for a row (you may wish to add scope='row' to the TH elements). - * @type string - * @default td - * @dtopt Columns - * - * @example - * // Make the first column use TH cells - * $(document).ready( function() { - * var oTable = $('#example').dataTable( { - * "aoColumnDefs": [ { - * "aTargets": [ 0 ], - * "sCellType": "th" - * } ] - * } ); - * } ); - */ - "sCellType": "td", - - - /** - * Class to give to each cell in this column. - * @type string - * @default Empty string - * @dtopt Columns - * - * @example - * // Using aoColumnDefs - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumnDefs": [ - * { "sClass": "my_class", "aTargets": [ 0 ] } - * ] - * } ); - * } ); - * - * @example - * // Using aoColumns - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumns": [ - * { "sClass": "my_class" }, - * null, - * null, - * null, - * null - * ] - * } ); - * } ); - */ - "sClass": "", - - /** - * When DataTables calculates the column widths to assign to each column, - * it finds the longest string in each column and then constructs a - * temporary table and reads the widths from that. The problem with this - * is that "mmm" is much wider then "iiii", but the latter is a longer - * string - thus the calculation can go wrong (doing it properly and putting - * it into an DOM object and measuring that is horribly(!) slow). Thus as - * a "work around" we provide this option. It will append its value to the - * text that is found to be the longest string for the column - i.e. padding. - * Generally you shouldn't need this, and it is not documented on the - * general DataTables.net documentation - * @type string - * @default Empty string - * @dtopt Columns - * - * @example - * // Using aoColumns - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumns": [ - * null, - * null, - * null, - * { - * "sContentPadding": "mmm" - * } - * ] - * } ); - * } ); - */ - "sContentPadding": "", - - - /** - * Allows a default value to be given for a column's data, and will be used - * whenever a null data source is encountered (this can be because mData - * is set to null, or because the data source itself is null). - * @type string - * @default null - * @dtopt Columns - * - * @example - * // Using aoColumnDefs - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumnDefs": [ - * { - * "mData": null, - * "sDefaultContent": "Edit", - * "aTargets": [ -1 ] - * } - * ] - * } ); - * } ); - * - * @example - * // Using aoColumns - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumns": [ - * null, - * null, - * null, - * { - * "mData": null, - * "sDefaultContent": "Edit" - * } - * ] - * } ); - * } ); - */ - "sDefaultContent": null, - - - /** - * This parameter is only used in DataTables' server-side processing. It can - * be exceptionally useful to know what columns are being displayed on the - * client side, and to map these to database fields. When defined, the names - * also allow DataTables to reorder information from the server if it comes - * back in an unexpected order (i.e. if you switch your columns around on the - * client-side, your server-side code does not also need updating). - * @type string - * @default Empty string - * @dtopt Columns - * - * @example - * // Using aoColumnDefs - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumnDefs": [ - * { "sName": "engine", "aTargets": [ 0 ] }, - * { "sName": "browser", "aTargets": [ 1 ] }, - * { "sName": "platform", "aTargets": [ 2 ] }, - * { "sName": "version", "aTargets": [ 3 ] }, - * { "sName": "grade", "aTargets": [ 4 ] } - * ] - * } ); - * } ); - * - * @example - * // Using aoColumns - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumns": [ - * { "sName": "engine" }, - * { "sName": "browser" }, - * { "sName": "platform" }, - * { "sName": "version" }, - * { "sName": "grade" } - * ] - * } ); - * } ); - */ - "sName": "", - - - /** - * Defines a data source type for the sorting which can be used to read - * real-time information from the table (updating the internally cached - * version) prior to sorting. This allows sorting to occur on user editable - * elements such as form inputs. - * @type string - * @default std - * @dtopt Columns - * - * @example - * // Using aoColumnDefs - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumnDefs": [ - * { "sSortDataType": "dom-text", "aTargets": [ 2, 3 ] }, - * { "sType": "numeric", "aTargets": [ 3 ] }, - * { "sSortDataType": "dom-select", "aTargets": [ 4 ] }, - * { "sSortDataType": "dom-checkbox", "aTargets": [ 5 ] } - * ] - * } ); - * } ); - * - * @example - * // Using aoColumns - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumns": [ - * null, - * null, - * { "sSortDataType": "dom-text" }, - * { "sSortDataType": "dom-text", "sType": "numeric" }, - * { "sSortDataType": "dom-select" }, - * { "sSortDataType": "dom-checkbox" } - * ] - * } ); - * } ); - */ - "sSortDataType": "std", - - - /** - * The title of this column. - * @type string - * @default null Derived from the 'TH' value for this column in the - * original HTML table. - * @dtopt Columns - * - * @example - * // Using aoColumnDefs - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumnDefs": [ - * { "sTitle": "My column title", "aTargets": [ 0 ] } - * ] - * } ); - * } ); - * - * @example - * // Using aoColumns - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumns": [ - * { "sTitle": "My column title" }, - * null, - * null, - * null, - * null - * ] - * } ); - * } ); - */ - "sTitle": null, - - - /** - * The type allows you to specify how the data for this column will be sorted. - * Four types (string, numeric, date and html (which will strip HTML tags - * before sorting)) are currently available. Note that only date formats - * understood by Javascript's Date() object will be accepted as type date. For - * example: "Mar 26, 2008 5:03 PM". May take the values: 'string', 'numeric', - * 'date' or 'html' (by default). Further types can be adding through - * plug-ins. - * @type string - * @default null Auto-detected from raw data - * @dtopt Columns - * - * @example - * // Using aoColumnDefs - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumnDefs": [ - * { "sType": "html", "aTargets": [ 0 ] } - * ] - * } ); - * } ); - * - * @example - * // Using aoColumns - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumns": [ - * { "sType": "html" }, - * null, - * null, - * null, - * null - * ] - * } ); - * } ); - */ - "sType": null, - - - /** - * Defining the width of the column, this parameter may take any CSS value - * (3em, 20px etc). DataTables apples 'smart' widths to columns which have not - * been given a specific width through this interface ensuring that the table - * remains readable. - * @type string - * @default null Automatic - * @dtopt Columns - * - * @example - * // Using aoColumnDefs - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumnDefs": [ - * { "sWidth": "20%", "aTargets": [ 0 ] } - * ] - * } ); - * } ); - * - * @example - * // Using aoColumns - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumns": [ - * { "sWidth": "20%" }, - * null, - * null, - * null, - * null - * ] - * } ); - * } ); - */ - "sWidth": null - }; - - - - /** - * DataTables settings object - this holds all the information needed for a - * given table, including configuration, data and current application of the - * table options. DataTables does not have a single instance for each DataTable - * with the settings attached to that instance, but rather instances of the - * DataTable "class" are created on-the-fly as needed (typically by a - * $().dataTable() call) and the settings object is then applied to that - * instance. - * - * Note that this object is related to {@link DataTable.defaults} but this - * one is the internal data store for DataTables's cache of columns. It should - * NOT be manipulated outside of DataTables. Any configuration should be done - * through the initialisation options. - * @namespace - * @todo Really should attach the settings object to individual instances so we - * don't need to create new instances on each $().dataTable() call (if the - * table already exists). It would also save passing oSettings around and - * into every single function. However, this is a very significant - * architecture change for DataTables and will almost certainly break - * backwards compatibility with older installations. This is something that - * will be done in 2.0. - */ - DataTable.models.oSettings = { - /** - * Primary features of DataTables and their enablement state. - * @namespace - */ - "oFeatures": { - - /** - * Flag to say if DataTables should automatically try to calculate the - * optimum table and columns widths (true) or not (false). - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type boolean - */ - "bAutoWidth": null, - - /** - * Delay the creation of TR and TD elements until they are actually - * needed by a driven page draw. This can give a significant speed - * increase for Ajax source and Javascript source data, but makes no - * difference at all fro DOM and server-side processing tables. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type boolean - */ - "bDeferRender": null, - - /** - * Enable filtering on the table or not. Note that if this is disabled - * then there is no filtering at all on the table, including fnFilter. - * To just remove the filtering input use sDom and remove the 'f' option. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type boolean - */ - "bFilter": null, - - /** - * Table information element (the 'Showing x of y records' div) enable - * flag. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type boolean - */ - "bInfo": null, - - /** - * Present a user control allowing the end user to change the page size - * when pagination is enabled. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type boolean - */ - "bLengthChange": null, - - /** - * Pagination enabled or not. Note that if this is disabled then length - * changing must also be disabled. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type boolean - */ - "bPaginate": null, - - /** - * Processing indicator enable flag whenever DataTables is enacting a - * user request - typically an Ajax request for server-side processing. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type boolean - */ - "bProcessing": null, - - /** - * Server-side processing enabled flag - when enabled DataTables will - * get all data from the server for every draw - there is no filtering, - * sorting or paging done on the client-side. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type boolean - */ - "bServerSide": null, - - /** - * Sorting enablement flag. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type boolean - */ - "bSort": null, - - /** - * Apply a class to the columns which are being sorted to provide a - * visual highlight or not. This can slow things down when enabled since - * there is a lot of DOM interaction. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type boolean - */ - "bSortClasses": null, - - /** - * State saving enablement flag. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type boolean - */ - "bStateSave": null - }, - - - /** - * Scrolling settings for a table. - * @namespace - */ - "oScroll": { - /** - * Indicate if DataTables should be allowed to set the padding / margin - * etc for the scrolling header elements or not. Typically you will want - * this. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type boolean - */ - "bAutoCss": null, - - /** - * When the table is shorter in height than sScrollY, collapse the - * table container down to the height of the table (when true). - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type boolean - */ - "bCollapse": null, - - /** - * Infinite scrolling enablement flag. Now deprecated in favour of - * using the Scroller plug-in. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type boolean - */ - "bInfinite": null, - - /** - * Width of the scrollbar for the web-browser's platform. Calculated - * during table initialisation. - * @type int - * @default 0 - */ - "iBarWidth": 0, - - /** - * Space (in pixels) between the bottom of the scrolling container and - * the bottom of the scrolling viewport before the next page is loaded - * when using infinite scrolling. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type int - */ - "iLoadGap": null, - - /** - * Viewport width for horizontal scrolling. Horizontal scrolling is - * disabled if an empty string. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type string - */ - "sX": null, - - /** - * Width to expand the table to when using x-scrolling. Typically you - * should not need to use this. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type string - * @deprecated - */ - "sXInner": null, - - /** - * Viewport height for vertical scrolling. Vertical scrolling is disabled - * if an empty string. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type string - */ - "sY": null - }, - - /** - * Language information for the table. - * @namespace - * @extends DataTable.defaults.oLanguage - */ - "oLanguage": { - /** - * Information callback function. See - * {@link DataTable.defaults.fnInfoCallback} - * @type function - * @default null - */ - "fnInfoCallback": null - }, - - /** - * Browser support parameters - * @namespace - */ - "oBrowser": { - /** - * Indicate if the browser incorrectly calculates width:100% inside a - * scrolling element (IE6/7) - * @type boolean - * @default false - */ - "bScrollOversize": false - }, - - /** - * Array referencing the nodes which are used for the features. The - * parameters of this object match what is allowed by sDom - i.e. - *
      - *
    • 'l' - Length changing
    • - *
    • 'f' - Filtering input
    • - *
    • 't' - The table!
    • - *
    • 'i' - Information
    • - *
    • 'p' - Pagination
    • - *
    • 'r' - pRocessing
    • - *
    - * @type array - * @default [] - */ - "aanFeatures": [], - - /** - * Store data information - see {@link DataTable.models.oRow} for detailed - * information. - * @type array - * @default [] - */ - "aoData": [], - - /** - * Array of indexes which are in the current display (after filtering etc) - * @type array - * @default [] - */ - "aiDisplay": [], - - /** - * Array of indexes for display - no filtering - * @type array - * @default [] - */ - "aiDisplayMaster": [], - - /** - * Store information about each column that is in use - * @type array - * @default [] - */ - "aoColumns": [], - - /** - * Store information about the table's header - * @type array - * @default [] - */ - "aoHeader": [], - - /** - * Store information about the table's footer - * @type array - * @default [] - */ - "aoFooter": [], - - /** - * Search data array for regular expression searching - * @type array - * @default [] - */ - "asDataSearch": [], - - /** - * Store the applied global search information in case we want to force a - * research or compare the old search to a new one. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @namespace - * @extends DataTable.models.oSearch - */ - "oPreviousSearch": {}, - - /** - * Store the applied search for each column - see - * {@link DataTable.models.oSearch} for the format that is used for the - * filtering information for each column. - * @type array - * @default [] - */ - "aoPreSearchCols": [], - - /** - * Sorting that is applied to the table. Note that the inner arrays are - * used in the following manner: - *
      - *
    • Index 0 - column number
    • - *
    • Index 1 - current sorting direction
    • - *
    • Index 2 - index of asSorting for this column
    • - *
    - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type array - * @todo These inner arrays should really be objects - */ - "aaSorting": null, - - /** - * Sorting that is always applied to the table (i.e. prefixed in front of - * aaSorting). - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type array|null - * @default null - */ - "aaSortingFixed": null, - - /** - * Classes to use for the striping of a table. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type array - * @default [] - */ - "asStripeClasses": null, - - /** - * If restoring a table - we should restore its striping classes as well - * @type array - * @default [] - */ - "asDestroyStripes": [], - - /** - * If restoring a table - we should restore its width - * @type int - * @default 0 - */ - "sDestroyWidth": 0, - - /** - * Callback functions array for every time a row is inserted (i.e. on a draw). - * @type array - * @default [] - */ - "aoRowCallback": [], - - /** - * Callback functions for the header on each draw. - * @type array - * @default [] - */ - "aoHeaderCallback": [], - - /** - * Callback function for the footer on each draw. - * @type array - * @default [] - */ - "aoFooterCallback": [], - - /** - * Array of callback functions for draw callback functions - * @type array - * @default [] - */ - "aoDrawCallback": [], - - /** - * Array of callback functions for row created function - * @type array - * @default [] - */ - "aoRowCreatedCallback": [], - - /** - * Callback functions for just before the table is redrawn. A return of - * false will be used to cancel the draw. - * @type array - * @default [] - */ - "aoPreDrawCallback": [], - - /** - * Callback functions for when the table has been initialised. - * @type array - * @default [] - */ - "aoInitComplete": [], - - - /** - * Callbacks for modifying the settings to be stored for state saving, prior to - * saving state. - * @type array - * @default [] - */ - "aoStateSaveParams": [], - - /** - * Callbacks for modifying the settings that have been stored for state saving - * prior to using the stored values to restore the state. - * @type array - * @default [] - */ - "aoStateLoadParams": [], - - /** - * Callbacks for operating on the settings object once the saved state has been - * loaded - * @type array - * @default [] - */ - "aoStateLoaded": [], - - /** - * Cache the table ID for quick access - * @type string - * @default Empty string - */ - "sTableId": "", - - /** - * The TABLE node for the main table - * @type node - * @default null - */ - "nTable": null, - - /** - * Permanent ref to the thead element - * @type node - * @default null - */ - "nTHead": null, - - /** - * Permanent ref to the tfoot element - if it exists - * @type node - * @default null - */ - "nTFoot": null, - - /** - * Permanent ref to the tbody element - * @type node - * @default null - */ - "nTBody": null, - - /** - * Cache the wrapper node (contains all DataTables controlled elements) - * @type node - * @default null - */ - "nTableWrapper": null, - - /** - * Indicate if when using server-side processing the loading of data - * should be deferred until the second draw. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type boolean - * @default false - */ - "bDeferLoading": false, - - /** - * Indicate if all required information has been read in - * @type boolean - * @default false - */ - "bInitialised": false, - - /** - * Information about open rows. Each object in the array has the parameters - * 'nTr' and 'nParent' - * @type array - * @default [] - */ - "aoOpenRows": [], - - /** - * Dictate the positioning of DataTables' control elements - see - * {@link DataTable.model.oInit.sDom}. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type string - * @default null - */ - "sDom": null, - - /** - * Which type of pagination should be used. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type string - * @default two_button - */ - "sPaginationType": "two_button", - - /** - * The cookie duration (for bStateSave) in seconds. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type int - * @default 0 - */ - "iCookieDuration": 0, - - /** - * The cookie name prefix. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type string - * @default Empty string - */ - "sCookiePrefix": "", - - /** - * Callback function for cookie creation. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type function - * @default null - */ - "fnCookieCallback": null, - - /** - * Array of callback functions for state saving. Each array element is an - * object with the following parameters: - *
      - *
    • function:fn - function to call. Takes two parameters, oSettings - * and the JSON string to save that has been thus far created. Returns - * a JSON string to be inserted into a json object - * (i.e. '"param": [ 0, 1, 2]')
    • - *
    • string:sName - name of callback
    • - *
    - * @type array - * @default [] - */ - "aoStateSave": [], - - /** - * Array of callback functions for state loading. Each array element is an - * object with the following parameters: - *
      - *
    • function:fn - function to call. Takes two parameters, oSettings - * and the object stored. May return false to cancel state loading
    • - *
    • string:sName - name of callback
    • - *
    - * @type array - * @default [] - */ - "aoStateLoad": [], - - /** - * State that was loaded from the cookie. Useful for back reference - * @type object - * @default null - */ - "oLoadedState": null, - - /** - * Source url for AJAX data for the table. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type string - * @default null - */ - "sAjaxSource": null, - - /** - * Property from a given object from which to read the table data from. This - * can be an empty string (when not server-side processing), in which case - * it is assumed an an array is given directly. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type string - */ - "sAjaxDataProp": null, - - /** - * Note if draw should be blocked while getting data - * @type boolean - * @default true - */ - "bAjaxDataGet": true, - - /** - * The last jQuery XHR object that was used for server-side data gathering. - * This can be used for working with the XHR information in one of the - * callbacks - * @type object - * @default null - */ - "jqXHR": null, - - /** - * Function to get the server-side data. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type function - */ - "fnServerData": null, - - /** - * Functions which are called prior to sending an Ajax request so extra - * parameters can easily be sent to the server - * @type array - * @default [] - */ - "aoServerParams": [], - - /** - * Send the XHR HTTP method - GET or POST (could be PUT or DELETE if - * required). - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type string - */ - "sServerMethod": null, - - /** - * Format numbers for display. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type function - */ - "fnFormatNumber": null, - - /** - * List of options that can be used for the user selectable length menu. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type array - * @default [] - */ - "aLengthMenu": null, - - /** - * Counter for the draws that the table does. Also used as a tracker for - * server-side processing - * @type int - * @default 0 - */ - "iDraw": 0, - - /** - * Indicate if a redraw is being done - useful for Ajax - * @type boolean - * @default false - */ - "bDrawing": false, - - /** - * Draw index (iDraw) of the last error when parsing the returned data - * @type int - * @default -1 - */ - "iDrawError": -1, - - /** - * Paging display length - * @type int - * @default 10 - */ - "_iDisplayLength": 10, - - /** - * Paging start point - aiDisplay index - * @type int - * @default 0 - */ - "_iDisplayStart": 0, - - /** - * Paging end point - aiDisplay index. Use fnDisplayEnd rather than - * this property to get the end point - * @type int - * @default 10 - * @private - */ - "_iDisplayEnd": 10, - - /** - * Server-side processing - number of records in the result set - * (i.e. before filtering), Use fnRecordsTotal rather than - * this property to get the value of the number of records, regardless of - * the server-side processing setting. - * @type int - * @default 0 - * @private - */ - "_iRecordsTotal": 0, - - /** - * Server-side processing - number of records in the current display set - * (i.e. after filtering). Use fnRecordsDisplay rather than - * this property to get the value of the number of records, regardless of - * the server-side processing setting. - * @type boolean - * @default 0 - * @private - */ - "_iRecordsDisplay": 0, - - /** - * Flag to indicate if jQuery UI marking and classes should be used. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type boolean - */ - "bJUI": null, - - /** - * The classes to use for the table - * @type object - * @default {} - */ - "oClasses": {}, - - /** - * Flag attached to the settings object so you can check in the draw - * callback if filtering has been done in the draw. Deprecated in favour of - * events. - * @type boolean - * @default false - * @deprecated - */ - "bFiltered": false, - - /** - * Flag attached to the settings object so you can check in the draw - * callback if sorting has been done in the draw. Deprecated in favour of - * events. - * @type boolean - * @default false - * @deprecated - */ - "bSorted": false, - - /** - * Indicate that if multiple rows are in the header and there is more than - * one unique cell per column, if the top one (true) or bottom one (false) - * should be used for sorting / title by DataTables. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type boolean - */ - "bSortCellsTop": null, - - /** - * Initialisation object that is used for the table - * @type object - * @default null - */ - "oInit": null, - - /** - * Destroy callback functions - for plug-ins to attach themselves to the - * destroy so they can clean up markup and events. - * @type array - * @default [] - */ - "aoDestroyCallback": [], - - - /** - * Get the number of records in the current record set, before filtering - * @type function - */ - "fnRecordsTotal": function () - { - if ( this.oFeatures.bServerSide ) { - return parseInt(this._iRecordsTotal, 10); - } else { - return this.aiDisplayMaster.length; - } - }, - - /** - * Get the number of records in the current record set, after filtering - * @type function - */ - "fnRecordsDisplay": function () - { - if ( this.oFeatures.bServerSide ) { - return parseInt(this._iRecordsDisplay, 10); - } else { - return this.aiDisplay.length; - } - }, - - /** - * Set the display end point - aiDisplay index - * @type function - * @todo Should do away with _iDisplayEnd and calculate it on-the-fly here - */ - "fnDisplayEnd": function () - { - if ( this.oFeatures.bServerSide ) { - if ( this.oFeatures.bPaginate === false || this._iDisplayLength == -1 ) { - return this._iDisplayStart+this.aiDisplay.length; - } else { - return Math.min( this._iDisplayStart+this._iDisplayLength, - this._iRecordsDisplay ); - } - } else { - return this._iDisplayEnd; - } - }, - - /** - * The DataTables object for this table - * @type object - * @default null - */ - "oInstance": null, - - /** - * Unique identifier for each instance of the DataTables object. If there - * is an ID on the table node, then it takes that value, otherwise an - * incrementing internal counter is used. - * @type string - * @default null - */ - "sInstance": null, - - /** - * tabindex attribute value that is added to DataTables control elements, allowing - * keyboard navigation of the table and its controls. - */ - "iTabIndex": 0, - - /** - * DIV container for the footer scrolling table if scrolling - */ - "nScrollHead": null, - - /** - * DIV container for the footer scrolling table if scrolling - */ - "nScrollFoot": null - }; - - /** - * Extension object for DataTables that is used to provide all extension options. - * - * Note that the DataTable.ext object is available through - * jQuery.fn.dataTable.ext where it may be accessed and manipulated. It is - * also aliased to jQuery.fn.dataTableExt for historic reasons. - * @namespace - * @extends DataTable.models.ext - */ - DataTable.ext = $.extend( true, {}, DataTable.models.ext ); - - $.extend( DataTable.ext.oStdClasses, { - "sTable": "dataTable", - - /* Two buttons buttons */ - "sPagePrevEnabled": "paginate_enabled_previous", - "sPagePrevDisabled": "paginate_disabled_previous", - "sPageNextEnabled": "paginate_enabled_next", - "sPageNextDisabled": "paginate_disabled_next", - "sPageJUINext": "", - "sPageJUIPrev": "", - - /* Full numbers paging buttons */ - "sPageButton": "paginate_button", - "sPageButtonActive": "paginate_active", - "sPageButtonStaticDisabled": "paginate_button paginate_button_disabled", - "sPageFirst": "first", - "sPagePrevious": "previous", - "sPageNext": "next", - "sPageLast": "last", - - /* Striping classes */ - "sStripeOdd": "odd", - "sStripeEven": "even", - - /* Empty row */ - "sRowEmpty": "dataTables_empty", - - /* Features */ - "sWrapper": "dataTables_wrapper", - "sFilter": "dataTables_filter", - "sInfo": "dataTables_info", - "sPaging": "dataTables_paginate paging_", /* Note that the type is postfixed */ - "sLength": "dataTables_length", - "sProcessing": "dataTables_processing", - - /* Sorting */ - "sSortAsc": "sorting_asc", - "sSortDesc": "sorting_desc", - "sSortable": "sorting", /* Sortable in both directions */ - "sSortableAsc": "sorting_asc_disabled", - "sSortableDesc": "sorting_desc_disabled", - "sSortableNone": "sorting_disabled", - "sSortColumn": "sorting_", /* Note that an int is postfixed for the sorting order */ - "sSortJUIAsc": "", - "sSortJUIDesc": "", - "sSortJUI": "", - "sSortJUIAscAllowed": "", - "sSortJUIDescAllowed": "", - "sSortJUIWrapper": "", - "sSortIcon": "", - - /* Scrolling */ - "sScrollWrapper": "dataTables_scroll", - "sScrollHead": "dataTables_scrollHead", - "sScrollHeadInner": "dataTables_scrollHeadInner", - "sScrollBody": "dataTables_scrollBody", - "sScrollFoot": "dataTables_scrollFoot", - "sScrollFootInner": "dataTables_scrollFootInner", - - /* Misc */ - "sFooterTH": "", - "sJUIHeader": "", - "sJUIFooter": "" - } ); - - - $.extend( DataTable.ext.oJUIClasses, DataTable.ext.oStdClasses, { - /* Two buttons buttons */ - "sPagePrevEnabled": "fg-button ui-button ui-state-default ui-corner-left", - "sPagePrevDisabled": "fg-button ui-button ui-state-default ui-corner-left ui-state-disabled", - "sPageNextEnabled": "fg-button ui-button ui-state-default ui-corner-right", - "sPageNextDisabled": "fg-button ui-button ui-state-default ui-corner-right ui-state-disabled", - "sPageJUINext": "ui-icon ui-icon-circle-arrow-e", - "sPageJUIPrev": "ui-icon ui-icon-circle-arrow-w", - - /* Full numbers paging buttons */ - "sPageButton": "fg-button ui-button ui-state-default", - "sPageButtonActive": "fg-button ui-button ui-state-default ui-state-disabled", - "sPageButtonStaticDisabled": "fg-button ui-button ui-state-default ui-state-disabled", - "sPageFirst": "first ui-corner-tl ui-corner-bl", - "sPageLast": "last ui-corner-tr ui-corner-br", - - /* Features */ - "sPaging": "dataTables_paginate fg-buttonset ui-buttonset fg-buttonset-multi "+ - "ui-buttonset-multi paging_", /* Note that the type is postfixed */ - - /* Sorting */ - "sSortAsc": "ui-state-default", - "sSortDesc": "ui-state-default", - "sSortable": "ui-state-default", - "sSortableAsc": "ui-state-default", - "sSortableDesc": "ui-state-default", - "sSortableNone": "ui-state-default", - "sSortJUIAsc": "css_right ui-icon ui-icon-triangle-1-n", - "sSortJUIDesc": "css_right ui-icon ui-icon-triangle-1-s", - "sSortJUI": "css_right ui-icon ui-icon-carat-2-n-s", - "sSortJUIAscAllowed": "css_right ui-icon ui-icon-carat-1-n", - "sSortJUIDescAllowed": "css_right ui-icon ui-icon-carat-1-s", - "sSortJUIWrapper": "DataTables_sort_wrapper", - "sSortIcon": "DataTables_sort_icon", - - /* Scrolling */ - "sScrollHead": "dataTables_scrollHead ui-state-default", - "sScrollFoot": "dataTables_scrollFoot ui-state-default", - - /* Misc */ - "sFooterTH": "ui-state-default", - "sJUIHeader": "fg-toolbar ui-toolbar ui-widget-header ui-corner-tl ui-corner-tr ui-helper-clearfix", - "sJUIFooter": "fg-toolbar ui-toolbar ui-widget-header ui-corner-bl ui-corner-br ui-helper-clearfix" - } ); - - /* - * Variable: oPagination - * Purpose: - * Scope: jQuery.fn.dataTableExt - */ - $.extend( DataTable.ext.oPagination, { - /* - * Variable: two_button - * Purpose: Standard two button (forward/back) pagination - * Scope: jQuery.fn.dataTableExt.oPagination - */ - "two_button": { - /* - * Function: oPagination.two_button.fnInit - * Purpose: Initialise dom elements required for pagination with forward/back buttons only - * Returns: - - * Inputs: object:oSettings - dataTables settings object - * node:nPaging - the DIV which contains this pagination control - * function:fnCallbackDraw - draw function which must be called on update - */ - "fnInit": function ( oSettings, nPaging, fnCallbackDraw ) - { - var oLang = oSettings.oLanguage.oPaginate; - var oClasses = oSettings.oClasses; - var fnClickHandler = function ( e ) { - if ( oSettings.oApi._fnPageChange( oSettings, e.data.action ) ) - { - fnCallbackDraw( oSettings ); - } - }; - - var sAppend = (!oSettings.bJUI) ? - ''+oLang.sPrevious+''+ - ''+oLang.sNext+'' - : - ''+ - ''; - $(nPaging).append( sAppend ); - - var els = $('a', nPaging); - var nPrevious = els[0], - nNext = els[1]; - - oSettings.oApi._fnBindAction( nPrevious, {action: "previous"}, fnClickHandler ); - oSettings.oApi._fnBindAction( nNext, {action: "next"}, fnClickHandler ); - - /* ID the first elements only */ - if ( !oSettings.aanFeatures.p ) - { - nPaging.id = oSettings.sTableId+'_paginate'; - nPrevious.id = oSettings.sTableId+'_previous'; - nNext.id = oSettings.sTableId+'_next'; - - nPrevious.setAttribute('aria-controls', oSettings.sTableId); - nNext.setAttribute('aria-controls', oSettings.sTableId); - } - }, - - /* - * Function: oPagination.two_button.fnUpdate - * Purpose: Update the two button pagination at the end of the draw - * Returns: - - * Inputs: object:oSettings - dataTables settings object - * function:fnCallbackDraw - draw function to call on page change - */ - "fnUpdate": function ( oSettings, fnCallbackDraw ) - { - if ( !oSettings.aanFeatures.p ) - { - return; - } - - var oClasses = oSettings.oClasses; - var an = oSettings.aanFeatures.p; - var nNode; - - /* Loop over each instance of the pager */ - for ( var i=0, iLen=an.length ; i'+oLang.sFirst+''+ - ''+oLang.sPrevious+''+ - ''+ - ''+oLang.sNext+''+ - ''+oLang.sLast+'' - ); - var els = $('a', nPaging); - var nFirst = els[0], - nPrev = els[1], - nNext = els[2], - nLast = els[3]; - - oSettings.oApi._fnBindAction( nFirst, {action: "first"}, fnClickHandler ); - oSettings.oApi._fnBindAction( nPrev, {action: "previous"}, fnClickHandler ); - oSettings.oApi._fnBindAction( nNext, {action: "next"}, fnClickHandler ); - oSettings.oApi._fnBindAction( nLast, {action: "last"}, fnClickHandler ); - - /* ID the first elements only */ - if ( !oSettings.aanFeatures.p ) - { - nPaging.id = oSettings.sTableId+'_paginate'; - nFirst.id =oSettings.sTableId+'_first'; - nPrev.id =oSettings.sTableId+'_previous'; - nNext.id =oSettings.sTableId+'_next'; - nLast.id =oSettings.sTableId+'_last'; - } - }, - - /* - * Function: oPagination.full_numbers.fnUpdate - * Purpose: Update the list of page buttons shows - * Returns: - - * Inputs: object:oSettings - dataTables settings object - * function:fnCallbackDraw - draw function to call on page change - */ - "fnUpdate": function ( oSettings, fnCallbackDraw ) - { - if ( !oSettings.aanFeatures.p ) - { - return; - } - - var iPageCount = DataTable.ext.oPagination.iFullNumbersShowPages; - var iPageCountHalf = Math.floor(iPageCount / 2); - var iPages = Math.ceil((oSettings.fnRecordsDisplay()) / oSettings._iDisplayLength); - var iCurrentPage = Math.ceil(oSettings._iDisplayStart / oSettings._iDisplayLength) + 1; - var sList = ""; - var iStartButton, iEndButton, i, iLen; - var oClasses = oSettings.oClasses; - var anButtons, anStatic, nPaginateList, nNode; - var an = oSettings.aanFeatures.p; - var fnBind = function (j) { - oSettings.oApi._fnBindAction( this, {"page": j+iStartButton-1}, function(e) { - /* Use the information in the element to jump to the required page */ - oSettings.oApi._fnPageChange( oSettings, e.data.page ); - fnCallbackDraw( oSettings ); - e.preventDefault(); - } ); - }; - - /* Pages calculation */ - if ( oSettings._iDisplayLength === -1 ) - { - iStartButton = 1; - iEndButton = 1; - iCurrentPage = 1; - } - else if (iPages < iPageCount) - { - iStartButton = 1; - iEndButton = iPages; - } - else if (iCurrentPage <= iPageCountHalf) - { - iStartButton = 1; - iEndButton = iPageCount; - } - else if (iCurrentPage >= (iPages - iPageCountHalf)) - { - iStartButton = iPages - iPageCount + 1; - iEndButton = iPages; - } - else - { - iStartButton = iCurrentPage - Math.ceil(iPageCount / 2) + 1; - iEndButton = iStartButton + iPageCount - 1; - } - - - /* Build the dynamic list */ - for ( i=iStartButton ; i<=iEndButton ; i++ ) - { - sList += (iCurrentPage !== i) ? - ''+oSettings.fnFormatNumber(i)+'' : - ''+oSettings.fnFormatNumber(i)+''; - } - - /* Loop over each instance of the pager */ - for ( i=0, iLen=an.length ; i y) ? 1 : 0)); - }, - - "string-desc": function ( x, y ) - { - return ((x < y) ? 1 : ((x > y) ? -1 : 0)); - }, - - - /* - * html sorting (ignore html tags) - */ - "html-pre": function ( a ) - { - return a.replace( /<.*?>/g, "" ).toLowerCase(); - }, - - "html-asc": function ( x, y ) - { - return ((x < y) ? -1 : ((x > y) ? 1 : 0)); - }, - - "html-desc": function ( x, y ) - { - return ((x < y) ? 1 : ((x > y) ? -1 : 0)); - }, - - - /* - * date sorting - */ - "date-pre": function ( a ) - { - var x = Date.parse( a ); - - if ( isNaN(x) || x==="" ) - { - x = Date.parse( "01/01/1970 00:00:00" ); - } - return x; - }, - - "date-asc": function ( x, y ) - { - return x - y; - }, - - "date-desc": function ( x, y ) - { - return y - x; - }, - - - /* - * numerical sorting - */ - "numeric-pre": function ( a ) - { - return (a=="-" || a==="") ? 0 : a*1; - }, - - "numeric-asc": function ( x, y ) - { - return x - y; - }, - - "numeric-desc": function ( x, y ) - { - return y - x; - } - } ); - - - $.extend( DataTable.ext.aTypes, [ - /* - * Function: - - * Purpose: Check to see if a string is numeric - * Returns: string:'numeric' or null - * Inputs: mixed:sText - string to check - */ - function ( sData ) - { - /* Allow zero length strings as a number */ - if ( typeof sData === 'number' ) - { - return 'numeric'; - } - else if ( typeof sData !== 'string' ) - { - return null; - } - - var sValidFirstChars = "0123456789-"; - var sValidChars = "0123456789."; - var Char; - var bDecimal = false; - - /* Check for a valid first char (no period and allow negatives) */ - Char = sData.charAt(0); - if (sValidFirstChars.indexOf(Char) == -1) - { - return null; - } - - /* Check all the other characters are valid */ - for ( var i=1 ; i') != -1 ) - { - return 'html'; - } - return null; - } - ] ); - - - // jQuery aliases - $.fn.DataTable = DataTable; - $.fn.dataTable = DataTable; - $.fn.dataTableSettings = DataTable.settings; - $.fn.dataTableExt = DataTable.ext; - - - // Information about events fired by DataTables - for documentation. - /** - * Draw event, fired whenever the table is redrawn on the page, at the same point as - * fnDrawCallback. This may be useful for binding events or performing calculations when - * the table is altered at all. - * @name DataTable#draw - * @event - * @param {event} e jQuery event object - * @param {object} o DataTables settings object {@link DataTable.models.oSettings} - */ - - /** - * Filter event, fired when the filtering applied to the table (using the build in global - * global filter, or column filters) is altered. - * @name DataTable#filter - * @event - * @param {event} e jQuery event object - * @param {object} o DataTables settings object {@link DataTable.models.oSettings} - */ - - /** - * Page change event, fired when the paging of the table is altered. - * @name DataTable#page - * @event - * @param {event} e jQuery event object - * @param {object} o DataTables settings object {@link DataTable.models.oSettings} - */ - - /** - * Sort event, fired when the sorting applied to the table is altered. - * @name DataTable#sort - * @event - * @param {event} e jQuery event object - * @param {object} o DataTables settings object {@link DataTable.models.oSettings} - */ - - /** - * DataTables initialisation complete event, fired when the table is fully drawn, - * including Ajax data loaded, if Ajax data is required. - * @name DataTable#init - * @event - * @param {event} e jQuery event object - * @param {object} oSettings DataTables settings object - * @param {object} json The JSON object request from the server - only - * present if client-side Ajax sourced data is used
  • - */ - - /** - * State save event, fired when the table has changed state a new state save is required. - * This method allows modification of the state saving object prior to actually doing the - * save, including addition or other state properties (for plug-ins) or modification - * of a DataTables core property. - * @name DataTable#stateSaveParams - * @event - * @param {event} e jQuery event object - * @param {object} oSettings DataTables settings object - * @param {object} json The state information to be saved - */ - - /** - * State load event, fired when the table is loading state from the stored data, but - * prior to the settings object being modified by the saved state - allowing modification - * of the saved state is required or loading of state for a plug-in. - * @name DataTable#stateLoadParams - * @event - * @param {event} e jQuery event object - * @param {object} oSettings DataTables settings object - * @param {object} json The saved state information - */ - - /** - * State loaded event, fired when state has been loaded from stored data and the settings - * object has been modified by the loaded data. - * @name DataTable#stateLoaded - * @event - * @param {event} e jQuery event object - * @param {object} oSettings DataTables settings object - * @param {object} json The saved state information - */ - - /** - * Processing event, fired when DataTables is doing some kind of processing (be it, - * sort, filter or anything else). Can be used to indicate to the end user that - * there is something happening, or that something has finished. - * @name DataTable#processing - * @event - * @param {event} e jQuery event object - * @param {object} oSettings DataTables settings object - * @param {boolean} bShow Flag for if DataTables is doing processing or not - */ - - /** - * Ajax (XHR) event, fired whenever an Ajax request is completed from a request to - * made to the server for new data (note that this trigger is called in fnServerData, - * if you override fnServerData and which to use this event, you need to trigger it in - * you success function). - * @name DataTable#xhr - * @event - * @param {event} e jQuery event object - * @param {object} o DataTables settings object {@link DataTable.models.oSettings} - * @param {object} json JSON returned from the server - */ - - /** - * Destroy event, fired when the DataTable is destroyed by calling fnDestroy or passing - * the bDestroy:true parameter in the initialisation object. This can be used to remove - * bound events, added DOM nodes, etc. - * @name DataTable#destroy - * @event - * @param {event} e jQuery event object - * @param {object} o DataTables settings object {@link DataTable.models.oSettings} - */ -})); - -}(window, document)); - diff --git a/openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/jquery.dataTables-1.9.4.min.js b/openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/jquery.dataTables-1.9.4.min.js deleted file mode 100644 index c73ad54c..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/jquery.dataTables-1.9.4.min.js +++ /dev/null @@ -1,155 +0,0 @@ -/* - * File: jquery.dataTables.min.js - * Version: 1.9.4 - * Author: Allan Jardine (www.sprymedia.co.uk) - * Info: www.datatables.net - * - * Copyright 2008-2012 Allan Jardine, all rights reserved. - * - * This source file is free software, under either the GPL v2 license or a - * BSD style license, available at: - * http://datatables.net/license_gpl2 - * http://datatables.net/license_bsd - * - * This source file is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details. - */ -(function(X,l,n){var L=function(h){var j=function(e){function o(a,b){var c=j.defaults.columns,d=a.aoColumns.length,c=h.extend({},j.models.oColumn,c,{sSortingClass:a.oClasses.sSortable,sSortingClassJUI:a.oClasses.sSortJUI,nTh:b?b:l.createElement("th"),sTitle:c.sTitle?c.sTitle:b?b.innerHTML:"",aDataSort:c.aDataSort?c.aDataSort:[d],mData:c.mData?c.oDefaults:d});a.aoColumns.push(c);if(a.aoPreSearchCols[d]===n||null===a.aoPreSearchCols[d])a.aoPreSearchCols[d]=h.extend({},j.models.oSearch);else if(c=a.aoPreSearchCols[d], -c.bRegex===n&&(c.bRegex=!0),c.bSmart===n&&(c.bSmart=!0),c.bCaseInsensitive===n)c.bCaseInsensitive=!0;m(a,d,null)}function m(a,b,c){var d=a.aoColumns[b];c!==n&&null!==c&&(c.mDataProp&&!c.mData&&(c.mData=c.mDataProp),c.sType!==n&&(d.sType=c.sType,d._bAutoType=!1),h.extend(d,c),p(d,c,"sWidth","sWidthOrig"),c.iDataSort!==n&&(d.aDataSort=[c.iDataSort]),p(d,c,"aDataSort"));var i=d.mRender?Q(d.mRender):null,f=Q(d.mData);d.fnGetData=function(a,b){var c=f(a,b);return d.mRender&&b&&""!==b?i(c,b,a):c};d.fnSetData= -L(d.mData);a.oFeatures.bSort||(d.bSortable=!1);!d.bSortable||-1==h.inArray("asc",d.asSorting)&&-1==h.inArray("desc",d.asSorting)?(d.sSortingClass=a.oClasses.sSortableNone,d.sSortingClassJUI=""):-1==h.inArray("asc",d.asSorting)&&-1==h.inArray("desc",d.asSorting)?(d.sSortingClass=a.oClasses.sSortable,d.sSortingClassJUI=a.oClasses.sSortJUI):-1!=h.inArray("asc",d.asSorting)&&-1==h.inArray("desc",d.asSorting)?(d.sSortingClass=a.oClasses.sSortableAsc,d.sSortingClassJUI=a.oClasses.sSortJUIAscAllowed):-1== -h.inArray("asc",d.asSorting)&&-1!=h.inArray("desc",d.asSorting)&&(d.sSortingClass=a.oClasses.sSortableDesc,d.sSortingClassJUI=a.oClasses.sSortJUIDescAllowed)}function k(a){if(!1===a.oFeatures.bAutoWidth)return!1;da(a);for(var b=0,c=a.aoColumns.length;bj[f])d(a.aoColumns.length+j[f],b[i]);else if("string"===typeof j[f]){e=0;for(w=a.aoColumns.length;eb&&a[d]--; -1!=c&&a.splice(c,1)}function S(a,b,c){var d=a.aoColumns[c];return d.fnRender({iDataRow:b,iDataColumn:c,oSettings:a,aData:a.aoData[b]._aData,mDataProp:d.mData},v(a,b,c,"display"))}function ea(a,b){var c=a.aoData[b],d;if(null===c.nTr){c.nTr=l.createElement("tr");c.nTr._DT_RowIndex=b;c._aData.DT_RowId&&(c.nTr.id=c._aData.DT_RowId);c._aData.DT_RowClass&& -(c.nTr.className=c._aData.DT_RowClass);for(var i=0,f=a.aoColumns.length;i=a.fnRecordsDisplay()?0:a.iInitDisplayStart,a.iInitDisplayStart=-1,y(a));if(a.bDeferLoading)a.bDeferLoading=!1,a.iDraw++;else if(a.oFeatures.bServerSide){if(!a.bDestroying&&!wa(a))return}else a.iDraw++;if(0!==a.aiDisplay.length){var g= -a._iDisplayStart;d=a._iDisplayEnd;a.oFeatures.bServerSide&&(g=0,d=a.aoData.length);for(;g")[0];a.nTable.parentNode.insertBefore(b,a.nTable);a.nTableWrapper=h('
    ')[0];a.nTableReinsertBefore=a.nTable.nextSibling;for(var c=a.nTableWrapper,d=a.sDom.split(""),i,f,g,e,w,o,k,m=0;m")[0];w=d[m+ -1];if("'"==w||'"'==w){o="";for(k=2;d[m+k]!=w;)o+=d[m+k],k++;"H"==o?o=a.oClasses.sJUIHeader:"F"==o&&(o=a.oClasses.sJUIFooter);-1!=o.indexOf(".")?(w=o.split("."),e.id=w[0].substr(1,w[0].length-1),e.className=w[1]):"#"==o.charAt(0)?e.id=o.substr(1,o.length-1):e.className=o;m+=k}c.appendChild(e);c=e}else if(">"==g)c=c.parentNode;else if("l"==g&&a.oFeatures.bPaginate&&a.oFeatures.bLengthChange)i=ya(a),f=1;else if("f"==g&&a.oFeatures.bFilter)i=za(a),f=1;else if("r"==g&&a.oFeatures.bProcessing)i=Aa(a),f= -1;else if("t"==g)i=Ba(a),f=1;else if("i"==g&&a.oFeatures.bInfo)i=Ca(a),f=1;else if("p"==g&&a.oFeatures.bPaginate)i=Da(a),f=1;else if(0!==j.ext.aoFeatures.length){e=j.ext.aoFeatures;k=0;for(w=e.length;k'):""===c?'':c+' ',d=l.createElement("div");d.className=a.oClasses.sFilter;d.innerHTML="";a.aanFeatures.f||(d.id=a.sTableId+"_filter");c=h('input[type="text"]',d);d._DT_Input=c[0];c.val(b.sSearch.replace('"',"""));c.bind("keyup.DT",function(){for(var c=a.aanFeatures.f,d=this.value===""?"":this.value, -g=0,e=c.length;g=b.length)a.aiDisplay.splice(0,a.aiDisplay.length),a.aiDisplay=a.aiDisplayMaster.slice();else if(a.aiDisplay.length==a.aiDisplayMaster.length||i.sSearch.length>b.length||1==c||0!==b.indexOf(i.sSearch)){a.aiDisplay.splice(0, -a.aiDisplay.length);la(a,1);for(b=0;b").html(c).text()); -return c.replace(/[\n\r]/g," ")}function ma(a,b,c,d){if(c)return a=b?a.split(" "):oa(a).split(" "),a="^(?=.*?"+a.join(")(?=.*?")+").*$",RegExp(a,d?"i":"");a=b?a:oa(a);return RegExp(a,d?"i":"")}function Ja(a,b){return"function"===typeof j.ext.ofnSearch[b]?j.ext.ofnSearch[b](a):null===a?"":"html"==b?a.replace(/[\r\n]/g," ").replace(/<.*?>/g,""):"string"===typeof a?a.replace(/[\r\n]/g," "):a}function oa(a){return a.replace(RegExp("(\\/|\\.|\\*|\\+|\\?|\\||\\(|\\)|\\[|\\]|\\{|\\}|\\\\|\\$|\\^|\\-)","g"), -"\\$1")}function Ca(a){var b=l.createElement("div");b.className=a.oClasses.sInfo;a.aanFeatures.i||(a.aoDrawCallback.push({fn:Ka,sName:"information"}),b.id=a.sTableId+"_info");a.nTable.setAttribute("aria-describedby",a.sTableId+"_info");return b}function Ka(a){if(a.oFeatures.bInfo&&0!==a.aanFeatures.i.length){var b=a.oLanguage,c=a._iDisplayStart+1,d=a.fnDisplayEnd(),i=a.fnRecordsTotal(),f=a.fnRecordsDisplay(),g;g=0===f?b.sInfoEmpty:b.sInfo;f!=i&&(g+=" "+b.sInfoFiltered);g+=b.sInfoPostFix;g=ja(a,g); -null!==b.fnInfoCallback&&(g=b.fnInfoCallback.call(a.oInstance,a,c,d,i,f,g));a=a.aanFeatures.i;b=0;for(c=a.length;b",c,d,i=a.aLengthMenu;if(2==i.length&&"object"===typeof i[0]&&"object"===typeof i[1]){c=0;for(d=i[0].length;c'+i[1][c]+""}else{c=0;for(d=i.length;c'+i[c]+""}b+="";i=l.createElement("div");a.aanFeatures.l|| -(i.id=a.sTableId+"_length");i.className=a.oClasses.sLength;i.innerHTML="";h('select option[value="'+a._iDisplayLength+'"]',i).attr("selected",!0);h("select",i).bind("change.DT",function(){var b=h(this).val(),i=a.aanFeatures.l;c=0;for(d=i.length;ca.aiDisplay.length||-1==a._iDisplayLength?a.aiDisplay.length:a._iDisplayStart+a._iDisplayLength}function Da(a){if(a.oScroll.bInfinite)return null;var b=l.createElement("div");b.className=a.oClasses.sPaging+a.sPaginationType;j.ext.oPagination[a.sPaginationType].fnInit(a, -b,function(a){y(a);x(a)});a.aanFeatures.p||a.aoDrawCallback.push({fn:function(a){j.ext.oPagination[a.sPaginationType].fnUpdate(a,function(a){y(a);x(a)})},sName:"pagination"});return b}function qa(a,b){var c=a._iDisplayStart;if("number"===typeof b)a._iDisplayStart=b*a._iDisplayLength,a._iDisplayStart>a.fnRecordsDisplay()&&(a._iDisplayStart=0);else if("first"==b)a._iDisplayStart=0;else if("previous"==b)a._iDisplayStart=0<=a._iDisplayLength?a._iDisplayStart-a._iDisplayLength:0,0>a._iDisplayStart&&(a._iDisplayStart= -0);else if("next"==b)0<=a._iDisplayLength?a._iDisplayStart+a._iDisplayLengthh(a.nTable).height()-a.oScroll.iLoadGap&&a.fnDisplayEnd()d.offsetHeight||"scroll"==h(d).css("overflow-y")))a.nTable.style.width=q(h(a.nTable).outerWidth()-a.oScroll.iBarWidth)}else""!==a.oScroll.sXInner?a.nTable.style.width= -q(a.oScroll.sXInner):i==h(d).width()&&h(d).height()i-a.oScroll.iBarWidth&&(a.nTable.style.width=q(i))):a.nTable.style.width=q(i);i=h(a.nTable).outerWidth();C(s,e);C(function(a){p.push(q(h(a).width()))},e);C(function(a,b){a.style.width=p[b]},g);h(e).height(0);null!==a.nTFoot&&(C(s,j),C(function(a){n.push(q(h(a).width()))},j),C(function(a,b){a.style.width=n[b]},o),h(j).height(0));C(function(a,b){a.innerHTML= -"";a.style.width=p[b]},e);null!==a.nTFoot&&C(function(a,b){a.innerHTML="";a.style.width=n[b]},j);if(h(a.nTable).outerWidth()d.offsetHeight||"scroll"==h(d).css("overflow-y")?i+a.oScroll.iBarWidth:i;if(r&&(d.scrollHeight>d.offsetHeight||"scroll"==h(d).css("overflow-y")))a.nTable.style.width=q(g-a.oScroll.iBarWidth);d.style.width=q(g);a.nScrollHead.style.width=q(g);null!==a.nTFoot&&(a.nScrollFoot.style.width=q(g));""===a.oScroll.sX?D(a,1,"The table cannot fit into the current element which will cause column misalignment. The table has been drawn at its minimum possible width."): -""!==a.oScroll.sXInner&&D(a,1,"The table cannot fit into the current element which will cause column misalignment. Increase the sScrollXInner value or remove it to allow automatic calculation")}else d.style.width=q("100%"),a.nScrollHead.style.width=q("100%"),null!==a.nTFoot&&(a.nScrollFoot.style.width=q("100%"));""===a.oScroll.sY&&r&&(d.style.height=q(a.nTable.offsetHeight+a.oScroll.iBarWidth));""!==a.oScroll.sY&&a.oScroll.bCollapse&&(d.style.height=q(a.oScroll.sY),r=""!==a.oScroll.sX&&a.nTable.offsetWidth> -d.offsetWidth?a.oScroll.iBarWidth:0,a.nTable.offsetHeightd.clientHeight||"scroll"==h(d).css("overflow-y");b.style.paddingRight=c?a.oScroll.iBarWidth+"px":"0px";null!==a.nTFoot&&(R.style.width=q(r),l.style.width=q(r),l.style.paddingRight=c?a.oScroll.iBarWidth+"px":"0px");h(d).scroll();if(a.bSorted||a.bFiltered)d.scrollTop=0}function C(a,b,c){for(var d= -0,i=0,f=b.length,g,e;itd",b));j=N(a,f);for(f=d=0;fc)return null;if(null===a.aoData[c].nTr){var d=l.createElement("td");d.innerHTML=v(a,c,b,"");return d}return J(a,c)[b]}function Pa(a,b){for(var c=-1,d=-1,i=0;i/g,"");e.length>c&&(c=e.length,d=i)}return d}function q(a){if(null===a)return"0px";if("number"==typeof a)return 0>a?"0px":a+"px";var b=a.charCodeAt(a.length-1); -return 48>b||57/g,""),i=q[c].nTh,i.removeAttribute("aria-sort"),i.removeAttribute("aria-label"),q[c].bSortable?0d&&d++;f=RegExp(f+"[123]");var o;b=0;for(c=a.length;b
    ')[0];l.body.appendChild(b);a.oBrowser.bScrollOversize= -100===h("#DT_BrowserTest",b)[0].offsetWidth?!0:!1;l.body.removeChild(b)}function Va(a){return function(){var b=[s(this[j.ext.iApiIndex])].concat(Array.prototype.slice.call(arguments));return j.ext.oApi[a].apply(this,b)}}var U=/\[.*?\]$/,Wa=X.JSON?JSON.stringify:function(a){var b=typeof a;if("object"!==b||null===a)return"string"===b&&(a='"'+a+'"'),a+"";var c,d,e=[],f=h.isArray(a);for(c in a)d=a[c],b=typeof d,"string"===b?d='"'+d+'"':"object"===b&&null!==d&&(d=Wa(d)),e.push((f?"":'"'+c+'":')+d);return(f? -"[":"{")+e+(f?"]":"}")};this.$=function(a,b){var c,d,e=[],f;d=s(this[j.ext.iApiIndex]);var g=d.aoData,o=d.aiDisplay,k=d.aiDisplayMaster;b||(b={});b=h.extend({},{filter:"none",order:"current",page:"all"},b);if("current"==b.page){c=d._iDisplayStart;for(d=d.fnDisplayEnd();c=d.fnRecordsDisplay()&&(d._iDisplayStart-=d._iDisplayLength,0>d._iDisplayStart&&(d._iDisplayStart=0));if(c===n||c)y(d),x(d);return g};this.fnDestroy=function(a){var b=s(this[j.ext.iApiIndex]),c=b.nTableWrapper.parentNode,d=b.nTBody,i,f,a=a===n?!1:a;b.bDestroying=!0;A(b,"aoDestroyCallback","destroy",[b]);if(!a){i=0;for(f=b.aoColumns.length;itr>td."+b.oClasses.sRowEmpty,b.nTable).parent().remove();b.nTable!=b.nTHead.parentNode&&(h(b.nTable).children("thead").remove(),b.nTable.appendChild(b.nTHead));b.nTFoot&&b.nTable!=b.nTFoot.parentNode&&(h(b.nTable).children("tfoot").remove(),b.nTable.appendChild(b.nTFoot));b.nTable.parentNode.removeChild(b.nTable);h(b.nTableWrapper).remove();b.aaSorting=[];b.aaSortingFixed=[];P(b);h(T(b)).removeClass(b.asStripeClasses.join(" "));h("th, td",b.nTHead).removeClass([b.oClasses.sSortable,b.oClasses.sSortableAsc, -b.oClasses.sSortableDesc,b.oClasses.sSortableNone].join(" "));b.bJUI&&(h("th span."+b.oClasses.sSortIcon+", td span."+b.oClasses.sSortIcon,b.nTHead).remove(),h("th, td",b.nTHead).each(function(){var a=h("div."+b.oClasses.sSortJUIWrapper,this),c=a.contents();h(this).append(c);a.remove()}));!a&&b.nTableReinsertBefore?c.insertBefore(b.nTable,b.nTableReinsertBefore):a||c.appendChild(b.nTable);i=0;for(f=b.aoData.length;i=t(d);if(!m)for(e=a;et<"F"ip>')):h.extend(g.oClasses,j.ext.oStdClasses);h(this).addClass(g.oClasses.sTable);if(""!==g.oScroll.sX||""!==g.oScroll.sY)g.oScroll.iBarWidth=Qa();g.iInitDisplayStart===n&&(g.iInitDisplayStart=e.iDisplayStart, -g._iDisplayStart=e.iDisplayStart);e.bStateSave&&(g.oFeatures.bStateSave=!0,Sa(g,e),z(g,"aoDrawCallback",ra,"state_save"));null!==e.iDeferLoading&&(g.bDeferLoading=!0,a=h.isArray(e.iDeferLoading),g._iRecordsDisplay=a?e.iDeferLoading[0]:e.iDeferLoading,g._iRecordsTotal=a?e.iDeferLoading[1]:e.iDeferLoading);null!==e.aaData&&(f=!0);""!==e.oLanguage.sUrl?(g.oLanguage.sUrl=e.oLanguage.sUrl,h.getJSON(g.oLanguage.sUrl,null,function(a){pa(a);h.extend(true,g.oLanguage,e.oLanguage,a);ba(g)}),i=!0):h.extend(!0, -g.oLanguage,e.oLanguage);null===e.asStripeClasses&&(g.asStripeClasses=[g.oClasses.sStripeOdd,g.oClasses.sStripeEven]);b=g.asStripeClasses.length;g.asDestroyStripes=[];if(b){c=!1;d=h(this).children("tbody").children("tr:lt("+b+")");for(a=0;a=g.aoColumns.length&&(g.aaSorting[a][0]=0);var k=g.aoColumns[g.aaSorting[a][0]];g.aaSorting[a][2]===n&&(g.aaSorting[a][2]=0);e.aaSorting===n&&g.saved_aaSorting===n&&(g.aaSorting[a][1]= -k.asSorting[0]);c=0;for(d=k.asSorting.length;c=parseInt(n,10)};j.fnIsDataTable=function(e){for(var h=j.settings,m=0;me)return e;for(var h=e+"",e=h.split(""),j="",h=h.length,k=0;k'+k.sPrevious+''+k.sNext+"":'';h(j).append(k);var l=h("a",j), -k=l[0],l=l[1];e.oApi._fnBindAction(k,{action:"previous"},n);e.oApi._fnBindAction(l,{action:"next"},n);e.aanFeatures.p||(j.id=e.sTableId+"_paginate",k.id=e.sTableId+"_previous",l.id=e.sTableId+"_next",k.setAttribute("aria-controls",e.sTableId),l.setAttribute("aria-controls",e.sTableId))},fnUpdate:function(e){if(e.aanFeatures.p)for(var h=e.oClasses,j=e.aanFeatures.p,k,l=0,n=j.length;l'+k.sFirst+''+k.sPrevious+''+k.sNext+''+k.sLast+"");var t=h("a",j),k=t[0],l=t[1],r=t[2],t=t[3];e.oApi._fnBindAction(k,{action:"first"},n);e.oApi._fnBindAction(l,{action:"previous"},n);e.oApi._fnBindAction(r,{action:"next"},n);e.oApi._fnBindAction(t,{action:"last"},n);e.aanFeatures.p||(j.id=e.sTableId+"_paginate",k.id=e.sTableId+"_first",l.id=e.sTableId+"_previous",r.id=e.sTableId+"_next",t.id=e.sTableId+"_last")}, -fnUpdate:function(e,o){if(e.aanFeatures.p){var m=j.ext.oPagination.iFullNumbersShowPages,k=Math.floor(m/2),l=Math.ceil(e.fnRecordsDisplay()/e._iDisplayLength),n=Math.ceil(e._iDisplayStart/e._iDisplayLength)+1,t="",r,B=e.oClasses,u,M=e.aanFeatures.p,L=function(h){e.oApi._fnBindAction(this,{page:h+r-1},function(h){e.oApi._fnPageChange(e,h.data.page);o(e);h.preventDefault()})};-1===e._iDisplayLength?n=k=r=1:l=l-k?(r=l-m+1,k=l):(r=n-Math.ceil(m/2)+1,k=r+m-1);for(m=r;m<=k;m++)t+= -n!==m?''+e.fnFormatNumber(m)+"":''+e.fnFormatNumber(m)+"";m=0;for(k=M.length;mh?1:0},"string-desc":function(e,h){return eh?-1:0},"html-pre":function(e){return e.replace(/<.*?>/g,"").toLowerCase()},"html-asc":function(e,h){return eh?1:0},"html-desc":function(e,h){return e< -h?1:e>h?-1:0},"date-pre":function(e){e=Date.parse(e);if(isNaN(e)||""===e)e=Date.parse("01/01/1970 00:00:00");return e},"date-asc":function(e,h){return e-h},"date-desc":function(e,h){return h-e},"numeric-pre":function(e){return"-"==e||""===e?0:1*e},"numeric-asc":function(e,h){return e-h},"numeric-desc":function(e,h){return h-e}});h.extend(j.ext.aTypes,[function(e){if("number"===typeof e)return"numeric";if("string"!==typeof e)return null;var h,j=!1;h=e.charAt(0);if(-1=="0123456789-".indexOf(h))return null; -for(var k=1;k")?"html":null}]);h.fn.DataTable=j;h.fn.dataTable=j;h.fn.dataTableSettings=j.settings;h.fn.dataTableExt=j.ext};"function"===typeof define&&define.amd?define(["jquery"],L):jQuery&&!jQuery.fn.dataTable&& -L(jQuery)})(window,document); diff --git a/openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/jquery.dataTables.js b/openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/jquery.dataTables.js deleted file mode 100644 index 5e2808c2..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/thirdparty/data-tables/jquery.dataTables.js +++ /dev/null @@ -1,15268 +0,0 @@ -/*! DataTables 1.10.11 - * ©2008-2015 SpryMedia Ltd - datatables.net/license - */ - -/** - * @summary DataTables - * @description Paginate, search and order HTML tables - * @version 1.10.11 - * @file jquery.dataTables.js - * @author SpryMedia Ltd (www.sprymedia.co.uk) - * @contact www.sprymedia.co.uk/contact - * @copyright Copyright 2008-2015 SpryMedia Ltd. - * - * This source file is free software, available under the following license: - * MIT license - http://datatables.net/license - * - * This source file is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details. - * - * For details please refer to: http://www.datatables.net - */ - -/*jslint evil: true, undef: true, browser: true */ -/*globals $,require,jQuery,define,_selector_run,_selector_opts,_selector_first,_selector_row_indexes,_ext,_Api,_api_register,_api_registerPlural,_re_new_lines,_re_html,_re_formatted_numeric,_re_escape_regex,_empty,_intVal,_numToDecimal,_isNumber,_isHtml,_htmlNumeric,_pluck,_pluck_order,_range,_stripHtml,_unique,_fnBuildAjax,_fnAjaxUpdate,_fnAjaxParameters,_fnAjaxUpdateDraw,_fnAjaxDataSrc,_fnAddColumn,_fnColumnOptions,_fnAdjustColumnSizing,_fnVisibleToColumnIndex,_fnColumnIndexToVisible,_fnVisbleColumns,_fnGetColumns,_fnColumnTypes,_fnApplyColumnDefs,_fnHungarianMap,_fnCamelToHungarian,_fnLanguageCompat,_fnBrowserDetect,_fnAddData,_fnAddTr,_fnNodeToDataIndex,_fnNodeToColumnIndex,_fnGetCellData,_fnSetCellData,_fnSplitObjNotation,_fnGetObjectDataFn,_fnSetObjectDataFn,_fnGetDataMaster,_fnClearTable,_fnDeleteIndex,_fnInvalidate,_fnGetRowElements,_fnCreateTr,_fnBuildHead,_fnDrawHead,_fnDraw,_fnReDraw,_fnAddOptionsHtml,_fnDetectHeader,_fnGetUniqueThs,_fnFeatureHtmlFilter,_fnFilterComplete,_fnFilterCustom,_fnFilterColumn,_fnFilter,_fnFilterCreateSearch,_fnEscapeRegex,_fnFilterData,_fnFeatureHtmlInfo,_fnUpdateInfo,_fnInfoMacros,_fnInitialise,_fnInitComplete,_fnLengthChange,_fnFeatureHtmlLength,_fnFeatureHtmlPaginate,_fnPageChange,_fnFeatureHtmlProcessing,_fnProcessingDisplay,_fnFeatureHtmlTable,_fnScrollDraw,_fnApplyToChildren,_fnCalculateColumnWidths,_fnThrottle,_fnConvertToWidth,_fnGetWidestNode,_fnGetMaxLenString,_fnStringToCss,_fnSortFlatten,_fnSort,_fnSortAria,_fnSortListener,_fnSortAttachListener,_fnSortingClasses,_fnSortData,_fnSaveState,_fnLoadState,_fnSettingsFromNode,_fnLog,_fnMap,_fnBindAction,_fnCallbackReg,_fnCallbackFire,_fnLengthOverflow,_fnRenderer,_fnDataSource,_fnRowAttributes*/ - -(function( factory ) { - "use strict"; - - if ( typeof define === 'function' && define.amd ) { - // AMD - define( ['jquery'], function ( $ ) { - return factory( $, window, document ); - } ); - } - else if ( typeof exports === 'object' ) { - // CommonJS - module.exports = function (root, $) { - if ( ! root ) { - // CommonJS environments without a window global must pass a - // root. This will give an error otherwise - root = window; - } - - if ( ! $ ) { - $ = typeof window !== 'undefined' ? // jQuery's factory checks for a global window - require('jquery') : - require('jquery')( root ); - } - - return factory( $, root, root.document ); - }; - } - else { - // Browser - factory( jQuery, window, document ); - } -} -(function( $, window, document, undefined ) { - "use strict"; - - /** - * DataTables is a plug-in for the jQuery Javascript library. It is a highly - * flexible tool, based upon the foundations of progressive enhancement, - * which will add advanced interaction controls to any HTML table. For a - * full list of features please refer to - * [DataTables.net](href="http://datatables.net). - * - * Note that the `DataTable` object is not a global variable but is aliased - * to `jQuery.fn.DataTable` and `jQuery.fn.dataTable` through which it may - * be accessed. - * - * @class - * @param {object} [init={}] Configuration object for DataTables. Options - * are defined by {@link DataTable.defaults} - * @requires jQuery 1.7+ - * - * @example - * // Basic initialisation - * $(document).ready( function { - * $('#example').dataTable(); - * } ); - * - * @example - * // Initialisation with configuration options - in this case, disable - * // pagination and sorting. - * $(document).ready( function { - * $('#example').dataTable( { - * "paginate": false, - * "sort": false - * } ); - * } ); - */ - var DataTable; - - - /* - * It is useful to have variables which are scoped locally so only the - * DataTables functions can access them and they don't leak into global space. - * At the same time these functions are often useful over multiple files in the - * core and API, so we list, or at least document, all variables which are used - * by DataTables as private variables here. This also ensures that there is no - * clashing of variable names and that they can easily referenced for reuse. - */ - - - // Defined else where - // _selector_run - // _selector_opts - // _selector_first - // _selector_row_indexes - - var _ext; // DataTable.ext - var _Api; // DataTable.Api - var _api_register; // DataTable.Api.register - var _api_registerPlural; // DataTable.Api.registerPlural - - var _re_dic = {}; - var _re_new_lines = /[\r\n]/g; - var _re_html = /<.*?>/g; - var _re_date_start = /^[\w\+\-]/; - var _re_date_end = /[\w\+\-]$/; - - // Escape regular expression special characters - var _re_escape_regex = new RegExp( '(\\' + [ '/', '.', '*', '+', '?', '|', '(', ')', '[', ']', '{', '}', '\\', '$', '^', '-' ].join('|\\') + ')', 'g' ); - - // http://en.wikipedia.org/wiki/Foreign_exchange_market - // - \u20BD - Russian ruble. - // - \u20a9 - South Korean Won - // - \u20BA - Turkish Lira - // - \u20B9 - Indian Rupee - // - R - Brazil (R$) and South Africa - // - fr - Swiss Franc - // - kr - Swedish krona, Norwegian krone and Danish krone - // - \u2009 is thin space and \u202F is narrow no-break space, both used in many - // standards as thousands separators. - var _re_formatted_numeric = /[',$£€¥%\u2009\u202F\u20BD\u20a9\u20BArfk]/gi; - - - var _empty = function ( d ) { - return !d || d === true || d === '-' ? true : false; - }; - - - var _intVal = function ( s ) { - var integer = parseInt( s, 10 ); - return !isNaN(integer) && isFinite(s) ? integer : null; - }; - - // Convert from a formatted number with characters other than `.` as the - // decimal place, to a Javascript number - var _numToDecimal = function ( num, decimalPoint ) { - // Cache created regular expressions for speed as this function is called often - if ( ! _re_dic[ decimalPoint ] ) { - _re_dic[ decimalPoint ] = new RegExp( _fnEscapeRegex( decimalPoint ), 'g' ); - } - return typeof num === 'string' && decimalPoint !== '.' ? - num.replace( /\./g, '' ).replace( _re_dic[ decimalPoint ], '.' ) : - num; - }; - - - var _isNumber = function ( d, decimalPoint, formatted ) { - var strType = typeof d === 'string'; - - // If empty return immediately so there must be a number if it is a - // formatted string (this stops the string "k", or "kr", etc being detected - // as a formatted number for currency - if ( _empty( d ) ) { - return true; - } - - if ( decimalPoint && strType ) { - d = _numToDecimal( d, decimalPoint ); - } - - if ( formatted && strType ) { - d = d.replace( _re_formatted_numeric, '' ); - } - - return !isNaN( parseFloat(d) ) && isFinite( d ); - }; - - - // A string without HTML in it can be considered to be HTML still - var _isHtml = function ( d ) { - return _empty( d ) || typeof d === 'string'; - }; - - - var _htmlNumeric = function ( d, decimalPoint, formatted ) { - if ( _empty( d ) ) { - return true; - } - - var html = _isHtml( d ); - return ! html ? - null : - _isNumber( _stripHtml( d ), decimalPoint, formatted ) ? - true : - null; - }; - - - var _pluck = function ( a, prop, prop2 ) { - var out = []; - var i=0, ien=a.length; - - // Could have the test in the loop for slightly smaller code, but speed - // is essential here - if ( prop2 !== undefined ) { - for ( ; i') - .css( { - position: 'fixed', - top: 0, - left: 0, - height: 1, - width: 1, - overflow: 'hidden' - } ) - .append( - $('
    ') - .css( { - position: 'absolute', - top: 1, - left: 1, - width: 100, - overflow: 'scroll' - } ) - .append( - $('
    ') - .css( { - width: '100%', - height: 10 - } ) - ) - ) - .appendTo( 'body' ); - - var outer = n.children(); - var inner = outer.children(); - - // Numbers below, in order, are: - // inner.offsetWidth, inner.clientWidth, outer.offsetWidth, outer.clientWidth - // - // IE6 XP: 100 100 100 83 - // IE7 Vista: 100 100 100 83 - // IE 8+ Windows: 83 83 100 83 - // Evergreen Windows: 83 83 100 83 - // Evergreen Mac with scrollbars: 85 85 100 85 - // Evergreen Mac without scrollbars: 100 100 100 100 - - // Get scrollbar width - browser.barWidth = outer[0].offsetWidth - outer[0].clientWidth; - - // IE6/7 will oversize a width 100% element inside a scrolling element, to - // include the width of the scrollbar, while other browsers ensure the inner - // element is contained without forcing scrolling - browser.bScrollOversize = inner[0].offsetWidth === 100 && outer[0].clientWidth !== 100; - - // In rtl text layout, some browsers (most, but not all) will place the - // scrollbar on the left, rather than the right. - browser.bScrollbarLeft = Math.round( inner.offset().left ) !== 1; - - // IE8- don't provide height and width for getBoundingClientRect - browser.bBounding = n[0].getBoundingClientRect().width ? true : false; - - n.remove(); - } - - $.extend( settings.oBrowser, DataTable.__browser ); - settings.oScroll.iBarWidth = DataTable.__browser.barWidth; - } - - - /** - * Array.prototype reduce[Right] method, used for browsers which don't support - * JS 1.6. Done this way to reduce code size, since we iterate either way - * @param {object} settings dataTables settings object - * @memberof DataTable#oApi - */ - function _fnReduce ( that, fn, init, start, end, inc ) - { - var - i = start, - value, - isSet = false; - - if ( init !== undefined ) { - value = init; - isSet = true; - } - - while ( i !== end ) { - if ( ! that.hasOwnProperty(i) ) { - continue; - } - - value = isSet ? - fn( value, that[i], i, that ) : - that[i]; - - isSet = true; - i += inc; - } - - return value; - } - - /** - * Add a column to the list used for the table with default values - * @param {object} oSettings dataTables settings object - * @param {node} nTh The th element for this column - * @memberof DataTable#oApi - */ - function _fnAddColumn( oSettings, nTh ) - { - // Add column to aoColumns array - var oDefaults = DataTable.defaults.column; - var iCol = oSettings.aoColumns.length; - var oCol = $.extend( {}, DataTable.models.oColumn, oDefaults, { - "nTh": nTh ? nTh : document.createElement('th'), - "sTitle": oDefaults.sTitle ? oDefaults.sTitle : nTh ? nTh.innerHTML : '', - "aDataSort": oDefaults.aDataSort ? oDefaults.aDataSort : [iCol], - "mData": oDefaults.mData ? oDefaults.mData : iCol, - idx: iCol - } ); - oSettings.aoColumns.push( oCol ); - - // Add search object for column specific search. Note that the `searchCols[ iCol ]` - // passed into extend can be undefined. This allows the user to give a default - // with only some of the parameters defined, and also not give a default - var searchCols = oSettings.aoPreSearchCols; - searchCols[ iCol ] = $.extend( {}, DataTable.models.oSearch, searchCols[ iCol ] ); - - // Use the default column options function to initialise classes etc - _fnColumnOptions( oSettings, iCol, $(nTh).data() ); - } - - - /** - * Apply options for a column - * @param {object} oSettings dataTables settings object - * @param {int} iCol column index to consider - * @param {object} oOptions object with sType, bVisible and bSearchable etc - * @memberof DataTable#oApi - */ - function _fnColumnOptions( oSettings, iCol, oOptions ) - { - var oCol = oSettings.aoColumns[ iCol ]; - var oClasses = oSettings.oClasses; - var th = $(oCol.nTh); - - // Try to get width information from the DOM. We can't get it from CSS - // as we'd need to parse the CSS stylesheet. `width` option can override - if ( ! oCol.sWidthOrig ) { - // Width attribute - oCol.sWidthOrig = th.attr('width') || null; - - // Style attribute - var t = (th.attr('style') || '').match(/width:\s*(\d+[pxem%]+)/); - if ( t ) { - oCol.sWidthOrig = t[1]; - } - } - - /* User specified column options */ - if ( oOptions !== undefined && oOptions !== null ) - { - // Backwards compatibility - _fnCompatCols( oOptions ); - - // Map camel case parameters to their Hungarian counterparts - _fnCamelToHungarian( DataTable.defaults.column, oOptions ); - - /* Backwards compatibility for mDataProp */ - if ( oOptions.mDataProp !== undefined && !oOptions.mData ) - { - oOptions.mData = oOptions.mDataProp; - } - - if ( oOptions.sType ) - { - oCol._sManualType = oOptions.sType; - } - - // `class` is a reserved word in Javascript, so we need to provide - // the ability to use a valid name for the camel case input - if ( oOptions.className && ! oOptions.sClass ) - { - oOptions.sClass = oOptions.className; - } - - $.extend( oCol, oOptions ); - _fnMap( oCol, oOptions, "sWidth", "sWidthOrig" ); - - /* iDataSort to be applied (backwards compatibility), but aDataSort will take - * priority if defined - */ - if ( oOptions.iDataSort !== undefined ) - { - oCol.aDataSort = [ oOptions.iDataSort ]; - } - _fnMap( oCol, oOptions, "aDataSort" ); - } - - /* Cache the data get and set functions for speed */ - var mDataSrc = oCol.mData; - var mData = _fnGetObjectDataFn( mDataSrc ); - var mRender = oCol.mRender ? _fnGetObjectDataFn( oCol.mRender ) : null; - - var attrTest = function( src ) { - return typeof src === 'string' && src.indexOf('@') !== -1; - }; - oCol._bAttrSrc = $.isPlainObject( mDataSrc ) && ( - attrTest(mDataSrc.sort) || attrTest(mDataSrc.type) || attrTest(mDataSrc.filter) - ); - oCol._setter = null; - - oCol.fnGetData = function (rowData, type, meta) { - var innerData = mData( rowData, type, undefined, meta ); - - return mRender && type ? - mRender( innerData, type, rowData, meta ) : - innerData; - }; - oCol.fnSetData = function ( rowData, val, meta ) { - return _fnSetObjectDataFn( mDataSrc )( rowData, val, meta ); - }; - - // Indicate if DataTables should read DOM data as an object or array - // Used in _fnGetRowElements - if ( typeof mDataSrc !== 'number' ) { - oSettings._rowReadObject = true; - } - - /* Feature sorting overrides column specific when off */ - if ( !oSettings.oFeatures.bSort ) - { - oCol.bSortable = false; - th.addClass( oClasses.sSortableNone ); // Have to add class here as order event isn't called - } - - /* Check that the class assignment is correct for sorting */ - var bAsc = $.inArray('asc', oCol.asSorting) !== -1; - var bDesc = $.inArray('desc', oCol.asSorting) !== -1; - if ( !oCol.bSortable || (!bAsc && !bDesc) ) - { - oCol.sSortingClass = oClasses.sSortableNone; - oCol.sSortingClassJUI = ""; - } - else if ( bAsc && !bDesc ) - { - oCol.sSortingClass = oClasses.sSortableAsc; - oCol.sSortingClassJUI = oClasses.sSortJUIAscAllowed; - } - else if ( !bAsc && bDesc ) - { - oCol.sSortingClass = oClasses.sSortableDesc; - oCol.sSortingClassJUI = oClasses.sSortJUIDescAllowed; - } - else - { - oCol.sSortingClass = oClasses.sSortable; - oCol.sSortingClassJUI = oClasses.sSortJUI; - } - } - - - /** - * Adjust the table column widths for new data. Note: you would probably want to - * do a redraw after calling this function! - * @param {object} settings dataTables settings object - * @memberof DataTable#oApi - */ - function _fnAdjustColumnSizing ( settings ) - { - /* Not interested in doing column width calculation if auto-width is disabled */ - if ( settings.oFeatures.bAutoWidth !== false ) - { - var columns = settings.aoColumns; - - _fnCalculateColumnWidths( settings ); - for ( var i=0 , iLen=columns.length ; i
    '); + } + var bodyRows = $('tbody > tr', $tableBody); + for(var i=0;i' + tds.eq(j).html() + '
    '); + $(tds.eq(j)).height('0px'); + $(tds.eq(j)).css('padding-top','0px'); + $(tds.eq(j)).css('padding-bottom','0px'); + $(tds.eq(j)).css('border-top-width','0px'); + $(tds.eq(j)).css('border-bottom-width','0px'); + } + $(rowClone).height('0px'); + $tableHead.append($(rowClone).prop("outerHTML")); + } + + $('div.dataTables_scrollBody', tableWrapper).css('width','100%'); + //$('div.dataTables_scrollHead', tableWrapper).css('width','98.5%'); + $('div.dataTables_scrollHeadInner', tableWrapper).css('padding-right', 0); + + //$("table.dataTable > thead > tr > th:nth-child(2)", $(".dataTables_scrollHeadInner")).click(); + + //设置表格本体高度 + //$('div.dataTables_scrollBody', tableWrapper).css('height', "280px"); + //填充表头右边界 + /* $('div.dataTables_scrollHead', tableWrapper).css('display','inline-block'); + $("div.dataTables_scrollHead", tableWrapper).after("
    "); */ + /* if($.browser.mozilla){ + $('div#divRightPadding', tableWrapper).css('height', '40'); + } */ + } + }); + + $(window).bind('resize', function () { + //oTable.DataTable.models.oSettings.bAjaxDataGet = false; + table.fnAdjustColumnSizing(setting); + } ); + + function format_Detail(oTable, nTr) { + var aData = oTable.fnGetData(nTr); + + var sOut = ''; + sOut += ''; + sOut += ''; + + sOut += ''; + sOut += ''; + + sOut += ''; + sOut += ''; + + sOut += ''; + sOut += ''; + + sOut += ''; + sOut += ''; + + sOut += ''; + sOut += ''; + // sOut += ''; + + // sOut += ''; + // sOut += ''; + // sOut += ''; + + // sOut += ''; + // sOut += ''; + + sOut += ''; + + return sOut; + } + function null2space(nullStr){ + if(nullStr == null){ + return ""; + } else { + return nullStr; + } + } + $('#' + tableId + '>tbody').on('click', 'td.details-control', function () { + var tr = $(this).closest('tr'); + //var nTr = $(this).parents('tr')[0]; + //var row = table.row( tr ); + if (table.fnIsOpen(tr[0])) { + table.fnClose(tr[0]); + //if ( row.child.isShown() ) { + // This row is already open - close it + //row.child.hide(); + tr.removeClass('shown'); + } + else { + // Open this row + table.fnOpen(tr[0], format_Detail(table, tr[0]), 'details'); + //row.child( format_Detail(row.data()) ).show(); + tr.addClass('shown'); + } + }); + + // mod by chenhao 2015-10-26 注释掉 + // // 所有td注册一个点击事件用来展示出详情。 + // $('#ict_alarms_table >tbody').on('click', 'td', function () { + + // var className= $(this).eq(0).attr('class'); + // //当点击的是如下的table页的时候 + // if(className &&(className.indexOf('relInfo')>-1 || className.indexOf('details-check')>-1 || className.indexOf('ackState')>-1 || className.indexOf('details-control')>-1)){ + // $('#right-menu').fadeOut(); + // }else{ + // //填充table的数据 + // var tbody=$('#ict_table_general >tbody'); + // tbody.children().remove(); + // var trHtml=""; + // var tr = $(this).closest('tr'); + // var aData = table.fnGetData(tr[0]); + // for (var i = 0; i < column.length; i++) { + // if( column[i].bVisible == false ){//如果列可见就继续遍历下一个 + // trHtml += ''; + // } + // } + // tbody.append(trHtml); + // if(!vm.alarmId ||vm.alarmId==aData.alarmId){ + // $('#right-menu').fadeToggle(); + // }else{ + // $('#right-menu').fadeIn(); + // } + // vm.alarmId=aData.alarmId; + // } + // }); + //重新调节列宽以适应window resize + $(window).bind('resize', function () { + //oTable.fnAdjustColumnSizing(); + $("table.dataTable > thead > tr > th:nth-child(2)", $(".dataTables_scrollHeadInner")).click(); + } ); + +}; + + + + diff --git a/performance/src/main/webapp/performance/js/alarmsUtil.js b/performance/src/main/webapp/performance/js/alarmsUtil.js new file mode 100644 index 00000000..e9504bf0 --- /dev/null +++ b/performance/src/main/webapp/performance/js/alarmsUtil.js @@ -0,0 +1,1169 @@ +/* + * Copyright 2016-2017, CMCC Technologies Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +var alarmsUtil = {}; +var alarmTemp=[]; + +alarmsUtil.timeRender = function (obj) { + if (obj.aData[obj.mDataProp] == -1 || obj.aData[obj.mDataProp] == 0) { + return ""; + } else { + var date = new Date(obj.aData[obj.mDataProp]); + return commonUtil.parseDate(date, 'yyyy-MM-dd hh:mm:ss'); + } +}; + +alarmsUtil.LinkRender = function (obj) { + return '' + obj.aData[obj.mDataProp] + ''; +}; + +alarmsUtil.ackState = function (obj) { + + var innerHtml = ""; + var ackState = obj.aData.ackState; + var alarmId = obj.aData.id; + var alarmIdArr = [alarmId]; + var tableId="\'" + obj.oSettings.sTableId + "\'"; + var divId="\'" + obj.oSettings.nTableWrapper.parentElement.id + "\'"; + if (ackState == "1" && vm.ruleType == 1) { + innerHtml = "Acknowledge"; + } else if(ackState == "1" && vm.ruleType == 2){ + innerHtml = "
    Acknowledge
    "; + } else if(ackState == "2" ){ + innerHtml = "Unacknowledge"; + } + return innerHtml; +}; + +alarmsUtil.Severity = function (obj) { + + var innerHtml = ""; + var Severity = obj.aData.perceivedSeverity; + if (Severity == "1") { + innerHtml = "Critical"; + } else if (Severity == "2") { + innerHtml = "Major"; + } else if (Severity == "3") { + innerHtml = "Minor"; + } else if (Severity == "4") { + innerHtml = "Warning"; + } + return innerHtml; + +}; + +alarmsUtil.operate = function (obj) { + + var alarmId = obj.aData.alarmId; + return ""; + +}; + +alarmsUtil.congfirms = function (alarmId) { + + bootbox.confirm('你确定要删除该告警吗?', function (result) { //你确定要删除该用户吗? + + if (result) { + var sSource = "/web/rest/web/fm/curalarms?data={\"alarmId\":" + alarmId + "}&_dataSource=isc_PageRestDataSource_0&isc_metaDataPrefix=_&isc_dataFormat=json&_operationType=remove&_componentId=isc_com_zte_ums_aos_fm_view_eventview_table_AlarmTable_0"; + $.ajax({ + dataType : "json", + type : "DELETE", + //数据格式:[tab标签id,tabItem的名字,图片路径,tabItem的描述,更多的LInk地址] + contentType : 'application/json; charset=utf-8', + url : sSource, + data : null, + async : false, + success : function (msg) { + setTimeout(function () { + refreshByCond(); + }, 500); + } + }); + } + + }); + +}; + +alarmsUtil.allOperate = function (obj) { + + var record = obj.aData; + var hasModify = commonUtil.hasRigth('uep.pfl.sm.updateuser'); + var hasDel = commonUtil.hasRigth('uep.pfl.sm.deluser'); + var selectUsername = new String(record.userName); + var innerHtml = ""; + + // 如果有权限,显示操作列 + if (hasModify) { + if (hasDel && selectUsername != "admin") { + innerHtml = ""; + } else { + innerHtml = "
    "; + } + } + + return innerHtml; + +}; + +alarmsUtil.refresh = function () { + + refreshByCond(); + +} + +/* + +1.确认 + +2.反确认 + + */ + +alarmsUtil.loopAffirm = function (type) { + + var checkArr = $('#ict_alarms_table_div .details-check input[type="checkbox"]'); + var aidArr = []; + for (var i = 0; i < checkArr.length; i++) { + if($(checkArr[i]).prop("checked")){ + if ($(checkArr[i]).attr('alarmId') != 'undefined' && $(checkArr[i]).attr('alarmId') != null) { + aidArr.push($(checkArr[i]).attr('alarmId')); + } + } + } + + if (type == "1" && aidArr.length > 0) { + alarmsUtil.affirm(aidArr); + } else if (type == "2" && aidArr.length > 0) { + alarmsUtil.unaffirm(aidArr); + } + +} + +/* + + + + */ + +alarmsUtil.loopDelAralms = function () { + + var checkArr = $('#ict_alarms_table_div .details-check input[type="checkbox"]'); + var aidArr = []; + for (var i = 0; i < checkArr.length; i++) { + if($(checkArr[i]).prop("checked")){ + if ($(checkArr[i]).attr('alarmId') != 'undefined' && $(checkArr[i]).attr('alarmId') != null) { + aidArr.push($(checkArr[i]).attr('alarmId')); + } + } + } + + if (aidArr.length > 0) { + bootbox.confirm('Are you sure to delete alarm(s)', function (result) { + if (result) { + var sSource = "/openoapi/umc/v1/fm/curalarms?request={\"ids\":["+ aidArr +"]}"; + $.ajax({ + type : "DELETE", + dataType : "json", + contentType : 'application/json; charset=utf-8', + url : sSource, + data : null, + async : false, + success : function (msg) { + setTimeout(function () { + refreshByCond() + }, 500); + } + }); + } + }); + } +} + +alarmsUtil.affirm = function (alarmIdArr,tableId,divId) { + + var getData = {}; + var request = {}; + request.ids=[]; + for(i=0;i '; + return innerHtml; +} + +//初始化告警码树 +alarmsUtil.initProbableCausesTree = function () { + //zTree设置 + var setting = { + view : { + selectedMulti : false, //设置是否可以同时选中多个借点。 + showIcon : true, //不显示图标 + showLine : false, //是否显示节点之间的连线 + }, + data : { + simpleData : { + enable : true //如果设置为 true,请务必设置 setting.data.simpleData 内的其他参数: idKey / pIdKey / rootPId,并且让数据满足父子关系。 + } + }, + callback : { + onExpand : zTreeOnExpand, //每次节点展开后触发的事件。 + onCollapse : zTreeOnCollapse, + //onClick: zTreeOnClick + } + }; + var probableCausesNodes; + + //获取告警码树数据 + getProbableCausesTreeNodes(""); + //创建告警码树 + $.fn.zTree.init($("#probableCausesTree"), setting, probableCausesNodes); + //获取所有现有的tree节点 + var treeObj = $.fn.zTree.getZTreeObj("probableCausesTree"); + initDataAtTree(); + function initDataAtTree(){ + getAllNodesWithoutTypeEqual2("") + }; + + function getAllNodesWithoutTypeEqual2(parentId){ + var treeNodes=treeObj.getNodesByParam("parentId", parentId, null); + for(var i=0;i" + text + ""; + } else if (treeType == "probableCausesTree") { + + parentId = treeNodes[i].parentId; + type = treeNodes[i].type; + htmlStr = "
    "; + } + + if(treeType == "probableCausesTree"){ + if(treeNodes[i].type === 2){ + for(i=0;i 0) { + var severity = '{ "type": "Severity", "data": [{"severity": "' + cond.severity + '"}]}'; //级别 + var severityObj = window.JSON.parse(severity) + conds.push(severityObj); + } + if (cond.ackState != null && cond.ackState != "undefined") { + var ackState = '{ "type": "AckState", "data": [{"ackState": "' + cond.ackState + '"}]}'; //级别 + var ackStateObj = window.JSON.parse(ackState) + conds.push(ackStateObj); + } + if (cond.filterState != null && cond.filterState != "undefined") { + var filterState = '{ "type": "FilterState", "data": [{"filterState": "' + cond.filterState + '"}]}'; //级别 + var filterStateObj = window.JSON.parse(filterState) + conds.push(filterStateObj); + } + + if (cond.ackTimeStarTime != null && cond.ackTimeStarTime != "undefined") { + var ackTime = '{ "type": "AckTime", "data": [{"mode":"0","start":"' + cond.ackTimeStarTime + '","end":"' + cond.ackTimeEndTime + '" }]}'; //级别 + var ackTimeObj = window.JSON.parse(ackTime) + conds.push(ackTimeObj); + } + if (cond.alarmRaisedStartTime != null && cond.alarmRaisedStartTime != "undefined") { + var alarmRaisedTime = '{ "type": "RaisedTime", "data": [{"mode":"0","start":"' + cond.alarmRaisedStartTime + '","end":"' + cond.alarmRaisedEndTime + '" }]}'; //级别 + var alarmRaisedTimeObj = window.JSON.parse(alarmRaisedTime) + conds.push(alarmRaisedTimeObj); + } + + if (cond.clearedTimeStarTime != null && cond.clearedTimeStarTime != "undefined") { + var clearedTime = '{ "type": "ClearedTime", "data": [{"mode":"0","start":"' + cond.clearedTimeStarTime + '","end":"' + cond.clearedTimeEndime + '" }]}'; //级别 + var severityObj = window.JSON.parse(clearedTime) + conds.push(severityObj); + } + var resJsonObj = AlarmConds.parseActiveConds2JSon(conds); + resJsonObj.rule.name = name; + resJsonObj.rule.ruleType = vm.ruleType; + var resStr = window.JSON.stringify(resJsonObj); + var dataSource = "isc_AosRestDataSource_1"; + var operationType = "add"; + var data1 = { + dataSource : dataSource, + operationType : operationType, + data : resJsonObj, + oldValues : null + }; + $.ajax({ + dataType : "json", + type : "POST", + contentType : 'application/json; charset=utf-8', + url : saveUrl, + data : JSON.stringify(data1), + async : false, + success : function (msg) { + $('#saveModalCancle').trigger("click"); + } + }); + +} + +Array.prototype.contains = function (item) { + return RegExp("(^|,)" + item.toString() + "($|,)").test(this); +}; + +/* +@param alarmsType 1当前告警 2历史告警 +@param condRuleId 查询条件的RuleId + */ +alarmsUtil.queryByParma = function (alarmsType, condRuleId) { + + //1.判断是当前告警还是历史告警。 + + var sourceUrl; + if (alarmsType == 1) { //当前告警 + sourceUrl = '/web/rest/web/fm/curqueryview?' + 'data={"ruleType":1,"ruleSort":1}&isc_flag=smartClient&_operationType=fetch&_startRow=0&_endRow=75&_textMatchStyle=exact&_componentId=condList&_dataSource=isc_RestDataSource_7&isc_metaDataPrefix=_&isc_dataFormat=json'; + vm.ruleType = 1; + vm.$queryAlarmsInfoUrl = "/ngict/rest/fm/curalarms"; + vm.curalarmsType = "curalarms"; + vm.showClear = true; //清除按钮 + + } else if(alarmsType == 2){ //历史告警 + + sourceUrl = '/web/rest/web/fm/curqueryview?' + 'data={"ruleType":2,"ruleSort":1}&isc_flag=smartClient&_operationType=fetch&_startRow=0&_endRow=75&_textMatchStyle=exact&_componentId=condList&_dataSource=isc_RestDataSource_7&isc_metaDataPrefix=_&isc_dataFormat=json'; + vm.ruleType = 2; + vm.$queryAlarmsInfoUrl = "/ngict/rest/fm/hisalarms"; + vm.hisalarmsType = "hisalarms"; + vm.showClear = false; //清除按钮 + }else if(alarmsType == 3){ //通知 + sourceUrl = '/web/rest/web/fm/curqueryview?' + 'data={"ruleType":2,"ruleSort":1}&isc_flag=smartClient&_operationType=fetch&_startRow=0&_endRow=75&_textMatchStyle=exact&_componentId=condList&_dataSource=isc_RestDataSource_7&isc_metaDataPrefix=_&isc_dataFormat=json'; + vm.ruleType = 3; + vm.$queryAlarmsInfoUrl = "/ngict/rest/fm/notify"; + vm.notificationType = "notification"; + vm.showClear = false; //清除按钮 + } + + //如果没传condRuleId 直接返回 + if (condRuleId == null || condRuleId == "undefined") { + return; + } + + //2.取出告警规则的数据。 + + $.ajax({ + type : "get", + data : null, + url : sourceUrl, + async : false, + success : function (msg) { + //1.遍历返回的条件数组确定是哪一个rule规则。 + var ruleCondArr = msg.response.data; + var xmlData = ""; + for (var i = 0; i < ruleCondArr.length; i++) { + if (ruleCondArr[i].ruleId == condRuleId) { //condRuleId + xmlData = "" + ruleCondArr[i].ruleData + "" //在jQuery裡,如果要直接将字串转成XML物件,记得前后方要加上及,才会被当成XML处理; + break; + } + }; + + //3.解析数据的xml联动页面的组件。 + $(xmlData).find("CompoundCond").each(function () { + //1.级别 + for (var i = 0; i < vm.severityTypes.length; i++) { + vm.severityTypes[i].value = false; + } + if ($(this).find("PerceivedSeverity").attr('value') != null && $(this).find("PerceivedSeverity ").attr('value') != 'undefined') { + var perceivedSeverityArr = $(this).find("PerceivedSeverity ").attr('value').split(','); + for (var i = 0; i < perceivedSeverityArr.length; i++) { + if (perceivedSeverityArr.contains(vm.severityTypes[i].id)) { + vm.severityTypes[i].value = true; + } + }; + } + + //2.确认状态 + for (var i = 0; i < vm.ackStateTypes.length; i++) { + vm.ackStateTypes[i].value = false; + }; + var ackStateV = $(this).find("AckState").attr('value'); + if (ackStateV != null && ackStateV != "undefined") { + var ackStateArr = ackStateV.split(','); + for (var i = 0; i < vm.ackStateTypes.length; i++) { + if (ackStateArr.contains(vm.ackStateTypes[i].id)) { + vm.ackStateTypes[i].value = true; + } + }; + } + + //3.可见性 + if(vm.ruleType === 1){ + for (var i = 0; i < vm.filterStateTypes.length; i++) { + vm.filterStateTypes[i].value = false; + }; + var filterStateV = $(this).find("FilterState").attr('value') + if (filterStateV != null && filterStateV != "undefined") { + var filterStateArr = filterStateV.split(','); + for (var i = 0; i < vm.filterStateTypes.length; i++) { + if (filterStateArr.contains(vm.filterStateTypes[i].id)) { + vm.filterStateTypes[i].value = true; + } + }; + } + } + //4.确认时间 + + var dataRangeAck = $('input[dtitle="ackTime"]'); //日历组件 + vm.fmConds.ackTimeStarTime = null; + vm.fmConds.ackTimeEndTime = null; + dataRangeAck.val(''); + var ackTimeStartMs = $(this).find("AckTime").attr('start'); + var ackTimeEndMs = $(this).find("AckTime").attr('end'); + if (ackTimeStartMs != null && ackTimeStartMs != "undefined" && ackTimeEndMs != null && ackTimeEndMs != "undefined") { + vm.fmConds.ackTimeStarTime = ackTimeStartMs; //确认时间 + vm.fmConds.ackTimeEndTime = ackTimeEndMs; + var ackTimeStarTime = new Date(parseInt(ackTimeStartMs)).format('yyyy-MM-dd'); + var ackTimeEndTime = new Date(parseInt(ackTimeEndMs)).format('yyyy-MM-dd'); + dataRangeAck.val(ackTimeStarTime + ' - ' + ackTimeEndTime); + } + + //5.发生时间 + vm.fmConds.alarmRaisedStartTime = null; + vm.fmConds.alarmRaisedEndTime = null; + var dataRangeRaised = $('input[dtitle="raisedTime"]'); //日历组件 + dataRangeRaised.val(''); + var raisedTimeStartMs = $(this).find("RaisedTime").attr('start'); + var raisedTimeEndMs = $(this).find("RaisedTime").attr('end'); + if (raisedTimeStartMs != null && raisedTimeStartMs != "undefined" && raisedTimeEndMs != null && raisedTimeEndMs != "undefined") { + vm.fmConds.alarmRaisedStartTime = raisedTimeStartMs; //发生时间 + vm.fmConds.alarmRaisedEndTime = raisedTimeEndMs; + var raisedTimeStart = new Date(parseInt(raisedTimeStartMs)).format('yyyy-MM-dd'); + var raisedTimeEnd = new Date(parseInt(raisedTimeEndMs)).format('yyyy-MM-dd'); + dataRangeRaised.val(raisedTimeStart + ' - ' + raisedTimeEnd); + } + + //6.清除时间 + + + //7.告警码 + + vm.fmConds.probableCause = null; + var probableCauseArr = $(this).find("ProbableCause").attr('value'); + if (probableCauseArr != null && probableCauseArr != "undefined") { + for (var i = 0; i < probableCauseArr.length; i++) { + vm.fmConds.probableCause = probableCauseArr; + // 联动 + }; + } + + //8.告警位置 + vm.fmConds.probableCause = null; + var newPositionCondArr = $(this).find("NewPositionCond").attr('value'); + if (newPositionCondArr != null && newPositionCondArr != "undefined") + for (var i = 0; i < newPositionCondArr.length; i++) { + // 联动 + }; + + //9.告警类型 + vm.fmConds.alarmType = null; + var alarmTypeArr = $(this).find("AlarmType").attr('value'); + if (alarmTypeArr != null && alarmTypeArr != "undefined") { + for (var i = 0; i < alarmTypeArr.length; i++) { + vm.fmConds.alarmType = alarmTypeArr; + }; + } + }); + } + }); +} + + +/* + 获取系统类型中的告警码数量 +*/ +alarmsUtil.getProbableCauseCountBySystemType=function(systemType){ + + //"/ngict/rest/fm/probableCause?request={"systemTypes":[6,12]}" + var getData={}; + var request={}; + request.systemTypes=systemType; + getData.request = JSON.stringify(request); + $.ajax({ + type : "get", + data : getData, + url : "/ngict/rest/fm/probableCause", + async : true, + success : function (msg) { + vm.alarmCodeSelectedCount+=msg.length; + }}); +} \ No newline at end of file diff --git a/performance/src/main/webapp/performance/js/commonUtil.js b/performance/src/main/webapp/performance/js/commonUtil.js new file mode 100644 index 00000000..912445f2 --- /dev/null +++ b/performance/src/main/webapp/performance/js/commonUtil.js @@ -0,0 +1,75 @@ +/* + * Copyright 2016-2017, CMCC Technologies Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +var commonUtil = {}; + +commonUtil.sendSynRequest = function(url){ + var response; + $.ajax({ + "type": 'get', + "url": url, + "dataType": "json", + "async": false, + success: function (resp) { + response = resp; + return response; + }, + error: function(XMLHttpRequest, textStatus, errorThrown){ + } + }); +}; + +commonUtil.strToJson = function(str){ + var json = eval('(' + str + ')'); + return json; +}; + +commonUtil.arrayRemove = function(aryInstance, index){ + if (aryInstance == undefined || aryInstance == null) { + return; + } + for (var i = 0, n = 0; i < aryInstance.length; i++) { + if (aryInstance[i] != aryInstance[dx]) { + aryInstance[n++] = aryInstance[i]; + } + } + aryInstance.length -= 1; +}; + +// (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423 +// (new Date()).Format("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18 +commonUtil.parseDate = function(dateObj, format){ + var o = { + "M+": dateObj.getMonth() + 1, + "d+": dateObj.getDate(), + "h+": dateObj.getHours(), + "m+": dateObj.getMinutes(), + "s+": dateObj.getSeconds(), + "q+": Math.floor((dateObj.getMonth() + 3) / 3), + "S": dateObj.getMilliseconds() + } + if (/(y+)/.test(format)) format = format.replace(RegExp.$1, + (dateObj.getFullYear() + "").substr(4 - RegExp.$1.length)); + for (var k in o) + if (new RegExp("(" + k + ")").test(format)) + format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : + ("00" + o[k]).substr(("" + o[k]).length)); + return format; +}; + +commonUtil.strToJson = function(str){ + var json = eval('(' + str + ')'); + return json; +}; diff --git a/performance/src/main/webapp/performance/js/curAlarmsController.js b/performance/src/main/webapp/performance/js/curAlarmsController.js new file mode 100644 index 00000000..33248e63 --- /dev/null +++ b/performance/src/main/webapp/performance/js/curAlarmsController.js @@ -0,0 +1,445 @@ +/* + * Copyright 2016-2017, CMCC Technologies Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +var refreshByCond; +var lang = 'en-US'; + +avalon.config({ + interpolate: [""] +}) + +refreshByCond = function(){ + vm.$initTable(); +}; + +var vm = avalon.define({ + $id: "curAlarmsController", + logType: 'secLog', + severity: '', + ackState: '', + filterState: '', + ruleType: 1, + curalarmsType: 'curalarms', + moreCondBtn: false, + showClear: true, + dataRangeLocationDisabled:true, + dataRangeTypeDisabled:true, + dataRangeCodeDisabled:true, + alCodeTree_affirm:false, + alLocationTree_affirm:false, + alarmCodeSelectedCount: 0, + alarmLocationSelectedCount: 0, + alarmTypeSelectedCount: 0, + tempHide:false, + treeIcons: [ + "ict-arrowRight", + "ict-arrowLeft", + "ict-selectLeft" + ], + + severityTypes: [ + {id: '1', name: $.i18n.prop("ngict_fm_iui_curalarm_critical"), value: true, type: "severityTypes", class: "alarm-serious"}, + {id: '2', name: $.i18n.prop("ngict_fm_iui_curalarm_major"), value: true, type: "severityTypes", class: "alarm-important"}, + {id: '3', name: $.i18n.prop("ngict_fm_iui_curalarm_minor"), value: true, type: "severityTypes", class: "alarm-secondary"}, + {id: '4', name: $.i18n.prop("ngict_fm_iui_curalarm_warning"), value: true, type: "severityTypes", class: "alarm-slightly"} + ], + + ackStateTypes: [ + {id: '1', name: $.i18n.prop("ngict_fm_iui_curalarm_ackAlarm"), value: false, type: "ackStateTypes"}, + {id: '2', name: $.i18n.prop("ngict_fm_iui_curalarm_unackAlarm"), value: true, type: "ackStateTypes"} + ], + + filterStateTypes: [ + {id: '1', name: $.i18n.prop("ngict_fm_iui_curalarm_visible"), value: true, type: "filterStateTypes"}, + {id: '0', name: $.i18n.prop("ngict_fm_iui_curalarm_invisible"), value: false, type: "filterStateTypes"} + ], + + alTypes:[ + "Communications Alarm", + "Processing Error Alarm", + "Quality of Service Alarm", + "Equipment Alarm", + "Environmental Alarm", + "OMC Alarm", + "Integrity Violation", + "Operational Violation", + "Physical Violation", + "Security Violation", + "Time Domain Violation" + ], + + $alarmsTableFields: { + curalarms: [ + {"mData": null,name: "","sClass": 'details-check',"sWidth": '5%',"fnRender": alarmsUtil.checkBox}, + {"mData": "order", name: $.i18n.prop("ngict_fm_iui_curalarm_order"),"sClass": 'details-control', "sWidth": '6%'}, + {"mData": "id", sWidth : "10%",name: $.i18n.prop("ngict_fm_iui_curalarm_id"),"bVisible": true}, + {"mData": "position1DisplayName", sWidth : "10%",name:$.i18n.prop("ngict_fm_iui_curalarm_ne")}, + {"mData": "mocName",sWidth : "14%", name: $.i18n.prop("ngict_fm_iui_curalarm_moc")}, + {"mData": "probableCauseCodeNameAndCode", sWidth : "14%",name: $.i18n.prop("ngict_fm_iui_curalarm_probableCauseCode")}, + {"mData": "alarmRaisedTime", sWidth : "15%",name: $.i18n.prop("ngict_fm_iui_curalarm_alarmRaisedTime"),"fnRender": alarmsUtil.timeRender}, + {"mData": "perceivedSeverity",sWidth : "10%", name: $.i18n.prop("ngict_fm_iui_curalarm_perceivedSeverity"),fnRender:alarmsUtil.Severity}, + {"mData": "alarmType",sWidth : "10%", name: $.i18n.prop("ngict_fm_iui_curalarm_alarmType"),"bVisible": false}, + {"mData": "ackState",sClass:"ackState",sWidth : "10%", name: $.i18n.prop("ngict_fm_iui_curalarm_ackState"),"fnRender":alarmsUtil.ackState}, + {"mData": "ackTime", sWidth : "13%",name: $.i18n.prop("ngict_fm_iui_curalarm_ackTime"),"fnRender": alarmsUtil.timeRender,"bVisible": false}, + {"mData": "position1", name: $.i18n.prop("ngict_fm_iui_curalarm_position1"),"bVisible": false}, + {"mData": "alarmChangedTime", name: $.i18n.prop("ngict_fm_iui_curalarm_alarmChangedTime"),"bVisible": false,"fnRender": alarmsUtil.timeRender}, + {"mData": "ackUserId", name: $.i18n.prop("ngict_fm_iui_curalarm_ackUserId"),"bVisible": false}, + {"mData": "ackSystemId", name: $.i18n.prop("ngict_fm_iui_curalarm_ackSystemId"),"bVisible": false}, + {"mData": "alarmClearedTime", name: $.i18n.prop("ngict_fm_iui_curalarm_alarmClearedTime"),"bVisible": false,"fnRender": alarmsUtil.timeRender}, + {"mData": "additionalText", name: $.i18n.prop("ngict_fm_iui_curalarm_additionalText"),"bVisible": false}, + {"mData": "ackSystemId", name: $.i18n.prop("ngict_fm_iui_curalarm_ackSystem"),"bVisible": false}, + {"mData": "clearUserId", name: $.i18n.prop("ngict_fm_iui_curalarm_clearUserId"),"bVisible": false}, + {"mData": "clearSystemId", name: $.i18n.prop("ngict_fm_iui_curalarm_clearSystemId"),"bVisible": false}, + {"mData": "clearType", name: $.i18n.prop("ngict_fm_iui_curalarm_clearType"),"bVisible": false}, + {"mData": "probableCauseCode", name: $.i18n.prop("ngict_fm_iui_curalarm_probableCauseCode"),"bVisible": false}, + {"mData": "specificProblem", name: $.i18n.prop("ngict_fm_iui_curalarm_specificProblem"),"bVisible": false}, + {"mData": "neIp", name: $.i18n.prop("ngict_fm_iui_curalarm_neIp"),"bVisible": false}, + {"mData": "pathIds", name: $.i18n.prop("ngict_fm_iui_curalarm_pathIds"),"bVisible": false}, + {"mData": "pathName", name: $.i18n.prop("ngict_fm_iui_curalarm_pathName"),"bVisible": false} + ], + }, + + $language: { + "sProcessing": "  å¤„理中...", + "sLengthMenu": $.i18n.prop("ngict-fm-iui-table-sLengthMenu"), + "sZeroRecords": $.i18n.prop("ngict-fm-iui-table-sZeroRecords"), + "sInfo": "" + $.i18n.prop("ngict-fm-iui-table-sInfo"), + "sInfoEmpty": $.i18n.prop("ngict-fm-iui-table-sInfoEmpty"), + "sGroupActions": $.i18n.prop("ngict-fm-iui-table-sGroupActions"), + "sAjaxRequestGeneralError": $.i18n.prop("ngict-fm-iui-table-sAjaxRequestGeneralError"), + "sEmptyTable": $.i18n.prop("ngict-fm-iui-table-sEmptyTable"), + "oPaginate": { + "sPrevious": $.i18n.prop("ngict-fm-iui-table-sPrevious"), + "sNext": $.i18n.prop("ngict-fm-iui-table-sNext"), + "sPage": $.i18n.prop("ngict-fm-iui-table-sPage"), + "sPageOf": $.i18n.prop("ngict-fm-iui-table-sPageOf") + } + }, + + $queryAlarmsInfoUrl: '/openoapi/umc/v1/fm/curalarms', + $saveCondUrl: '/web/rest/web/fm/rules?isc_dataFormat=json', + fmConds: {}, + $sunburstSetting: {width: 450, height: 400}, + + $getLogCond: function(){ + var cond = {}; + var severitys = []; + var ackState = []; + var filterState = []; + for (var i = 0; i < vm.severityTypes.length; i++) { + vm.severityTypes[i].value ? severitys.push(vm.severityTypes[i].id) : null; + }; + for (var i = 0; i < vm.ackStateTypes.length; i++) { + vm.ackStateTypes[i].value ? cond.ackState = ackState.push(vm.ackStateTypes[i].id) : null; + }; + for (var i = 0; i < vm.filterStateTypes.length; i++) { + vm.filterStateTypes[i].value ? cond.filterState = filterState.push(vm.filterStateTypes[i].id) : null; + }; + cond.severity = severitys; + cond.ackState = ackState; + cond.filterState = filterState; + cond.location=vm.fmConds.location; + cond.ackTimeStarTime = vm.fmConds.ackTimeStarTime; + cond.ackTimeEndTime = vm.fmConds.ackTimeEndTime; + cond.ackRelativeTime = vm.fmConds.ackRelativeTime; + cond.ackTimeMode = vm.fmConds.ackTimeMode; + cond.alarmRaisedStartTime = vm.fmConds.alarmRaisedStartTime; + cond.alarmRaisedEndTime = vm.fmConds.alarmRaisedEndTime; + cond.alarmRaisedRelativeTime = vm.fmConds.alarmRaisedRelativeTime; + cond.alarmRaisedTimeMode = vm.fmConds.alarmRaisedTimeMode; + cond.clearedTimeStarTime = vm.fmConds.clearedTimeStarTime; + cond.clearedTimeEndTime = vm.fmConds.clearedTimeEndTime; + cond.clearedTimeMode = vm.fmConds.clearedTimeMode; + cond.probableCause = vm.fmConds.probableCause; + cond.alarmType = vm.fmConds.alarmType; + cond.ruleType = vm.ruleType; + return cond; + }, + + $initRegister: function(){ + $('#alCode .condSelect').click(function(){ + $('#alCodeTree').modal('show'); + }); + + $('#alCodeTree').on('hide.bs.modal', function(){ + $table = $("#selectedProbableCausesTreeTable"); + if(vm.alCodeTree_affirm===false){ + $('#selectedProbableCausesTreeTable tbody').children().remove(); + for(i=0;i"; + }; + $('#selectedAlTypeTable').append(html); +} + +initPage = function(){ + bootbox.setDefaults({ + locale: lang.replace("-", "_") + }); + //自定义确认时间组件 + alarmsUtil.setDateRange("daterangeConfirm", vm); + alarmsUtil.dateRangeEnableDisable("customAckTime"); + //自定义发生时间组件 + alarmsUtil.setDateRange("daterangeOccur", vm); + alarmsUtil.dateRangeEnableDisable("customRaisedTime"); + //高级菜单界面中,对告警发生时间、确认时间、清除时间初始化 + alarmsUtil.dateRangeCustom(vm); + //告警码树初始化 + alarmsUtil.initTree(); + //告警类型初始化 + initAlTypeTable(); + vm.$initRegister(); + refreshByCond(); + localStorage.setItem("curRuleDataId",0); +} + +initPage(); diff --git a/performance/src/main/webapp/performance/js/performanceChart.js b/performance/src/main/webapp/performance/js/performanceChart.js new file mode 100644 index 00000000..c7db2137 --- /dev/null +++ b/performance/src/main/webapp/performance/js/performanceChart.js @@ -0,0 +1,196 @@ +/* + * Copyright 2016-2017, CMCC Technologies Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// draw the chart by performance datas +function drawPerformanceChart() { + var chartType = ""; + var titleText = document.getElementById("tableTitleText").innerHTML; + var subTitleText = "subTitleText"; + var chartDataList = []; + var resourceNameList = []; + var timeList = []; + + // get table datas + var tableObj = document.getElementById("ict_pm_data"); + if (tableObj == null || tableObj.rows.length < 1) { + return; + } + + // distinguish between chart types + var ratioType = tableObj.rows[0].cells[5].innerText; + if (ratioType.indexOf("CPU") > -1) { + chartType = "CPU"; + subTitleText = "CPU USE RATIO"; + } else if (ratioType.indexOf("RAM") > -1) { + chartType = "RAM"; + subTitleText = "RAM USE RATIO"; + } else if (ratioType.indexOf("VOLUME") > -1) { + chartType = "FILESYSTEM"; + subTitleText = "LOGIC VOLUME FILESYSTEM USE RATIO"; + } else if (ratioType.indexOf("NIC") > -1) { + chartType = "NIC"; + subTitleText = "ERROR PACKET RATIO BY ONE COLLECT-PERIOD (SEND AND RECEIVED)"; + } else { + return; + } + + // collect datas for chart horizontal axis + for (var i = 1; i < tableObj.rows.length; i++) { + var strTime = tableObj.rows[i].cells[0].innerText; + + if (timeList.length == 0) { + // push the first start time into the x-axis + timeList.push(strTime); + } else { + // push the start times into the x-axis and sort them + for (var j = 0; j < timeList.length; j++) { + if (timeList[j] == strTime) { + break; + } else if (timeList[j] > strTime) { + timeList.splice(j, 0, strTime); + break; + } else if (j + 1 == timeList.length && timeList[j] < strTime) { + timeList.push(strTime); + break; + } + } + } + } + + // create chart resources + for (var i = 1; i < tableObj.rows.length; i++) { + var strTime = tableObj.rows[i].cells[0].innerText; + var ratioIndex = getListIndex(timeList, strTime); + var strName = ""; + var strRatio = ""; + + if (chartType == "CPU" || chartType == "RAM") { + strName = tableObj.rows[i].cells[4].innerText; + strRatio = tableObj.rows[i].cells[5].innerText; + } else if (chartType == "FILESYSTEM") { + strName = tableObj.rows[i].cells[4].innerText + "(" + tableObj.rows[i].cells[6].innerText + ")"; + strRatio = tableObj.rows[i].cells[9].innerText; + } else if (chartType == "NIC") { + strName = tableObj.rows[i].cells[4].innerText + "(" + tableObj.rows[i].cells[5].innerText + ")"; + strRatio = parseFloat(tableObj.rows[i].cells[10].innerText) + parseFloat(tableObj.rows[i].cells[11].innerText); + } + + if (chartDataList.length == 0) { + // create the first chart resource and push it into the chartlist + insertChartDataList(chartDataList, strName, strRatio, ratioIndex); + } else { + // update the chart resources which exist in chartlist + var existFlg = false; + for (var j = 0; j < chartDataList.length; j++) { + if (chartDataList[j].name == strName) { + chartDataList[j].data[ratioIndex] = strRatio; + existFlg = true; + break; + } + } + + // create a new chart resource and push it into the chartlist + if (!existFlg) { + insertChartDataList(chartDataList, strName, strRatio, ratioIndex); + } + } + } + + for (var i = 0; i < chartDataList.length; i++) { + // complete length of datalist for each chart resource + if (chartDataList[i].data.length < timeList.length) { + chartDataList[i].data[timeList.length - 1] = ""; + } + + // create the name list of chart resources + resourceNameList.push(chartDataList[i].name); + } + + // initialize the chart + var dom = document.getElementById("chartCanvasDiv"); + var myChart = echarts.init(dom); + option = null; + + // set the chart by collected chart resources + option = { + title: { + text: titleText, + subtext: subTitleText, + x: 'center' + }, + tooltip: { + trigger: 'axis' + }, + legend: { + data:resourceNameList, + top: '10%' + }, + grid: { + top: '20%' + }, + toolbox: { + show: true, + feature: { + magicType: {type: ['line', 'bar']}, + restore: {}, + saveAsImage: {} + } + }, + xAxis: { + type: 'category', + boundaryGap: false, + data : timeList.map(function (str) { + return str.replace(' ', '\n') + }) + }, + yAxis: { + name : 'percentage(%)', + type: 'value' + }, + series: chartDataList + }; + + // draw the performance chart of all resources + if (option && typeof option === "object") { + myChart.setOption(option, true); + }; +}; + +// define the struct of chart resource +function chartData() { + this.name = ""; + this.type = "line"; + this.smooth = true; + this.data = []; +}; + +// create a new chart resource and push it into the chartlist +function insertChartDataList(chartDataList, name, data, dataIndex) { + var cd = new chartData(); + cd.name = name; + cd.data[dataIndex] = data; + chartDataList.push(cd); +}; + +// return the index of the specified element in the list +function getListIndex(list, data) { + var dataIndex = 0; + for (var i = 0; i < list.length; i++) { + if (list[i] == data) { + return i; + } + } + return dataIndex; +}; diff --git a/performance/src/main/webapp/performance/js/performanceQueryController.js b/performance/src/main/webapp/performance/js/performanceQueryController.js new file mode 100644 index 00000000..50dc3a89 --- /dev/null +++ b/performance/src/main/webapp/performance/js/performanceQueryController.js @@ -0,0 +1,810 @@ +/* + * Copyright 2016-2017, CMCC Technologies Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +var pm = {}; +pm.query = {}; +pm.query.vmPmQuery = avalon.define({ + $id: "pmQueryController", + tableTitle:'', + pmDataVisable:true, + pmChartVisable:false, + tableIconVisable:false, + chartIconVisable:false, + queryRuleVisable:false, + boxVisible:true, + pmQueries:[], + + $postData:{}, + + beginTime: "", + endTime: "", + granularity:"", + + granularities: [ + {id: '5', name: $.i18n.prop('com_zte_ums_ict_pm_query_5'), value: true}, + {id: '15', name: $.i18n.prop('com_zte_ums_ict_pm_query_15'), value: false}, + {id: '60', name: $.i18n.prop('com_zte_ums_ict_pm_query_60'), value: false} + ], + + granularityClicked: function(modelItem, item){ + if(modelItem.id =="5"){ + pm.query.vmPmQuery.granularity = "5*60"; + pm.query.vmPmQuery.granularities[0].value = true; + pm.query.vmPmQuery.granularities[1].value = false; + pm.query.vmPmQuery.granularities[2].value = false; + }else if(modelItem.id =="15"){ + pm.query.vmPmQuery.granularity = "15*60"; + pm.query.vmPmQuery.granularities[0].value = false; + pm.query.vmPmQuery.granularities[1].value = true; + pm.query.vmPmQuery.granularities[2].value = false; + }else{ + pm.query.vmPmQuery.granularity = "60*60"; + pm.query.vmPmQuery.granularities[0].value = false; + pm.query.vmPmQuery.granularities[1].value = false; + pm.query.vmPmQuery.granularities[2].value = true; + } + }, + + resources: [ + /* {id: 'vnfInstance', name: $.i18n.prop('ngict-pm-iui-name-vnfInstance'), value: "SSS"}, + {id: 'host', name: $.i18n.prop('ngict-pm-iui-name-host'), value: ""} */ + ], + + resourcesMap:{}, + + resourceSlected:[], + + resourceSlectedObjs:[], + + rmSelectedResource: function(modelItem, elem){ + $(elem).parent().remove(); + pm.query.vmPmQuery.resourceSlected.splice(pm.query.vmPmQuery.resourceSlected.indexOf(modelItem.id), 1); + }, + + initResources: function(resourceTypeId){ + var that = this; + $.ajax({ + async: false, + "dataType": 'json', + "type": "GET", + "url": "/openoapi/umc/v1/pm/resources", + "contentType": 'application/json; charset=utf-8', + "success": function (res, textStatus, jqXHR) { + //var nodes = res.content; + var nodes = res; + that.resources = []; + for (var i = 0; i < nodes.length; i++) { + var resource = { + id: nodes[i].id, + name: nodes[i].name, + resType: nodes[i].resType + }; + that.resources.push(resource); + //保存id和resource的映射关系 + var resourceCopy = { + id: nodes[i].id, + name: nodes[i].name, + resType: nodes[i].resType + }; + that.resourcesMap[nodes[i].id] = resourceCopy; + } + //过滤框注册 + $("input[id=resourcesToFilter]").keyup(function(){ + $("table#resources tbody tr").hide().filter(":contains('"+( $(this).val() )+"')").show(); + }); + }, + "error": function () { + } + }); + }, + + resTypeArray : [], + selectedResourceType : "", + selectedResourceTypeId : "", + + moTypeArray:[], + selectedMoType:"", + selectedMoTypeId:"", + + counterArray:[], + selectedCounter:[], + + resTypeSelectAction:function(){ + var resourceTypeId = getIdFromName(pm.query.vmPmQuery.selectedResourceType,pm.query.vmPmQuery.resTypeArray); + pm.query.vmPmQuery.selectedResourceTypeId = resourceTypeId; + getMoTypeArray(resourceTypeId); + pm.query.vmPmQuery.counterArray=[]; + pm.query.vmPmQuery.initResources(resourceTypeId); + }, + moTypeSelectAction:function(obj){ + var resourceTypeId=getIdFromName(pm.query.vmPmQuery.selectedResourceType,pm.query.vmPmQuery.resTypeArray); + //var moTypeId=$(obj).val(); + var moTypeId = getIdFromName(pm.query.vmPmQuery.selectedMoType, pm.query.vmPmQuery.moTypeArray); + pm.query.vmPmQuery.selectedMoTypeId = moTypeId; + getCounterArray(resourceTypeId,moTypeId); + }, + /* counterSelectAction:function(obj){ + var counterId=$(obj).val(); + pm.query.vmPmQuery.selectedCounter=counterId; + pm.query.vmPmQuery.indexDescription+=pm.query.vmPmQuery.selectedCounter; + }, */ + returnQueryPage: function(){ + pm.query.vmPmQuery.pmDataVisable=true; + pm.query.vmPmQuery.pmChartVisable=false; + pm.query.vmPmQuery.tableIconVisable=false; + pm.query.vmPmQuery.chartIconVisable=true; + pm.query.vmPmQuery.queryRuleVisable=false; + pm.query.vmPmQuery.clickDisplayGraphAlink(); + }, + + queryRuleView: function(event, el){ + event.stopPropagation(); + + pm.query.vmPmQuery.tableTitle=$.i18n.prop('com_zte_ums_ict_pm_query_edit'); + + //取得测量任务详情 + var elem = {}; + $.ajax({ + async: false, + "dataType": 'json', + "type": "GET", + "url": "/openoapi/umc/v1/pm/meatasks/" + el.id, + "data": null, + "contentType": 'application/json; charset=utf-8', + "success": function (res, textStatus, jqXHR) { + elem = res; + }, + "error": function () { + } + }); + + pm.query.vmPmQuery.pmDataVisable=false; + pm.query.vmPmQuery.pmChartVisable=false; + pm.query.vmPmQuery.tableIconVisable=false; + pm.query.vmPmQuery.chartIconVisable=false; + pm.query.vmPmQuery.queryRuleVisable=true; + + pm.query.vmPmQuery.beginTime = elem.beginTime; + pm.query.vmPmQuery.endTime = elem.endTime; + + var timetext = pmUtil.formatTime(pm.query.vmPmQuery.beginTime) + " - " + pmUtil.formatTime(pm.query.vmPmQuery.endTime); + $("#queryTimeRange").val(timetext); + + //选择粒度 + pm.query.vmPmQuery.granularity = elem.granularity; + var granularity = pm.query.vmPmQuery.granularity / 60; + var granularities = pm.query.vmPmQuery.granularities; + for(var i=0;i tr > td:nth-child(1) input[type="checkbox"]', table); + var checked = $(this).is(":checked"); + $(set).each(function () { + //$(this).attr("checked", checked); + if(checked){ + if(!$(this).is(":checked")){ + $(this).click(); + } + }else{ + if($(this).is(":checked")){ + $(this).click(); + } + } + }); + }); + + $('.resourceAll').unbind().bind("change", function () { + var table = $("table#resources"); + var set = $('tbody > tr > td:nth-child(1) input[type="checkbox"]', table); + var checked = $(this).is(":checked"); + $(set).each(function () { + //$(this).attr("checked", checked); + if(checked){ + if(!$(this).is(":checked")){ + $(this).click(); + } + }else{ + if($(this).is(":checked")){ + $(this).click(); + } + } + }); + }); + //国际化 + var i18nItems = $("[name_i18n=openo_performance_i18n]"); + for(var i=0;i  å¤„理中...", + "sLengthMenu": $.i18n.prop("ngict-log-iui-table-sLengthMenu"), + "sZeroRecords": $.i18n.prop("ngict-log-iui-table-sZeroRecords"), + "sInfo": " " + $.i18n.prop("ngict-log-iui-table-sInfo"), + "sInfoEmpty": $.i18n.prop("ngict-log-iui-table-sInfoEmpty"), + "sGroupActions": $.i18n.prop("ngict-log-iui-table-sGroupActions"), + "sAjaxRequestGeneralError":$.i18n.prop("ngict-log-iui-table-sAjaxRequestGeneralError"), + "sEmptyTable": $.i18n.prop("ngict-log-iui-table-sEmptyTable"), + "oPaginate": { + "sPrevious": $.i18n.prop("ngict-log-iui-table-sPrevious"), + "sNext": $.i18n.prop("ngict-log-iui-table-sNext"), + "sPage": $.i18n.prop("ngict-log-iui-table-sPage"), + "sPageOf": $.i18n.prop("ngict-log-iui-table-sPageOf") + } + }, + $initTable: function () { + var setting = {}; + setting.language = this.$language; + setting.columns = this.$queryDataTableFields; + setting.pageHtml="r<'table-scrollable't><'row page-info-bottom'<'col-md-12 col-sm-12'lip>>>"; + setting.restUrl = "/openoapi/umc/v1/pm/historydataqueries"; + setting.tableId = "ict_pm_data"; + serverPageTable.initDataTable(setting, 'ict_pm_data_div' ); + } +}); + +pm.query.vmPmQuery.resourceSlected.$watch("length", function(newValue, oldValue){ + var resourceSlected = pm.query.vmPmQuery.resourceSlected; + //pm.query.vmPmQuery.resourceSlectedObjs = []; + var resourceSlectedObjs = []; + for(var i=0;i0){ + pm.query.vmPmQuery.selectedResourceType=pm.query.vmPmQuery.resTypeArray[0].name; + resourceTypeId=pm.query.vmPmQuery.resTypeArray[0].id; + pm.query.vmPmQuery.selectedDataType=pm.query.vmPmQuery.dataTypeArray[0].name; + getMoTypeArray( pm.query.vmPmQuery.resTypeArray[0].id); + getCounterArray(resourceTypeId,moTypeId); + } */ +}(); + +function getMoTypeArray(resourceTypeId){ + if(resourceTypeId){ + //获取测量类型 + var url="/openoapi/umc/v1/pm/motypes"; + var data={}; + data.resourceTypeId=resourceTypeId; + $.ajax({ + "type": 'get', + "url": url, + data:data, + "dataType": "json", + "async": false, + "success": function (resp) { + //pm.query.vmPmQuery.moTypeArray= resp.content; + pm.query.vmPmQuery.moTypeArray= resp; + }, + "error":function(resp){ + pm.query.vmPmQuery.moTypeArray=[]; + //for test + /* var res = {"message":null,"content":[{"name":"性能KPI-1","id":"ns.cn.ims.metrictype"},{"name":"性能KPI-2","id":"ns.cn.ims.metrictype1"},{"name":"性能KPI-3","id":"ns.cn.ims.metrictype2"},{"name":"性能KPI-4","id":"ns.cn.ims.metrictype3"},{"name":"性能KPI-5","id":"ns.cn.ims.metrictype4"}],"status":0}; + pm.query.vmPmQuery.moTypeArray = res.content; */ + } + }); + } +} + +function getCounterArray(MoTypeId){ + if(MoTypeId){ + var url="/openoapi/umc/v1/pm/motypes/"+MoTypeId+"/counters"; + var data={}; + data.moTypeId=MoTypeId; + $.ajax({ + "type": 'get', + "url": url, + "dataType": "json", + data:data, + "async": false, + "success": function (resp) { + //pm.query.vmPmQuery.counterArray= resp.content; + pm.query.vmPmQuery.counterArray= resp; + //默认全选 + pm.query.vmPmQuery.selectedCounter = []; + for(var i=0;i/g, ">"); + s = s.replace(/ /g, " "); + s = s.replace(/\'/g, "'"); + s = s.replace(/\"/g, """); + s = s.replace(/\n/g, "
    "); + return s; +}; +pmUtil.indexOperate = function (obj) { + + var aIndex={}; + aIndex.id=obj.aData.id; + aIndex.name=obj.aData.indexName; + aIndex.dataType=obj.aData.indexDataType; + aIndex.indexDes=obj.aData.indexDes; + aIndex.strExpression=obj.aData.strExpression; + aIndex.resourceType=obj.aData.resourceType; + aIndex.moType=obj.aData.moType; + var index = html_encode(JSON.stringify(aIndex)); + var indexId = obj.aData.id; + var innerHtml = ""; + + return innerHtml; +}; +pmUtil.dataTypeRender = function (obj) { + var record = obj.aData; + obj.aData.indexDataType=obj.aData.dataType; + var innerHtml = ""+$.i18n.prop(record.dataType)+"" + return innerHtml; +}; +pmUtil.indexNameLink = function (obj) { + var index = html_encode(JSON.stringify(obj.aData)); + obj.aData.indexName=obj.aData.name; + return "" + obj.aData.name + ""; +}; +pmUtil.queryIndex=function(index){ + + newIndexWizard(commonUtil.strToJson(index),"query"); + pm.index.vm.title="查看指标"; + $(".form-group").attr("disabled",true); + pm.index.vm.viewVisible=false; + pm.index.vm.rtnVisible=true; + pm.index.vm.indexVisible=true; +}; +pmUtil.addIndex=function(){ + + newIndexWizard(); + pm.index.vm.title="新建指标"; + pm.index.vm.viewVisible=false; + pm.index.vm. indexVisible=true; +}; +pmUtil.modifyIndex=function(index){ + + newIndexWizard(commonUtil.strToJson(index)); + pm.index.vm.title="修改指标"; + pm.index.vm.viewVisible=false; + pm.index.vm.indexVisible=true; +}; +pmUtil.deleteIndex=function(indexId,moTypeId){ + bootbox.confirm($.i18n.prop('com_zte_ums_ict_sm_confirmToDeleteIndex'), function (result) { + if (result) { + var ids=[]; + var del={}; + ids.push(indexId); + del.ids=ids; + $.ajax({ + "dataType": 'json', + "type": "DELETE", + "url": "/api/umcpm/v1/motype/"+moTypeId+"/indexes", + "data" : JSON.stringify(del), + "contentType": 'application/json; charset=utf-8', + "success": function (res, textStatus, jqXHR) { + window.location.href="./indexView.html"; + }, + "error": function () { + } + }); + } + }); +} + +pmUtil.idLink = function (obj) { + var record = obj.aData; + var thresholdId = new String(record.id); + return "" + thresholdId + ""; +} + +pmUtil.congfirmDel = function (obj) { + bootbox.confirm($.i18n.prop('com_zte_ums_ict_sm_confirmToDeleteThreshold'), function (result) { + if (result) { + pm.threshold.vm.deleteThreshold(obj); + } + }); +} + +pmUtil.allOperate = function (obj) { + + var record = obj.aData; + var thresholdId = record.id; + //此时的id字段已经被渲染成html片段,如10001需要提取id + thresholdId = thresholdId.substring(thresholdId.indexOf("('") + 2, thresholdId.indexOf("')")); + + var innerHtml = ""; + + innerHtml = ""; + + return innerHtml; +} + +//获取QueryId +pmUtil.getUrlParam=function(name){ + var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象 + var search =decodeURIComponent(location.search.substring(1)); //decodeURIComponent() 函数可对 encodeURIComponent() 函数编码的 URI 进行解码。 + var r =search.match(reg); //匹配目标参数 + if (r != null) return unescape(r[2]); //unescape() 函数可对通过 escape() 编码的字符串进行解码。 + return null; //返回参数值 +} + + +pmUtil.addMeatask = function() { + newMeataskWizard(); + pm.meatask.vm.pageTitle="新建任务"; + pm.meatask.vm.viewVisible=false; + pm.meatask.vm.createMeataskVisible=true; + pm.meatask.vm.queryMeataskVisible=false; +} + +pmUtil.meataskOperate = function (obj) { + var record = obj.aData; + var meataskId = record.id; + //此时的id字段已经被渲染成html片段,如10001需要提取id + meataskId = meataskId.substring(meataskId.indexOf("('") + 2, meataskId.indexOf("')")); + + var innerHtml = ""; + + innerHtml = + [ + "" + ].join("\n"); + return innerHtml; +} + +pmUtil.getActiveStatus = function(obj) { + var meataskId = obj.aData.id; + meataskId = meataskId.substring(meataskId.indexOf("('") + 2, meataskId.indexOf("')")); + var activeStatus = obj.aData.activeStatus; + + var prefixStr = ""; + var suffixStr = ""; + if(activeStatus == 0){ + prefixStr = "暂停"; + }else{ + prefixStr = "激活"; + } + + var innerHtml = prefixStr + meataskId + "'," + activeStatus + "," + obj.iDataRow + suffixStr; + + return innerHtml; +} + +pmUtil.granularityRender = function(obj) { + var data = obj.aData; + switch(data.granularity){ + case (300): + return "5分钟"; + case (900): + return "15分钟"; + case (3600): + return "1小时"; + } + return "5分钟"; +} + +pmUtil.queryMeatask = function(meataskId) { + queryMeataskWizard("queryID"); + pm.meatask.vm.pageTitle="查询任务"; + pm.meatask.vm.viewVisible=false; + pm.meatask.vm.createMeataskVisible=false; + pm.meatask.vm.queryMeataskVisible=true; + + $("#queryMeataskSubmit").click(function() { + pm.meatask.vm.$showResultTable(); + }); +} + +pmUtil.meataskIdLink = function(obj) { + var meatskId = obj.aData.id; + return "" + meatskId + ""; +} + +pmUtil.viewMeataskById = function(meatskId) { + newMeataskWizard(meatskId); + pm.meatask.vm.pageTitle="查看任务"; + pm.meatask.vm.viewVisible=false; + pm.meatask.vm.createMeataskVisible=true; + pm.meatask.vm.queryMeataskVisible=false; +} + +pmUtil.timeRender = function( obj ){ + var time=obj.aData[obj.mDataProp]; + if(time!="0"){ + var date = new Date(obj.aData[obj.mDataProp]); + return commonUtil.parseDate(date , 'yyyy-MM-dd hh:mm:ss'); + } +}; + +pmUtil.deleteMeatask=function(meataskId, row){ + bootbox.confirm("确认删除此任务吗?", function (result) { + if (result) { + $("#ict_meatask_table_div tr:eq("+(row+1)+")").attr('style', 'display:none;'); + } + }); +} + +pmUtil.modifyMeatask = function(meataskId, row) { + modifyMeataskWizard("modifyID"); + pm.meatask.vm.pageTitle="修改任务"; + pm.meatask.vm.viewVisible=false; + pm.meatask.vm.createMeataskVisible=true; + pm.meatask.vm.queryMeataskVisible=false; +} + +pmUtil.randomCPU = function() { + var percent = Math.random()*100; + percent = Math.round(percent); + return percent + "%"; +} + +pmUtil.calculateTime = function(obj) { + var data = obj.aData; + var time = data.beginTime + data.granularity; + + if(time!="0"){ + var date = new Date(data.granularity * 1000 + obj.aData[obj.mDataProp]); + return commonUtil.parseDate(date , 'yyyy-MM-dd hh:mm:ss'); + } +} + +pmUtil.queryMeatask = function(meataskId) { + pm.meatask.vm.pageTitle="查询任务"; + pm.meatask.vm.viewVisible=false; + pm.meatask.vm.createMeataskVisible=false; + pm.meatask.vm.queryMeataskVisible=true; +} + +pmUtil.setDateRange = function (dataRangeId, vm) { + + var open = 'right'; + + //var month = $.i18n.prop('ngict-iui-dateRange-month'); + + var optionSet1 = { + + //startDate: moment().subtract(179, 'days'), + + //endDate: moment(), + + startDate : "2015-12-31", + + endDate : "2016-2017-12-31", + + //format: 'YYYY-MM-DD', + format : 'YYYY-MM-DD h:mm A', + + dateLimit : { + days : 180 + }, + + showWeekNumbers : false, + + timePicker : true, + timePickerIncrement : 5, + + opens : open, + + separator : ' - ', + + locale : { + + applyLabel : $.i18n.prop('ngict-iui-dateRange-applyLabel'), + + cancelLabel : $.i18n.prop('ngict-iui-dateRange-cancelLabel'), + + fromLabel : $.i18n.prop('ngict-iui-dateRange-fromLabel'), + + toLabel : $.i18n.prop('ngict-iui-dateRange-toLabel'), + + customRangeLabel : $.i18n.prop('ngict-iui-dateRange-customRangeLabel'), + + daysOfWeek : [ + + $.i18n.prop('ngict-iui-dateRange-Sunday'), + + $.i18n.prop('ngict-iui-dateRange-Monday'), + + $.i18n.prop('ngict-iui-dateRange-Tuesday'), + + $.i18n.prop('ngict-iui-dateRange-Wednesday'), + + $.i18n.prop('ngict-iui-dateRange-Thursday'), + + $.i18n.prop('ngict-iui-dateRange-Friday'), + + $.i18n.prop('ngict-iui-dateRange-Saturday')], + + //monthNames : ['1' + month, '2' + month, '3' + month, '4' + month, '5' + month, '6' + month, '7' + month, '8' + month, '9' + month, '10' + month, '11' + month, '12' + month], + + //months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], + + monthNames: [$.i18n.prop('ngict-iui-dateRange-Jan'), + $.i18n.prop('ngict-iui-dateRange-Feb'), + $.i18n.prop('ngict-iui-dateRange-Mar'), + $.i18n.prop('ngict-iui-dateRange-Apr'), + $.i18n.prop('ngict-iui-dateRange-May'), + $.i18n.prop('ngict-iui-dateRange-Jun'), + $.i18n.prop('ngict-iui-dateRange-Jul'), + $.i18n.prop('ngict-iui-dateRange-Aug'), + $.i18n.prop('ngict-iui-dateRange-Sep'), + $.i18n.prop('ngict-iui-dateRange-Oct'), + $.i18n.prop('ngict-iui-dateRange-Nov'), + $.i18n.prop('ngict-iui-dateRange-Dec')], + + firstDay : 1 + + } + + }; + + //datarangepicker确认 + $('input[id="' + dataRangeId + '"]').bind('apply.daterangepicker', function () { + + //获取时间范围,查询 + + // 都设置为0点 + + pmUtil.setTime($(this)); + + // 更新tooltip内容 + //$(this).attr("data-original-title", $(this).val()); + + }); + + $('input[id="' + dataRangeId + '"]').daterangepicker(optionSet1); + +}; + +//daterangepicker设置时间 +pmUtil.setTime = function setTime($obj) { + + //var title = $obj.attr('dtitle'); + + var arr = $obj.val().split(' - '); + + //排除日历组件空字符串的情况。 + + if (arr[0] != '') { + + var beginTime = new Date(arr[0].replace(/-/g, "/")).getTime(); + + var endTime = new Date(arr[1].replace(/-/g, "/")).getTime(); + + pm.query.vmPmQuery.beginTime = beginTime; + + pm.query.vmPmQuery.endTime = endTime; + + } + +} + +pmUtil.formatTime = function formatTime(ms) { + var date = new Date(ms); + return date.format("yyyy-MM-dd hh:mm:ss"); +} + +/*格式化日期*/ + +Date.prototype.format = function (format) { + + /* + + * format="yyyy-MM-dd hh:mm:ss"; + + */ + + var o = { + + "M+" : this.getMonth() + 1, + + "d+" : this.getDate(), + + "h+" : this.getHours(), + + "m+" : this.getMinutes(), + + "s+" : this.getSeconds(), + + "q+" : Math.floor((this.getMonth() + 3) / 3), + + "S" : this.getMilliseconds() + + } + + if (/(y+)/.test(format)) { + + format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 + + - RegExp.$1.length)); + + } + + for (var k in o) { + + if (new RegExp("(" + k + ")").test(format)) { + + format = format.replace(RegExp.$1, RegExp.$1.length == 1 + + ? o[k] + + : ("00" + o[k]).substr(("" + o[k]).length)); + + } + + } + + return format; + +} \ No newline at end of file diff --git a/performance/src/main/webapp/performance/js/serverPageTable.js b/performance/src/main/webapp/performance/js/serverPageTable.js new file mode 100644 index 00000000..6503e8e6 --- /dev/null +++ b/performance/src/main/webapp/performance/js/serverPageTable.js @@ -0,0 +1,232 @@ +/* + * Copyright 2016-2017, CMCC Technologies Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +var serverPageTable = {}; +/* Bootstrap style full number pagination control */ +$.fn.dataTableExt.oApi.fnPagingInfo = function ( oSettings ) +{ + return { + "iStart": oSettings._iDisplayStart, + "iEnd": oSettings.fnDisplayEnd(), + "iLength": oSettings._iDisplayLength, + "iTotal": oSettings.fnRecordsTotal(), + "iFilteredTotal": oSettings.fnRecordsDisplay(), + "iPage": Math.ceil( oSettings._iDisplayStart / oSettings._iDisplayLength ), + "iTotalPages": Math.ceil( oSettings.fnRecordsDisplay() / oSettings._iDisplayLength ) + }; +}; + +$.extend( $.fn.dataTableExt.oPagination, { + "bootstrap_extended": { + "fnInit": function( oSettings, nPaging, fnDraw ) { + var oLang = oSettings.oLanguage.oPaginate; + var oPaging = oSettings.oInstance.fnPagingInfo(); + + var fnClickHandler = function ( e ) { + e.preventDefault(); + if ( oSettings.oApi._fnPageChange(oSettings, e.data.action) ) { + fnDraw( oSettings ); + } + }; + + $(nPaging).append( + '
    ' + oLang.sPage + ' ' + + '' + + '' + + ' ' + + oLang.sPageOf + ' ' + + '
    ' + ); + + var els = $('a', nPaging); + + $(els[0]).bind('click.DT', { action: "previous" }, fnClickHandler ); + $(els[1]).bind('click.DT', { action: "next" }, fnClickHandler); + + $('.pagination-panel-input', nPaging).bind('change.DT', function(e) { + var oPaging = oSettings.oInstance.fnPagingInfo(); + e.preventDefault(); + var page = parseInt($(this).val()); + if (page > 0 && page < oPaging.iTotalPages) { + if ( oSettings.oApi._fnPageChange(oSettings, page-1) ) { + fnDraw( oSettings ); + } + } else { + $(this).val(oPaging.iPage + 1); + } + }); + + $('.pagination-panel-input', nPaging).bind('keypress.DT', function(e) { + var oPaging = oSettings.oInstance.fnPagingInfo(); + if (e.which == 13) { + var page = parseInt($(this).val()); + if (page > 0 && page < oSettings.oInstance.fnPagingInfo().iTotalPages) { + if ( oSettings.oApi._fnPageChange(oSettings, page-1) ) { + fnDraw( oSettings ); + } + } else { + $(this).val(oPaging.iPage + 1); + } + e.preventDefault(); + } + }); + }, + + "fnUpdate": function ( oSettings, fnDraw ) { + var iListLength = 5; + var oPaging = oSettings.oInstance.fnPagingInfo(); + var an = oSettings.aanFeatures.p; + var i, j, sClass, iStart, iEnd, iHalf=Math.floor(iListLength/2); + + if ( oPaging.iTotalPages < iListLength) { + iStart = 1; + iEnd = oPaging.iTotalPages; + } + else if ( oPaging.iPage <= iHalf ) { + iStart = 1; + iEnd = iListLength; + } else if ( oPaging.iPage >= (oPaging.iTotalPages-iHalf) ) { + iStart = oPaging.iTotalPages - iListLength + 1; + iEnd = oPaging.iTotalPages; + } else { + iStart = oPaging.iPage - iHalf + 1; + iEnd = iStart + iListLength - 1; + } + + + for ( i=0, iLen=an.length ; i'+j+'') + .insertBefore( $('li.next:first', an[i])[0] ) + .bind('click', function (e) { + e.preventDefault(); + oSettings._iDisplayStart = (parseInt($('a', this).text(),10)-1) * oPaging.iLength; + fnDraw( oSettings ); + } ); + } + + // Add / remove disabled classes from the static elements + if ( oPaging.iPage === 0 ) { + $('a.prev', an[i]).addClass('disabled'); + } else { + $('a.prev', an[i]).removeClass('disabled'); + } + + if ( oPaging.iPage === oPaging.iTotalPages-1 || oPaging.iTotalPages === 0 ) { + $('a.next', an[i]).addClass('disabled'); + } else { + $('a.next', an[i]).removeClass('disabled'); + } + } + } + } +} ); +serverPageTable.initDataTable = function( setting , divId ,pageInfos) { + serverPageTable.pageInfo = pageInfos; + //转换colomn + + var column = setting.columns; + //先把原来的表格清空 + $('#'+ divId).children().remove(); + var tableId = setting.tableId; + var tableEleStr = '
    ' + column[3].name + '' + null2space(aData[column[3].mData]) + '' + column[8].name + '' + null2space(vm.alTypes[aData[column[8].mData]]) + '
    ' + column[9].name + '' + null2space(aData[column[9].mData]) + '' + column[7].name + '' + null2space(aData[column[7].mData]) + '
    ' + column[6].name + '' + null2space(aData[column[6].mData]) + '' + column[11].name + '' + null2space(aData[column[11].mData]) + '
    ' + column[10].name + '' + null2space(aData[column[10].mData]) + '' + column[13].name + '' + null2space(aData[column[13].mData]) + '
    ' + column[12].name + '' + null2space(aData[column[12].mData]) + '' + column[5].name + '' + null2space(aData[column[5].mData]) + '
    ' + column[23].name + '' + null2space(aData[column[23].mData]) + '' + column[4].name + '' + null2space(aData[column[4].mData]) + '
    ' + column[5].name + '' + aData[column[5].mData] + '
    ' + column[4].name + '' + aData[column[4].mData] + '
    ' + column[22].name + '' + aData[column[22].mData] + '
    ' + column[22].name + '' + aData[column[22].mData] + '
    ' + column[12].name + '' + aData[column[12].mData] + '' + column[17].name + '' + aData[column[17].mData] + '
    ' + column[16].name + '' + null2space(aData.additionalText) + '
    '+column[i].name+':' + aData[column[i].mData] + '
    " + text + "
    ' + + '' + +'' + + '' + + '' + +'' + +'' + +'
    '; + $('#'+ divId).append(tableEleStr); + //$('#'+ tableId).append(' '); + var trEle = $('#'+ tableId + ' > thead >tr'); + //var dataTableColumn = []; + for ( var one in column){ + var th = '' + column[one].name + ''; + trEle.append(th); + } + serverPageTable.pageInfo = pageInfos; + if(!setting.pageHtml){ + pageHtml="<'row'<'col-md-12 col-sm-12'lip>r><'table-scrollable't>>"; + }else{ + pageHtml=setting.pageHtml; + } + var table = $("#" + tableId).dataTable({ + //"sDom" : "tr<'row'<'col-md-6 col-sm-12'><'col-md-6 col-sm-12'pli>>", // datatable layout + "sDom" : pageHtml, + "oLanguage": setting.language,//汉化 + "bJQueryUI": true, + "bPaginate": true,// 分页按钮 + "bFilter": false,// 搜索栏 + "bAutoWidth":true,//自动设置列宽 + "bLengthChange": true,// 每行显示记录数 + "iDisplayLength": 10,// 每页显示行数 + "bSort": false,// 排序 + "bInfo": true,// Showing 1 to 10 of 23 entries 总记录数没也显示多少等信息 + "bWidth": true, + "bScrollCollapse": true, + "sPaginationType": "bootstrap_extended", // 分页,一共两种样式 另一种为two_button // 是datatables默认 + "bProcessing": true, + "bServerSide": true, + "bDestroy": true, + "bSortCellsTop": true, + "sAjaxSource": setting.restUrl, + "aoColumns": setting.columns, + "fnServerData": function (sSource, aoData, fnCallback, oSettings) { + fnServerData(sSource, aoData, fnCallback, oSettings); + } + }); + $('#'+ tableId + '>tbody').on('click', 'td.details-control', function () { + var tr = $(this).closest('tr'); + //var nTr = $(this).parents('tr')[0]; + //var row = table.row( tr ); + if ( table.fnIsOpen(tr[0]) ){ + table.fnClose( tr[0] ); + //if ( row.child.isShown() ) { + // This row is already open - close it + //row.child.hide(); + tr.removeClass('shown'); + } + else { + // Open this row + table.fnOpen( tr[0], format_Detail(table, tr[0],column) ); + //row.child( format_Detail(row.data()) ).show(); + tr.addClass('shown'); + } + } ); + return table; + + +}; + + + + diff --git a/performance/src/main/webapp/performance/performance_query_rule.html b/performance/src/main/webapp/performance/performance_query_rule.html new file mode 100644 index 00000000..95dc8a9b --- /dev/null +++ b/performance/src/main/webapp/performance/performance_query_rule.html @@ -0,0 +1,156 @@ + +
    +
    +
    +
    +
    +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    {{el.name}}
    +
    +
    +
    +
    +
    + +
    +
    +
    + +
    + +
    +
    +
    +
    +
    + +
    + +
    +
    +
    +
    +
    + +
    + + + + + + + + + + + +
    + + {{elem.name}}
    +
    +
    +
    +
    + +
    +
    +
    + +
    + + + + + + + + + +
    +
    +
    +
    {{elem.name}}
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    + + + + + + + + + + + +
    {{elem.name}}
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    diff --git a/performance/src/main/webapp/performance/performance_view.html b/performance/src/main/webapp/performance/performance_view.html new file mode 100644 index 00000000..3df25bdf --- /dev/null +++ b/performance/src/main/webapp/performance/performance_view.html @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +
    +
    + +
    +
    + +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    + {{tableTitle}} + + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pom.xml b/pom.xml index 32e7a29f..e6557507 100644 --- a/pom.xml +++ b/pom.xml @@ -1,7 +1,7 @@ - - - org.openo.gso.gui - openo-portal - 1.1.0-SNAPSHOT - - 4.0.0 - portal-auth - 1.1.0-SNAPSHOT - war - - - - org.apache.maven.plugins - maven-war-plugin - - false - - - - -gso-gui/openo-portal/portal-auth diff --git a/portal-auth/src/main/webapp/user/changePassword.html b/portal-auth/src/main/webapp/user/changePassword.html deleted file mode 100644 index 33b879d5..00000000 --- a/portal-auth/src/main/webapp/user/changePassword.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - - - - - - - - - -
    -
    Enter the Password Information
    -
    -
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - -
    - * - - User Name: - -
    - -
    -
    -
    - * - - Old Password: - -
    - -
    -
    - -
    - * - - New Password: - -
    - -
    -
    - -
    - * - - Confirm Password: - -
    - -
    -
    - -
    -
    -
    -
    Password Rule:
    - - - - - - - - - - - - - -
    1. Contains a minimum of 8 characters and a maximum of 32;
    2. At least contains: one uppercase letter(A-Z), one lowercase letter(a-z), and one digit(0-9), one special character: ~`@#$%^&*-_=+|?/()<>[]{}",.;'!
    3. Can not contain any the user name or user name in reverse order;
    4. Can not contain space.
    -
    -
    -
    - - -
    - - - diff --git a/portal-auth/src/main/webapp/user/createUser.html b/portal-auth/src/main/webapp/user/createUser.html deleted file mode 100644 index e3d214d2..00000000 --- a/portal-auth/src/main/webapp/user/createUser.html +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - - - - - - - - - - -
    -
    Enter Basic Information
    -
    -
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - -
    - * - - User Name: - -
    - -
    -
    - -
    - * - - Password: - -
    - -
    -
    - -
    - * - - Confirm Password: - -
    - -
    -
    - -
    - - - Description: - -
    - -
    -
    -
    -
    -
    -
    User Name Rule:
    - - - - - - - - - - - - - -
    1. Contains a minimum of 5 characters and a maximum of 30;
    2. Contains only alphanumeric characters(a-z\,A-Z\,0-9);
    3. Can not contain any special characters except "_", which only in the middle of the user name;
    4. Can not contain space.
    -
    Password Rule:
    - - - - - - - - - - - - - -
    1. Contains a minimum of 8 characters and a maximum of 32;
    2. At least contains: one uppercase letter(A-Z), one lowercase letter(a-z), and one digit(0-9), one special character: ~`@#$%^&*-_=+|?/()<>[]{}",.;'!
    3. Can not contain any the user name or user name in reverse order;
    4. Can not contain space.
    -
    -
    -
    - - -
    - - - diff --git a/portal-auth/src/main/webapp/user/css/component.css b/portal-auth/src/main/webapp/user/css/component.css deleted file mode 100644 index 316d018a..00000000 --- a/portal-auth/src/main/webapp/user/css/component.css +++ /dev/null @@ -1,247 +0,0 @@ -/* - * Copyright 2016-2017 Huawei Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -.button_Group { - margin: 15px 0; - overflow: hidden; -} - -.fk_button { - padding: 0 14px; - height: 24px; - float: left; - cursor: pointer; - text-decoration: none; - outline: 0; - border: 1px solid #d3d3d3; - text-align: center; - box-shadow: 0 1px 1px rgba(0,0,0,.05); - background: #fafafa; - background: -moz-linear-gradient(top,#fff,#fafafa); - background: -webkit-gradient(linear,left top,left bottom,color-stop(0,#fff),color-stop(100%,#fafafa)); - background: -webkit-linear-gradient(top,#fff,#fafafa); - background: linear-gradient(to bottom,#fff,#fafafa); - border-radius: 6px!important; -} -.fk_button:hover { - color: #009ae7; - border: 1px solid #4AC9FF -} -.fk_button:active { - color: #0000; - border: 1px solid #4AC9FF -} - -.button_Group > button { - margin-right: 10px; -} -.add_imag { - background-image: url(/openoui/user/images/add.png); -} -.delete_imag { - background-image: url(/openoui/user/images/delete.png); -} -.button_imag { - padding-left: 25px; - background-repeat: no-repeat; - background-position: 5px center; -} - - -/*table style*/ -table.dataTable thead th { - padding: 0!important; - height: 22px!important; - padding: 1px 10px 0 5px; - overflow: visible; - white-space: nowrap; - background: #f0f0f0!important; - border: 1px solid #ddd; - border-top: 1px solid #e3e3e3!important; - border-left: 1px dotted transparent!important; - border-bottom: 1px solid #e3e3e3!important; - box-sizing: content-box; - text-align: left; - font-weight: -} -table.dataTable tr td { - padding: 0 10px 0 5px!important; - height: 30px!important; - color: #000!important; - border: none!important; - border-left: 1px solid transparent!important; - border-bottom: 1px solid #e3e3e3!important; - overflow: hidden!important; - white-space: nowrap!important; - text-align: left; -} - -table.dataTable th, table.dataTable td { - font-size: 12px!important; - color: #000!important; - max-width: 95%!important; - font-weight: 400!important; -} - -.paginate_button { - color: #666!important; - font-size: 12px!important; - font-family: Lucida Grande,Verdana,Arial,Helvetica,sans-serif!important; - line-height: 24px!important; - text-align: center!important; - border: 1px solid #e0e0e0!important; - text-decoration: none!important; - padding: 0 7px!important; - border-radius: 3px!important; - background: #fff!important; -} -.paginate_button:hover { - color: #666!important; - border: 1px solid #4ac9ff!important; - cursor: pointer!important; -} -.current { - text-decoration: none!important; - color: #fff!important; - border: 1px solid #00adf5!important; - background: #4ad2ff!important; -} - -/*over write the jquery dataTable*/ -.dataTables_wrapper .dataTables_paginate .paginate_button:hover { - color: #666!important; -} -.dataTables_wrapper .dataTables_paginate .paginate_button.current, .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover { - color: #fff!important; -} -table.dataTable tr.odd, table.dataTable tr.odd>.sorting_1 { - background-color: #f9f9f9!important; -} -table.dataTable tr.even, table.dataTable tr.even>.sorting_1 { - background-color: #f7f7f7!important; -} -table.dataTable tbody tr:hover, tbody tr.odd>.sorting_1:hover, tbody tr.even>.sorting_1:hover { - background-color: #E6FBE0!important; -} -table.dataTable.no-footer { - border-bottom: none!important; -} - -/*the length information step style*/ -.dataTables_length, .dataTables_info { - display: inline-block!important; - float: left!important; -} -.left { - display: inline-block; - float: left; - overflow: hidden; - margin: 10px 20px 10px 5px; -} - .right { - display: inline-block; - float: right; - overflow: hidden; - margin-top: 10px; -} -.dataTables_length, .dataTables_info { - display: inline-block;!important; - float: left!important; - clear: none!important; - padding-top: 0!important; -} -.dataTables_length label { - font-size: 0; -} - -/*page select style*/ -.dataTables_length select { - height: 22px; - line-height: 22px; - text-align: center; - margin-right: 5px; - border: 1px solid #e0e0e0; - color: #000; - padding: 1px; -} -.dataTables_length select:active { - text-align: center; - margin-right: 5px; - border: 1px solid #e0e0e0; - color: #000; - padding: 1px; - border-radius: 5px; -} - -/* input style overwrite*/ -.fwk_input { - border: 1px solid #c3c3c3; - background-color: #fff; - padding: 0 0 0 6px; - border-radius: 4px; - color: #000; - display: inline-block; - outline: 0; - box-shadow: 1px 1px #f6f6f6 inset; - font-size: 12px; - background: #fff; - height: 24px; - width: 300px; -} - -.fwk_input:hover, .fwk_input:focus { - border-color: #4ac9ff; - box-shadow: 1px 1px rgba(74,201,255,.2) inset; -} -.fwk_input[type=password] { - -moz-user-select: none; - -khtml-user-select: none; - user-select: none; -} - -.fwk_input:disabled { - background-color: #ededed!important; - color: #666; - box-shadow: 1px 1px #ededed inset!important; - border: 1px solid #e0e0e0!important; - resize: none; -} - -/* input style textarea*/ -.fwk_textarea { - border: 1px solid #c3c3c3; - background-color: #fff; - padding: 0 0 0 6px; - border-radius: 4px; - color: #000; - display: inline-block; - outline: 0; - box-shadow: 1px 1px #f6f6f6 inset; - font-size: 12px; - background: #fff; - height: 72px; - width: 300px; -} - -.fwk_textarea:hover, .fwk_textarea:focus { - border-color: #4ac9ff; - box-shadow: 1px 1px rgba(74,201,255,.2) inset; -} - - - - - - diff --git a/portal-auth/src/main/webapp/user/css/user.css b/portal-auth/src/main/webapp/user/css/user.css deleted file mode 100644 index f9ac4ae6..00000000 --- a/portal-auth/src/main/webapp/user/css/user.css +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Copyright 2016-2017 Huawei Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -* { - font-family: Microsoft Yahei!important; - font-size: 12px; - color: #333; -} - -.hw_body { - background-color: #fafafa!important; - padding-left: 15px; -} - -.delete, .changePsd, .edit { - padding: 0 10px; - cursor: pointer; -} - -.mt20 { - margin: 20px; -} - -#progress { - position: relative;; - display: inline-block; -} - -#serverError { - margin-left: 18px; -} - -.mandatory { - color: #F00; - width: 7px; - padding-right: 10px 5px 10px 0; -} - -.row_interval { - padding: 10px 10px 10px 0; -} - -.progress_bar { - height: 4px; - border-radius: 2px; - width: 420px; - background: -webkit-linear-gradient(left, #6fd330, #29b6eb); - background: -o-linear-gradient(right, #6fd330, #29b6eb); - background: -moz-linear-gradient(right, #6fd330, #29b6eb); - background: linear-gradient(to right, #6fd330, #29b6eb); -} - -.progress_charater { - display: block; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; - color: #1fbe5c; - text-align: center; - margin-bottom: 20px; -} - -.errorTip { - color: red; -} - -.suggestion_tip { - height: auto; - background-color: #FFF5EA; - border: 1px solid #F9DFC5; - padding: 8px 10px; - margin: 3px 0; - color: #333; - line-height: 20px; - overflow: auto; -} - -.rule_label { - font-weight: 600; -} -#role_content table { - margin-left: 20px; -} \ No newline at end of file diff --git a/portal-auth/src/main/webapp/user/images/License.txt b/portal-auth/src/main/webapp/user/images/License.txt deleted file mode 100644 index d1ce787a..00000000 --- a/portal-auth/src/main/webapp/user/images/License.txt +++ /dev/null @@ -1,362 +0,0 @@ -THIS LICENSE FILE CONTAINS THE LICENSE APPLICABLE DEPENDING ON THE TYPE OF CONTRIBUTIONS. - -APACHE LICENSE 2 IS APPLICABLE FOR SOURCE CODE, CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL FOR DOCUMENTATION - -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - - -Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - -"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - -"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - -"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - -"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - -"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - -"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - -"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - -"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - -"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - -"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - -2. Grant of Copyright License. - -Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. - -Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - -4. Redistribution. - -You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - -You must give any other recipients of the Work or Derivative Works a copy of this License; and You must cause any modified files to carry prominent notices stating that You changed the files; and You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - -5. Submission of Contributions. - -Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - -6. Trademarks. - -This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. - -Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. - -In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. - -While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS - -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - -Attribution 4.0 International - -https://creativecommons.org/licenses/by/4.0/legalcode - -Creative Commons Corporation ("Creative Commons") is not a law firm and does not provide legal services or legal advice. Distribution of Creative Commons public licenses does not create a lawyer-client or other relationship. Creative Commons makes its licenses and related information available on an "as-is" basis. Creative Commons gives no warranties regarding its licenses, any material licensed under their terms and conditions, or any related information. Creative Commons disclaims all liability for damages resulting from their use to the fullest extent possible. - -Using Creative Commons Public Licenses - -Creative Commons public licenses provide a standard set of terms and conditions that creators and other rights holders may use to share original works of authorship and other material subject to copyright and certain other rights specified in the public license below. The following considerations are for informational purposes only, are not exhaustive, and do not form part of our licenses. - - Considerations for licensors: Our public licenses are - intended for use by those authorized to give the public - permission to use material in ways otherwise restricted by - copyright and certain other rights. Our licenses are - irrevocable. Licensors should read and understand the terms - and conditions of the license they choose before applying it. - Licensors should also secure all rights necessary before - applying our licenses so that the public can reuse the - material as expected. Licensors should clearly mark any - material not subject to the license. This includes other CC- - licensed material, or material used under an exception or - limitation to copyright. More considerations for licensors: - wiki.creativecommons.org/Considerations_for_licensors - Considerations for the public: By using one of our public - licenses, a licensor grants the public permission to use the - licensed material under specified terms and conditions. If - the licensor's permission is not necessary for any reason--for - example, because of any applicable exception or limitation to - copyright--then that use is not regulated by the license. Our - licenses grant only permissions under copyright and certain - other rights that a licensor has authority to grant. Use of - the licensed material may still be restricted for other - reasons, including because others have copyright or other - rights in the material. A licensor may make special requests, - such as asking that all changes be marked or described. - Although not required by our licenses, you are encouraged to - respect those requests where reasonable. More_considerations - for the public: - wiki.creativecommons.org/Considerations_for_licensees -Creative Commons Attribution 4.0 International Public License - -By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions. - - -Section 1 -- Definitions. - - a. Adapted Material means material subject to Copyright and Similar - Rights that is derived from or based upon the Licensed Material - and in which the Licensed Material is translated, altered, - arranged, transformed, or otherwise modified in a manner requiring - permission under the Copyright and Similar Rights held by the - Licensor. For purposes of this Public License, where the Licensed - Material is a musical work, performance, or sound recording, - Adapted Material is always produced where the Licensed Material is - synched in timed relation with a moving image. - b. Adapter's License means the license You apply to Your Copyright - and Similar Rights in Your contributions to Adapted Material in - accordance with the terms and conditions of this Public License. - c. Copyright and Similar Rights means copyright and/or similar rights - closely related to copyright including, without limitation, - performance, broadcast, sound recording, and Sui Generis Database - Rights, without regard to how the rights are labeled or - categorized. For purposes of this Public License, the rights - specified in Section 2(b)(1)-(2) are not Copyright and Similar - Rights. - d. Effective Technological Measures means those measures that, in the - absence of proper authority, may not be circumvented under laws - fulfilling obligations under Article 11 of the WIPO Copyright - Treaty adopted on December 20, 1996, and/or similar international - agreements. - e. Exceptions and Limitations means fair use, fair dealing, and/or - any other exception or limitation to Copyright and Similar Rights - that applies to Your use of the Licensed Material. - f. Licensed Material means the artistic or literary work, database, - or other material to which the Licensor applied this Public - License. - g. Licensed Rights means the rights granted to You subject to the - terms and conditions of this Public License, which are limited to - all Copyright and Similar Rights that apply to Your use of the - Licensed Material and that the Licensor has authority to license. - h. Licensor means the individual(s) or entity(ies) granting rights - under this Public License. - i. Share means to provide material to the public by any means or - process that requires permission under the Licensed Rights, such - as reproduction, public display, public performance, distribution, - dissemination, communication, or importation, and to make material - available to the public including in ways that members of the - public may access the material from a place and at a time - individually chosen by them. - j. Sui Generis Database Rights means rights other than copyright - resulting from Directive 96/9/EC of the European Parliament and of - the Council of 11 March 1996 on the legal protection of databases, - as amended and/or succeeded, as well as other essentially - equivalent rights anywhere in the world. - k. You means the individual or entity exercising the Licensed Rights - under this Public License. Your has a corresponding meaning. - -Section 2 -- Scope. - - a. License grant. - 1. Subject to the terms and conditions of this Public License, - the Licensor hereby grants You a worldwide, royalty-free, - non-sublicensable, non-exclusive, irrevocable license to - exercise the Licensed Rights in the Licensed Material to: - a. reproduce and Share the Licensed Material, in whole or - in part; and - b. produce, reproduce, and Share Adapted Material. - 2. Exceptions and Limitations. For the avoidance of doubt, where - Exceptions and Limitations apply to Your use, this Public - License does not apply, and You do not need to comply with - its terms and conditions. - 3. Term. The term of this Public License is specified in Section - 6(a). - 4. Media and formats; technical modifications allowed. The - Licensor authorizes You to exercise the Licensed Rights in - all media and formats whether now known or hereafter created, - and to make technical modifications necessary to do so. The - Licensor waives and/or agrees not to assert any right or - authority to forbid You from making technical modifications - necessary to exercise the Licensed Rights, including - technical modifications necessary to circumvent Effective - Technological Measures. For purposes of this Public License, - simply making modifications authorized by this Section 2(a) - (4) never produces Adapted Material. - 5. Downstream recipients. - a. Offer from the Licensor -- Licensed Material. Every - recipient of the Licensed Material automatically - receives an offer from the Licensor to exercise the - Licensed Rights under the terms and conditions of this - Public License. - b. No downstream restrictions. You may not offer or impose - any additional or different terms or conditions on, or - apply any Effective Technological Measures to, the - Licensed Material if doing so restricts exercise of the - Licensed Rights by any recipient of the Licensed - Material. - 6. No endorsement. Nothing in this Public License constitutes or - may be construed as permission to assert or imply that You - are, or that Your use of the Licensed Material is, connected - with, or sponsored, endorsed, or granted official status by, - the Licensor or others designated to receive attribution as - provided in Section 3(a)(1)(A)(i). - b. Other rights. - 1. Moral rights, such as the right of integrity, are not - licensed under this Public License, nor are publicity, - privacy, and/or other similar personality rights; however, to - the extent possible, the Licensor waives and/or agrees not to - assert any such rights held by the Licensor to the limited - extent necessary to allow You to exercise the Licensed - Rights, but not otherwise. - 2. Patent and trademark rights are not licensed under this - Public License. - 3. To the extent possible, the Licensor waives any right to - collect royalties from You for the exercise of the Licensed - Rights, whether directly or through a collecting society - under any voluntary or waivable statutory or compulsory - licensing scheme. In all other cases the Licensor expressly - reserves any right to collect such royalties. - -Section 3 -- License Conditions. - -Your exercise of the Licensed Rights is expressly made subject to the following conditions. - - a. Attribution. - 1. If You Share the Licensed Material (including in modified - form), You must: - a. retain the following if it is supplied by the Licensor - with the Licensed Material: - i. identification of the creator(s) of the Licensed - Material and any others designated to receive - attribution, in any reasonable manner requested by - the Licensor (including by pseudonym if - designated); - ii. a copyright notice; - iii. a notice that refers to this Public License; - iv. a notice that refers to the disclaimer of - warranties; - v. a URI or hyperlink to the Licensed Material to the - extent reasonably practicable; - b. indicate if You modified the Licensed Material and - retain an indication of any previous modifications; and - c. indicate the Licensed Material is licensed under this - Public License, and include the text of, or the URI or - hyperlink to, this Public License. - 2. You may satisfy the conditions in Section 3(a)(1) in any - reasonable manner based on the medium, means, and context in - which You Share the Licensed Material. For example, it may be - reasonable to satisfy the conditions by providing a URI or - hyperlink to a resource that includes the required - information. - 3. If requested by the Licensor, You must remove any of the - information required by Section 3(a)(1)(A) to the extent - reasonably practicable. - 4. If You Share Adapted Material You produce, the Adapter's - License You apply must not prevent recipients of the Adapted - Material from complying with this Public License. - -Section 4 -- Sui Generis Database Rights. - -Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material: - - a. for the avoidance of doubt, Section 2(a)(1) grants You the right - to extract, reuse, reproduce, and Share all or a substantial - portion of the contents of the database; - b. if You include all or a substantial portion of the database - contents in a database in which You have Sui Generis Database - Rights, then the database in which You have Sui Generis Database - Rights (but not its individual contents) is Adapted Material; and - c. You must comply with the conditions in Section 3(a) if You Share - all or a substantial portion of the contents of the database. -For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights. - - -Section 5 -- Disclaimer of Warranties and Limitation of Liability. - - a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE - EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS - AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF - ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, - IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, - WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR - PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, - ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT - KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT - ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. - b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE - TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, - NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, - INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, - COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR - USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN - ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR - DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR - IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. - c. The disclaimer of warranties and limitation of liability provided - above shall be interpreted in a manner that, to the extent - possible, most closely approximates an absolute disclaimer and - waiver of all liability. - -Section 6 -- Term and Termination. - - a. This Public License applies for the term of the Copyright and - Similar Rights licensed here. However, if You fail to comply with - this Public License, then Your rights under this Public License - terminate automatically. - b. Where Your right to use the Licensed Material has terminated under - Section 6(a), it reinstates: - 1. automatically as of the date the violation is cured, provided - it is cured within 30 days of Your discovery of the - violation; or - 2. upon express reinstatement by the Licensor. - For the avoidance of doubt, this Section 6(b) does not affect any - right the Licensor may have to seek remedies for Your violations - of this Public License. - c. For the avoidance of doubt, the Licensor may also offer the - Licensed Material under separate terms or conditions or stop - distributing the Licensed Material at any time; however, doing so - will not terminate this Public License. - d. Sections 1, 5, 6, 7, and 8 survive termination of this Public - License. - -Section 7 -- Other Terms and Conditions. - - a. The Licensor shall not be bound by any additional or different - terms or conditions communicated by You unless expressly agreed. - b. Any arrangements, understandings, or agreements regarding the - Licensed Material not stated herein are separate from and - independent of the terms and conditions of this Public License. - -Section 8 -- Interpretation. - - a. For the avoidance of doubt, this Public License does not, and - shall not be interpreted to, reduce, limit, restrict, or impose - conditions on any use of the Licensed Material that could lawfully - be made without permission under this Public License. - b. To the extent possible, if any provision of this Public License is - deemed unenforceable, it shall be automatically reformed to the - minimum extent necessary to make it enforceable. If the provision - cannot be reformed, it shall be severed from this Public License - without affecting the enforceability of the remaining terms and - conditions. - c. No term or condition of this Public License will be waived and no - failure to comply consented to unless expressly agreed to by the - Licensor. - d. Nothing in this Public License constitutes or may be interpreted - as a limitation upon, or waiver of, any privileges and immunities - that apply to the Licensor or You, including from the legal - processes of any jurisdiction or authority. -Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the "Licensor." The text of the Creative Commons public licenses is dedicated to the public domain under the CC0 Public Domain Dedication. Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at creativecommons.org/policies, Creative Commons does not authorize the use of the trademark "Creative Commons" or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses. - -Creative Commons may be contacted at creativecommons.org. \ No newline at end of file diff --git a/portal-auth/src/main/webapp/user/images/add.png b/portal-auth/src/main/webapp/user/images/add.png deleted file mode 100644 index d1f82993869b5e8e22cd1e48fc54e306730244d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1104 zcmbVLOK8+U7>o%{o3vMmjh3-wW$+R2VWYT2X-S(nX zka|$>KG36H#G@eS!Ct(2^yC8%o)kn7)Yi$iTRjvH29kN?`@a8uePaCFfx%;g48t6# zjM+819?IT*{q#HZb;G60QQ|bnB%UU1H$jZy<0b-?(49dw&+qpnrJ47itOiSFIW)xMRrQA3f0&`tzc|9L6ghlb#Hmr z(|opc7L0UsDi9*#f=)OWrFy5xc6D{S&#rkEbRlH6$Zk5-s7?S2CkV)#kn;pZ01D)w zlvh>t3=jn<@Pf!gF$Yy$5_LfUTMtXECH}Ntv&&ny=&8uI2#Ix`Z@1fATjFps!$VEe zG7VA8QA93Xiiq3EMd@%)!A7Z<1ThJ41Tsapi5EzbrJinv5XRN&ws4egC5onu@3=7! zIe`zuEUqp(B{lTNjUCZxeJMtK4W)P?@n}7!hkIn2yMG(XfYclPLK4uTxN|o47D5z} zid|&sAI=YaT^5ysAu5htHWf#LupkxkrlFd0S&~${Tp`P7<+TG&H|K#dcf?R@=I>vLo4wz_Rg3}g`fi)?EsUY%k zJI#u-8LN$wU=jJ{1c#uTT|L;rx~)0_gob8mrqhkOASy<_AS(rE$)-W0-sJlKlQEt; z!)LAWSF7}{X#Zu~?Z&5v?a@IIotK0T#_1t`kq*^L#Ww1lH%-6s?f$NTCj;+;(Yt+X z1M{bwYc6x}&}F7M4c7Os?H>KvcgH+=ykD}Qey6o(wg2kND|^BEt!t$RkA7TnZVa6{ zeAcq=)xYds{b+Dwr>w6RA3neM^!2XNZFTh1+YiFc^6ewc;1kfQ_q`h&jrH#v8zqNh Z_6bbx*YN7>i639G8Lv3w_G9zX%5MsrTTuW2 diff --git a/portal-auth/src/main/webapp/user/images/delete.png b/portal-auth/src/main/webapp/user/images/delete.png deleted file mode 100644 index 737f87975fd4df84dcf48e4f25fc386027350bc1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1100 zcmaJ=OK1~87~V8Bh%Xe>q9RVWT2#zFl5E?oO(ub?Pubvz~|$-LGX%RS`3?dyU}rcF4S#$70j^Rfl0eJaX85ZC1%n1r%AaO@du zq$qc_mP+GvqFq#w&d3giDd;9)Q&eMf!IYI=h(QMSXhw+seD^*LG&MvY5E5L%jKG{0 z8?<28U`I+B>{Ws)-P{Bk3nCHFA(lZwKWf-wAw)0gie&8^vou(Q;NB4Z+f+Ky2_ndX zKwt!~!tnu6A7pre4>a(5fRE$-Eazu=znAxkTu|f%u=LR+nx$sNq|~|;i|j&l4r5bf z*?d0FY$_4&L6;k5@0EEl|nT~kz$psiS%i8W*ZM^Vn8J{+Qn)88rR zW=Yntm&!y6#uj9go3c7Izcx{WC>bYKU7;Sq=Utb zMXkISuB_e?S1s>_FUw_#8P>VizwWtsM4HE0mb#W~N_`Iv((D%L>MOOeA@U*~#HD?y z!hGiE!a}oq$MEP#n5ut!d*Y)EW|uwef4#oqkv{yrHnx?iin*tEuSIS3mE)UYx;rCG zh?Ab})R%hjAzW7(_p_;{4R5H{_bsQ6%&!qD$7eiewww?A_%b_muj;xhy=ufYIX3;c zqVr|-#EYj_*ImwbGcDizw^lY@JN>TTb%DAuw{dFb)rc^bJ$GgA$epUO>TfgMQ`Etn z`_swX>E}=2+)6Ne)_dptD%Z2-M_bOgFJ5}OjB}Z3dEfD9hjcT1_{1*} CqhuQZ diff --git a/portal-auth/src/main/webapp/user/images/edit.bak.png b/portal-auth/src/main/webapp/user/images/edit.bak.png deleted file mode 100644 index 68d762576d6625362392742284ce372766a64221..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3045 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 diff --git a/portal-auth/src/main/webapp/user/images/edit.png b/portal-auth/src/main/webapp/user/images/edit.png deleted file mode 100644 index 68d762576d6625362392742284ce372766a64221..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3045 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 diff --git a/portal-auth/src/main/webapp/user/images/reset.bak.png b/portal-auth/src/main/webapp/user/images/reset.bak.png deleted file mode 100644 index 778b9c0c328750d629f664e71da9ade41d4a4256..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2898 zcmV-Y3$65tP)004&%004{+008|`004nN004b?008NW002DY000@xb3BE2000U( zX+uL$P-t&-Z*ypGa3D!TLm+T+Z)Rz1WdHz3$DNjUR8-d%htIutdZEoQ(iwV_E---f zE+8EQQ5a?h7|H;{3{7l^s6a#!5dlSzpnw6Rp-8NVVj(D~U=K(TP+~BOsHkK{)=GSN zdGF=r_s6~8+Gp=`_t|@&wJrc8PaiHX1(pIJnJ3@}dN|Wpg-6h_{Qw4dfB~ieFj?uT zzCrH6KqN0W7kawL3H*!R3;{^|zGdj?Pp5H0=h0sk8Wyh&7ga7GLtw0fuTQ>mB{3?=`JbBsZ3rr0E=h-EE#ca>7pWA znp#_08k!lIeo?6Zy7)IG?(HJI3i#YJh}QRq?XUb&>HuKOifXg#4_nNB06Mk;Ab0-{ zo8}<^Bt?B|zwyO+XySQ^7YI^qjEyrhGmW?$mXWxizw3WG{0)8aJtOgUzn6#Z%86wP zlLT~e-B>9}DMCIyJ(bDg&<+1Q#Q!+(uk%&0*raG}W_n!s* z`>t?__>spaFD&Aut10z!o?HH?RWufnX30 z)&drY2g!gBGC?lb3<^LI*ah~2N>BspK_h4ZCqM@{4K9Go;5xVo?tlki1dM~{UdPU)xj{ZqAQTQoLvauf5<ZgZNI6o6v>;tbFLDbRL8g&+C=7~%qN5B^ zwkS_j2#SSDLv276qbgBHQSGQ6)GgE~Y6kTQO-3uB4bV1dFZ3#O96A$SfG$Tjpxe-w z(09<|=rSYbRd;g|%>I!rO<0Hzgl9y5R$!^~o_Sb3}g)(-23Wnu-`0_=Y5 zG3+_)Aa)%47DvRX;>>XFxCk5%mxn9IHQ~!?W?(_!4|Qz6*Z? zKaQU#NE37jc7$L;0%0?ug3v;^M0iMeMI;i{iPppbBA2*{SV25ayh0o$z9Y$y^hqwH zNRp7WlXQf1o^+4&icBVJlO4$sWC3|6xsiO4{FwY!f+Arg;U&SA*eFpY(JnD4@j?SR-`K0DzX#{6;CMMSAv!Fl>(L4DIHeoQ<_y) zQT9+yRo<_BQF&U0rsAlQpi-uCR%J?+qH3?oRV`CJr}~U8OLw9t(JSaZ^cgiJHBU96 zTCG~Y+Pu1sdWd?SdaL>)4T1(kBUYnKqg!J}Q&rPfGgq@&^S%~di=h>-wNI;8Yff87 zJ4}0Dt zz%@8vFt8N8)OsmzY2DIcLz1DBVTNI|;iwVK$j2zpsKe-mv8Hi^@owW@<4-0QCP^ms zCJ#(yOjnrZnRc1}YNl_-GOIGXZB90KH{WR9Y5sDV!7|RWgUjw(P%L~cwpnyre6+N( zHrY-t*ICY4 zUcY?IPTh`aS8F$7Pq&Y@KV(1Rpyt4IsB?JYsNu+VY;c@#(sN31I_C7k*~FRe+~z#z zV&k&j<-9B6>fu`G+V3Xg7UEXv_SjwBJ8G6!a$8Ik+VFL5OaMFr+(FGBh%@F?24>HLNsjWR>x%^{cLj zD}-~yJ0q|Wp%D!cv#Z@!?_E6}X%SfvIkZM+P1c&LYZcZetvwSZ8O4k`8I6t(i*Abk z!1QC*F=u1EVya_iST3x6tmkY;b{Tt$W5+4wOvKv7mc~xT*~RUNn~HacFOQ$*x^OGG zFB3cyY7*uW{SuEPE+mB|wI<_|qmxhZWO#|Zo)ndotdxONgVci5ku;mMy=gOiZ+=5M zl)fgtQ$Q8{O!WzMgPUHd;& z##i2{a;|EvR;u1nJ$Hb8VDO;h!Im23nxdNbhq#CC)_T;o*J;<4AI2QcIQ+Cew7&Oi z#@CGv3JpaKACK^kj2sO-+S6#&*x01hRMHGL3!A5oMIO8Pjq5j^Eru<%t+dvnoA$o+&v?IGcZV;atwS+4HIAr!T}^80(JeesFQs#oIjrJ^h!wFI~Cpe)(drQ}4Me zc2`bcwYhrg8sl2Wb<6AReHMLfKUnZUby9Y>+)@{ z+t=@`yfZKqGIV!1a(Lt}`|jkuqXC)@%*Rcr{xo>6OEH*lc%TLr*1x5{cQYs>ht;Of}f>-u708W z;=5lQf9ac9H8cK_|8n8i;#cyoj=Wy>x_j1t_VJtKH}i9aZ{^<}eaCp$`#$Xb#C+xl z?1zevdLO$!d4GDiki4+)8~23s`{L#u!TI1H$304RV60Sq;`f(#T`umD33IAlFIy+Dj>K(57U0HO2% w^XhPR0nCq}{DBXkBxPiU$jKTb10g8{0JeITXT4j5%K!iX07*qoM6N<$g5sfX1^@s6 diff --git a/portal-auth/src/main/webapp/user/images/reset.png b/portal-auth/src/main/webapp/user/images/reset.png deleted file mode 100644 index d57e9b3938e561243fd68d86b4a8b745aa549c36..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2863 zcmV+~3()k5P)004&%004{+008|`004nN004b?008NW002DY000@xb3BE2000U( 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 min && str.length <= max; - } - - function checkOnlySpecials(str, reg) { - return str.match(reg) && str.match(reg).length == str.length - } - - function checkCotainSpecial(password) { - return password.match(/\~|\`|\@|\#|\$|\%|\^|\&|\*|\-|\_|\=|\+|\||\?|\/|\(|\)|\<|\>|\[|\]|\{|\}|\"|\,|\.|\;|\'|\!/g) != null - && password.match(/[0-9]/g) != null && password.match(/[a-z]/g) != null && password.match(/[A-Z]/g) != null; - } - - function checkUderScore(str) { - return str.indexOf("_") != 0 && str.lastIndexOf("_") != str.length - 1; - } - - function checkNoSpace(str) { - return str.indexOf(" ") == -1; - } - - function checkNoContainAndReverse(str, str2) { - return str.indexOf(str2) == -1 && str.indexOf(str2.split("").reverse().join("")) == -1; - } - - function getModifyUser() { - var data = {}; - data["original_password"] = $("#oldPassword").val(); - data.password = $("#password").val(); - return data; - } - - function getUserDetails(id) { - return Rest.http({ - url: USER_SERVICE + "/" + id + "?=" + new Date().getTime(), - type: "GET", - async: false, - contentType: 'application/json', - dataType: "json" - }) - } - - function listUserDetails(data) { - $("#userName").val(data.name); - } - - - function changePsd(data) { - return Rest.http({ - url: USER_SERVICE + "/" + userId + "/password" + "?=" + new Date().getTime(), - type: "POST", - async: false, - contentType: 'application/json', - dataType: "json", - data: JSON.stringify(data) - }) - } - - function getId() { - var qs = location.search; - qs = qs.indexOf("?") === 0 ? qs : ("?" + qs); - var start = qs.indexOf("id=") + 3; - var end = qs.indexOf("&") === -1 ? qs.length : qs.indexOf("&") - start; - return qs.substr(start, end); - } - - function showError($Obj, message) { - $Obj.text(message); - $Obj.css("visibility", "visible"); - setTimeout(function() { - hideError($Obj); - }, 5000) - } - - function hideError($Obj) { - $Obj.css("visibility", "hidden"); - } - - initialPage(); -}) diff --git a/portal-auth/src/main/webapp/user/js/createUser.js b/portal-auth/src/main/webapp/user/js/createUser.js deleted file mode 100644 index dee731cb..00000000 --- a/portal-auth/src/main/webapp/user/js/createUser.js +++ /dev/null @@ -1,189 +0,0 @@ -/* - * Copyright 2016-2017 Huawei Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -$(document).ready(function() { - - var USER_SERVICE = "/openoapi/auth/v1/users"; - var $userName = $("#userName"); - var $password = $("#password"); - var $cfPsdError = $("#cfPsdError"); - var $userNameError = $("#userNameError"); - var $passwordError = $("#passwordError"); - - function initialPage() { - /*initial the event*/ - $("#confirm").click(function(e) { - if (!checkUserRules()) { - return; - } - var data = getCreateUser(); - createUser(data).done(function() { - window.document.location = "/openoui/user/user.html"; - }) - }) - $("#cancel").click(function(e) { - window.document.location = "/openoui/user/user.html"; - }) - } - - function getCreateUser() { - var data = {}; - data.userName = $userName.val(); - data.password = $password.val(); - data.description = $("#description").val(); - data.email = "xxxx@xxxx.com"; - return data; - } - - function createUser(data) { - return Rest.http({ - url: USER_SERVICE + "?=" + new Date().getTime(), - type: "POST", - async: false, - contentType: 'application/json', - dataType: "json", - data: JSON.stringify(data) - }) - } - - function checkUserRules() { - if (!checkMandatory()) { - return false; - } - - if (!checkCfPassword()) { - return false; - } - - if (!checkUserNameRule()) { - return false; - } - - if (!checkPasswordRule()) { - return false; - } - return true; - } - - function checkMandatory() { - if ($userName.val() == "") { - showError($userNameError, "Mandatory."); - return false; - } - - if ($password.val() == "") { - showError($passwordError, "Mandatory."); - return false; - } - return true; - } - - function checkUserNameRule() { - var username = $userName.val(); - if (!checkLength(5, 30, username)) { - showError($userNameError, "The user name length should between 5 and 30."); - return false - } - - if (!checkOnlySpecials(username, /[0-9]|[a-z]|[A-Z]|_/g)) { - showError($userNameError, "Only Character(a-z\,A-Z\,0-9,_) is allowed."); - return false - } - - if(!checkUderScore(username)) { - showError($userNameError, 'The character "_" is only allowed in the middle of the user name.'); - return false - } - - if (!checkNoSpace(username)) { - showError($userNameError, "The user name should not contain space."); - return false - } - - return true - } - - function checkPasswordRule() { - var password = $password.val(); - - if (!checkLength(8, 32, password)) { - showError($passwordError, "The password length should between 8 and 32."); - return false - } - - if (!checkCotainSpecial(password)) { - showError($passwordError, "At least contain: one uppercase letter, one lowercase letter, and one digit, one special character;"); - return false - } - - if (!checkNoContainAndReverse(password, $userName.val())) { - showError($passwordError, "The password should not contain the user name or reverse."); - return false - } - - if (!checkNoSpace(password)) { - showError($passwordError, "The password should not contain space."); - return false - } - return true - } - - function checkLength(min, max, str) { - return str.length >= min && str.length <= max; - } - - function checkOnlySpecials(str, reg) { - return str.match(reg) && str.match(reg).length == str.length - } - - function checkCotainSpecial(password) { - return password.match(/\~|\`|\@|\#|\$|\%|\^|\&|\*|\-|\_|\=|\+|\||\?|\/|\(|\)|\<|\>|\[|\]|\{|\}|\"|\,|\.|\;|\'|\!/g) != null - && password.match(/[0-9]/g) != null && password.match(/[a-z]/g) != null && password.match(/[A-Z]/g) != null; - } - - function checkUderScore(str) { - return str.indexOf("_") != 0 && str.lastIndexOf("_") != str.length - 1; - } - - function checkNoContainAndReverse(str, str2) { - return str.indexOf(str2) == -1 && str.indexOf(str2.split("").reverse().join("")) == -1; - } - - function checkNoSpace(str) { - return str.indexOf(" ") == -1; - } - - function checkCfPassword() { - if ($password.val() == $("#cfPassword").val()) { - return true; - } - showError($cfPsdError, "The password is not the same."); - return false; - } - - function showError($Obj, message) { - $Obj.text(message); - $Obj.css("visibility", "visible"); - setTimeout(function() { - hideError($Obj); - }, 5000) - } - - function hideError($Obj) { - $Obj.css("visibility", "hidden"); - } - - initialPage(); -}) diff --git a/portal-auth/src/main/webapp/user/js/modifyUser.js b/portal-auth/src/main/webapp/user/js/modifyUser.js deleted file mode 100644 index a085c7c2..00000000 --- a/portal-auth/src/main/webapp/user/js/modifyUser.js +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Copyright 2016-2017 Huawei Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -$(document).ready(function() { - var USER_SERVICE = "/openoapi/auth/v1/users"; - var userId; - function initialPage() { - userId = getId(); - getUserDetails(userId).done(function(data) { - listUserDetails(data); - }); - - /*initial the event*/ - $("#confirm").click(function(e) { - var data = getModifyUser(); - modifyUser(data).done(function() { - window.document.location = "/openoui/user/user.html"; - }) - }) - $("#cancel").click(function(e) { - window.document.location = "/openoui/user/user.html"; - }) - } - - function getModifyUser() { - var data = {}; - data.description = $("#description").val(); - data.email = "xxxx@xxxx.com"; - return data; - } - function getUserDetails(id) { - return Rest.http({ - url: USER_SERVICE + "/" + id + "?=" + new Date().getTime(), - type: "GET", - async: false, - contentType: 'application/json', - dataType: "json" - }) - } - - function listUserDetails(data) { - $("#userName").val(data.name); - $("#description").val(data.description); - } - - function modifyUser(data) { - return Rest.http({ - url: USER_SERVICE + "/" + userId + "?=" + new Date().getTime(), - type: "PATCH", - async: false, - contentType: 'application/json', - dataType: "json", - data: JSON.stringify(data) - }) - } - - function getId() { - var qs = location.search; - qs = qs.indexOf("?") === 0 ? qs : ("?" + qs); - var start = qs.indexOf("id=") + 3; - var end = qs.indexOf("&") === -1 ? qs.length : qs.indexOf("&") - start; - return qs.substr(start, end); - } - - initialPage(); -}) \ No newline at end of file diff --git a/portal-auth/src/main/webapp/user/js/user.js b/portal-auth/src/main/webapp/user/js/user.js deleted file mode 100644 index 7f4e559c..00000000 --- a/portal-auth/src/main/webapp/user/js/user.js +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Copyright 2016-2017 Huawei Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -$(document).ready(function() { - var USER_SERVICE = "/openoapi/auth/v1/users"; - var deleteEditOpt = ""; - var editOpt = ""; - - var userListHeader = [ - { title: "User", data: "User",width: "20%"}, - { title: "Description", data: "Description",width: "60%"}, - { title: "Operations", data: "Operations",width: "20%"} - ]; - function initialPage() { - /*get the user list data;*/ - getUserList().done(function(data) { - var data = formatUsers(data); - Table.create(data, "table_id", userListHeader); - $(".hw_body").css("visibility", "visible"); - }).error(function(data) { - if (data.status == 403) { - $(".hw_body").html("" + JSON.parse(data.responseText).error.message + ""); - } - }); - - /*add the listener*/ - $("#table_id tbody").on("click", "td", function(e) { - var classname = e.target.className; - var id = $("#table_id").DataTable().row(this).data().rowid; - if (classname == "delete") { - top.bootbox.confirm("Are you sure to delete this user?", function(result) { - if (result) { - deleteUser(id).done(function() { - getUserList().done(function(data) { - var data = formatUsers(data); - var datatable = $("#table_id").dataTable().api(); - datatable.clear(); - datatable.rows.add(data); - datatable.draw(); - }) - }) - } - }) - } else if (classname == "edit") { - window.document.location = "/openoui/user/modifyUser.html" + "?id=" + id; - } else if (classname == "changePsd") { - window.document.location = "/openoui/user/changePassword.html" + "?id=" + id; - } - }) - - $("#create").click(function(e) { - window.document.location = "/openoui/user/createUser.html"; - }) - } - - function getUserList() { - return Rest.http({ - url: USER_SERVICE + "?=" + new Date().getTime(), - type: "GET", - async: false, - contentType: 'application/json', - dataType: "json" - }) - } - - function deleteUser(id) { - return Rest.http({ - url: USER_SERVICE + "/" + id + "?=" + new Date().getTime(), - type: "DELETE", - async: false, - contentType: 'application/json', - dataType: "json" - }) - } - - function formatUsers(data) { - var tableData = []; - for (var i = 0; i < data.length; i++) { - var temp = {}; - temp.rowid = data[i].id; - temp.User = data[i].name; - temp.Description = data[i].description; - if (data[i].name == "admin") { - temp.Operations = editOpt; - } else { - temp.Operations = deleteEditOpt; - } - tableData.push(temp); - } - return tableData; - } - initialPage(); - - setTimeout(function() { - Table.enableToolTips("table_id"); - }, 0) -}); diff --git a/portal-auth/src/main/webapp/user/js/userTools.js b/portal-auth/src/main/webapp/user/js/userTools.js deleted file mode 100644 index e63e85a5..00000000 --- a/portal-auth/src/main/webapp/user/js/userTools.js +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright 2016-2017 Huawei Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -var Table = {}; -Table.create = function(data, id, columns) { - $('#' + id).DataTable({ - data: data, - bSort: false, - "sDom": "<'right'p>>", - columns: columns - }); - } - /** - * update the table data, the cloumns must be same with the create one. - * data: the update data. as the create structure - * id: the table id. - */ -Table.updata = function(data, id) { - var datatable = $('#' + id).dataTable().api(); - datatable.clear(); - datatable.rows.add(data); - datatable.draw(); -} - -Table.enableToolTips = function(id) { - $("#" + id + " tr th").each(function(index, sdom){ - sdom.title = sdom.textContent; - }) - $("#" + id + " tbody tr td").each(function(index, sdom){ - sdom.title = sdom.textContent; - }) -} - -var Rest = {}; - -Rest.http = function(setting) { - var ret = $.ajax(setting); - ret.fail(function(data) { - try { - if (data.responseText.indexOf("login") != -1) { - top.window.document.location.reload() - } - var result = JSON.parse(data.responseText); - if (result.error && result.error.message) { - top.bootbox.alert(result.error.message, function() {}); - } - } catch (e) { - } - - }) - return ret; -} - -Rest.turn2URI = function(url) { - var cookies = document.cookie.split(";"); - var cookie = ""; - for (var i = 0; i < cookies.length; i++) { - if (cookies[i].split("=")[0] == "X-Auth-Token") { - cookie = cookies[i].split("=")[1]; - break; - } - } - $.ajax({ - url: "/openoapi/auth/v1/tokens", - type: "HEAD", - headers: { - "X-Auth-Token": cookie - }, - success: function(data) { - window.document.location = url; - }, - error: function(data) { - top.window.document.location.reload(); - } - }) -} diff --git a/portal-auth/src/main/webapp/user/modifyUser.html b/portal-auth/src/main/webapp/user/modifyUser.html deleted file mode 100644 index 8689ff50..00000000 --- a/portal-auth/src/main/webapp/user/modifyUser.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - - - - - - - - - - -
    -
    Enter Basic Information
    -
    -
    -
    - - - - - - - - - - - - - -
    - * - - User Name: - -
    - -
    -
    - -
    - - - Description: - -
    - -
    -
    - -
    -
    -
    - - -
    - - - diff --git a/portal-auth/src/main/webapp/user/user.html b/portal-auth/src/main/webapp/user/user.html deleted file mode 100644 index 2a700769..00000000 --- a/portal-auth/src/main/webapp/user/user.html +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - - - - - - -
    - -
    -
    -
    -
    - - - diff --git a/portal-catalog/pom.xml b/portal-catalog/pom.xml deleted file mode 100644 index 682eb7b6..00000000 --- a/portal-catalog/pom.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - - org.openo.gso.gui - openo-portal - 1.1.0-SNAPSHOT - - - 4.0.0 - portal-catalog - war - - - - - org.apache.maven.plugins - maven-war-plugin - - false - - - - -gso-gui/openo-portal/portal-catalog diff --git a/portal-catalog/src/main/webapp/catalog/csarPackage.html b/portal-catalog/src/main/webapp/catalog/csarPackage.html deleted file mode 100644 index 9f6297aa..00000000 --- a/portal-catalog/src/main/webapp/catalog/csarPackage.html +++ /dev/null @@ -1,247 +0,0 @@ - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    - - - - - - - - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -

    - {{packageDetail.detailTitle}} -

    -
    - -
    -
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/portal-catalog/src/main/webapp/catalog/css/datatable-sort.css b/portal-catalog/src/main/webapp/catalog/css/datatable-sort.css deleted file mode 100644 index 4eccde64..00000000 --- a/portal-catalog/src/main/webapp/catalog/css/datatable-sort.css +++ /dev/null @@ -1,30 +0,0 @@ -/** - * Copyright 2016-2017 ZTE Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -table.table thead .sorting, -table.table thead .sorting_asc, -table.table thead .sorting_desc, -table.table thead .sorting_asc_disabled, -table.table thead .sorting_desc_disabled { - cursor: pointer; - *cursor: hand; -} - -table.table thead .sorting { background: url('../image/sort_both.png') no-repeat center right; } -table.table thead .sorting_asc { background: url('../image/sort_asc.png') no-repeat center right; } -table.table thead .sorting_desc { background: url('../image/sort_desc.png') no-repeat center right; } - -table.table thead .sorting_asc_disabled { background: url('../image/sort_asc_disabled.png') no-repeat center right; } -table.table thead .sorting_desc_disabled { background: url('../image/sort_desc_disabled.png') no-repeat center right; } \ No newline at end of file diff --git a/portal-catalog/src/main/webapp/catalog/css/fileupload.css b/portal-catalog/src/main/webapp/catalog/css/fileupload.css deleted file mode 100644 index ed726f3d..00000000 --- a/portal-catalog/src/main/webapp/catalog/css/fileupload.css +++ /dev/null @@ -1,81 +0,0 @@ -/** - * Copyright 2016-2017 ZTE Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -@charset "UTF-8"; - -.file-caption { - display: inline-block; - overflow: hidden; - text-overflow: ellipsis; -} - -.file-caption .glyphicon { - display: inline-block; - min-width: 18px; - margin-top: 2px; -} - -.file-caption-name { - display: inline-block; - overflow: hidden; - max-height: 20px; - padding-right: 10px; - word-break: break-all; -} - -.file-caption-ellipsis { - position: absolute; - right: 10px; - margin-top: -6px; - font-size: 1.2em; - display: none; - font-weight: bold; - cursor: default; -} - -.file-drop-zone{ - border:1px dashed #aaa; - border-radius:4px; - height:100%; - text-align:center; - vertical-align:middle; - margin:12px 15px 12px 12px; - padding:5px -} -.file-drop-zone-title{ - color:#aaa; - font-size:20px; - padding:20px 10px -} -.fileupload-btn { - padding-bottom: 10px; -} - -.fileupload-input { - position: relative; - display: table; -} - -.file-preview { - border-radius:5px; - border:1px solid #ddd; - padding:5px; - width:100%; - margin-bottom:5px -} - -.upload { - width: 50%; -} \ No newline at end of file diff --git a/portal-catalog/src/main/webapp/catalog/css/hostMirror.css b/portal-catalog/src/main/webapp/catalog/css/hostMirror.css deleted file mode 100644 index 8c24029a..00000000 --- a/portal-catalog/src/main/webapp/catalog/css/hostMirror.css +++ /dev/null @@ -1,447 +0,0 @@ -/** - * Copyright 2016-2017 ZTE Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -body { - font-family: microsoft yahei !important; -} - -/* blue pill (inspired by iTunes) -*******************************************************************************/ -.redFont{ - color:red; -} -.blue { - - background-color: #5b9bd1; - border-radius: 20px; - color: #fff; - font-weight: bold; - padding: 8px 0; - text-align: center; - width: 100px; -} - -.blue:hover { - background-color: #e8f3fd; - color: #5b9bd1; -} - -.blue.selected { - border: 0; - background-color: #5b9bd1; - color: #fff; -} - -.blue.selected:hover { - border: 0; - background-color: #5b9bd1; - color: #fff; -} - -p { - color: #444; - font-size: 14px; - font-weight: normal; - line-height: 21px; - margin: 0 0 12px 0; -} - -p.credit { - border-top: 1px solid #ccc; - font-size: 14px; - line-height: 140%; - margin: 36px 0 12px 0; - padding: 8px 0 0 0; - text-align: center; -} - -ul.column { - float: left; - list-style: none; - width: 675px; -} - -ul.column li { - background: #eee; - -webkit-border-radius: 5px; - border-radius: 5px; - -webkit-box-shadow: inset 0 1px 1px 0 #c7c7c7; - box-shadow: inset 0 1px 1px 0 #c7c7c7; - float: left; - margin: 10px 0 0 10px; - display: block; - height: 150px; - text-align: center; - width: 215px; -} - -/* Clear Floated Elements -------------------------------------------------------------------------------*/ -.column:after,.button-collection:after,.clearfix:after,div.project-info:after - { - clear: both; - content: ' '; - display: block; - font-size: 0; - line-height: 0; - visibility: hidden; - width: 0; - height: 0; -} - -.container-fluid { - background-color:white !important; - min-height:500px; -} - -.nav-tabs { - border: 0; -} - -.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus - { - border: 0; - border-top: 3px solid #F3565D; -} - -.nav-tabs>li>a { - border-radius: 0; -} - -.nav-tabs>li>a:hover { - background-color: #f1f3fa; - border: 1Px solid #f1f3fa; -} - -.c3 { - margin-top: 120px; -} - -.skills-chart-breadcrumb { - -} - -.blue:selected { - border: 0; - background-color: #5b9bd1; -} - -.btn { - /* border-width: 0; */ - /* padding: 7px 14px; */ - /* font-size: 14px; */ - /* outline: none !important; */ - /* background-image: none !important; */ - /* filter: none; */ - /* -webkit-box-shadow: none; */ - -moz-box-shadow: none; - /* box-shadow: none; */ - /* text-shadow: none; */ -} - -select { - border-width: 1px; - padding: 4px 1px; - border-radius: 4px; -} - -.input-sm { - padding: 4px 10px; -} - -.btn-block { - display: block; - width: 100%; - padding-left: 0; - padding-right: 0; -} - -/* Bootstrap buttons */ -.btn-default { - color: #5b9bd1; - background-color: #fff; - border-color: #ccc; -} - -.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active - { - color: #333; - background-color: #ededed; - border-color: #b3b3b3; -} - -.open .btn-default.dropdown-toggle { - color: #333; - background-color: #ededed; - border-color: #b3b3b3; -} - -.btn-default:active,.btn-default.active { - background-image: none; - background-color: #e0e0e0; - font-weight: bold; -} - -.btn-default:active:hover,.btn-default.active:hover { - background-color: #e6e6e6; -} - -.open .btn-default.dropdown-toggle { - background-image: none; -} - -.btn-default.disabled,.btn-default.disabled:hover,.btn-default.disabled:focus,.btn-default.disabled:active,.btn-default.disabled.active,.btn-default[disabled],.btn-default[disabled]:hover,.btn-default[disabled]:focus,.btn-default[disabled]:active,.btn-default[disabled].active,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default:hover,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default.active - { - background-color: #fff; - border-color: #ccc; -} - -.btn-default .badge { - color: #fff; - background-color: #333; -} - -.btn-default>i { - color: #aaa; -} - -.btn-default>i[class^="icon-"],.btn-default>i[class*="icon-"] { - color: #8c8c8c; -} - -div[data-name="tab_zone"] div { - background-color: #f1f3fa; - padding: 0px; -} - -div[data-name="cond_zone"] div { - background-color: #fff; - margin-top: 15px; - margin-bottom: 15px; -} - -div[data-name="res-conds-zone"] { - display: inline; -} - -div[data-name="res-conds-zone"] select,div[data-name="res-conds-zone"] span - { - /**height:33px;*/ - margin-left: 15px; - color: #5b9bd1; - border-color: #ccc; - font-weight: bold; -} - -.input{ - width:250px; - height: 34px; - padding: 6px 12px; - font-size: 14px; - line-height: 1.42857143; - color: #555; - background-color: #fff; - background-image: none; - border: 1px solid #ccc; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075); - box-shadow: inset 0 1px 1px rgba(0,0,0,.075); - -webkit-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; - transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; -} - -div.separator { - margin: 20px; -} - -div.separator div { - text-align: center; - line-height: 0; -} - -div.separator-line { - height: 1px !important; - width: 100%; - background: #ddd; - overflow: hidden; -} - -.dropdown-toggle { - color: #5b9bd1; -} - -.calendar-date { - color: #5b9bd1; -} - -.range_inputs { - color: #5b9bd1; -} - -.btn.dropdown-toggle,.btn-group .btn.dropdown-toggle,.btn:hover,.btn:disabled,.btn[disabled],.btn:focus,.btn:active,.btn.active - { - outline: none !important; - background-image: none !important; - filter: none; - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; - text-shadow: none; -} - -#skills-chart-breadcrumb { - margin-bottom: 10px -} - -/*increase daterangepicker's css*/ -input[name="daterange"] { - width: 220px; - line-height: 0; - height: 31px; - vertical-align: top; - margin-top: 2px; -} - -.daterangepicker .ranges { - width: 205px; -} - -.daterangepicker .ranges input { - width: 95px !important; -} - -td.details-control { - background: url('../image/details_open.png') no-repeat center center; - cursor: pointer; -} - -tr.shown td.details-control { - background: url('../image/details_close.png') no-repeat center center; -} - -.details table td { - word-wrap: break-word; - word-break: normal; - border-top: 1px solid #dddddd; -} - -.details table tr:first-child td { - border-top: none; -} - -.details table { - table-layout: fixed; - width: 100%; -} - -td.title { - width: 10%; -} - -table.dataTable tbody th,table.dataTable tbody td { - padding: 8px 10px; -} - -div.dataTables_length,div.dataTables_info { - display: inline; -} - -div.dataTables_paginate { - display: inline; - float: right; -} - -div.pagination-panel { - margin-right: 10px; -} - -input.pagination-panel-input { - width: 50px; -} - -.daterangepicker .daterangepicker_start_input label,.daterangepicker .daterangepicker_end_input label - { - color: #5b9bd1; -} - -.daterangepicker .ranges .input-mini { - color: #5b9bd1; -} - -.cancelBtn { - padding: 5px 10px 5px 10px; -} - -.btn:focus,.btn:active:focus,.btn.active:focus { - outline: 0; -} - -#ict_host_table_div { - margin-top: 15px; -} - -#ict_host_table_div label { - font-weight: 100; -}s - -#ict_host_table_div table { - width: 100% !important; -} - -.upload { - width:60%; -} -.myPreview { - height: 100px; -} - -.uploadBtn { - margin-top:10px; -} - -.input-group .form-control { - height: 34px !important; -} - -.input-group .btn { - font-size: 14px !important; -} - -.form-horizontal .btn-center { - text-align: center; - margin-bottom: 15px; -} - -.blueactive { - color: #ffffff !important; - background-color: #5b9bd1; -} - -/* .process-modal { - position:fixed; - top:0; - right:0; - bottom:0; - left:0; - z-index:1000; -} -.process-content { - width: 200px; - margin: 200px auto; - padding:15px; - border: 1px solid #ddd; - background-color: #eee; - text-align:center; -} */ \ No newline at end of file diff --git a/portal-catalog/src/main/webapp/catalog/css/package.css b/portal-catalog/src/main/webapp/catalog/css/package.css deleted file mode 100644 index 4d5a4413..00000000 --- a/portal-catalog/src/main/webapp/catalog/css/package.css +++ /dev/null @@ -1,470 +0,0 @@ -/** - * Copyright 2016-2017 ZTE Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -body { - font-family: microsoft yahei !important; -} - -/* blue pill (inspired by iTunes) -*******************************************************************************/ -.redFont{ - color:red; -} -.blue { - - background-color: #5b9bd1; - border-radius: 20px; - color: #fff; - font-weight: bold; - padding: 8px 0; - text-align: center; - width: 100px; -} - -.blue:hover { - background-color: #e8f3fd; - color: #5b9bd1; -} - -.blue.selected { - border: 0; - background-color: #5b9bd1; - color: #fff; -} - -.blue.selected:hover { - border: 0; - background-color: #5b9bd1; - color: #fff; -} - -p { - color: #444; - font-size: 14px; - font-weight: normal; - line-height: 21px; - margin: 0 0 12px 0; -} - -p.credit { - border-top: 1px solid #ccc; - font-size: 14px; - line-height: 140%; - margin: 36px 0 12px 0; - padding: 8px 0 0 0; - text-align: center; -} - -ul.column { - float: left; - list-style: none; - width: 675px; -} - -ul.column li { - background: #eee; - -webkit-border-radius: 5px; - border-radius: 5px; - -webkit-box-shadow: inset 0 1px 1px 0 #c7c7c7; - box-shadow: inset 0 1px 1px 0 #c7c7c7; - float: left; - margin: 10px 0 0 10px; - display: block; - height: 150px; - text-align: center; - width: 215px; -} - -/* Clear Floated Elements -------------------------------------------------------------------------------*/ -.column:after,.button-collection:after,.clearfix:after,div.project-info:after - { - clear: both; - content: ' '; - display: block; - font-size: 0; - line-height: 0; - visibility: hidden; - width: 0; - height: 0; -} - -.container-fluid { - background-color:white !important; - min-height:500px; -} - -.nav-tabs { - border: 0; -} - -.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus - { - border: 0; - border-top: 3px solid #F3565D; -} - -.nav-tabs>li>a { - border-radius: 0; -} - -.nav-tabs>li>a:hover { - background-color: #f1f3fa; - border: 1Px solid #f1f3fa; -} - -.c3 { - margin-top: 120px; -} - -.skills-chart-breadcrumb { - -} - -.blue:selected { - border: 0; - background-color: #5b9bd1; -} - -select { - border-width: 1px; - padding: 4px 1px; - border-radius: 4px; -} - -.input-sm { - padding: 4px 10px; -} - -.btn-block { - display: block; - width: 100%; - padding-left: 0; - padding-right: 0; -} - -/* Bootstrap buttons */ -.btn-default { - color: #5b9bd1; - background-color: #fff; - border-color: #ccc; -} - -.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active - { - color: #333; - background-color: #ededed; - border-color: #b3b3b3; -} - -.open .btn-default.dropdown-toggle { - color: #333; - background-color: #ededed; - border-color: #b3b3b3; -} - -.btn-default:active,.btn-default.active { - background-image: none; - background-color: #e0e0e0; - font-weight: bold; -} - -.btn-default:active:hover,.btn-default.active:hover { - background-color: #e6e6e6; -} - -.open .btn-default.dropdown-toggle { - background-image: none; -} - -.btn-default.disabled,.btn-default.disabled:hover,.btn-default.disabled:focus,.btn-default.disabled:active,.btn-default.disabled.active,.btn-default[disabled],.btn-default[disabled]:hover,.btn-default[disabled]:focus,.btn-default[disabled]:active,.btn-default[disabled].active,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default:hover,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default.active - { - background-color: #fff; - border-color: #ccc; -} - -.btn-default .badge { - color: #fff; - background-color: #333; -} - -.btn-default>i { - color: #aaa; -} - -.btn-default>i[class^="icon-"],.btn-default>i[class*="icon-"] { - color: #8c8c8c; -} - -div[data-name="tab_zone"] div { - background-color: #f1f3fa; - padding: 0px; -} - -div[data-name="cond_zone"] div { - background-color: #fff; - margin-top: 15px; - margin-bottom: 15px; -} - -div[data-name="res-conds-zone"] { - display: inline; -} - -div[data-name="res-conds-zone"] select,div[data-name="res-conds-zone"] span - { - /**height:33px;*/ - margin-left: 15px; - color: #5b9bd1; - border-color: #ccc; - font-weight: bold; -} - -.input{ - width:250px; - height: 34px; - padding: 6px 12px; - font-size: 14px; - line-height: 1.42857143; - color: #555; - background-color: #fff; - background-image: none; - border: 1px solid #ccc; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075); - box-shadow: inset 0 1px 1px rgba(0,0,0,.075); - -webkit-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; - transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; -} - -div.separator { - margin: 20px; -} - -div.separator div { - text-align: center; - line-height: 0; -} - -div.separator-line { - height: 1px !important; - width: 100%; - background: #ddd; - overflow: hidden; -} - -.dropdown-toggle { - color: #5b9bd1; -} - -.calendar-date { - color: #5b9bd1; -} - -.range_inputs { - color: #5b9bd1; -} - -.btn.dropdown-toggle,.btn-group .btn.dropdown-toggle,.btn:hover,.btn:disabled,.btn[disabled],.btn:focus,.btn:active,.btn.active - { - outline: none !important; - background-image: none !important; - filter: none; - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; - text-shadow: none; -} - -#skills-chart-breadcrumb { - margin-bottom: 10px -} - -/*daterangepicker css*/ -input[name="daterange"] { - width: 220px; - line-height: 0; - height: 31px; - vertical-align: top; - margin-top: 2px; -} - -.daterangepicker .ranges { - width: 205px; -} - -.daterangepicker .ranges input { - width: 95px !important; -} - -td.details-control { - background: url('../image/details_open.png') no-repeat center center; - cursor: pointer; -} - -tr.shown td.details-control { - background: url('../image/details_close.png') no-repeat center center; -} - -.details table td { - word-wrap: break-word; - word-break: normal; - border-top: 1px solid #dddddd; -} - -.details table tr:first-child td { - border-top: none; -} - -.details table { - table-layout: fixed; - width: 100%; -} - -td.title { - width: 10%; -} - -table.dataTable tbody th,table.dataTable tbody td { - padding: 8px 10px; -} - -div.dataTables_length,div.dataTables_info { - display: inline; -} - -div.dataTables_paginate { - display: inline; - float: right; -} - -div.pagination-panel { - margin-right: 10px; -} - -input.pagination-panel-input { - width: 50px; -} - -#ict_package_table_div { - margin-top: 15px; -} - -#ict_package_table_div label { - font-weight: 100; -} - -.daterangepicker .daterangepicker_start_input label,.daterangepicker .daterangepicker_end_input label - { - color: #5b9bd1; -} - -.daterangepicker .ranges .input-mini { - color: #5b9bd1; -} - -.cancelBtn { - padding: 5px 10px 5px 10px; -} - -.btn:focus,.btn:active:focus,.btn.active:focus { - outline: 0; -} - -#ict_package_table_div table { - width: 100% !important; -} - -.upload { - width:60%; - margin-top: 10px; -} -.myPreview { - height: 100px; -} - -span.status:hover { - color: #2A69AC; - cursor: pointer; -} - -.input-group .form-control { - height: 34px !important; -} - -.input-group .btn { - font-size: 14px !important; -} - -.package-drop-zone-title{ - color:#aaa; - font-size:20px; - padding:15px 10px -} - -#right-menu { - position:absolute; - top:0; - right:0; - width:420px; - height:100%; - border-left:4px solid rgb(58,174,218); - background-color:rgba(255,255,255,.95); - padding-left:19px; - padding-right:15px; - padding-top:20px; - z-index:9999; - overflow-y: auto; -} - -#right-menu .btn{ - min-width: 30px !important; - letter-spacing :normal !important; -} - -.rigth { - float: right; -} -.right-button-pointer { - display:inline-block; - cursor:pointer -} -.floating-panel { - width:400px; - display:none -} - -.packageDetail { - margin-top:15px; -} - -.packageDetail label { - font-weight: 100; -} - -.packageDetail table { - width:100%; - table-layout: fixed; - word-wrap:break-word; -} - -.tdCenter -{ - display: block; - min-height: 20px; - margin-top: 10px; - margin-bottom: 10px; - text-align:center; -} \ No newline at end of file diff --git a/portal-catalog/src/main/webapp/catalog/css/platform/animate.min.css b/portal-catalog/src/main/webapp/catalog/css/platform/animate.min.css deleted file mode 100644 index 9b2a27d0..00000000 --- a/portal-catalog/src/main/webapp/catalog/css/platform/animate.min.css +++ /dev/null @@ -1,21 +0,0 @@ -/** - * Copyright 2016-2017 ZTE Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -@charset "UTF-8";/*! -Animate.css - http://daneden.me/animate -Licensed under the MIT license - http://opensource.org/licenses/MIT - -Copyright (c) 2014 Daniel Eden -*/.animated{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animated.infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.animated.hinge{-webkit-animation-duration:2s;animation-duration:2s}@-webkit-keyframes bounce{0%,100%,20%,53%,80%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1);-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}40%,43%{-webkit-transition-timing-function:cubic-bezier(0.755,.050,.855,.060);transition-timing-function:cubic-bezier(0.755,.050,.855,.060);-webkit-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}70%{-webkit-transition-timing-function:cubic-bezier(0.755,.050,.855,.060);transition-timing-function:cubic-bezier(0.755,.050,.855,.060);-webkit-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}@keyframes bounce{0%,100%,20%,53%,80%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1);-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}40%,43%{-webkit-transition-timing-function:cubic-bezier(0.755,.050,.855,.060);transition-timing-function:cubic-bezier(0.755,.050,.855,.060);-webkit-transform:translate3d(0,-30px,0);-ms-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}70%{-webkit-transition-timing-function:cubic-bezier(0.755,.050,.855,.060);transition-timing-function:cubic-bezier(0.755,.050,.855,.060);-webkit-transform:translate3d(0,-15px,0);-ms-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);-ms-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}.bounce{-webkit-animation-name:bounce;animation-name:bounce;-webkit-transform-origin:center bottom;-ms-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes flash{0%,100%,50%{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,100%,50%{opacity:1}25%,75%{opacity:0}}.flash{-webkit-animation-name:flash;animation-name:flash}@-webkit-keyframes pulse{0%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}100%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes pulse{0%{-webkit-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);-ms-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}100%{-webkit-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.pulse{-webkit-animation-name:pulse;animation-name:pulse}@-webkit-keyframes rubberBand{0%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(0.75,1.25,1);transform:scale3d(0.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}100%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes rubberBand{0%{-webkit-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}30%{-webkit-transform:scale3d(1.25,.75,1);-ms-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(0.75,1.25,1);-ms-transform:scale3d(0.75,1.25,1);transform:scale3d(0.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);-ms-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);-ms-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);-ms-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}100%{-webkit-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.rubberBand{-webkit-animation-name:rubberBand;animation-name:rubberBand}@-webkit-keyframes shake{0%,100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}@keyframes shake{0%,100%{-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);-ms-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);-ms-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}.shake{-webkit-animation-name:shake;animation-name:shake}@-webkit-keyframes swing{20%{-webkit-transform:rotate3d(0,0,1,15deg);transform:rotate3d(0,0,1,15deg)}40%{-webkit-transform:rotate3d(0,0,1,-10deg);transform:rotate3d(0,0,1,-10deg)}60%{-webkit-transform:rotate3d(0,0,1,5deg);transform:rotate3d(0,0,1,5deg)}80%{-webkit-transform:rotate3d(0,0,1,-5deg);transform:rotate3d(0,0,1,-5deg)}100%{-webkit-transform:rotate3d(0,0,1,0deg);transform:rotate3d(0,0,1,0deg)}}@keyframes swing{20%{-webkit-transform:rotate3d(0,0,1,15deg);-ms-transform:rotate3d(0,0,1,15deg);transform:rotate3d(0,0,1,15deg)}40%{-webkit-transform:rotate3d(0,0,1,-10deg);-ms-transform:rotate3d(0,0,1,-10deg);transform:rotate3d(0,0,1,-10deg)}60%{-webkit-transform:rotate3d(0,0,1,5deg);-ms-transform:rotate3d(0,0,1,5deg);transform:rotate3d(0,0,1,5deg)}80%{-webkit-transform:rotate3d(0,0,1,-5deg);-ms-transform:rotate3d(0,0,1,-5deg);transform:rotate3d(0,0,1,-5deg)}100%{-webkit-transform:rotate3d(0,0,1,0deg);-ms-transform:rotate3d(0,0,1,0deg);transform:rotate3d(0,0,1,0deg)}}.swing{-webkit-transform-origin:top center;-ms-transform-origin:top center;transform-origin:top center;-webkit-animation-name:swing;animation-name:swing}@-webkit-keyframes tada{0%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg);transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg)}100%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes tada{0%{-webkit-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg);-ms-transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg);transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg);-ms-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg);-ms-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg)}100%{-webkit-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.tada{-webkit-animation-name:tada;animation-name:tada}@-webkit-keyframes wobble{0%{-webkit-transform:none;transform:none}15%{-webkit-transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg);transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg);transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg);transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg);transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg);transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg)}100%{-webkit-transform:none;transform:none}}@keyframes wobble{0%{-webkit-transform:none;-ms-transform:none;transform:none}15%{-webkit-transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg);-ms-transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg);transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg);-ms-transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg);transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg);-ms-transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg);transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg);-ms-transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg);transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg);-ms-transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg);transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg)}100%{-webkit-transform:none;-ms-transform:none;transform:none}}.wobble{-webkit-animation-name:wobble;animation-name:wobble}@-webkit-keyframes bounceIn{0%,100%,20%,40%,60%,80%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}100%{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes bounceIn{0%,100%,20%,40%,60%,80%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);-ms-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);-ms-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);-ms-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);-ms-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);-ms-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}100%{opacity:1;-webkit-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.bounceIn{-webkit-animation-name:bounceIn;animation-name:bounceIn;-webkit-animation-duration:.75s;animation-duration:.75s}@-webkit-keyframes bounceInDown{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}100%{-webkit-transform:none;transform:none}}@keyframes bounceInDown{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);-ms-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);-ms-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);-ms-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);-ms-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}100%{-webkit-transform:none;-ms-transform:none;transform:none}}.bounceInDown{-webkit-animation-name:bounceInDown;animation-name:bounceInDown}@-webkit-keyframes bounceInLeft{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}100%{-webkit-transform:none;transform:none}}@keyframes bounceInLeft{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);-ms-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);-ms-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);-ms-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);-ms-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}100%{-webkit-transform:none;-ms-transform:none;transform:none}}.bounceInLeft{-webkit-animation-name:bounceInLeft;animation-name:bounceInLeft}@-webkit-keyframes bounceInRight{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}100%{-webkit-transform:none;transform:none}}@keyframes bounceInRight{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0);-ms-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);-ms-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);-ms-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);-ms-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}100%{-webkit-transform:none;-ms-transform:none;transform:none}}.bounceInRight{-webkit-animation-name:bounceInRight;animation-name:bounceInRight}@-webkit-keyframes bounceInUp{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes bounceInUp{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0);-ms-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);-ms-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);-ms-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);-ms-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}100%{-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.bounceInUp{-webkit-animation-name:bounceInUp;animation-name:bounceInUp}@-webkit-keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}100%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);-ms-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);-ms-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}100%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);-ms-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}.bounceOut{-webkit-animation-name:bounceOut;animation-name:bounceOut;-webkit-animation-duration:.75s;animation-duration:.75s}@-webkit-keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}100%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);-ms-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);-ms-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}100%{opacity:0;-webkit-transform:translate3d(0,2000px,0);-ms-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.bounceOutDown{-webkit-animation-name:bounceOutDown;animation-name:bounceOutDown}@-webkit-keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}100%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);-ms-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}100%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);-ms-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.bounceOutLeft{-webkit-animation-name:bounceOutLeft;animation-name:bounceOutLeft}@-webkit-keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}100%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);-ms-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}100%{opacity:0;-webkit-transform:translate3d(2000px,0,0);-ms-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.bounceOutRight{-webkit-animation-name:bounceOutRight;animation-name:bounceOutRight}@-webkit-keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}100%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);-ms-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);-ms-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}100%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);-ms-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.bounceOutUp{-webkit-animation-name:bounceOutUp;animation-name:bounceOutUp}@-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}.fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);-ms-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInDown{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}@-webkit-keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);-ms-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInDownBig{-webkit-animation-name:fadeInDownBig;animation-name:fadeInDownBig}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);-ms-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInLeft{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}@-webkit-keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);-ms-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInLeftBig{-webkit-animation-name:fadeInLeftBig;animation-name:fadeInLeftBig}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);-ms-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInRight{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}@-webkit-keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);-ms-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInRightBig{-webkit-animation-name:fadeInRightBig;animation-name:fadeInRightBig}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);-ms-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInUp{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}@-webkit-keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);-ms-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInUpBig{-webkit-animation-name:fadeInUpBig;animation-name:fadeInUpBig}@-webkit-keyframes fadeOut{0%{opacity:1}100%{opacity:0}}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}.fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}@-webkit-keyframes fadeOutDown{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes fadeOutDown{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,100%,0);-ms-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.fadeOutDown{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}@-webkit-keyframes fadeOutDownBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes fadeOutDownBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,2000px,0);-ms-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.fadeOutDownBig{-webkit-animation-name:fadeOutDownBig;animation-name:fadeOutDownBig}@-webkit-keyframes fadeOutLeft{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes fadeOutLeft{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-100%,0,0);-ms-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.fadeOutLeft{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}@-webkit-keyframes fadeOutLeftBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes fadeOutLeftBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);-ms-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.fadeOutLeftBig{-webkit-animation-name:fadeOutLeftBig;animation-name:fadeOutLeftBig}@-webkit-keyframes fadeOutRight{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes fadeOutRight{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%,0,0);-ms-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.fadeOutRight{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeOutRightBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes fadeOutRightBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(2000px,0,0);-ms-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.fadeOutRightBig{-webkit-animation-name:fadeOutRightBig;animation-name:fadeOutRightBig}@-webkit-keyframes fadeOutUp{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes fadeOutUp{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,-100%,0);-ms-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.fadeOutUp{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}@-webkit-keyframes fadeOutUpBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes fadeOutUpBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);-ms-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.fadeOutUpBig{-webkit-animation-name:fadeOutUpBig;animation-name:fadeOutUpBig}@-webkit-keyframes flip{0%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-360deg);transform:perspective(400px) rotate3d(0,1,0,-360deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95);transform:perspective(400px) scale3d(.95,.95,.95);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}100%{-webkit-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}@keyframes flip{0%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-360deg);-ms-transform:perspective(400px) rotate3d(0,1,0,-360deg);transform:perspective(400px) rotate3d(0,1,0,-360deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);-ms-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);-ms-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95);-ms-transform:perspective(400px) scale3d(.95,.95,.95);transform:perspective(400px) scale3d(.95,.95,.95);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}100%{-webkit-transform:perspective(400px);-ms-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}.animated.flip{-webkit-backface-visibility:visible;-ms-backface-visibility:visible;backface-visibility:visible;-webkit-animation-name:flip;animation-name:flip}@-webkit-keyframes flipInX{0%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1,0,0,10deg);transform:perspective(400px) rotate3d(1,0,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-5deg);transform:perspective(400px) rotate3d(1,0,0,-5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInX{0%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);-ms-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);-ms-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1,0,0,10deg);-ms-transform:perspective(400px) rotate3d(1,0,0,10deg);transform:perspective(400px) rotate3d(1,0,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-5deg);-ms-transform:perspective(400px) rotate3d(1,0,0,-5deg);transform:perspective(400px) rotate3d(1,0,0,-5deg)}100%{-webkit-transform:perspective(400px);-ms-transform:perspective(400px);transform:perspective(400px)}}.flipInX{-webkit-backface-visibility:visible!important;-ms-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInX;animation-name:flipInX}@-webkit-keyframes flipInY{0%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-20deg);transform:perspective(400px) rotate3d(0,1,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(0,1,0,10deg);transform:perspective(400px) rotate3d(0,1,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-5deg);transform:perspective(400px) rotate3d(0,1,0,-5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInY{0%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);-ms-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-20deg);-ms-transform:perspective(400px) rotate3d(0,1,0,-20deg);transform:perspective(400px) rotate3d(0,1,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(0,1,0,10deg);-ms-transform:perspective(400px) rotate3d(0,1,0,10deg);transform:perspective(400px) rotate3d(0,1,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-5deg);-ms-transform:perspective(400px) rotate3d(0,1,0,-5deg);transform:perspective(400px) rotate3d(0,1,0,-5deg)}100%{-webkit-transform:perspective(400px);-ms-transform:perspective(400px);transform:perspective(400px)}}.flipInY{-webkit-backface-visibility:visible!important;-ms-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInY;animation-name:flipInY}@-webkit-keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);opacity:0}}@keyframes flipOutX{0%{-webkit-transform:perspective(400px);-ms-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);-ms-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);-ms-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);opacity:0}}.flipOutX{-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-backface-visibility:visible!important;-ms-backface-visibility:visible!important;backface-visibility:visible!important}@-webkit-keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-15deg);transform:perspective(400px) rotate3d(0,1,0,-15deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);opacity:0}}@keyframes flipOutY{0%{-webkit-transform:perspective(400px);-ms-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-15deg);-ms-transform:perspective(400px) rotate3d(0,1,0,-15deg);transform:perspective(400px) rotate3d(0,1,0,-15deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);-ms-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);opacity:0}}.flipOutY{-webkit-backface-visibility:visible!important;-ms-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipOutY;animation-name:flipOutY;-webkit-animation-duration:.75s;animation-duration:.75s}@-webkit-keyframes lightSpeedIn{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg);opacity:1}100%{-webkit-transform:none;transform:none;opacity:1}}@keyframes lightSpeedIn{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);-ms-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);-ms-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);-ms-transform:skewX(-5deg);transform:skewX(-5deg);opacity:1}100%{-webkit-transform:none;-ms-transform:none;transform:none;opacity:1}}.lightSpeedIn{-webkit-animation-name:lightSpeedIn;animation-name:lightSpeedIn;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedOut{0%{opacity:1}100%{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}@keyframes lightSpeedOut{0%{opacity:1}100%{-webkit-transform:translate3d(100%,0,0) skewX(30deg);-ms-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}.lightSpeedOut{-webkit-animation-name:lightSpeedOut;animation-name:lightSpeedOut;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes rotateIn{0%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,-200deg);transform:rotate3d(0,0,1,-200deg);opacity:0}100%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateIn{0%{-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,-200deg);-ms-transform:rotate3d(0,0,1,-200deg);transform:rotate3d(0,0,1,-200deg);opacity:0}100%{-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;-webkit-transform:none;-ms-transform:none;transform:none;opacity:1}}.rotateIn{-webkit-animation-name:rotateIn;animation-name:rotateIn}@-webkit-keyframes rotateInDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInDownLeft{0%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);-ms-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}100%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;-ms-transform:none;transform:none;opacity:1}}.rotateInDownLeft{-webkit-animation-name:rotateInDownLeft;animation-name:rotateInDownLeft}@-webkit-keyframes rotateInDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInDownRight{0%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,45deg);-ms-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}100%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;-ms-transform:none;transform:none;opacity:1}}.rotateInDownRight{-webkit-animation-name:rotateInDownRight;animation-name:rotateInDownRight}@-webkit-keyframes rotateInUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInUpLeft{0%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,45deg);-ms-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}100%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;-ms-transform:none;transform:none;opacity:1}}.rotateInUpLeft{-webkit-animation-name:rotateInUpLeft;animation-name:rotateInUpLeft}@-webkit-keyframes rotateInUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-90deg);transform:rotate3d(0,0,1,-90deg);opacity:0}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInUpRight{0%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-90deg);-ms-transform:rotate3d(0,0,1,-90deg);transform:rotate3d(0,0,1,-90deg);opacity:0}100%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;-ms-transform:none;transform:none;opacity:1}}.rotateInUpRight{-webkit-animation-name:rotateInUpRight;animation-name:rotateInUpRight}@-webkit-keyframes rotateOut{0%{-webkit-transform-origin:center;transform-origin:center;opacity:1}100%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,200deg);transform:rotate3d(0,0,1,200deg);opacity:0}}@keyframes rotateOut{0%{-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;opacity:1}100%{-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,200deg);-ms-transform:rotate3d(0,0,1,200deg);transform:rotate3d(0,0,1,200deg);opacity:0}}.rotateOut{-webkit-animation-name:rotateOut;animation-name:rotateOut}@-webkit-keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(0,0,1,45deg);transform:rotate(0,0,1,45deg);opacity:0}}@keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;opacity:1}100%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(0,0,1,45deg);-ms-transform:rotate(0,0,1,45deg);transform:rotate(0,0,1,45deg);opacity:0}}.rotateOutDownLeft{-webkit-animation-name:rotateOutDownLeft;animation-name:rotateOutDownLeft}@-webkit-keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}@keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;opacity:1}100%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-45deg);-ms-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}.rotateOutDownRight{-webkit-animation-name:rotateOutDownRight;animation-name:rotateOutDownRight}@-webkit-keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}@keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;opacity:1}100%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);-ms-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}.rotateOutUpLeft{-webkit-animation-name:rotateOutUpLeft;animation-name:rotateOutUpLeft}@-webkit-keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,90deg);transform:rotate3d(0,0,1,90deg);opacity:0}}@keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;opacity:1}100%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,90deg);-ms-transform:rotate3d(0,0,1,90deg);transform:rotate3d(0,0,1,90deg);opacity:0}}.rotateOutUpRight{-webkit-animation-name:rotateOutUpRight;animation-name:rotateOutUpRight}@-webkit-keyframes hinge{0%{-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate3d(0,0,1,80deg);transform:rotate3d(0,0,1,80deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate3d(0,0,1,60deg);transform:rotate3d(0,0,1,60deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}100%{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}@keyframes hinge{0%{-webkit-transform-origin:top left;-ms-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate3d(0,0,1,80deg);-ms-transform:rotate3d(0,0,1,80deg);transform:rotate3d(0,0,1,80deg);-webkit-transform-origin:top left;-ms-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate3d(0,0,1,60deg);-ms-transform:rotate3d(0,0,1,60deg);transform:rotate3d(0,0,1,60deg);-webkit-transform-origin:top left;-ms-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}100%{-webkit-transform:translate3d(0,700px,0);-ms-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}.hinge{-webkit-animation-name:hinge;animation-name:hinge}@-webkit-keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg);transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg);-ms-transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg);transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.rollIn{-webkit-animation-name:rollIn;animation-name:rollIn}@-webkit-keyframes rollOut{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg);transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg)}}@keyframes rollOut{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg);-ms-transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg);transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg)}}.rollOut{-webkit-animation-name:rollOut;animation-name:rollOut}@-webkit-keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);-ms-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}.zoomIn{-webkit-animation-name:zoomIn;animation-name:zoomIn}@-webkit-keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-ms-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-ms-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.zoomInDown{-webkit-animation-name:zoomInDown;animation-name:zoomInDown}@-webkit-keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-ms-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-ms-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.zoomInLeft{-webkit-animation-name:zoomInLeft;animation-name:zoomInLeft}@-webkit-keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-ms-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-ms-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.zoomInRight{-webkit-animation-name:zoomInRight;animation-name:zoomInRight}@-webkit-keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-ms-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-ms-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.zoomInUp{-webkit-animation-name:zoomInUp;animation-name:zoomInUp}@-webkit-keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}100%{opacity:0}}@keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);-ms-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}100%{opacity:0}}.zoomOut{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}100%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-ms-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}100%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-ms-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;-ms-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.zoomOutDown{-webkit-animation-name:zoomOutDown;animation-name:zoomOutDown}@-webkit-keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}100%{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;transform-origin:left center}}@keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);-ms-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}100%{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);-ms-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;-ms-transform-origin:left center;transform-origin:left center}}.zoomOutLeft{-webkit-animation-name:zoomOutLeft;animation-name:zoomOutLeft}@-webkit-keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}100%{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;transform-origin:right center}}@keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);-ms-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}100%{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);-ms-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;-ms-transform-origin:right center;transform-origin:right center}}.zoomOutRight{-webkit-animation-name:zoomOutRight;animation-name:zoomOutRight}@-webkit-keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}100%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-ms-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}100%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-ms-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;-ms-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.zoomOutUp{-webkit-animation-name:zoomOutUp;animation-name:zoomOutUp} \ No newline at end of file diff --git a/portal-catalog/src/main/webapp/catalog/css/platform/skill.css b/portal-catalog/src/main/webapp/catalog/css/platform/skill.css deleted file mode 100644 index 74669cdf..00000000 --- a/portal-catalog/src/main/webapp/catalog/css/platform/skill.css +++ /dev/null @@ -1,89 +0,0 @@ -/** - * Copyright 2016-2017 ZTE Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -body { - font-family: 'Open Sans', sans-serif; - background-color: #f1f3fa; - width: '100%'; - height: '100%'; - margin-top: 10px; -} -div.skills-sunburst{ - font-size: 12px; - font-weight: 400; - text-align:center; -} - -#skillmap .skills-wrapper { - margin-top: 10px; - overflow: auto; -} -#skillmap .skills-sunburst { - float: left; - width: 500px; - margin-left: -80px; -} -#skillmap .skills-sunburst svg { - font: 11px 'Source Sans Pro', sans-serif; - font-weight: 900; - - cursor: pointer; -} -#skillmap .skills-chart { - float: right; - font-family: 'Source Sans Pro', sans-serif; - font-size: 15px; - margin: 80px 20px 0 0; -} -#skillmap .skills-chart .breadcumb-text { - font-size: 13px; - font-weight: 700; -} -#skillmap .skills-chart #skills-chart-line { - fill: none; - stroke-width: 3.5px; -} -#skillmap .skills-chart .axis path, -#skillmap .skills-chart .axis line { - fill: none; -} -#skillmap .skills-chart .x-axis path, -#skillmap .skills-chart .y-axis path { - stroke: #444; - stroke-width: 1px; - shape-rendering: geometricPrecision; -} - -#explanation { - position: absolute; - top: 165px; - left: 170px; - width: 140px; - text-align: center; - color: #666; - margin-top:30px; -} - -#percentage { - font-size: 2em; -} - -#endlabel{ - font-sizte:1.5em; -} - -div.skills-sunburst text{ - text-anchor: middle; -} \ No newline at end of file diff --git a/portal-catalog/src/main/webapp/catalog/css/software.css b/portal-catalog/src/main/webapp/catalog/css/software.css deleted file mode 100644 index 96087633..00000000 --- a/portal-catalog/src/main/webapp/catalog/css/software.css +++ /dev/null @@ -1,423 +0,0 @@ -/** - * Copyright 2016-2017 ZTE Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -body { - font-family: microsoft yahei !important; -} - -/* blue pill (inspired by iTunes) -*******************************************************************************/ -.redFont{ - color:red; -} -.blue { - - background-color: #5b9bd1; - border-radius: 20px; - color: #fff; - font-weight: bold; - padding: 8px 0; - text-align: center; - width: 100px; -} - -.blue:hover { - background-color: #e8f3fd; - color: #5b9bd1; -} - -.blue.selected { - border: 0; - background-color: #5b9bd1; - color: #fff; -} - -.blue.selected:hover { - border: 0; - background-color: #5b9bd1; - color: #fff; -} - -p { - color: #444; - font-size: 14px; - font-weight: normal; - line-height: 21px; - margin: 0 0 12px 0; -} - -p.credit { - border-top: 1px solid #ccc; - font-size: 14px; - line-height: 140%; - margin: 36px 0 12px 0; - padding: 8px 0 0 0; - text-align: center; -} - -ul.column { - float: left; - list-style: none; - width: 675px; -} - -ul.column li { - background: #eee; - -webkit-border-radius: 5px; - border-radius: 5px; - -webkit-box-shadow: inset 0 1px 1px 0 #c7c7c7; - box-shadow: inset 0 1px 1px 0 #c7c7c7; - float: left; - margin: 10px 0 0 10px; - display: block; - height: 150px; - text-align: center; - width: 215px; -} - -/* Clear Floated Elements -------------------------------------------------------------------------------*/ -.column:after,.button-collection:after,.clearfix:after,div.project-info:after - { - clear: both; - content: ' '; - display: block; - font-size: 0; - line-height: 0; - visibility: hidden; - width: 0; - height: 0; -} - -.container-fluid { - background-color:white !important; - min-height:500px; -} - -.nav-tabs { - border: 0; -} - -.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus - { - border: 0; - border-top: 3px solid #F3565D; -} - -.nav-tabs>li>a { - border-radius: 0; -} - -.nav-tabs>li>a:hover { - background-color: #f1f3fa; - border: 1Px solid #f1f3fa; -} - -.c3 { - margin-top: 120px; -} - -.skills-chart-breadcrumb { - -} - -.blue:selected { - border: 0; - background-color: #5b9bd1; -} - -.btn { - /* border-width: 0; */ - /* padding: 7px 14px; */ - /* font-size: 14px; */ - /* outline: none !important; */ - /* background-image: none !important; */ - /* filter: none; */ - /* -webkit-box-shadow: none; */ - -moz-box-shadow: none; - /* box-shadow: none; */ - /* text-shadow: none; */ -} - -select { - border-width: 1px; - padding: 4px 1px; - border-radius: 4px; -} - -.input-sm { - padding: 4px 10px; -} - -.btn-block { - display: block; - width: 100%; - padding-left: 0; - padding-right: 0; -} - -/* Bootstrap buttons */ -.btn-default { - color: #5b9bd1; - background-color: #fff; - border-color: #ccc; -} - -.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active - { - color: #333; - background-color: #ededed; - border-color: #b3b3b3; -} - -.open .btn-default.dropdown-toggle { - color: #333; - background-color: #ededed; - border-color: #b3b3b3; -} - -.btn-default:active,.btn-default.active { - background-image: none; - background-color: #e0e0e0; - font-weight: bold; -} - -.btn-default:active:hover,.btn-default.active:hover { - background-color: #e6e6e6; -} - -.open .btn-default.dropdown-toggle { - background-image: none; -} - -.btn-default.disabled,.btn-default.disabled:hover,.btn-default.disabled:focus,.btn-default.disabled:active,.btn-default.disabled.active,.btn-default[disabled],.btn-default[disabled]:hover,.btn-default[disabled]:focus,.btn-default[disabled]:active,.btn-default[disabled].active,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default:hover,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default.active - { - background-color: #fff; - border-color: #ccc; -} - -.btn-default .badge { - color: #fff; - background-color: #333; -} - -.btn-default>i { - color: #aaa; -} - -.btn-default>i[class^="icon-"],.btn-default>i[class*="icon-"] { - color: #8c8c8c; -} - -div[data-name="tab_zone"] div { - background-color: #f1f3fa; - padding: 0px; -} - -div[data-name="cond_zone"] div { - background-color: #fff; - margin-top: 15px; - margin-bottom: 15px; -} - -div[data-name="res-conds-zone"] { - display: inline; -} - -div[data-name="res-conds-zone"] select,div[data-name="res-conds-zone"] span - { - /**height:33px;*/ - margin-left: 15px; - color: #5b9bd1; - border-color: #ccc; - font-weight: bold; -} - -.input{ - width:250px; - height: 34px; - padding: 6px 12px; - font-size: 14px; - line-height: 1.42857143; - color: #555; - background-color: #fff; - background-image: none; - border: 1px solid #ccc; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075); - box-shadow: inset 0 1px 1px rgba(0,0,0,.075); - -webkit-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; - transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; -} - -div.separator { - margin: 20px; -} - -div.separator div { - text-align: center; - line-height: 0; -} - -div.separator-line { - height: 1px !important; - width: 100%; - background: #ddd; - overflow: hidden; -} - -.dropdown-toggle { - color: #5b9bd1; -} - -.calendar-date { - color: #5b9bd1; -} - -.range_inputs { - color: #5b9bd1; -} - -.btn.dropdown-toggle,.btn-group .btn.dropdown-toggle,.btn:hover,.btn:disabled,.btn[disabled],.btn:focus,.btn:active,.btn.active - { - outline: none !important; - background-image: none !important; - filter: none; - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; - text-shadow: none; -} - -#skills-chart-breadcrumb { - margin-bottom: 10px -} - -/*increase daterangepicker's css*/ -input[name="daterange"] { - width: 220px; - line-height: 0; - height: 31px; - vertical-align: top; - margin-top: 2px; -} - -.daterangepicker .ranges { - width: 205px; -} - -.daterangepicker .ranges input { - width: 95px !important; -} - -td.details-control { - background: url('../image/details_open.png') no-repeat center center; - cursor: pointer; -} - -tr.shown td.details-control { - background: url('../image/details_close.png') no-repeat center center; -} - -.details table td { - word-wrap: break-word; - word-break: normal; - border-top: 1px solid #dddddd; -} - -.details table tr:first-child td { - border-top: none; -} - -.details table { - table-layout: fixed; - width: 100%; -} - -td.title { - width: 10%; -} - -table.dataTable tbody th,table.dataTable tbody td { - padding: 8px 10px; -} - -div.dataTables_length,div.dataTables_info { - display: inline; -} - -div.dataTables_paginate { - display: inline; - float: right; -} - -div.pagination-panel { - margin-right: 10px; -} - -input.pagination-panel-input { - width: 50px; -} - -.daterangepicker .daterangepicker_start_input label,.daterangepicker .daterangepicker_end_input label - { - color: #5b9bd1; -} - -.daterangepicker .ranges .input-mini { - color: #5b9bd1; -} - -.cancelBtn { - padding: 5px 10px 5px 10px; -} - -.btn:focus,.btn:active:focus,.btn.active:focus { - outline: 0; -} - -#ict_software_table_div { - margin-top: 10px; -} - -#ict_software_table_div label { - font-weight: 100; -}s - -#ict_software_table_div table { - width: 100% !important; -} - -.upload { - width:60%; -} -.myPreview { - height: 100px; -} - -.uploadBtn { - margin-top:10px; -} - -.file-input { - display: inline; - overflow: hidden; - word-break: break-all; - text-overflow: ellipsis; -} - -.input-group .btn { - font-size: 14px !important; -} \ No newline at end of file diff --git a/portal-catalog/src/main/webapp/catalog/css/template.css b/portal-catalog/src/main/webapp/catalog/css/template.css deleted file mode 100644 index c29de322..00000000 --- a/portal-catalog/src/main/webapp/catalog/css/template.css +++ /dev/null @@ -1,405 +0,0 @@ -/** - * Copyright 2016-2017 ZTE Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -body { - font-family: microsoft yahei !important; -} - -/* blue pill (inspired by iTunes) -*******************************************************************************/ -.redFont{ - color:red; -} -.blue { - - background-color: #5b9bd1; - border-radius: 20px; - color: #fff; - font-weight: bold; - padding: 8px 0; - text-align: center; - width: 100px; -} - -.blue:hover { - background-color: #e8f3fd; - color: #5b9bd1; -} - -.blue.selected { - border: 0; - background-color: #5b9bd1; - color: #fff; -} - -.blue.selected:hover { - border: 0; - background-color: #5b9bd1; - color: #fff; -} - -a { - text-decoration: none !important; -} - -p { - color: #444; - font-size: 14px; - font-weight: normal; - line-height: 21px; - margin: 0 0 12px 0; -} - -p.credit { - border-top: 1px solid #ccc; - font-size: 14px; - line-height: 140%; - margin: 36px 0 12px 0; - padding: 8px 0 0 0; - text-align: center; -} - -ul.column { - float: left; - list-style: none; - width: 675px; -} - -ul.column li { - background: #eee; - -webkit-border-radius: 5px; - border-radius: 5px; - -webkit-box-shadow: inset 0 1px 1px 0 #c7c7c7; - box-shadow: inset 0 1px 1px 0 #c7c7c7; - float: left; - margin: 10px 0 0 10px; - display: block; - height: 150px; - text-align: center; - width: 215px; -} - -/* Clear Floated Elements -------------------------------------------------------------------------------*/ -.column:after,.button-collection:after,.clearfix:after,div.project-info:after - { - clear: both; - content: ' '; - display: block; - font-size: 0; - line-height: 0; - visibility: hidden; - width: 0; - height: 0; -} - -.container-fluid { - background-color:white !important; - min-height:500px; -} - -.nav-tabs { - border: 0; -} - -.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus - { - border: 0; - border-top: 3px solid #F3565D; -} - -.nav-tabs>li>a { - border-radius: 0; -} - -.nav-tabs>li>a:hover { - background-color: #f1f3fa; - border: 1Px solid #f1f3fa; -} - -.c3 { - margin-top: 120px; -} - -.skills-chart-breadcrumb { - -} - -.blue:selected { - border: 0; - background-color: #5b9bd1; -} - -.btn { - /* border-width: 0; */ - /* padding: 7px 14px; */ - /* font-size: 14px; */ - /* outline: none !important; */ - /* background-image: none !important; */ - /* filter: none; */ - /* -webkit-box-shadow: none; */ - -moz-box-shadow: none; - /* box-shadow: none; */ - /* text-shadow: none; */ -} - -select { - border-width: 1px; - padding: 4px 1px; - border-radius: 4px; -} - -.input-sm { - padding: 4px 10px; -} - -.btn-block { - display: block; - width: 100%; - padding-left: 0; - padding-right: 0; -} - -/* Bootstrap buttons */ -.btn-default { - color: #5b9bd1; - background-color: #fff; - border-color: #ccc; -} - -.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active - { - color: #333; - background-color: #ededed; - border-color: #b3b3b3; -} - -.open .btn-default.dropdown-toggle { - color: #333; - background-color: #ededed; - border-color: #b3b3b3; -} - -.btn-default:active,.btn-default.active { - background-image: none; - background-color: #e0e0e0; - font-weight: bold; -} - -.btn-default:active:hover,.btn-default.active:hover { - background-color: #e6e6e6; -} - -.open .btn-default.dropdown-toggle { - background-image: none; -} - -.btn-default.disabled,.btn-default.disabled:hover,.btn-default.disabled:focus,.btn-default.disabled:active,.btn-default.disabled.active,.btn-default[disabled],.btn-default[disabled]:hover,.btn-default[disabled]:focus,.btn-default[disabled]:active,.btn-default[disabled].active,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default:hover,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default.active - { - background-color: #fff; - border-color: #ccc; -} - -.btn-default .badge { - color: #fff; - background-color: #333; -} - -.btn-default>i { - color: #aaa; -} - -.btn-default>i[class^="icon-"],.btn-default>i[class*="icon-"] { - color: #8c8c8c; -} - -div[data-name="tab_zone"] div { - background-color: #f1f3fa; - padding: 0px; -} - -div[data-name="cond_zone"] div { - background-color: #fff; - margin-top: 15px; - margin-bottom: 15px; -} - -div[data-name="res-conds-zone"] { - display: inline; -} - -div[data-name="res-conds-zone"] select,div[data-name="res-conds-zone"] span - { - /**height:33px;*/ - margin-left: 15px; - color: #5b9bd1; - border-color: #ccc; - font-weight: bold; -} - -.input{ - width:250px; - height: 34px; - padding: 6px 12px; - font-size: 14px; - line-height: 1.42857143; - color: #555; - background-color: #fff; - background-image: none; - border: 1px solid #ccc; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075); - box-shadow: inset 0 1px 1px rgba(0,0,0,.075); - -webkit-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; - transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; -} - -div.separator { - margin: 20px; -} - -div.separator div { - text-align: center; - line-height: 0; -} - -div.separator-line { - height: 1px !important; - width: 100%; - background: #ddd; - overflow: hidden; -} - -.dropdown-toggle { - color: #5b9bd1; -} - -.calendar-date { - color: #5b9bd1; -} - -.range_inputs { - color: #5b9bd1; -} - -.btn.dropdown-toggle,.btn-group .btn.dropdown-toggle,.btn:hover,.btn:disabled,.btn[disabled],.btn:focus,.btn:active,.btn.active - { - outline: none !important; - background-image: none !important; - filter: none; - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; - text-shadow: none; -} - -#skills-chart-breadcrumb { - margin-bottom: 10px -} - -/*increase daterangepicker's css*/ -input[name="daterange"] { - width: 220px; - line-height: 0; - height: 31px; - vertical-align: top; - margin-top: 2px; -} - -.daterangepicker .ranges { - width: 205px; -} - -.daterangepicker .ranges input { - width: 95px !important; -} - -td.details-control { - background: url('../image/details_open.png') no-repeat center center; - cursor: pointer; -} - -tr.shown td.details-control { - background: url('../image/details_close.png') no-repeat center center; -} - -.details table td { - word-wrap: break-word; - word-break: normal; - border-top: 1px solid #dddddd; -} - -.details table tr:first-child td { - border-top: none; -} - -.details table { - table-layout: fixed; - width: 100%; -} - -td.title { - width: 10%; -} - -table.dataTable tbody th,table.dataTable tbody td { - padding: 8px 10px; -} - -div.dataTables_length,div.dataTables_info { - display: inline; -} - -div.dataTables_paginate { - display: inline; - float: right; -} - -div.pagination-panel { - margin-right: 10px; -} - -input.pagination-panel-input { - width: 50px; -} - -#ict_template_table_div { - margin-top: 15px; -} - -#ict_template_table_div label { - font-weight: 100; -} - -.daterangepicker .daterangepicker_start_input label,.daterangepicker .daterangepicker_end_input label - { - color: #5b9bd1; -} - -.daterangepicker .ranges .input-mini { - color: #5b9bd1; -} - -.cancelBtn { - padding: 5px 10px 5px 10px; -} - -.btn:focus,.btn:active:focus,.btn.active:focus { - outline: 0; -} - -#ict_template_table_div table { - width: 100% !important; -} \ No newline at end of file diff --git a/portal-catalog/src/main/webapp/catalog/css/templateDetail.css b/portal-catalog/src/main/webapp/catalog/css/templateDetail.css deleted file mode 100644 index ec1335d8..00000000 --- a/portal-catalog/src/main/webapp/catalog/css/templateDetail.css +++ /dev/null @@ -1,480 +0,0 @@ -/** - * Copyright 2016-2017 ZTE Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -body { - font-family: microsoft yahei !important; -} - -/* blue pill (inspired by iTunes) -*******************************************************************************/ -.redFont{ - color:red; -} -.blue { - - background-color: #5b9bd1; - border-radius: 20px; - color: #fff; - font-weight: bold; - padding: 8px 0; - text-align: center; - width: 100px; -} - -.blue:hover { - background-color: #e8f3fd; - color: #5b9bd1; -} - -.blue.selected { - border: 0; - background-color: #5b9bd1; - color: #fff; -} - -.blue.selected:hover { - border: 0; - background-color: #5b9bd1; - color: #fff; -} - -a { - text-decoration: none !important; -} - -p { - color: #444; - font-size: 14px; - font-weight: normal; - line-height: 21px; - margin: 0 0 12px 0; -} - -p.credit { - border-top: 1px solid #ccc; - font-size: 14px; - line-height: 140%; - margin: 36px 0 12px 0; - padding: 8px 0 0 0; - text-align: center; -} - -ul.column { - float: left; - list-style: none; - width: 675px; -} - -ul.column li { - background: #eee; - -webkit-border-radius: 5px; - border-radius: 5px; - -webkit-box-shadow: inset 0 1px 1px 0 #c7c7c7; - box-shadow: inset 0 1px 1px 0 #c7c7c7; - float: left; - margin: 10px 0 0 10px; - display: block; - height: 150px; - text-align: center; - width: 215px; -} - -/* Clear Floated Elements -------------------------------------------------------------------------------*/ -.column:after,.button-collection:after,.clearfix:after,div.project-info:after - { - clear: both; - content: ' '; - display: block; - font-size: 0; - line-height: 0; - visibility: hidden; - width: 0; - height: 0; -} - -.container-fluid { - background-color:white !important; - min-height:800px; -} - -.nav-tabs { - border: 0; -} - -.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus - { - border: 0; - border-top: 3px solid #F3565D; -} - -.nav-tabs>li>a { - border-radius: 0; -} - -.nav-tabs>li>a:hover { - background-color: #f1f3fa; - border: 1Px solid #f1f3fa; -} - -.c3 { - margin-top: 120px; -} - -.skills-chart-breadcrumb { - -} - -.blue:selected { - border: 0; - background-color: #5b9bd1; -} - -.btn { - /* border-width: 0; */ - /* padding: 7px 14px; */ - /* font-size: 14px; */ - /* outline: none !important; */ - /* background-image: none !important; */ - /* filter: none; */ - /* -webkit-box-shadow: none; */ - -moz-box-shadow: none; - /* box-shadow: none; */ - /* text-shadow: none; */ -} - -select { - border-width: 1px; - padding: 4px 1px; - border-radius: 4px; -} - -.input-sm { - padding: 4px 10px; -} - -.btn-block { - display: block; - width: 100%; - padding-left: 0; - padding-right: 0; -} - -/* Bootstrap buttons */ -.btn-default { - color: #5b9bd1; - background-color: #fff; - border-color: #ccc; -} - -.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active - { - color: #333; - background-color: #ededed; - border-color: #b3b3b3; -} - -.open .btn-default.dropdown-toggle { - color: #333; - background-color: #ededed; - border-color: #b3b3b3; -} - -.btn-default:active,.btn-default.active { - background-image: none; - background-color: #e0e0e0; - font-weight: bold; -} - -.btn-default:active:hover,.btn-default.active:hover { - background-color: #e6e6e6; -} - -.open .btn-default.dropdown-toggle { - background-image: none; -} - -.btn-default.disabled,.btn-default.disabled:hover,.btn-default.disabled:focus,.btn-default.disabled:active,.btn-default.disabled.active,.btn-default[disabled],.btn-default[disabled]:hover,.btn-default[disabled]:focus,.btn-default[disabled]:active,.btn-default[disabled].active,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default:hover,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default.active - { - background-color: #fff; - border-color: #ccc; -} - -.btn-default .badge { - color: #fff; - background-color: #333; -} - -.btn-default>i { - color: #aaa; -} - -.btn-default>i[class^="icon-"],.btn-default>i[class*="icon-"] { - color: #8c8c8c; -} - -div[data-name="tab_zone"] div { - background-color: #f1f3fa; - padding: 0px; -} - -div[data-name="cond_zone"] div { - background-color: #fff; - margin-top: 15px; - margin-bottom: 15px; -} - -div[data-name="detail-conds-zone"] { - display: inline; -} - -div[data-name="detail-conds-zone"] select,div[data-name="detail-conds-zone"] span - { - /**height:33px;*/ - margin-left: 15px; - color: #5b9bd1; - border-color: #ccc; - font-weight: bold; -} - -.input{ - width:250px; - height: 34px; - padding: 6px 12px; - font-size: 14px; - line-height: 1.42857143; - color: #555; - background-color: #fff; - background-image: none; - border: 1px solid #ccc; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075); - box-shadow: inset 0 1px 1px rgba(0,0,0,.075); - -webkit-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; - transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; -} - -div.separator { - margin: 20px; -} - -div.separator div { - text-align: center; - line-height: 0; -} - -div.separator-line { - height: 1px !important; - width: 100%; - background: #ddd; - overflow: hidden; -} - -.dropdown-toggle { - color: #5b9bd1; -} - -.calendar-date { - color: #5b9bd1; -} - -.range_inputs { - color: #5b9bd1; -} - -.btn.dropdown-toggle,.btn-group .btn.dropdown-toggle,.btn:hover,.btn:disabled,.btn[disabled],.btn:focus,.btn:active,.btn.active - { - outline: none !important; - background-image: none !important; - filter: none; - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; - text-shadow: none; -} - -#skills-chart-breadcrumb { - margin-bottom: 10px -} - -/*increase daterangepicker's css*/ -input[name="daterange"] { - width: 220px; - line-height: 0; - height: 31px; - vertical-align: top; - margin-top: 2px; -} - -.daterangepicker .ranges { - width: 205px; -} - -.daterangepicker .ranges input { - width: 95px !important; -} - -td.details-control { - background: url('../image/details_open.png') no-repeat center center; - cursor: pointer; -} - -tr.shown td.details-control { - background: url('../image/details_close.png') no-repeat center center; -} - -.details table td { - word-wrap: break-word; - word-break: normal; - border-top: 1px solid #dddddd; -} - -.details table tr:first-child td { - border-top: none; -} - -.details table { - table-layout: fixed; - width: 100%; -} - -td.title { - width: 10%; -} - -table.dataTable tbody th,table.dataTable tbody td { - padding: 8px 10px; -} - -div.dataTables_length,div.dataTables_info { - display: inline; -} - -div.dataTables_paginate { - display: inline; - float: right; -} - -div.pagination-panel { - margin-right: 10px; -} - -input.pagination-panel-input { - width: 50px; -} - -.daterangepicker .daterangepicker_start_input label,.daterangepicker .daterangepicker_end_input label - { - color: #5b9bd1; -} - -.daterangepicker .ranges .input-mini { - color: #5b9bd1; -} - -.cancelBtn { - padding: 5px 10px 5px 10px; -} - -.btn:focus,.btn:active:focus,.btn.active:focus { - outline: 0; -} - -#right-menu { - position:absolute; - top:0; - right:0; - width:420px; - height:100%; - border-left:4px solid rgb(58,174,218); - background-color:rgba(255,255,255,.95); - padding-left:19px; - padding-right:15px; - padding-top:20px; - z-index:9999; - overflow-y: auto; -} - -#right-menu .btn{ - min-width: 30px !important; - letter-spacing :normal !important; -} - -.rigth { - float: right; -} -.right-button-pointer { - display:inline-block; - cursor:pointer -} -.floating-panel { - width:400px; - display:none -} - -title{height:25px;position:relative;top:20px;font-size:15px} - -#ict_nodes_table_div { - margin-top: 15px; -} - -#ict_nodes_table_div label { - font-weight: 100; -} - -#ict_nodes_table_div table { - width: 100% !important; -} - -.nodesDetail { - margin-top: 15px; -} - -.nodesDetail label { - font-weight: 100; -} - -.nodesDetail table { - width:100%; - table-layout: fixed; - word-wrap:break-word; -} - -.step { - text-align: center; - padding-top: 60px; -} - -.step div { - text-align: left; -} - -div.separator-sline { - height:28px ; - width:3px; -} - -.titlefont { - font-size:16px; -} - -.td_nodeId { - font-size: small; -} - -.iconBtn { - margin-left:15px; - min-width:30px; -} \ No newline at end of file diff --git a/portal-catalog/src/main/webapp/catalog/css/topology.css b/portal-catalog/src/main/webapp/catalog/css/topology.css deleted file mode 100644 index adfe8fa4..00000000 --- a/portal-catalog/src/main/webapp/catalog/css/topology.css +++ /dev/null @@ -1,393 +0,0 @@ -/** - * Copyright 2016-2017 ZTE Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -.container-fluid { - background-color: #fff; - padding: 0; -} - - -div[data-name="topo_zone"] { - background-color: #fff; - margin-top: 15px; - margin-bottom: 15px; -} - -p[tooltip], div[tooltip], td { - overflow: hidden; - text-overflow: ellipsis; -} - - - -.bpContainer { - position: relative; - display: block; - height: 100%; - padding: 40px; -} - - -.box { - position: relative; - display: inline-block; - min-width: 260px; - min-height: 170px; - border-width: 2px; - border-color: #136e9d; - border-style: solid; - background-color: #fff; - vertical-align: top; - padding: 2px; - border-radius: 6px; - margin: 0 60px 40px 0; -} - - -.box .piProgress, .line .piProgress { - position: absolute; - top: -12px; - left: -27px; - z-index: 1; -} -/* .piProgress { - position: relative; - display: inline-block; -} */ -.box .piProgress .circle, .line .piProgress .circle { - background: #136e9d; - border: 2px solid #d3dfe2; - width: 43px; - height: 43px; - top: 5.5px; - left: 5.5px; - border-radius: 21px; - font-size: 14px; -} -.box .piProgress .smallCircle { - background: #136e9d; - border: 2px solid #d3dfe2; - width: 30px; - height: 30px; - left: 11px; - border-radius: 21px; - font-size: 12px; - cursor: pointer; -} -.piProgress .circle, .piProgress .smallCircle { - position: absolute; - display: box; - box-pack: center; - box-align: center; - background-color: #46b8da; - color: #fff; - font-size: 100%; - z-index: 3; -} - -.bpContainer i.gs-node-icon { - position: absolute; - top: 10px; - left: 9px; - font-size: 23px; -} - -.bpContainer i.gs-cp-icon { - position: absolute; - top: 5px; - left: 5px; - font-size: 15px; -} - -.bpContainer .box .head, .bpContainer .line .head { - display: block; - background-color: #136e9d; - color: #fff; - padding: 2px 10px 3px 25px; - border-radius: 3px; - font-size: 20px; - height: 35px; -} - -.bpContainer .box .holder { - display: block; - padding: 5px 25px; - margin-top: 1px; - background-color: #fff; -} - -.bpContainer .box .nest { - min-height:130px; - cursor:pointer; -} - -.bpContainer .box .nest .plus { - position: absolute; - bottom:0; - right:5px; -} - -.bpContainer .box .boxHover~div { - background-color:#eaf1f7; -} - -.bpContainer .boxHover{ - cursor:pointer; -} - -.bpContainer .box .box .appHover{ - cursor:pointer; -} - - -.bpContainer .box .box .appHover p { - background-color:#eaf1f7; -} - -.bpContainer .box .box { - border-color: #3aaeda; - min-width: 170px; - margin: 15px; -} - -.bpContainer .box .box .head { - background-color: #3aaeda; -} - -.bpContainer .box .box .piProgress .circle { - background-color: #3aaeda; -} - -.bpContainer .box .box .holder { - text-align: center; - background-color: #fff; - min-height: 126px; -} - -.bpContainer .box .box .boxHover~div { - background-color:#eaf1f7; -} - -.bpContainer .app { - position: relative; - display: inline-block; - width: 47px; - height: 47px; - text-align: center; - border-radius: 3px; - margin: 10px 0; -} - -.bpContainer .app .piProgress { - top: 0; - left: -6px; -} - -.bpContainer .box .box .piProgress .circle{ - background-color: #3aaeda; -} - -.bpContainer .app p { - position: relative; - top: 50px; - margin: 0; - color: #555869; - text-align: center; - font-size: 15px; -} - - - .coordinates { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - pointer-events: none; -} - -.bpContainer .box .piProgress .circle>.badge, .bpContainer .line .piProgress .circle>.badge { - position:absolute; - display:inline-block; - z-index:1; - top:-8px; - left:20px; - min-width:20px; - border-radius:10px; - padding:3px!important; - vertical-align:baseline; - white-space:nowrap; - text-align:center; - background-color:#2f3334; - text-decoration:none; - font-size:14px; - color:#fff; - line-height:15px; - font-style:normal; - font-weight:400; - opacity:1 -} - -.header { - border-top:2px solid #4b6b8b; - background-color:#e8edf2; - height:40px; - padding:5px 20px -} - -.header .title { - display:inline-block; - font-size:18px; - color:#29AAEE; - line-height:28px -} - -.containList { - overflow-y:scroll; -} - -div.separator-icon { - text-align: center; - line-height: 0 -} - -.networksContainer{ - white-space:nowrap; - margin:40px 0 0 20px; - height:100% -} - -.networksContainer .network{ - position: relative; - display:inline-block; - text-align:center; - min-width:70px; - margin:0 10px 0 0 -} - -.networksContainer .subnet{ - display:inline-block; - text-align:center; - min-width:70px; - margin:0 10px 0 0 -} - -.networksContainer .subnet .line{ - position:relative; - display:inline-block; - vertical-align:top -} - -.networksContainer .name { - display:block; - width:100%; - background-color:#797B86; - color:#fff; - padding:2px 6px; - border-radius:5px; - text-align:center; - margin:0 0 10px; - overflow:hidden; - cursor: pointer; - text-overflow:ellipsis -} - -.networksContainer .network .name>.badge { - position:absolute; - display:inline-block; - z-index:1; - top:-9px; - right:-9px; - min-width:20px; - border-radius:10px; - padding:3px!important; - vertical-align:baseline; - white-space:nowrap; - text-align:center; - background-color:#2f3334; - text-decoration:none; - font-size:14px; - color:#fff; - line-height:15px; - font-style:normal; - font-weight:400; - opacity:1 -} - -.networksContainer .subnet .line .vlan{ - position:relative; - display:inline-block; - width:21px; - height:500px; - background-color:#149bdf; - color:#fff; - border-radius:5px; - vertical-align:top; - margin:0 10px 0 0; - cursor:pointer -} - -.networksContainer .subnet .vlan .badge { - position:absolute; - display:inline-block; - z-index:1; - top:-8px; - left:10px; - min-width:20px; - border-radius:10px; - padding:3px!important; - vertical-align:baseline; - white-space:nowrap; - text-align:center; - background-color:#2f3334; - text-decoration:none; - font-size:14px; - color:#fff; - line-height:15px; - font-style:normal; - font-weight:400; - opacity:1 -} - -.networksContainer .subnet .line .vlan:last-child{ - margin:0 -} - -.networksContainer .subnet .line .vlan>p{ - position:absolute; - display:block; - transform:rotate(90deg); - -ms-transform:rotate(90deg); - -webkit-transform:rotate(90deg); - white-space:nowrap; - color:#fff; - top:5px; - right:0; - left:1px -} - -.networksContainer .subnet .line .vlan>p.cidr{ - width:200px; - top:auto; - left:-90px; - bottom:85px; - color:#fff; - text-align:right -} - -.topoZone { - display: inline-block; - float: left; -} \ No newline at end of file diff --git a/portal-catalog/src/main/webapp/catalog/css/virtualApplication.css b/portal-catalog/src/main/webapp/catalog/css/virtualApplication.css deleted file mode 100644 index 2fae35ff..00000000 --- a/portal-catalog/src/main/webapp/catalog/css/virtualApplication.css +++ /dev/null @@ -1,501 +0,0 @@ -/** - * Copyright 2016-2017 ZTE Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -body { - font-family: microsoft yahei !important; -} - -/* blue pill (inspired by iTunes) -*******************************************************************************/ -.redFont{ - color:red; -} -.blue { - - background-color: #5b9bd1; - border-radius: 20px; - color: #fff; - font-weight: bold; - padding: 8px 0; - text-align: center; - width: 100px; -} - -.blue:hover { - background-color: #e8f3fd; - color: #5b9bd1; -} - -.blue.selected { - border: 0; - background-color: #5b9bd1; - color: #fff; -} - -.blue.selected:hover { - border: 0; - background-color: #5b9bd1; - color: #fff; -} - -a { - text-decoration: none !important; -} - -p { - color: #444; - font-size: 14px; - font-weight: normal; - line-height: 21px; - margin: 0 0 12px 0; -} - -p.credit { - border-top: 1px solid #ccc; - font-size: 14px; - line-height: 140%; - margin: 36px 0 12px 0; - padding: 8px 0 0 0; - text-align: center; -} - -ul.column { - float: left; - list-style: none; - width: 675px; -} - -ul.column li { - background: #eee; - -webkit-border-radius: 5px; - border-radius: 5px; - -webkit-box-shadow: inset 0 1px 1px 0 #c7c7c7; - box-shadow: inset 0 1px 1px 0 #c7c7c7; - float: left; - margin: 10px 0 0 10px; - display: block; - height: 150px; - text-align: center; - width: 215px; -} - -/* Clear Floated Elements -------------------------------------------------------------------------------*/ -.column:after,.button-collection:after,.clearfix:after,div.project-info:after - { - clear: both; - content: ' '; - display: block; - font-size: 0; - line-height: 0; - visibility: hidden; - width: 0; - height: 0; -} - -.container-fluid { - background-color:white !important; - min-height:500px; -} - -.nav-tabs { - border: 0; -} - -.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus - { - border: 0; - border-top: 3px solid #F3565D; -} - -.nav-tabs>li>a { - border-radius: 0; -} - -.nav-tabs>li>a:hover { - background-color: #f1f3fa; - border: 1Px solid #f1f3fa; -} - -.c3 { - margin-top: 120px; -} - -.skills-chart-breadcrumb { - -} - -.blue:selected { - border: 0; - background-color: #5b9bd1; -} - -select { - border-width: 1px; - padding: 2px 1px; - border-radius: 4px; -} - -.input-sm { - padding: 4px 10px; -} - -.btn-block { - display: block; - width: 100%; - padding-left: 0; - padding-right: 0; -} - -/* Bootstrap buttons */ -.btn-default { - color: #5b9bd1; - background-color: #fff; - border-color: #ccc; -} - -.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active - { - color: #333; - background-color: #ededed; - border-color: #b3b3b3; -} - -.open .btn-default.dropdown-toggle { - color: #333; - background-color: #ededed; - border-color: #b3b3b3; -} - -.btn-default:active,.btn-default.active { - background-image: none; - background-color: #e0e0e0; - font-weight: bold; -} - -.btn-default:active:hover,.btn-default.active:hover { - background-color: #e6e6e6; -} - -.open .btn-default.dropdown-toggle { - background-image: none; -} - -.btn-default.disabled,.btn-default.disabled:hover,.btn-default.disabled:focus,.btn-default.disabled:active,.btn-default.disabled.active,.btn-default[disabled],.btn-default[disabled]:hover,.btn-default[disabled]:focus,.btn-default[disabled]:active,.btn-default[disabled].active,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default:hover,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default.active - { - background-color: #fff; - border-color: #ccc; -} - -.btn-default .badge { - color: #fff; - background-color: #333; -} - -.btn-default>i { - color: #aaa; -} - -.btn-default>i[class^="icon-"],.btn-default>i[class*="icon-"] { - color: #8c8c8c; -} - -div[data-name="tab_zone"] div { - background-color: #f1f3fa; - padding: 0px; -} - -div[data-name="cond_zone"] div { - background-color: #fff; - margin-top: 15px; - margin-bottom: 15px; -} - -div[data-name="res-conds-zone"] { - display: inline; -} - -div[data-name="res-conds-zone"] select,div[data-name="res-conds-zone"] span - { - /**height:33px;*/ - margin-left: 15px; - color: #5b9bd1; - border-color: #ccc; - font-weight: bold; -} - -.input{ - width:250px; - height: 34px; - padding: 6px 12px; - font-size: 14px; - line-height: 1.42857143; - color: #555; - background-color: #fff; - background-image: none; - border: 1px solid #ccc; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075); - box-shadow: inset 0 1px 1px rgba(0,0,0,.075); - -webkit-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; - transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; -} - -div.separator { - margin: 20px; -} - -div.separator div { - text-align: center; - line-height: 0; -} - -div.separator-line { - height: 1px !important; - width: 100%; - background: #ddd; - overflow: hidden; -} - -.dropdown-toggle { - color: #5b9bd1; -} - -.calendar-date { - color: #5b9bd1; -} - -.range_inputs { - color: #5b9bd1; -} - -.btn.dropdown-toggle,.btn-group .btn.dropdown-toggle,.btn:hover,.btn:disabled,.btn[disabled],.btn:focus,.btn:active,.btn.active - { - outline: none !important; - background-image: none !important; - filter: none; - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; - text-shadow: none; -} - -#skills-chart-breadcrumb { - margin-bottom: 10px -} - -/*increase daterangepicker's css*/ -input[name="daterange"] { - width: 220px; - line-height: 0; - height: 31px; - vertical-align: top; - margin-top: 2px; -} - -.daterangepicker .ranges { - width: 205px; -} - -.daterangepicker .ranges input { - width: 95px !important; -} - -td.details-control { - background: url('../image/details_open.png') no-repeat center center; - cursor: pointer; -} - -tr.shown td.details-control { - background: url('../image/details_close.png') no-repeat center center; -} - -.details table td { - word-wrap: break-word; - word-break: normal; - border-top: 1px solid #dddddd; -} - -.details table tr:first-child td { - border-top: none; -} - -.details table { - table-layout: fixed; - width: 100%; -} - -td.title { - width: 10%; -} - -table.dataTable tbody th,table.dataTable tbody td { - padding: 8px 10px; -} - -div.dataTables_length,div.dataTables_info { - display: inline; -} - -div.dataTables_paginate { - display: inline; - float: right; -} - -div.pagination-panel { - margin-right: 10px; -} - -input.pagination-panel-input { - width: 50px; -} - -#ict_virtualApplication_table_div { - margin-top: 15px; -} - -#ict_virtualApplication_table_div label { - font-weight: 100; -} - -.daterangepicker .daterangepicker_start_input label,.daterangepicker .daterangepicker_end_input label - { - color: #5b9bd1; -} - -.daterangepicker .ranges .input-mini { - color: #5b9bd1; -} - -.cancelBtn { - padding: 5px 10px 5px 10px; -} - -.btn:focus,.btn:active:focus,.btn.active:focus { - outline: 0; -} - -#ict_virtualApplication_table_div table { - width: 100% !important; -} - -.uploadBtn { - margin-top:10px; -} - -.btn-operation { - min-width: 30px; - line-height: 1; -} - -tr select { - width: 80px; -} - -.span-action { - float:left; -} - -.btn i { - padding-right: 0 !important; -} - -.vmapp-margin { - margin-bottom: 20px; -} - -.vmapp-form-title { - padding:8px; - margin-bottom:5px; - margin-left:20px; - border-left: 2px solid #5b9bd1; - color:#1A78CA; -} - -.input-group .input-control { - height : 34px !important; -} - -.input-group .input-control[disabled] { - cursor: default; - background-color: #fff; -} - -.input-group .input-group-btn .btn-default { - color: #333; - font-size: 14px; - min-width: 34px; -} - -.modal-scrollable { - overflow: auto !important; -} - -td.icheckbox { - text-align: center; -} - -td .icheckbox_square-aero { - margin-right: 0; -} - -.hpanel { - background-color: none; - border: none; - box-shadow: none; - margin-bottom: 5px; -} - -.hpanel .panel-body { - border: 1px solid #e4e5e7; - border-radius: 2px; - position: relative; -} - -.hpanel > .panel-footer { - color: inherit; - border: 1px solid #e4e5e7; - border-top: none; - font-size: 90%; - background: #f7f9fa; - height:40px; - padding: 5px 10px; -} - -.hpanel > .panel-footer .pull-right a{ - margin-left: 5px; -} - -.hpanel > .panel-footer .pull-right .btn{ - min-width: 30px !important; -} - -.hpanel_show { - background-color: #f7f9fa; -} - -.hpanel .panel-info { - overflow:hidden; - white-space:nowrap; - text-overflow:ellipsis; -} - -.tipArea { - border-bottom: 1px solid #d4d4d4; - width: 95%; - margin-bottom: 15px; - margin-left: 15px; - padding-bottom: 5px; -} \ No newline at end of file diff --git a/portal-catalog/src/main/webapp/catalog/css/vnfm.css b/portal-catalog/src/main/webapp/catalog/css/vnfm.css deleted file mode 100644 index a12a8dfd..00000000 --- a/portal-catalog/src/main/webapp/catalog/css/vnfm.css +++ /dev/null @@ -1,491 +0,0 @@ -/** - * Copyright 2016-2017 ZTE Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -body { - font-family: microsoft yahei !important; -} - -/* blue pill (inspired by iTunes) -*******************************************************************************/ - -.grey { - background-color: #e5e5e5; - color: #333; -} - -.blue { - - background-color: #5b9bd1; - border-radius: 20px; - color: #fff; - font-weight: bold; - padding: 8px 0; - text-align: center; - width: 100px; -} - -.blue:hover { - background-color: #e8f3fd; - color: #5b9bd1; -} - -.blue.selected { - border: 0; - background-color: #5b9bd1; - color: #fff; -} - -.blue.selected:hover { - border: 0; - background-color: #5b9bd1; - color: #fff; -} - -p { - color: #444; - font-size: 14px; - font-weight: normal; - line-height: 21px; - margin: 0 0 12px 0; -} - -p.credit { - border-top: 1px solid #ccc; - font-size: 14px; - line-height: 140%; - margin: 36px 0 12px 0; - padding: 8px 0 0 0; - text-align: center; -} - -ul.column { - float: left; - list-style: none; - width: 675px; -} - -ul.column li { - background: #eee; - -webkit-border-radius: 5px; - border-radius: 5px; - -webkit-box-shadow: inset 0 1px 1px 0 #c7c7c7; - box-shadow: inset 0 1px 1px 0 #c7c7c7; - float: left; - margin: 10px 0 0 10px; - display: block; - height: 150px; - text-align: center; - width: 215px; -} - -/* Clear Floated Elements -------------------------------------------------------------------------------*/ -.column:after,.button-collection:after,.clearfix:after,div.project-info:after - { - clear: both; - content: ' '; - display: block; - font-size: 0; - line-height: 0; - visibility: hidden; - width: 0; - height: 0; -} - -.container-fluid { - background-color:white !important; - min-height:500px; -} - -.nav-tabs { - border: 0; -} - -.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus - { - border: 0; - border-top: 3px solid #F3565D; -} - -.nav-tabs>li>a { - border-radius: 0; -} - -.nav-tabs>li>a:hover { - background-color: #f1f3fa; - border: 1Px solid #f1f3fa; -} - -.c3 { - margin-top: 120px; -} - -.skills-chart-breadcrumb { - -} - -.blue:selected { - border: 0; - background-color: #5b9bd1; -} - -.btn { - /* border-width: 0; */ - /* padding: 7px 14px; */ - /* font-size: 14px; */ - /* outline: none !important; */ - /* background-image: none !important; */ - /* filter: none; */ - /* -webkit-box-shadow: none; */ - -moz-box-shadow: none; - /* box-shadow: none; */ - /* text-shadow: none; */ -} - -select { - border-width: 1px; - padding: 4px 1px; - border-radius: 4px; -} - -.input-sm { - padding: 4px 10px; -} - -.btn-block { - display: block; - width: 100%; - padding-left: 0; - padding-right: 0; -} - -/* Bootstrap buttons */ - - -.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active - { - color: #333; - background-color: #ededed; - border-color: #b3b3b3; -} - -.open .btn-default.dropdown-toggle { - color: #333; - background-color: #ededed; - border-color: #b3b3b3; -} - -.btn-default:active,.btn-default.active { - background-image: none; - background-color: #e0e0e0; - font-weight: bold; -} - -.btn-default:active:hover,.btn-default.active:hover { - background-color: #e6e6e6; -} - -.open .btn-default.dropdown-toggle { - background-image: none; -} - -.btn-default.disabled,.btn-default.disabled:hover,.btn-default.disabled:focus,.btn-default.disabled:active,.btn-default.disabled.active,.btn-default[disabled],.btn-default[disabled]:hover,.btn-default[disabled]:focus,.btn-default[disabled]:active,.btn-default[disabled].active,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default:hover,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default.active - { - background-color: #fff; - border-color: #ccc; -} - -.btn-default .badge { - color: #fff; - background-color: #333; -} - - -.btn-default>i[class^="icon-"],.btn-default>i[class*="icon-"] { - color: #8c8c8c; -} - -div[data-name="tab_zone"] div { - background-color: #f1f3fa; - padding: 0px; -} - -div[data-name="cond_zone"] div { - background-color: #fff; - margin-top: 15px; - margin-bottom: 15px; -} - -div[data-name="res-conds-zone"] { - display: inline; -} - -div[data-name="res-conds-zone"] select,div[data-name="res-conds-zone"] span - { - /**height:33px;*/ - margin-left: 15px; - color: #5b9bd1; - border-color: #ccc; - font-weight: bold; -} - -.input{ - width:250px; - height: 34px; - padding: 6px 12px; - font-size: 14px; - line-height: 1.42857143; - color: #555; - background-color: #fff; - background-image: none; - border: 1px solid #ccc; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075); - box-shadow: inset 0 1px 1px rgba(0,0,0,.075); - -webkit-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; - transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; -} - -div.separator { - margin: 20px; -} - -div.separator div { - text-align: center; - line-height: 0; -} - -div.separator-line { - height: 1px !important; - width: 100%; - background: #ddd; - overflow: hidden; -} - -.dropdown-toggle { - color: #5b9bd1; -} - -.calendar-date { - color: #5b9bd1; -} - -.range_inputs { - color: #5b9bd1; -} - -.btn.dropdown-toggle,.btn-group .btn.dropdown-toggle,.btn:hover,.btn:disabled,.btn[disabled],.btn:focus,.btn:active,.btn.active - { - outline: none !important; - background-image: none !important; - filter: none; - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; - text-shadow: none; -} - -#skills-chart-breadcrumb { - margin-bottom: 10px -} - -/*increase daterangepicker's css*/ -input[name="daterange"] { - width: 220px; - line-height: 0; - height: 31px; - vertical-align: top; - margin-top: 2px; -} - -.daterangepicker .ranges { - width: 205px; -} - -.daterangepicker .ranges input { - width: 95px !important; -} - -td.details-control { - background: url('../image/details_open.png') no-repeat center center; - cursor: pointer; -} - -tr.shown td.details-control { - background: url('../image/details_close.png') no-repeat center center; -} - -.details table td { - word-wrap: break-word; - word-break: normal; - border-top: 1px solid #dddddd; -} - -.details table tr:first-child td { - border-top: none; -} - -.details table { - table-layout: fixed; - width: 100%; -} - -td.title { - width: 10%; -} - -table.dataTable tbody th,table.dataTable tbody td { - padding: 8px 10px; -} - -div.dataTables_length,div.dataTables_info { - display: inline; -} - -div.dataTables_paginate { - display: inline; - float: right; -} - -div.pagination-panel { - margin-right: 10px; -} - -input.pagination-panel-input { - width: 50px; -} - -#ict_res_table_div { - margin-top: 15px; -} - -#ict_res_table_div label { - font-weight: 100; -} - -.daterangepicker .daterangepicker_start_input label,.daterangepicker .daterangepicker_end_input label - { - color: #5b9bd1; -} - -.daterangepicker .ranges .input-mini { - color: #5b9bd1; -} - -.cancelBtn { - padding: 5px 10px 5px 10px; -} - -.btn:focus,.btn:active:focus,.btn.active:focus { - outline: 0; -} - -#ict_res_table_div table { - width: 100% !important; -} - -.control-label .required { - color: #e02222; - font-size: 12px; - padding-left: 2px; -} - -#ict_vim_table tbody tr{ - cursor:pointer; -} - - -.animated-panel { - -webkit-animation-duration: .5s; - animation-duration: .5s; - -webkit-animation-fill-mode: both; - animation-fill-mode: both; -} - -.hpanel { - background-color: none; - border: none; - box-shadow: none; - margin-bottom: 25px; - -} - -.hpanel .panel-body { - border: 1px solid #e4e5e7; - border-radius: 2px; - padding: 20px; - position: relative; -} -.h-200 { - min-height: 220px; -} - -.m-t-xl { - margin-top: 40px; -} - -.m-t-xl div { - margin-bottom: 15px; -} - -.text-success { - color: #0d638f; -} -.hpanel > .panel-footer { - color: inherit; - border: 1px solid #e4e5e7; - border-top: none; - font-size: 90%; - background: #f7f9fa; - height:40px; - padding: 5px 15px; -} -.color_cloud{ - color:#ccc; -} -.stats-title{ - -} - -h3{ - margin-top: 10px; - margin-bottom: 40px; - font-weight: 200; -} - -.blue-font{ - color:#428bca; -} - -.hpanel > .panel-footer .pull-right a{ - margin-left: 5px; -} - -.hpanel > .panel-footer .pull-right .btn{ - min-width: 30px !important; -} - -.font-bold { - font-weight: 600; - margin-bottom: 15px; -} - -.hpanel_show{ - background-color: #f7f9fa; -} - -.vnfm-padding { - padding-left: 0; -} \ No newline at end of file diff --git a/portal-catalog/src/main/webapp/catalog/i18n/nfv-nso-iui-i18n-en-US.properties b/portal-catalog/src/main/webapp/catalog/i18n/nfv-nso-iui-i18n-en-US.properties deleted file mode 100644 index 781f9391..00000000 --- a/portal-catalog/src/main/webapp/catalog/i18n/nfv-nso-iui-i18n-en-US.properties +++ /dev/null @@ -1,156 +0,0 @@ -# -# Copyright 2016-2017 ZTE Corporation. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -//table -nfv-nso-iui-table-sLengthMenu=View _MENU_ records -nfv-nso-iui-table-sZeroRecords=No matching records found -nfv-nso-iui-table-sInfo=Found total _TOTAL_ records -nfv-nso-iui-table-sInfoEmpty=No records found to show -nfv-nso-iui-table-sGroupActions=_TOTAL_ records selected: -nfv-nso-iui-table-sAjaxRequestGeneralError=Could not complete request. Please check your internet connection. -nfv-nso-iui-table-sEmptyTable=No data available in table -nfv-nso-iui-table-sPrevious=Prev -nfv-nso-iui-table-sNext=Next -nfv-nso-iui-table-sPage=Page -nfv-nso-iui-table-sPageOf=of -nfv-nso-iui-table-sProcess=Processing... - -//common -nfv-nso-iui-common-tip=Tip: - -//package table colums -nfv-package-iui-title=Package -nfv-package-iui-field-sn=Index -nfv-package-iui-field-name=Name -nfv-package-iui-field-type=Type -nfv-package-iui-field-usagestate=Usage State -nfv-package-iui-field-processstate=Process State -nfv-package-iui-field-operationalstate=Operational State -nfv-package-iui-field-onboardstate=OnBoard State -nfv-package-iui-field-deletionpending=Deletion Pending -nfv-package-iui-field-operation=Operation - -nfv-package-iui-field-detail-name=Name -nfv-package-iui-field-detail-type=Type -nfv-package-iui-field-detail-usagestate=Usage State -nfv-package-iui-field-detail-processstate=Process State -nfv-package-iui-field-detail-operationalstate=Operational State -nfv-package-iui-field-detail-onboardstate=Onboard State -nfv-package-iui-field-detail-deletionpending=Deletion Pending -nfv-package-iui-field-detail-operation=Operation -nfv-package-iui-field-detail-size=Size -nfv-package-iui-field-detail-csarid=ID -nfv-package-iui-field-detail-version=Version -nfv-package-iui-field-detail-provider=Provider -nfv-package-iui-field-detail-downloaduri=Download Uri -nfv-package-iui-field-detail-createtime=Create Time -nfv-package-iui-field-detail-modifytime=Modify Time -nfv-package-iui-field-detail-format=Format - -nfv-package-iui-status-tip=Taps to Activate -nfv-package-iui-status-active=Activate -nfv-package-iui-status-activating=Activating -nfv-package-iui-status-inactive=Nonactivate -nfv-package-iui-status-deleting =Deleting -nfv-package-iui-status-deletefail = Delete Fail -nfv-package-iui-status-onBoarding = Onboarding - -nfv-package-iui_packageview_packageDetail=Package Detail -nfv-package-iui_packageview_btn_close=Close -nfv-package-iui_packageview_key=Key -nfv-package-iui_packageview_value=Value -nfv-package-iui-selectvim-title=Select VIM Onboard Image -nfv-package-iui-btn-cancel=Cancel -nfv-package-iui-btn-ok=Ok - -nfv-package-iui-message-upload-success=Csar package imported successfully. -nfv-package-iui-message-upload-fail=Csar package imported failed. -nfv-package-iui-message-delete-confirm=Do you want to delete the current package? -nfv-package-iui-message-delete-success=Csar package deleted successfully. -nfv-package-iui-message-upload-csar-exist=There is a package in the same name, they may be the same package, whether still upload this package? -nfv-package-iui-message-upload-csar-deletionpending=This package is referenced in an instance. whether to re upload? -nfv-package-iui-message-onBoarded = Onboarding operation successfully. -nfv-package-iui-message-onBoard-error = Onboarding error. -nfv-package-iui-message-delete-error = Package delete error. -nfv-package-iui-message-select-vim-error = Can not select more than one VIM to be test environment. -nfv-package-iui-onboard-dialog-vimname = VIM Name -nfv-package-iui-product-env = Product Environment -nfv-package-iui-test-env = Test Environment -nfv-package-iui-http-delete-error = Delete package from HTTP server failed! -nfv-package-iui-template-delete-error = Delete template data failed! -nfv-package-iui-package-delete-error = Delete package data failed! - -nfv-package-iui-drop-zone-title=Drag & drop files here … -nfv-package-iui-drop-zone-selectBtn=Browse -nfv-package-iui-drop-zone-removeBtn=Remove -nfv-package-iui-drop-zone-uploadBtn=Upload - -nfv-template-topo-iui-title=Topology -nfv-template-nodes-iui-title=Nodes - -//template table colums -nfv-template-iui-title=Service Template -nfv-template-iui-field-order=Order -nfv-template-iui-field-templatename=Name -nfv-template-iui-field-templatename-topo=Name(Topo) -nfv-template-iui-field-templatename-nodes=Name(Nodes) -nfv-template-iui-field-producttype=Type -nfv-template-iui-field-vendor=Vendor -nfv-template-iui-field-version=Version -nfv-template-iui-field-inputs=Inputs -nfv-template-iui-field-outputs=Outputs -nfv-template-iui-field-operations=Operations -nfv-template-iui-field-download-uri=Download Uri -nfv-template-iui-field-type=Node Type - -//template detail table colums -nfv-templateDetail-iui-index=Index -nfv-templateDetail-iui-title=Node Template -nfv-templateDetail-iui-field-nodeId=ID -nfv-templateDetail-iui-field-nodetypename=Name -nfv-templateDetail-iui-field-type=Type -nfv-templateDetail-iui-field-containedin=Contained In -nfv-templateDetail-iui-field-deployedon=Deployed On -nfv-templateDetail-iui-field-connectedto=Conected To -nfv-templateDetail-iui-field-virtuallinksto=Virtual Links To - -nfv-templateDetail-nodesTab-iui-tab-general=General -nfv-templateDetail-nodesTab-iui-tab-properties=Properties -nfv-templateDetail-nodesTab-iui-tab-relationShips=RelationShips -nfv-templateDetail-nodesTab-iui-field-key=Key -nfv-templateDetail-nodesTab-iui-field-value=Value -nfv-templateDetail-nodesTab-iui-field-property=Property -nfv-templateDetail-nodesTab-iui-field-sourceNodeName=Source Node -nfv-templateDetail-nodesTab-iui-field-targetNodeName=Target Node -nfv-templateDetail-nodesTab-iui-field-type=Type -nfv-templateDetail-nodesTab-iui-btn-close=Close -nfv-templateDetail-nodesTab-iui-title-nodeDetail=Node Detail - -nfv-templateDetail-executionTab-iui-field-currentStepName=Name -nfv-templateDetail-executionTab-iui-field-currentStepStatus=Status -nfv-templateDetail-executionTab-iui-field-currentStepDesc=Description -nfv-templateDetail-executionTab-iui-field-executionTime=Execution Time - -//topo -nfv-topology-iui-vnf-tip=Click to view the nested topology -nfv-topology-iui-btn-return-tip=Return -nfv-topology-iui-message-error=Query Topology Information failed. - -nfv-software-iui-action-delete=Delete -nfv-software-iui-action-onboard=Onboard - -com_zte_openo_umc_monitor_monitorList_total=total -com_zte_openo_umc_monitor_monitorList_records=records \ No newline at end of file diff --git a/portal-catalog/src/main/webapp/catalog/i18n/nfv-nso-iui-i18n-zh-CN.properties b/portal-catalog/src/main/webapp/catalog/i18n/nfv-nso-iui-i18n-zh-CN.properties deleted file mode 100644 index b633da74..00000000 --- a/portal-catalog/src/main/webapp/catalog/i18n/nfv-nso-iui-i18n-zh-CN.properties +++ /dev/null @@ -1,155 +0,0 @@ -# -# Copyright 2016-2017 ZTE Corporation. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -//table -nfv-nso-iui-table-sLengthMenu=每页 _MENU_ 条结果 -nfv-nso-iui-table-sZeroRecords=没有匹配结果 -nfv-nso-iui-table-sInfo=总共找到 _TOTAL_ 条结果 -nfv-nso-iui-table-sInfoEmpty=共 0 项 -nfv-nso-iui-table-sGroupActions=_TOTAL_ 条结果被选择: -nfv-nso-iui-table-sAjaxRequestGeneralError=不能完成请求,请检查您的网络连接情况。 -nfv-nso-iui-table-sEmptyTable=表中数据为空 -nfv-nso-iui-table-sPrevious=前页 -nfv-nso-iui-table-sNext=下页 -nfv-nso-iui-table-sPage=第 -nfv-nso-iui-table-sPageOf=页,总页数: -nfv-nso-iui-table-sProcess=处理中... - -//common -nfv-nso-iui-common-tip=提示: - -//package table colums -nfv-package-iui-title=包管理 -nfv-package-iui-field-sn=序号 -nfv-package-iui-field-name=名称 -nfv-package-iui-field-type=类型 -nfv-package-iui-field-usagestate=使用状态 -nfv-package-iui-field-processstate=中间状态 -nfv-package-iui-field-operationalstate=操作状态 -nfv-package-iui-field-onboardstate=上载状态 -nfv-package-iui-field-deletionpending=待删除 -nfv-package-iui-field-operation=操作 - -//package detail message -nfv-package-iui-field-detail-name=名称 -nfv-package-iui-field-detail-type=类型 -nfv-package-iui-field-detail-usagestate=使用状态 -nfv-package-iui-field-detail-processstate=中间状态 -nfv-package-iui-field-detail-operationalstate=操作状态 -nfv-package-iui-field-detail-onboardstate=上载状态 -nfv-package-iui-field-detail-deletionpending=待删除状态 -nfv-package-iui-field-detail-operation=操作 -nfv-package-iui-field-detail-size=大小 -nfv-package-iui-field-detail-csarid=ID -nfv-package-iui-field-detail-version=版本 -nfv-package-iui-field-detail-provider=提供商 -nfv-package-iui-field-detail-downloaduri=下载Uri -nfv-package-iui-field-detail-createtime=创建时间 -nfv-package-iui-field-detail-modifytime=更改时间 -nfv-package-iui-field-detail-format=格式 - -nfv-package-iui-status-tip=点击激活 -nfv-package-iui-status-active=激活 -nfv-package-iui-status-activating=激活中 -nfv-package-iui-status-inactive=未激活 -nfv-package-iui-status-deleting=删除中 -nfv-package-iui-status-deletefail=删除失败 -nfv-package-iui-status-onBoarding=正在上载 - -nfv-package-iui_packageview_packageDetail=包详情 -nfv-package-iui_packageview_btn_close=关闭 -nfv-package-iui_packageview_key=关键字 -nfv-package-iui_packageview_value=值 -nfv-package-iui-selectvim-title=选择VIM上载镜像 -nfv-package-iui-btn-cancel=取消 -nfv-package-iui-btn-ok=确认 - -nfv-package-iui-message-upload-success=包导入成功。 -nfv-package-iui-message-upload-fail=包导入失败。 -nfv-package-iui-message-delete-confirm=确定要删除当前包? -nfv-package-iui-message-delete-success=包删除成功。 -nfv-package-iui-message-upload-csar-exist=存在同名包,是否继续上传? -nfv-package-iui-message-upload-csar-deletionpending=实例中引用了此包,是否重新上传? -nfv-package-iui-message-onBoarded = 上载操作成功。 -nfv-package-iui-message-onBoard-error = 上载失败。 -nfv-package-iui-message-delete-error = 包删除失败。 -nfv-package-iui-message-select-vim-error = 最多只能选择一个VIM做为测试环境 -nfv-package-iui-onboard-dialog-vimname = VIM名称 -nfv-package-iui-product-env = 生产环境 -nfv-package-iui-test-env = 测试环境 -nfv-package-iui-http-delete-error = 从HTTP服务器上删除包失败! -nfv-package-iui-template-delete-error = 删除模板数据失败! -nfv-package-iui-package-delete-error = 删除包数据失败! - - -nfv-package-iui-drop-zone-title=拖拽文件到这里 … -nfv-package-iui-drop-zone-selectBtn=选择 -nfv-package-iui-drop-zone-removeBtn=移除 -nfv-package-iui-drop-zone-uploadBtn=上传 - -nfv-template-topo-iui-title=拓扑 -nfv-template-nodes-iui-title=节点 - -//template table colums -nfv-template-iui-title=模板管理 -nfv-template-iui-field-order=序号 -nfv-template-iui-field-templatename=名称 -nfv-template-iui-field-templatename-topo=名称(拓扑) -nfv-template-iui-field-templatename-nodes=名称(节点) -nfv-template-iui-field-producttype=类型 -nfv-template-iui-field-vendor=厂商 -nfv-template-iui-field-version=版本 -nfv-template-iui-field-inputs=输入 -nfv-template-iui-field-outputs=输出 -nfv-template-iui-field-operations=操作 -nfv-template-iui-field-download-uri=下载Uri -nfv-template-iui-field-type=节点类型 - -//template detail table colums -nfv-templateDetail-iui-index=序号 -nfv-templateDetail-iui-title=节点模板 -nfv-templateDetail-iui-field-nodeId=ID -nfv-templateDetail-iui-field-nodetypename=名称 -nfv-templateDetail-iui-field-type=类型 -nfv-templateDetail-iui-field-containedin=归属 -nfv-templateDetail-iui-field-deployedon=部署 -nfv-templateDetail-iui-field-connectedto=业务连接 -nfv-templateDetail-iui-field-virtuallinksto=网络连接 - -nfv-templateDetail-nodesTab-iui-tab-general=概况 -nfv-templateDetail-nodesTab-iui-tab-properties=属性 -nfv-templateDetail-nodesTab-iui-tab-relationShips=关系 -nfv-templateDetail-nodesTab-iui-field-key=关键字 -nfv-templateDetail-nodesTab-iui-field-value=值 -nfv-templateDetail-nodesTab-iui-field-property=属性 -nfv-templateDetail-nodesTab-iui-field-sourceNodeName=源节点 -nfv-templateDetail-nodesTab-iui-field-targetNodeName=目标节点 -nfv-templateDetail-nodesTab-iui-field-type=类型 -nfv-templateDetail-nodesTab-iui-btn-close=关闭 -nfv-templateDetail-nodesTab-iui-title-nodeDetail=节点详情 - -nfv-templateDetail-executionTab-iui-field-currentStepName=名称 -nfv-templateDetail-executionTab-iui-field-currentStepStatus=状态 -nfv-templateDetail-executionTab-iui-field-currentStepDesc=描述 -nfv-templateDetail-executionTab-iui-field-executionTime=执行时间 - -//topo -nfv-topology-iui-vnf-tip=点击查看嵌套拓扑图 -nfv-topology-iui-btn-return-tip=返回 -nfv-topology-iui-message-error=查询拓扑图模板信息失败 - -nfv-software-iui-action-delete=删除 -nfv-software-iui-action-onboard=Onboard diff --git a/portal-catalog/src/main/webapp/catalog/image/License.txt b/portal-catalog/src/main/webapp/catalog/image/License.txt deleted file mode 100644 index d1ce787a..00000000 --- a/portal-catalog/src/main/webapp/catalog/image/License.txt +++ /dev/null @@ -1,362 +0,0 @@ -THIS LICENSE FILE CONTAINS THE LICENSE APPLICABLE DEPENDING ON THE TYPE OF CONTRIBUTIONS. - -APACHE LICENSE 2 IS APPLICABLE FOR SOURCE CODE, CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL FOR DOCUMENTATION - -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - - -Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - -"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - -"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - -"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - -"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - -"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - -"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - -"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - -"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - -"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - -"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - -2. Grant of Copyright License. - -Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. - -Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - -4. Redistribution. - -You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - -You must give any other recipients of the Work or Derivative Works a copy of this License; and You must cause any modified files to carry prominent notices stating that You changed the files; and You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - -5. Submission of Contributions. - -Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - -6. Trademarks. - -This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. - -Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. - -In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. - -While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS - -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - -Attribution 4.0 International - -https://creativecommons.org/licenses/by/4.0/legalcode - -Creative Commons Corporation ("Creative Commons") is not a law firm and does not provide legal services or legal advice. Distribution of Creative Commons public licenses does not create a lawyer-client or other relationship. Creative Commons makes its licenses and related information available on an "as-is" basis. Creative Commons gives no warranties regarding its licenses, any material licensed under their terms and conditions, or any related information. Creative Commons disclaims all liability for damages resulting from their use to the fullest extent possible. - -Using Creative Commons Public Licenses - -Creative Commons public licenses provide a standard set of terms and conditions that creators and other rights holders may use to share original works of authorship and other material subject to copyright and certain other rights specified in the public license below. The following considerations are for informational purposes only, are not exhaustive, and do not form part of our licenses. - - Considerations for licensors: Our public licenses are - intended for use by those authorized to give the public - permission to use material in ways otherwise restricted by - copyright and certain other rights. Our licenses are - irrevocable. Licensors should read and understand the terms - and conditions of the license they choose before applying it. - Licensors should also secure all rights necessary before - applying our licenses so that the public can reuse the - material as expected. Licensors should clearly mark any - material not subject to the license. This includes other CC- - licensed material, or material used under an exception or - limitation to copyright. More considerations for licensors: - wiki.creativecommons.org/Considerations_for_licensors - Considerations for the public: By using one of our public - licenses, a licensor grants the public permission to use the - licensed material under specified terms and conditions. If - the licensor's permission is not necessary for any reason--for - example, because of any applicable exception or limitation to - copyright--then that use is not regulated by the license. Our - licenses grant only permissions under copyright and certain - other rights that a licensor has authority to grant. Use of - the licensed material may still be restricted for other - reasons, including because others have copyright or other - rights in the material. A licensor may make special requests, - such as asking that all changes be marked or described. - Although not required by our licenses, you are encouraged to - respect those requests where reasonable. More_considerations - for the public: - wiki.creativecommons.org/Considerations_for_licensees -Creative Commons Attribution 4.0 International Public License - -By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions. - - -Section 1 -- Definitions. - - a. Adapted Material means material subject to Copyright and Similar - Rights that is derived from or based upon the Licensed Material - and in which the Licensed Material is translated, altered, - arranged, transformed, or otherwise modified in a manner requiring - permission under the Copyright and Similar Rights held by the - Licensor. For purposes of this Public License, where the Licensed - Material is a musical work, performance, or sound recording, - Adapted Material is always produced where the Licensed Material is - synched in timed relation with a moving image. - b. Adapter's License means the license You apply to Your Copyright - and Similar Rights in Your contributions to Adapted Material in - accordance with the terms and conditions of this Public License. - c. Copyright and Similar Rights means copyright and/or similar rights - closely related to copyright including, without limitation, - performance, broadcast, sound recording, and Sui Generis Database - Rights, without regard to how the rights are labeled or - categorized. For purposes of this Public License, the rights - specified in Section 2(b)(1)-(2) are not Copyright and Similar - Rights. - d. Effective Technological Measures means those measures that, in the - absence of proper authority, may not be circumvented under laws - fulfilling obligations under Article 11 of the WIPO Copyright - Treaty adopted on December 20, 1996, and/or similar international - agreements. - e. Exceptions and Limitations means fair use, fair dealing, and/or - any other exception or limitation to Copyright and Similar Rights - that applies to Your use of the Licensed Material. - f. Licensed Material means the artistic or literary work, database, - or other material to which the Licensor applied this Public - License. - g. Licensed Rights means the rights granted to You subject to the - terms and conditions of this Public License, which are limited to - all Copyright and Similar Rights that apply to Your use of the - Licensed Material and that the Licensor has authority to license. - h. Licensor means the individual(s) or entity(ies) granting rights - under this Public License. - i. Share means to provide material to the public by any means or - process that requires permission under the Licensed Rights, such - as reproduction, public display, public performance, distribution, - dissemination, communication, or importation, and to make material - available to the public including in ways that members of the - public may access the material from a place and at a time - individually chosen by them. - j. Sui Generis Database Rights means rights other than copyright - resulting from Directive 96/9/EC of the European Parliament and of - the Council of 11 March 1996 on the legal protection of databases, - as amended and/or succeeded, as well as other essentially - equivalent rights anywhere in the world. - k. You means the individual or entity exercising the Licensed Rights - under this Public License. Your has a corresponding meaning. - -Section 2 -- Scope. - - a. License grant. - 1. Subject to the terms and conditions of this Public License, - the Licensor hereby grants You a worldwide, royalty-free, - non-sublicensable, non-exclusive, irrevocable license to - exercise the Licensed Rights in the Licensed Material to: - a. reproduce and Share the Licensed Material, in whole or - in part; and - b. produce, reproduce, and Share Adapted Material. - 2. Exceptions and Limitations. For the avoidance of doubt, where - Exceptions and Limitations apply to Your use, this Public - License does not apply, and You do not need to comply with - its terms and conditions. - 3. Term. The term of this Public License is specified in Section - 6(a). - 4. Media and formats; technical modifications allowed. The - Licensor authorizes You to exercise the Licensed Rights in - all media and formats whether now known or hereafter created, - and to make technical modifications necessary to do so. The - Licensor waives and/or agrees not to assert any right or - authority to forbid You from making technical modifications - necessary to exercise the Licensed Rights, including - technical modifications necessary to circumvent Effective - Technological Measures. For purposes of this Public License, - simply making modifications authorized by this Section 2(a) - (4) never produces Adapted Material. - 5. Downstream recipients. - a. Offer from the Licensor -- Licensed Material. Every - recipient of the Licensed Material automatically - receives an offer from the Licensor to exercise the - Licensed Rights under the terms and conditions of this - Public License. - b. No downstream restrictions. You may not offer or impose - any additional or different terms or conditions on, or - apply any Effective Technological Measures to, the - Licensed Material if doing so restricts exercise of the - Licensed Rights by any recipient of the Licensed - Material. - 6. No endorsement. Nothing in this Public License constitutes or - may be construed as permission to assert or imply that You - are, or that Your use of the Licensed Material is, connected - with, or sponsored, endorsed, or granted official status by, - the Licensor or others designated to receive attribution as - provided in Section 3(a)(1)(A)(i). - b. Other rights. - 1. Moral rights, such as the right of integrity, are not - licensed under this Public License, nor are publicity, - privacy, and/or other similar personality rights; however, to - the extent possible, the Licensor waives and/or agrees not to - assert any such rights held by the Licensor to the limited - extent necessary to allow You to exercise the Licensed - Rights, but not otherwise. - 2. Patent and trademark rights are not licensed under this - Public License. - 3. To the extent possible, the Licensor waives any right to - collect royalties from You for the exercise of the Licensed - Rights, whether directly or through a collecting society - under any voluntary or waivable statutory or compulsory - licensing scheme. In all other cases the Licensor expressly - reserves any right to collect such royalties. - -Section 3 -- License Conditions. - -Your exercise of the Licensed Rights is expressly made subject to the following conditions. - - a. Attribution. - 1. If You Share the Licensed Material (including in modified - form), You must: - a. retain the following if it is supplied by the Licensor - with the Licensed Material: - i. identification of the creator(s) of the Licensed - Material and any others designated to receive - attribution, in any reasonable manner requested by - the Licensor (including by pseudonym if - designated); - ii. a copyright notice; - iii. a notice that refers to this Public License; - iv. a notice that refers to the disclaimer of - warranties; - v. a URI or hyperlink to the Licensed Material to the - extent reasonably practicable; - b. indicate if You modified the Licensed Material and - retain an indication of any previous modifications; and - c. indicate the Licensed Material is licensed under this - Public License, and include the text of, or the URI or - hyperlink to, this Public License. - 2. You may satisfy the conditions in Section 3(a)(1) in any - reasonable manner based on the medium, means, and context in - which You Share the Licensed Material. For example, it may be - reasonable to satisfy the conditions by providing a URI or - hyperlink to a resource that includes the required - information. - 3. If requested by the Licensor, You must remove any of the - information required by Section 3(a)(1)(A) to the extent - reasonably practicable. - 4. If You Share Adapted Material You produce, the Adapter's - License You apply must not prevent recipients of the Adapted - Material from complying with this Public License. - -Section 4 -- Sui Generis Database Rights. - -Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material: - - a. for the avoidance of doubt, Section 2(a)(1) grants You the right - to extract, reuse, reproduce, and Share all or a substantial - portion of the contents of the database; - b. if You include all or a substantial portion of the database - contents in a database in which You have Sui Generis Database - Rights, then the database in which You have Sui Generis Database - Rights (but not its individual contents) is Adapted Material; and - c. You must comply with the conditions in Section 3(a) if You Share - all or a substantial portion of the contents of the database. -For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights. - - -Section 5 -- Disclaimer of Warranties and Limitation of Liability. - - a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE - EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS - AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF - ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, - IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, - WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR - PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, - ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT - KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT - ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. - b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE - TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, - NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, - INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, - COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR - USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN - ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR - DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR - IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. - c. The disclaimer of warranties and limitation of liability provided - above shall be interpreted in a manner that, to the extent - possible, most closely approximates an absolute disclaimer and - waiver of all liability. - -Section 6 -- Term and Termination. - - a. This Public License applies for the term of the Copyright and - Similar Rights licensed here. However, if You fail to comply with - this Public License, then Your rights under this Public License - terminate automatically. - b. Where Your right to use the Licensed Material has terminated under - Section 6(a), it reinstates: - 1. automatically as of the date the violation is cured, provided - it is cured within 30 days of Your discovery of the - violation; or - 2. upon express reinstatement by the Licensor. - For the avoidance of doubt, this Section 6(b) does not affect any - right the Licensor may have to seek remedies for Your violations - of this Public License. - c. For the avoidance of doubt, the Licensor may also offer the - Licensed Material under separate terms or conditions or stop - distributing the Licensed Material at any time; however, doing so - will not terminate this Public License. - d. Sections 1, 5, 6, 7, and 8 survive termination of this Public - License. - -Section 7 -- Other Terms and Conditions. - - a. The Licensor shall not be bound by any additional or different - terms or conditions communicated by You unless expressly agreed. - b. Any arrangements, understandings, or agreements regarding the - Licensed Material not stated herein are separate from and - independent of the terms and conditions of this Public License. - -Section 8 -- Interpretation. - - a. For the avoidance of doubt, this Public License does not, and - shall not be interpreted to, reduce, limit, restrict, or impose - conditions on any use of the Licensed Material that could lawfully - be made without permission under this Public License. - b. To the extent possible, if any provision of this Public License is - deemed unenforceable, it shall be automatically reformed to the - minimum extent necessary to make it enforceable. If the provision - cannot be reformed, it shall be severed from this Public License - without affecting the enforceability of the remaining terms and - conditions. - c. No term or condition of this Public License will be waived and no - failure to comply consented to unless expressly agreed to by the - Licensor. - d. Nothing in this Public License constitutes or may be interpreted - as a limitation upon, or waiver of, any privileges and immunities - that apply to the Licensor or You, including from the legal - processes of any jurisdiction or authority. -Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the "Licensor." The text of the Creative Commons public licenses is dedicated to the public domain under the CC0 Public Domain Dedication. Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at creativecommons.org/policies, Creative Commons does not authorize the use of the trademark "Creative Commons" or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses. - -Creative Commons may be contacted at creativecommons.org. \ No newline at end of file diff --git a/portal-catalog/src/main/webapp/catalog/image/details_close.png b/portal-catalog/src/main/webapp/catalog/image/details_close.png deleted file mode 100644 index e6281bae00a93ba76b71e759e42845a827976362..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3300 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 diff --git a/portal-catalog/src/main/webapp/catalog/image/pointes_blue.png b/portal-catalog/src/main/webapp/catalog/image/pointes_blue.png deleted file mode 100644 index cdba2dfce1a956c799912a8d1121808d23011d49..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7411 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 Tap`!k1U%Hzhm_xc_WJ(;f>Znc diff --git a/portal-catalog/src/main/webapp/catalog/image/pointes_green.png b/portal-catalog/src/main/webapp/catalog/image/pointes_green.png deleted file mode 100644 index 18ba67edf689de1306b05fbd027d0c4d3e229ced..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5329 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 diff --git a/portal-catalog/src/main/webapp/catalog/image/sort_asc.png b/portal-catalog/src/main/webapp/catalog/image/sort_asc.png deleted file mode 100644 index a88d7975fe9017e4e5f2289a94bd1ed66a5f59dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1118 zcmbVLO=#0l98awuV{uMt6P_}u4rcI3idKFP2SpU%ZJIE?RL`X zK?Oyo=*5GG2SxDYK=7akJqV&hrl{aWJa`y*5xh+1%i2y4V}gO?edPc9{r;a9vjc}) zn|Cxb4AYwFmvVG%_ui)U^y_4!ujsO!qzYuv8YUIR!Aw%KiWp=JrG#@>(I!s4#N7H->?w+cxsH2#GA};A>g8lyFDGPKh!5)vuP_{)}*83+N zJUBU!S0_i+E{*Lu1iGsNB``2iK-CyCU7?y_mv{xb_pUh>ESZqe1Y2{eAZLMSIT%EO zFrdOH1W^=3p>Qk~I{J+k#s5zQ@j{%aIA!l^GQjJ zqA1Uc2%!{8qBKfMNh#9DCnKS_*uZ8?mnf!+8@f8xtz#prVg=E`3bCBLWsNmDAX~PG z<(4fQh=UOzE2?gKXRkc9XeI3Er?HlHECVd%SI}3`hy1_du3@$R$r(qT;k@Sft63UX zv;)2Ea_iH>^6+4jPK-lGM{Zw37Tz>~~zlHzO61x51(V4jcaKrcIVDG$-d>)z}S|7f!xxYhfUE}Kj zug_h&HZN}go22$5Ym1}P8~vYNx7-~$TWFJ;_nh!wFYSAQJF{CCo=xpK8^7?iY1^!H haOA^1D_`VC7fU=jcT diff --git a/portal-catalog/src/main/webapp/catalog/image/sort_asc_disabled.png b/portal-catalog/src/main/webapp/catalog/image/sort_asc_disabled.png deleted file mode 100644 index fb11dfe24a6c564cb7ddf8bc96703ebb121df1e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 148 zcmeAS@N?(olHy`uVBq!ia0vp^!XV7S0wixl{&NRX(Vi}jAsXkC6BcOhI9!^3NY?Do zDX;f`c1`y6n0RgO@$!H7chZT&|Jn0dmaqO^XNm-CGtk!Ur<_=Jws3;%W$<+Mb6Mw<&;$T1GdZXL diff --git a/portal-catalog/src/main/webapp/catalog/image/sort_both.png b/portal-catalog/src/main/webapp/catalog/image/sort_both.png deleted file mode 100644 index 18670406bc01ab2721781822dd6478917745ff54..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1136 zcmaJ>O=#0l98WD1Hz^GK+C=e@fhgE~b#2$Ux^~T`1v5)mw1NlIe}zC z+ge9alrMQeN|SYi`>tC{zIG}!O_oO7k;UC8kBf>8sknx65F`zy2d1H-4fel=trX>@ z^-LCL<%6P%3`TJ=Ov$hao1$9VN|vJbLJV@SM>nJN{L>dS(6uOiBq(#Tm4F5Pz>p2Q zhq^NAP_G)%=(c^JwImV&17Zb~j6Ty5OHq1RS0sD)n5Dro1ouYi-$7;N6i6T&f*`~B zRW8JV5YO;|=5RQ?2M8R`v7Es2f}anI0YT(Au=3Evo2})=wA8uci&#;*fUzaAY_V8m ziU9`MJuDxIL|hF)@DqgJ88op{@|#XmML~j&YU>u(kqKNyC5HxZlqQk>PQkENWld+L zOr&6JNwHX-;oOueKw17j)G$`j4o<^A@%~fT$qZVMO+yC_*eYpUzR7iEi3uAj7}*(w z`YKgS6%a;F0a+l?9R#wX>ZWTi<7HV)nhsV>6(*%9O%xbi*F?TK!383rh#(|*p6}q} zd?z25;!?0(hzA2Li3(Rj>VN@FT;Xbexbdo7cN7eZc$T28pMYAYjSR4yvZz;&C0tc+ zg{xJMrKKvDCBd+6WB+P&<%mp=yImbyVyq56G|9BvWUP^I>ms=lb4e+lDSgg;Us`JO zKB6{wH+j~F#-A4FY3K3qm~Z6m@V6}oQ%8?p-E$dw`#0C$PJfmCV8)v}3>Ydha%`fZ zJk~G*M^A3LGk$Td;R`icF67R~`sBOHv)Hlqlc%$jy~9_oZJcNyWxkbb_O9u#|7hLF z-<-NMLzh3S0YA@8gd1Pt(Df|3@16Y-n=aSvsF@AkI`ioeFg>&H3bXU&vBnE6gIChkL+(Ey+0iB4Z$Eze7t_CX>Hq)$ diff --git a/portal-catalog/src/main/webapp/catalog/image/sort_desc.png b/portal-catalog/src/main/webapp/catalog/image/sort_desc.png deleted file mode 100644 index def071ed5afd264a036f6d9e75856366fd6ad153..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1127 zcmbVMOK8+U7*1U&zKRu5sR)h{1;yRWWV^4}ShvZpU2*HWU2!iy(qy)cZ89;Lb+`3m zMbruv!GjkO!3qksP*5)lD)k}=Dp*ht-n@8G5m8XoN!zU+ih_Y;=AZe$?|)|~*Ri8v z(dtDU$2DZy)jV65`|pB!_H}d7Cv0h=sUqzpC0fy3%q0!dg+a#Bx^W(BM*oq=xP{{a zC9_bZ#q2IgCss)FbwX9kVQ7wPX{|b%-is;d!ri7V^Y8E8=YeU+{JuyQW*r6hnC$~D z?i}bS=mWia!r)uCftISo2rNuBP__DOPpZoN6tBeg{;|M=DHYl)^V3chvpJv;7lTL$ z26Y&PAc{gL+#HL=wg3?#C_qs_Vi3iouqZ(YW*(kdbB&UeSJN}Lm?ZN(lsb|iR4SEF zB^)Adw}29fgwG+0L8cM(`faLJgSNN6#-L(PcTI+l@K3y+Xf(g*^61+0|J+O6zN2mb?UNGh6GU@A{1+eF%d@N2(^XdVmhis(y25|iAr;gV=io5OsYy0 zB}Gv|2&GUGrBPB%s*yG^841Ug8a88lRI_zlvuiTDGuXsmv6A9qjS{y&NMEf3ay^6+ zuZK85>5PD^rkl1e`{kLAR>iJ)6dP%mSYRr@k~xQcDE=$%X{_--ITM&Og5Ml}G)wJ> zb)dhUZG9%p4iC23#JFrUCcmwHz{cugMoku~ue-kg{Mj0~%`FeCcz9jAdg}QET-kSG za`+2B_+lRTaeAVz>E`F1pN7h>B=BbGqcz13d%ywZR&4OjkNNrF_U}#EcXDGa@V52B z>JnIW7#s%CHi diff --git a/portal-catalog/src/main/webapp/catalog/image/sort_desc_disabled.png b/portal-catalog/src/main/webapp/catalog/image/sort_desc_disabled.png deleted file mode 100644 index c9fdd8a1502fda301682e907afde86bc450da10f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 146 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 Y06eiBG 2006-07-02 08:09:04.423 -// (new Date()).Format("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18 -commonUtil.parseDate = function( dateObj , format){ - var o = { - "M+" : dateObj.getMonth()+1, //month - "d+" : dateObj.getDate(), //day - "h+" : dateObj.getHours(), //hour - "m+" : dateObj.getMinutes(), //minute - "s+" : dateObj.getSeconds(), //second - "q+" : Math.floor((dateObj.getMonth()+3)/3), //quarter - "S" : dateObj.getMilliseconds() //millisecond - } - if(/(y+)/.test(format)) format=format.replace(RegExp.$1, - (dateObj.getFullYear()+"").substr(4 - RegExp.$1.length)); - for(var k in o) - if(new RegExp("("+ k +")").test(format)) - format = format.replace(RegExp.$1, RegExp.$1.length==1 ? o[k] : - ("00"+ o[k]).substr((""+ o[k]).length)); - return format; -}; - -//tooltip -commonUtil.showMessage = function(message, type) { - $.growl({ - icon: "fa fa-envelope-o fa-lg", - title: "  " + $.i18n.prop("nfv-nso-iui-common-tip"), - message: message - },{ - type: type - }); -}; - -commonUtil.registerCometdMessage = function(url, channel, callback) { - var cometd = new $.Cometd(); - var cometdURL = location.protocol + "//" + location.host + url; - cometd.configure({ - url : cometdURL, - logLevel : "info" - }); - // unregister websocket transport, use long-polling transport - cometd.unregisterTransport('websocket'); - // store channel object parameters(this object include channel and callback function), start from arguments[1] - var _args = arguments; - - cometd.addListener("/meta/handshake", function(handshake){ - if(handshake.successful === true) { - cometd.batch(function() { - //subscribe channel - cometd.subscribe(channel, function(message){ - callback.call(this, message.data); - }); - }); - } - }); - cometd.handshake(); -} - -commonUtil.format = function() { - if(arguments.length == 0) { - return null; - } - var str = arguments[0]; - for(var i=0; i ' + oLang.sPage + ' ' + - '' + - '' + - ' ' + - oLang.sPageOf + ' ' + - '' - ); - - var els = $('a', nPaging); - - $(els[0]).bind('click.DT', { action: "previous" }, fnClickHandler ); - $(els[1]).bind('click.DT', { action: "next" }, fnClickHandler); - - $('.pagination-panel-input', nPaging).bind('change.DT', function(e) { - var oPaging = oSettings.oInstance.fnPagingInfo(); - e.preventDefault(); - var page = parseInt($(this).val()); - if (page > 0 && page < oPaging.iTotalPages) { - if ( oSettings.oApi._fnPageChange(oSettings, page-1) ) { - fnDraw( oSettings ); - } - } else { - $(this).val(oPaging.iPage + 1); - } - }); - - $('.pagination-panel-input', nPaging).bind('keypress.DT', function(e) { - var oPaging = oSettings.oInstance.fnPagingInfo(); - if (e.which == 13) { - var page = parseInt($(this).val()); - if (page > 0 && page < oSettings.oInstance.fnPagingInfo().iTotalPages) { - if ( oSettings.oApi._fnPageChange(oSettings, page-1) ) { - fnDraw( oSettings ); - } - } else { - $(this).val(oPaging.iPage + 1); - } - e.preventDefault(); - } - }); - }, - - "fnUpdate": function ( oSettings, fnDraw ) { - var iListLength = 5; - var oPaging = oSettings.oInstance.fnPagingInfo(); - var an = oSettings.aanFeatures.p; - var i, j, sClass, iStart, iEnd, iHalf=Math.floor(iListLength/2); - - if ( oPaging.iTotalPages < iListLength) { - iStart = 1; - iEnd = oPaging.iTotalPages; - } - else if ( oPaging.iPage <= iHalf ) { - iStart = 1; - iEnd = iListLength; - } else if ( oPaging.iPage >= (oPaging.iTotalPages-iHalf) ) { - iStart = oPaging.iTotalPages - iListLength + 1; - iEnd = oPaging.iTotalPages; - } else { - iStart = oPaging.iPage - iHalf + 1; - iEnd = iStart + iListLength - 1; - } - - - for ( i=0, iLen=an.length ; i'+j+'') - .insertBefore( $('li.next:first', an[i])[0] ) - .bind('click', function (e) { - e.preventDefault(); - oSettings._iDisplayStart = (parseInt($('a', this).text(),10)-1) * oPaging.iLength; - fnDraw( oSettings ); - } ); - } - - // Add / remove disabled classes from the static elements - if ( oPaging.iPage === 0 ) { - $('a.prev', an[i]).addClass('disabled'); - } else { - $('a.prev', an[i]).removeClass('disabled'); - } - - if ( oPaging.iPage === oPaging.iTotalPages-1 || oPaging.iTotalPages === 0 ) { - $('a.next', an[i]).addClass('disabled'); - } else { - $('a.next', an[i]).removeClass('disabled'); - } - } - } - } -} ); - -serverPageTable.getRestPara = function( cond , tableSetting ){ - var pageNo=tableSetting._iDisplayStart/tableSetting._iDisplayLength+1; - var pageSize = tableSetting._iDisplayLength; - var queryParameter={"pageNo":pageNo,"pageSize":tableSetting._iDisplayLength,groupId:["it.group.database=02","it.group.server=01"]}, - newData={"data":JSON.stringify(queryParameter)}; - //put the pageinfo in cond if there is a pageinfo - var pageInfo = vm.logInfo[vm.logType].pageInfo; - if(pageInfo != null && serverPageTable.perpagenumber == pageSize){ - cond.idEnd = pageInfo.pageStart[pageNo - 1]; - cond.idStart = pageInfo.pageStart[pageNo]; - if(!cond.idStart){ //the last page - cond.idStart = 0; - } - - }else{ - delete cond.idStart; - delete cond.idEnd; - vm.logInfo[vm.logType].pageInfo = null; - pageNo = 1; - tableSetting._iDisplayStart = 0; - } - var data = { - cond:JSON.stringify(cond), - perpagenumber:pageSize, - pageNo:pageNo, - needPageInfo:vm.logInfo[vm.logType].pageInfo == null - }; - serverPageTable.perpagenumber = pageSize; - return data; -}; - -serverPageTable.initTableWithoutLib = function( setting ,cond , divId) { - //transform colomn - var column = setting.columns; - //empty table - $('#'+ divId).children().remove(); - var tableId = setting.tableId; - var tableEleStr = '' - + '' - +'' - + '' - + '' - +'' - +'' - +'
    '; - $('#'+ divId).append(tableEleStr); - //$('#'+ tableId).append(' '); - var trEle = $('#'+ tableId + ' > thead >tr'); - //var dataTableColumn = []; - for ( var one in column){ - var th = '' + column[one].name + ''; - trEle.append(th); - } - var table = $("#" + tableId).dataTable({ - //"sDom" : "tr<'row'<'col-md-6 col-sm-12'><'col-md-6 col-sm-12'pli>>", // datatable layout - //"sDom" : "<'row'<'col-md-12 col-sm-12'lip>r><'table-scrollable't>>", - //"sDom": '<"top"rt><"bottom"lip>', - "sDom": '<"top"rt>', - "oLanguage": setting.language,//language - //"bJQueryUI": true, - "bPaginate": setting.paginate,// page button - "bFilter": false,// search bar - "bAutoWidth":true,//automatically set colum width - "bLengthChange": true,// record number in each row - "iDisplayLength": 10,// row number in each page - "bSort": setting.sort ? true : false,// sort - "bInfo": setting.info,// Showing 1 to 10 of 23 entries - "bWidth": true, - "bScrollCollapse": true, - "sPaginationType": "bootstrap_extended", // page, a total of two kinds of style, another one is two_button - "bProcessing": true, - "bServerSide": false, - "bDestroy": true, - "bSortCellsTop": true, - "sAjaxSource": setting.restUrl, - "aoColumns": setting.columns, - "aoColumnDefs": [ - { - sDefaultContent: '', - aTargets: [ '_all' ] - } - ], - "fnServerData": function (sSource, aoData, fnCallback, oSettings) { - oSettings.jqXHR = $.ajax({ - "type": 'get', - "url": sSource, - "dataType": "json", - //"data":serverPageTable.getRestPara(cond,oSettings), - "success": function (resp) { - oSettings.iDraw = oSettings.iDraw + 1; - - resp = resp || []; - var data = {}; - data.aaData = resp; - var totalCounts = resp.length; - - data.iTotalRecords = totalCounts; - data.iTotalDisplayRecords = totalCounts; - data.sEcho = oSettings; - fnCallback(data); - }, - "error": function(resp) { - var data = {}; - data.aaData = []; - var totalCounts = 0; - - data.iTotalRecords = totalCounts; - data.iTotalDisplayRecords = totalCounts; - data.sEcho = oSettings; - fnCallback(data); - } - }); - } - }); -}; - -serverPageTable.initDataTable = function( setting ,cond , divId) { - //transform colomn - var column = setting.columns; - //empty table - $('#'+ divId).children().remove(); - var tableId = setting.tableId; - var tableEleStr = '' - + '' - +'' - + '' - + '' - +'' - +'' - +'
    '; - $('#'+ divId).append(tableEleStr); - //$('#'+ tableId).append(' '); - var trEle = $('#'+ tableId + ' > thead >tr'); - //var dataTableColumn = []; - for ( var one in column){ - var th = '' + column[one].name + ''; - trEle.append(th); - } - var table = $("#" + tableId).dataTable({ - //"sDom" : "tr<'row'<'col-md-6 col-sm-12'><'col-md-6 col-sm-12'pli>>", // datatable layout - //"sDom" : "<'row'<'col-md-12 col-sm-12'lip>r><'table-scrollable't>>", - "sDom": '<"top"rt><"bottom"lip>', - "oLanguage": setting.language,//language - //"bJQueryUI": true, - "bPaginate": setting.paginate,// page button - "bFilter": false,// search bar - "bAutoWidth":true,//automatically set colum width - "bLengthChange": true,// record number in each row - "iDisplayLength": 10,// row number in each page - "bSort": setting.sort ? true : false,// sort - "bInfo": setting.info,// Showing 1 to 10 of 23 entries - "bWidth": true, - "bScrollCollapse": true, - "sPaginationType": "bootstrap_extended", // page, a total of two kinds of style, another one is two_button - "bProcessing": true, - "bServerSide": false, - "bDestroy": true, - "bSortCellsTop": true, - "sAjaxSource": setting.restUrl, - "aoColumns": setting.columns, - "aoColumnDefs": [ - { - sDefaultContent: '', - aTargets: [ '_all' ] - } - ], - "fnServerData": function (sSource, aoData, fnCallback, oSettings) { - oSettings.jqXHR = $.ajax({ - "type": 'get', - "url": sSource, - "dataType": "json", - //"data":serverPageTable.getRestPara(cond,oSettings), - "success": function (resp) { - oSettings.iDraw = oSettings.iDraw + 1; - - resp = resp || []; - var data = {}; - data.aaData = resp; - var totalCounts = resp.length; - - data.iTotalRecords = totalCounts; - data.iTotalDisplayRecords = totalCounts; - data.sEcho = oSettings; - fnCallback(data); - }, - "error": function(resp) { - var data = {}; - data.aaData = []; - var totalCounts = 0; - - data.iTotalRecords = totalCounts; - data.iTotalDisplayRecords = totalCounts; - data.sEcho = oSettings; - fnCallback(data); - } - }); - } - }); -}; - -serverPageTable.initTableWithData = function( setting , divId , tableData) { - //transform colomn - var column = setting.columns; - //empty table - $('#'+ divId).children().remove(); - var tableId = setting.tableId; - var tableEleStr = '' - + '' - +'' - + '' - + '' - +'' - +'' - +'
    '; - $('#'+ divId).append(tableEleStr); - var trEle = $('#'+ tableId + ' > thead >tr'); - for ( var one in column){ - var th = '' + column[one].name + ''; - trEle.append(th); - } - var table = $("#" + tableId).dataTable({ - "sDom" : "<'row'<'col-md-12 col-sm-12'lip>r>>", - "oLanguage": setting.language,//language - //"bJQueryUI": true, - "bPaginate": setting.paginate,// page button - "bFilter": false,// search bar - "bAutoWidth":true,//automatically set the column width - "bLengthChange": true,// record number in each row - "iDisplayLength": 10,// row number in each page - "bSort": setting.sort ? true : false,// sort - "bInfo": setting.info,// Showing 1 to 10 of 23 entries - "bWidth": true, - "bScrollCollapse": true, - "sPaginationType": "bootstrap_extended", // page, a total of two kinds of style, another one is two_button - "bProcessing": false, - "bServerSide": false, - "bDestroy": true, - "bSortCellsTop": true, - "sAjaxSource": tableData, - "aoColumns": setting.columns, - "fnServerData": function (sSource, aoData, fnCallback, oSettings) { - oSettings.iDraw = oSettings.iDraw + 1; - var resp = tableData || []; - var data = {}; - data.aaData = resp; - var totalCounts = resp.length; - - data.iTotalRecords = totalCounts; - data.iTotalDisplayRecords = totalCounts; - data.sEcho = oSettings; - fnCallback(data); - } - }); -}; - - -serverPageTable.initDataTableForEvent = function( setting ,cond , divId) { - //transform colomn - var column = setting.columns; - //empty table - $('#'+ divId).children().remove(); - var tableId = setting.tableId; - var tableEleStr = '' - + '' - +'' - + '' - + '' - +'' - +'' - +'
    '; - $('#'+ divId).append(tableEleStr); - var trEle = $('#'+ tableId + ' > thead >tr'); - for ( var one in column){ - var th = '' + column[one].name + ''; - trEle.append(th); - } - var table = $("#" + tableId).dataTable({ - "sDom": '<"top"rt><"bottom"lip>', - "oLanguage": setting.language,//language - //"bJQueryUI": true, - "bPaginate": setting.paginate,// page button - "bFilter": false,// search bar - "bAutoWidth":true,//automatically set the column width - "bLengthChange": true,// record number in each row - "iDisplayLength": 10,// row number in each page - "bSort": setting.sort ? true : false, - "bInfo": setting.info,// Showing 1 to 10 of 23 entries - "bWidth": true, - "bScrollCollapse": true, - "sPaginationType": "bootstrap_extended", // page, a total of two kinds of style, another one is two_button - "bProcessing": true, - "bServerSide": false, - "bDestroy": true, - "bSortCellsTop": true, - "sAjaxSource": setting.restUrl, - "aoColumns": setting.columns, - "aoColumnDefs": [ - { - sDefaultContent: '', - aTargets: [ '_all' ] - } - ], - "fnServerData": function (sSource, aoData, fnCallback, oSettings) { - oSettings.jqXHR = $.ajax({ - "type": 'get', - "url": sSource, - "dataType": "json", - //"data":serverPageTable.getRestPara(cond,oSettings), - "success": function (resp) { - oSettings.iDraw = oSettings.iDraw + 1; - - var result = []; - for(var i=0;i  " - +$.i18n.prop("nfv-nso-iui-table-sProcess")+"", - "sLengthMenu": $.i18n.prop("nfv-nso-iui-table-sLengthMenu"), - "sZeroRecords": $.i18n.prop("nfv-nso-iui-table-sZeroRecords"), - "sInfo": " " + $.i18n.prop("nfv-nso-iui-table-sInfo"), - "sInfoEmpty": $.i18n.prop("nfv-nso-iui-table-sInfoEmpty"), - "sGroupActions": $.i18n.prop("nfv-nso-iui-table-sGroupActions"), - "sAjaxRequestGeneralError":$.i18n.prop("nfv-nso-iui-table-sAjaxRequestGeneralError"), - "sEmptyTable": $.i18n.prop("nfv-nso-iui-table-sEmptyTable"), - "oPaginate": { - "sPrevious": $.i18n.prop("nfv-nso-iui-table-sPrevious"), - "sNext": $.i18n.prop("nfv-nso-iui-table-sNext"), - "sPage": $.i18n.prop("nfv-nso-iui-table-sPage"), - "sPageOf": $.i18n.prop("nfv-nso-iui-table-sPageOf") - } - }, - $restUrl:{ - queryPackageInfoUrl: "/openoapi/catalog/v1/csars", - uploadPackageUrl: "/openoapi/catalog/v1/csars", - gsarDelPackageUrl: "/openoapi/gso/v1/nspackages", - ssarDelPackageUrl: "/openoapi/catalog/v1/csars", - nsarDelPackageUrl: "/openoapi/nslcm/v1/nspackage", - nfarDelPackageUrl: "/openoapi/nslcm/v1/vnfpackage", - gsarOnboardUrl: "/openoapi/gso/v1/nspackages", - ssarOnboardUrl: "/openoapi/catalog/v1/csars", - nsarOnboardUrl: "/openoapi/nslcm/v1/nspackage", - nfarOnboardUrl: "/openoapi/nslcm/v1/vnfpackage", - changePackageStatusUrl : "/openoapi/catalog/v1/csars", - queryVimInfoUrl : "/openoapi/extsys/v1/vims" - }, - $getPackageCond: function() { - var cond = {}; - return cond; - }, - //$initTable: function() { - // var url=vm.$restUrl.queryPackageInfoUrl; - // commonUtil.get(url,null,function(resp) { - // if (resp) { - // vm.resource.packageInfo=resp; - // } - // }) - //}, - $initTable: function() { - var setting = {}; - setting.language = vm.$language; - setting.paginate = true; - setting.info = true; - setting.sort = true; - setting.columns = vm.$packageTableFields.table; - setting.restUrl = vm.$restUrl.queryPackageInfoUrl; - setting.tableId = vm.$tableId; - serverPageTable.initDataTable(setting,{},vm.$tableId + '_div'); - }, - packageDetail : { - detailTitle : "", - isShow : "none", - detailIndex : 0, - detailData : [{ - id : "general", - name : $.i18n.prop("com_zte_ums_eco_roc_rsview_info"), - isActive : true - }, { - id : "relationShips", - name : $.i18n.prop("com_zte_ums_eco_roc_rsview_relation"), - isActive : false - } - ], - $showDetails : function (isShow, csarId, name) { - vm.packageDetail.isShow = isShow; - vm.packageDetail.detailCondChange(0); - if (isShow == "block") { - vm.packageDetail.detailTitle = name + "-" + $.i18n.prop("nfv-package-iui_packageview_packageDetail"), - $('#' + vm.packageDetail.detailData[0].id).click(); - vm.packageDetail.detailData[0].isActive = true; - vm.packageDetail.$initPackageDetailTable(csarId); - } - }, - detailCondChange : function (index) { - vm.packageDetail.detailIndex = index; - for (var i = 0; i < vm.packageDetail.detailData.length; i++) { - vm.packageDetail.detailData[i].isActive = false; - } - vm.packageDetail.detailData[index].isActive = true; - }, - $initPackageDetailTable : function (csarId) { - var url=vm.$restUrl.queryPackageInfoUrl + "/" + csarId; - commonUtil.get(url,null,function(resp) { - if (resp) { - vm.resource.packageDetails=resp; - } - }) - - }, - $isRowDeletingStatus : function(name) { - var table = $("#" + vm.$tableId).dataTable(); - var tableData = table.fnGetData(); - for (var i=0; i -1) { - return true; - } - } - return false; - }, - }, - selectVimDialog : { - currentRadioClicked : [], - clickedIndex : "", - nfarOnBoardParam : { - csarId : "", - vimIds : [], - labVimId : "", - }, - $initData : function(csarId) { - var url=vm.$restUrl.queryVimInfoUrl; - commonUtil.get(url,null,function(resp) { - if (resp) { - vm.resource.vimSelectItems=resp; - } - }) - vm.selectVimDialog.nfarOnBoardParam.csarId = csarId; - }, - $confirmBtnClick : function () { - var labVimId = ""; - var vimIds = []; - var testEnvCount = 0; - for(var i=0; i -1) { - return true; - } - } - return false; - }, - - onBoardPackage : function(csarId,type,onBoardState) { - var param = { - csarId : csarId - }; - if(type == "NSAR") { - var url = vm.$restUrl.nsarOnboardUrl; - pmUtil.doOnBoard(url, param); - } else if(type == "NFAR") { - vm.csarIdSelected = csarId; - vm.showOnboardDialog(csarId); - } else if(type == "GSAR") { - var url = vm.$restUrl.gsarOnboardUrl; - pmUtil.doOnBoard(url, param); - } else if(type == "SSAR") { - var ssarTarOnbardState=""; - var operationalState=""; - if(onBoardState =="onBoarded") { - ssarTarOnbardState = "non-onBoarded"; - operationalState = "Disabled"; - } else { - ssarTarOnbardState = "onBoarded"; - operationalState = "Enabled"; - } - var url = vm.$restUrl.ssarOnboardUrl+"/"+csarId+"?onBoardState="+ssarTarOnbardState+"&operationalState="+operationalState; - pmUtil.doSSAROnboard(url); - } - }, - showOnboardDialog : function(csarId) { - vm.selectVimDialog.$initData(csarId); - $("#selectVimDialog").modal("show"); - }, - $initUpload : function() { - $("#fileupload").fileupload({ - url : vm.$restUrl.uploadPackageUrl, - dropZone: $('#dropzone'), - maxNumberOfFiles : 1, - maxChunkSize : 20000000, //20M - autoUpload : false, - add : function(e, data) { - $("#bar").css('width', '0%'); - $("#persent").text('0%'); - $("#fileName").text(data.files[0].name); - $("#fileremove").attr("disabled", false); - $("#filesubmit").attr("disabled", false); - - $("#filesubmit").remove(); - $(' - - -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/portal-catalog/src/main/webapp/catalog/template.html b/portal-catalog/src/main/webapp/catalog/template.html deleted file mode 100644 index 882eb422..00000000 --- a/portal-catalog/src/main/webapp/catalog/template.html +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - - - - - - - - - - - -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/portal-catalog/src/main/webapp/catalog/templateDetail.html b/portal-catalog/src/main/webapp/catalog/templateDetail.html deleted file mode 100644 index 9dbc5d44..00000000 --- a/portal-catalog/src/main/webapp/catalog/templateDetail.html +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - -
    -
    -
    - -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -

    {{nodesDetail.detailTitle}}

    -
    - -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/portal-catalog/src/main/webapp/catalog/topology.html b/portal-catalog/src/main/webapp/catalog/topology.html deleted file mode 100644 index e35ecd86..00000000 --- a/portal-catalog/src/main/webapp/catalog/topology.html +++ /dev/null @@ -1,122 +0,0 @@ - -
    -
    -
    -
    -
    -
    0
    - {{network.name}} -
    -
    -
    -
    -
    0
    -

    {{subnet.name}}

    -

    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    1
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    - -
    1
    -
    -
    - -
    -
    -
    -
    -
    - -
    -
    -
    -
    - -
    1
    -
    -
    -

    -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - - - -
    -
    - - - - - - - - - -
    -
    -
    \ No newline at end of file diff --git a/portal-catalog/src/main/webapp/catalog/topologyDetail.html b/portal-catalog/src/main/webapp/catalog/topologyDetail.html deleted file mode 100644 index 5c2c3c45..00000000 --- a/portal-catalog/src/main/webapp/catalog/topologyDetail.html +++ /dev/null @@ -1,210 +0,0 @@ - - - - - - - - - - - - - - - - - - -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    0
    - {{network.name}} -
    -
    -
    -
    -
    0
    -

    {{subnet.name}}

    -

    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    1
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    - -
    1
    -
    -
    - -
    -
    -
    -
    -
    - -
    -
    -
    -
    - -
    1
    -
    -
    -

    -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - - - -
    -
    - - - - - - - - - -
    -
    -
    - -
    -
    -

    {{nodesDetail.detailTitle}}

    -
    - -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - - - - - - - - - - - - - - - - - - - -
    - - \ No newline at end of file diff --git a/portal-common/pom.xml b/portal-common/pom.xml deleted file mode 100644 index f701c062..00000000 --- a/portal-common/pom.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - org.openo.gso.gui - openo-portal - 1.1.0-SNAPSHOT - - - 4.0.0 - portal-common - 1.1.0-SNAPSHOT - war - - - - - org.apache.maven.plugins - maven-war-plugin - - false - - - - -gso-gui/openo-portal/portal-common diff --git a/portal-common/src/main/webapp/common/css/RMain.css b/portal-common/src/main/webapp/common/css/RMain.css deleted file mode 100644 index cbbb8630..00000000 --- a/portal-common/src/main/webapp/common/css/RMain.css +++ /dev/null @@ -1,239 +0,0 @@ -/* Copyright 2016-2017, Huawei Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#iemp_layout_container { - padding: 0px; - margin: 1px auto; - width: 100%; - height: 100%; -} - -#iemp_layout_container .three-cols-layout { - width: 100%; - height: 100%; - border-collapse: collapse; - margin-left: 0px; - margin-top: 0px; - margin-right: 0px; - margin-bottom: 0px; -} - -#iemp_layout_container .three-cols-layout { - width: 100%; - height: 100%; - border-collapse: collapse; - margin-left: 0px; - margin-top: 0px; - margin-right: 0px; - margin-bottom: 0px; -} - -#iemp_layout_container .three-cols-column.three-cols-left { - width: 215px; - background-color: #f5f5f5; -} - -.accordion_parent { - position: relative; - width: 220px; - background-color: #f5f5f5; -} - -.openo-accordion-resizable-handle { - z-index: 1 !important; - cursor: e-resize; - width: 7px; - right: -5px; - top: 0; - height: 100%; - position: absolute; - font-size: .1px; - display: block; -} - -.openoAccordian_accordionmenu { - width: 100%; - margin: 0; - padding: 0; - list-style-type: none; - line-height: 17px; -} - -.openoAccordian_accordionmenu li { - min-width: 75px; - margin: 0; - padding: 0; - list-style-type: none; - color: #000; - clear: both; -} - -.openo_accordion_ui-icon-collapse, .openo_accordion_ui-icon-expand { - display: block; - float: left; - margin-bottom: -1px; - border-bottom: 1px solid #e5e5e5; - cursor: pointer; - width: 13px; - padding-top: 26px; -} - -.openo_accordion_ui-icon-expand { - background: url(../images/collapse_arrow.png) right 20px no-repeat; - margin-top: 8px; -} - -.openo_accordion_ui-icon-expand.current { - background: url(../images/expand_arrow.png) right 20px no-repeat; -} - -.openoAccordian_showHideArrow_hide, .openoAccordian_showHideArrow_show { - display: block; - position: absolute; - right: 0; - top: 4px; - width: 18px; - height: 41px; - cursor: pointer; - background-color: #f5f5f5; -} - -.openoAccordian_showHideArrow_hide { - background-image: url(../images/openo.png); - background-position: -7px 0 !important; - border-collapse: separate; - /*box-shadow: inset -1px 0 0 #e5e5e5;*/ -} - -a.header.opened, a.header.closed { - font-size: 16px; - padding-top: 24px; - padding-bottom: 25px; - color: #999999; -} - -.openoAccordian_accordionmenu .closed, .openoAccordian_accordionmenu .opened { - padding-right: 10px; - background-position: 98% 50%; - background-repeat: no-repeat; -} - -.openoAccordian_accordionmenu li a { - padding: 11px 10px 12px; - color: #333333; - margin-right: 1px; - margin-top: -1px; - text-align: left !important; - font-family: "Microsoft Yahei", SimSun, Arial, Tahoma; - font-size: 14px; - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; - border-top: 1px solid #e5e5e5; - border-bottom: 1px solid #e5e5e5; - /*height: 19px;*/ -} - -.openoAccordian_accordionmenu ul { - margin: 0; - padding: 0; - overflow: hidden; -} - -.openoAccordian_accordionmenu a { - display: block; - text-decoration: none; -} - -a { - color: #428bca; - text-decoration: none; - background: 0 0; -} - -.bar { - height: 834px; - width: 18px; - background: #f8f8f8; - display: none; -} - -.bar span { - width: 13px; - height: 34px; - background-image: url(../images/openo.png); - background-position: -39px 0 !important; - display: block; - /*margin-top: -430px;*/ -} - -#accordionmenuid_ul_0_0_brAppTopMenuID_UL li { - cursor: pointer; -} - -#puer_base_openo { - border: 1px solid #ddd; -} - -.openo_accordion_selected { - margin-left: 0; - margin-right: 0; - background: #fafafa; - border-left: 3px solid #4ac9ff !important; - box-shadow: none; - position: relative; -} - -a:hover { - color: #4ac9ff !important; -} - -.openoAccordian_accordionmenu li.openo_accordion_selected a { - position: relative; - left: -3px; - color: #009ae7; -} - -.openo-accordion-resizable-handle { - z-index: 1 !important; - cursor: e-resize; - width: 7px; - right: -5px; - top: 0; - height: 100%; - position: absolute; - font-size: .1px; - display: block; -} - -#iframeContainer iframe { - width: 100%; - height: 100%; - border: 0; -} - -#accordionContent, #iframeContainer { - margin: 0; - padding: 0; - border: 0; - width: 100%; - height: 100%; -} - -.openoAccordian_showHideArrow_show { - background-image: url(../images/openo.png); - background-position: -39px 0 !important; - box-shadow: inset 1px 0 0 #e5e5e5, inset -1px 0 0 #e5e5e5; -} \ No newline at end of file diff --git a/portal-common/src/main/webapp/common/css/VMMain.css b/portal-common/src/main/webapp/common/css/VMMain.css deleted file mode 100644 index b779437c..00000000 --- a/portal-common/src/main/webapp/common/css/VMMain.css +++ /dev/null @@ -1,758 +0,0 @@ -/* Copyright 2016-2017, Huawei Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -body { - font-family: '微软雅黑'; - font-size: 12px; - color: #333; - background: #fafafa; -} - -button { - outline: none; -} - -ul, li { - list-style: none; - padding: 0; - margin: 0; -} - -.titleFont { - font-size: 16px; -} - -.separator-line { - height: 1px; - width: 100%; - border: 1px solid #ddd; - margin: 6px 0 15px 0; -} - -.uploadBtn { - overflow: hidden; -} - -.creat-btn { - padding: 0 14px; - height: 24px; - float: left; - cursor: pointer; - text-decoration: none; - outline: 0; - border: 1px solid #d3d3d3; - text-align: center; - box-shadow: 0 1px 1px rgba(0, 0, 0, .05); - background: #fafafa; - background: -moz-linear-gradient(top, #fff, #fafafa); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #fff), color-stop(100%, #fafafa)); - background: -webkit-linear-gradient(top, #fff, #fafafa); - background: linear-gradient(to bottom, #fff, #fafafa); - border-radius: 6px; - background: #fff url(../images/add.png) no-repeat 5px center; - padding-left: 20px; -} - -.creat-btn:hover { - color: #009ae7; - border: 1px solid #4AC9FF -} - -.creat-btn:active { - color: #000; - border: 1px solid #4AC9FF -} - -/*.creat-btn{ - background: #fff url(../image/add.png) no-repeat 5px center; - border: 1px solid #ddd; - float: left; -} -.creat-btn:hover{ - background: #428bca; - color: #fff; - border:1px solid #428bca; -}*/ -.search { - width: 310px; - height: 30px; - float: right; -} - -.search-text { - width: 250px; - float: left; - margin-right: 6px; -} - -.search-btn { - height: 30px; - background: #fff; - border: 1px solid #ddd; - float: left; -} - -#ict_virtualApplication_table_div { - margin-top: 15px; -} - -.table > thead > tr.active > th { - border: 1px solid #ddd !important; - border-bottom: 0; - background: #f0f0f0; -} - -/*.table tbody tr:hover{ - background: #e6fbe0!important; -}*/ -.table tbody tr:last-child { - border-bottom: 1px solid #ddd; -} - -.table-btn { - border: 1px solid #ccc; - border-radius: 3px; -} - -.delete-btn { - background: url(../image/delete.png) no-repeat; - width: 16px; - height: 16px; - border: none; -} - -.detail-btn { - background: url(../image/openo.png) no-repeat -343px -283px; - width: 16px; - height: 16px; - border: none; -} - -.detail-btn.current { - background-position: -7px -314px; -} - -.detail { - height: 200px; - border: 1px solid #ddd; - margin-top: 60px; -} - -.detail-top ul { - height: 50px; - line-height: 50px; - border-bottom: 1px solid #ddd; - padding-left: 0px; - background: #fafafa; -} - -.detail-top ul li { - float: left; - width: 120px; - text-align: center; - border-right: 1px solid #ddd; - cursor: pointer; -} - -.detail-top ul li.current { - background: #fff; -} - -.vmapp-margin { - margin-bottom: 10px; -} - -.control-label .required { - color: #e02222; - font-size: 12px; - padding-left: 2px; -} - -.form-group .control-label { - font-size: 12px; - font-weight: 400; -} - -legend { - font-size: 12px; - font-weight: bold; -} - -.pageGro { - width: 250px; - float: right; -} - -.pageUp, .pageDown, .pageList, .pageList li { - float: left; - cursor: pointer; -} - -.pageUp, .pageDown { - width: 60px; - height: 30px; - border: 1px solid #ddd; - text-align: center; - line-height: 30px; -} - -.pageList li { - width: 30px; - height: 30px; - border: 1px solid #ddd; - text-align: center; - line-height: 30px; - border-left: none; -} - -.pageList li.active { - background: #428bca; - color: #fff; - border-color: #428bca; -} - -.pageDown { - border-left: none; -} - -.headerLinkP { - padding-top: 17px; -} - -.headerLinkP span { - font-size: 12px; - color: #666; - font-weight: normal !important; -} - -label { - font-weight: normal !important; -} - -table.userform tbody tr td { - display: table-cell; - padding-right: 10px; - padding-top: 10px; - font-size: 12px; - color: #333; -} - -.table th, .table td { - padding-top: 3px !important; - padding-bottom: 3px !important; -} - -.openoBrowseButton_element { - display: table; -} - -.openo { - font-family: "Microsoft Yahei", SimSun, Arial, Tahoma; - font-size: 12px; - color: #000; -} - -.openoBrowseButton_input { - width: 198px; - position: relative; - border: 1px solid #c3c3c3 !important; - height: 26px; - background-color: #f3f3f3; - border-radius: 4px 0 0 4px; - border-right: none; - padding: 0; -} - -.buttonClassDefault, .buttonClassDefault:active { - cursor: pointer; - background-image: url(../images/openo.png); - background-position: -154px -7px !important; -} - -.openoBrowseButton_button { - width: 27px; - border: 0; - float: right; - position: relative; - height: 26px; - right: 0; - top: 0; - border-radius: 0 4px 4px 0; - border-right: 1px solid #c3c3c3; - border-left: none; -} - -.openo .openo-input, .openo.openo-input { - outline: 0; - border: 1px solid #c3c3c3; - box-shadow: 1px 1px #f6f6f6 inset; - background-color: #fff; - height: 26px; -} - -.openoInput_openoDefaultText { - padding: 0 0 0 6px; - border-radius: 4px; - color: #000; - display: inline-block; - outline: 0; - box-shadow: 1px 1px #f6f6f6 inset; - font-size: 12px; - background: #fff; -} - -div.openo-select { - border: 1px solid #c3c3c3; - border-radius: 4px; - background: url(../images/arrow-down-enable.png) right no-repeat #fff; - line-height: 24px; - padding-left: 3px; - display: block; -} - -div.openo-select > input.openo-select-input { - border: none; - outline: 0; - line-height: 21px; - height: 21px; - padding-left: 3px; - border-right: solid 1px #c3c3c3; -} - -.openo .openo-ellipsis, .openo.openo-ellipsis { - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; -} - -a.openoButton_buttonClass, a.openoButton_buttonDisableClass, div.openoButton_buttonClass, div.openoButton_buttonDisableClass { - height: 26px; - float: left; - cursor: pointer; - text-decoration: none; - outline: 0; - border: 1px solid #d3d3d3; - text-align: center; - box-shadow: 0 1px 1px rgba(0, 0, 0, .05); - background: #fafafa; - background: -moz-linear-gradient(top, #fff, #fafafa); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #fff), color-stop(100%, #fafafa)); - background: -webkit-linear-gradient(top, #fff, #fafafa); - background: linear-gradient(to bottom, #fff, #fafafa); - border-radius: 6px; -} - -.openoButton_buttonInnerClass { - padding: 0 19px; - border-radius: 6px; -} - -.openoButton_buttonCenterText { - color: #000; - line-height: 24px; - white-space: nowrap; - width: auto !important; -} - -.userHeader { - clear: left; - overflow: hidden; - margin-bottom: 10px; - padding: 10px 10px 0px 0px; -} - -.openoButton_buttonGroupClass { - display: inline; -} - -.openoButton_buttonGroupClass div.openoButton_buttonClass_parent:first-child { - margin-left: 0; -} - -.openoButton_buttonLeftImg { - margin-right: 5px; -} - -.openoButton_buttonLeftImg, .openoButton_buttonRightImg { - display: inline-block; - vertical-align: top; - width: 16px; - height: 16px; - margin-top: 4px; -} - -.openo-table-pagination-wrapper { - height: 37px; -} - -.openo-pagination { - display: block; - float: left; - overflow: hidden; - padding: 5px 0 0; - margin-top: 8px; -} - -.openoPagination_openoPaginationLengthOptions:not(msie8) { - line-height: 24px; -} - -.openoPagination_openoPaginationLengthOptions { - white-space: normal; - height: 24px; - float: left; - outline: 0; - line-height: 20px; - margin: 0 5px; -} - -.openo-pagination-select { - height: 26px; - line-height: 22px; - text-align: center; - margin-right: -2px; - border: 1px solid #e0e0e0; - border-radius: 5px 0 0 5px; - padding: 1px; -} - -.openoPagination_openoPaginationLengthOptions span { - background-color: #fff !important; -} - -.openo-pagination-theme a, .openo-pagination-theme span { - float: left; - color: #666; - font: 12px Lucida Grande, Verdana, Arial, Helvetica, sans-serif; - line-height: 24px; - font-weight: 400; - text-align: center; - border: 1px solid #e0e0e0; - text-decoration: none !important; - padding: 0 7px; - border-radius: 3px; - background: #fff; -} - -.openo-pagination-selectspan { - background: url(../images/ideo_default_select.png) left no-repeat !important; - float: right !important; - width: 26px; - height: 26px; - cursor: pointer; -} - -.openo-pagination-theme label { - padding-top: 6px; - vertical-align: middle; - margin-right: 20px; - margin-top: -1px; - float: left; - display: inline-block; - height: 20px; - font: 12px Lucida Grande, Verdana, Arial, Helvetica, sans-serif; -} - -.openo-pagination li, .openo-pagination ul { - list-style: none; - padding: 0; - margin: 0; - float: left; -} - -dd, dl, dt, li { - color: #000; -} - -.openo-pagination-theme a, .openo-pagination-theme span.current { - margin: 0 5px 0 0; -} - -.openo .openo-disabled, .openo.openo-disabled { - border-color: #c3c3c3 !important; - color: #666 !important; - opacity: .3; - filter: alpha(opacity=30); -} - -.openo-pagination-theme .prev { - background: 0 0; - float: left; -} - -.openo-pagination-theme .current { - text-decoration: none !important; - float: left; - padding-left: 6px; - height: 24px; - color: #fff; - display: inline; - border-color: #00adf5; - background: #4ad2ff; -} - -.openo-pagination-theme a, .openo-pagination-theme span { - float: left; - color: #666; - font: 12px Lucida Grande, Verdana, Arial, Helvetica, sans-serif; - line-height: 24px; - font-weight: 400; - text-align: center; - border: 1px solid #e0e0e0; - text-decoration: none !important; - padding: 0 7px; - border-radius: 3px; - background: #fff; -} - -.openo-pagination-theme .prev.openo-disabled:before { - background: url(../images/page_left_disabled.png) 50% 45% no-repeat; -} - -.openo-pagination-theme .prev.openo-disabled:before { - background: url(../images/page_left_disabled.png) 50% 45% no-repeat; -} - -.openo-pagination-theme .prev:before { - background: url(../images/page_l.png) 50% 45% no-repeat; -} - -.openo-pagination-theme .next:after, .openo-pagination-theme .prev:before { - display: inline-block; - content: ""; - vertical-align: middle; - width: 10px; - height: 24px; -} - -.openo-pagination-theme .prev:before { - background: url(../images/page_l.png) 50% 45% no-repeat; -} - -.openo-pagination-theme .next:after, .openo-pagination-theme .prev:before { - display: inline-block; - content: ""; - vertical-align: middle; - width: 10px; - height: 24px; -} - -pagination ul { - list-style: none; - padding: 0; - margin: 0; - float: left; -} - -.openo-pagination li, .openo-pagination ul { - list-style: none; - padding: 0; - margin: 0; - float: left; -} - -.openoPagination_gototext { - background: #FFF; - outline: 0; - width: 29px; - float: left; - height: 26px; - line-height: 24px; - border-radius: 4px; - border: 1px solid #c3c3c3; - padding: 0 0 0 5px; - margin: 0; - color: #666; - min-width: 50px; -} - -.openoPagination_gotoimage { - width: 29px; - height: 26px; - line-height: 26px; - background-color: #FFF; - background-image: url(/portal/themes/default/components/openo/images/openo.png); - padding-left: 21px; - float: left; - margin-left: 5px; - border: 1px solid #e0e0e0; - border-radius: 4px; - box-sizing: border-box; - -moz-box-sizing: border-box; - background-position: -184px -181px !important; -} - -.openo-pagination-theme .ellipse { - float: left; - margin-left: -8px; - margin-right: -4px; - background: 0 0; - border: none; - border-radius: 0; - box-shadow: none; - font-weight: 700; - cursor: default; -} - -.openo.openo-disabled { - border-color: #c3c3c3 !important; - color: #666 !important; - opacity: .3; - filter: alpha(opacity=30); -} - -.openo-pagination-theme .prev { - background: 0 0; - float: left; -} - -.openo-pagination-theme .current { - text-decoration: none !important; - float: left; - padding-left: 6px; - height: 26px; - color: #fff; - display: inline; - /*border-color: #00adf5; - background: #4ad2ff;*/ - border: 1px solid #e0e0e0; -} - -.openo-pagination-theme .next:after { - background: url(../images/page_r.png) 50% 45% no-repeat; -} - -.openoButton_buttonGroupClass div.openoButton_buttonClass_parent, .openoButton_buttonRightImg { - margin-left: 5px; -} - -html, body { - height: 99%; - width: 98%; -} - -.cotentBody { - padding: 0px 20px 0px 20px; -} - -div.openoButton_buttonClass:hover { - border: 1px solid #4ac9ff; -} - -div.openoButton_button_default:hover .openoButton_buttonCenterText { - color: #009ae7; -} - -.header_lineimg { - height: 1px; - width: 100%; - margin-top: 17px; -} - -.openo.openo-hide { - display: none; -} - -div.openo-select-popup-container { - position: absolute; - border: 1px solid #4ac9ff; - border-top: none; - border-radius: 0 0 4px 4px; - max-height: 202px; - overflow-y: auto; - background-color: #fff; - z-index: 880; -} - -div.openo-select-popup-container > div.openo-select-item { - display: block; -} - -.openo .openo-ellipsis, .openo.openo-ellipsis { - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; -} - -div.openo-select-popup-container > div.openo-select-item > label { - padding-top: 3px; - padding-bottom: 3px; - line-height: 20px; -} - -.openo .openo-ellipsis, .openo.openo-ellipsis { - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; -} - -.openo-select-item label { - margin-left: 4px; - margin-right: 4px; - white-space: nowrap; -} - -div.openo-select-popup-container > div.openo-select-item.openo-item-selected, div.openo-select-popup-container > div.openo-select-item:hover { - background-color: #f1f1f1; - color: #008fd6; -} - -div.openo-select.openo-focus { - border: 1px solid #4ac9ff; - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; - border-bottom-color: #ddd; -} - -.openo-pagination-theme a:hover { - border-color: #4ac9ff; - cursor: pointer; -} - -.SDBtn { - background: #fff; - color: #333; - border: 1px solid #ddd; -} - -.SDBtn:hover { - color: #009ae7; - border: 1px solid #4AC9FF -} - -table tbody tr.even:hover td, table tbody tr.odd:hover td { - background-color: #e6fbe0; -} - -table tr.openoTable_row_selected td { - background: #e8f8fe !important; - border-bottom: 1px solid #e8e8e8 !important; -} - -.modal-body { - padding: 0 !important; -} - -.form-control { - height: 26px !important; -} - -.form-group .control-label { - margin-left: 20px; -} - -.form-horizontal .control-label { - text-align: left; -} \ No newline at end of file diff --git a/portal-common/src/main/webapp/common/css/ZteIctIcons/Read Me.txt b/portal-common/src/main/webapp/common/css/ZteIctIcons/Read Me.txt deleted file mode 100644 index e39b5440..00000000 --- a/portal-common/src/main/webapp/common/css/ZteIctIcons/Read Me.txt +++ /dev/null @@ -1,7 +0,0 @@ -Open *demo.html* to see a list of all the glyphs in your font along with their codes/ligatures. - -To use the generated font in desktop programs, you can install the TTF font. In order to copy the character associated with each icon, refer to the text box at the bottom right corner of each glyph in demo.html. The character inside this text box may be invisible; but it can still be copied. See this guide for more info: https://icomoon.io/#docs/local-fonts - -You won't need any of the files located under the *demo-files* directory when including the generated font in your own projects. - -You can import *selection.json* back to the IcoMoon app using the *Import Icons* button (or via Main Menu → Manage Projects) to retrieve your icon selection. diff --git a/portal-common/src/main/webapp/common/css/ZteIctIcons/demo-files/demo.css b/portal-common/src/main/webapp/common/css/ZteIctIcons/demo-files/demo.css deleted file mode 100644 index 44211330..00000000 --- a/portal-common/src/main/webapp/common/css/ZteIctIcons/demo-files/demo.css +++ /dev/null @@ -1,151 +0,0 @@ -body { - padding: 0; - margin: 0; - font-family: sans-serif; - font-size: 1em; - line-height: 1.5; - color: #555; - background: #fff; -} -h1 { - font-size: 1.5em; - font-weight: normal; -} -small { - font-size: .66666667em; -} -a { - color: #e74c3c; - text-decoration: none; -} -a:hover, a:focus { - box-shadow: 0 1px #e74c3c; -} -.bshadow0, input { - box-shadow: inset 0 -2px #e7e7e7; -} -input:hover { - box-shadow: inset 0 -2px #ccc; -} -input, fieldset { - font-size: 1em; - margin: 0; - padding: 0; - border: 0; -} -input { - color: inherit; - line-height: 1.5; - height: 1.5em; - padding: .25em 0; -} -input:focus { - outline: none; - box-shadow: inset 0 -2px #449fdb; -} -.glyph { - font-size: 16px; - width: 15em; - padding-bottom: 1em; - margin-right: 4em; - margin-bottom: 1em; - float: left; - overflow: hidden; -} -.liga { - width: 80%; - width: calc(100% - 2.5em); -} -.talign-right { - text-align: right; -} -.talign-center { - text-align: center; -} -.bgc1 { - background: #f1f1f1; -} -.fgc1 { - color: #999; -} -.fgc0 { - color: #000; -} -p { - margin-top: 1em; - margin-bottom: 1em; -} -.mvm { - margin-top: .75em; - margin-bottom: .75em; -} -.mtn { - margin-top: 0; -} -.mtl, .mal { - margin-top: 1.5em; -} -.mbl, .mal { - margin-bottom: 1.5em; -} -.mal, .mhl { - margin-left: 1.5em; - margin-right: 1.5em; -} -.mhmm { - margin-left: 1em; - margin-right: 1em; -} -.mls { - margin-left: .25em; -} -.ptl { - padding-top: 1.5em; -} -.pbs, .pvs { - padding-bottom: .25em; -} -.pvs, .pts { - padding-top: .25em; -} -.unit { - float: left; -} -.unitRight { - float: right; -} -.size1of2 { - width: 50%; -} -.size1of1 { - width: 100%; -} -.clearfix:before, .clearfix:after { - content: " "; - display: table; -} -.clearfix:after { - clear: both; -} -.hidden-true { - display: none; -} -.textbox0 { - width: 3em; - background: #f1f1f1; - padding: .25em .5em; - line-height: 1.5; - height: 1.5em; -} -#testDrive { - display: block; - padding-top: 24px; - line-height: 1.5; -} -.fs0 { - font-size: 16px; -} -.fs1 { - font-size: 16px; -} - diff --git a/portal-common/src/main/webapp/common/css/ZteIctIcons/demo-files/demo.js b/portal-common/src/main/webapp/common/css/ZteIctIcons/demo-files/demo.js deleted file mode 100644 index 52f25145..00000000 --- a/portal-common/src/main/webapp/common/css/ZteIctIcons/demo-files/demo.js +++ /dev/null @@ -1,30 +0,0 @@ -if (!('boxShadow' in document.body.style)) { - document.body.setAttribute('class', 'noBoxShadow'); -} - -document.body.addEventListener("click", function(e) { - var target = e.target; - if (target.tagName === "INPUT" && - target.getAttribute('class').indexOf('liga') === -1) { - target.select(); - } -}); - -(function() { - var fontSize = document.getElementById('fontSize'), - testDrive = document.getElementById('testDrive'), - testText = document.getElementById('testText'); - function updateTest() { - testDrive.innerHTML = testText.value || String.fromCharCode(160); - if (window.icomoonLiga) { - window.icomoonLiga(testDrive); - } - } - function updateSize() { - testDrive.style.fontSize = fontSize.value + 'px'; - } - fontSize.addEventListener('change', updateSize, false); - testText.addEventListener('input', updateTest, false); - testText.addEventListener('change', updateTest, false); - updateSize(); -}()); diff --git a/portal-common/src/main/webapp/common/css/ZteIctIcons/demo.html b/portal-common/src/main/webapp/common/css/ZteIctIcons/demo.html deleted file mode 100644 index fddfeac4..00000000 --- a/portal-common/src/main/webapp/common/css/ZteIctIcons/demo.html +++ /dev/null @@ -1,4807 +0,0 @@ - - - - - IcoMoon Demo - - - - - -
    -

    Font Name: ZteIctIcons (Glyphs: 298)

    -
    -
    -

    Grid Size: Unknown

    -
    -
    - - - - ict-it-other-lenovo -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-router-alu7750 -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-nds -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-php -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-app-glassfish -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-telnet -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-dns -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-url -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-database-mysql -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-ping -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-ftp -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-rest -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-soap -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-server-macos -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-server-openbsd -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-server-debian -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-app-iis -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-app-mailserver -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-app-websphere -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-app-apache -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-app-jboss -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-a10bala -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-NFV -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-VNFM -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-VNF -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-VNFC -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-VIM -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-VDU -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-host -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-NS -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-cluster-vcs -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-diskraid-hpeva -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-diskraid-zte -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-firewall-h3c -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-ibm-blade -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-secfox -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-segw -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-zteatca -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-zteips -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-sdn-controller -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-server-hpux -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-storage-ops -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-storage-sanswitch-brocade -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-uep-moc-uca-public -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-uep-topo-commongroup20x20 -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-vapel_chgpile -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-car -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-chgpile -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-chgposition -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-chgstation -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-common_dc -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-common_ncd -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-common_ncd_break -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-common_sc -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-app -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-app-bind -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-app-dns -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-app-ems -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-app-mediator -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-app-ntp -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-app-ota -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-app-tomcat -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-app-trend -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-app-tsm -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-app-weblogic -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-cluster -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-cluster-hacmp -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-cluster-nec -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-cluster-ns -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-cluster-sg -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-database -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-database-mssql -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-database-oracle -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-database-sybase -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-database-sybaseiq -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-diskraid-dellmd -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-diskraid-emc -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-diskraid-eternus -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-diskraid-fujitsu -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-diskraid-hds -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-diskraid-hpaio -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-diskraid-hpmsa -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-diskraid-ibm -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-diskraid-ibmsm -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-diskraid-macrosan -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-diskraid-netapp -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-diskraid-sun -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-firewall -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-firewall-checkpoint -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-firewall-cisco -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-firewall-cisco2 -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-firewall-juniper -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-firewall-neteye -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-firewall-zte -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-firewall-ztemf -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-firewall-zteutm -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-gather -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-ibp -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-ibp-ibp2000 -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-net -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-alteon -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-appdirector -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-atca-lb10 -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-cisco-ucs -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-dcs -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-delta -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-dp -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-e9000 -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-f5bigip -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-f5bigip2 -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-gbe2c -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-h3c -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-hpblc -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-imm -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-secsis -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-vc -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-ztepower -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-ztesgs -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-other-zxsdr-nt -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-router -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-router-cisco -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-router-juniper -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-router-zte -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-sdn-host -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-sdn-switch -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-server -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-server-aix -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-server-klinux -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-server-redhat -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-server-solaris -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-server-suse -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-server-windows -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-server-zxve -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-storage -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-storage-cisco-mds -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-storage-md3000 -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-storage-netvault -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-storage-sanswitch-zte -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-switch-at -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-switch-cisco -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-switch-h3c -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-switch-juniper -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-switch-zte -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-tapelib-hpmsl -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-tapelib-ibmts -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-tapelib-sunts -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-Virtualnetwork -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-networkTree -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-resourceType -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-tree-icon -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-uep-topo-group20x20 -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-uep-topo-root -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-uep-topo-virtual20x20 -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-common_ncd_stop -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-app-netnumen -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-sdn-vnet -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-storage-sanswitch-hp -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-it-switch -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-uep-moc-root -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-uep-topo-undefinedgroup20x20 -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-analysis -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-bindingRelationship -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-browsePolicy -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-businessManagment -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-cardData -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-dailyManagment -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-enterpriseCustomer -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-equipmentBlacklist -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-equipmentModel -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-examine -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-failureList -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-familyCustomer -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-fileTool -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-groupManagment -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-notice -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-policy -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-portal -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-recordQuery -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-resourceManagment -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-ruleManagment -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-sucessRate -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-terminalManagment -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-tools -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-track -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-userManagment -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-versionManagment -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-workOrder -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-cpu -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-memory -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-currentAlarm -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-noticeAlarm -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-historyAlarm -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-close -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-table -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-next -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-pre -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-roleset -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-role -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-user -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-empty -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-noticeFilter -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-alarmTurn -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-advice -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-clearAlarm -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-alarmBox -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-afreshDef -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-alarmFilter -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-manAnalysis -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-drill -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-gear -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-process -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-unacknownledge -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-acknownledge -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-Operation -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-cloud -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-computer -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-alarm -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-import -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-export -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-Admin -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-allSelected -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-angleRight -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-arrowLeft -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-arrowLeftAll -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-arrowRight -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-arrowRightAll -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-autoFind -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-back -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-ball -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-bell -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-blackList -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-breakLink -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-cancle -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-circle -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-closeTree -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-configmap -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-delete -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-department -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-detail -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-displaySwitch -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-file -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-filter -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-find -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-folder -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-forceOut -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-fullScreen -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-Graphical -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-helpTip -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-hide -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-history -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-launchingTower -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-layout -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-legendhide -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-legendshow -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-link -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-lock -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-ltArrow -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-Magnifier -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-Maintain -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-maximize -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-modify -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-Monitor -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-move -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-new -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-newShortcut -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-openTree -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-poNode -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-print -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-product -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-rbArrow -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-reduction -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-refresh -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-rename -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-save -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-select -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-selectAll -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-selectLeft -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-selectRight -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-show -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-shrink -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-start -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-stop -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-stretch -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-strikeOut -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-Synchronous -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-toRight -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-treefile -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-treeFolder -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-unlock -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-userCompare -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-userDispatch -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-xml -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-zoomIn -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-zoomOut -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-zoomOverView -
    -
    - - -
    -
    - liga: - -
    -
    -
    -
    - - - - ict-zoomReset -
    -
    - - -
    -
    - liga: - -
    -
    -
    - - -
    -

    Font Test Drive

    - - - -
      -
    -
    - -
    -

    Generated by IcoMoon

    -
    - - - - diff --git a/portal-common/src/main/webapp/common/css/ZteIctIcons/fonts/ZteIctIcons.eot b/portal-common/src/main/webapp/common/css/ZteIctIcons/fonts/ZteIctIcons.eot deleted file mode 100644 index 49ae78c1c5834430c1dd95906e767feb28e0de25..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 92372 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

    8Go&4AE3{?SJldR-5spA61B;Dk0$a6QrOpV%d} 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 diff --git a/portal-common/src/main/webapp/common/css/ZteIctIcons/fonts/ZteIctIcons.svg b/portal-common/src/main/webapp/common/css/ZteIctIcons/fonts/ZteIctIcons.svg deleted file mode 100644 index 8a4eb0e0..00000000 --- a/portal-common/src/main/webapp/common/css/ZteIctIcons/fonts/ZteIctIcons.svg +++ /dev/null @@ -1,308 +0,0 @@ - - - -Generated by IcoMoon - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/portal-common/src/main/webapp/common/css/ZteIctIcons/fonts/ZteIctIcons.ttf b/portal-common/src/main/webapp/common/css/ZteIctIcons/fonts/ZteIctIcons.ttf deleted file mode 100644 index e610cb1fcb6ece272b088542abacea538856087d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 92192 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 E3&4eHS^xk5 diff --git a/portal-common/src/main/webapp/common/css/ZteIctIcons/fonts/ZteIctIcons.woff b/portal-common/src/main/webapp/common/css/ZteIctIcons/fonts/ZteIctIcons.woff deleted file mode 100644 index 2e193ba1cef761df276a891ae19f4ada0fb68fe8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 92268 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 diff --git a/portal-common/src/main/webapp/common/css/ZteIctIcons/selection.json b/portal-common/src/main/webapp/common/css/ZteIctIcons/selection.json deleted file mode 100644 index b2ed9364..00000000 --- a/portal-common/src/main/webapp/common/css/ZteIctIcons/selection.json +++ /dev/null @@ -1,8408 +0,0 @@ -{ - "IcoMoonType": "selection", - "icons": [ - { - "icon": { - "paths": [ - "M820.37 677.303c-13.605 0-24.795 5.193-33.646 15.726-8.85 10.459-13.312 26.331-13.312 47.762 0 21.65 4.389 37.742 13.166 48.128s19.822 15.579 33.134 15.579c13.458 0 24.503-5.12 33.061-15.36 8.631-10.313 13.019-26.697 13.019-49.298 0-21.065-4.389-36.791-13.093-47.177-8.704-10.24-19.456-15.36-32.329-15.36z", - "M888.027 0h-752.055c-75.557 0-135.973 60.416-135.973 135.973v751.982c0 75.703 60.416 136.046 135.973 136.046h751.982c75.703 0 136.046-60.343 136.046-135.973v-752.055c0-75.557-60.343-135.973-135.973-135.973zM107.52 141.385h103.863v253.294h162.085v82.725h-265.947v-336.018zM350.574 831.634c-24.869 23.918-59.173 35.84-103.058 35.84-39.131 0-70.729-9.947-94.866-29.769-29.696-24.576-44.471-56.832-44.471-96.695 0-37.157 12.507-67.73 37.595-91.794s58.953-36.133 101.522-36.133c48.786 0 85.577 14.117 110.519 42.423 19.968 22.821 30.062 50.761 30.062 84.114 0 37.449-12.434 68.096-37.303 92.014zM573.221 861.989h-82.798l-101.23-243.419h97.061l47.25 154.258 49.006-154.258h94.135l-103.424 243.419zM628.517 466.944c-19.895 10.606-48.347 15.945-85.504 15.945-32.183 0-57.563-4.535-76.069-13.678-18.505-8.997-33.792-23.479-46.007-43.301-12.142-19.749-18.213-43.008-18.213-69.778 0-38.107 12.215-68.827 36.571-92.379 24.43-23.552 58.075-35.255 101.010-35.255 34.889 0 62.391 5.266 82.505 15.799 20.187 10.533 35.547 25.819 46.080 45.787 10.606 20.041 15.872 46.080 15.872 78.19v10.533h-187.099c1.682 14.994 5.705 26.185 12.142 33.499 8.997 10.533 20.773 15.799 35.255 15.799 9.216 0 17.92-2.267 26.112-6.875 5.047-2.926 10.533-8.046 16.311-15.36l91.941 8.485c-14.043 24.503-31.013 41.984-50.907 52.59zM922.258 831.634c-24.869 23.918-59.246 35.84-103.058 35.84-39.058 0-70.729-9.947-94.866-29.769-29.623-24.576-44.471-56.832-44.471-96.695 0-37.157 12.581-67.73 37.669-91.794 25.015-24.064 58.88-36.133 101.522-36.133 48.786 0 85.577 14.117 110.519 42.423 19.968 22.821 29.989 50.761 29.989 84.114-0.073 37.449-12.507 68.096-37.303 92.014zM984.942 477.403h-93.696v-133.851c0-15.287-2.853-26.112-8.485-32.402-5.632-6.363-13.605-9.509-23.845-9.509-11.264 0-20.407 4.315-27.502 12.873-7.022 8.558-10.533 23.918-10.533 46.080v116.882h-93.33v-243.493h86.894v39.643c13.019-16.165 26.112-27.721 39.424-34.743s29.477-10.459 48.567-10.459c25.893 0 46.080 7.68 60.635 23.040s21.87 39.058 21.87 71.168v154.77z", - "M575.195 295.424c-7.826-7.753-18.213-11.703-31.013-11.703-14.848 0-26.697 5.851-35.547 17.627-5.632 7.314-9.216 18.286-10.752 32.768h91.941c-1.902-17.993-6.656-30.939-14.629-38.693z", - "M248.686 677.303c-13.605 0-24.869 5.193-33.719 15.726-8.85 10.459-13.312 26.331-13.312 47.762 0 21.65 4.389 37.742 13.166 48.128s19.822 15.579 33.134 15.579c13.458 0 24.43-5.12 33.134-15.36 8.631-10.313 12.946-26.697 12.946-49.298 0-21.065-4.389-36.791-13.093-47.177-8.631-10.24-19.383-15.36-32.256-15.36z" - ], - "attrs": [ - { - "fill": "rgb(100, 148, 206)" - }, - { - "fill": "rgb(100, 148, 206)" - }, - { - "fill": "rgb(100, 148, 206)" - }, - { - "fill": "rgb(100, 148, 206)" - } - ], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-lenovo" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [ - 4, - 4, - 4, - 4 - ] - } - }, - "attrs": [ - { - "fill": "rgb(100, 148, 206)" - }, - { - "fill": "rgb(100, 148, 206)" - }, - { - "fill": "rgb(100, 148, 206)" - }, - { - "fill": "rgb(100, 148, 206)" - } - ], - "properties": { - "order": 298, - "id": 297, - "prevSize": 16, - "code": 59648, - "name": "it-other-lenovo" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 0 - }, - { - "icon": { - "paths": [ - "M361.536 749.12l-107.008 274.88h58.88l22.656-62.464h109.888l24 62.464h60.352l-110.080-274.88h-58.688zM353.152 915.264l37.12-102.016 37.888 102.016h-75.008z", - "M616.768 751.36h-55.488v272.64h193.472v-46.336h-137.984z", - "M957.632 901.184c0 21.76-0.832 37.312-2.432 46.656s-6.464 17.344-14.464 23.68c-8 6.528-19.904 9.664-35.648 9.664-15.488 0-27.776-3.392-36.608-10.176-9.024-6.784-14.656-15.872-17.024-27.136-1.344-6.976-2.048-22.336-2.048-45.952v-148.864h-55.488v146.624c0 30.72 1.792 54.016 5.44 69.76 2.496 10.624 7.68 20.8 15.552 30.464 7.872 9.728 18.56 17.6 32.192 23.616 13.504 6.080 33.408 9.152 59.712 9.152 21.76 0 39.36-2.816 52.864-8.384 13.504-5.504 24.32-12.992 32.32-22.4 8.128-9.344 13.632-20.864 16.64-34.496s4.48-36.928 4.48-69.952v-144.384h-55.488v152.128z", - "M1006.016 643.392c11.328-42.304 17.984-86.592 17.984-132.416 0-282.688-230.336-510.976-513.024-510.976s-510.976 228.288-510.976 510.976c0 181.504 94.4 340.992 236.544 432.256v-171.904c0-70.656 57.344-128 128-128h108.224v-19.712c0-19.968-8.384-70.848-42.24-80.448h66.368c36.416 0 44.224 63.68 44.224 84.48v15.68h464.896zM859.008 444.608v-88.512l122.752 122.688-122.752 122.688v-88.448h-164.928c-19.968 0-70.912 10.432-80.448 44.224v-66.368c0-36.416 61.632-46.272 82.496-46.272h162.88zM408.384 468.736c0 36.416-61.632 44.224-82.496 44.224h-162.944v88.512l-122.688-122.688 122.688-122.688v88.512h166.976c19.968 0 68.928-8.384 78.464-42.24v66.368zM496.896 478.784h-66.368c33.856-9.536 42.24-60.544 42.24-80.448v-164.992h-88.512l122.688-122.688 122.688 122.688h-88.448v162.944c0 20.864-7.872 82.496-44.288 82.496z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-router-alu7750" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 299, - "id": 296, - "prevSize": 16, - "code": 59649, - "name": "it-router-alu7750" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 1 - }, - { - "icon": { - "paths": [ - "M558.656 403.584c-10.624-4.096-27.776-6.144-51.328-6.144h-63.040v229.12h64c19.776 0 35.264-1.792 46.592-5.504 11.264-3.712 20.16-8.896 26.88-15.552 9.344-9.408 16.768-22.080 22.016-37.952 5.184-15.872 7.808-35.136 7.808-57.856 0-31.36-5.056-55.424-15.424-72.32-10.304-16.768-22.784-28.032-37.504-33.792z", - "M888 0h-752c-75.648 0-136 60.352-136 136v752c0 75.648 60.352 136 136 136h752c75.648 0 136-60.352 136-136v-752c0-75.648-60.352-136-136-136zM337.984 661.952h-40.768l-157.504-235.648v235.648h-38.016v-299.904h40.704l157.504 235.52v-235.52h38.080v299.904zM644.544 570.88c-5.312 17.664-12.096 32.192-20.416 43.712-8.384 11.584-17.408 20.608-27.392 27.264-9.856 6.656-21.76 11.648-35.776 14.976-13.952 3.456-30.016 5.12-48.064 5.12h-108.288v-299.904h103.36c23.232 0 41.088 1.472 53.312 4.352 17.216 3.904 31.872 11.072 44.032 21.44 15.744 13.376 27.648 30.464 35.456 51.2 7.808 20.864 11.776 44.608 11.776 71.36-0.064 22.784-2.688 42.944-8 60.48zM918.656 622.4c-9.216 14.144-22.272 25.088-39.36 32.96-17.216 7.808-36.416 11.776-57.792 11.776-27.2 0-49.92-4.032-68.16-11.904-18.368-7.936-32.768-19.776-43.2-35.712-10.432-15.872-15.872-33.856-16.448-53.888l37.44-3.264c1.728 14.976 5.824 27.264 12.352 36.864 6.464 9.6 16.448 17.344 30.208 23.296 13.568 5.952 28.864 8.896 46.016 8.896 15.040 0 28.416-2.176 40.064-6.656 11.584-4.48 20.16-10.688 25.792-18.496 5.76-7.872 8.576-16.448 8.576-25.664 0-9.408-2.688-17.664-8.192-24.64-5.44-6.976-14.464-12.928-27.008-17.728-8.064-3.072-25.856-8.064-53.376-14.656-27.648-6.592-46.848-12.864-57.856-18.688-14.4-7.488-25.024-16.768-32-27.904-7.104-11.072-10.56-23.552-10.56-37.312 0-15.104 4.288-29.312 12.928-42.496 8.512-13.184 21.056-23.168 37.632-30.016 16.448-6.784 34.816-10.24 54.976-10.24 22.208 0 41.792 3.52 58.816 10.688 16.96 7.104 30.016 17.664 39.168 31.616 9.088 13.888 14.016 29.696 14.72 47.232l-38.144 2.88c-1.984-18.944-9.024-33.28-20.736-42.944-11.84-9.664-29.248-14.592-52.224-14.592-24 0-41.536 4.416-52.416 13.184-11.008 8.832-16.448 19.392-16.448 31.808 0 10.752 3.84 19.648 11.648 26.624 7.616 6.976 27.52 14.080 59.84 21.376 32.256 7.296 54.4 13.632 66.368 19.136 17.408 8.064 30.272 18.368 38.592 30.72 8.384 12.352 12.544 26.56 12.544 42.624 0 16-4.672 30.976-13.76 45.12z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-nds" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 300, - "id": 295, - "prevSize": 16, - "code": 59650, - "name": "it-other-nds" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 2 - }, - { - "icon": { - "paths": [ - "M766.4 419.136c-9.728 48.512-19.52 97.088-29.248 145.664h80.256c23.488-12.48 30.656-14.336 43.904-38.4 7.232-20.416 14.528-40.832 21.76-61.248-23.552-43.456-48.128-49.856-116.672-46.016z", - "M211.968 419.136c-9.728 48.576-19.52 97.088-29.248 145.664 31.616-2.624 63.232-5.184 94.848-7.744 24.96-12.288 24.448-12.416 36.544-38.336 14.144-27.328 13.376-51.52 7.296-84.288-36.48-5.056-72.96-10.176-109.44-15.296z", - "M888 0h-752c-75.584 0-136 60.416-136 136v752c0 75.648 60.416 136 136 136h752c75.648 0 136-60.352 136-136v-752c0-75.584-60.352-136-136-136zM175.488 618.432c-50.24 33.088 24.192 82.88-80.256 84.16v-22.848c19.456-102.144 38.912-204.416 58.368-306.56 113.472-4.544 188.288-3.136 240.704 53.696 7.232 255.232-114.304 122.816-218.816 191.552zM562.048 618.368v-22.976c9.792-51.072 19.52-102.144 29.184-153.28-7.296-7.68-14.592-15.296-21.888-22.976h-80.256c-12.16 66.432-24.32 132.864-36.48 199.232h-65.6c21.888-112.384 43.776-224.768 65.664-337.088h58.368c-2.432 30.592-4.8 61.248-7.296 91.904 71.68-3.072 114.624 4.224 153.28 30.656h-0.128v7.68c-9.6 68.928-19.456 137.92-29.12 206.848h-65.728zM722.56 626.176c-2.368 25.408-4.8 51.072-7.168 76.416h-65.6c19.456-109.76 38.784-219.584 58.24-329.408 89.792-3.072 174.016-1.6 226.24 30.656 53.632 184.896-72.448 186.56-211.712 222.336z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-php" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 301, - "id": 294, - "prevSize": 16, - "code": 59651, - "name": "it-other-php" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 3 - }, - { - "icon": { - "paths": [ - "M896 1024c70.848 0 128-57.152 128-128v-252.032l-379.968 380.032h251.968z", - "M896 0h-768c-70.912 0-128 57.088-128 128v768c0 70.848 57.088 128 128 128h417.984l478.016-480v-416c0-70.912-57.152-128-128-128zM831.936 262.336c-0.832 0.832-1.792 1.344-2.624 2.176h-10.944c4.48-0.768 9.152-1.472 13.568-2.176zM53.824 351.936c120.96-213.76 428.352-120.384 546.112-256.704h10.88c14.528 20.032 29.184 40 43.712 60.032-21.888-10.56-24.128-21.184-38.208-38.208-23.68 18.24-47.296 36.416-70.976 54.592 1.856 3.648 3.648 7.296 5.376 10.944 18.304 5.44 36.48 10.944 54.72 16.384-182.208-17.024-337.216 0.768-447.872 81.92-38.272 28.032-56.64 72.704-98.304 98.304h-5.44v-27.264zM239.488 362.88c-5.44 1.792-10.944 3.648-16.384 5.44-25.088-8.064-19.264-10.24-32.768-27.328 7.296-12.8 14.592-25.472 21.888-38.272h32.704v11.008c8.512 20.352 2.56 33.408-5.44 49.152zM288.704 510.272h-10.944c-75.712 40.832-229.056-50.432-245.76-109.184 110.528 9.92 119.68 119.36 256.704 103.68v5.504zM294.144 466.56c-31.232 16.768-61.056 29.312-92.8 5.44 54.144 0.96 67.968-11.968 92.8-38.208-1.856-10.944-3.648-21.824-5.44-32.704l16.384 16.32c-3.648 16.384-7.296 32.768-10.944 49.152zM310.528 242.688h-10.944c4.16-0.32 8.32-0.576 12.416-0.832-0.448 0.32-1.024 0.512-1.472 0.832zM414.272 204.416c120.256-2.176 196.544 24.064 283.968 43.712v5.44c-51.008-9.088-102.016-18.176-152.896-27.264-77.76 5.184-155.584 10.368-233.344 15.488 28.48-20.416 66.368-21.12 102.272-37.376zM610.88 379.2v-81.92c19.264 31.68 20.544 47.168 0 81.92zM556.224 390.144v-98.304c23.168 37.76 25.92 55.936 0 98.304zM397.888 433.792h-5.44c-1.856-56.448-3.648-112.832-5.504-169.28 36.8 61.056 18.24 90.24 10.944 169.28zM447.040 401.088c-1.792-43.712-3.648-87.424-5.44-131.072 20.672 36.672 25.216 89.28 5.44 131.072zM501.632 401.024v-114.688c22.208 41.92 14.4 60.928 5.376 114.688h-5.376zM627.392 559.424c-31.872-11.456-82.816-20.224-120.32-32.768 3.648-5.44 7.36-10.88 10.944-16.448h5.504c53.12 1.024 70.72 19.2 109.248 32.832 3.648-16.384 7.296-32.832 10.88-49.152 5.504 21.248 0.128 50.24-16.256 65.536zM665.472 368.256h-5.504v-70.976c13.504 19.968 10.176 43.52 5.504 70.976zM720.128 340.992c-12.736-3.648-25.472-7.296-38.272-10.944l38.272 5.44v5.504zM818.368 395.584c14.4-31.552 10.112-60.224-5.44-87.424 14.592 10.944 29.12 21.888 43.84 32.768-9.92 27.328-12.864 42.112-38.4 54.656zM944 537.536c-7.232-5.44-14.656-10.944-21.824-16.384-10.944-21.824-21.952-43.712-32.832-65.536 14.592 16.384 29.12 32.768 43.712 49.152-1.088-95.232-28.736-165.44-5.44-251.2-1.792-1.792-3.648-3.584-5.44-5.44-30.208 4.736-60.16 9.536-90.24 14.272 26.624-25.984 60.16-33.408 95.68-52.48h16.384v327.616z", - "M212.224 313.664c-3.648 7.232-7.232 14.528-10.88 21.824 10.88 5.504 21.76 10.944 32.704 16.448-4.544-26.688-6.016-25.152-21.824-38.272z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-app-glassfish" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 302, - "id": 293, - "prevSize": 16, - "code": 59652, - "name": "it-app-glassfish" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 4 - }, - { - "icon": { - "paths": [ - "M708.544 476.096h62.592v64.064h-62.592v-64.064z", - "M888 0h-752c-75.648 0-136 60.352-136 135.936v752.064c0 75.648 60.352 136 136 136h752c75.648 0 136-60.352 136-136v-752.064c0-75.584-60.352-135.936-136-135.936zM231.936 349.248h-52.992v315.456h-30.4v-315.456h-53.376v-26.944h136.704v26.944zM383.040 553.152l-9.792 10.304h-80.96v76.992h62.592v-39.040h28.224v38.528c0 16.512-8.128 24.768-24.512 24.768h-70.016c-16.32 0-24.512-8.256-24.512-24.768v-163.392c0-16.512 8.128-24.768 24.512-24.768h70.016c16.32 0 24.512 8.256 24.512 24.768v76.608zM461.568 664.704h-28.608v-342.4h28.672v342.4zM633.344 664.704h-29.12v-186.816l-64.128 1.728v185.088h-29.056v-212.864h29.12v5.952c11.328-1.472 22.784-3.072 34.368-4.608 13.952-1.728 25.472-2.624 34.496-2.624 16.256 0 24.384 7.936 24.384 23.808v190.336zM799.36 553.152l-9.856 10.304h-80.96v76.992h62.592v-39.040h28.224v38.528c0 16.512-8.192 24.768-24.512 24.768h-70.016c-16.384 0-24.512-8.256-24.512-24.768v-163.392c0-16.512 8.128-24.768 24.512-24.768h70.016c16.32 0 24.512 8.256 24.512 24.768v76.608zM924.032 477.44h-37.12v161.6h37.12v25.6h-41.344c-16.32 0-24.512-8.256-24.512-24.768v-162.432h-25.536v-25.6h25.536v-66.304h28.672v66.304h37.12v25.6z", - "M292.288 476.096h62.592v64.064h-62.592v-64.064z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-telnet" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 303, - "id": 292, - "prevSize": 16, - "code": 59653, - "name": "it-other-telnet" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 5 - }, - { - "icon": { - "paths": [ - "M264.576 342.848h-55.296v378.112h53.056c15.488 0 28.032-4.416 37.696-13.312 9.6-8.96 14.464-21.056 14.464-36.544v-278.912c0-14.656-4.608-26.56-13.888-35.712-9.344-9.024-21.312-13.632-36.032-13.632z", - "M888 0h-752c-75.648 0-136 60.352-136 136v752c0 75.648 60.352 136 136 136h752c75.648 0 136-60.352 136-136v-752c0-75.648-60.352-136-136-136zM354.304 675.136c0 23.68-7.808 43.136-23.36 58.304s-35.2 22.784-58.88 22.784h-102.656v-448.64h102.592c23.936 0 43.584 7.616 59.072 22.784s23.232 34.624 23.232 58.304v286.464zM609.216 756.224h-27.584l-119.808-329.92v329.92h-37.568v-448.64h29.824l117.504 324.224v-324.16h37.568v448.576zM855.68 443.84h-39.872v-100.992h-96.896v94.656l124.416 149.632c8.192 9.92 12.288 21.12 12.288 33.536v103.744c0 9.344-2.944 17.024-8.768 22.912s-13.44 8.896-22.784 8.896h-112.96c-9.344 0-17.024-2.944-23.040-8.896s-9.024-13.568-9.024-22.912v-113.792h39.808v110.4h96.896v-106.944l-123.84-149.632c-8.576-10.304-12.864-21.696-12.864-34.112v-90.88c0-9.344 3.008-17.024 9.024-22.848 6.080-5.952 13.76-8.96 23.040-8.96h112.96c9.344 0 17.024 3.008 22.784 8.96 5.824 5.888 8.768 13.568 8.768 22.848v104.384z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-dns" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 304, - "id": 291, - "prevSize": 16, - "code": 59654, - "name": "it-other-dns" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 6 - }, - { - "icon": { - "paths": [ - "M888 0h-752c-75.648 0-136 60.352-136 136v752c0 75.648 60.352 136 136 136h752c75.648 0 136-60.352 136-136v-752c0-75.648-60.352-136-136-136zM379.328 724.416c0 9.344-3.008 17.024-9.024 22.912-6.016 5.952-13.696 8.896-23.104 8.896h-122.048c-9.344 0-17.024-2.944-22.912-8.896-5.952-5.952-8.896-13.568-8.896-22.912v-416.768h39.872v413.376h106.368v-413.376h39.872v416.768zM600 756.224l-83.392-240.192 5.44-8.064h71.040v-165.12h-102.272v413.376h-39.808v-448.64h150.208c9.344 0 17.024 3.008 22.912 8.96 5.952 5.888 8.896 13.568 8.896 22.848v170.304c0 21.568-14.528 32.384-43.584 32.384-2.88 0-7.040-0.128-12.608-0.448-5.568-0.192-9.6-0.384-12.096-0.384 25.856 71.488 51.584 143.104 77.184 214.976h-41.92zM844.864 756.224h-143.296v-448.64h39.808v413.376h103.488v35.264z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-url" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 305, - "id": 290, - "prevSize": 16, - "code": 59655, - "name": "it-other-url" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 7 - }, - { - "icon": { - "paths": [ - "M4.032 488c0-7.232-2.816-30.4-4.032-43.968v129.984c1.856 20.864 4.032 44.224 4.032 54.016 0 17.472 5.248 33.728 14.016 49.984h237.952c-150.272-38.72-251.968-108.672-251.968-190.016z", - "M0 678.016h1.984c-0.896-9.472-1.28-17.984-1.984-25.984v25.984z", - "M513.984 444.032c282.752 0 512-99.328 512-222.016 0-1.344 0.128-2.624 0-4.032 0-0.704 0-1.344 0-1.984-7.488-119.808-233.984-216-512-216-282.752 0-512 99.328-512 222.016s229.248 222.016 512 222.016z", - "M516.032 494.016c-282.752 0-512-99.328-512-222.016 0-7.232-2.752-30.4-4.032-44.032v137.984c1.856 20.864 4.032 44.288 4.032 54.080 0 122.688 229.248 222.016 512 222.016s512-99.328 512-222.016v-148.032c-0 122.688-229.312 222.016-512 222.016z", - "M776 678.016h238.016c8.768-16.256 14.016-32.512 14.016-49.984v-140.032c0 81.344-101.76 151.296-252.032 190.016z", - "M140.736 932.096c-5.056 19.968-8.768 35.072-11.136 45.312-2.048-9.28-5.376-23.168-9.984-41.792l-49.472-200.128h-41.6v282.624h26.688v-240.64l60.48 240.64h24.96l60.736-236.544v236.544h26.688v-282.624h-37.376l-49.984 196.608z", - "M369.792 818.56c-8.96 18.56-16.576 35.2-22.848 49.92-6.592-15.936-13.632-31.872-21.248-47.808l-41.216-85.184h-33.6l80.512 162.88v119.744h27.648v-119.744l83.392-162.88h-32.128l-40.512 83.072z", - "M592.704 844.032c-9.472-6.784-24.128-13.632-43.904-20.032s-31.488-12.096-36.608-17.984c-4.032-4.608-5.824-9.472-5.824-16 0-7.104 1.536-13.76 5.824-17.984 6.656-6.656 16-9.984 27.84-9.984 11.392 0 19.072 3.776 24.896 9.984 5.632 6.208 9.92 15.872 11.712 30.016l40.96-2.048c-0.704-25.28-7.808-44.864-20.48-60.032-12.8-15.104-31.872-24-57.088-24-15.488 0-28.608 3.648-39.552 9.984-10.944 6.4-19.072 15.808-24.896 28.032-5.824 12.16-8.768 25.984-8.768 40 0 21.76 6.656 38.848 19.008 54.016 8.768 10.752 23.616 20.608 45.376 28.032 16.96 5.76 27.456 9.728 32.192 12.032 6.912 3.392 11.84 7.488 14.656 12.032 2.752 4.544 4.416 9.472 4.416 16 0 10.112-3.712 20.416-10.24 28.032-6.656 7.552-16.192 9.984-29.312 9.984-12.352 0-22.080-3.52-29.312-12.032-7.296-8.512-12.224-21.888-14.656-40l-39.424 5.952c2.688 30.72 11.264 53.952 24.896 70.016s33.152 24 58.56 24c17.472 0 32.128-3.328 43.904-9.984 11.712-6.656 19.968-18.24 26.304-32 6.464-13.76 10.24-28.224 10.24-44.032 0-17.344-3.456-32.192-8.768-44.032-5.376-11.84-12.544-21.184-21.952-27.968z", - "M917.632 724.032h-41.024v272h142.016v-46.016h-100.992z", - "M837.12 921.984c4.864-17.984 7.296-38.272 7.296-62.016 0-44.864-8.896-81.088-26.304-105.984-17.472-24.96-40.448-38.016-70.272-38.016-30.144 0-54.208 13.056-71.744 38.016s-26.304 61.12-26.304 105.984c0 44.992 8.768 79.104 26.304 104 17.472 24.896 40.832 38.016 71.744 38.016 16 0 30.72-4.096 43.904-12.032 16.768 15.36 26.56 23.104 27.84 24 5.888 4.352 11.456 7.488 17.536 9.984l14.656-40c-11.712-5.76-22.208-12.224-32.192-22.016 8.064-12.8 13.888-26.176 17.536-39.936zM799.040 900.032c-2.624 11.904-6.528 21.632-11.712 30.016-12.16-12.48-26.176-21.76-39.488-28.032l-10.24 32c8.512 4.096 16.64 10.624 24.896 17.984-5.248 2.624-10.24 4.032-16.128 4.032-15.68 0-29.248-8.064-39.488-24-10.304-15.936-16.128-39.872-16.128-72 0-31.616 5.824-56.256 16.128-72 10.24-15.744 22.912-24 39.488-24s30.72 8.32 41.024 24 14.656 40.256 14.656 72c-0.064 15.36-0.448 28.096-3.008 40z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-database-mysql" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 306, - "id": 289, - "prevSize": 16, - "code": 59656, - "name": "it-database-mysql" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 8 - }, - { - "icon": { - "paths": [ - "M154.24 298.752h98.048v199.808h-98.048v-199.808z", - "M888 0h-752c-75.648 0-136 60.416-136 136v752c0 75.648 60.352 136 136 136h752c75.648 0 136-60.352 136-136v-752c0-75.584-60.352-136-136-136zM292.096 502.016c0 9.344-3.008 17.088-9.024 23.040-6.016 6.080-13.696 9.088-23.040 9.088h-105.792v177.984h-39.808v-448.64h145.6c9.344 0 17.088 3.008 23.104 8.96 6.016 5.888 9.024 13.568 9.024 22.848v206.72zM397.312 712.128h-39.872v-448.64h39.872v448.64zM657.088 712.128h-27.584l-119.808-329.92v329.92h-37.568v-448.64h29.824l117.568 324.288v-324.288h37.568v448.64zM910.144 399.68h-40.128v-100.928h-101.44v378.112h101.44v-155.072h-47.872v-34.432h88v192.96c0 9.344-2.944 17.024-8.896 22.912s-13.568 8.896-22.912 8.896h-117.824c-9.344 0-17.024-2.944-22.912-8.896s-8.896-13.568-8.896-22.912v-385.024c0-9.344 3.008-17.024 8.896-22.848 5.952-5.952 13.632-8.96 22.912-8.96h117.824c9.344 0 17.024 3.008 22.912 8.96 5.952 5.888 8.896 13.568 8.896 22.848v104.384z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-ping" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 307, - "id": 288, - "prevSize": 16, - "code": 59657, - "name": "it-other-ping" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 9 - }, - { - "icon": { - "paths": [ - "M888 0h-752c-75.584 0-136 60.352-136 136v752c0 75.648 60.416 136 136 136h752c75.648 0 136-60.352 136-136v-752c0-75.648-60.352-136-136-136zM352 269.12h-119.168v193.92h109.696v40.832h-109.696v236.032h-45.376v-510.976h164.544v40.192zM590.656 269.12h-78.976v470.784h-45.376v-470.784h-79.68v-40.192h204.096v40.192zM846.4 500.608c0 10.624-3.456 19.392-10.304 26.24s-15.616 10.304-26.304 10.304h-120.448v202.752h-45.44v-510.976h165.888c10.688 0 19.456 3.392 26.304 10.112s10.304 15.488 10.304 26.112v235.456z", - "M689.344 269.12h111.616v227.584h-111.616v-227.584z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-ftp" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 308, - "id": 287, - "prevSize": 16, - "code": 59658, - "name": "it-other-ftp" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 10 - }, - { - "icon": { - "paths": [ - "M888 0h-752c-75.584 0-136 60.416-136 136v752c0 75.648 60.416 136 136 136h752c75.648 0 136-60.352 136-136v-752c0-75.584-60.352-136-136-136zM243.456 695.040l-79.744-229.632 5.248-7.68h67.968v-157.76h-97.856v395.136h-38.080v-428.8h143.616c8.96 0 16.256 2.816 21.888 8.448 5.632 5.696 8.512 12.992 8.512 21.952v162.752c0 20.672-13.888 30.976-41.664 30.976-2.752 0-6.72-0.128-12.032-0.384s-9.152-0.384-11.52-0.384c24.64 68.288 49.216 136.832 73.728 205.504h-40.064zM481.28 695.040h-140.864v-428.8h139.2v33.664h-101.12v160h92.032v34.24h-91.968v167.168h102.72v33.728zM707.904 396.416h-38.080v-96.448h-92.608v90.432l118.912 143.040c7.808 9.472 11.776 20.16 11.776 32v99.2c0 9.024-2.752 16.32-8.32 21.952-5.632 5.696-12.864 8.512-21.824 8.512h-107.968c-8.96 0-16.32-2.816-22.080-8.512-5.76-5.632-8.64-12.928-8.64-21.952v-108.736h38.080v105.472h92.608v-102.272l-118.4-142.976c-8.192-9.856-12.352-20.736-12.352-32.64v-86.848c0-8.96 2.88-16.256 8.64-21.952 5.824-5.632 13.248-8.448 22.144-8.448h107.968c8.96 0 16.192 2.816 21.824 8.448 5.568 5.696 8.32 12.992 8.32 21.952v99.776zM923.008 299.968h-66.304v395.136h-38.080v-395.136h-66.88v-33.728h171.264v33.728z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-rest" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 309, - "id": 286, - "prevSize": 16, - "code": 59659, - "name": "it-other-rest" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 11 - }, - { - "icon": { - "paths": [ - "M594.752 566.016h75.392l-37.568-232.384z", - "M343.488 299.968h104.96v361.408h-104.96v-361.408z", - "M817.472 299.968h93.76v190.976h-93.76v-190.976z", - "M888 0h-752c-75.584 0-136 60.416-136 136v752c0 75.648 60.416 136 136 136h752c75.648 0 136-60.352 136-136v-752c0-75.584-60.352-136-136-136zM238.016 396.416h-38.080v-96.448h-92.672v90.432l118.912 143.040c7.872 9.472 11.776 20.16 11.776 32v99.2c0 9.024-2.752 16.32-8.384 21.952-5.568 5.696-12.8 8.512-21.76 8.512h-107.904c-8.96 0-16.256-2.816-22.016-8.512-5.76-5.632-8.64-12.928-8.64-21.952v-108.736h38.080v105.472h92.608v-102.272l-118.4-142.976c-8.192-9.856-12.352-20.736-12.352-32.64v-86.848c0-8.96 2.88-16.256 8.64-21.952 5.76-5.632 13.12-8.448 22.080-8.448h107.968c8.96 0 16.192 2.816 21.76 8.448 5.568 5.696 8.384 12.992 8.384 21.952v99.776zM486.528 664.64c0 9.024-2.88 16.32-8.64 21.952-5.76 5.696-13.12 8.512-22.080 8.512h-120c-8.96 0-16.256-2.816-21.888-8.512-5.632-5.632-8.512-12.928-8.512-21.952v-368c0-8.96 2.816-16.256 8.512-21.952 5.632-5.632 12.928-8.448 21.888-8.448h120c8.96 0 16.32 2.816 22.080 8.448 5.76 5.696 8.64 12.992 8.64 21.952v368zM690.112 695.040l-15.040-95.36h-85.248l-15.104 95.36h-36.672v-1.152l76.48-428.8h37.568l75.904 429.952h-37.888zM949.312 494.208c0 8.96-2.88 16.32-8.64 22.080s-13.12 8.64-22.080 8.64h-101.12v170.176h-38.080v-428.8h139.2c8.96 0 16.32 2.816 22.080 8.448 5.76 5.696 8.64 12.992 8.64 21.952v197.504z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-soap" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 310, - "id": 285, - "prevSize": 16, - "code": 59660, - "name": "it-other-soap" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 12 - }, - { - "icon": { - "paths": [ - "M766.336 563.584c-6.912-61.952 29.12-128.832 94.144-209.92-23.168-15.424-37.44-36.096-78.592-46.912-170.496-21.632-250.176 23.744-250.176 23.744s-112.192-49.792-191.68-42.624c-130.432 11.648-176.448 134.72-179.712 201.152-2.368 47.936-6.528 116.544 1.408 168 29.888 192.832 130.688 269.952 213.632 297.536 64.768 21.568 88.256-30.784 135.744-30.784 15.232 0 63.872-1.728 73.856 3.712 146.176 79.68 238.656 7.040 303.040-193.024-45.056-16.704-111.36-90.24-121.664-170.88z", - "M696.768 64c-60.8 0-170.88 102.848-162.176 188.288 0.448 4.096 11.968 8.064 16 7.232 56.448-11.648 121.536-70.912 141.888-127.424 5.952-16.768 22.144-68.096 4.288-68.096z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-server-macos" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 311, - "id": 284, - "prevSize": 16, - "code": 59661, - "name": "it-server-macos" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 13 - }, - { - "icon": { - "paths": [ - "M619.904 452.8c9.984-7.552 16.896-18.24 20.544-31.936l-23.488-2.88c-3.456 9.6-8.128 16.576-14.016 20.928s-12.992 6.592-21.376 6.592c-11.2 0-20.48-3.904-28.032-11.776-7.488-7.808-11.648-19.072-12.48-33.792h100.032c0.064-2.688 0.128-4.672 0.128-6.016 0-22.144-5.696-39.296-17.088-51.52-11.392-12.16-25.984-18.304-43.968-18.304-18.496 0-33.536 6.272-45.184 18.688-11.584 12.416-17.408 29.888-17.408 52.48 0 21.824 5.76 38.72 17.28 50.816s27.072 18.112 46.656 18.112c15.552-0 28.288-3.776 38.4-11.392zM554.112 353.216c7.168-6.976 15.872-10.496 26.304-10.496 11.584 0 20.928 4.352 28.16 13.12 4.672 5.632 7.552 14.144 8.576 25.408h-74.88c0.768-11.712 4.736-21.056 11.84-28.032z", - "M513.472 673.92c-7.424-3.328-21.056-7.232-40.96-11.776s-32.192-8.96-36.928-13.248c-4.864-4.224-7.232-9.728-7.232-16.32 0-7.68 3.392-14.208 10.176-19.648s17.536-8.192 32.384-8.192c14.208 0 24.96 3.008 32.256 9.024 7.296 5.952 11.584 14.784 12.8 26.496l23.488-1.728c-0.448-10.88-3.456-20.544-9.088-29.184-5.632-8.576-13.696-15.104-24.192-19.52-10.432-4.48-22.528-6.656-36.288-6.656-12.48 0-23.808 2.112-33.984 6.336s-17.92 10.368-23.232 18.496c-5.248 8.128-7.936 16.896-7.936 26.176 0 8.512 2.176 16.192 6.528 23.040s10.944 12.544 19.776 17.28c6.848 3.584 18.752 7.424 35.776 11.52s27.968 7.104 32.96 9.088c7.744 2.944 13.312 6.592 16.704 10.944 3.328 4.288 5.056 9.344 5.056 15.168 0 5.76-1.728 11.008-5.248 15.872-3.456 4.8-8.832 8.64-16 11.392-7.168 2.816-15.424 4.16-24.704 4.16-10.56 0-20.032-1.792-28.416-5.504-8.384-3.648-14.656-8.448-18.624-14.4-4.032-5.952-6.592-13.568-7.68-22.784l-23.104 2.048c0.32 12.288 3.712 23.424 10.176 33.28s15.296 17.152 26.624 22.016c11.328 4.864 25.344 7.36 42.112 7.36 13.248 0 25.088-2.432 35.648-7.296 10.56-4.8 18.688-11.648 24.32-20.288s8.512-17.984 8.512-27.84c0-9.92-2.624-18.752-7.744-26.368-5.248-7.616-13.184-13.952-23.936-18.944z", - "M404.032 447.296c3.904 4.864 8.832 8.896 14.784 12.096 6.016 3.2 12.8 4.8 20.416 4.8 10.368 0 20.224-2.944 29.568-8.768 9.408-5.824 16.576-14.272 21.44-25.28 5.056-10.944 7.488-23.36 7.488-37.056 0-12.8-2.24-24.576-6.72-35.264-4.416-10.752-11.008-19.072-19.776-24.96s-18.88-8.832-30.336-8.832c-8.768 0-16.192 1.728-22.336 5.12s-11.648 8.512-16.512 15.36v-17.472h-20.736v185.472h22.72v-65.216zM413.12 355.392c7.424-9.024 16-13.568 25.664-13.568 9.728 0 18.176 4.224 25.216 12.736s10.56 21.312 10.56 38.4c0 17.92-3.584 31.168-10.752 39.744-7.232 8.512-15.872 12.8-25.984 12.8-9.92 0-18.368-4.096-25.344-12.352-7.104-8.256-10.56-21.056-10.56-38.272s3.712-30.4 11.2-39.488z", - "M337.408 672.96c8.704-4.224 15.168-9.92 19.456-16.896s6.464-14.464 6.464-22.4c0-8.512-2.432-16.64-7.296-24.448-4.8-7.744-11.52-13.504-20.032-17.28s-19.904-5.632-34.048-5.632h-69.44v185.152h70.592c11.776 0 21.696-1.024 29.824-3.072s14.848-5.12 20.288-9.216c5.376-4.032 9.92-9.792 13.568-17.28s5.504-15.488 5.504-24.192c0-10.752-3.008-20.032-9.024-28.032-6.016-7.872-14.592-13.44-25.856-16.704zM257.024 608.192h36.992c13.312 0 22.656 0.896 28.16 2.56 5.504 1.728 9.664 4.928 12.608 9.6 2.944 4.736 4.416 10.112 4.416 16.256 0 6.464-1.536 11.84-4.736 16.128s-7.872 7.36-14.080 9.28c-4.736 1.344-12.48 2.112-23.36 2.112h-40v-55.936zM343.232 733.376c-2.432 4.48-5.504 7.936-9.344 10.304-3.776 2.304-8.512 4.032-14.144 4.992-3.2 0.64-8.768 0.96-16.64 0.96h-46.080v-63.68h42.752c11.84 0 20.8 1.088 27.072 3.136s11.2 5.632 14.72 10.752c3.52 5.056 5.312 11.072 5.312 17.92 0.064 5.952-1.216 11.136-3.648 15.616z", - "M309.12 452.864c13.888-7.616 24.576-18.816 32.192-33.6 7.552-14.848 11.328-31.616 11.328-50.368 0-18.56-3.584-35.072-10.752-49.664-7.168-14.656-17.664-25.984-31.36-34.176s-29.184-12.288-46.272-12.288c-26.112 0-47.36 8.704-63.872 26.048s-24.704 41.472-24.704 72.192c0 16.256 3.52 31.68 10.624 46.208 7.104 14.592 17.472 26.048 31.168 34.496s29.312 12.608 46.72 12.608c16.064 0 31.040-3.84 44.928-11.456zM218.88 424.064c-11.968-12.8-17.984-30.4-17.984-52.672 0-27.84 6.272-47.744 18.752-59.648s27.392-17.856 44.736-17.856c12.224 0 23.232 3.072 33.024 9.28s17.28 14.848 22.336 26.112 7.616 24.384 7.616 39.488c0 23.808-5.952 42.176-17.856 55.168s-27.008 19.392-45.504 19.392c-18.048 0-33.088-6.4-45.12-19.264z", - "M702.4 602.24c-7.488-6.4-16.576-10.816-27.2-13.248-7.552-1.728-18.56-2.688-32.96-2.688h-63.744v185.152h66.816c11.2 0 21.056-1.088 29.696-3.2 8.64-2.048 16-5.184 22.144-9.28 6.080-4.032 11.712-9.664 16.896-16.832 5.12-7.040 9.344-16.064 12.608-26.944s4.864-23.296 4.864-37.376c0-16.512-2.368-31.168-7.232-44.032-4.864-12.736-12.16-23.296-21.888-31.552zM701.44 713.216c-3.264 9.792-7.808 17.6-13.632 23.36-4.096 4.096-9.6 7.36-16.576 9.6s-16.576 3.456-28.736 3.456h-39.488v-141.44h38.848c14.592 0 25.152 1.28 31.68 3.84 9.152 3.52 16.832 10.496 23.168 20.864s9.472 25.28 9.472 44.608c0.064 14.016-1.536 25.856-4.736 35.712z", - "M0 0v1024h1024v-533.12c-85.888 14.656-144.192 122.368-127.936 210.816-55.872-12.48-65.856-52.608-94.016-59.136 5.76 22.656 11.392 45.12 17.216 67.648-34.112-3.264-27.008-9.152-51.2 8.512 11.392 25.28 22.656 50.496 33.984 75.776-2.816 0-5.632 0-8.512 0-23.808-22.016-29.056-31.488-68.096-42.112-2.816 5.632-5.824 11.136-8.64 16.896 5.824 17.024 11.456 33.728 17.216 50.752-37.12-25.152-27.52-31.744-68.416-17.024-2.816 22.528-5.696 44.992-8.512 67.648-21.184-24.128-14.464-29.248-51.2-42.368-2.816 17.024-5.76 33.856-8.512 50.624-8.576-11.264-17.152-22.528-25.536-33.6-8.576 5.76-17.152 11.136-25.6 16.896-2.88 22.4-5.696 44.992-8.64 67.52-11.392-22.528-22.72-45.12-33.984-67.52-5.696 2.752-11.52 5.504-17.152 8.512-8.576 32.64-3.328 25.28-25.6 42.112-2.88-14.144-5.696-28.224-8.576-42.112-5.632 2.624-11.328 5.504-17.024 8.256-10.88 37.504-16.96 43.264-34.112 50.752-5.76-19.84-11.456-39.616-17.152-59.072-17.6 17.152-19.264 28.352-42.624 42.112 0-17.024 0-33.856 0-50.624-22.72 14.016-45.568 28.032-68.288 42.24 6.4-46.848 11.968-56.64-17.088-84.352-17.088 11.136-34.112 22.528-51.264 33.6 5.824-22.528 11.456-44.864 17.152-67.392-25.536 5.632-51.2 11.264-76.8 16.768 11.392-16.768 22.72-33.728 34.176-50.624-18.496-23.36-16.256-18.752-34.176-42.112-11.392 5.632-22.656 11.264-34.112 16.896 23.424-48.64 10.816-38.4-25.536-84.48-40.704 12.544-61.504 8.832-85.44-16.832 82.432-69.184 97.92-184 153.6-261.504-8.512-11.264-17.024-22.464-25.6-33.664 11.392 0 22.72 0 34.112 0-14.144-25.408-28.416-50.688-42.624-76.032 28.416 8.448 56.96 17.024 85.248 25.408-11.968-28.096 20.352-29.504 17.152-75.968 14.208 5.568 28.416 11.2 42.688 16.832-5.696-25.344-11.392-50.624-17.088-75.84 30.592 19.776 28.928 36.352 68.224 50.496 0-11.2 0-22.464 0-33.664 11.392 8.384 22.848 16.768 34.176 25.216 1.728-36.352 2.24-40.64 17.152-59.008 5.568 14.144 11.264 28.16 16.96 42.176 25.28-34.048 19.904 0.512 34.176-25.216 5.696-16.96 11.392-33.792 17.088-50.688 11.392 22.464 22.656 45.056 34.112 67.456 5.76-11.2 11.392-22.592 17.088-33.792 0 14.144 0 28.224 0 42.176 5.632-2.752 11.456-5.632 17.152-8.384 8.512-32.768 3.264-25.344 25.6-42.176 0 16.832 0 33.792 0 50.624 23.936-14.848 14.464-12.352 34.048-16.832 0 8.384 0 16.832 0 25.28 22.656-22.4 45.504-45.056 68.224-67.456-5.568 30.976-11.328 61.824-17.024 92.8 8.512-5.76 17.088-11.392 25.6-17.024 14.080-30.4 2.304-19.776 33.984-33.664-5.632 25.28-11.328 50.688-17.024 75.968 11.392-8.448 22.72-16.896 34.24-25.28-2.88 14.016-5.824 28.032-8.704 42.112 22.848-11.2 45.632-22.464 68.288-33.664-11.392 22.464-22.656 44.928-34.112 67.52 2.816 2.816 5.824 5.568 8.64 8.384 25.472-11.2 51.136-22.656 76.608-33.792 0 2.816 0 5.632 0 8.448-29.376 43.712-33.28 39.808-16.96 76.032 22.656-8.448 45.504-17.024 68.288-25.344 0 2.752 0 5.632 0 8.32-17.152 14.208-34.176 28.16-51.392 42.24 26.368 32.256 12.736-0.576 8.576 50.624 20.032-2.752 40-5.632 59.904-8.384-17.088 19.648-34.176 39.296-51.264 59.072 14.272-2.816 28.608-5.568 42.752-8.448-11.648 16-21.44 19.968-34.176 33.728 5.696 8.32 11.392 16.832 17.024 25.216 45.568-26.688 58.688-51.904 128-58.944 17.216 11.2 34.176 22.528 51.2 33.728v-490.944h-1023.936z", - "M769.6 339.84c-3.392-4.736-8.512-8.512-15.232-11.392s-14.208-4.352-22.272-4.352c-18.624 0-32.896 7.36-42.688 22.080v-19.136h-20.48v134.080h22.72v-73.152c0-17.216 3.52-28.864 10.56-35.008 6.976-6.144 15.36-9.216 25.088-9.216 6.080 0 11.328 1.344 15.808 4.096 4.48 2.688 7.68 6.4 9.408 10.944 1.728 4.608 2.624 11.52 2.624 20.8v81.536h22.72v-82.432c0-10.56-0.448-17.92-1.28-22.080-1.28-6.464-3.648-12.096-6.976-16.768z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-server-openbsd" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 312, - "id": 283, - "prevSize": 16, - "code": 59662, - "name": "it-server-openbsd" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 14 - }, - { - "icon": { - "paths": [ - "M797.952 299.072c5.824 5.824 11.648 11.584 17.408 17.408-12.032-16.64-0.896-5.12-17.408-17.408zM0 0v1024h1024v-1024h-1024zM214.656 273.024h17.344v8.704c-5.76 5.824-11.584 11.584-17.344 17.408h-8.768c2.88-8.768 5.824-17.472 8.768-26.112zM197.184 334.016c2.88 8.64 5.824 17.344 8.704 26.048h-8.704v-26.048zM571.648 647.36c-45.888-16.896-81.216-29.568-104.576-69.632 11.584 5.76 23.232 11.648 34.816 17.344-11.584-11.584-23.232-23.104-34.816-34.752-11.648 12.416-10.816 15.296-26.112 26.112-2.88-14.464-5.824-28.928-8.704-43.456 11.648-3.392 11.968-104.576 26.112-165.504 42.688-32.768 54.72-56.64 130.688-60.992 27.904 14.208 36.416 16.064 52.16 43.584-77.888-30.784-114.752 3.328-165.376 43.52-4.416 44.224-9.408 68.608 8.64 104.448 16.704 43.328 35.52 61.184 78.4 78.4 75.776 21.568 126.912-20.096 174.208-52.288 80.576-361.28-300.864-476.672-452.8-208.96-130.688 230.336 75.456 527.296 252.48 574.72v8.704h-52.288c-398.4-154.56-361.024-598.784-34.816-801.088 494.912-22.080 487.040 512.768 121.984 539.84zM615.104 534.144v8.832h-8.704c-8.704-2.944-17.408-5.888-26.176-8.832v-17.344c11.648 5.76 23.232 11.52 34.88 17.344zM667.264 447.168v-26.176c17.92 15.744 6.272 0.128 17.472 26.176h-17.472z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-server-debian" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 313, - "id": 282, - "prevSize": 16, - "code": 59663, - "name": "it-server-debian" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 15 - }, - { - "icon": { - "paths": [ - "M896 1024c70.848 0 128-57.152 128-128v-252.032l-379.968 380.032h251.968z", - "M896 0h-768c-70.912 0-128 57.088-128 128v768c0 70.848 57.088 128 128 128h417.984l478.016-480v-416c0-70.912-57.152-128-128-128zM340.032 570.624c0 2.304-1.728 3.52-5.248 3.52-6.976 0-30.272-1.728-80.896-1.728-55.296 0-80.32 1.728-86.72 1.728-2.88 0-4.672-1.216-4.672-3.52v-15.68c0-2.368 1.728-3.52 4.672-3.52h32.576c11.648 0 23.872-1.728 26.176-16.896 1.152-8.704 2.88-134.464 2.88-165.248v-40.768c0-13.952-1.728-118.72-2.304-127.488-1.152-13.952-6.976-19.776-29.12-19.776h-33.728c-2.88 0-4.608-1.152-4.608-3.52v-15.68c0-2.304 1.728-3.456 4.032-3.456 6.976 0 36.672 1.728 90.752 1.728 51.84 0 70.464-1.728 78.592-1.728 2.88 0 4.032 1.728 4.032 4.032v14.592c0 2.88-1.728 4.032-4.672 4.032h-27.264c-11.648 0-20.352 4.672-20.352 16.32 0 5.824-1.728 134.464-1.728 141.376v44.864c0 5.824 1.728 140.224 1.728 146.688 0 18.048 8.704 20.992 27.328 20.992h23.872c2.88 0 4.672 1.152 4.672 4.032v15.104zM561.728 570.624c0 2.304-1.728 3.52-5.248 3.52-6.976 0-30.272-1.728-80.896-1.728-55.296 0-80.32 1.728-86.72 1.728-2.88 0-4.672-1.216-4.672-3.52v-15.68c0-2.368 1.728-3.52 4.672-3.52h32.576c11.648 0 23.872-1.728 26.176-16.896 1.216-8.704 2.944-134.464 2.944-165.248v-40.768c0-13.952-1.728-118.72-2.304-127.488-1.152-13.952-6.976-19.776-29.12-19.776h-33.792c-2.88 0-4.608-1.152-4.608-3.52v-15.68c0-2.304 1.728-3.456 4.032-3.456 6.976 0 36.672 1.728 90.752 1.728 51.84 0 70.4-1.728 78.592-1.728 2.88 0 4.032 1.728 4.032 4.032v14.592c0 2.88-1.728 4.032-4.608 4.032h-27.264c-11.648 0-20.352 4.672-20.352 16.32 0 5.824-1.728 134.464-1.728 141.376v44.864c0 5.824 1.728 140.224 1.728 146.688 0 18.048 8.704 20.992 27.328 20.992h23.872c2.944 0 4.672 1.152 4.672 4.032v15.104zM755.008 581.12c-40.768 0-69.248-12.224-92.48-30.336-6.976-5.184-10.496-6.976-13.44-6.976-3.456 0-5.824 4.096-9.344 9.92-3.52 6.4-6.4 6.976-10.432 6.976-3.52 0-6.464-2.944-5.248-9.344 2.304-14.464 8.128-88.448 9.856-105.28 0.64-3.456 1.728-3.456 4.032-3.456l8.768 0.576c2.304 0 3.52 1.152 3.52 4.672 0.576 18.624 1.728 37.824 20.928 67.52 17.472 27.328 49.472 43.008 81.472 43.008 34.944 0 79.168-21.504 79.168-73.856 0-59.968-43.136-82.048-89.664-98.368-17.984-6.4-59.968-20.928-84.928-47.168-19.264-19.2-29.12-46.592-29.12-84.992 0-29.12 18.048-57.6 36.096-74.496 20.928-19.776 49.984-27.968 81.408-27.968 33.216 0 58.816 9.92 68.672 14.592 5.248 2.88 8.128 2.304 11.072-0.576l7.552-6.976c2.944-2.368 4.672-3.52 7.552-3.52 2.944 0 4.672 4.672 4.672 9.856 0 20.352 7.552 79.744 8.128 92.544 0 2.88-0.576 4.032-2.88 4.672l-6.848 1.792c-1.728 0.576-2.944 0-3.52-1.728-4.672-16.896-12.224-39.616-36.096-64.576-15.68-16.896-36.032-25.024-63.424-25.024-51.776 0-70.4 38.4-70.4 68.096 0 16.256 3.456 35.52 17.984 50.624 16.896 16.896 49.472 29.696 66.368 34.944 40.192 12.8 72.768 22.656 93.696 48.32 15.104 18.048 25.6 40.704 25.6 79.104-0 68.608-41.856 127.424-118.72 127.424z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-app-iis" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 314, - "id": 281, - "prevSize": 16, - "code": 59664, - "name": "it-app-iis" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 16 - }, - { - "icon": { - "paths": [ - "M896 1024c70.848 0 128-57.152 128-128v-252.032l-379.968 380.032h251.968z", - "M728.832 195.008h-418.624l201.792 140.992z", - "M832 170.688l-315.968 221.312-316.032-220.416v348.416h632z", - "M896 0h-768c-70.912 0-128 57.088-128 128v768c0 70.848 57.088 128 128 128h417.984l478.016-480v-416c0-70.912-57.152-128-128-128zM896 584h-760v-480h760v480z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-app-mailserver" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 315, - "id": 280, - "prevSize": 16, - "code": 59665, - "name": "it-app-mailserver" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 17 - }, - { - "icon": { - "paths": [ - "M896 1024c70.848 0 128-57.152 128-128v-252.032l-379.968 380.032h251.968z", - "M599.744 280.64c-9.664 0-17.664 4.352-24.064 13.184-6.464 8.768-9.6 22.016-9.6 39.872 0 18.432 2.496 32 7.424 40.832 6.976 12.416 16.256 18.688 27.84 18.688 8.896 0 16.448-4.416 22.656-13.312 6.272-8.896 9.344-22.848 9.344-41.92 0-20.288-3.136-34.944-9.408-43.904s-14.4-13.44-24.192-13.44z", - "M425.088 280.64c-8.832 0-16.064 3.776-21.76 11.2-5.76 7.488-8.576 17.6-8.448 30.464h60.16c-0.32-13.632-3.328-23.936-9.024-31.040-5.76-7.104-12.736-10.624-20.928-10.624z", - "M896 0h-768c-70.912 0-128 57.088-128 128v768c0 70.848 57.088 128 128 128h417.984l478.016-480v-416c0-70.912-57.152-128-128-128zM297.536 426.304h-44.928l-41.856-183.296-41.664 183.296h-46.016l-50.112-245.184h43.392l31.68 168.384 38.4-168.384h50.432l36.8 171.264 32.192-171.264h42.688l-51.008 245.184zM403.904 383.616c6.208 7.744 13.952 11.648 23.232 11.648 6.272 0 11.584-2.048 15.936-6.016 4.224-4.096 7.488-10.56 9.664-19.456l40.128 7.872c-5.184 17.152-13.312 30.208-24.448 39.232-11.136 8.96-25.024 13.44-41.728 13.44-26.496 0-46.016-10.048-58.752-30.272-10.048-16.192-15.040-36.608-15.040-61.248 0-29.44 6.592-52.48 19.776-69.184s29.824-25.024 49.984-25.024c22.656 0 40.448 8.704 53.568 26.176s19.328 44.16 18.752 80.192h-100.864c0.32 14.016 3.52 24.896 9.792 32.64zM656.128 405.76c-12.352 16.384-27.456 24.576-45.056 24.576-8.704 0-17.28-2.56-25.728-7.616s-15.808-12.544-21.824-22.528v26.112h-37.44v-245.184h40.32v88.32c12.352-16.512 27.136-24.768 44.096-24.768 18.496 0 33.792 7.808 45.952 23.488 12.096 15.68 18.176 38.144 18.176 67.456 0 30.4-6.208 53.76-18.496 70.144zM856.704 393.92c-6.4 11.584-15.552 20.544-27.584 26.944s-25.472 9.6-40.448 9.6c-19.072 0-34.944-3.264-47.808-9.728-12.8-6.464-22.912-16.192-30.272-29.184-7.232-12.992-11.136-27.648-11.52-44.032l26.176-2.688c1.28 12.224 4.096 22.336 8.704 30.208 4.544 7.872 11.584 14.208 21.12 19.072s20.288 7.296 32.256 7.296c10.56 0 19.968-1.856 28.032-5.504s14.208-8.704 18.112-15.104c4.032-6.464 5.952-13.376 5.952-20.992 0-7.68-1.856-14.4-5.696-20.16-3.904-5.76-10.112-10.56-18.944-14.464-5.632-2.56-18.112-6.592-37.376-11.968-19.328-5.376-32.832-10.496-40.576-15.296-9.984-6.144-17.472-13.76-22.464-22.848-4.864-9.088-7.36-19.264-7.36-30.528 0-12.352 3.008-23.936 9.088-34.688 6.016-10.752 14.784-18.944 26.304-24.512 11.584-5.568 24.448-8.384 38.592-8.384 15.552 0 29.312 2.944 41.216 8.768s21.056 14.464 27.456 25.856 9.792 24.256 10.304 38.656l-26.624 2.368c-1.408-15.488-6.336-27.2-14.592-35.136s-20.416-11.904-36.608-11.904c-16.832 0-29.056 3.584-36.736 10.816-7.68 7.168-11.52 15.872-11.52 25.984 0 8.832 2.688 16.064 8.192 21.76 5.312 5.696 19.328 11.52 41.856 17.472s38.080 11.2 46.528 15.616c12.16 6.592 21.248 14.912 27.072 25.024s8.768 21.696 8.768 34.88c0 12.992-3.2 25.28-9.6 36.8zM937.6 426.304h-29.376v-34.304h29.376v34.304zM1019.2 426.304h-29.376v-34.304h29.376v34.304z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-app-websphere" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 316, - "id": 279, - "prevSize": 16, - "code": 59666, - "name": "it-app-websphere" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 18 - }, - { - "icon": { - "paths": [ - "M896 1024c70.848 0 128-57.152 128-128v-252.032l-379.968 380.032h251.968z", - "M450.688 255.616c-14.656 0-27.648 6.848-38.848 20.544s-16.896 33.536-16.896 59.648c0 26.112 5.312 45.376 15.872 57.856s23.36 18.688 38.4 18.688c15.296 0 28.352-6.464 39.232-19.392 10.944-12.928 16.384-32.96 16.384-60.032 0-25.856-5.312-45.184-16-58.048s-23.36-19.264-38.144-19.264z", - "M203.2 185.472c-3.584 17.92-8.576 35.776-15.040 53.44l-30.72 82.112h94.912l-29.312-77.44c-8.896-23.552-15.488-42.944-19.84-58.112z", - "M624.64 354.112c-5.888 2.56-10.368 6.272-13.568 11.2s-4.736 10.368-4.736 16.32c0 9.216 3.456 16.832 10.368 22.912s17.152 9.152 30.528 9.152c13.248 0 25.024-2.88 35.328-8.704s17.856-13.696 22.72-23.808c3.712-7.744 5.504-19.2 5.504-34.368v-12.544c-12.416 5.12-31.168 9.408-56.128 12.992-14.144 2.048-24.128 4.352-30.016 6.848z", - "M896 0h-768c-70.912 0-128 57.088-128 128v768c0 70.848 57.088 128 128 128h417.984l478.016-480v-416c0-70.912-57.152-128-128-128zM296.384 436.032l-32.64-84.8h-117.056l-30.72 84.8h-39.36l107.52-280h39.872l114.56 280h-42.176zM528.704 389.184c-7.424 16.576-18.24 29.376-32.448 38.208-14.272 8.832-29.12 13.312-44.8 13.312-11.456 0-21.76-2.432-30.784-7.296-9.152-4.864-16.64-10.944-22.464-18.368v98.688h-34.368v-280.448h31.296v26.368c7.424-10.368 15.68-18.112 25.024-23.232s20.544-7.744 33.792-7.744c17.344 0 32.576 4.48 45.824 13.376s23.232 21.44 30.016 37.696c6.72 16.192 10.112 34.048 10.112 53.376 0 20.736-3.776 39.424-11.2 56.064zM720.512 436.032c-3.584-7.104-5.888-15.488-6.848-25.024-12.736 10.816-25.024 18.496-36.736 22.912-11.84 4.416-24.448 6.656-37.952 6.656-22.272 0-39.36-5.44-51.392-16.32-11.968-10.816-17.984-24.704-17.984-41.664 0-9.92 2.24-19.008 6.784-27.2 4.48-8.192 10.432-14.784 17.728-19.776 7.36-4.928 15.616-8.768 24.768-11.264 6.72-1.792 16.96-3.52 30.592-5.184 27.776-3.328 48.192-7.232 61.312-11.84 0.128-4.736 0.192-7.68 0.192-8.96 0-14.016-3.264-23.872-9.728-29.632-8.768-7.744-21.824-11.648-39.104-11.648-16.192 0-28.096 2.816-35.84 8.512-7.68 5.632-13.376 15.68-17.088 30.080l-33.664-4.544c3.072-14.4 8.064-26.048 15.040-34.88s17.152-15.68 30.4-20.416c13.248-4.736 28.544-7.168 46.080-7.168 17.344 0 31.36 2.048 42.176 6.144 10.816 4.032 18.752 9.216 23.872 15.36 5.056 6.144 8.64 13.952 10.688 23.36 1.152 5.888 1.664 16.448 1.664 31.744v45.824c0 32 0.768 52.16 2.24 60.672 1.408 8.448 4.288 16.576 8.704 24.32h-35.904zM847.744 436.032h-39.168v-39.104h39.168v39.104zM956.352 436.032h-39.168v-39.104h39.168v39.104z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-app-apache" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 317, - "id": 278, - "prevSize": 16, - "code": 59667, - "name": "it-app-apache" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 19 - }, - { - "icon": { - "paths": [ - "M900.032-3.968h-768c-70.912 0-128 57.088-128 128v768c0 70.848 57.088 128 128 128h417.984l478.016-480v-416c-0-70.912-57.152-128-128-128zM361.152 403.136c0 40.256-4.864 71.424-14.592 93.504s-25.152 38.976-46.272 50.56c-21.12 11.52-45.888 17.344-74.304 17.344-42.24 0-74.56-12.096-96.96-36.352-22.464-24.32-33.216-60.416-32.32-108.288l57.408-7.872c1.536 36.736 8.448 61.888 20.672 75.456s29.248 20.352 50.88 20.352c16 0 29.76-3.712 41.344-11.008s19.584-17.28 23.936-29.824c4.352-12.608 6.528-32.704 6.528-60.288v-331.328h63.68v327.744zM811.52 479.744c-9.472 19.392-21.248 34.304-35.264 44.8s-31.552 18.432-52.672 23.744c-21.12 5.376-46.912 8.064-77.568 8.064h-183.424v-480.96h180.416c36.736 0 66.24 4.864 88.448 14.592s39.616 24.704 52.16 44.928c12.544 20.224 18.88 41.408 18.88 63.488 0 20.544-5.568 39.936-16.768 58.048-11.136 18.176-28.032 32.832-50.496 43.968 29.056 8.512 51.456 23.104 67.072 43.648s23.424 44.864 23.424 72.832c0 22.592-4.736 43.52-14.208 62.848z", - "M707.84 342.272c-16.32-5.312-39.744-8-70.4-8h-111.232v165.376h119.808c20.544 0 35.008-0.768 43.328-2.304 14.656-2.624 26.88-6.976 36.736-13.12 9.792-6.144 17.856-15.040 24.256-26.752s9.472-25.216 9.472-40.512c0-17.92-4.544-33.536-13.76-46.784-9.152-13.248-21.952-22.528-38.208-27.904z", - "M690.944 271.936c16.192-4.8 28.352-12.8 36.544-24s12.288-25.152 12.288-41.984c0-15.936-3.84-30.016-11.52-42.176-7.616-12.096-18.56-20.416-32.832-24.96-14.208-4.48-38.592-6.72-73.152-6.72h-96.064v145.344h104c28.224 0 48.448-1.792 60.736-5.504z", - "M900.032 1020.032c70.848 0 128-57.152 128-128v-252.032l-379.968 380.032h251.968z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-app-jboss" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 318, - "id": 277, - "prevSize": 16, - "code": 59668, - "name": "it-app-jboss" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 20 - }, - { - "icon": { - "paths": [ - "M399.965 340.713h-172.125l-227.84 387.398 88.343 2.56 51.293-100.119h223.139l41.053 99.98h182.132l-185.996-389.818zM173.009 561.385l82.060-138.612 73.123 138.519-155.183 0.093z", - "M590.988 426.636l100.119-44.87h29.51v343.692h-85.876v-243.665h-42.356z", - "M970.799 381.766h-150.388c-28.207 0-51.153 22.854-51.153 51.107v241.478c0 28.253 22.9 51.153 51.153 51.153h150.388c28.207 0 51.153-22.854 51.153-51.153v-241.524c0-28.207-22.854-51.060-51.153-51.060zM941.196 635.718c0 24.716-20.154 44.87-44.87 44.87-24.762 0-44.916-20.154-44.916-44.87v-161.652c0-24.809 20.154-44.87 44.916-44.87 24.716 0 44.87 20.061 44.87 44.87v161.652z" - ], - "attrs": [ - { - "fill": "rgb(24, 49, 109)" - }, - { - "fill": "rgb(24, 49, 109)" - }, - { - "fill": "rgb(24, 49, 109)" - } - ], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-a10bala" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [ - 0, - 0, - 0 - ] - } - }, - "attrs": [ - { - "fill": "rgb(24, 49, 109)" - }, - { - "fill": "rgb(24, 49, 109)" - }, - { - "fill": "rgb(24, 49, 109)" - } - ], - "properties": { - "order": 319, - "id": 276, - "prevSize": 16, - "code": 59669, - "name": "it-other-a10bala" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 21 - }, - { - "icon": { - "paths": [ - "M176.567 573.586c11.703-14.263 27.721-67.584 27.721-67.584v-92.745l-103.424-9.874-100.864 10.898v92.745c0 0 15.945 53.321 27.794 67.803 39.058 48.421 53.979 63.415 73.070 83.017h1.463v-1.097h1.317c18.798-19.529 33.792-34.45 72.923-83.163zM103.131 617.179h-1.024v0.878h-1.024c-14.775-15.36-26.478-16.311-57.198-54.199-9.143-11.557-21.723-53.248-21.723-53.248v-72.485l78.921-8.631 80.896 7.826v72.485c0 0-12.434 41.618-21.577 52.882-30.72 38.181-42.423 39.205-57.271 54.491z", - "M166.4 454.144l-65.097-6.217-63.415 6.875v58.368c0 0 10.021 33.499 17.481 42.642 24.576 30.574 34.085 31.451 45.934 43.593h0.878v-0.731h0.878c11.776-12.069 21.285-12.946 45.934-43.52 7.461-8.997 17.408-42.642 17.408-42.642v-58.368z", - "M901.12 498.395c67.584 0 122.441-22.455 122.441-50.395 0-0.293 0-0.512 0-0.805 0-0.146 0-0.585 0-0.805-1.682-27.209-56.027-48.933-122.441-48.933-67.438 0.146-122.295 22.747-122.295 50.542 0 27.867 54.857 50.395 122.295 50.395z", - "M901.632 509.806c-67.511 0-122.368-22.601-122.368-50.395 0-1.682-0.731-6.949-0.878-10.167v31.525c0.439 4.754 0.878 9.874 0.878 12.142 0 27.794 54.857 50.469 122.368 50.469 67.584 0 122.368-22.674 122.368-50.469v-33.573c0 27.867-54.784 50.469-122.368 50.469z", - "M901.632 558.738c-67.511 0-122.368-22.747-122.368-50.395 0-1.609-0.731-6.583-0.878-9.655v29.403c0.439 4.827 0.878 9.874 0.878 12.069 0 28.087 54.857 50.542 122.368 50.542 67.584-0.146 122.368-22.528 122.368-50.688v-31.817c0 27.794-54.784 50.542-122.368 50.542z", - "M901.632 605.842c-67.511 0-122.368-22.455-122.368-50.395 0-1.536-0.731-6.583-0.878-9.728v31.013c0.146 1.024 0.439 2.267 0.439 2.999 0 28.014 54.857 50.395 122.295 50.395 67.584 0 122.441-22.601 122.441-50.395 0-0.731 0.219-1.975 0.439-2.999v-21.285c0 27.867-54.784 50.395-122.368 50.395z", - "M623.835 37.522c0-20.699-17.701-37.376-39.57-37.376h-94.427c-21.87-0.073-39.643 16.677-39.643 37.376v54.711h173.568l0.073-54.711z", - "M450.267 247.369c0 20.626 17.701 37.376 39.57 37.376h94.501c21.943 0 39.57-16.75 39.57-37.376v-136.411h-173.641v136.411zM537.015 194.341c8.85 0 16.018 6.729 16.018 15.067s-7.168 14.994-16.018 14.994c-8.704 0-15.872-6.802-15.872-15.067s7.022-14.994 15.872-14.994z", - "M669.769 858.258c0 10.018-56.62 18.139-126.464 18.139s-126.464-8.121-126.464-18.139c0-10.018 56.62-18.139 126.464-18.139s126.464 8.121 126.464 18.139z", - "M418.67 874.496v121.051c0 0 27.721 28.306 128.512 28.453 106.423 0 122.661-28.453 122.661-28.453v-121.051c0 0-68.608 11.849-124.343 11.849-66.487 0.073-126.83-11.849-126.83-11.849zM501.979 965.559v0h-16.018v16.238l-25.673-24.43 25.673-23.771v16.165h16.018v15.799zM540.745 1009.737l-25.746-24.283h16.969v-15.141h16.896v15.141h16.969l-25.088 24.283zM578.926 949.687h16.018v-16.165l25.673 23.845-25.673 24.283v-16.165h-16.018v-15.799zM548.864 930.158v15.067h-16.969v-15.067h-16.969l25.673-24.357 25.234 24.357h-16.969z", - "M382.025 154.697l-23.406-53.687c-18.139 7.973-35.621 16.896-52.224 26.99l30.208 50.103c14.482-8.777 29.623-16.603 45.422-23.406z", - "M281.819 217.673l-38.181-44.325c-19.529 16.823-37.742 35.401-54.199 55.296l45.056 37.303c14.409-17.408 30.354-33.646 47.323-48.274z", - "M196.096 321.829l-50.761-29.111c-9.655 16.969-18.286 34.597-25.746 52.663l54.053 22.309c6.51-15.653 13.97-31.086 22.455-45.861z", - "M909.897 367.689l54.126-22.309c-7.607-18.359-16.091-35.986-25.746-52.736l-50.688 29.038c8.411 14.702 15.799 30.062 22.309 46.007z", - "M893.294 227.328c-16.823-20.334-35.547-39.351-55.808-56.466l-37.888 44.544c17.481 14.994 33.865 31.525 48.494 49.225l45.202-37.303z", - "M697.125 152.357c15.799 6.656 31.013 14.263 45.641 22.894l29.55-50.469c-16.75-9.801-34.304-18.578-52.37-26.258l-22.821 53.833z", - "M697.051 885.102l22.967 53.833c18.139-7.753 35.547-16.53 52.297-26.112l-29.257-50.688c-14.702 8.411-29.989 16.165-46.007 22.967z", - "M798.354 823.15l37.595 44.837c19.749-16.603 38.181-34.962 54.93-54.711l-44.544-37.888c-14.702 17.335-30.866 33.426-47.982 47.762z", - "M885.321 720.018l50.542 29.403c9.801-16.75 18.505-34.231 26.185-52.224l-53.833-22.967c-6.656 15.726-14.19 31.013-22.894 45.787z", - "M175.543 674.231l-53.76 22.967c7.753 18.139 16.53 35.547 26.112 52.224l50.615-29.257c-8.485-14.629-16.165-30.062-22.967-45.934z", - "M191.561 811.593c16.018 19.383 33.938 37.595 53.321 54.053l38.034-44.398c-16.823-14.409-32.402-30.208-46.299-46.958l-45.056 37.303z", - "M306.542 910.19c16.75 10.094 34.231 19.090 52.005 26.843l23.406-53.541c-15.506-6.802-30.72-14.629-45.422-23.406l-29.989 50.103z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "NFV" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 320, - "id": 275, - "prevSize": 16, - "code": 59670, - "name": "NFV" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 22 - }, - { - "icon": { - "paths": [ - "M785.481 880.786h-555.081l92.306-294.766h203.703v-73.143h-257.39l-78.921 252.050-102.619-420.937v-63.561h225.134l81.993 85.797h247.589v-73.143h-216.283l-81.993-85.797h-329.582v141.093l146.578 605.55h655.872l100.718-105.399-52.882-50.615z", - "M1020.050 696.393c-13.239-39.936-56.466-61.952-96.768-48.64-28.965 9.655-47.909 34.816-51.639 63.195l-264.558-0.293c-0.731-4.169-1.609-8.265-2.853-12.288-4.096-12.142-10.971-22.235-19.383-30.501l160.841-265.874c16.018 5.998 33.938 7.168 51.273 1.39 40.155-13.312 61.879-56.686 48.494-96.914-13.312-40.155-56.539-61.952-96.768-48.64-40.082 13.312-61.806 56.686-48.567 96.841 3.73 11.118 9.801 20.846 17.554 28.745l-161.573 266.606c-15.287-5.266-32.037-5.998-48.64-0.585-40.155 13.312-61.952 56.613-48.64 96.768 13.312 40.302 56.613 62.025 96.841 48.64 24.576-8.119 42.13-27.502 49.152-50.469l269.824 0.219c13.312 40.155 56.686 61.879 96.695 48.567 40.302-13.385 62.025-56.686 48.713-96.768z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "VNFM" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 321, - "id": 274, - "prevSize": 16, - "code": 59671, - "name": "VNFM" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 23 - }, - { - "icon": { - "paths": [ - "M706.267 645.632c-29.989 0-55.589 17.627-67.73 42.935l-246.93-81.993c0.805-4.023 1.317-8.119 1.317-12.507 0-12.361-3.365-24.064-8.631-34.523l232.448-198.29c13.166 10.533 29.403 17.042 47.25 17.042 41.545 0 75.41-33.719 75.41-75.337 0-41.545-33.865-75.264-75.41-75.264-41.618 0-75.337 33.719-75.337 75.337 0 11.63 2.779 22.455 7.534 32.256l-233.253 198.949c-12.654-9.728-28.233-15.579-45.275-15.579-41.691 0-75.41 33.646-75.41 75.264 0 41.691 33.719 75.264 75.41 75.264 25.454 0 47.835-12.434 61.513-31.89l251.831 83.749c0 41.618 33.719 75.264 75.264 75.264 41.691 0 75.557-33.646 75.557-75.264-0.073-41.618-33.792-75.41-75.557-75.41z", - "M512 0c-282.258 0-512 229.742-512 512 0 282.331 229.742 512 512 512 282.331 0 512-229.669 512-512 0-282.258-229.669-512-512-512zM512 950.857c-242.030 0-438.857-196.827-438.857-438.857s196.827-438.857 438.857-438.857 438.857 196.827 438.857 438.857-196.827 438.857-438.857 438.857z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "VNF" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 322, - "id": 273, - "prevSize": 16, - "code": 59672, - "name": "VNF" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 24 - }, - { - "icon": { - "paths": [ - "M536.869 599.698c-24.21 0-44.763 14.19-54.638 34.597l-198.729-66.048c0.585-3.218 1.024-6.583 1.024-10.094 0-9.947-2.706-19.383-6.949-27.721l187.246-159.671c10.533 8.485 23.625 13.751 38.034 13.751 33.499 0 60.709-27.209 60.709-60.709s-27.209-60.709-60.709-60.709-60.709 27.282-60.709 60.782c0 9.362 2.194 18.066 5.998 25.966l-187.831 160.183c-10.167-7.826-22.674-12.581-36.425-12.581-33.499 0-60.709 27.136-60.709 60.635s27.209 60.635 60.709 60.635c20.48 0 38.546-10.021 49.518-25.673l202.752 67.365c0 33.573 27.209 60.635 60.709 60.635s60.782-27.063 60.782-60.635c-0.073-33.499-27.209-60.709-60.782-60.709z", - "M1024 360.594l-192.073-99.547-192.146 99.547 192.146 99.621 192.073-99.621zM831.927 299.666l117.321 60.928-117.321 60.928-117.467-60.928 117.467-60.928z", - "M831.927 551.278l-105.253-54.638h-74.679l179.931 93.33 179.931-93.33h-74.679z", - "M831.927 681.106l-105.253-54.784h-74.679l179.931 93.403 179.931-93.403h-74.679z", - "M821.394 822.857c-79.36 79.067-188.782 128-309.394 128-242.030 0-438.857-196.827-438.857-438.857s196.827-438.857 438.857-438.857c97.792 0 187.904 32.549 260.974 86.894h109.861c-93.33-98.304-224.914-160.037-370.834-160.037-282.331 0-512 229.669-512 512 0 282.258 229.669 512 512 512 165.376 0 312.247-79.141 405.87-201.143h-96.475z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "VNFC" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 323, - "id": 272, - "prevSize": 16, - "code": 59673, - "name": "VNFC" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 25 - }, - { - "icon": { - "paths": [ - "M992.11 634.734l-49.591-20.773c1.097-10.167 3.072-19.968 3.072-30.354 0-10.459-1.829-20.041-3.072-30.135l49.737-20.919c26.917-11.337 39.058-44.178 27.063-73.509l-14.994-36.571c-11.922-29.403-43.447-43.959-70.363-32.549l-49.591 20.773c-9.582-12.361-20.261-23.845-32.11-34.377l22.894-49.079c12.361-26.697-0.366-59.246-28.745-72.85l-35.401-16.75c-28.16-13.531-61.147-2.926-73.435 23.771l-4.169 8.85h-122.88l-4.169-8.923c-12.434-26.697-45.349-37.303-73.509-23.771l-35.401 16.823c-8.046 3.877-14.409 9.435-19.749 15.799h-69.266l-81.993-85.797h-329.655v141.166l146.578 605.623h394.24c14.043 5.339 28.599 5.12 41.253 0h186.149c14.117 5.705 30.647 6.071 46.007-1.317l35.328-17.115c25.088-11.776 36.864-38.546 30.939-63.049l22.821-23.845-42.423-40.594c9.509-9.070 18.578-18.432 26.77-28.745l49.371 20.919c26.917 11.191 58.514-3.218 70.437-32.622l14.994-36.498c12.142-29.55-0.219-62.098-27.136-73.582zM400.384 563.127c-0.951 6.729-2.048 13.458-2.048 20.48 0 10.459 1.975 20.187 3.072 30.501l-49.664 20.773c-26.917 11.337-39.131 43.886-27.136 73.435l15.141 36.498c11.849 29.403 43.447 43.886 70.29 32.622l49.371-20.626c9.728 12.288 20.48 23.698 32.037 34.231l-22.821 49.079c-2.706 5.778-3.657 11.849-4.096 17.92h-251.611l92.306-294.912h95.159zM841.070 583.753c0 94.574-75.776 171.593-169.033 171.593-93.477 0-169.179-77.019-169.179-171.593 0-7.095 1.243-13.824 2.048-20.699h4.096v-22.674c19.017-73.801 84.48-128.366 163.109-128.366 93.184 0 168.96 76.727 168.96 171.739zM715.118 857.966h-10.094c3.218-0.512 6.583-0.512 9.728-1.024l0.366 1.024zM638.683 857.966h-10.094l0.512-1.024c3.145 0.585 6.437 0.585 9.582 1.024zM69.925 257.536h225.207l81.993 85.797h99.035l15.287 32.914c-11.703 10.533-22.382 22.016-32.11 34.377l-49.445-20.699c-26.843-11.337-58.368 3.145-70.217 32.549l-15.067 36.571c-4.242 10.313-4.535 20.846-3.145 30.939h-69.998l-78.921 252.197-102.619-421.010v-63.634z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "VIM" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 324, - "id": 271, - "prevSize": 16, - "code": 59674, - "name": "VIM" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 26 - }, - { - "icon": { - "paths": [ - "M153.161 185.125h315.465v73.143h-315.465v-73.143z", - "M153.161 331.41h315.465v73.143h-315.465v-73.143z", - "M360.009 572.562c0 27.146-22.006 49.152-49.152 49.152s-49.152-22.006-49.152-49.152c0-27.146 22.006-49.152 49.152-49.152s49.152 22.006 49.152 49.152z", - "M429.714 779.849h-237.714c-15.799 0-28.599 16.384-28.599 36.571s12.8 36.571 28.599 36.571h237.714c15.799 0 28.599-16.384 28.599-36.571s-12.8-36.571-28.599-36.571z", - "M951.589 841.143h-38.034c-40.009 0-72.411 32.402-72.411 72.485v12.288h-103.424v-377.929h104.96c5.705 34.304 34.158 60.928 70.071 60.928h38.034c40.009 0 72.411-32.402 72.411-72.411v-38.034c0-40.009-32.402-72.485-72.411-72.485h-38.034c-40.009 0-72.411 32.402-72.411 72.485v12.873h-102.546v-386.999h105.179c6.363 33.499 34.45 59.392 69.778 59.392h38.034c40.009 0 72.411-32.402 72.411-72.485v-37.961c0-40.009-32.402-72.485-72.411-72.485h-38.034c-40.009 0-72.411 32.402-72.411 72.485v14.482h-119.369v0.219h-19.822v423.424h-79.433v-406.894c0-57.637-45.568-104.521-101.669-104.521h-418.45c-56.027 0-101.595 46.885-101.595 104.521v815.031c0 57.563 45.568 104.448 101.595 104.448h418.45c56.101 0 101.669-46.885 101.669-104.521v-371.566h79.433v414.354h19.822v0.219h122.368c5.413 34.597 34.085 61.513 70.217 61.513h38.034c40.009 0 72.411-32.402 72.411-72.411v-37.961c0-40.082-32.402-72.485-72.411-72.485zM548.571 919.479c0 17.335-12.8 31.378-28.526 31.378h-418.45c-15.726 0-28.453-14.043-28.453-31.378v-814.958c0-17.335 12.727-31.378 28.453-31.378h418.45c15.726 0 28.526 14.043 28.526 31.378v814.958z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "VDU" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 325, - "id": 270, - "prevSize": 16, - "code": 59675, - "name": "VDU" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 27 - }, - { - "icon": { - "paths": [ - "M336.238 185.125h315.465v73.143h-315.465v-73.143z", - "M703.122 0h-418.45c-56.027 0-101.595 46.885-101.595 104.521v815.031c0 57.563 45.568 104.448 101.595 104.448h418.523c56.101 0 101.669-46.885 101.669-104.521v-814.958c-0.073-57.637-45.641-104.521-101.742-104.521zM731.648 919.479c0 17.262-12.8 31.378-28.526 31.378h-418.45c-15.653 0-28.453-14.043-28.453-31.378v-814.958c0-17.335 12.727-31.378 28.453-31.378h418.523c15.726 0 28.526 14.043 28.526 31.378v814.958z", - "M336.238 331.41h315.465v73.143h-315.465v-73.143z", - "M543.086 572.562c0 27.146-22.006 49.152-49.152 49.152s-49.152-22.006-49.152-49.152c0-27.146 22.006-49.152 49.152-49.152s49.152 22.006 49.152 49.152z", - "M612.791 779.849h-237.714c-15.799 0-28.599 16.384-28.599 36.571s12.8 36.571 28.599 36.571h237.714c15.799 0 28.599-16.384 28.599-36.571s-12.8-36.571-28.599-36.571z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "host" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 326, - "id": 269, - "prevSize": 16, - "code": 59676, - "name": "host" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 28 - }, - { - "icon": { - "paths": [ - "M512 0c-282.331 0-512 229.669-512 512 0 239.031 164.864 439.808 386.779 495.835 0.366 0.585 1.097 1.536 1.317 1.755l1.463-1.097c39.278 9.801 80.165 15.506 122.441 15.506 282.258 0 512-229.742 512-512 0-282.331-229.742-512-512-512zM469.358 888.832c-11.995-14.775-29.477-24.869-49.957-24.869-15.799 0-29.769 6.363-41.106 15.726-3.145-6.29-6.363-12.434-9.582-19.237 43.081-19.383 92.891-47.982 145.701-90.478 8.631 4.242 18.066 7.168 28.379 7.168 24.576 0 45.129-14.117 56.247-34.158 135.753-12.507 248.174-65.024 320.366-108.617 4.315 1.17 8.485 2.341 13.093 2.633-5.047 16.969-11.045 33.499-18.066 49.591-56.174 36.279-192.366 123.026-242.249 143.579-53.029 21.87-143.726 44.837-202.825 58.661zM82.798 420.937l4.974 5.705c0.878-0.805 64.219-52.955 183.735-90.77-17.554 46.226-30.574 95.232-35.474 145.92-3.291 34.597-3.584 68.315-1.682 101.083-1.463 0.805-2.779 1.829-4.169 2.779-70.949-47.909-123.904-101.083-152.503-133.047 1.463-10.679 2.926-21.358 5.12-31.671zM512 73.143c77.019 0 149.358 20.041 212.261 55.003-1.536 26.551-4.901 67.218-11.41 115.054-6.29 3.365-12.142 7.314-16.969 12.434-62.757-11.63-133.12-18.871-207.506-16.018-36.059 1.463-69.851 4.681-101.449 9.289-1.243-2.341-2.926-4.389-4.389-6.51 45.787-76.507 97.719-136.777 128-169.179 0.512 0 0.951-0.073 1.463-0.073zM934.107 393.435c10.533 37.303 16.53 76.434 16.677 116.955-4.901-1.17-9.582-2.926-14.775-2.926-35.986 0-65.17 29.111-65.17 65.17 0 7.022 1.902 13.531 4.023 19.822-64.585 37.23-158.427 78.921-268.873 91.355 2.56-2.926 5.193-5.413 7.826-8.338 72.119-80.603 113.737-201.509 137.801-312.174 16.969-2.267 31.525-10.679 41.691-23.406 81.774 24.503 135.241 50.761 140.8 53.541zM292.791 577.682c-1.682-29.403-1.463-59.538 1.463-90.331 4.754-49.591 18.651-97.719 37.157-143.141 24.795-0.512 45.714-14.994 56.247-35.694 32.037-4.974 65.975-8.923 102.985-10.386 67.365-2.56 131.877 4.096 190.098 14.775 2.414 11.703 7.095 22.382 14.921 30.866-22.016 104.96-59.977 219.502-125.44 292.718-4.242 4.681-8.411 8.777-12.654 13.385-4.827-1.243-9.509-2.999-14.702-2.999-25.893 0-47.762 15.36-58.295 37.23-54.857-5.851-106.203-20.992-152.942-41.765 0.146-1.536 0.951-2.926 0.951-4.608-0-26.99-16.384-50.176-39.79-60.050zM457.435 739.767c-40.667 30.208-78.775 51.566-112.128 66.633-13.019-32.841-25.088-69.413-34.523-108.91 45.056 19.602 94.062 34.67 146.651 42.277zM904.119 316.123c-25.893-10.533-59.611-22.747-99.401-34.45-5.12-17.262-16.603-31.305-32.329-39.278 3.803-28.891 6.363-54.93 8.119-76.873 51.712 40.229 94.062 91.648 123.611 150.601zM424.594 81.92c-29.038 34.889-62.683 79.872-93.915 132.389-0.146 0-0.293-0.146-0.439-0.146-34.962 0-62.83 27.575-64.512 62.098-69.632 20.773-122.88 45.861-158.72 66.926 55.369-132.389 173.787-232.082 317.586-261.266zM74.24 534.162c32.475 31.89 75.703 69.339 128.146 104.082 0.219 29.842 20.919 53.906 48.494 61.221 10.386 46.811 24.283 89.893 39.497 128.146-37.595 11.849-61.879 14.263-66.414 14.629-86.967-75.922-143.506-185.417-149.723-308.078zM288.987 889.271c7.68-2.048 15.945-4.535 24.722-7.387 4.608 9.728 9.216 18.944 13.751 27.721-13.239-6.144-26.039-12.873-38.473-20.334zM512 950.857c-10.679 0-21.065-0.878-31.525-1.536 0.366-1.024 0.366-2.048 0.658-3.072 60.709-14.19 155.648-38.107 213.504-62.098 31.086-12.873 89.6-47.177 144.896-81.115-80.384 90.478-197.266 147.822-327.534 147.822z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "NS" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 327, - "id": 268, - "prevSize": 16, - "code": 59677, - "name": "NS" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 29 - }, - { - "icon": { - "paths": [ - "M86 0v80h268v324h140v92h-208v-346h-286v874h286v-388h208v34h286v-520h-286v172h-80v-322zM580 0v80h264v590h60v-670zM690 738.578c-34.861 0.001-62.608 12.688-84 38s-32 60.25-32 106c-0 43.25 10.721 77.061 32 102s48.95 38 82 38c26.711 0 48.626-7.439 66-22s28.53-36 36-66l-48-18c-4.188 20.125-12.379 34.624-22 44-9.621 9.356-20.644 14-34 14-18.11 0-32.682-7.25-44-22s-16-39.25-16-74c-0-32.75 4.512-55.375 16-70s27.551-21.999 46-22c13.356 0.001 24.662 3.75 34 12s15.057 19.75 18 34l50-14c-5.66-21.999-14.682-38.249-26-50-19.015-19.875-43.553-29.999-74-30zM920 738.578c-19.128 0.001-34.474 3.624-48 10s-24.813 15.812-32 28c-7.187 12.188-10 24-10 38 0 21.75 6.72 40.875 22 56 10.866 10.75 31.062 20.625 58 28 20.939 5.751 34.114 9.747 40 12 8.602 3.375 14.548 7.44 18 12 3.452 4.563 6 9.503 6 16-0 10.125-5.795 18.434-14 26-8.206 7.573-19.815 12-36 12-15.28 0-27.002-5.499-36-14-8.998-8.497-15.057-21.875-18-40l-50 6c3.283 30.75 15.135 53.939 32 70 16.865 16.068 40.535 24 72 24 21.618 0 39.512-3.341 54-10 14.487-6.685 26.077-16.253 34-30s12-28.25 12-44c-0-17.375-3.379-32.188-10-44s-16.286-21.187-28-28c-11.715-6.813-29.552-13.624-54-20-24.448-6.374-39.662-12.122-46-18-4.98-4.625-8-11.496-8-18-0-7.125 2.68-11.749 8-16 8.262-6.622 19.399-10 34-10 14.148 0 24.926 3.812 32 10s11.85 15.875 14 30l50-2c-0.792-25.25-8.211-46.874-24-62-15.789-15.124-40.761-21.999-72-22zM324 742.578l90 276h54l88-276h-52l-62 204-62-204z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-cluster-vcs" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 328, - "id": 267, - "prevSize": 16, - "code": 59678, - "name": "it-cluster-vcs" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 30 - }, - { - "icon": { - "paths": [ - "M96 0c-53.411 0-96 46.841-96 106v354c0 59.159 42.589 108 96 108h832c53.411 0 96-48.841 96-108v-354c0-59.159-42.589-106-96-106h-832zM76 74h872v420h-872v-420zM128 148v132h338v-132h-338zM546 148v132h338v-132h-338zM126 326v130h338v-130h-338zM546 326v130h338v-130h-338zM68 616v322h244v-54h-180v-88h162v-54h-162v-72h174v-54h-238zM334 616l116 322h68l116-322h-70l-78 238-82-238h-70zM758 616l-124 322h68l28-74h128l28 74h70l-128-322h-70zM792 692l44 118h-86l42-118z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-diskraid-hpeva" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 329, - "id": 266, - "prevSize": 16, - "code": 59679, - "name": "it-diskraid-hpeva" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 31 - }, - { - "icon": { - "paths": [ - "M96 0c-53.411 0-96 46.841-96 106v354c0 59.159 42.589 108 96 108h832c53.411 0 96-48.841 96-108v-354c0-59.159-42.589-106-96-106zM76 74h872v420h-872zM128 148v132h338v-132zM546 148v132h338v-132zM126 326v130h338v-130zM546 326v130h338v-130zM142 625.254v56h142l-160 220v62h246v-58h-172l166-228v-52zM388 625.254v56h90v282h62v-282h90v-56zM670 625.254v338h230v-58h-170v-92h152v-56h-152v-76h164v-56z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-diskraid-zte" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 330, - "id": 265, - "prevSize": 16, - "code": 59680, - "name": "it-diskraid-zte" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 32 - }, - { - "icon": { - "paths": [ - "M68 0c-37.728 0-68 30.272-68 68v888c0 37.728 30.272 68 68 68h888c37.728 0 68-30.272 68-68v-888c0-37.728-30.272-68-68-68h-888zM242 64h104v112h352v-112h102v112h160v56h-18v176h18v490h-160v62h-102v-62h-352v62h-104v-62h-178v-490h320v-176h-320v-56h178v-112zM488 232v176h352v-176h-352zM768 480c-39.586 0-71.709 16.469-96 46s-36 70.625-36 124c-0 50.458 11.837 88.906 36 118s56.47 44 94 44c30.332 0 54.271-7.010 74-24s33.517-43 42-78l-54-20c-4.756 23.479-13.076 39.063-24 50s-24.834 18-40 18c-20.564 0-37.148-8.792-50-26s-18-47.458-18-88c-0-38.208 4.955-64.937 18-82s31.050-26 52-26c15.166 0 27.396 4.375 38 14s18.658 23.375 22 40l56-16c-6.427-25.666-17.148-44.291-30-58-21.593-23.187-49.427-36-84-36zM142 486v322h56v-142h112v142h58v-322h-58v126h-112v-126h-56zM504 486c-15.552 0-29.469 3.365-42 10s-22.995 14.407-30 26c-7.005 11.594-12.53 26.604-16 46l50 10c1.414-14 5.445-24.708 12-32s14.746-10 24-10c9.382 0 16.345 3.584 22 10s10 15.209 10 26c-0 12.688-4.289 22.344-12 30s-19.348 10.438-34 10l-6 50c9.639-3.062 19.060-4 26-4 10.539 0 18.674 4.959 26 14s10 20.542 10 36c-0 16.333-2.353 30.375-10 40s-16.818 14-28 14c-10.411 0-20.674-3.979-28-12s-10.329-20.833-12-36l-54 8c2.699 26.979 13.163 49.302 30 66s38.423 24 64 24c26.99 0 49.878-10.167 68-30s26-43.854 26-72c-0-19.396-4.297-34.292-14-48s-21.806-24.062-38-28c27.119-16.771 40-37.854 40-66-0-19.833-6.762-38.25-20-54-16.066-19.25-37.395-28-64-28z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-firewall-h3c" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 331, - "id": 264, - "prevSize": 16, - "code": 59681, - "name": "it-firewall-h3c" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 33 - }, - { - "icon": { - "paths": [ - "M136 0c-75.55 0-136 60.45-136 136v410h1024v-410c0-75.55-60.45-136-136-136h-752zM92 88h72v408h-72v-408zM232 88h142c28.247 0.001 50.12 1.312 64 4s27.042 7.469 38 16c10.958 8.532 18.694 19.812 26 34 7.305 14.189 12 30.381 12 48-0 19.103-4.99 36.050-14 52s-20.578 28.025-36 36c21.753 7.233 38.311 20.566 50 38s16 36.445 16 60c-0 18.547-2.451 36.473-10 54s-18.932 31.521-32 42c-13.069 10.479-28.844 17.589-48 20-12.013 1.484-40.058 3.624-86 4h-122v-408zM592 88h108l64 278 64-278h108v408h-68v-322l-70 322h-70l-70-322v322h-66v-408zM304 156v94h48c28.085 0.001 45.181-1.090 52-2 12.338-1.669 20.938-5.934 28-14 7.062-8.068 12-18.832 12-32-0-12.612-3.912-24.117-10-32s-13.987-12.331-26-14c-7.143-0.93-28.071 0-62 0h-42zM304 318v108h66c25.974 0 43.019-0.331 50-2 10.714-2.223 19.263-7.375 26-16s10-21.534 10-36c-0-12.241-2.805-21.468-8-30s-12.179-14.105-22-18c-9.822-3.892-31.207-6-64-6h-58zM396 594v274h94c35.375-0.256 56.75-0.976 66-2 14.75-1.626 27.937-4.941 38-12 10.062-7.066 18.187-16.186 24-28s8-25.501 8-38c-0-15.878-3-28.25-12-40s-23.25-21.136-40-26c11.875-5.37 21.062-13.248 28-24 6.937-10.746 12-23.123 12-36-0-11.872-4.375-22.438-10-32s-11.563-16.24-20-22c-8.438-5.779-19.313-10.208-30-12s-26.25-2-48-2h-110zM452 640h32c26.125 0 42.5-0.64 48 0 9.25 1.126 15.312 4.688 20 10s8 11.494 8 20c-0 8.87-2.563 16.56-8 22-5.438 5.427-14.5 8.848-24 10-5.25 0.96-18.375 0-40 0h-36v-62zM452 748h44c25.25 0 42.437 1.376 50 4s14 8.24 18 14c4 5.754 6 11.75 6 20-0 9.754-2.813 18.176-8 24-5.188 5.786-11.75 8.464-20 10-5.375 1.024-18 2-38 2h-52v-74zM0 886v2c0 75.55 60.45 136 136 136h752c75.55 0 136-60.45 136-136v-2h-1024z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-ibm-blade" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 332, - "id": 263, - "prevSize": 16, - "code": 59682, - "name": "it-other-ibm-blade" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 34 - }, - { - "icon": { - "paths": [ - "M887.994 0h-751.988c-75.59 0-136.006 60.416-136.006 136.006v751.988c0 75.543 60.416 136.006 136.006 136.006h751.988c75.543 0 136.006-60.463 136.006-136.006v-751.988c0-75.59-60.463-136.006-136.006-136.006zM405.923 688.454c-12.567 19.363-30.627 34.49-54.179 45.242-23.505 10.799-49.99 16.198-79.453 16.198-37.329 0-68.608-5.399-93.836-16.337-25.228-10.845-45.009-27.183-59.299-49.059-14.383-21.876-21.923-46.545-22.668-74.147l51.433-4.515c2.467 20.62 8.099 37.609 16.989 50.781 8.89 13.219 22.761 23.924 41.519 32.023 18.758 8.192 39.843 12.288 63.302 12.288 20.806 0 39.191-3.072 55.11-9.309 15.919-6.144 27.788-14.615 35.607-25.46 7.773-10.705 11.636-22.528 11.636-35.328 0-12.847-3.77-24.204-11.264-33.885-7.494-9.635-19.875-17.734-37.097-24.297-11.078-4.329-35.561-10.985-73.402-20.154-37.888-9.030-64.419-17.687-79.593-25.693-19.689-10.38-34.397-23.133-44.032-38.447-9.635-15.267-14.476-32.349-14.476-51.293 0-20.806 5.911-40.262 17.687-58.368 11.823-18.060 29.091-31.837 51.759-41.193 22.807-9.309 48.035-14.010 75.776-14.010 30.58 0 57.53 4.934 80.849 14.755 23.366 9.868 41.286 24.343 53.853 43.473s19.316 40.774 20.247 64.977l-52.317 3.956c-2.839-26.065-12.335-45.754-28.579-59.066-16.198-13.359-40.122-20.015-71.82-20.015-33.001 0-57.065 6.051-72.145 18.153s-22.621 26.671-22.621 43.753c0 14.801 5.353 26.996 16.012 36.538 10.519 9.588 37.888 19.409 82.292 29.417 44.311 10.054 74.752 18.851 91.229 26.298 24.017 10.985 41.705 25.088 53.155 41.984 11.45 16.989 17.129 36.538 17.129 58.647 0.047 22.016-6.237 42.636-18.804 62.092zM852.294 379.159h-223.651v127.674h193.489v48.64h-193.489v187.345h-54.505v-412.3h278.156v48.64z" - ], - "attrs": [ - { - "fill": "rgb(96, 140, 193)" - } - ], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-secfox" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [ - 3 - ] - } - }, - "attrs": [ - { - "fill": "rgb(96, 140, 193)" - } - ], - "properties": { - "order": 333, - "id": 262, - "prevSize": 16, - "code": 59683, - "name": "it-other-secfox" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 35 - }, - { - "icon": { - "paths": [ - "M136 0c-75.55 0-136 60.45-136 136v752c0 75.55 60.45 136 136 136h752c75.55 0 136-60.45 136-136v-752c0-75.55-60.45-136-136-136h-752zM322 274c50.426 0 88.513 12.744 114 38 25.487 25.257 38.721 59.837 40 102l-80 4c-3.472-23.586-10.581-41.667-22-52-11.419-10.332-29.162-13.999-52-14-23.569 0.001-42.663 4.94-56 16-8.587 7.097-12 16.103-12 28-0 10.854 3.961 20.277 12 28 10.231 9.811 34.536 19.355 74 30 39.464 10.646 69.090 22.624 88 34s33.312 26.275 44 46c10.688 19.725 16 44.986 16 74-0 26.3-7.211 51.039-20 74s-30.614 38.833-54 50c-23.386 11.167-51.104 18-86 18-50.792 0-90.777-13.178-118-40s-42.702-66.652-48-118l78-8c4.75 30.266 15.475 51.806 30 66s33.335 22.001 58 22c26.126 0.001 46.754-7.372 60-20s20-27.092 20-44c-0-10.853-4.428-20.382-10-28s-14.115-14.364-28-20c-9.501-3.756-32.2-10.398-66-20-43.484-12.315-72.461-28.049-90-46-24.665-25.257-38-55.681-38-92-0-23.378 6.398-45.648 18-66s28.167-35.354 50-46c21.833-10.645 47.123-16 78-16zM556 282h298v78h-216v102h202v78h-202v124h224v78h-306v-460z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-segw" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 334, - "id": 261, - "prevSize": 16, - "code": 59684, - "name": "it-other-segw" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 36 - }, - { - "icon": { - "paths": [ - "M136 0c-75.55 0-136 60.45-136 136v410h1024v-410c0-75.55-60.45-136-136-136h-752zM122 146h234v50l-176 218h182v54h-260v-60l168-208h-148v-54zM380 146h256v54h-96v268h-64v-268h-96v-54zM678 146h238v54h-174v72h162v54h-162v88h180v54h-244v-322zM496 576c-38.5 0-70.375 12.688-94 38s-36 60.25-36 106c-0 43.25 12.5 77.063 36 102s53.5 38 90 38c29.5-0 54.812-7.438 74-22s31.75-38 40-68l-54-16c-4.625 20.125-11.375 34.625-22 44s-23.25 14-38 14c-20 0-37.5-7.25-50-22s-18-39.25-18-74c-0-32.75 7.312-57.375 20-72s27.625-22 48-22c14.75 0 27.687 5.75 38 14s16.75 17.75 20 32l56-12c-6.25-22-15.5-38.25-28-50-21-19.875-48.375-30-82-30zM122 580v46h82v228h56v-228h80v-46h-218zM734 580l-108 274h58l24-62h110l24 62h60l-110-274h-58zM762 644l38 102h-76l38-102zM0 886v2c0 75.55 60.45 136 136 136h752c75.55 0 136-60.45 136-136v-2h-1024z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-zteatca" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 335, - "id": 260, - "prevSize": 16, - "code": 59685, - "name": "it-other-zteatca" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 37 - }, - { - "icon": { - "paths": [ - "M176 0c-97.115 0-176 78.886-176 176v672c0 97.114 78.885 176 176 176h672c97.115 0 176-78.886 176-176v-672c0-97.114-78.885-176-176-176h-672zM142 40c46.967 0 84 38.355 84 86.003 0 20.058-6.681 37.344-18 52l104 204c2.902 0 5.019-1.984 8-1.984 15.987 0 31.225 4.224 44 12l134-128c-3.301-9.203-4-19.642-4-29.997 0-47.648 37.033-86.003 84-86.003s86 38.355 86 86.003c0 0.64 0.014 1.344 0 1.984l164 76c14.938-13.197 34.634-21.997 56-21.997 46.967 0 86 40.352 86 88 0 47.642-39.033 85.997-86 85.997s-84-38.355-84-85.997c0-2.624-0.224-5.44 0-8l-160-76.006c-15.514 16.762-37.542 25.997-62 25.997-14.090 0-26.299-3.84-38-9.997l-138 132c2.086 7.475 4 15.84 4 24 0 47.642-39.033 85.997-86 85.997s-84-38.355-84-85.997c0-20.64 8.082-39.155 20-54.003l-102-201.997c-3.796 0.64-8.062 1.984-12 1.984-46.967 0-86-38.355-86-85.997 0-47.648 39.033-86.003 86-86.003zM140 636h234v50.003l-176 216h182v53.997h-260v-57.997l168-208h-148v-54.003zM398 636h256v54.003h-96v265.997h-64v-265.997h-96v-54.003zM696 636h238v54.003h-174v72h162v53.997h-162v86.003h180v53.997h-244v-320z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-zteips" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 336, - "id": 259, - "prevSize": 16, - "code": 59686, - "name": "it-other-zteips" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 38 - }, - { - "icon": { - "paths": [ - "M508 0c-82.558 0.672-166.697 21.188-244 64-247.365 137.005-336.997 448.64-200 696 112.572 203.257 342.286 298.233 558 250l84-146 29.283-49.683-47.283-92.317 52-28c-27.342-23.445-47.521-53.56-60-88l-44 24-54-98 92-50c24.687-87.31 104.927-152 200-152 50.663 0 95.87 19.753 132 50-10.596-39.485-25.3-78.624-46-116-94.189-170.064-270.372-265.479-452-264zM530 98c45.407 1.984 91.792 9.699 134 26l-66 36c-22.418-22.534-44.33-43.274-68-62zM400 112c39.131 26.349 77.86 57.629 114 94l-86 48-70-126c-0.339-0.64 0.362-1.424 0-2 13.85-5.504 27.877-10.038 42-14zM266 176c0.32 0.64 1.711 1.488 2 2l70 126-94 52c-11.828-49.536-16.086-99.133-18-146 12.612-11.942 25.674-23.568 40-34zM766 182c30.756 23.571 58.291 51.565 82 84l-118 66c-19.826-33.114-41.392-64.963-64-94l90-48c3.229-1.792 7.526-5.517 10-8zM584 286c22.436 28.877 42.268 59.046 62 92l-114 64-54-98zM146 318c3.501 27.974 7.145 55.238 14 84l-56 32c7.85-40.659 22.519-79.302 42-116zM388 394l54 98-122 66c-17.597-34.106-31.279-67.754-44-102zM192 502c12.788 34.547 26.288 69.67 44 104l-110 60c-14.57-36.442-26.168-74.317-30-112zM492 582l54 98-106 58c-24.154-28.173-46.514-57.469-68-90zM288 696c21.57 32.525 45.675 59.827 70 88l-102 58c-29.908-23.232-56.84-52.314-80-84zM596 772l70 126c-7.344 2.944-14.551 7.504-22 10-43.856-24.314-86.79-54.854-128-92zM432 862c28.391 25.472 58.222 46.435 88 66-53.331 1.024-106.52-9.274-156-28z", - "M873.145 391.853c-83.828 0-150.949 67.322-150.949 148.794 0 57.709 34.419 105.702 84.1 129.939v299.699c0 21.075 17.123 37.722 38.815 37.722h56.067c21.692 0 38.815-16.646 38.815-37.722v-299.699c49.682-24.237 84.1-72.23 84.1-129.939 0-81.472-67.121-148.794-150.949-148.794z", - "M745.671 902.592h247.663l36.421 118.976h-313.221z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-sdn-controller" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 337, - "id": 258, - "prevSize": 16, - "code": 59687, - "name": "it-sdn-controller" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 39 - }, - { - "icon": { - "paths": [ - "M0 4v424h76v-186h148v186h74v-424h-74v166h-148v-166h-76zM376 4v424h76v-160h50c34.135 0 59.998-1.945 78-6 13.246-3.282 25.178-9.863 38-20s23.678-24.237 32-42c8.321-17.763 12-39.935 12-66-0-33.788-5.565-60.665-20-82s-32.602-35.628-54-42c-13.926-4.247-44.148-6-90-6h-122zM452 76h36c27.172 0 44.999 0.070 54 2 12.227 2.51 24.018 7.96 32 18s12 24.554 12 40c-0 12.55-4.311 22.54-10 32s-11.981 17.56-22 22c-10.020 4.441-30.281 6-60 6h-42v-120zM986 406l-28 10-234 190-50-84-22-14-26-2-42 30-176 168-36 14-22-4 6-26 88-120 28-46-6-34-22-6-36 32-170 184-44 24-12-8 2-28 72-98 34-64-8-36-14-10-30 16-102 150-36 64-6 74 20 32 36 8 38-14 78-66 14 54 30 16 50 2 44-26 96-80 124-132 12-2 42 60 4 22-276 316c0 0-8.993 18.503 2 36s8 16 8 16l48-6 238-294 10-2 18 6 70 124 30 6 14-20-4-34-78-122 226-198 30-30-14-32-18-16z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-server-hpux" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 338, - "id": 257, - "prevSize": 16, - "code": 59688, - "name": "it-server-hpux" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 40 - }, - { - "icon": { - "paths": [ - "M154 0c-85.040 0-154 68.96-154 154v716c0 85.040 68.96 154 154 154h716c85.040 0 154-68.96 154-154v-716c0-85.040-68.96-154-154-154h-716zM178 122h672c26.747 0 48 28.544 48 64s-21.253 64-48 64h-672c-26.747 0-48-28.544-48-64s21.253-64 48-64zM176 344h672c26.747 0 48 28.544 48 64s-21.253 64-48 64h-672c-26.747 0-48-28.544-48-64s21.253-64 48-64zM214 578c47.25 0 85.635 14.688 114 44s42 69.792 42 122c-0 51.771-13.854 92.76-42 122s-64.896 44-112 44c-47.688 0-85.854-14.906-114-44s-42-68.958-42-120c-0-32.666 4.229-59.833 14-82 7.292-16.333 17.385-31.021 30-44s26.979-21.729 42-28c19.979-8.458 41.896-14 68-14zM832 578c40.25 0 71.656 8.354 92 26s30.979 42.542 32 72l-66 2c-2.771-16.479-8.886-28.781-18-36s-21.771-10-40-10c-18.813 0-33.354 4.271-44 12-6.854 4.959-10 11.688-10 20-0 7.584 1.583 12.604 8 18 8.167 6.854 28.5 14.563 60 22s54.906 16.052 70 24c15.094 7.948 27.468 18.219 36 32s12 31.729 12 52c-0 18.375-3.792 33.958-14 50s-25.334 28.198-44 36c-18.667 7.802-42.146 12-70 12-40.542 0-72.271-9.26-94-28s-33.771-46.125-38-82l62-6c3.791 21.146 12.406 36.083 24 46s26.312 16 46 16c20.854 0 37.427-5.177 48-14s16-18.187 16-30c-0-7.583-1.552-14.677-6-20s-12.917-10.062-24-14c-7.583-2.625-25.021-7.292-52-14-34.708-8.604-60-19.458-74-32-19.688-17.646-28-38.625-28-64 0-16.333 4.74-31.781 14-46s22.573-24.562 40-32c17.427-7.437 37.354-12 62-12zM420 584h104c39.375 0 66.041 0.792 78 4 18.375 4.813 33.604 15.886 46 32s18 36.479 18 62c-0 19.688-2.854 36.583-10 50s-16.99 24.344-28 32c-11.011 7.656-20.625 11.521-32 14-15.459 3.062-38.688 6-68 6h-42v120h-66v-320zM216 634c-26.688 0-49.667 9.698-66 28s-24 45.104-24 82c-0 36.313 9.229 63.261 26 82s38.187 28 64 28c25.812 0 45.448-9.406 62-28s26-44.812 26-82c-0-36.75-7.886-65.916-24-84s-37.313-26-64-26zM486 638v92h36c25.521 0 41.396-2.646 50-6s15.114-8.854 20-16c4.885-7.146 8-14.521 8-24-0-11.667-3.146-22.416-10-30s-15.5-12.104-26-14c-7.729-1.458-24.667-2-48-2h-30z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-storage-ops" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 339, - "id": 256, - "prevSize": 16, - "code": 59689, - "name": "it-storage-ops" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 41 - }, - { - "icon": { - "paths": [ - "M154 0c-85.040 0-154 68.96-154 154v716c0 85.040 68.96 154 154 154h716c85.040 0 154-68.96 154-154v-716c0-85.040-68.96-154-154-154h-716zM178 122h672c26.747 0 48 28.544 48 64s-21.253 64-48 64h-672c-26.747 0-48-28.544-48-64s21.253-64 48-64zM176 344h672c26.747 0 48 28.544 48 64s-21.253 64-48 64h-672c-26.747 0-48-28.544-48-64s21.253-64 48-64zM724 584c39.229 0 71.5 10.813 96 34 14.583 13.709 24.708 34.334 32 60l-64 16c-3.792-16.625-11.969-30.375-24-40s-24.792-14-42-14c-23.771 0-43.198 8.938-58 26s-24 43.792-24 82c-0 40.542 7.417 68.792 22 86s34.666 26 58 26c17.208 0 31.604-5.062 44-16s20.604-28.521 26-52l64 20c-9.625 35-25.615 61.010-48 78s-51.583 26-86 26c-42.583 0-76.583-14.906-104-44s-42-69.542-42-120c-0-53.375 14.437-94.468 42-124s63.083-44 108-44zM164 590h128c25.375 0 43.531-0.115 56 2s24.156 7.292 34 14c9.843 6.709 17.437 14.844 24 26s10 24.146 10 38c-0 15.021-3.907 29.459-12 42s-18.146 21.729-32 28c19.541 5.688 33.5 16.292 44 30s16 29.479 16 48c-0 14.583-3.219 28.219-10 42s-16.261 23.76-28 32c-11.74 8.24-24.792 14.104-42 16-10.792 1.167-38.729 1.708-80 2h-108v-320zM228 644v74h44c25.229 0 39.875-1.271 46-2 11.083-1.312 19.656-5.656 26-12s10-13.646 10-24c-0-9.916-2.531-17.802-8-24s-13.209-10.687-24-12c-6.417-0.729-25.521 0-56 0h-38zM228 770v86h60c23.333 0 37.729-0.687 44-2 9.625-1.75 17.948-5.219 24-12s10-16.625 10-28c-0-9.625-3.334-17.292-8-24s-11.177-10.937-20-14c-8.823-3.062-28.542-6-58-6h-52z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-storage-sanswitch-brocade" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 340, - "id": 255, - "prevSize": 16, - "code": 59690, - "name": "it-storage-sanswitch-brocade" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 42 - }, - { - "icon": { - "paths": [ - "M86 0c-47.477 0-86 38.076-86 84v514c0 45.924 38.523 82 86 82h234v90h-184v82h280v-172h192v172h280v-82h-184v-90h234c47.477 0 86-36.076 86-82v-514c0-45.924-38.523-84-86-84h-852zM110 108h804v454h-804v-454zM136 946v80h752v-80h-752z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "uep-moc-uca-public" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 341, - "id": 254, - "prevSize": 16, - "code": 59691, - "name": "uep-moc-uca-public" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 43 - }, - { - "icon": { - "paths": [ - "M2 262v192h96v320c-55.192 13.323-96 62.716-96 122 0 69.49 56.51 126 126 126s126-56.51 126-126c0-57.76-38.954-107.215-92-122v-320h320v320c-54.028 14.132-94 63.542-94 122 0 69.49 56.51 126 126 126s126-56.51 126-126c0-58.458-39.972-107.868-94-122v-320h320v320c-53.356 14.581-94 64.019-94 122 0 69.49 56.51 126 126 126s126-56.51 126-126c0-58.632-39.727-108.036-94-122v-320h96v-192h-1024z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "uep-topo-commongroup20x20" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 342, - "id": 253, - "prevSize": 16, - "code": 59692, - "name": "uep-topo-commongroup20x20" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 44 - }, - { - "icon": { - "paths": [ - "M741.841 94.115c0-39.983-32.256-72.239-72.099-72.239h-375.529c-39.983 0-72.239 32.256-72.239 72.239v58.508h519.82v-58.508z", - "M745.472 980.713v-2.327c0 0.465-0.093 0.884-0.186 1.164 0.093 0.372 0.186 0.745 0.186 1.164z", - "M218.345 980.713c0-0.465 0.14-0.838 0.186-1.164-0.047-0.372-0.186-0.745-0.186-1.164v2.327z", - "M840.285 212.247h-98.351v-49.105h-519.913v128.047h519.866v-29.137h25.553v24.902h10.892c-0.605 26.577-5.353 228.492-7.075 279.459-4.561 138.333-7.121 198.796-21.83 231.098-24.25 53.248-103.098 64.698-119.901 66.607v-195.072h40.169c39.796 0 72.192-32.349 72.192-72.099v-295.331h-519.866v295.284c0 39.75 32.209 72.099 72.239 72.099h40.076v283.276c0 3.724 0.605 7.075 1.583 10.473h-99.514c-9.635 0-17.361 7.354-17.873 16.803 0.512 9.356 8.239 16.803 17.873 16.803h491.055c9.495 0 17.315-7.447 17.92-16.803-0.605-9.449-8.425-16.803-17.92-16.803h-99.421c0.977-3.351 1.396-6.749 1.396-10.38v-49.105c38.121-7.447 118.551-15.453 154.065-92.346 21.225-46.173 22.295-125.719 24.948-241.478 3.072-134.004 5.958-261.911 6.423-282.484h9.495v-24.902h15.919v-49.804h-0zM693.62 320.652c9.914 0 18.060 8.052 18.060 18.060 0 9.914-8.145 18.106-18.060 18.106-10.1 0-18.106-8.192-18.106-18.106 0.047-10.007 8.052-18.060 18.106-18.060zM435.852 642.979l30.906-96.815-45.056-11.729 84.294-145.315-23.366 114.502 45.754 20.48-92.532 118.877z" - ], - "attrs": [ - { - "fill": "rgb(124, 133, 150)" - }, - { - "fill": "rgb(124, 133, 150)" - }, - { - "fill": "rgb(124, 133, 150)" - }, - { - "fill": "rgb(124, 133, 150)" - } - ], - "isMulticolor": false, - "grid": 0, - "tags": [ - "vapel_chgpile" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [ - 2, - 2, - 2, - 2 - ] - } - }, - "attrs": [ - { - "fill": "rgb(124, 133, 150)" - }, - { - "fill": "rgb(124, 133, 150)" - }, - { - "fill": "rgb(124, 133, 150)" - }, - { - "fill": "rgb(124, 133, 150)" - } - ], - "properties": { - "order": 343, - "id": 252, - "prevSize": 16, - "code": 59693, - "name": "vapel_chgpile" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 45 - }, - { - "icon": { - "paths": [ - "M792.529 781.359v2.932c-1.955 0.093-28.393 4.887-44.544 8.052-12.241 0-203.124 0.326-333.405 0.326-66.979 0-117.9-0.093-120.413-0.326-7.494-0.559-53.76-9.588-55.715-9.961l0.652-3.305c-15.407 15.22-24.948 32.489-23.924 44.963 1.722 22.714 46.685 44.823 62.883 50.223 0.931 0.419 2.7 0.791 4.841 0.977l-0.233-0.279c2.095-1.35 20.62-12.753 29.091-12.753l418.257 0.372c0.093 0.093 6.33 4.375 14.941 9.961l-1.815 2.746c13.917-1.908 24.948-4.096 31.558-6.377 40.96-14.662 41.565-52.317 41.565-52.689-0.652-9.449-10.845-22.481-23.738-34.863z", - "M749.009 741.19c-16.989-4.887-182.737-21.132-236.544-22.947-1.908-0.093-3.91-0.093-6.097-0.093-59.252 0-219.555 23.505-221.184 23.831-42.449 13.731-78.103 59.159-76.288 85.178 1.769 25.507 47.709 50.129 64.186 56.273 12.567 4.701 136.099 10.38 202.426 13.312 21.69 0.977 38.772 1.722 45.847 2.095 2.7 0.233 6.796 0.326 12.288 0.326 56.273 0 211.27-8.471 245.62-21.969 41.612-16.198 43.241-54.877 43.706-67.444 0.605-13.359-43.892-59.578-73.961-68.561zM775.959 872.262c-36.631 13.172-194.42 20.108-242.362 20.108-5.446 0-9.588-0.093-12.288-0.279-6.842-0.559-23.599-1.21-44.823-2.095-69.911-2.886-186.927-7.633-199.727-12.055-12.567-4.329-63.535-27.089-65.536-53.62-1.955-25.135 33.652-67.119 77.824-80.198 1.862-0.186 159.372-21.364 217.74-21.364 2.141 0 4.189 0.093 6.097 0.093 52.829 1.629 216.111 16.291 232.82 20.666 16.524 4.561 72.937 48.826 74.24 72.332 0.559 8.471-5.585 42.775-43.985 56.413z", - "M747.66 788.527c6.33-1.117 38.028-7.168 44.032-8.052-16.989-16.244-38.167-30.767-46.825-33.187-16.57-4.655-179.293-18.897-232.029-20.527-1.908-0.093-3.863-0.093-6.004-0.093-58.135 0-215.412 20.992-216.948 21.225-7.866 2.374-15.546 5.632-22.714 9.775 11.823 1.117 60.090 6.051 66.56 6.703 7.308 0.559 378.321 0 382.045-0.093 12.381-1.443 45.196-5.12 47.709-5.585l0.698 3.863c-3.025 0.559-46.266 5.353-48.175 5.539-10.193 0-169.658 0.372-279.412 0.372-56.972 0-100.585-0.093-103.145-0.372-7.401-0.652-68.655-6.796-69.26-6.842l0.186-1.815c-9.263 5.492-17.687 12.195-24.902 19.316 3.863 0.745 47.942 9.216 54.97 9.868 7.354 0.512 448.791-0.093 453.213-0.093z", - "M311.761 865.932c-5.073 0-16.477 6.051-23.319 10.1 33.327 3.724 131.863 7.727 188.276 10.054 21.271 0.977 37.981 1.629 44.87 2.001 2.653 0.233 6.703 0.326 12.009 0.326 44.172 0 150.807-4.934 208.617-13.079-6.935-4.468-12.335-8.145-13.871-9.309l-416.582-0.093z", - "M1016.367 742.4c-1.303-12.986-5.26-37.841-5.26-44.265 0-6.47-15.593-79.5-15.593-79.5l-10.426-24.669-28.625-27.415-40.401-26.065-32.489-14.383-14.429-10.426-8.518-14.615c6.749-0.465 58.321-4.329 64.372-8.099 6.423-4.003 10.752-5.772 10.147-7.121-0.745-1.35-4.375-20.34-9.123-24.716-4.794-4.422-38.26-10.799-43.008-10.519-4.841 0.326-8.099 0.326-8.099 0.326s-11.543 17.268-10.193 27.415c1.303 10.193 2.048 12.567 2.048 12.567l-9.402 4.655-1.21-2.001-20.852-29.975-33.792-55.994-27.415-39.052-24.809-18.292-11.683-7.82c0 0-129.117-13.731-221.044-12.288-102.54 1.722-210.851 12.847-210.851 12.847l-8.425 6.051-20.806 19.084-84.759 103.331c-5.399 7.727-10.193 13.731-14.941 19.409l-10.938-4.98c0 0 0.745-2.374 2.001-12.567 1.35-10.147-10.193-27.415-10.193-27.415s-3.351 0-8.099-0.326c-4.748-0.419-38.26 6.051-43.008 10.426-4.748 4.422-8.425 23.412-9.123 24.762s3.724 3.025 10.147 7.121c6.33 4.003 62.883 8.239 64.512 8.332-4.143 4.655-8.332 9.169-12.986 14.289-11.683 13.033-37.841 23.459-46.918 30.022-9.123 6.563-69.027 41.658-69.027 53.434 0 11.683-26.065 98.956-26.065 98.956s0 19.549-1.303 27.322c-1.303 7.866-1.303 43.008-2.56 57.344-1.303 14.476 5.167 118.598 5.167 118.598l4.608 10.985c-0.559 7.494-0.279 22.807 10.333 27.276 1.303 0.465 4.003 1.303 7.82 2.513 1.164 4.329 26.81 33.187 40.076 34.956 13.591 1.955 43.38 3.212 51.153 3.212s18.665-8.657 21.923-9.914c0.047 0 0-0.14 0-0.14 39.657 9.263 74.473 16.756 77.824 15.965 7.773-2.001 12.335-3.91 18.758-3.91 6.516 0 213.085 17.455 231.191 16.756 18.153-0.652 286.255-16.756 296.029-16.756 9.635 0 10.333 0.652 20.015 2.56 4.608 0.977 44.218-6.982 86.807-16.943-0.698 2.095-1.024 5.585 1.862 8.611 4.608 4.608 59.625-1.908 69.958-5.167 10.38-3.212 31.092-30.348 31.092-30.348l-9.216 2.234c7.447-2.42 12.847-4.608 15.034-6.191 15.546-10.985 14.336-23.971 14.336-23.971l-3.351 0.605 6.516-8.378c-0.047-0.047 6.516-144.756 5.213-157.743zM983.599 870.167c-3.91 8.657-33.745 29.929-43.38 33.373-9.681 3.444-112.035 23.040-115.433 22.854-3.584-0.326-12.521-8.099-14.057-14.569-1.583-6.516 25.321-40.96 34.444-47.709 9.123-6.703 94.72-36.538 108.218-41.705 13.545-5.167 40.401-22.854 40.401-22.854s3.537 40.215-10.193 70.609zM781.079 880.361c-37.283 14.615-198.191 22.249-247.063 22.249-5.539 0-9.728-0.093-12.614-0.279-6.982-0.465-24.111-1.164-45.754-2.234-71.215-3.165-190.511-8.751-203.636-13.498-12.753-4.841-64.652-30.208-66.7-59.671-1.955-28.020 34.257-74.705 79.313-89.228 1.908-0.279 162.49-23.971 222.022-23.971 2.188 0 4.282 0.093 6.237 0.186 53.853 1.815 220.3 18.013 237.382 23.087 30.999 9.169 77.545 55.855 76.893 72.425-0.419 13.172-2.141 53.76-46.080 70.935zM841.356 655.779c8.844-5.818 132.841-49.338 132.841-49.338s12.428 32.442 13.452 39.331c0.977 6.842-3.398 33.14-6.516 37.004-3.025 3.724-35.933 26.345-40.215 26.95-4.236 0.838-20.852-8.564-24.017-8.564-2.932 0-55.808 16.896-75.729 19.363-20.015 2.7-57.204-16.57-57.204-16.57s48.593-42.403 57.391-48.175zM288.861 408.343c17.687-11.776 42.915-24.157 60.556-26.298 0 0 56.739-9.961 143.22-12.567l-0.047-0.326c12.055-0.233 23.692-0.326 34.956-0.279 11.264-0.047 22.807 0 34.816 0.279l-0.093 0.326c86.435 2.607 143.081 12.567 143.081 12.567 17.734 2.095 43.008 14.476 60.742 26.298l52.317 59.206c0 10.705-3.677 19.875-14.476 19.875l-281.367-0.652-281.414 0.652c-10.705 0-14.476-9.123-14.476-19.875l62.185-59.206zM45.708 646.237c1.024-6.842 14.895-40.96 14.895-40.96s126.836 45.568 135.68 51.34c8.844 5.818 57.391 48.361 57.391 48.361s-37.143 19.037-57.111 16.57c-19.968-2.56-72.797-19.503-75.823-19.503-2.979 0-19.689 9.263-24.017 8.657-4.282-0.884-41.425-22.249-44.451-26.065-3.025-3.77-7.54-31.651-6.563-38.4zM33.932 801.699c0 0 26.95 17.78 40.401 22.807 13.452 5.12 99.049 34.909 108.218 41.705s36.073 41.239 34.444 47.756c-1.583 6.423-10.519 14.196-14.010 14.476-3.444 0.279-105.798-19.27-115.479-22.761-9.728-3.537-39.471-24.855-43.334-33.466-13.731-30.441-10.24-70.516-10.24-70.516z" - ], - "attrs": [ - { - "fill": "rgb(124, 133, 150)" - }, - { - "fill": "rgb(124, 133, 150)" - }, - { - "fill": "rgb(124, 133, 150)" - }, - { - "fill": "rgb(124, 133, 150)" - }, - { - "fill": "rgb(124, 133, 150)" - } - ], - "isMulticolor": false, - "grid": 0, - "tags": [ - "car" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [ - 2, - 2, - 2, - 2, - 2 - ] - } - }, - "attrs": [ - { - "fill": "rgb(124, 133, 150)" - }, - { - "fill": "rgb(124, 133, 150)" - }, - { - "fill": "rgb(124, 133, 150)" - }, - { - "fill": "rgb(124, 133, 150)" - }, - { - "fill": "rgb(124, 133, 150)" - } - ], - "properties": { - "order": 344, - "id": 251, - "prevSize": 16, - "code": 59694, - "name": "car" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 46 - }, - { - "icon": { - "paths": [ - "M286.627 163.421h521.263v128.372h-521.263v-128.372z", - "M807.889 94.208c0-40.029-32.396-72.378-72.378-72.378h-376.553c-39.936 0-72.425 32.303-72.425 72.378v58.647h521.309v-58.647z", - "M811.473 982.202c0 0.372 0.093 0.791 0.093 1.21v-2.607c0 0.605-0.093 0.977-0.093 1.396z", - "M282.996 983.412c0-0.512 0.14-0.977 0.14-1.21 0-0.372-0.14-0.791-0.14-1.35v2.56z", - "M793.46 965.26h-99.84c0.977-3.258 1.536-6.842 1.536-10.473v-284.067h40.355c39.889 0 72.378-32.396 72.378-72.471v-296.029h-521.309v296.029c0 39.983 32.442 72.378 72.425 72.378h40.308v284.16c0 3.491 0.512 7.075 1.536 10.287h-99.747c-9.635 0-17.361 7.447-17.967 16.989 0.652 9.309 8.332 16.803 17.967 16.803h492.358c9.542 0 17.315-7.494 18.013-16.803-0.698-9.449-8.425-16.803-18.013-16.803zM759.529 321.443c9.914 0 18.060 8.099 18.060 18.153 0 9.961-8.145 18.106-18.060 18.106-10.007 0-18.199-8.099-18.199-18.106 0.14-10.054 8.239-18.153 18.199-18.153zM501.062 644.655l31.046-97.094-45.242-11.543 84.48-145.873-23.273 114.828 45.708 20.527-92.719 119.156z" - ], - "attrs": [ - { - "fill": "rgb(124, 133, 150)" - }, - { - "fill": "rgb(124, 133, 150)" - }, - { - "fill": "rgb(124, 133, 150)" - }, - { - "fill": "rgb(124, 133, 150)" - }, - { - "fill": "rgb(124, 133, 150)" - } - ], - "isMulticolor": false, - "grid": 0, - "tags": [ - "chgpile" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [ - 2, - 2, - 2, - 2, - 2 - ] - } - }, - "attrs": [ - { - "fill": "rgb(124, 133, 150)" - }, - { - "fill": "rgb(124, 133, 150)" - }, - { - "fill": "rgb(124, 133, 150)" - }, - { - "fill": "rgb(124, 133, 150)" - }, - { - "fill": "rgb(124, 133, 150)" - } - ], - "properties": { - "order": 345, - "id": 250, - "prevSize": 16, - "code": 59695, - "name": "chgpile" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 47 - }, - { - "icon": { - "paths": [ - "M550.959 563.805c-9.635-1.815-28.998-2.746-58.089-2.746h-39.005v113.478h44.172c31.837 0 53.108-2.095 63.86-6.284 10.705-4.189 19.084-10.705 25.181-19.642s9.169-19.27 9.169-31.092c0-14.569-4.329-26.531-12.8-35.98-8.518-9.449-19.363-15.36-32.489-17.734z", - "M977.455 395.636h-930.909c-25.693 0-46.545 20.852-46.545 46.545v488.727c0 25.74 20.852 46.545 46.545 46.545h930.909c25.74 0 46.545-20.806 46.545-46.545v-488.727c0-25.74-20.806-46.545-46.545-46.545zM666.112 678.353c-8.844 16.71-20.294 29.929-33.932 39.471s-27.695 15.825-41.751 18.897c-19.27 3.817-47.244 5.725-83.782 5.725h-52.783v150.807h-80.71v-399.779h129.536c49.152 0 81.129 2.001 96.023 6.004 22.9 6.004 42.077 19.037 57.53 39.145s23.18 45.987 23.18 77.824c0.047 24.529-4.422 45.196-13.312 61.905z" - ], - "attrs": [ - { - "fill": "rgb(124, 133, 150)" - }, - { - "fill": "rgb(124, 133, 150)" - } - ], - "isMulticolor": false, - "grid": 0, - "tags": [ - "chgposition" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [ - 2, - 2 - ] - } - }, - "attrs": [ - { - "fill": "rgb(124, 133, 150)" - }, - { - "fill": "rgb(124, 133, 150)" - } - ], - "properties": { - "order": 346, - "id": 249, - "prevSize": 16, - "code": 59696, - "name": "chgposition" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 48 - }, - { - "icon": { - "paths": [ - "M667.741 391.913h-638.697v-138.799l638.697-11.171z", - "M995.002 439.529l-618.17-0.652-347.788-35.468h638.697z", - "M995.002 426.217l-327.261-34.304v-149.969l327.261 53.388z", - "M150.761 412.672h63.86v600.111h-63.86v-600.111z", - "M635.811 412.672h63.814v600.111h-63.814v-600.111z", - "M348.393 417.792h63.86v503.948h-63.86v-503.948z", - "M853.085 434.176h63.86v487.564h-63.86v-487.564z", - "M475.881 760.273h71.075v161.466h-71.075v-161.466z", - "M739.142 760.273h71.075v161.466h-71.075v-161.466z", - "M285.091 776.378l-24.716 23.645v160.954h17.594l26.205-23.18v-161.42z", - "M834.001 815.197l-24.716 23.599v161.001h17.641l26.159-23.18v-161.42z" - ], - "attrs": [ - { - "fill": "rgb(123, 131, 147)" - }, - { - "fill": "rgb(123, 131, 147)" - }, - { - "fill": "rgb(123, 131, 147)" - }, - { - "fill": "rgb(123, 131, 147)" - }, - { - "fill": "rgb(123, 131, 147)" - }, - { - "fill": "rgb(123, 131, 147)" - }, - { - "fill": "rgb(123, 131, 147)" - }, - { - "fill": "rgb(123, 131, 147)" - }, - { - "fill": "rgb(123, 131, 147)" - }, - { - "fill": "rgb(123, 131, 147)" - }, - { - "fill": "rgb(123, 131, 147)" - } - ], - "isMulticolor": false, - "grid": 0, - "tags": [ - "chgstation" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [ - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1 - ] - } - }, - "attrs": [ - { - "fill": "rgb(123, 131, 147)" - }, - { - "fill": "rgb(123, 131, 147)" - }, - { - "fill": "rgb(123, 131, 147)" - }, - { - "fill": "rgb(123, 131, 147)" - }, - { - "fill": "rgb(123, 131, 147)" - }, - { - "fill": "rgb(123, 131, 147)" - }, - { - "fill": "rgb(123, 131, 147)" - }, - { - "fill": "rgb(123, 131, 147)" - }, - { - "fill": "rgb(123, 131, 147)" - }, - { - "fill": "rgb(123, 131, 147)" - }, - { - "fill": "rgb(123, 131, 147)" - } - ], - "properties": { - "order": 347, - "id": 248, - "prevSize": 16, - "code": 59697, - "name": "chgstation" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 49 - }, - { - "icon": { - "paths": [ - "M128 0c-70.912 0-128 57.088-128 128v768c0 70.912 57.088 128 128 128h768c70.912 0 128-57.088 128-128v-768c0-70.912-57.088-128-128-128h-768zM266.182 72.723h490.182c43.596 0 80 32.73 80 72.736v738.906c0 40-36.404 72.723-80 72.723h-490.182c-43.596 0-78.545-32.723-78.545-72.723v-738.906c0-40.006 34.95-72.736 78.545-72.736zM667.636 189.088c-41.36 0-73.529 12.877-98.909 37.818-25.38 24.947-37.818 59.635-37.818 104.73 0 42.63 12.572 77.242 37.818 101.818 25.246 24.582 56.788 34.912 96 34.912 31.691 0 59.387-5.952 80-20.365 20.613-14.355 34.773-37.338 43.636-66.906l-58.182-14.554c-4.969 19.846-11.859 34.4-23.273 43.642s-26.336 11.635-42.182 11.635c-21.486 0-38.935-5.824-52.364-20.358-13.429-14.547-20.364-38.483-20.364-72.736-0-32.275 6.734-55.398 20.364-69.811 13.63-14.419 31.929-23.277 53.818-23.277 15.846 0 29.648 3.456 40.727 11.635 11.078 8.128 18.326 20.864 21.818 34.912l58.182-14.547c-6.715-21.683-17.117-37.869-30.545-49.453-22.56-19.59-52.605-29.094-88.727-29.094zM242.909 194.912v270.547h113.455c22.023 0 39.203-1.984 52.364-5.824 17.591-5.184 30.387-14.042 40.727-23.277 13.697-12.198 24.614-26.835 32-46.547 6.042-16.141 8.727-35.885 8.727-58.182-0-25.382-2.282-46.688-8.727-64-6.446-17.306-16.737-31.68-29.091-43.635-12.355-11.949-26.314-21.504-43.636-26.182-12.892-3.456-33.608-2.88-58.182-2.88h-107.636zM302.545 238.554h26.182c24.306 0 41.129 1.216 49.455 2.88 11.146 2.24 21.839 8.256 29.091 14.541 7.251 6.272 10.517 14.976 14.545 26.182 4.028 11.213 7.273 25.6 7.273 46.554-0 20.941-3.244 37.318-7.273 49.446-4.029 12.134-8.167 20.89-14.545 26.189-6.379 5.312-15.059 9.414-24.727 11.629-7.386 1.728-19.712 2.88-36.364 2.88h-43.636v-180.365zM272 599.283c-15.139 0-27.636 10.374-27.636 23.264 0 12.902 12.498 23.277 27.636 23.277h485.818c15.139 0 27.636-10.374 27.636-23.277 0-12.89-12.498-23.264-27.636-23.264h-485.818zM272 733.101c-15.139 0-27.636 10.381-27.636 23.27 0 12.896 12.498 23.27 27.636 23.27h485.818c15.139 0 27.636-10.374 27.636-23.27 0-12.89-12.498-23.27-27.636-23.27h-485.818z" - ], - "attrs": [ - { - "fill": "rgb(100, 155, 230)" - } - ], - "isMulticolor": false, - "grid": 0, - "tags": [ - "common_dc" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [ - 6 - ] - } - }, - "attrs": [ - { - "fill": "rgb(100, 155, 230)" - } - ], - "properties": { - "order": 348, - "id": 247, - "prevSize": 16, - "code": 59698, - "name": "common_dc" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 50 - }, - { - "icon": { - "paths": [ - "M152 0c-84.32 0-152 67.68-152 152v720c0 84.32 67.68 152 152 152h720c84.32 0 152-67.68 152-152v-720c0-84.32-67.68-152-152-152zM104 166h98l202 264v-264h94v302c-17.538-5.098-37.024-8-56-8-37.084 0-71.491 11.742-102 30l-144-186v258h-92zM456 551.336c40.013 0 73.010 10.353 98 34 14.874 13.982 26.562 33.824 34 60l-66 16c-3.868-16.956-9.729-30.18-22-40-12.272-9.825-28.448-14-46-14-24.246 0-44.902 8.593-60 26-15.098 17.401-22 45.029-22 84-0 41.357 7.125 72.45 22 90s36.2 24 60 24c17.552 0 31.356-4.844 44-16s20.496-28.050 26-52l64 20c-9.818 35.705-25.168 60.673-48 78s-50.896 28-86 28c-43.434 0-80.036-16.33-108-46-27.965-29.676-42-68.532-42-120-0-54.437 13.887-97.879 42-128s64.186-44 110-44zM646 557.336h122c27.221 0 47.72-0.168 62 4 19.188 5.652 34.315 17.573 48 32s24.86 31.105 32 52c7.14 20.901 10 47.359 10 78-0 26.924-3.307 50.515-10 70-8.181 23.796-20.828 41.27-36 56-11.454 11.156-26.514 19.754-46 26-14.577 4.63-33.606 8-58 8h-124zM712 611.336v216h50c18.445 0 31.819 0.055 40-2 10.71-2.672 18.934-7.606 26-14s13.537-17.345 18-32c4.463-14.65 6-34.714 6-60s-1.538-44.464-6-58c-4.463-13.536-11.968-24.413-20-32-8.033-7.582-17.654-13.317-30-16-9.223-2.341-27.077-2-54-2z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "common_ncd" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 349, - "id": 246, - "prevSize": 16, - "code": 59699, - "name": "common_ncd" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 51 - }, - { - "icon": { - "paths": [ - "M820 0l-40 4 12 66 40-4-12-66zM678 22c-39.083 0-68 30.966-68 70 0 39.021 28.917 70 68 70 10.831 0 22.823-1.648 32-6l48 46 36-38-48-48c2.62-7.392 4-15.725 4-24 0-39.034-32.916-70-72-70zM948 44l-90 60 30 46 90-62-30-44zM150 98c-84.081 0-150 66.045-150 150v626c0 83.962 65.919 150 150 150h628c84.081 0 150-66.038 150-150v-420c-97.009 35.552-219.538 4.931-304-82-79.068-81.382-102.955-187.984-68-274h-406zM1020 168l-66 12 4 40 66-12-4-40zM662 190l-66 12 4 38 66-10-4-40zM858 218l-38 38 38 36c-2.531 7.27-6 15.866-6 24 0 39.027 30.916 70 70 70s72-30.973 72-70c0-39.027-32.917-72-72-72-10.992 0-20.719 3.507-30 8l-34-34zM732 260l-90 62 28 44 92-58-30-48zM104 288h92l190 232v-232h88v266c-16.509-4.523-34.138-8-52-8-34.907 0-67.282 9.908-96 26l-136-164v228h-86v-348zM826 344l-40 2 10 66 40-4-10-64zM436 598c37.664 0 68.477 9.161 92 30 14.001 12.316 24.999 30.929 32 54l-62 14c-3.641-14.94-10.449-27.349-22-36-11.552-8.66-25.478-12-42-12-22.823 0-41.788 8.66-56 24-14.212 15.33-22 39.655-22 74-0 36.445 7.998 62.541 22 78 14.002 15.463 33.597 22 56 22 16.522 0 28.098-4.188 40-14 11.901-9.831 20.819-24.9 26-46l60 18c-9.241 31.46-24.508 52.727-46 68-21.493 15.263-46.956 24-80 24-40.885 0-75.677-13.848-102-40s-40-60.647-40-106c0-47.971 13.537-85.458 40-112s60.875-40 104-40zM614 604h116c25.623 0 44.558 0.525 58 4 18.062 4.961 31.118 15.279 44 28 12.881 12.707 23.279 27.585 30 46s10 40.996 10 68c-0 23.724-3.7 44.832-10 62-7.701 20.972-19.719 37.012-34 50-10.782 9.827-23.658 16.496-42 22-13.722 4.047-33.037 8-56 8h-116v-288zM676 652v190h48c17.362 0 30.299-0.237 38-2 10.081-2.381 17.349-6.368 24-12 6.651-5.637 11.799-15.088 16-28s6-31.719 6-54c0-22.286-1.8-38.074-6-50-4.201-11.936-10.439-21.316-18-28s-16.379-11.634-28-14c-8.681-2.095-26.657-2-52-2h-28z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "common_ncd_break" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 350, - "id": 245, - "prevSize": 16, - "code": 59700, - "name": "common_ncd_break" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 52 - }, - { - "icon": { - "paths": [ - "M128 0c-70.912 0-128 57.088-128 128v768c0 70.912 57.088 128 128 128h768c70.912 0 128-57.088 128-128v-768c0-70.912-57.088-128-128-128h-768zM192 146h628c26.012 0 49.542 11.019 68 26 22.109 17.944 38 42.938 38 72v380c0 53.325-48.83 96-106 96h-252c13.755 26.81 28.292 66.589 12 86-28.199 33.594-107.060 33.030-136 0-16.62-18.976-2.325-59.030 10-86h-262c-57.17 0-104-42.675-104-96v-380c0-29.062 13.891-54.056 36-72 18.458-14.981 41.988-26 68-26zM308 228c-31.688 0-57.594 4.438-80 14s-40.094 23.719-52 42c-11.906 18.282-18 39-18 60-0 32.625 12.687 59.313 38 82 18 16.125 49.375 28.938 94 40 34.687 8.625 58.25 14.625 68 18 14.25 5.063 22.281 11.156 28 18s10 16.25 10 26c-0 15.188-6.407 28.656-20 40s-35.188 16-62 16c-25.313 0-45.094-5.25-60-18s-25.125-32.812-30-60l-80 8c5.437 46.125 22.062 79.906 50 104s67.875 36 120 36c35.812 0 66-3.969 90-14s42.875-25.375 56-46c13.125-20.625 18-42.375 18-66-0-26.062-5.032-48.281-16-66s-26.594-31.781-46-42c-19.407-10.219-49.5-20.437-90-30s-65.5-19.187-76-28c-8.25-6.937-12-14.25-12-24-0-10.687 5.187-19.625 14-26 13.687-9.937 31.812-16 56-16 23.437 0 40.281 4.719 52 14s20.437 24.813 24 46l82-4c-1.313-37.875-13.844-67.312-40-90s-66.25-34-118-34zM728 228c-57.75 0-104.563 18.032-140 56s-54 91.375-54 160c-0 64.875 18.75 116.594 54 154s79.25 56 134 56c44.25 0 81.218-10.156 110-32s49.625-55 62-100l-80-26c-6.938 30.188-20.063 51.938-36 66s-33.875 22-56 22c-30 0-55.25-11.875-74-34s-28-59.875-28-112c-0-49.125 10.969-84.062 30-106s43.437-32 74-32c22.125 0 40.531 5.625 56 18s25.125 28.625 30 50l82-20c-9.375-33-23.25-58.375-42-76-31.5-29.812-71.563-44-122-44zM418 814c1.096 8.128 5.046 14.406 10 20 35.944 40.614 134.977 41.312 170 0 4.685-5.504 7.107-12.186 8-20 62.661 8.262 104 25.222 104 44 0 27.11-88.3 48-198 48s-200-20.89-200-48c0-18.778 43.339-35.738 106-44z" - ], - "attrs": [ - { - "fill": "rgb(100, 155, 230)" - } - ], - "isMulticolor": false, - "grid": 0, - "tags": [ - "common_sc" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [ - 6 - ] - } - }, - "attrs": [ - { - "fill": "rgb(100, 155, 230)" - } - ], - "properties": { - "order": 351, - "id": 244, - "prevSize": 16, - "code": 59701, - "name": "common_sc" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 53 - }, - { - "icon": { - "paths": [ - "M256 100v834h-256v90h1034v-90h-256v-252h-400v-96h400v-108h-400v-96h400v-282h-522z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 352, - "id": 243, - "prevSize": 16, - "code": 59702, - "name": "it" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 54 - }, - { - "icon": { - "paths": [ - "M132-4c-70.912 0-128 57.088-128 128v768c0 70.912 57.088 128 128 128h418l478-480v-416c0-70.912-57.088-128-128-128h-768zM516 76c203.792 0 370 166.208 370 370s-166.208 372-370 372c-203.792 0-370-168.208-370-372s166.208-370 370-370zM516 182c-147.271 0-266 116.729-266 264s118.729 266 266 266c147.271 0 266-118.729 266-266s-118.729-264-266-264zM480 286h68l128 322h-70l-28-74h-128l-26 74h-68l124-322zM514 362l-44 118h88l-44-118zM1028 640l-380 380h252c70.912 0 128-57.088 128-128v-252z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-app" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 353, - "id": 242, - "prevSize": 16, - "code": 59703, - "name": "it-app" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 55 - }, - { - "icon": { - "paths": [ - "M132-4c-70.912 0-128 57.088-128 128v768c0 70.912 57.088 128 128 128h418l478-480v-416c0-70.912-57.088-128-128-128h-768zM114 86h226c44.738 0 78.016 2.249 100 6s40.644 10.174 58 22c17.355 11.837 32.429 28.328 44 48 11.57 19.662 17.999 41.566 18 66-0.001 26.476-7.73 49.889-22 72s-33.574 38.945-58 50c34.453 10.003 61.487 27.826 80 52 18.512 24.174 27.999 53.345 28 86-0.001 25.716-6.045 49.701-18 74-11.956 24.299-29.302 43.475-50 58-20.698 14.535-45.661 24.655-76 28-19.027 2.084-65.236 1.479-138 2h-192v-564zM228 180v130h74c44.481 0 73.201-1.062 84-2 19.541-2.292 34.815-8.809 46-20 11.184-11.18 16-25.745 16-44-0-17.484-4.358-31.070-14-42s-24.974-17.687-44-20c-11.314-1.25-42.263-2-96-2h-66zM228 404v152h106c41.139 0 66.944-1.708 78-4 16.969-3.126 31.329-10.038 42-22 10.67-11.951 16-27.942 16-48-0-16.974-5.773-32.174-14-44-8.228-11.826-18.445-20.592-34-26-15.556-5.418-50.062-8-102-8h-92zM1028 640l-380 380h252c70.912 0 128-57.088 128-128v-252z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-app-bind" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 354, - "id": 241, - "prevSize": 16, - "code": 59704, - "name": "it-app-bind" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 56 - }, - { - "icon": { - "paths": [ - "M132-4c-70.912 0-128 57.088-128 128v768c0 70.912 57.088 128 128 128h418l478-480v-416c0-70.912-57.088-128-128-128h-768zM836 140c41.156 0 73.198 11.587 94 34s30.956 50.584 32 88l-66 4c-2.833-20.931-8.68-34.831-18-44s-23.361-13.999-42-14c-19.236 0.001-33.115 4.181-44 14-7.009 6.298-12 15.442-12 26-0 9.632 3.439 17.147 10 24 8.35 8.706 29.791 18.553 62 28s54.566 17.905 70 28c15.433 10.095 27.276 24.496 36 42s14 40.253 14 66c-0 23.339-5.562 43.625-16 64s-24.913 36.090-44 46c-19.087 9.91-43.519 16-72 16-41.455 0-71.782-12.198-94-36s-35.676-58.433-40-104l64-8c3.877 26.858 12.145 45.404 24 58s27.869 20 48 20c21.324 0 37.189-6.79 48-18 10.811-11.207 16-22.996 16-38-0-9.632-3.452-19.239-8-26s-10.667-10.998-22-16c-7.754-3.331-26.414-9.479-54-18-35.49-10.928-59.685-24.071-74-40-20.131-22.413-30-49.769-30-82 0-20.746 4.531-39.94 14-58s22.18-32.553 40-42c17.819-9.446 38.799-14 64-14zM60 146h120c27.288 0 49.685 2.817 64 8 19.236 7.040 34.281 20.033 48 38s24.842 39.975 32 66c7.157 26.025 10 57.843 10 96-0 33.527-3.29 61.735-10 86-8.202 29.637-18.79 53.662-34 72-11.482 13.892-26.466 26.22-46 34-14.614 5.742-35.545 8-60 8h-124v-408zM392 146h64l134 272v-272h62v408h-66l-132-266v266h-62v-408zM126 216v270h50c18.49 0 31.798-1.411 40-4 10.736-3.331 18.917-10.035 26-18s13.526-19.755 18-38c4.473-18.246 6-44.511 6-76s-1.527-55.144-6-72c-4.474-16.855-11.948-30.553-20-40s-17.623-14.665-30-18c-9.245-2.596-27.010-4-54-4h-30zM1028 640l-380 380h252c70.912 0 128-57.088 128-128v-252z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-app-dns" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 355, - "id": 240, - "prevSize": 16, - "code": 59705, - "name": "it-app-dns" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 57 - }, - { - "icon": { - "paths": [ - "M128 0c-70.912 0-128 57.088-128 128v768c0 70.912 57.088 128 128 128h418l478-480v-416c0-70.912-57.088-128-128-128h-768zM816 172c37.375 0 65.109 7.615 84 24s29.052 38.646 30 66l-60 4c-2.573-15.302-9.537-27.297-18-34s-21.073-10-38-10c-17.469 0-30.115 2.823-40 10-6.365 4.604-10 12.281-10 20-0 7.042 2.042 12.99 8 18 7.583 6.365 26.75 13.094 56 20s51.984 12.62 66 20c14.015 7.38 24.078 17.203 32 30s12 29.177 12 48c-0 17.063-4.521 33.104-14 48s-22.667 26.755-40 34c-17.334 7.245-40.136 10-66 10-37.646-0-65.823-8.599-86-26s-32.073-42.687-36-76l58-6c3.521 19.636 11.234 34.792 22 44s25.719 14 44 14c19.364 0 34.182-3.807 44-12s14-19.031 14-30c-0-7.042-1.87-13.057-6-18s-11.708-8.344-22-12c-7.042-2.437-22.948-7.771-48-14-32.229-7.989-55-16.354-68-28-18.281-16.385-28-36.437-28-60 0-15.166 5.401-30.797 14-44s19.818-23.093 36-30c16.182-6.906 37.114-10 60-10zM86 178h220v50h-160v66h150v50h-150v80h166v52h-226v-298zM364 178h90l54 202 52-202h90v298h-56v-236l-58 236h-58l-58-236v236h-56v-298zM1024 644l-380 380h252c70.912 0 128-57.088 128-128v-252z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-app-ems" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 356, - "id": 239, - "prevSize": 16, - "code": 59706, - "name": "it-app-ems" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 58 - }, - { - "icon": { - "paths": [ - "M128 0c-70.912 0-128 57.088-128 128v768c0 70.912 57.088 128 128 128h418l478-480v-416c0-70.912-57.088-128-128-128h-768zM158 148h112l66 250 66-250h110v366h-68v-288l-72 288h-72l-72-288v288h-70v-366zM586 148h272v62h-198v80h184v62h-184v100h206v62h-280v-366zM1024 644l-380 380h252c70.912 0 128-57.088 128-128v-252z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-app-mediator" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 357, - "id": 238, - "prevSize": 16, - "code": 59707, - "name": "it-app-mediator" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 59 - }, - { - "icon": { - "paths": [ - "M128 0c-70.912 0-128 57.088-128 128v768c0 70.912 57.088 128 128 128h418l478-480v-416c0-70.912-57.088-128-128-128h-768zM58 150h68l142 272v-272h64v408h-70l-140-266v266h-64v-408zM382 150h274v70h-102v338h-70v-338h-102v-70zM702 150h112c42.436 0.001 69.112 1.922 82 6 19.803 6.114 36.64 19.532 50 40s20 47.585 20 80c-0 25.007-4.299 44.959-12 62s-16.134 32.275-28 42c-11.867 9.724-25.741 14.851-38 18-16.66 3.891-40.409 6-72 6h-44v154h-70v-408zM772 220v116h38c27.505 0 44.727-3.734 54-8 9.273-4.259 16.735-10.923 22-20s8-19.96 8-32c-0-14.818-4.613-26.368-12-36s-16.684-15.592-28-18c-8.33-1.848-24.853-2-50-2h-32zM1024 644l-380 380h252c70.912 0 128-57.088 128-128v-252z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-app-ntp" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 358, - "id": 237, - "prevSize": 16, - "code": 59708, - "name": "it-app-ntp" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 60 - }, - { - "icon": { - "paths": [ - "M128 0c-70.912 0-128 57.088-128 128v768c0 70.912 57.088 128 128 128h418l478-480v-416c0-70.912-57.088-128-128-128h-768zM202 144c48.314 0 86.996 18.769 116 56 29.003 37.232 42 87.687 42 154-0 65.757-13.221 118.861-42 156s-67.835 54-116 54c-48.761 0-87.221-17.046-116-54s-44-89.169-44-154c-0-41.491 6.009-75.845 16-104 7.456-20.745 17.101-39.514 30-56s26.641-28.035 42-36c20.429-10.743 45.308-16 72-16zM388 150h262v70h-98v338h-66v-338h-98v-70zM786 150h70l132 408h-72l-28-92h-132l-26 92h-72l128-408zM202 214c-27.289 0.001-49.299 10.754-66 34-16.701 23.247-26 59.137-26 106-0 46.123 8.851 80.199 26 104 17.148 23.803 39.606 36 66 36s47.075-10.383 64-34c16.924-23.617 26-60.766 26-108-0-46.678-7.523-81.031-24-104s-38.712-33.999-66-34zM820 246l-44 150h90l-46-150zM1024 644l-380 380h252c70.912 0 128-57.088 128-128v-252z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-app-ota" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 359, - "id": 236, - "prevSize": 16, - "code": 59709, - "name": "it-app-ota" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 61 - }, - { - "icon": { - "paths": [ - "M128 0c-70.912 0-128 57.088-128 128v768c0 70.912 57.088 128 128 128h418l478-480v-416c0-70.912-57.088-128-128-128h-768zM596 144c50.805 0.001 92.27 16.028 124 50 18.886 20.085 32.556 50.396 42 88l-82 22c-4.911-24.358-14.419-43.897-30-58-15.582-14.101-35.714-21.999-58-22-30.785 0.001-54.83 13.002-74 38s-30 66.020-30 122c-0 59.399 11.113 100.787 30 126s41.781 38 72 38c22.286 0 41.946-7.975 58-24s27.012-41.6 34-76l82 30c-12.465 51.279-33.010 89.108-62 114s-65.428 38-110 38c-55.149 0-100.493-21.374-136-64s-54-102.072-54-176c-0-78.201 18.304-138.733 54-182s81.829-63.999 140-64zM32 152h330v80h-122v390h-84v-390h-124v-80zM1024 644l-380 380h252c70.912 0 128-57.088 128-128v-252z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-app-tomcat" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 360, - "id": 235, - "prevSize": 16, - "code": 59710, - "name": "it-app-tomcat" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 62 - }, - { - "icon": { - "paths": [ - "M128 0c-70.912 0-128 57.088-128 128v768c0 70.912 57.088 128 128 128h418l478-480v-416c0-70.912-57.088-128-128-128h-768zM32 152h330v80h-122v390h-84v-390h-124v-80zM416 152h126l74 320 76-320h126v470h-78v-370l-84 370h-80l-82-370v370h-78v-470zM1024 644l-380 380h252c70.912 0 128-57.088 128-128v-252z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-app-trend" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 361, - "id": 234, - "prevSize": 16, - "code": 59711, - "name": "it-app-trend" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 63 - }, - { - "icon": { - "paths": [ - "M128 0c-70.912 0-128 57.088-128 128v768c0 70.912 57.088 128 128 128h418l478-480v-416c0-70.912-57.088-128-128-128h-768zM450 144c41.156 0 73.198 11.587 94 34s30.956 50.584 32 88l-66 4c-2.833-20.931-8.68-34.831-18-44s-23.361-13.999-42-14c-19.236 0.001-35.115 4.181-46 14-7.009 6.298-10 15.442-10 26-0 9.632 3.439 17.147 10 24 8.35 8.706 29.791 18.553 62 28s54.566 17.905 70 28c15.433 10.095 27.276 24.496 36 42s14 40.253 14 66c-0 23.339-5.562 43.625-16 64s-24.913 36.090-44 46c-19.087 9.91-43.519 16-72 16-41.455 0-71.782-12.198-94-36s-35.676-58.433-40-104l64-8c3.877 26.858 12.145 45.404 24 58s27.869 20 48 20c21.324 0 37.189-6.79 48-18 10.811-11.207 16-22.996 16-38-0-9.632-3.452-19.239-8-26s-10.667-10.998-22-16c-7.754-3.331-26.414-9.479-54-18-35.49-10.928-59.685-24.071-74-40-20.131-22.413-30-49.769-30-82-0-20.746 4.531-39.94 14-58s22.18-32.553 40-42c17.819-9.446 38.799-14 64-14zM32 150h262v70h-98v338h-66v-338h-98v-70zM642 150h98l60 278 58-278h100v408h-62v-320l-64 320h-64l-66-320v320h-60v-408zM1024 644l-380 380h252c70.912 0 128-57.088 128-128v-252z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-app-tsm" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 362, - "id": 233, - "prevSize": 16, - "code": 59712, - "name": "it-app-tsm" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 64 - }, - { - "icon": { - "paths": [ - "M128 0c-70.912 0-128 57.088-128 128v768c0 70.912 57.088 128 128 128h418l478-480v-416c0-70.912-57.088-128-128-128h-768zM24 150h68l50 280 60-280h78l58 286 50-286h66l-78 408h-72l-64-304-66 304h-72l-78-408zM490 154h66v336h164v68h-230v-404zM1024 644l-380 380h252c70.912 0 128-57.088 128-128v-252z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-app-weblogic" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 363, - "id": 232, - "prevSize": 16, - "code": 59713, - "name": "it-app-weblogic" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 65 - }, - { - "icon": { - "paths": [ - "M180 2v168h156v278h172v98h-236v-308h-272v786h272v-340h236v338h274v-784h-274v72h-40v-308h-288zM740 2v168h156v852h132v-1020h-288zM336 748v278h132v-278h-132z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-cluster" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 364, - "id": 231, - "prevSize": 16, - "code": 59714, - "name": "it-cluster" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 66 - }, - { - "icon": { - "paths": [ - "M86 3.923v80.685h268.592v322.739h140.395v93.101h-208.987v-345.498h-286v873.050h286v-388.941h208.987v35.168h286v-519.277h-286v171.712h-80.395v-322.739zM580.987 3.923v80.685h262.913v589.619h60v-670.304zM426 714.022l-122 291.219h68l24-70.342h124l28 70.342h68l-124-291.219zM646 714.022v291.219h64v-291.219zM746 714.022l96 129.85-104 161.37h74l68-107.578 70 107.578h74l-106-159.296 98-131.923h-74l-60 82.266-62-82.266zM458 769.395l42 113.786h-84z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-cluster-hacmp" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 365, - "id": 230, - "prevSize": 16, - "code": 59715, - "name": "it-cluster-hacmp" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 67 - }, - { - "icon": { - "paths": [ - "M86 4v80h268v324h140v92h-208v-346h-286v874h286v-388h208v34h286v-520h-286v172h-80v-322h-328zM580 4v80h264v590h60v-670h-324zM924 704c-34.513 0-60.822 14.992-82 42-21.178 27.014-32 63.181-32 112-0 46.157 10.934 83.389 32 110s47.28 40 80 40c26.445 0 48.8-8.454 66-24 17.2-15.539 28.604-37.987 36-70l-48-20c-4.146 21.478-10.476 37.997-20 48-9.525 10.016-20.778 16-34 16-17.929 0-32.795-8.262-44-24s-18-42.918-18-80c-0-34.95 6.626-60.397 18-76 11.373-15.61 25.735-22 44-22 13.222 0 24.755 3.2 34 12 9.244 8.806 15.087 20.794 18 36l50-14c-5.603-23.475-14.795-41.462-26-54-18.825-21.21-43.858-32-74-32zM340 710v292h46v-190l100 190h50v-292h-46v196l-102-196h-48zM588 710v292h188v-48h-138v-80h124v-50h-124v-64h134v-50h-184z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-cluster-nec" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 366, - "id": 229, - "prevSize": 16, - "code": 59716, - "name": "it-cluster-nec" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 68 - }, - { - "icon": { - "paths": [ - "M86 4v80h268v324h140v92h-208v-346h-286v874h286v-388h208v34h286v-520h-286v172h-80v-322zM580 4v80h264v590h60v-670zM856.41 723.241c-21.125 0-39.063 3.6-54 10-14.938 6.374-26.063 15.814-34 28s-12 24.003-12 38c0 21.754 9.125 40.877 26 56 12 10.752 32.25 20.627 62 28 23.125 5.728 39.5 9.76 46 12 9.5 3.373 16.188 7.456 20 12 3.812 4.563 4 9.504 4 16-0 10.125-2.938 18.435-12 26s-24.125 12-42 12c-16.875 0-30.063-5.501-40-14s-16.75-21.875-20-40l-54 6c3.625 30.752 15.375 53.936 34 70s45.25 24 80 24c23.875 0 44-3.312 60-10s29.25-16.253 38-30c8.75-13.747 12-28.25 12-44-0-17.376-2.688-32.186-10-44s-19.063-21.19-32-28c-12.938-6.816-33-13.6-60-20-27-6.374-43-12.112-50-18-5.5-4.627-8-11.504-8-18-0-7.13 2.125-11.776 8-16 9.125-6.611 21.875-10 38-10 15.625 0 28.187 3.792 36 10 7.812 6.189 11.625 15.875 14 30l56-2c-0.875-25.248-10.563-46.877-28-62s-43.5-22-78-22zM423.783 717.518v276h50v-180l112 180h56v-276h-52v184l-112-184z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-cluster-ns" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 367, - "id": 228, - "prevSize": 16, - "code": 59717, - "name": "it-cluster-ns" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 69 - }, - { - "icon": { - "paths": [ - "M86 0v80h268v324h140v92h-208v-345.997h-286v873.997h286v-388h208v34.003h286v-520h-286v172h-80v-322.003zM580 0v80h264v590.003h60v-670.003zM483.586 734.24v276h56v-120h108v120h56v-276h-56v108h-108v-108zM806.959 734.24v276h56v-104h36c25.125 0 44.75-1.408 58-3.968 9.75-2.112 18.562-7.437 28-13.997 9.437-6.566 17.875-14.502 24-26.003 6.125-11.494 8-25.12 8-41.997-0-21.875-5.375-40.192-16-54.003s-22.25-23.904-38-28c-10.25-2.688-32.25-3.968-66-3.968zM862.959 782.24h26c20 0 33.375 0.704 40 1.984 9 1.6 16.125 5.504 22 12 5.875 6.502 10 14.003 10 24 0 8.128-1.812 15.853-6 21.997s-10.625 9.12-18 12c-7.375 2.88-22.125 6.016-44 6.016h-30z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-cluster-sg" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 368, - "id": 227, - "prevSize": 16, - "code": 59718, - "name": "it-cluster-sg" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 70 - }, - { - "icon": { - "paths": [ - "M514 0c-282.77 0-512 99.331-512 222s229.23 222 512 222c282.77 0 512-99.331 512-222 0-1.383 0.058-2.623 0-4-0.029-0.688 0.043-1.313 0-2-7.57-119.802-234.011-216-512-216zM0 228v138c1.854 20.829 4 44.253 4 54 0 122.669 229.23 222 512 222s512-99.331 512-222v-148c0 122.669-229.23 222-512 222s-512-99.331-512-222c0-7.227-2.795-30.407-4-44zM0 444v130c1.854 20.829 4 44.253 4 54 0 122.669 229.23 222 512 222s512-99.331 512-222v-140c0 122.669-229.23 222-512 222s-512-99.331-512-222c0-7.227-2.795-30.407-4-44zM0 652v138c0.439 3.52 2 9.51 2 12 0 122.669 229.23 222 512 222s512-99.331 512-222c0-2.24 1.483-8.499 2-12v-94c0 122.669-229.23 222-512 222s-512-99.331-512-222c0-7.227-2.795-30.407-4-44z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-database" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 369, - "id": 226, - "prevSize": 16, - "code": 59719, - "name": "it-database" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 71 - }, - { - "icon": { - "paths": [ - "M514 0c-282.77 0-512 99.331-512 222s229.23 222 512 222c282.77 0 512-99.331 512-222 0-1.383 0.058-2.623 0-4-0.029-0.688 0.043-1.313 0-2-7.57-119.802-234.011-216-512-216zM0 228v138c1.854 20.829 4 44.253 4 54 0 122.669 229.23 222 512 222s512-99.331 512-222v-148c0 122.669-229.23 222-512 222s-512-99.331-512-222c0-7.227-2.795-30.407-4-44zM0 444v130c1.854 20.829 4 44.253 4 54 0 17.453 5.225 33.711 14 50h238c-150.238-38.674-252-108.698-252-190 0-7.227-2.795-30.407-4-44zM1028 488c0 81.302-101.762 151.326-252 190h238c8.775-16.289 14-32.547 14-50v-140zM0 652v26h2c-0.917-9.45-1.289-17.978-2-26zM114 716c-21.125 0-39.063 3.6-54 10-14.938 6.374-26.063 15.814-34 28-7.938 12.192-12 26.003-12 40-0 21.747 9.125 38.87 26 54 12 10.746 32.25 20.621 62 28 23.125 5.728 37.5 9.76 44 12 9.5 3.373 16.187 7.456 20 12 3.812 4.563 6 9.498 6 16-0 10.125-4.938 20.442-14 28-9.063 7.571-22.125 10-40 10-16.875 0-30.063-3.494-40-12-9.938-8.499-16.75-21.875-20-40l-54 6c3.625 30.746 15.375 53.936 34 70s45.25 24 80 24c23.875 0 44-3.318 60-10 16-6.688 27.25-18.246 36-32 8.75-13.747 14-28.25 14-44-0-17.37-4.688-32.192-12-44-7.313-11.814-17.063-21.184-30-28-12.938-6.81-33-13.6-60-20-27-6.381-43-12.112-50-18-5.5-4.621-8-9.498-8-16-0-7.123 2.125-13.776 8-18 9.125-6.611 21.875-10 38-10 15.625 0 26.187 3.792 34 10 7.812 6.189 13.625 15.875 16 30l56-2c-0.875-25.248-10.563-44.87-28-60-17.438-15.123-43.5-24-78-24zM398 716c-41.125 0-74 13.066-98 38-24 24.941-36 61.123-36 106-0 44.998 12.062 79.123 36 104 23.937 24.87 55.75 38 98 38 21.875 0 42-4.128 60-12 22.875 15.373 36.25 23.104 38 24 8 4.365 15.625 7.504 24 10l20-40c-16-5.754-30.375-12.253-44-22 11-12.877 19-26.253 24-40 6.625-18.003 10-38.25 10-62-0-44.877-12.125-81.059-36-106-23.875-24.934-55.25-38-96-38zM904 716c-21.125 0-39.063 3.6-54 10-14.938 6.374-26.063 15.814-34 28-7.938 12.192-12 26.003-12 40 0 21.747 9.125 38.87 26 54 12 10.746 32.25 20.621 62 28 23.125 5.728 37.5 9.76 44 12 9.5 3.373 16.188 7.456 20 12 3.812 4.563 6 9.498 6 16-0 10.125-4.938 20.442-14 28-9.063 7.571-22.125 10-40 10-16.875 0-30.063-3.494-40-12-9.938-8.499-16.75-21.875-20-40l-54 6c3.625 30.746 15.375 53.936 34 70s45.25 24 80 24c23.875 0 44-3.318 60-10 16-6.688 27.25-18.246 36-32 8.75-13.747 14-28.25 14-44-0-17.37-4.688-32.192-12-44-7.313-11.814-17.063-21.184-30-28-12.938-6.81-33-13.6-60-20-27-6.381-43-12.112-50-18-5.5-4.621-10-9.498-10-16-0-7.123 4.125-13.776 10-18 9.125-6.611 21.875-10 38-10 15.625 0 26.187 3.792 34 10 7.812 6.189 13.625 15.875 16 30l56-2c-0.875-25.248-10.563-44.87-28-60-17.438-15.123-43.5-24-78-24zM574 724v272h194v-46h-138v-226h-56zM396 764c22.625 0 42 8.314 56 24 14 15.693 20 40.25 20 72-0 15.373-0.438 28.128-4 40-3.563 11.878-8.875 21.629-16 30-16.625-12.499-35.75-21.728-54-28l-14 32c11.625 4.128 22.75 10.627 34 18-7.125 2.624-14 4-22 4-21.5 0-39.938-8.064-54-24s-22-39.878-22-72c-0-31.629 7.937-56.25 22-72s31.375-24 54-24z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-database-mssql" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 370, - "id": 225, - "prevSize": 16, - "code": 59720, - "name": "it-database-mssql" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 72 - }, - { - "icon": { - "paths": [ - "M514 0c-282.77 0-512 99.331-512 222s229.23 222 512 222c282.77 0 512-99.331 512-222 0-1.383 0.058-2.623 0-4-0.029-0.688 0.043-1.313 0-2-7.57-119.802-234.011-216-512-216zM0 228v138c1.854 20.829 4 44.253 4 54 0 122.669 229.23 222 512 222s512-99.331 512-222v-148c0 122.669-229.23 222-512 222s-512-99.331-512-222c0-7.227-2.795-30.407-4-44zM0 444v130c1.854 20.829 4 44.253 4 54 0 17.453 5.225 33.711 14 50h238c-150.238-38.674-252-108.698-252-190 0-7.227-2.795-30.407-4-44zM1028 488c0 81.302-101.762 151.326-252 190h238c8.775-16.289 14-32.547 14-50zM0 652v26h2c-0.917-9.45-1.289-17.978-2-26zM140 716c-22.375 0-42.875 4.749-60 12-12.875 5.376-23.188 12.877-34 24s-19.75 23.997-26 38c-8.375 18.995-14 42-14 70-0 43.75 13.875 79.059 38 104 24.125 24.934 55.125 38 96 38 40.375 0 73.875-12.938 98-38s36-59.622 36-104c-0-44.749-11.688-80.874-36-106s-57.5-38-98-38zM714 716c-38.5 0-70.375 12.688-94 38s-36 62.253-36 108c-0 43.251 12.5 77.059 36 102 23.5 24.934 53.5 38 90 38 29.5 0 52.812-7.44 72-22 19.187-14.566 33.75-37.997 42-68l-54-16c-4.625 20.128-11.375 34.624-22 44-10.625 9.389-23.25 14.006-38 14-20 0.006-37.5-7.248-50-22-12.5-14.746-18-39.248-18-74-0-32.749 5.313-57.37 18-72 12.687-14.624 29.625-22 50-22 14.75 0 27.687 3.75 38 12s16.75 19.747 20 34l56-12c-6.25-22.003-17.5-40.25-30-52-21-19.878-46.375-30-80-30zM316 722v274h56v-114h12c12.75 0 22.125-0.048 28 2 5.875 2.061 10.75 6.432 16 12 5.25 5.562 15.75 18.63 30 40l40 60h66l-34-54c-13.25-21.376-24.188-35.629-32-44-7.813-8.378-16-14.998-28-22 24.125-3.501 41.875-12.56 54-26 12.125-13.434 18-31.373 18-52-0-16.25-4-29.373-12-42-8-12.621-18.688-23.072-32-28-13.313-4.909-34.625-6-64-6zM874 724v272h146.652v-46h-92.652v-226zM140 764c22.875 0 42.187 8.506 56 24 13.812 15.501 20 38.499 20 70-0 31.878-7.813 56.064-22 72s-31.875 24.006-54 24c-22.125 0.006-39.625-7.936-54-24s-22-40.87-22-72c-0-31.622 8-54.307 22-70 14-15.686 31.125-24 54-24zM372 768h44c22.5 0 35.5-0.64 40 0 9 1.498 17.062 6.304 22 12 4.937 5.683 6 12.746 6 22-0 8.25-2.25 14.496-6 20-3.75 5.485-7.375 9.76-14 12s-23.375 4-50 4h-42z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-database-oracle" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 371, - "id": 224, - "prevSize": 16, - "code": 59721, - "name": "it-database-oracle" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 73 - }, - { - "icon": { - "paths": [ - "M514 0c-282.77 0-512 99.331-512 222s229.23 222 512 222c282.77 0 512-99.331 512-222 0-1.383 0.058-2.623 0-4-0.029-0.688 0.043-1.313 0-2-7.57-119.802-234.011-216-512-216zM0 228v138c1.854 20.829 4 44.253 4 54 0 122.669 229.23 222 512 222s512-99.331 512-222v-148c0 122.669-229.23 222-512 222s-512-99.331-512-222c0-7.227-2.795-30.407-4-44zM0 444v130c1.854 20.829 4 44.253 4 54 0 17.453 5.225 33.711 14 50h238c-150.238-38.674-252-108.698-252-190 0-7.227-2.795-30.407-4-44zM1028 488c0 81.302-101.762 151.326-252 190h238c8.775-16.289 14-32.547 14-50v-140zM0 652v26h2c-0.917-9.45-1.289-17.978-2-26zM114 716c-21.125 0-39.063 3.6-54 10-14.938 6.374-26.063 15.814-34 28-7.938 12.192-12 26.003-12 40-0 21.747 9.125 38.87 26 54 12 10.746 32.25 20.621 62 28 23.125 5.728 37.5 9.76 44 12 9.5 3.373 16.187 7.456 20 12 3.812 4.563 6 9.498 6 16-0 10.125-4.938 20.442-14 28-9.063 7.571-22.125 10-40 10-16.875 0-30.063-3.494-40-12-9.938-8.499-16.75-21.875-20-40l-54 6c3.625 30.746 15.375 53.936 34 70s45.25 24 80 24c23.875 0 44-3.318 60-10 16-6.688 27.25-18.246 36-32 8.75-13.747 14-28.25 14-44-0-17.37-4.688-32.192-12-44-7.313-11.814-17.063-21.184-30-28-12.938-6.81-33-13.6-60-20-27-6.381-43-12.112-50-18-5.5-4.621-8-9.498-8-16-0-7.123 2.125-13.776 8-18 9.125-6.611 21.875-10 38-10 15.625 0 26.187 3.792 34 10 7.812 6.189 13.625 15.875 16 30l56-2c-0.875-25.248-10.563-44.87-28-60-17.438-15.123-43.5-24-78-24zM904 716c-21.125 0-39.063 3.6-54 10-14.938 6.374-26.063 15.814-34 28-7.938 12.192-12 26.003-12 40-0 21.747 9.125 38.87 26 54 12 10.746 32.25 20.621 62 28 23.125 5.728 37.5 9.76 44 12 9.5 3.373 16.188 7.456 20 12 3.812 4.563 6 9.498 6 16-0 10.125-2.938 20.442-12 28-9.063 7.571-24.125 10-42 10-16.875 0-30.063-3.494-40-12-9.938-8.499-16.75-21.875-20-40l-54 6c3.625 30.746 15.375 53.936 34 70s45.25 24 80 24c23.875 0 44-3.318 60-10 16-6.688 27.25-18.246 36-32 8.75-13.747 14-28.25 14-44-0-17.37-2.688-32.192-10-44-7.313-11.814-19.063-21.184-32-28-12.938-6.81-33-13.6-60-20-27-6.381-43-12.112-50-18-5.5-4.621-8-9.498-8-16-0-7.123 2.125-13.776 8-18 9.125-6.611 21.875-10 38-10 15.625 0 28.187 3.792 36 10 7.812 6.189 11.625 15.875 14 30l56-2c-0.876-25.248-10.563-44.87-28-60-17.438-15.123-43.5-24-78-24zM246 722l100 158v116h56v-114l102-160h-64l-64 108-64-108h-66zM532 722v274h92c35.375-0.256 58.75-0.976 68-2 14.75-1.626 27.937-4.934 38-12 10.062-7.059 16.188-16.186 22-28 5.812-11.808 10-25.501 10-38-0-15.872-5-28.25-14-40s-21.25-21.136-38-26c11.875-5.376 21.062-13.254 28-24 6.937-10.752 10-23.13 10-36-0-11.878-2.375-22.438-8-32s-13.563-16.24-22-22c-8.438-5.773-17.313-10.208-28-12-10.688-1.856-26.25-2-48-2h-110zM586 768h32c26.125 0 42.5-0.64 48 0 9.25 1.126 17.312 4.688 22 10s6 11.501 6 20c-0 8.877-2.563 16.56-8 22-5.437 5.434-12.5 8.848-22 10-5.25 0.96-18.375 0-40 0h-38v-62zM586 876h46c25.25 0 40.437 1.376 48 4s14 8.24 18 14c4 5.747 6 11.75 6 20-0 9.747-2.813 18.176-8 24-5.188 5.85-11.75 8.528-20 10-5.375 1.024-18 2-38 2h-52v-74z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-database-sybase" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 372, - "id": 223, - "prevSize": 16, - "code": 59722, - "name": "it-database-sybase" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 74 - }, - { - "icon": { - "paths": [ - "M514 0c-282.77 0-512 99.331-512 222s229.23 222 512 222c282.77 0 512-99.331 512-222 0-1.383 0.058-2.623 0-4-0.029-0.688 0.043-1.313 0-2-7.57-119.802-234.011-216-512-216zM576 72c40.75 0 74.125 13.059 98 38 23.875 24.934 36 59.13 36 104-0 23.75-3.375 44.003-10 62-5 13.754-13 27.123-24 40 13.625 9.747 28 18.253 44 24l-20 40c-8.375-2.496-18-7.642-26-12-1.75-0.896-13.125-8.627-36-24-18 7.872-38.125 12-60 12-42.25 0-76.063-13.123-100-38s-36-59.002-36-104c-0-44.87 12-79.066 36-104 24-24.941 56.875-38 98-38zM346 76h56v276h-56v-276zM560 120c-15.363 2.954-27.453 12.187-38 24-14.063 15.75-22 38.378-22 70-0 32.128 7.937 56.064 22 72s30.5 24 52 24c8 0 16.875-1.376 24-4-11.25-7.373-24.375-13.878-36-18l16-30c18.25 6.272 35.375 15.501 52 28 7.125-8.378 12.437-20.128 16-32 3.562-11.878 5.999-24.621 6-40-0-31.75-6-56.314-20-72s-33.375-22-56-22c-5.656 0-10.879-0.985-16 0zM0 228v138c1.854 20.829 4 44.253 4 54 0 122.669 229.23 222 512 222s512-99.331 512-222v-148c0 122.669-229.23 222-512 222s-512-99.331-512-222c0-7.227-2.795-30.407-4-44zM0 444v130c1.854 20.829 4 44.253 4 54 0 17.453 5.225 33.711 14 50h238c-150.238-38.674-252-108.698-252-190 0-7.227-2.795-30.407-4-44zM1028 488c0 81.302-101.762 151.326-252 190h238c8.775-16.289 14-32.547 14-50v-140zM0 652v26h2c-0.917-9.45-1.289-17.978-2-26zM114 716c-21.125 0-39.063 3.6-54 10-14.938 6.374-26.063 15.814-34 28-7.938 12.192-12 26.003-12 40-0 21.747 9.125 38.87 26 54 12 10.746 32.25 20.621 62 28 23.125 5.728 37.5 9.76 44 12 9.5 3.373 16.187 7.456 20 12 3.812 4.563 6 9.498 6 16-0 10.125-4.938 20.442-14 28-9.063 7.571-22.125 10-40 10-16.875 0-30.063-3.494-40-12-9.938-8.499-16.75-21.875-20-40l-54 6c3.625 30.746 15.375 53.936 34 70s45.25 24 80 24c23.875 0 44-3.318 60-10 16-6.688 27.25-18.246 36-32 8.75-13.747 14-28.25 14-44-0-17.37-4.688-32.192-12-44-7.313-11.814-17.063-21.184-30-28-12.938-6.81-33-13.6-60-20-27-6.381-43-12.112-50-18-5.5-4.621-8-9.498-8-16-0-7.123 2.125-13.776 8-18 9.125-6.611 21.875-10 38-10 15.625 0 26.187 3.792 34 10 7.812 6.189 13.625 15.875 16 30l56-2c-0.875-25.248-10.563-44.87-28-60-17.438-15.123-43.5-24-78-24zM904 716c-21.125 0-39.063 3.6-54 10-14.938 6.374-26.063 15.814-34 28-7.938 12.192-12 26.003-12 40-0 21.747 9.125 38.87 26 54 12 10.746 32.25 20.621 62 28 23.125 5.728 37.5 9.76 44 12 9.5 3.373 16.188 7.456 20 12 3.812 4.563 6 9.498 6 16-0 10.125-2.938 20.442-12 28-9.063 7.571-24.125 10-42 10-16.875 0-30.063-3.494-40-12-9.938-8.499-16.75-21.875-20-40l-54 6c3.625 30.746 15.375 53.936 34 70s45.25 24 80 24c23.875 0 44-3.318 60-10 16-6.688 27.25-18.246 36-32 8.75-13.747 14-28.25 14-44-0-17.37-2.688-32.192-10-44-7.313-11.814-19.063-21.184-32-28-12.938-6.81-33-13.6-60-20-27-6.381-43-12.112-50-18-5.5-4.621-8-9.498-8-16-0-7.123 2.125-13.776 8-18 9.125-6.611 21.875-10 38-10 15.625 0 28.187 3.792 36 10 7.812 6.189 11.625 15.875 14 30l56-2c-0.876-25.248-10.563-44.87-28-60-17.438-15.123-43.5-24-78-24zM246 722l100 158v116h56v-114l102-160h-64l-64 108-64-108h-66zM532 722v274h92c35.375-0.256 58.75-0.976 68-2 14.75-1.626 27.937-4.934 38-12 10.062-7.059 16.188-16.186 22-28 5.812-11.808 10-25.501 10-38-0-15.872-5-28.25-14-40s-21.25-21.136-38-26c11.875-5.376 21.062-13.254 28-24 6.937-10.752 10-23.13 10-36-0-11.878-2.375-22.438-8-32s-13.563-16.24-22-22c-8.438-5.773-17.313-10.208-28-12-10.688-1.856-26.25-2-48-2h-110zM586 768h32c26.125 0 42.5-0.64 48 0 9.25 1.126 17.312 4.688 22 10s6 11.501 6 20c-0 8.877-2.563 16.56-8 22-5.437 5.434-12.5 8.848-22 10-5.25 0.96-18.375 0-40 0h-38v-62zM586 876h46c25.25 0 40.437 1.376 48 4s14 8.24 18 14c4 5.747 6 11.75 6 20-0 9.747-2.813 18.176-8 24-5.188 5.85-11.75 8.528-20 10-5.375 1.024-18 2-38 2h-52v-74z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-database-sybaseiq" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 373, - "id": 222, - "prevSize": 16, - "code": 59723, - "name": "it-database-sybaseiq" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 75 - }, - { - "icon": { - "paths": [ - "M96 0c-53.411 0-96 46.841-96 106v354c0 59.159 42.589 108 96 108h832c53.411 0 96-48.841 96-108v-354c0-59.159-42.589-106-96-106zM76 74h872v420h-872zM128 148v132h338v-132zM546 148v132h338v-132zM126 326v130h338v-130zM546 326v130h338v-130zM0 605.772v320h110c21.777 0 40.987-1.48 54-6 17.395-6.125 29.775-15.063 40-26 13.544-14.438 24.696-34.667 32-58 5.975-19.104 8-41.604 8-68-0-30.041-1.626-55.51-8-76s-15.784-37.854-28-52c-12.217-14.146-26.87-22.458-44-28-12.748-4.083-31.7-6-56-6zM294 605.772v320h224v-54h-164v-88h146v-54h-146v-70h158v-54zM570 607.772v318h204v-54h-146v-264zM818 607.772v318h206v-54h-146v-264zM58 659.772h28c24.035 0 39.767-0.041 48 2 11.021 2.625 20.829 8.563 28 16s12.016 16.729 16 30c3.983 13.271 6 33.209 6 58s-2.017 43.636-6 58c-3.984 14.365-9.693 25.729-16 32s-14.439 9.375-24 12c-7.304 2.042-19.534 4-36 4h-44z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-diskraid-dellmd" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 374, - "id": 221, - "prevSize": 16, - "code": 59724, - "name": "it-diskraid-dellmd" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 76 - }, - { - "icon": { - "paths": [ - "M96 0c-53.411 0-96 46.841-96 106v354c0 59.159 42.589 108 96 108h832c53.411 0 96-48.841 96-108v-354c0-59.159-42.589-106-96-106zM76 74h872v420h-872zM128 148v132h338v-132zM546 148v132h338v-132zM126 326v130h338v-130zM546 326v130h338v-130zM854 613.898c-44.917 0-82.438 14.469-110 44s-40 72.625-40 126c-0 50.458 12.583 88.906 40 118s63.417 44 106 44c34.416 0 61.614-9.010 84-26s38.375-43 48-78l-62-20c-5.396 23.479-15.604 41.063-28 52s-26.792 16-44 16c-23.334 0-41.417-8.792-56-26s-22-45.458-22-86c-0-38.208 7.198-64.937 22-82s34.229-26 58-26c17.208 0 31.969 4.375 44 14s20.208 23.375 24 40l64-16c-7.292-25.666-19.417-44.291-34-58-24.5-23.187-54.771-36-94-36zM42 619.898v320h244v-54h-180v-86h162v-54h-162v-72h174v-54zM340 619.898v320h60v-252l64 252h62l64-252v252h60v-320h-98l-56 218-60-218z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-diskraid-emc" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 375, - "id": 220, - "prevSize": 16, - "code": 59725, - "name": "it-diskraid-emc" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 77 - }, - { - "icon": { - "paths": [ - "M96 0c-53.411 0-96 46.841-96 106v354c0 59.159 42.589 108 96 108h832c53.411 0 96-48.841 96-108v-354c0-59.159-42.589-106-96-106zM76 74h872v420h-872zM128 148v132h338v-132zM546 148v132h338v-132zM126 326v130h338v-130zM546 326v130h338v-130zM906 622.576c-22.115 0-42.363 4.563-58 12s-27.691 17.781-36 32c-8.309 14.219-12 29.667-12 46 0 25.375 8.335 46.354 26 64 12.562 12.542 34.857 23.396 66 32 24.208 6.708 41.195 11.375 48 14 9.945 3.937 16.009 8.677 20 14s6 12.417 6 20c-0 11.813-4.513 21.177-14 30s-23.288 14-42 14c-17.665 0-31.597-6.083-42-16s-18.598-24.854-22-46l-56 6c3.795 35.875 14.503 63.26 34 82s47.622 28 84 28c24.993 0 47.25-4.198 64-12s28.84-19.958 38-36c9.159-16.042 14-33.625 14-52-0-20.271-4.346-36.219-12-50s-18.457-24.052-32-32c-13.544-7.948-33.736-16.562-62-24s-46.672-15.146-54-22c-5.758-5.396-8-10.416-8-18-0-8.312 3.85-15.041 10-20 9.552-7.729 21.12-12 38-12 16.357 0 29.821 2.781 38 10s13.514 19.521 16 36l58-2c-0.916-29.458-9.746-54.354-28-72s-45.884-26-82-26zM0 628.576v320h218v-54h-160v-88h144v-54h-144v-70h156v-54zM248 628.576v54h86v266h58v-266h84v-54zM514 628.576v320h54v-208l116 208h60v-320h-54v214l-118-214z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-diskraid-eternus" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 376, - "id": 219, - "prevSize": 16, - "code": 59726, - "name": "it-diskraid-eternus" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 78 - }, - { - "icon": { - "paths": [ - "M96 0c-53.411 0-96 46.841-96 106v354c0 59.159 42.589 108 96 108h832c53.411 0 96-48.841 96-108v-354c0-59.159-42.589-106-96-106h-832zM76 74h872v420h-872v-420zM128 148v132h338v-132h-338zM546 148v132h338v-132h-338zM126 326v130h338v-130h-338zM546 326v130h338v-130h-338zM216 620v322h72v-136h134v-54h-134v-76h154v-56h-226zM728 620v208c-0 25.958-2.021 43.761-8 52-5.663 7.804-14.751 11.587-28 12-12.099-1.212-21.741-7.699-28-18-4.667-7.583-7.271-19.625-8-38h-6l-62 6c0.146 34.271 8.937 60.281 26 78 14.335 14.887 33.371 23.621 58 26 6.9 1.241 14.089 2 22 2 26.979 0 49.521-6.698 66-18s27.729-25.333 34-44c4.667-14.292 6-35.458 6-62v-204h-72z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-diskraid-fujitsu" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 377, - "id": 218, - "prevSize": 16, - "code": 59727, - "name": "it-diskraid-fujitsu" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 79 - }, - { - "icon": { - "paths": [ - "M96 0c-53.411 0-96 46.841-96 106v354c0 59.159 42.589 108 96 108h832c53.411 0 96-48.841 96-108v-354c0-59.159-42.589-106-96-106zM76 74h872v420h-872zM128 148v132h338v-132zM546 148v132h338v-132zM126 326v130h338v-130zM546 326v130h338v-130zM826 618.237c-24.646 0-46.573 4.563-64 12s-30.74 17.782-40 32c-9.26 14.219-14 29.667-14 46-0 25.375 10.312 46.354 30 64 14 12.542 39.292 23.396 74 32 26.979 6.708 44.417 11.375 52 14 11.083 3.937 17.552 8.677 22 14s8 12.417 8 20c-0 11.813-5.427 21.177-16 30s-27.146 14-48 14c-19.688 0-34.406-6.083-46-16s-20.209-24.854-24-46l-62 6c4.229 35.875 16.271 63.26 38 82s53.458 28 94 28c27.854 0 51.333-4.198 70-12s31.791-19.958 42-36c10.208-16.042 16-33.625 16-52-0-20.271-3.469-36.219-12-50s-20.906-24.052-36-32c-15.094-7.948-38.5-16.562-70-24s-51.833-15.146-60-22c-6.417-5.396-10-10.416-10-18-0-8.312 3.146-15.041 10-20 10.646-7.729 27.187-12 46-12 18.229 0 30.885 2.781 40 10s15.229 19.521 18 36l64-2c-1.021-29.458-11.657-54.354-32-72s-49.75-26-90-26zM66 624.237v320h64v-140h128v140h64v-320h-64v126h-128v-126zM390 624.237v320h122c23.916 0 41.708-1.479 56-6 19.104-6.125 34.771-15.062 46-26 14.875-14.437 25.979-32.667 34-56 6.562-19.104 10-41.604 10-68-0-30.041-3-55.51-10-76s-16.584-37.854-30-52c-13.417-14.146-31.188-24.458-50-30-14-4.083-33.313-6-60-6zM454 678.237h30c26.396 0 42.958-0.042 52 2 12.104 2.625 22.125 8.563 30 16s13.625 18.729 18 32c4.375 13.271 8 31.209 8 56s-3.625 43.636-8 58c-4.375 14.365-9.073 25.729-16 32s-15.5 11.375-26 14c-8.021 2.042-21.99 0.371-40 2h-48z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-diskraid-hds" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 378, - "id": 217, - "prevSize": 16, - "code": 59728, - "name": "it-diskraid-hds" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 80 - }, - { - "icon": { - "paths": [ - "M96 0c-53.411 0-96 46.841-96 106v354c0 59.159 42.589 108 96 108h832c53.411 0 96-48.841 96-108v-354c0-59.159-42.589-106-96-106zM76 74h872v420h-872zM128 148v132h338v-132zM546 148v132h338v-132zM126 326v130h338v-130zM546 326v130h338v-130zM732 617.593c-24.727 0-45.075 5.071-64 14-14.229 6.62-28.051 16.298-40 30s-21.093 28.757-28 46c-9.255 23.401-14 51.514-14 86-0 53.884 13.339 97.286 40 128s62.828 46 108 46c44.619 0 79.339-15.132 106-46s40-73.346 40-128c-0-55.115-13.132-99.055-40-130s-63.243-46-108-46zM262 623.593l-118 338h64l26-76h120l28 76h66l-122-338zM480 623.593v60h58v-60zM734 675.593c25.28 0 44.735 8.91 60 28s24 49.204 24 88c-0 39.258-8.321 68.371-24 88s-35.549 30-60 30c-24.451 0-44.114-10.217-60-30s-24-49.665-24-88c-0-38.95 6.528-66.678 22-86s36.72-30 62-30zM294 701.593l42 126h-84zM480 715.593v246h58v-246z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-diskraid-hpaio" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 379, - "id": 216, - "prevSize": 16, - "code": 59729, - "name": "it-diskraid-hpaio" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 81 - }, - { - "icon": { - "paths": [ - "M96 0c-53.411 0-96 46.841-96 106v354c0 59.159 42.589 108 96 108h832c53.411 0 96-48.841 96-108v-354c0-59.159-42.589-106-96-106zM76 74h872v420h-872zM128 148v132h338v-132zM546 148v132h338v-132zM126 326v130h338v-130zM546 326v130h338v-130zM516 617.593c-23.346 0-41.492 4.148-58 12s-29.228 18.99-38 34c-8.772 15.011-14 30.757-14 48-0 26.788 9.351 49.372 28 68 13.261 13.24 37.122 24.917 70 34 25.556 7.082 40.817 11.229 48 14 10.499 4.157 17.787 10.381 22 16s6 11.994 6 20c-0 12.47-3.985 22.686-14 32s-24.246 14-44 14c-18.649 0-35.018-5.531-46-16s-18.408-25.677-22-48l-58 6c4.006 37.873 15.417 66.217 36 86s49.597 30 88 30c26.385 0 48.318-3.763 66-12s32.33-21.065 42-38c9.669-16.935 14-34.602 14-54-0-21.399-3.919-39.451-12-54s-19.703-25.609-34-34c-14.298-8.39-36.162-18.148-66-26s-48.264-14.764-56-22c-6.078-5.696-10-11.994-10-20-0-8.775 3.507-16.765 10-22 10.084-8.159 24.18-12 42-12 17.267 0 31.366 4.38 40 12s13.375 20.604 16 38l62-4c-0.967-31.098-10.73-55.371-30-74s-49.873-28-88-28zM56 623.593v338h56v-266l62 266h58l60-266v266h58v-338h-92l-56 230-54-230zM782 623.593l-118 338h64l26-76h120l28 76h66l-122-338zM814 701.593l42 126h-84z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-diskraid-hpmsa" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 380, - "id": 215, - "prevSize": 16, - "code": 59730, - "name": "it-diskraid-hpmsa" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 82 - }, - { - "icon": { - "paths": [ - "M96 0c-53.411 0-96 46.841-96 106v354c0 59.159 42.589 108 96 108h832c53.411 0 96-48.841 96-108v-354c0-59.159-42.589-106-96-106zM76 74h872v420h-872zM128 148v132h338v-132zM546 148v132h338v-132zM126 326v130h338v-130zM546 326v130h338v-130zM152 625.254v338h62v-338zM272 625.254v338h104c39.094-0.307 63.777-0.769 74-2 16.3-2.001 28.879-7.302 40-16s21.576-21.451 28-36c6.423-14.549 8-28.604 8-44-0-19.552-4.054-37.528-14-52s-23.489-23.996-42-30c13.123-6.62 22.333-16.76 30-30s12-28.142 12-44c-0-14.625-3.784-26.222-10-38s-12.676-22.918-22-30c-9.325-7.082-20.189-11.768-32-14s-29.964-2-54-2zM578 625.254v338h56v-266l62 266h58l60-266v266h58v-338h-92l-56 230-54-230zM334 681.254h34c28.871 0 47.922-0.769 54 0 10.222 1.386 16.82 5.457 22 12s8 15.531 8 26c-0 10.931-1.991 19.303-8 26s-15.501 10.615-26 12c-5.802 0.769-20.102 2-44 2h-40zM334 815.254h50c27.904 0 45.642 2.767 54 6s13.579 6.918 18 14c4.42 7.082 8 15.839 8 26-0 12.009-4.267 22.841-10 30s-12.883 10.153-22 12c-5.94 1.386-19.898 2-42 2h-56z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-diskraid-ibm" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 381, - "id": 214, - "prevSize": 16, - "code": 59731, - "name": "it-diskraid-ibm" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 83 - }, - { - "icon": { - "paths": [ - "M96 0c-53.411 0-96 46.841-96 106v354c0 59.159 42.589 108 96 108h832c53.411 0 96-48.841 96-108v-354c0-59.159-42.589-106-96-106zM76 74h872v420h-872zM128 148v132h338v-132zM546 148v132h338v-132zM126 326v130h338v-130zM546 326v130h338v-130zM338 610.576c-23.346 0-43.492 4.148-60 12s-29.228 18.99-38 34c-8.772 15.011-12 30.757-12 48-0 26.788 9.351 49.372 28 68 13.261 13.24 35.122 24.917 68 34 25.556 7.082 42.817 11.229 50 14 10.499 4.157 17.787 10.38 22 16s6 11.994 6 20c-0 12.47-5.985 22.686-16 32s-24.246 14-44 14c-18.649 0-33.018-5.531-44-16s-18.408-25.677-22-48l-60 6c4.006 37.873 17.417 66.217 38 86s49.597 30 88 30c26.385 0 48.318-3.763 66-12s30.33-21.065 40-38c9.67-16.935 16-34.602 16-54-0-21.399-3.919-39.451-12-54s-19.703-25.609-34-34c-14.298-8.39-36.162-18.148-66-26s-50.264-14.764-58-22c-6.078-5.696-8-11.994-8-20-0-8.775 3.507-16.765 10-22 10.084-8.159 24.18-12 42-12 17.267 0 29.366 4.38 38 12s15.375 20.604 18 38l60-4c-0.967-31.098-10.73-55.371-30-74s-47.873-28-86-28zM514 616.576v338h58v-266l60 266h58l60-266v266h58v-338h-92l-54 230-56-230z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-diskraid-ibmsm" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 382, - "id": 213, - "prevSize": 16, - "code": 59732, - "name": "it-diskraid-ibmsm" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 84 - }, - { - "icon": { - "paths": [ - "M545.978 325.073h338.060v129.629h-338.060v-129.629z", - "M545.978 147.596h338.060v131.631h-338.060v-131.631z", - "M126.045 325.073h337.967v129.629h-337.967v-129.629z", - "M128.047 147.596h337.967v131.631h-337.967v-131.631z", - "M928.023 0h-832c-53.434 0-96.023 46.732-96.023 105.705v353.001c0 58.973 42.589 107.706 96.023 107.706h832.047c53.341 0 95.977-48.733 95.977-107.706v-353.001c-0.047-58.973-42.636-105.705-96.023-105.705zM948.038 492.637h-872.029v-418.863h872.029v418.863z", - "M326.051 844.102c-7.68 22.481-13.405 39.657-17.036 51.293-3.212-10.519-8.332-26.298-15.267-47.383l-75.916-226.444h-63.907v319.814h40.913v-272.244l92.719 272.244h38.353l93.091-267.636v267.636h40.96v-319.814h-57.065l-76.847 222.534z", - "M838.982 772.934c-12.753-5.818-36.399-12.614-70.889-20.387-34.444-7.82-55.808-15.407-63.953-22.807-8.378-7.401-12.521-16.849-12.521-28.346 0-13.219 5.818-24.529 17.594-33.932 11.729-9.402 30.394-14.103 56.087-14.103 24.623 0 43.241 5.167 55.855 15.453 12.66 10.38 20.061 25.6 22.202 45.894l40.774-3.119c-0.791-18.665-5.958-35.561-15.732-50.362-9.821-14.801-23.785-26.065-41.937-33.745-18.153-7.587-39.098-11.404-62.883-11.404-21.597 0-41.239 3.631-58.833 10.845-17.641 7.261-31.139 17.92-40.262 31.977-9.216 14.010-13.777 29.091-13.777 45.335 0 14.615 3.77 27.927 11.217 39.75 7.494 11.823 18.944 21.783 34.211 29.789 11.823 6.237 32.396 12.893 61.952 19.968 29.463 7.028 48.454 12.288 57.111 15.593 13.405 5.12 23.040 11.404 28.858 18.851 5.818 7.494 8.751 16.291 8.751 26.298 0 9.914-2.979 18.991-9.030 27.369-6.097 8.332-15.313 14.941-27.695 19.735-12.428 4.841-26.717 7.168-42.915 7.168-18.246 0-34.583-3.119-49.199-9.449-14.615-6.284-25.414-14.569-32.256-24.855-6.935-10.24-11.311-23.366-13.219-39.331l-39.983 3.491c0.559 21.318 6.377 40.495 17.594 57.437 11.124 16.943 26.438 29.603 46.127 37.981 19.596 8.471 43.892 12.66 72.89 12.66 22.993 0 43.567-4.236 61.812-12.614 18.339-8.378 32.349-20.061 42.124-35.095s14.662-31.046 14.662-48.035c0-17.175-4.515-32.396-13.359-45.521-8.844-13.033-22.668-23.831-41.379-32.489z" - ], - "attrs": [ - { - "fill": "rgb(100, 148, 206)" - }, - { - "fill": "rgb(100, 148, 206)" - }, - { - "fill": "rgb(100, 148, 206)" - }, - { - "fill": "rgb(100, 148, 206)" - }, - { - "fill": "rgb(100, 148, 206)" - }, - { - "fill": "rgb(100, 148, 206)" - }, - { - "fill": "rgb(100, 148, 206)" - } - ], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-diskraid-macrosan" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [ - 4, - 4, - 4, - 4, - 4, - 4, - 4 - ] - } - }, - "attrs": [ - { - "fill": "rgb(100, 148, 206)" - }, - { - "fill": "rgb(100, 148, 206)" - }, - { - "fill": "rgb(100, 148, 206)" - }, - { - "fill": "rgb(100, 148, 206)" - }, - { - "fill": "rgb(100, 148, 206)" - }, - { - "fill": "rgb(100, 148, 206)" - }, - { - "fill": "rgb(100, 148, 206)" - } - ], - "properties": { - "order": 383, - "id": 212, - "prevSize": 16, - "code": 59733, - "name": "it-diskraid-macrosan" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 85 - }, - { - "icon": { - "paths": [ - "M96 0c-53.411 0-96 46.841-96 106v354c0 59.159 42.589 108 96 108h832c53.411 0 96-48.841 96-108v-354c0-59.159-42.589-106-96-106zM76 74h872v420h-872zM128 148v132h338v-132zM546 148v132h338v-132zM126 326v130h338v-130zM546 326v130h338v-130zM222 616.576v338h56v-220l124 220h60v-338h-56v226l-124-226zM616 616.576l-118 338h64l26-76h120l28 76h66l-122-338zM648 694.576l42 126h-84z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-diskraid-netapp" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 384, - "id": 211, - "prevSize": 16, - "code": 59734, - "name": "it-diskraid-netapp" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 86 - }, - { - "icon": { - "paths": [ - "M96 0c-53.411 0-96 46.841-96 106v354c0 59.159 42.589 108 96 108h832c53.411 0 96-48.841 96-108v-354c0-59.159-42.589-106-96-106zM76 74h872v420h-872zM128 148v132h338v-132zM546 148v132h338v-132zM126 326v130h338v-130zM546 326v130h338v-130zM210 614.915c-23.346 0-43.492 4.148-60 12s-29.228 18.99-38 34c-8.772 15.011-12 30.757-12 48-0 26.788 9.351 49.372 28 68 13.261 13.24 35.122 24.917 68 34 25.556 7.082 42.817 11.229 50 14 10.499 4.157 17.787 10.38 22 16s6 11.994 6 20c-0 12.47-5.985 22.686-16 32s-24.246 14-44 14c-18.649 0-33.018-5.531-44-16s-18.408-25.677-22-48l-60 6c4.006 37.873 17.417 66.217 38 86s49.597 30 88 30c26.385 0 48.318-3.763 66-12s30.33-21.065 40-38c9.67-16.935 16-34.602 16-54-0-21.399-3.919-39.451-12-54s-19.703-25.609-34-34c-14.298-8.39-36.162-18.148-66-26s-48.264-14.764-56-22c-6.078-5.696-10-11.994-10-20-0-8.775 3.507-16.765 10-22 10.084-8.159 24.18-12 42-12 17.267 0 29.366 4.38 38 12s15.375 20.604 18 38l60-4c-0.967-31.098-10.73-55.371-30-74s-47.873-28-86-28zM386 620.915v180c0 37.873 1.994 66.602 6 86 2.763 13.086 9.297 26.069 18 38s21.012 20.533 36 28c14.988 7.467 36.99 12 66 12 24.036 0 43.081-3.149 58-10s27.090-16.453 36-28c8.91-11.547 14.684-25.219 18-42s6-45.356 6-86v-178h-62v186c0 26.788-0.204 46.454-2 58s-7.159 22.071-16 30c-8.841 7.928-22.594 12-40 12-17.13 0-30.123-5.61-40-14s-17.375-18.144-20-32c-1.52-8.621-2-28.903-2-58v-182zM694 620.915v338h58v-220l122 220h62v-338h-58v226l-124-226z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-diskraid-sun" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 385, - "id": 210, - "prevSize": 16, - "code": 59735, - "name": "it-diskraid-sun" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 87 - }, - { - "icon": { - "paths": [ - "M0 0v176h242v-176h-242zM346 0v176h352v-176h-352zM800 0v176h224v-176h-224zM30 232v176h354v-176h-354zM488 232v176h352v-176h-352zM942 232v176h82v-176h-82zM0 462v178h256v-178h-256zM366 462v178h352v-178h-352zM822 462v178h202v-178h-202zM30 702v176h354v-176h-354zM488 702v176h352v-176h-352zM942 702v176h82v-176h-82zM0 934v90h242v-90h-242zM346 934v90h352v-90h-352zM800 934v90h224v-90h-224z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-firewall" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 386, - "id": 209, - "prevSize": 16, - "code": 59736, - "name": "it-firewall" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 88 - }, - { - "icon": { - "paths": [ - "M68 0c-37.728 0-68 30.272-68 68v888c0 37.728 30.272 68 68 68h888c37.728 0 68-30.272 68-68v-888c0-37.728-30.272-68-68-68h-888zM242 64h104v112h352v-112h102v112h160v56h-18v176h18v490h-160v62h-102v-62h-352v62h-104v-62h-178v-490h320v-176h-320v-56h178v-112zM488 232v176h352v-176h-352zM380 478c-44.917 0-82.438 14.47-110 44s-40 72.624-40 126c0 50.458 12.583 88.906 40 118s63.417 44 106 44c34.417 0 61.614-9.008 84-26s38.375-42.998 48-78l-62-20c-5.396 23.482-13.604 41.062-26 52-12.396 10.963-26.792 16-44 16-23.333 0-43.417-8.79-58-26s-22-45.456-22-86c-0-38.208 7.198-64.938 22-82s34.229-26 58-26c17.208 0 31.969 4.374 44 14s20.208 23.373 24 40l64-16c-7.292-25.67-17.417-44.291-32-58-24.5-23.187-56.771-36-96-36zM564 484v320h66v-120h42c29.312 0 50.541-2.928 66-6 11.375-2.477 22.989-6.346 34-14 11.010-7.661 20.854-18.586 28-32 7.146-13.421 10-30.314 10-50-0-25.523-5.604-45.885-18-62s-27.625-27.2-46-32c-11.959-3.2-38.625-4-78-4h-104zM630 538h30c23.333 0 40.271 0.531 48 2 10.5 1.901 19.146 6.416 26 14s10 18.333 10 30c-0 9.478-3.115 16.858-8 24-4.886 7.149-11.396 12.672-20 16-8.604 3.392-26.479 6-52 6h-34v-92z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-firewall-checkpoint" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 387, - "id": 208, - "prevSize": 16, - "code": 59737, - "name": "it-firewall-checkpoint" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 89 - }, - { - "icon": { - "paths": [ - "M68 0c-37.964 0-68 30.272-68 68v888c0 37.728 30.036 68 68 68h894c37.964 0 68-30.272 68-68v-888c0-37.728-30.036-68-68-68h-894zM244 64h104v112h354v-112h102v112h162v56h-18v176h18v490h-162v62h-102v-62h-354v62h-104v-62h-180v-490h322v-176h-322v-56h180v-112zM492 232v176h354v-176h-354zM340 492c-44.917 0-82.438 14.47-110 44s-40 72.624-40 126c0 50.458 12.583 88.906 40 118s63.417 44 106 44c34.416 0 61.614-9.008 84-26s38.375-42.998 48-78l-62-20c-5.396 23.482-13.604 41.062-26 52-12.396 10.963-26.792 16-44 16-23.334 0-43.417-8.79-58-26s-22-45.456-22-86c-0-38.208 7.198-64.938 22-82s34.229-26 58-26c17.208 0 31.969 4.355 44 14 12.031 9.626 20.208 23.373 24 40l64-16c-7.292-25.67-17.417-44.291-32-58-24.5-23.187-56.771-36-96-36zM714 492c-44.917 0-82.438 14.47-110 44s-40 72.624-40 126c0 50.458 12.583 88.906 40 118s63.417 44 106 44c34.417 0 61.614-9.008 84-26s38.375-42.998 48-78l-62-20c-5.396 23.482-15.604 41.062-28 52-12.396 10.963-26.792 16-44 16-23.333 0-41.417-8.79-56-26s-22-45.456-22-86c-0-38.208 7.198-64.938 22-82s34.229-26 58-26c17.208 0 31.969 4.355 44 14 12.031 9.626 20.208 23.373 24 40l64-16c-7.292-25.67-19.417-44.291-34-58-24.5-23.187-54.771-36-94-36z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-firewall-cisco" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 388, - "id": 207, - "prevSize": 16, - "code": 59738, - "name": "it-firewall-cisco" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 90 - }, - { - "icon": { - "paths": [ - "M68 0c-37.728 0-68 30.272-68 68v888c0 37.728 30.272 68 68 68h888c37.728 0 68-30.272 68-68v-888c0-37.728-30.272-68-68-68h-888zM242 64h104v112h352v-112h102v112h160v56h-18v176h18v490h-160v62h-102v-62h-352v62h-104v-62h-178v-490h320v-176h-320v-56h178v-112zM488 232v176h352v-176h-352zM266 478c-44.917 0-82.438 14.47-110 44s-40 72.624-40 126c0 50.458 12.583 88.906 40 118s63.417 44 106 44c34.417 0 61.614-9.008 84-26s38.375-42.998 48-78l-62-20c-5.396 23.482-13.604 41.062-26 52-12.396 10.963-26.792 16-44 16-23.333 0-43.417-8.79-58-26s-22-45.456-22-86c-0-38.208 7.198-64.938 22-82s34.229-26 58-26c17.208 0 31.969 4.374 44 14s20.208 23.373 24 40l64-16c-7.292-25.67-17.417-44.291-32-58-24.5-23.187-56.771-36-96-36zM768 478c-44.917 0-82.438 14.47-110 44s-40 72.624-40 126c0 50.458 12.583 88.906 40 118s63.417 44 106 44c34.417 0 61.614-9.008 84-26s38.375-42.998 48-78l-62-20c-5.396 23.482-13.604 41.062-26 52-12.396 10.963-26.792 16-44 16-23.333 0-43.417-8.79-58-26s-22-45.456-22-86c-0-38.208 7.198-64.938 22-82s34.229-26 58-26c17.208 0 31.969 4.374 44 14s20.208 23.373 24 40l64-16c-7.292-25.67-17.417-44.291-32-58-24.5-23.187-56.771-36-96-36zM420 594v96h150v-96h-150z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-firewall-cisco2" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 389, - "id": 206, - "prevSize": 16, - "code": 59739, - "name": "it-firewall-cisco2" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 91 - }, - { - "icon": { - "paths": [ - "M68 0c-37.964 0-68 30.272-68 68v888c0 37.728 30.036 68 68 68h894c37.964 0 68-30.272 68-68v-888c0-37.728-30.036-68-68-68h-894zM244 64h104v112h354v-112h102v112h162v56h-18v176h18v490h-162v62h-102v-62h-354v62h-104v-62h-180v-490h322v-176h-322v-56h180v-112zM492 232v176h354v-176h-354zM396 496v206c-0 25.958-4.021 43.76-10 52s-15.563 12-30 12c-14.292 0-25-6.479-32-18-4.667-7.583-7.271-19.625-8-38l-60 6c0.146 34.271 8.937 60.281 26 78s40.354 28 72 28c26.979 0 49.521-6.698 66-18s27.729-25.333 34-44c4.666-14.292 6-35.458 6-62v-202h-64zM530 496v320h64v-122h42c29.312 0 52.542-0.938 68-4 11.375-2.479 22.989-8.344 34-16s18.854-16.583 26-30c7.146-13.416 12-30.312 12-50-0-25.521-7.604-45.885-20-62s-27.625-27.187-46-32c-11.959-3.208-36.625-4-76-4h-104zM594 550h32c23.333 0 38.271 0.542 46 2 10.5 1.896 19.146 6.417 26 14s10 16.334 10 28c-0 9.479-1.115 18.854-6 26s-13.396 12.646-22 16c-8.604 3.354-24.479 4-50 4h-36v-90z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-firewall-juniper" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 390, - "id": 205, - "prevSize": 16, - "code": 59740, - "name": "it-firewall-juniper" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 92 - }, - { - "icon": { - "paths": [ - "M68 0c-37.728 0-68 30.272-68 68v888c0 37.728 30.272 68 68 68h888c37.728 0 68-30.272 68-68v-888c0-37.728-30.272-68-68-68h-888zM242 64h104v112h352v-112h102v112h160v56h-18v176h18v82h-154v322h154v86h-160v62h-102v-62h-352v62h-104v-62h-178v-86h24v-210l100 210h50v-322h-46v214l-102-214h-26v-82h320v-176h-320v-56h178v-112zM488 232v176h352v-176h-352zM306 490v322h168v-54h-102v-88h84v-54h-84v-72h96v-54h-162zM500 490l92 186v136h50v-136l90-186h-58l-56 128-58-128h-60zM870 544h90v72h-90v-72zM870 670h90v88h-90v-88z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-firewall-neteye" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 391, - "id": 204, - "prevSize": 16, - "code": 59741, - "name": "it-firewall-neteye" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 93 - }, - { - "icon": { - "paths": [ - "M68 0c-37.728 0-68 30.272-68 68v888c0 37.728 30.272 68 68 68h888c37.728 0 68-30.272 68-68v-888c0-37.728-30.272-68-68-68h-888zM242 64h104v112h352v-112h102v112h160v56h-18v176h18v490h-160v62h-102v-62h-352v62h-104v-62h-178v-490h320v-176h-320v-56h178v-112zM488 232v176h352v-176h-352zM122 498v54h148l-168 208v58h260v-54h-182l176-216v-50h-234zM380 498v54h96v266h64v-266h96v-54h-256zM678 498v320h244v-54h-180v-88h162v-54h-162v-70h174v-54h-238z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-firewall-zte" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 392, - "id": 203, - "prevSize": 16, - "code": 59742, - "name": "it-firewall-zte" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 94 - }, - { - "icon": { - "paths": [ - "M68 0c-37.728 0-68 30.272-68 68v888c0 37.728 30.272 68 68 68h888c37.728 0 68-30.272 68-68v-888c0-37.728-30.272-68-68-68h-888zM242 64h104v12c-36.731 40.161-60 93.286-60 152 0 1.333-0.023 2.673 0 4h-222v-56h178v-112zM698 64h102v112h160v56h-18v176h18v490h-160v62h-102v-62h-352v62h-104v-62h-178v-490h312c37.915 28.819 84.701 46 136 46s98.085-17.181 136-46h192v-176h-102c0.023-1.34 0-2.655 0-4 0-47.763-14.694-91.517-40-128v-36zM418 98h188v48h-132v64h114v46h-114v118h-56v-276zM122 498v54h148l-146 180-22 28v58h260v-54h-182l176-216v-50h-234zM380 498v54h96v266h64v-266h96v-54h-256zM678 498v320h244v-54h-180v-88h162v-54h-162v-70h174v-54h-238z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-firewall-ztemf" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 393, - "id": 202, - "prevSize": 16, - "code": 59743, - "name": "it-firewall-ztemf" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 95 - }, - { - "icon": { - "paths": [ - "M68 0c-37.728 0-68 30.272-68 68v888c0 37.728 30.272 68 68 68h888c37.728 0 68-30.272 68-68v-888c0-37.728-30.272-68-68-68h-888zM242 64h104v12c-36.731 40.161-60 93.286-60 152 0 1.333-0.023 2.673 0 4h-222v-56h178v-112zM698 64h102v112h160v56h-18v176h18v490h-160v62h-102v-62h-352v62h-104v-62h-178v-490h312c37.915 28.819 84.701 46 136 46s98.085-17.181 136-46h192v-176h-102c0.023-1.34 0-2.655 0-4 0-47.763-14.694-91.517-40-128v-36zM410 98h56v148c-0 23.625 0.625 39 2 46 2.375 11.25 7.062 21.188 16 28s20.5 10 36 10c15.75 0 28-3.562 36-10s12.375-14.625 14-24c1.625-9.375 4-24.25 4-46v-152h54v144c-0 33-1 56.375-4 70s-7.938 24.625-16 34c-8.063 9.375-18.5 16.438-32 22s-32.25 8-54 8c-26.25-0-46.438-1.937-60-8s-24.125-14.312-32-24c-7.875-9.687-11.5-19.375-14-30-3.625-15.75-6-39.25-6-70v-146zM122 498v54h148l-146 180-22 28v58h260v-54h-182l176-216v-50h-234zM380 498v54h96v266h64v-266h96v-54h-256zM678 498v320h244v-54h-180v-88h162v-54h-162v-70h174v-54h-238z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-firewall-zteutm" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 394, - "id": 201, - "prevSize": 16, - "code": 59744, - "name": "it-firewall-zteutm" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 96 - }, - { - "icon": { - "paths": [ - "M260 2c-65.696 7.147-134.149 50.113-186 122-94.814 131.45-98.966 314.24-10 410 37.902 40.797 87.3 58.623 138 56v402c42.667 47.332 85.333 40.057 128 0v-456c23.249-18.201 46.339-38.742 66-66 94.814-131.45 100.966-316.24 12-412-33.362-35.91-75.78-53.99-120-56-9.213-0.419-18.615-1.021-28 0zM484 46c54.103 128.562 67.65 281.261-28 418-34.982 50.009-66.676 94.444-104 130l102 12c620.106-30.772 784.298-551.082 242-514-68.87 4.709-170.379-12.038-212-46zM270 106c28.56 1.298 54.453 12.807 76 36 57.459 61.847 55.236 181.102-6 266s-158.541 103.847-216 42c-57.459-61.847-53.236-181.102 8-266 38.272-53.061 90.4-80.163 138-78z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-gather" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 395, - "id": 200, - "prevSize": 16, - "code": 59745, - "name": "it-gather" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 97 - }, - { - "icon": { - "paths": [ - "M128 0c-70.912 0-128 57.088-128 128v768c0 70.912 57.088 128 128 128h768c70.912 0 128-57.088 128-128v-768c0-70.912-57.088-128-128-128h-768zM164 352h64v320h-64v-320zM290 352h128c25.375 0 45.531-0.115 58 2s24.156 7.292 34 14c9.843 6.709 17.437 14.844 24 26s10 24.146 10 38c-0 15.021-3.907 29.459-12 42s-20.146 21.729-34 28c19.541 5.688 35.5 16.292 46 30s16 29.479 16 48c-0 14.583-3.219 28.219-10 42s-16.261 23.76-28 32c-11.74 8.24-26.792 14.104-44 16-10.792 1.167-36.729 1.708-78 2h-110v-320zM614 352h104c39.375 0 66.041 0.792 78 4 18.375 4.813 33.604 15.886 46 32s18 36.479 18 62c-0 19.688-2.854 36.584-10 50s-16.99 24.344-28 32c-11.011 7.656-22.625 11.521-34 14-15.459 3.063-36.688 6-66 6h-44v120h-64v-320zM356 406v74h42c25.229 0 39.875-1.27 46-2 11.083-1.312 19.656-5.656 26-12s10-13.646 10-24c-0-9.916-2.531-17.802-8-24s-13.209-10.687-24-12c-6.417-0.729-25.521 0-56 0h-36zM678 406v90h36c25.521 0 43.396-0.646 52-4s15.114-8.854 20-16c4.885-7.146 8-14.521 8-24-0-11.666-5.146-22.416-12-30s-15.5-12.104-26-14c-7.729-1.458-22.667-2-46-2h-32zM356 532v86h60c23.333 0 37.729-0.687 44-2 9.625-1.75 17.948-5.219 24-12s8-16.625 8-28c-0-9.625-1.334-17.292-6-24s-11.177-10.937-20-14c-8.823-3.062-28.542-6-58-6h-52z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-ibp" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 396, - "id": 199, - "prevSize": 16, - "code": 59746, - "name": "it-ibp" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 98 - }, - { - "icon": { - "paths": [ - "M128 0c-70.912 0-128 57.088-128 128v768c0 70.912 57.088 128 128 128h768c70.912 0 128-57.088 128-128v-768c0-70.912-57.088-128-128-128h-768zM164 170h64v322h-64v-322zM290 170h128c25.375 0 45.531 1.886 58 4s24.156 7.292 34 14c9.843 6.709 17.437 14.844 24 26s10 24.146 10 38c-0 15.021-3.907 27.459-12 40s-20.146 21.729-34 28c19.541 5.688 35.5 16.292 46 30s16 29.479 16 48c-0 14.583-3.219 28.219-10 42s-16.261 25.76-28 34c-11.74 8.24-26.792 14.104-44 16-10.792 1.167-36.729 1.708-78 2h-110v-322zM614 170h104c39.375 0 66.041 2.792 78 6 18.375 4.813 33.604 13.886 46 30s18 38.479 18 64c-0 19.688-2.854 34.584-10 48s-16.99 24.344-28 32c-11.011 7.656-22.625 13.521-34 16-15.459 3.063-36.688 4-66 4h-44v122h-64v-322zM356 224v74h42c25.229 0 39.875 0.73 46 0 11.083-1.312 19.656-5.656 26-12s10-15.646 10-26c-0-9.916-2.531-17.802-8-24s-13.209-8.687-24-10c-6.417-0.729-25.521-2-56-2h-36zM678 224v92h36c25.521 0 43.396-2.646 52-6s15.114-6.854 20-14c4.885-7.146 8-16.521 8-26-0-11.666-5.146-20.416-12-28s-15.5-12.104-26-14c-7.729-1.458-22.667-4-46-4h-32zM356 352v86h60c23.333 0 37.729-0.687 44-2 9.625-1.75 17.948-7.219 24-14s8-14.625 8-26c-0-9.625-1.334-19.292-6-26s-11.177-10.937-20-14c-8.823-3.062-28.542-4-58-4h-52zM196 598c27.125 0 48.5 7.375 64 22s24 34.25 24 56c-0 12.375-3.563 22.813-8 34s-10.375 23.75-20 36c-6.375 8.125-17.375 18.75-34 34s-27.563 25-32 30c-4.438 5-9.25 11.25-12 16h106v48h-186c2-18.5 8-35.438 18-52s30.5-38.625 60-66c23.75-22.125 38.625-36.125 44-44 7.25-10.875 10-23.375 10-34-0-11.75-1.688-19.687-8-26s-14.875-10-26-10c-11 0-21.5 3.375-28 10s-9 18.625-10 34l-52-6c3.125-29 11.5-49.375 28-62s37.25-20 62-20zM408 598c26.625 0 47 11 62 30 17.875 22.5 28 57.875 28 110-0 52-10 91.25-28 114-14.875 18.75-35.375 28-62 28-26.75 0-47.625-11.437-64-32s-24-57.25-24-110c-0-51.75 8-89.25 26-112 14.875-18.75 35.375-28 62-28zM622 598c26.625 0 47 11 62 30 17.875 22.5 28 57.875 28 110-0 52-10 91.25-28 114-14.875 18.75-35.375 28-62 28-26.75 0-47.625-11.437-64-32s-26-57.25-26-110c-0-51.75 10-89.25 28-112 14.875-18.75 35.375-28 62-28zM836 598c26.625 0 47 11 62 30 17.875 22.5 28 57.875 28 110-0 52-10 91.25-28 114-14.875 18.75-35.375 28-62 28-26.75 0-47.625-11.437-64-32s-26-57.25-26-110c0-51.75 10-89.25 28-112 14.875-18.75 35.375-28 62-28zM408 642c-6.375 0-11 1.937-16 6s-9.25 11.5-12 22c-3.625 13.625-6 35.75-6 68s2.75 55.938 6 68c3.25 12.063 7.062 20 12 24s9.625 6 16 6c6.375 0 13-1.937 18-6s9.25-11.5 12-22c3.625-13.5 4-37.75 4-70s-0.75-53.937-4-66c-3.25-12.062-7.063-19.937-12-24s-11.625-5.999-18-6zM622 642c-6.375 0-11 1.937-16 6s-9.25 11.5-12 22c-3.625 13.625-6 35.75-6 68s0.75 55.938 4 68c3.25 12.063 9.062 20 14 24s9.625 6 16 6c6.375 0 13-1.937 18-6s7.25-11.5 10-22c3.625-13.5 6-37.75 6-70s-0.75-53.937-4-66c-3.25-12.062-7.063-19.937-12-24s-11.625-5.999-18-6zM836 642c-6.375 0-13 1.937-18 6s-7.25 11.5-10 22c-3.625 13.625-6 35.75-6 68s0.75 55.938 4 68c3.25 12.063 7.062 20 12 24s11.625 6 18 6c6.375 0 11-1.937 16-6s9.25-11.5 12-22c3.625-13.5 6-37.75 6-70s-0.75-53.937-4-66c-3.25-12.062-9.063-19.937-14-24s-9.625-5.999-16-6z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-ibp-ibp2000" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 397, - "id": 198, - "prevSize": 16, - "code": 59747, - "name": "it-ibp-ibp2000" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 99 - }, - { - "icon": { - "paths": [ - "M512 0c-282.77 0-512 229.229-512 512s229.23 512 512 512c282.77 0 512-229.229 512-512s-229.23-512-512-512zM460 100c-0.035 0.64 0 1.344 0 1.984v144h-106c13.653-49.069 32.968-94.080 54-136 16.822-4.352 34.424-7.789 52-10.003zM564 100c14.799 1.856 29.727 4.608 44 8 21.464 42.010 40.007 88.672 54 138.003h-98v-144c0-0.64 0.035-1.344 0-1.984zM728 158.003c38.764 23.725 74.975 53.293 104 88h-74c-8.692-30.573-18.367-60.154-30-88zM286 164.019c-10.493 26.163-20.063 53.523-28 82.003h-66c26.566-31.763 59.179-59.334 94-82.003zM894 346.022c15.484 35.52 24.974 74.131 30 113.997h-134c-1.3-38.579-4.291-75.648-10-112h102c3.699 0 8.643-0.96 12-1.984zM128 348.006h110c-5.555 36.416-10.864 73.389-12 112h-126c4.91-38.938 13.095-77.184 28-112zM332 348.006h128v112h-138c1.129-38.362 4.536-75.872 10-112zM564 348.006h120c5.637 36.122 8.706 73.606 10 112h-130v-112zM100 564.006h128c3.115 38.906 10.371 75.571 18 112h-118c-14.905-34.816-23.090-73.062-28-112zM324 564.006h136v112h-120c-7.481-36.346-12.966-73.126-16-112zM564 564.006h130c-2.897 38.304-8.783 76.128-16 112h-114v-112zM788 564.006h136c-4.91 38.938-13.095 77.184-28 112h-124c7.324-35.814 13.028-73.824 16-112zM194 780.006h78c12.495 36.038 29.429 68.461 46 100-47.143-24.954-89.788-59.642-124-100zM368 780.006h92v144c-7.868-0.96-16.275-0.64-24-1.984-26.587-42.522-49.947-89.542-68-142.003zM564 780.006h86c-17.597 51.622-40.138 99.91-66 142.003-6.473 1.152-13.428 1.152-20 1.984v-144zM746 780.006h84c-35.169 41.491-79.231 76.851-128 102.003 16.61-31.923 31.55-65.536 44-102.003z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-net" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 398, - "id": 197, - "prevSize": 16, - "code": 59748, - "name": "it-net" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 100 - }, - { - "icon": { - "paths": [ - "M136 0c-75.55 0-136 60.45-136 136v752c0 75.55 60.45 136 136 136h752c75.55 0 136-60.45 136-136v-752c0-75.55-60.45-136-136-136h-752zM248 230l124 32-142 528-122-32 140-528zM448 232h128v546h-128v-546zM774 234l142 528-124 32-142-528 124-32z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 399, - "id": 196, - "prevSize": 16, - "code": 59749, - "name": "it-other" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 101 - }, - { - "icon": { - "paths": [ - "M832 0h-640c-105.984 0-192 85.969-192 192v640c0 106.031 86.016 192 192 192h640c106.031 0 192-85.969 192-192v-640c0-106.031-85.969-192-192-192zM607.697 84.992c44.172 0 80.012 35.84 80.012 80.012s-35.84 80.012-80.012 80.012c-44.218 0-80.012-35.84-80.012-80.012s35.747-80.012 80.012-80.012zM392.332 84.992c44.172 0 80.012 35.84 80.012 80.012s-35.84 80.012-80.012 80.012-80.012-35.84-80.012-80.012 35.84-80.012 80.012-80.012zM177.012 245.015c-44.172 0-80.012-35.84-80.012-80.012s35.84-80.012 80.012-80.012 80.012 35.84 80.012 80.012-35.84 80.012-80.012 80.012zM574.65 945.99l-45.382-117.993h-162.863l-42.775 117.993h-54.691l149.551-389.446h55.529l159.372 389.446h-58.74zM607.697 511.023c-44.218 0-80.012-35.84-80.012-80.012s35.793-80.012 80.012-80.012c44.172 0 80.012 35.84 80.012 80.012s-35.84 80.012-80.012 80.012zM715.171 945.99h-47.802v-389.446h47.802v389.446zM823.017 511.023c-44.172 0-80.012-35.84-80.012-80.012s35.84-80.012 80.012-80.012 79.965 35.84 79.965 80.012-35.793 80.012-79.965 80.012zM823.017 245.015c-44.172 0-80.012-35.84-80.012-80.012s35.84-80.012 80.012-80.012 79.965 35.84 79.965 80.012-35.793 80.012-79.965 80.012z", - "M445.021 597.504c-4.934 24.948-11.962 49.757-20.945 74.38l-42.775 114.176h132.049l-40.681-107.753c-12.428-32.815-21.597-59.811-27.648-80.803z" - ], - "attrs": [ - { - "fill": "rgb(100, 148, 206)" - }, - { - "fill": "rgb(100, 148, 206)" - } - ], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-alteon" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [ - 4, - 4 - ] - } - }, - "attrs": [ - { - "fill": "rgb(100, 148, 206)" - }, - { - "fill": "rgb(100, 148, 206)" - } - ], - "properties": { - "order": 400, - "id": 195, - "prevSize": 16, - "code": 59750, - "name": "it-other-alteon" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 102 - }, - { - "icon": { - "paths": [ - "M816.035 622.871c-8.611-2.281-24.436-3.398-47.569-3.398h-98.49v137.681h99.561c32.954 0 56.32-6.144 70.191-18.432 13.824-12.241 20.713-29.51 20.713-51.712 0-16.151-4.049-29.929-12.195-41.425-8.192-11.45-18.944-19.037-32.209-22.714z", - "M832 0h-640c-105.984 0-192 85.969-192 192v640c0 105.984 86.016 192 192 192h640.047c105.937 0 191.953-86.016 191.953-192v-640c0-106.031-86.016-192-192-192zM823.017 84.992c44.172 0 80.012 35.84 80.012 80.012s-35.84 80.012-80.012 80.012-80.012-35.84-80.012-80.012c0-44.172 35.793-80.012 80.012-80.012zM823.017 350.999c44.172 0 80.012 35.84 80.012 80.012s-35.84 80.012-80.012 80.012-80.012-35.84-80.012-80.012c0-44.172 35.793-80.012 80.012-80.012zM607.744 84.992c44.125 0 80.012 35.84 80.012 80.012s-35.887 80.012-80.012 80.012c-44.265 0-80.058-35.84-80.058-80.012s35.747-80.012 80.058-80.012zM392.332 84.992c44.172 0 80.012 35.84 80.012 80.012s-35.84 80.012-80.012 80.012c-44.172 0-80.012-35.84-80.012-80.012s35.84-80.012 80.012-80.012zM177.012 245.015c-44.172 0-80.012-35.84-80.012-80.012s35.84-80.012 80.012-80.012c44.172 0 80.012 35.84 80.012 80.012s-35.84 80.012-80.012 80.012zM520.192 959.162l-44.916-116.643h-161.094l-42.31 116.643h-54.132l147.921-385.164h54.924l157.649 385.164h-58.042zM527.686 431.011c0-44.172 35.793-80.012 80.058-80.012 44.125 0 80.012 35.84 80.012 80.012s-35.887 80.012-80.012 80.012c-44.311 0-80.058-35.84-80.058-80.012zM881.711 768.559c-20.852 22.668-58.554 34.025-113.012 34.025h-98.769v156.579h-51.014v-385.164h145.315c25.553 0 45.103 1.21 58.601 3.677 18.897 3.119 34.769 9.123 47.523 18.013s23.087 21.225 30.86 37.19c7.82 15.965 11.683 33.466 11.683 52.55 0.047 32.768-10.333 60.416-31.185 83.13z", - "M391.959 614.447c-4.887 24.716-11.823 49.245-20.759 73.588l-42.31 112.966h130.607l-40.215-106.682c-12.241-32.349-21.364-59.020-27.322-79.872z" - ], - "attrs": [ - { - "fill": "rgb(100, 148, 206)" - }, - { - "fill": "rgb(100, 148, 206)" - }, - { - "fill": "rgb(100, 148, 206)" - } - ], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-appdirector" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [ - 4, - 4, - 4 - ] - } - }, - "attrs": [ - { - "fill": "rgb(100, 148, 206)" - }, - { - "fill": "rgb(100, 148, 206)" - }, - { - "fill": "rgb(100, 148, 206)" - } - ], - "properties": { - "order": 401, - "id": 194, - "prevSize": 16, - "code": 59751, - "name": "it-other-appdirector" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 103 - }, - { - "icon": { - "paths": [ - "M136 0c-75.55 0-136 60.45-136 136v752c0 75.55 60.45 136 136 136h752c75.55 0 136-60.45 136-136v-752c0-75.55-60.45-136-136-136h-752zM518 230h186c36.836 0.001 65.899 2.491 84 6s33.71 10.875 48 22c14.289 11.126 26.473 25.499 36 44 9.526 18.503 14 39.023 14 62-0 24.912-6.251 47.2-18 68s-27.889 37.6-48 48c28.367 9.433 50.757 25.266 66 48s22 49.284 22 80c-0 24.186-4.156 47.145-14 70s-22.959 40.335-40 54c-17.042 13.665-39.020 22.856-64 26-15.666 1.936-52.089 3.521-112 4h-160v-532zM124 234h94v438h234v90h-328v-528zM612 318v124h62c36.624 0.001 59.108-0.803 68-2 16.089-2.175 28.791-9.479 38-20s14-24.828 14-42c-0-16.446-4.061-29.72-12-40-7.939-10.278-18.334-15.823-34-18-9.315-1.211-37.755-2-82-2h-54zM612 530v142h88c33.872 0 54.897-1.825 64-4 13.972-2.9 25.214-8.754 34-20s14-27.135 14-46c-0-15.962-3.226-28.874-10-40-6.775-11.125-17.192-18.921-30-24-12.808-5.083-41.237-7.999-84-8h-76z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-atca-lb10" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 402, - "id": 193, - "prevSize": 16, - "code": 59752, - "name": "it-other-atca-lb10" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 104 - }, - { - "icon": { - "paths": [ - "M136 0c-75.55 0-136 60.45-136 136v752c0 75.55 60.45 136 136 136h752c75.55 0 136-60.45 136-136v-752c0-75.55-60.45-136-136-136h-752zM528 330c37.548 0.001 68.55 12.645 92 38 13.958 14.991 23.021 37.933 30 66l-60 16c-3.629-18.179-12.484-33.475-24-44s-25.529-13.999-42-14c-22.752 0.001-39.832 9.342-54 28s-22 48.219-22 90c-0 44.333 8.041 75.183 22 94s31.666 28 54 28c16.471 0 30.135-6.038 42-18 11.864-11.96 20.835-30.325 26-56l60 22c-9.213 38.273-24.574 67.422-46 86s-49.058 28-82 28c-40.759 0-73.758-16.186-100-48s-40-76.823-40-132c-0-58.366 13.618-103.707 40-136s61.008-47.999 104-48zM812 330c38.525 0.001 68.528 10.704 88 30s29.023 43.787 30 76l-62 4c-2.653-18.020-7.276-30.106-16-38s-22.552-12-40-12c-18.007 0-31.81 3.55-42 12-6.561 5.425-10 12.911-10 22-0 8.293 3.859 14.1 10 20 7.817 7.495 25.85 15.867 56 24s51.553 17.309 66 26c14.447 8.691 25.834 20.93 34 36s14 33.834 14 56c-0 20.093-6.23 38.458-16 56s-24.133 29.468-42 38c-17.867 8.532-39.339 14-66 14-38.805 0-69.202-11.508-90-32s-31.952-48.77-36-88l60-8c3.629 23.124 10.903 41.156 22 52s25.156 16 44 16c19.96 0 35.88-4.351 46-14 10.12-9.647 16-21.083 16-34-0-8.292-3.743-16.179-8-22s-11.392-11.694-22-16c-7.259-2.866-24.177-6.664-50-14-33.221-9.409-56.6-22.285-70-36-18.844-19.296-28-42.252-28-70 0-17.86 5.136-34.451 14-50 8.864-15.548 21.32-27.867 38-36s36.41-11.999 60-12zM84 336h62v190c-0 30.139 2.464 51.070 4 60 2.652 14.352 8.020 25.309 18 34s24.691 12 42 12c17.587 0 29.066-3.786 38-12 8.933-8.213 16.185-18.040 18-30s2-32.252 2-60v-194h62v184c-0 42.1-2.65 72.618-6 90s-8.997 32.040-18 44c-9.003 11.96-20.925 20.904-36 28s-33.712 12-58 12c-29.313 0-52.855-4.264-68-12-15.145-7.735-27.206-17.641-36-30s-13.208-26.445-16-40c-4.048-20.093-8-48.77-8-88v-188z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-cisco-ucs" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 403, - "id": 192, - "prevSize": 16, - "code": 59753, - "name": "it-other-cisco-ucs" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 105 - }, - { - "icon": { - "paths": [ - "M136 0c-75.55 0-136 60.45-136 136v752c0 75.55 60.45 136 136 136h752c75.55 0 136-60.45 136-136v-752c0-75.55-60.45-136-136-136h-752zM528 330c37.548 0.001 68.55 12.645 92 38 13.958 14.991 23.021 37.933 30 66l-60 16c-3.629-18.179-12.484-33.475-24-44s-25.529-13.999-42-14c-22.752 0.001-39.832 9.342-54 28s-22 48.219-22 90c-0 44.333 8.041 75.183 22 94s31.666 28 54 28c16.471 0 30.135-6.038 42-18 11.864-11.96 20.835-30.325 26-56l60 22c-9.213 38.273-24.574 67.422-46 86s-49.058 28-82 28c-40.759 0-73.758-16.186-100-48s-40-76.823-40-132c-0-58.366 13.618-103.707 40-136s61.008-47.999 104-48zM812 330c38.525 0.001 68.528 10.704 88 30s29.023 43.787 30 76l-62 4c-2.653-18.020-7.276-30.106-16-38s-22.552-12-40-12c-18.007 0-31.81 3.55-42 12-6.561 5.425-10 12.911-10 22-0 8.293 1.859 14.1 8 20 7.817 7.495 27.85 15.867 58 24s51.553 17.309 66 26c14.447 8.691 25.834 20.93 34 36s12 33.834 12 56c-0 20.093-4.23 38.458-14 56s-24.133 29.468-42 38c-17.867 8.532-39.339 14-66 14-38.805 0-69.202-11.508-90-32s-31.952-48.77-36-88l60-8c3.629 23.124 10.903 41.156 22 52s25.156 16 44 16c19.96 0 35.88-4.351 46-14 10.12-9.647 14-21.083 14-34-0-8.292-1.743-16.179-6-22s-11.392-11.694-22-16c-7.259-2.866-24.177-6.664-50-14-33.221-9.409-56.6-22.285-70-36-18.844-19.296-28-42.252-28-70 0-17.86 5.137-34.451 14-50 8.864-15.548 21.32-27.867 38-36s36.41-11.999 60-12zM86 336h112c25.544 0.001 44.6 3.533 58 8 18.006 6.061 35.158 16.532 48 32s21.3 33.595 28 56c6.7 22.405 10 51.149 10 84-0 28.864-3.719 53.109-10 74-7.677 25.515-17.763 46.212-32 62-10.748 11.96-25.715 21.302-44 28-13.679 4.946-31.108 8-54 8h-116v-352zM148 396v232h46c17.308 0 28.323-1.77 36-4 10.050-2.873 19.37-7.142 26-14s11.812-18.292 16-34c4.187-15.708 6-36.89 6-64s-1.813-47.488-6-62c-4.188-14.512-10.463-25.866-18-34s-16.415-13.129-28-16c-8.654-2.23-26.735-4-52-4h-26z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-dcs" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 404, - "id": 191, - "prevSize": 16, - "code": 59754, - "name": "it-other-dcs" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 106 - }, - { - "icon": { - "paths": [ - "M136 0c-75.55 0-136 60.45-136 136v752c0 75.55 60.45 136 136 136h752c75.55 0 136-60.45 136-136v-752c0-75.55-60.45-136-136-136h-752zM88 336h112c25.544 0.001 46.6 3.533 60 8 18.006 6.061 33.158 16.532 46 32s21.3 33.595 28 56c6.7 22.405 10 51.149 10 84-0 28.864-1.719 53.109-8 74-7.677 25.515-19.763 46.212-34 62-10.748 11.96-25.715 21.302-44 28-13.679 4.946-31.108 8-54 8h-116v-352zM748 336h66l122 352h-66l-28-80h-122l-26 80h-66l120-352zM400 340h62v288h154v60h-216v-348zM150 396v232h46c17.308 0 30.323-1.77 38-4 10.050-2.873 17.37-7.142 24-14s11.812-18.292 16-34c4.187-15.708 6-36.89 6-64s-1.813-47.488-6-62c-4.188-14.512-10.463-25.866-18-34s-16.415-13.129-28-16c-8.654-2.23-24.735-4-50-4h-28zM780 418l-42 130h84l-42-130z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-delta" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 405, - "id": 190, - "prevSize": 16, - "code": 59755, - "name": "it-other-delta" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 107 - }, - { - "icon": { - "paths": [ - "M799.651 382.836c-9.123-2.42-26.159-3.677-50.921-3.677h-105.472v147.363h106.589c35.281 0 60.276-6.563 75.124-19.689 14.708-13.126 22.295-31.604 22.295-55.389 0-17.268-4.422-32.023-13.126-44.311-8.797-12.241-20.294-20.34-34.49-24.297z", - "M887.994 0h-751.988c-75.59 0-136.006 60.416-136.006 136.006v751.988c0 75.543 60.416 136.006 136.006 136.006h751.988c75.543 0 136.006-60.463 136.006-136.006v-751.988c0-75.59-60.463-136.006-136.006-136.006zM445.021 617.705c-7.308 24.204-16.663 44.172-28.113 60.044-11.45 15.919-23.971 28.3-37.562 37.423s-30.022 16.012-49.199 20.666c-19.223 4.655-41.286 7.028-66.234 7.028h-148.759v-412.346h142.010c32.070 0 56.506 1.955 73.402 5.911 23.599 5.446 43.753 15.313 60.463 29.556 21.737 18.339 37.981 41.844 48.826 70.423 10.752 28.579 16.151 61.254 16.151 98.025-0.047 31.279-3.677 59.066-10.985 83.27zM869.981 538.81c-22.342 24.297-62.65 36.445-121.018 36.445h-105.705v167.61h-54.551v-412.346h155.555c27.369 0 48.221 1.303 62.743 3.956 20.294 3.351 37.143 9.775 50.874 19.27 13.638 9.495 24.762 22.714 33.001 39.75 8.425 17.082 12.614 35.84 12.614 56.227 0 35.142-11.217 64.791-33.513 89.088z", - "M326.889 387.631c-14.615-5.632-38.167-8.471-70.609-8.471h-86.575v315.020h88.064c27.183 0 48.5-2.56 64-7.54 15.453-5.12 27.788-12.288 36.957-21.364 12.94-12.986 22.993-30.394 30.208-52.224 7.215-21.783 10.845-48.314 10.845-79.407 0-43.148-7.075-76.288-21.225-99.468-14.196-23.133-31.418-38.679-51.665-46.545z" - ], - "attrs": [ - { - "fill": "rgb(96, 140, 193)" - }, - { - "fill": "rgb(96, 140, 193)" - }, - { - "fill": "rgb(96, 140, 193)" - } - ], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-dp" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [ - 3, - 3, - 3 - ] - } - }, - "attrs": [ - { - "fill": "rgb(96, 140, 193)" - }, - { - "fill": "rgb(96, 140, 193)" - }, - { - "fill": "rgb(96, 140, 193)" - } - ], - "properties": { - "order": 406, - "id": 189, - "prevSize": 16, - "code": 59756, - "name": "it-other-dp" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 108 - }, - { - "icon": { - "paths": [ - "M743.936 0h-471.459c-152.623 0-276.294 124.975-276.294 279.133v465.734c0 154.159 123.671 279.133 276.294 279.133h471.505c152.529 0 276.247-125.021 276.247-279.133v-465.734c-0.047-154.159-123.718-279.133-276.294-279.133zM234.17 777.123c-8.657 25.088-21.504 44.172-38.54 57.297-17.082 13.079-37.050 19.642-60.044 19.642-24.343 0-44.265-7.168-59.671-21.597-15.453-14.383-24.716-34.583-27.834-60.695l36.771-3.584c3.119 18.385 9.030 31.744 17.827 39.983 8.751 8.285 20.015 12.428 33.792 12.428 11.729 0 22.063-2.886 30.906-8.611 8.844-5.679 16.105-13.359 21.783-22.9 5.679-9.588 10.426-22.481 14.243-38.772s5.725-32.861 5.725-49.711c0-1.815-0.047-4.515-0.186-8.145-7.68 12.94-18.106 23.459-31.325 31.558-13.219 8.052-27.555 12.102-43.008 12.102-25.786 0-47.569-9.961-65.443-29.882-17.827-19.875-26.764-46.080-26.764-78.615 0-33.606 9.309-60.649 27.927-81.129s41.937-30.72 70.004-30.72c20.247 0 38.772 5.818 55.529 17.408 16.756 11.636 29.51 28.16 38.214 49.617 8.751 21.457 13.079 52.55 13.079 93.231-0 42.356-4.329 76.009-12.986 101.097zM402.991 92.486h214.063v40.401h-174.871v104.82h163.747v40.169h-163.747v116.503h181.76v40.401h-220.951v-342.295zM476.113 779.171c-7.494 23.878-18.711 42.356-33.652 55.343-14.941 13.033-33.839 19.549-56.599 19.549-30.022 0-53.62-11.45-70.749-34.304-20.527-27.601-30.813-72.518-30.813-134.749 0-39.191 3.817-70.703 11.357-94.58 7.587-23.878 18.851-42.263 33.792-55.249 14.941-12.94 33.745-19.409 56.413-19.409 16.71 0 31.372 3.584 43.985 10.705 12.614 7.168 22.993 17.501 31.185 30.953 8.239 13.498 14.662 29.929 19.363 49.292s6.982 45.475 6.982 78.336c0 38.865-3.77 70.284-11.264 94.115zM718.057 779.171c-7.494 23.878-18.711 42.356-33.699 55.343-14.895 13.033-33.839 19.549-56.599 19.549-30.068 0-53.574-11.45-70.749-34.304-20.527-27.601-30.813-72.518-30.813-134.749 0-39.191 3.817-70.703 11.357-94.58 7.587-23.878 18.851-42.263 33.792-55.249 14.941-12.94 33.745-19.409 56.413-19.409 16.71 0 31.372 3.584 43.939 10.705 12.614 7.168 23.040 17.501 31.232 30.953 8.239 13.498 14.662 29.929 19.316 49.292 4.701 19.363 7.028 45.475 7.028 78.336 0.047 38.865-3.724 70.284-11.217 94.115zM960 779.171c-7.494 23.878-18.711 42.356-33.699 55.343-14.895 13.033-33.839 19.549-56.599 19.549-30.068 0-53.574-11.45-70.749-34.304-20.527-27.601-30.813-72.518-30.813-134.749 0-39.191 3.817-70.703 11.357-94.58 7.587-23.878 18.851-42.263 33.792-55.249 14.941-12.94 33.745-19.409 56.413-19.409 16.71 0 31.372 3.584 43.939 10.705 12.614 7.168 23.040 17.501 31.232 30.953 8.239 13.498 14.662 29.929 19.316 49.292 4.701 19.363 7.028 45.475 7.028 78.336 0.047 38.865-3.724 70.284-11.217 94.115z", - "M627.386 549.469c-17.594 0-31.604 7.913-42.077 23.738-13.126 20.201-19.735 57.437-19.735 111.849s5.958 90.577 17.967 108.591c11.962 18.013 26.717 26.996 44.265 26.996s32.303-8.983 44.265-27.089c12.009-18.106 17.967-54.272 17.967-108.497 0-54.551-5.958-90.764-17.967-108.73-11.962-17.92-26.903-26.857-44.684-26.857z", - "M385.396 549.469c-17.548 0-31.558 7.913-42.031 23.738-13.172 20.201-19.782 57.437-19.782 111.849s6.004 90.577 17.967 108.591c11.962 18.013 26.717 26.996 44.311 26.996 17.548 0 32.303-8.983 44.311-27.089 11.962-18.106 17.92-54.272 17.92-108.497 0-54.551-5.958-90.764-17.92-108.73-12.009-17.92-26.903-26.857-44.777-26.857z", - "M869.329 549.469c-17.594 0-31.604 7.913-42.077 23.738-13.126 20.201-19.735 57.437-19.735 111.849s5.958 90.577 17.967 108.591c11.962 18.013 26.717 26.996 44.265 26.996s32.303-8.983 44.265-27.089c12.009-18.106 17.967-54.272 17.967-108.497 0-54.551-5.958-90.764-17.967-108.73-11.962-17.92-26.857-26.857-44.684-26.857z", - "M144.989 549.469c-16.989 0-31.791 7.354-44.404 22.156-12.614 14.755-18.897 33.932-18.897 57.391 0 21.085 6.004 38.214 17.967 51.386s26.717 19.782 44.311 19.782c17.687 0 32.256-6.609 43.66-19.782s17.082-31.465 17.082-54.831c0-23.319-5.818-41.844-17.501-55.575-11.729-13.684-25.833-20.527-42.217-20.527z" - ], - "attrs": [ - { - "fill": "rgb(100, 155, 230)" - }, - { - "fill": "rgb(100, 155, 230)" - }, - { - "fill": "rgb(100, 155, 230)" - }, - { - "fill": "rgb(100, 155, 230)" - }, - { - "fill": "rgb(100, 155, 230)" - } - ], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-e9000" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [ - 6, - 6, - 6, - 6, - 6 - ] - } - }, - "attrs": [ - { - "fill": "rgb(100, 155, 230)" - }, - { - "fill": "rgb(100, 155, 230)" - }, - { - "fill": "rgb(100, 155, 230)" - }, - { - "fill": "rgb(100, 155, 230)" - }, - { - "fill": "rgb(100, 155, 230)" - } - ], - "properties": { - "order": 407, - "id": 188, - "prevSize": 16, - "code": 59757, - "name": "it-other-e9000" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 109 - }, - { - "icon": { - "paths": [ - "M136 0c-75.55 0-136 60.45-136 136v752c0 75.55 60.45 136 136 136h752c75.55 0 136-60.45 136-136v-752c0-75.55-60.45-136-136-136h-752zM200 268h288v82h-202v112h174v82h-174v204h-86v-480zM592 274h212v86h-150l-14 82c17.929-10.241 37.308-16 56-16 35.667 0 65.204 16.365 90 46 24.795 29.636 38 66.714 38 114-0 39.441-9.973 75.057-30 106-27.275 42.274-65.554 64-114 64-38.719 0-69.586-12.248-94-36s-39.232-55.905-44-96l80-10c2.289 20.701 8.747 37.906 20 50s23.313 18 38 18c16.784 0 32.365-8.42 44-24s16-38.622 16-70c-0-29.417-4.461-51.291-16-66s-27.499-22-46-22c-23.079 0-43.69 12.684-62 36l-64-12 40-250z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-f5bigip" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 408, - "id": 187, - "prevSize": 16, - "code": 59758, - "name": "it-other-f5bigip" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 110 - }, - { - "icon": { - "paths": [ - "M114 0c-63.812 0-114 47.546-114 108v602c0 53.579 40.456 98.664 94 108v-590c0-64.077 53.716-114 120-114h650v-6c0-60.454-50.188-108-114-108z", - "M273.868 209.632c-63.812 0-114.869 48.378-114.869 108.832v601.779c0 60.454 51.057 108.832 114.869 108.832h635.16c63.812 0 114.869-48.378 114.869-108.832v-601.779c0-60.454-51.057-108.832-114.869-108.832h-635.16zM327.924 424.096h243.253v65.619h-170.615v89.626h146.965v65.619h-146.965v163.251h-72.638v-384.115zM659.018 428.896h179.061v68.819h-126.694l-11.825 65.619c15.143-8.192 31.511-12.8 47.299-12.8 30.125 0 55.074 13.094 76.017 36.813 20.943 23.712 32.096 53.382 32.096 91.226-0 31.558-8.424 60.064-25.339 84.826-23.037 33.824-55.369 51.213-96.288 51.213-32.703 0-58.775-9.798-79.395-28.806s-33.136-44.742-37.164-76.826l67.57-8c1.933 16.563 7.388 30.33 16.893 40.013 9.505 9.677 19.691 14.4 32.096 14.4 14.177 0 27.336-6.739 37.164-19.206s13.514-30.906 13.514-56.013c-0-23.539-3.768-41.043-13.514-52.819-9.747-11.77-23.226-17.6-38.853-17.6-19.493 0-36.902 10.15-52.367 28.806l-54.056-9.606 33.785-200.058z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-f5bigip2" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 409, - "id": 186, - "prevSize": 16, - "code": 59759, - "name": "it-other-f5bigip2" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 111 - }, - { - "icon": { - "paths": [ - "M136 0c-75.55 0-136 60.45-136 136v752c0 75.55 60.45 136 136 136h752c75.55 0 136-60.45 136-136v-752c0-75.55-60.45-136-136-136h-752zM230 158c36.969 0 65.213 6.495 86 22s34.041 36.646 40 64l-60 12c-4.198-14.625-12.422-25.536-24-34s-24.667-14-42-14c-26.271 0-48.495 9.344-64 26s-22 41.229-22 74c-0 35.344 8.292 62.328 24 80s34.542 26 60 26c12.594 0 25.338-3.057 38-8s24.927-10.958 34-18v-38h-70v-50h130v118c-12.594 12.188-30.099 24.724-54 34s-49.49 14-74 14c-31.146 0-56.844-6.932-80-20s-40.354-31.693-52-56c-11.646-24.307-18-51.427-18-80-0-31.010 7-57.896 20-82s30.948-43.135 56-56c19.094-9.885 43.562-14 72-14zM416 162h118c23.562 0 42.422 2.037 54 4s20.859 5.771 30 12c9.14 6.229 17.906 13.641 24 24s8 23.136 8 36c-0 13.948-2.485 26.354-10 38s-19.136 20.177-32 26c18.146 5.281 32.25 13.271 42 26s14 28.802 14 46c-0 13.542-1.704 27.203-8 40s-15.099 22.349-26 30c-10.901 7.651-24.021 12.24-40 14-10.021 1.083-35.677 1.729-74 2h-100v-298zM716 162h220v50h-160v66h150v50h-150v82h166v50h-226v-298zM476 212v68h40c23.427 0 36.312 0.677 42 0 10.291-1.219 18.109-6.109 24-12s10-12.385 10-22c-0-9.208-2.922-16.245-8-22s-11.979-10.781-22-12c-5.959-0.677-23.698 0-52 0h-34zM476 330v80h56c21.666 0 34.177-0.781 40-2 8.937-1.625 16.38-5.703 22-12s8-15.437 8-26c-0-8.937-1.667-15.771-6-22s-9.807-11.156-18-14c-8.193-2.844-26.646-4-54-4h-48zM652 576c39.229 0 71.5 12.813 96 36 14.583 13.709 24.708 32.334 32 58l-64 16c-3.792-16.625-11.969-30.375-24-40s-26.792-14-44-14c-23.771 0-43.198 8.938-58 26s-22 43.792-22 82c-0 40.542 7.417 68.792 22 86s34.667 26 58 26c17.208 0 31.604-5.062 44-16s20.604-28.521 26-52l64 20c-9.625 35-25.615 61.010-48 78s-51.584 26-86 26c-42.583 0-76.583-14.906-104-44s-42-67.542-42-118c-0-53.375 14.437-96.468 42-126s63.083-44 108-44zM356 580c31.646 0 55.916 8.938 74 26s28 38.625 28 64c-0 14.438-2.823 26.948-8 40s-12.771 27.708-24 42c-7.438 9.479-20.604 22.208-40 40s-32.823 30.167-38 36c-5.177 5.834-8.792 12.458-12 18h122v56h-216c2.333-21.583 10.333-40.677 22-60s33.583-46.062 68-78c27.708-25.812 45.729-42.812 52-52 8.458-12.687 12-25.604 12-38-0-13.708-2.636-24.635-10-32s-19.021-10-32-10c-12.833 0-22.417 4.271-30 12s-10.833 20.063-12 38l-62-6c3.646-33.833 14.75-59.271 34-74s43.125-22 72-22z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-gbe2c" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 410, - "id": 185, - "prevSize": 16, - "code": 59760, - "name": "it-other-gbe2c" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 112 - }, - { - "icon": { - "paths": [ - "M888 0h-752c-75.584 0-136 60.416-136 136v752c0 75.648 60.416 136 136 136h752c75.648 0 136-60.352 136-136v-752c0-75.584-60.352-136-136-136zM366.144 654.4h-42.432v-151.168h-166.72v151.104h-42.432v-320.64h42.432v131.712h166.656v-131.712h42.432v320.704zM600.448 630.848c-20.416 19.52-46.272 29.248-77.44 29.248-28.096 0-51.52-8.384-70.144-25.216-18.56-16.768-29.184-38.464-31.808-65.152l39.36-5.248c4.48 22.336 12.16 38.4 23.040 48.256 10.88 9.792 24.128 14.72 39.744 14.72 18.496 0 34.112-6.4 46.848-19.264s19.136-28.736 19.136-47.68c0-18.112-5.888-33.024-17.664-44.736s-26.752-17.536-44.992-17.536c-7.424 0-16.704 1.472-27.776 4.352l4.352-34.56c2.624 0.256 4.736 0.448 6.336 0.448 16.768 0 31.872-4.352 45.312-13.12 13.376-8.768 20.096-22.272 20.096-40.448 0-14.464-4.928-26.432-14.656-35.904s-22.4-14.208-37.824-14.208c-15.36 0-28.096 4.8-38.336 14.464s-16.704 24-19.648 43.264l-39.36-6.976c4.8-26.432 15.744-46.848 32.768-61.376 17.088-14.528 38.336-21.76 63.68-21.76 17.472 0 33.536 3.776 48.32 11.264 14.72 7.488 25.984 17.728 33.792 30.72s11.712 26.752 11.712 41.344c0 13.824-3.712 26.496-11.2 37.824-7.36 11.392-18.432 20.416-32.96 27.136 18.944 4.416 33.664 13.504 44.16 27.264s15.744 30.976 15.744 51.712c0 28.032-10.176 51.776-30.592 71.168zM909.184 632.448c-23.104 18.304-51.392 27.456-84.8 27.456-34.496 0-62.656-6.976-84.288-21.12-21.632-14.080-38.144-34.432-49.408-61.12s-16.96-55.36-16.96-85.952c0-33.408 6.4-62.528 19.136-87.424 12.736-24.832 30.912-43.776 54.528-56.64 23.552-12.928 49.408-19.392 77.76-19.392 32.064 0 59.072 8.128 80.96 24.512s37.12 39.296 45.76 68.928l-41.792 9.856c-7.424-23.36-18.24-40.32-32.384-50.944s-31.936-16-53.376-16c-24.64 0-45.248 5.888-61.824 17.728s-28.16 27.648-34.88 47.616c-6.656 19.904-10.048 40.384-10.048 61.568 0 27.264 4.032 51.072 11.968 71.424 7.936 20.288 20.288 35.52 37.056 45.632 16.768 9.984 34.944 15.040 54.464 15.040 23.808 0 43.968-6.784 60.352-20.544 16.512-13.76 27.712-34.048 33.472-61.056l42.432 10.688c-9.024 34.816-25.024 61.44-48.128 79.744z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-h3c" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 411, - "id": 184, - "prevSize": 16, - "code": 59761, - "name": "it-other-h3c" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 113 - }, - { - "icon": { - "paths": [ - "M136 0c-75.55 0-136 60.45-136 136v410h1024v-410c0-75.55-60.45-136-136-136h-752zM228 134h64v128h128v-128h64v322h-64v-140h-128v140h-64v-322zM550 134h104c39.375 0 66.041 2.792 78 6 18.375 4.813 33.604 15.886 46 32s18 36.479 18 62c-0 19.688-2.854 36.584-10 50s-16.99 22.344-28 30c-11.011 7.656-20.625 13.521-32 16-15.459 3.063-38.688 4-68 4h-42v122h-66v-322zM616 190v90h36c25.521 0 41.396-0.646 50-4s15.114-8.854 20-16c4.885-7.146 8-16.521 8-26-0-11.666-3.146-20.416-10-28s-15.5-12.104-26-14c-7.729-1.458-24.667-2-48-2h-30zM782 598c-39.962 0-71.478 10.197-96 32s-38 52.592-38 92c0 37.254 13.608 66.52 38 88s54.114 32 92 32c30.62 0 56.084-5.456 76-18s33.436-32.159 42-58l-54-14c-4.801 17.335-12.972 29.925-24 38s-24.69 12-40 12c-20.76 0-37.025-7.295-50-20s-20-32.067-20-62c-0-28.21 6.831-49.402 20-62s30.851-20 52-20c15.31 0 27.296 4.894 38 12s18.626 15.726 22 28l56-10c-6.488-18.95-17.026-33.879-30-44-21.798-17.12-49.098-26-84-26zM128 602v236h96c36.718-0.218 60.399 0.861 70 0 15.31-1.4 27.555-5.917 38-12s17.966-13.825 24-24c6.033-10.175 10-21.233 10-32-0-13.674-4.658-25.879-14-36s-22.614-15.801-40-20c12.326-4.63 22.799-12.74 30-22s10-18.91 10-30c-0-10.229-2.162-19.763-8-28s-13.242-15.047-22-20c-8.758-4.953-18.907-8.439-30-10s-27.424-2-50-2h-114zM416 604v234h202v-40h-144v-194h-58zM184 642h34c27.117 0 42.291-0.538 48 0 9.601 0.97 17.134 3.424 22 8s8 10.679 8 18c-0 7.645-2.356 13.317-8 18s-14.139 9.031-24 10c-5.45 0.538-19.554 0-42 0h-38v-54zM184 736h48c26.209 0 42.15 1.739 50 4s13.848 5.047 18 10c4.152 4.953 6 10.894 6 18-0 8.398-2.616 14.994-8 20s-11.437 8.708-20 10c-5.579 0.97-19.241 0-40 0h-54v-62zM0 886v2c0 75.55 60.45 136 136 136h752c75.55 0 136-60.45 136-136v-2h-1024z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-hpblc" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 412, - "id": 183, - "prevSize": 16, - "code": 59762, - "name": "it-other-hpblc" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 114 - }, - { - "icon": { - "paths": [ - "M136 0c-75.55 0-136 60.45-136 136v752c0 75.55 60.45 136 136 136h752c75.55 0 136-60.45 136-136v-752c0-75.55-60.45-136-136-136h-752zM108 352h64v320h-64v-320zM232 352h98l58 218 58-218h96v320h-60v-252l-64 252h-62l-62-252v252h-62v-320zM606 352h98l58 218 58-218h96v320h-60v-252l-64 252h-62l-64-252v252h-60v-320z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-imm" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 413, - "id": 182, - "prevSize": 16, - "code": 59763, - "name": "it-other-imm" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 115 - }, - { - "icon": { - "paths": [ - "M887.994 0h-751.988c-75.59 0-136.006 60.416-136.006 136.006v751.988c0 75.543 60.416 136.006 136.006 136.006h751.988c75.543 0 136.006-60.463 136.006-136.006v-751.988c0-75.59-60.463-136.006-136.006-136.006zM405.923 688.454c-12.567 19.363-30.627 34.49-54.179 45.242-23.505 10.799-49.99 16.198-79.453 16.198-37.329 0-68.608-5.399-93.836-16.337-25.228-10.845-45.009-27.183-59.299-49.059-14.383-21.876-21.923-46.545-22.668-74.147l51.433-4.515c2.467 20.62 8.099 37.609 16.989 50.781 8.89 13.219 22.761 23.924 41.519 32.023 18.758 8.192 39.843 12.288 63.302 12.288 20.806 0 39.191-3.072 55.11-9.309 15.919-6.144 27.788-14.615 35.607-25.46 7.773-10.705 11.636-22.528 11.636-35.328 0-12.847-3.77-24.204-11.264-33.885-7.494-9.635-19.875-17.734-37.097-24.297-11.078-4.329-35.561-10.985-73.402-20.154-37.888-9.030-64.419-17.687-79.593-25.693-19.689-10.38-34.397-23.133-44.032-38.447-9.635-15.267-14.476-32.349-14.476-51.293 0-20.806 5.911-40.262 17.687-58.368 11.823-18.060 29.091-31.837 51.759-41.193 22.807-9.309 48.035-14.010 75.776-14.010 30.58 0 57.53 4.934 80.849 14.755 23.366 9.868 41.286 24.343 53.853 43.473s19.316 40.774 20.247 64.977l-52.317 3.956c-2.839-26.065-12.335-45.754-28.579-59.066-16.198-13.359-40.122-20.015-71.82-20.015-33.001 0-57.065 6.051-72.145 18.153s-22.621 26.671-22.621 43.753c0 14.801 5.353 26.996 16.012 36.538 10.519 9.588 37.888 19.409 82.292 29.417 44.311 10.054 74.752 18.851 91.229 26.298 24.017 10.985 41.705 25.088 53.155 41.984 11.45 16.989 17.129 36.538 17.129 58.647 0.047 22.016-6.237 42.636-18.804 62.092zM862.115 688.454c-12.614 19.363-30.627 34.49-54.132 45.242-23.645 10.799-50.129 16.198-79.5 16.198-37.376 0-68.655-5.399-93.789-16.337-25.228-10.845-45.009-27.183-59.345-49.059s-21.876-46.545-22.621-74.147l51.526-4.515c2.374 20.62 8.006 37.609 16.989 50.781 8.844 13.219 22.575 23.924 41.472 32.023 18.618 8.192 39.75 12.288 63.255 12.288 20.713 0 39.145-3.072 55.156-9.309 15.872-6.144 27.741-14.615 35.514-25.46 7.866-10.705 11.729-22.528 11.729-35.328 0-12.847-3.724-24.204-11.217-33.885-7.494-9.635-19.875-17.734-37.143-24.297-11.124-4.329-35.654-10.985-73.356-20.154-37.981-9.030-64.512-17.687-79.639-25.693-19.735-10.38-34.351-23.133-43.985-38.447-9.728-15.267-14.522-32.349-14.522-51.293 0-20.806 5.865-40.262 17.78-58.368 11.729-18.060 28.998-31.837 51.712-41.193 22.621-9.402 47.849-14.057 75.636-14.057 30.487 0 57.484 4.934 80.849 14.755 23.226 9.868 41.239 24.343 53.853 43.473 12.521 19.13 19.27 40.774 20.294 64.977l-52.364 3.956c-2.793-26.065-12.428-45.754-28.532-59.066-16.244-13.312-40.215-19.968-71.866-19.968-33.001 0-57.158 6.051-72.145 18.153-15.081 12.055-22.575 26.671-22.575 43.706 0 14.801 5.213 26.996 16.012 36.538 10.519 9.588 37.841 19.409 82.246 29.417 44.358 10.054 74.752 18.851 91.276 26.298 24.017 10.985 41.705 25.088 53.108 41.984 11.543 16.989 17.268 36.538 17.268 58.647-0.047 22.063-6.423 42.682-18.944 62.138z" - ], - "attrs": [ - { - "fill": "rgb(99, 147, 205)" - } - ], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-secsis" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [ - 5 - ] - } - }, - "attrs": [ - { - "fill": "rgb(99, 147, 205)" - } - ], - "properties": { - "order": 414, - "id": 181, - "prevSize": 16, - "code": 59764, - "name": "it-other-secsis" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 116 - }, - { - "icon": { - "paths": [ - "M136 0c-75.55 0-136 60.45-136 136v752c0 75.55 60.45 136 136 136h752c75.55 0 136-60.45 136-136v-752c0-75.55-60.45-136-136-136h-752zM714 316c46.577 0 84.911 14.61 114 42 17.315 16.194 31.342 37.681 40 68l-76 20c-4.502-19.638-15.716-36.63-30-48s-31.569-16-52-16c-28.223 0-50.426 9.845-68 30s-26 52.866-26 98c-0 47.891 8.685 81.672 26 102s40.296 30 68 30c20.431 0 37.282-5.080 52-18s25.593-34.265 32-62l74 24c-11.428 41.345-29.422 71.931-56 92s-61.137 30-102 30c-50.56 0-91.448-17.632-124-52s-50-80.395-50-140c-0-63.050 17.275-113.115 50-148s74.67-52 128-52zM156 322h84l96 280 92-280h82l-136 380h-82l-136-380z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-vc" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 415, - "id": 180, - "prevSize": 16, - "code": 59765, - "name": "it-other-vc" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 117 - }, - { - "icon": { - "paths": [ - "M136 0c-75.55 0-136 60.45-136 136v410h1024v-410c0-75.55-60.45-136-136-136h-752zM122 146h234v50l-176 218h182v54h-260v-60l168-208h-148v-54zM380 146h256v54h-96v268h-64v-268h-96v-54zM678 146h238v54h-174v72h162v54h-162v88h180v54h-244v-322zM78 606v244h56v-92h36c25.125 0 44.75-1.665 58-4 9.75-1.89 18.562-4.162 28-10s17.875-13.771 24-24c6.125-10.229 10-22.99 10-38-0-19.458-5.375-35.714-16-48s-24.25-20.331-40-24c-10.25-2.446-32.25-4-66-4h-90zM308 606l66 244h60l56-182 54 182h58l68-244h-56l-42 170-48-170h-66l-50 168-42-168h-58zM698 606v244h56v-102h10c12.75 0 22.125 2.166 28 4s12.75 5.052 18 10c5.25 4.948 13.75 16.987 28 36l40 52h68l-34-48c-13.25-19.013-24.188-30.55-32-38s-18-15.773-30-22c24.125-3.113 41.875-10.047 54-22s18-27.654 18-46c-0-14.454-4-26.77-12-38s-18.688-19.608-32-24c-13.313-4.392-34.625-6-64-6h-116zM134 648h28c20 0 33.375-1.112 40 0 9 1.446 16.125 6.219 22 12s8 13.105 8 22c-0 7.227-1.813 12.552-6 18s-10.625 9.442-18 12c-7.375 2.557-22.125 4-44 4h-30v-68zM754 648h42c22.5 0.001 37.5-0.557 42 0 9 1.334 15.063 4.941 20 10s8 11.772 8 20c0 7.338-2.25 13.108-6 18s-9.375 7.998-16 10c-6.625 2.001-23.375 4-50 4h-40v-62zM0 886v2c0 75.55 60.45 136 136 136h752c75.55 0 136-60.45 136-136v-2h-1024z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-ztepower" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 416, - "id": 179, - "prevSize": 16, - "code": 59766, - "name": "it-other-ztepower" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 118 - }, - { - "icon": { - "paths": [ - "M510.016 0l-510.016 128c38.682 381.043-34.883 833.642 502.078 896h19.845c536.96-62.358 463.396-514.957 502.078-896l-512-128h-1.984zM130.977 332h234.171v50l-174.636 218h180.589v54h-257.984v-60l166.698-208h-148.837v-54zM388.961 332h254.016v54h-95.256v268h-63.504v-268h-95.256v-54zM684.651 332h234.171v54h-170.667v72h158.76v54h-158.76v88h176.62v54h-240.124v-322z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-ztesgs" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 417, - "id": 178, - "prevSize": 16, - "code": 59767, - "name": "it-other-ztesgs" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 119 - }, - { - "icon": { - "paths": [ - "M136 0c-75.55 0-136 60.45-136 136v752c0 75.55 60.45 136 136 136h752c75.55 0 136-60.45 136-136v-752c0-75.55-60.45-136-136-136h-752zM94 262h94l198 334v-334h92v500h-98l-196-326v326h-90v-500zM546 262h384v84h-144v416h-96v-416h-144v-84z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-other-zxsdr-nt" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 418, - "id": 177, - "prevSize": 16, - "code": 59768, - "name": "it-other-zxsdr-nt" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 120 - }, - { - "icon": { - "paths": [ - "M510.994 0c-282.703 0-510.994 228.291-510.994 510.994s228.291 513.006 510.994 513.006c282.703 0 513.006-230.303 513.006-513.006s-230.303-510.994-513.006-510.994zM506.97 110.648l122.719 122.719h-88.519v162.955c0 20.826-7.813 82.483-44.259 82.483h-66.389c33.843-9.545 42.248-60.513 42.248-80.472v-164.967h-88.519l122.719-122.719zM162.955 356.086v88.519h166.978c19.959 0 68.914-8.405 78.46-42.248v66.389c0 36.446-61.657 44.259-82.483 44.259h-162.955v88.519l-122.719-122.719 122.719-122.719zM859.033 356.086l122.719 122.719-122.719 122.719v-88.519h-164.967c-19.959-0-70.926 10.416-80.472 44.259v-66.389c0-36.446 61.657-46.271 82.483-46.271h162.955v-88.519zM430.522 543.183h66.389c36.446 0 44.259 63.669 44.259 84.495v160.943h88.519l-122.719 124.731-122.719-124.731h88.519v-164.967c0-19.959-8.405-70.926-42.248-80.472z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-router" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 419, - "id": 176, - "prevSize": 16, - "code": 59769, - "name": "it-router" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 121 - }, - { - "icon": { - "paths": [ - "M510 0c-282.703 0-510 227.297-510 510s227.297 514 510 514c9.173 0 18.943-1.521 28-2-36.918-3.27-66-32.204-66-70v-74l-88-90h88v-164c0-19.959-8.157-70.455-42-80h66c34.803 0 45.287 56.63 46 80 0.678-0.019 1.317 0 2 0h408c19.995 0 38.952 8.952 52 22 11.787-43.072 20-89.259 20-136 0-282.703-231.297-510-514-510zM506 110l124 124h-88v162c0 20.826-9.554 82-46 82h-66c33.843-9.545 42-60.041 42-80v-164h-88l122-124zM162 356v88h168c19.959 0 68.455-8.157 78-42v66c0 36.446-61.174 46-82 46h-164v88l-122-124 122-122zM860 356l122 122-122 124v-88h-166c-19.959-0-70.455 10.157-80 44v-68c0-36.446 61.174-46 82-46h164v-88zM636 686c-35.745 0-64.066 14.163-86 40s-32 61.302-32 108c-0 44.146 10.182 78.546 32 104s50.112 38 84 38c27.388 0 50.186-7.136 68-22s30.34-37.378 38-68l-50-18c-4.294 20.542-12.136 36.431-22 46s-20.306 14-34 14c-18.569 0-34.395-6.944-46-22s-18-40.53-18-76c-0-33.428 6.22-57.072 18-72s27.083-24 46-24c13.694 0 26.425 5.58 36 14s14.982 19.455 18 34l50-14c-5.803-22.456-14.395-40.006-26-52-19.497-20.287-44.782-30-76-30zM894 686c-35.745 0-64.066 14.163-86 40s-34 61.302-34 108c0 44.146 12.182 78.546 34 104s50.112 38 84 38c27.388 0 50.186-7.136 68-22s30.34-37.378 38-68l-50-18c-4.294 20.542-12.136 36.431-22 46s-22.306 14-36 14c-18.569 0-32.395-6.944-44-22s-18-40.53-18-76c-0-33.428 6.221-57.072 18-72s27.083-24 46-24c13.694 0 24.425 5.58 34 14s16.982 19.455 20 34l50-14c-5.803-22.456-14.395-40.006-26-52-19.497-20.287-44.782-30-76-30z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-router-cisco" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 420, - "id": 175, - "prevSize": 16, - "code": 59770, - "name": "it-router-cisco" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 122 - }, - { - "icon": { - "paths": [ - "M510 0c-282.703 0-510 227.297-510 510s227.297 514 510 514c9.173 0 18.943-1.521 28-2-36.918-3.27-66-32.204-66-70v-74l-88-90h88v-164c0-19.959-8.157-70.455-42-80h66c34.803 0 45.287 56.63 46 80 0.678-0.019 1.317 0 2 0h408c80.239 45.398 67.455-57.196 72-114 0-282.703-231.297-510-514-510zM506 110l124 124h-88v162c0 20.826-9.554 82-46 82h-66c33.843-9.545 42-60.041 42-80v-164h-88l122-124zM162 356v88h168c19.959 0 68.455-8.157 78-42v66c0 36.446-61.174 46-82 46h-164v88l-122-124 122-122zM860 356l122 122-122 124v-88h-166c-19.959-0-70.455 10.157-80 44v-68c0-36.446 61.174-46 82-46h164v-88zM644 666v206c-0 25.958-2.021 43.761-8 52s-15.563 12-30 12c-14.292 0-25-4.479-32-16-4.667-7.583-7.271-21.625-8-40l-62 8c0.146 34.271 8.937 60.281 26 78s40.354 26 72 26c26.979 0 49.521-6.698 66-18s27.729-25.333 34-44c4.667-14.292 8-35.458 8-62v-202h-66zM778 666v320h66v-120h42c29.312 0 50.542-2.938 66-6 11.375-2.479 22.989-6.344 34-14s20.854-18.583 28-32c7.146-13.417 10-30.312 10-50-0-25.521-5.604-45.885-18-62s-27.625-27.187-46-32c-11.959-3.208-38.625-4-78-4h-104zM844 720h30c23.333 0 40.271 0.544 48 2 10.5 1.896 19.146 6.417 26 14s10 18.334 10 30c-0 9.479-3.115 16.854-8 24s-11.396 12.646-20 16c-8.604 3.354-26.479 4-52 4h-34v-90z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-router-juniper" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 421, - "id": 174, - "prevSize": 16, - "code": 59771, - "name": "it-router-juniper" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 123 - }, - { - "icon": { - "paths": [ - "M510 0c-282.703 0-510 227.297-510 510s227.297 514 510 514c9.173 0 18.943-1.521 28-2-36.918-3.27-66-32.204-66-70v-74l-88-90h88v-164c0-19.959-8.157-70.455-42-80h66c34.803 0 45.287 56.63 46 80 0.678-0.019 1.317 0 2 0h408c19.995 0 38.952 8.952 52 22 11.787-43.072 20-89.259 20-136 0-282.703-231.297-510-514-510zM506 110l124 124h-88v162c0 20.826-9.554 82-46 82h-66c33.843-9.545 42-60.041 42-80v-164h-88l122-124zM162 356v88h168c19.959 0 68.455-8.157 78-42v66c0 36.446-61.174 46-82 46h-164v88l-122-124 122-122zM860 356l122 122-122 124v-88h-166c-19.959-0-70.455 10.157-80 44v-68c0-36.446 61.174-46 82-46h164v-88zM518 692v46h90l-100 182v52h156v-48h-110l106-188v-44h-142zM674 692v46h58v234h38v-234h58v-46h-154zM852 692v280h146v-48h-106v-76h96v-48h-96v-62h102v-46h-142z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-router-zte" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 422, - "id": 173, - "prevSize": 16, - "code": 59772, - "name": "it-router-zte" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 124 - }, - { - "icon": { - "paths": [ - "M498 0c-82.519 2.143-165.486 23.825-242 68-244.845 141.361-329.362 455.154-188 700 106.738 184.875 312.557 278.159 512 252-23.098-16.31-36-37.265-36-58 0-22.862 16.376-42.721 44-60h-32c-41.912 0-76-34.088-76-76v-106l-34 20c-24.647-27.731-47.939-55.857-70-88l104-60v-64c0-41.912 34.088-76 76-76h234c-4.577-10.693-8.966-21.469-14-32l118-68c13.86 32.95 24.711 65.817 30 100h66c10.478 0 20.943 2.182 30 6-7.234-69.314-26.904-137.747-64-202-97.186-168.332-276.459-260.715-458-256zM522 98c45.425 1.164 91.517 8.458 134 24l-64 36c-22.81-22.127-46.007-41.704-70-60zM394 114c39.587 25.645 77.222 56.281 114 92l-84 50-72-126c13.742-5.791 27.946-11.802 42-16zM760 178c31.164 23.016 57.718 51.994 82 84l-116 66c-20.412-32.755-40.883-63.378-64-92l88-50c3.203-1.849 7.605-5.435 10-8zM260 182h2l72 126-92 52c-12.71-49.313-19.255-97.188-22-144 12.39-12.178 25.888-23.296 40-34zM578 284c22.939 28.459 45.686 59.403 66 92l-112 64-56-96 102-60zM142 324c3.994 27.9 10.635 55.372 18 84l-58 34c7.124-40.784 21.181-80.964 40-118zM384 396l56 96-118 70c-18.2-33.781-34.67-67.986-48-102l110-64zM192 506c13.396 34.309 27.682 69.999 46 104l-108 62c-15.214-36.17-27.501-72.402-32-110l94-56zM612 506c-49.516 0-90 38.484-90 88v194c0 49.516 40.484 90 90 90h102l-6 34c-51.586 9.811-88 30.549-88 54 0 32.643 68.81 58 154 58s154-25.357 154-58c0-24.169-37.838-46.585-92-56l-6-32h104c49.516 0 90-40.484 90-90v-194c0-49.516-40.484-88-90-88h-322zM584 574h380v236h-380v-236zM292 700c22.147 32.13 47.183 58.271 72 86l-102 60c-30.311-22.695-56.283-52.739-80-84l110-62zM438 864c28.836 24.958 59.885 44.975 90 64-53.295 1.962-108.201-6.157-158-24l68-40z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-sdn-host" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 423, - "id": 172, - "prevSize": 16, - "code": 59773, - "name": "it-sdn-host" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 125 - }, - { - "icon": { - "paths": [ - "M498 0c-82.532 2.144-165.473 23.817-242 68-244.886 141.385-329.386 455.113-188 700 58.255 100.901 146.218 174.257 246 216v-168l-52 30c-30.316-22.699-56.279-52.734-80-84l104-60-14-4-156-8 30-28-16 10c-15.217-36.176-27.5-72.396-32-110l94-56c10.044 25.725 21.614 52.249 34 78l72-72c-8.357-17.441-17.093-34.376-24-52l112-64 10 18 92-92 10 10 82-48c22.943 28.464 43.682 59.397 64 92l-66 36 78 78 40-24 104-60 94-56c7.367 17.515 14.618 36.072 20 54h4l92-14c-11.285-45.819-29.221-91.081-54-134-97.203-168.36-276.429-260.716-458-256zM522 98c45.433 1.164 91.51 8.455 134 24l-64 36c-22.814-22.131-46.003-41.701-70-60zM394 114c39.593 25.649 77.216 56.275 114 92l-84 50-72-126c13.744-5.792 27.944-11.801 42-16zM760 178c31.169 23.019 57.714 49.989 82 82l-116 68c-20.416-32.76-40.879-63.373-64-92l88-52c3.203-1.849 7.605-3.435 10-6zM262 182l72 126-92 52c-12.711-49.321-17.254-97.18-20-144 12.392-12.18 25.886-23.294 40-34zM142 324c3.995 27.904 10.633 55.367 18 84l-58 34c7.125-40.791 21.178-80.958 40-118zM474 436l-208 210h126v286l72 92h94v-378h126l-210-210zM804 436l-72 90v288h-126l208 210 210-210h-126v-378h-94z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-sdn-switch" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 424, - "id": 171, - "prevSize": 16, - "code": 59774, - "name": "it-sdn-switch" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 126 - }, - { - "icon": { - "paths": [ - "M52 0c-28.218 0-52 27.877-52 62v900c0 34.123 23.782 62 52 62h524c28.218 0 50-27.877 50-62v-900c0-34.123-19.782-62-48-62h-526zM674 6c18.999 10.074 32 31.54 32 56v900c0 20.133-9.853 36.659-24 48l262-78c42.237-12.574 80-30.971 80-70v-706c0-39.029-37.766-57.42-80-70l-270-80zM120 140h388c19.009 0 34 19.012 34 42v210c0 22.988-14.991 40-34 40h-388c-19.009 0-36-17.012-36-40v-210c0-22.988 16.991-42 36-42zM136 200c-8.519 0-16 12.757-16 30s7.481 32 16 32h356c8.519 0 14-14.757 14-32s-5.481-30-14-30h-356zM136 312c-8.519 0-16 12.757-16 30s7.481 32 16 32h356c8.519 0 14-14.757 14-32s-5.481-30-14-30h-356zM314 672c35.346 0 64 28.654 64 64s-28.654 64-64 64c-35.346 0-64-28.654-64-64s28.654-64 64-64z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-server" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 425, - "id": 170, - "prevSize": 16, - "code": 59775, - "name": "it-server" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 127 - }, - { - "icon": { - "paths": [ - "M512 0c-282.77 0-512 229.23-512 512s229.23 512 512 512c282.77 0 512-229.23 512-512s-229.23-512-512-512zM512 64c247.424 0 448 200.576 448 448s-200.576 448-448 448c-247.424 0-448-200.576-448-448s200.576-448 448-448zM512 128c-212.077 0-384 171.923-384 384 0 36.156 6.659 70.831 16 104l112-292h68l130 320h-72l-28-72h-128l-26 72h-48c53.837 147.035 194.315 252 360 252s306.163-104.965 360-252h-72l-72-110-72 110h-76l108-166-98-154h76l64 102 62-102h56c-65.661-117.507-191.828-196-336-196zM486 324h64v320h-64v-320zM856 342l-88 138 106 158c13.732-39.506 22-81.817 22-126 0-60.905-14.763-118.84-40-170zM290 398l-44 120h88l-44-120z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-server-aix" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 426, - "id": 169, - "prevSize": 16, - "code": 59776, - "name": "it-server-aix" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 128 - }, - { - "icon": { - "paths": [ - "M702.196 0c-83.559 0-149.421 75.593-149.421 171.057 0 45.281 15.194 86.372 39.69 117.162-8.686 12.223-17.338 24.876-25.682 37.492-23.194 35.070-43.629 76.976-60.702 89.043-83.523 59.033-121.404 129.992-121.404 248.384 0 16.631 2.556 30.874 4.669 46.865 23.321-11.463 52.84-16.403 84.049-16.403 4.043 0 7.718-0.217 11.673 0-3.685-18.422-7.004-35.25-7.004-53.895 1.251-128.832 55.389-209.786 114.4-292.906 2.648-3.499 6.269-9.105 9.339-14.059 2.452 4.241 6.283 6.793 11.673 9.373l49.029 23.432c23.628 11.307 48.25 10.417 72.376 0l53.698-23.432c0.84-0.363 1.558 0.418 2.335 0 42.272 91.45 99.084 194.293 100.392 278.847 0 23.808-2.958 45.866-7.004 67.954 13.057-2.524 27.684-2.343 42.025-2.343 18.9 0 37.191 0.405 53.698 4.686 0.818-10.044 2.335-17.843 2.335-28.119 0-99.83-26.283-175.644-88.719-236.668-25.549-24.971-56.834-78.168-91.053-126.535 31.389-31.635 51.363-77.388 51.363-128.879 0-95.465-68.196-171.057-151.755-171.057zM641.494 140.595c25.311 0 44.359 22.043 44.359 51.551 0 4.072-1.65 7.893-2.335 11.716-4.628 0.607-9.186 2.398-14.008 4.686 0-22.185-14.217-39.835-30.351-39.835s-28.016 17.65-28.016 39.835c0 13.422 4.319 27.854 11.673 35.149-16.692-8.63-28.016-29.42-28.016-51.551 0-29.509 21.383-51.551 46.694-51.551zM762.898 142.938c25.311 0 46.694 22.043 46.694 51.551 0 22.132-11.324 42.921-28.016 51.551 5.88-7.348 7.004-18.677 7.004-30.462 0-22.185-11.882-42.178-28.016-42.178s-30.351 19.994-30.351 42.178c0 2.428-0.299 4.792 0 7.030-3.068-2.177-6.263-5.265-9.339-7.030-2.536-6.816-4.669-13.366-4.669-21.089 0-29.509 21.383-51.551 46.694-51.551zM699.861 224.952c12.3-0 25.767 3.837 35.020 11.716l46.694 42.178c13.118 11.17 17.678 26.761 11.673 39.835-1.907 1.316-2.389 3.702-4.669 4.686l-53.698 23.432c-24.126 10.417-48.748 11.307-72.376 0l-49.029-23.432c-1.721-0.824-3.302-1.337-4.669-2.343-7.374-13.896-2.206-30.36 11.673-42.178l46.694-42.178c9.253-7.879 20.386-11.716 32.686-11.716zM620.482 285.876c-2.285 2.318-4.669 4.488-4.669 7.030 0 14.123 39.651 25.776 86.384 25.776s81.714-11.653 81.714-25.776c0-2.542-0.049-4.712-2.335-7.030-9.308 11.067-39.863 18.746-79.38 18.746s-72.407-7.679-81.714-18.746zM879.633 710.005c-64.504 7.634-86.384 42.072-86.384 114.819 0 83.14-83.624 189.803 4.669 189.803s224.131-80.887 224.131-164.027c0-83.14-23.773-140.595-112.066-140.595-11.037 0-21.136-1.091-30.351 0zM466.391 719.378c-88.293 0-112.066 57.455-112.066 140.595s135.839 164.027 224.131 164.027c88.293 0 4.669-104.32 4.669-187.46s-28.442-117.162-116.735-117.162zM620.482 888.092l14.008 49.208 14.008 56.238c11.583 1.562 23.045 2.343 35.020 2.343 12.676 0 25.138-0.585 37.355-2.343 5.185-25.46 21.012-89.043 21.012-89.043l7.004-16.403c-19.981 9.799-40.537 16.403-63.037 16.403-23.030 0-44.951-6.259-65.372-16.403z", - "M434.89 2.105l-417.088 440.582 190.741 30.089-208.544 371.808 399.285-425.537-139.877-83.818z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-server-klinux" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 427, - "id": 168, - "prevSize": 16, - "code": 59777, - "name": "it-server-klinux" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 129 - }, - { - "icon": { - "paths": [ - "M510.592 0c-281.856 0-510.592 230.336-510.592 513.472s228.736 510.528 510.592 510.528 513.408-227.52 513.408-510.528c0-283.072-231.552-513.472-513.408-513.472zM464.704 88.896l31.552 8.64 37.312 8.576 31.552-5.696 17.28-2.88 22.912-5.76c0 0 20.992-4.544 31.488-2.88 10.304 1.664 21.888-0.768 31.552 2.88 13.376 5.056 25.984 14.080 37.248 22.912 19.456 15.296 37.248 63.104 37.248 63.104l20.096 54.528 22.848 65.984 5.76 48.768-5.76 60.224 43.136-37.312c33.344 8.128 72.64 28.736 111.808 54.528 0 0 7.168 44.672 5.76 65.984-1.216 18.496-4.8 38.656-14.336 54.528-16.768 27.776-44.608 45.632-71.744 63.104-21.504 13.888-44.032 25.344-68.864 31.488-38.016 9.344-78.4 6.4-117.568 5.76-37.056-0.64-72.576-1.6-108.992-8.64-43.264-8.256-88.064-20.736-128.96-37.248-47.36-19.136-134.784-74.624-134.784-74.624s-76.672-44.16-114.752-80.32c-15.232-14.4-48.832-65.92-48.832-65.92s-8.896-48.32 2.88-57.344c0 0 38.080-28.736 54.528-31.552 39.616-6.784 79.040-8.512 123.328-14.336v2.816l22.912 22.976 63.104 43.008 91.776 34.432 45.952 20.096c0 0 34.816 2.88 45.824 2.88 11.136 0 2.88-22.912 2.88-22.912l-17.216-17.28-5.76-14.336-8.512-22.912-14.336-17.216-94.656-31.552-77.44-28.672-40.192-31.616 8.64-40.128 17.216-37.312 14.336-22.976 22.976-14.336 31.552-8.64 37.248-2.816zM613.888 114.752l-8.64 14.336 25.728 8.64 20.032 5.696-20.032 31.552 60.224-14.336 5.824-28.672-31.488-11.456-51.648-5.76zM410.176 154.944l-14.336 42.944 31.552 31.552 17.216-5.76 43.008-8.576 48.768-14.336 5.76-17.216-37.312-8.576-54.464 8.576-40.192-28.608zM238.080 530.688h17.216l25.792 14.336 37.312 40.128 51.648 5.76 65.984 80.384 286.848 5.76-22.976 106.112-48.768 62.976-28.608 25.856-2.88-2.88 2.88 22.848 31.488-5.76 108.992-80.32v-22.912h114.752l45.888 11.52c-92.032 131.136-244.48 215.104-413.056 215.104-216.192 0-400.128-135.424-470.4-332.672l20.096-5.824 8.576-34.368 8.576-5.76 100.416 5.76 68.864 45.888 25.792-5.696-2.88-28.672-37.312-34.432-14.336-22.912-2.88-28.736 8.64-14.336 14.336-17.152zM527.808 740.032c-10.688 2.368 1.152 9.344-8.576 14.4-19.008 9.664 22.912 28.672 22.912 28.672s22.72 12.032 34.368 11.456c10.624-0.576 28.736-11.456 28.736-11.456 17.728-17.28 9.024-41.344 0-34.496l-22.976 14.464h-22.912c0-0.064-19.712-25.536-31.552-23.040z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-server-redhat" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 428, - "id": 167, - "prevSize": 16, - "code": 59778, - "name": "it-server-redhat" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 130 - }, - { - "icon": { - "paths": [ - "M468 0l-48 268c16.173-3.297 30.849-4 48-4s33.827 0.703 50 4l-50-268zM140 134l150 208c22.048-23.283 46.359-42.605 76-56l-226-152zM798 134l-226 152c29.641 13.395 53.952 32.717 76 56l150-208zM0 374l222 102c4.34-29.541 14.151-58.816 28-84l-250-18zM938 374l-252 18c13.849 25.184 23.66 54.459 28 84l224-102zM650 526c-359.894 0-650 58.809-650 132s290.106 134 650 134c58.987 0 117.658-3.012 172-6-10.202 0.109-19.67 0-30 0-330.653 0-600-54.037-600-122s269.347-124 600-124c82.663 0 160.373 3.773 232 10-105.684-15.034-235.24-24-374-24z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-server-solaris" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 429, - "id": 166, - "prevSize": 16, - "code": 59779, - "name": "it-server-solaris" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 131 - }, - { - "icon": { - "paths": [ - "M516 58c-65.675 2.119-123.16 4.56-184 34-72.421 32-145.651 59.003-206 112l-68 84c-69.777 119.589-54.416 232.934 106 290 77.742 5.552 221.478-57.888 130-202-29.523-28.96-55.273-37.398-104-30-41.79 11.271-68.086 46.084-54 102 19.492 27.884 22.688 25.105 42 30l48 4 8-26-6-20-8-6-24 8c-8.312 15.984-60.714-16.58-8-42 9.817-4.489 38.161-14.031 60 6 31.625 31.716 57.773 84.241-28 118-67.019 7.312-100.036-7.173-128-76l-2-44 8-40c25.624-32.030 36.815-49.83 80-54 52.83-2.032 90.154-5.104 136 26l30 40 20 40 14 30 34 22 30 14c0-47.834-13.068-83.628 26-114l28-10c29.176 0.729 53.498-9.082 82 10l20 20 46 52 52 28 44 26 8-6-24-32c-9.354-42.571-25.187-62.438 0-106l26-8c80.668 5.366 185.805 20.894 260-38 5.991-2.681 19.875-27.248-2-38-2.468 7.251-2.487 15.266-20 22-43.274 12.798-69.848 21.603-118-4-31.965-11.776-57.959-15.825-76-46l-6-12 18-6 40 24c25.187 12.253 45.744 28.964 76 30 35.19-2.629 61.074 2.317 92-20l14-16c-13.040-40.569-18.998-80.996-52-110-42.108-21.054-82.178-38.858-130-44l-86-12 6 38-50-22-90-16-110-10zM918 122c33.395 0 60 26.605 60 60s-26.605 60-60 60c-33.395 0-60-26.605-60-60s26.605-60 60-60zM918 142c-21.945 0-40 18.055-40 40s18.055 40 40 40c21.945 0 40-18.055 40-40s-18.055-40-40-40zM922 154c10.165 0 18 7.835 18 18s-7.835 18-18 18c-10.165 0-18-7.835-18-18s7.835-18 18-18zM116 646c-21.527 0-40.779 4.988-56 12s-25.912 16.594-34 30c-8.088 13.407-12 28.6-12 44-0 23.926 8.804 43.362 26 60 12.228 11.825 33.684 21.888 64 30 23.565 6.325 37.376 11.525 44 14 9.68 3.713 16.115 6.981 20 12s6 10.85 6 18c-0 11.138-4.765 21.681-14 30s-21.785 12-40 12c-17.196 0-31.874-4.65-42-14s-16.688-24.062-20-44l-54 6c3.694 33.826 15.021 60.331 34 78s46.589 26 82 26c24.329 0 43.696-4.644 60-12s29.083-18.875 38-34c8.916-15.125 14-30.675 14-48-0-19.113-4.549-35.006-12-48s-16.817-22.506-30-30c-13.184-7.494-34.487-14.987-62-22s-44.867-13.537-52-20c-5.605-5.087-8-12.85-8-20-0-7.837 2.013-13.325 8-18 9.298-7.287 23.568-10 40-10 15.922 0 28.039 3.194 36 10s11.58 18.463 14 34l58-4c-0.892-27.775-10.231-49.362-28-66s-44.844-26-80-26zM616 646c-21.527 0-38.779 4.988-54 12s-27.912 16.594-36 30c-8.088 13.407-12 28.6-12 44-0 23.926 8.804 43.362 26 60 12.228 11.825 33.684 21.888 64 30 23.565 6.325 39.376 11.525 46 14 9.681 3.713 16.115 6.981 20 12s6 10.85 6 18c-0 11.138-4.765 21.681-14 30s-23.785 12-42 12c-17.196 0-29.874-4.65-40-14s-16.689-24.062-20-44l-56 6c3.694 33.826 15.021 60.331 34 78s46.589 26 82 26c24.329 0 43.695-4.644 60-12s29.083-18.875 38-34c8.916-15.125 14-30.675 14-48-0-19.113-4.548-35.006-12-48s-16.817-22.506-30-30c-13.184-7.494-34.487-14.987-62-22s-44.867-13.537-52-20c-5.605-5.087-8-12.85-8-20-0-7.837 4.013-13.325 10-18 9.298-7.287 21.568-10 38-10 15.922 0 28.039 3.194 36 10s13.58 18.462 16 34l56-4c-0.892-27.775-10.231-49.362-28-66s-44.844-26-80-26zM896 650c-33.989 0-63.77 13.115-86 40s-32 64.524-32 112c0 39.744 7.086 71.924 24 98 23.472 24.814 37.445 40.196 80 48 10.305-3.467 69.29 0.256 76-6 9.704-9.048 12.525-32.631 2-44-6.247-6.748-56.534-2.879-72-6-26.387-8.256-41.018-28.763-40-70h170c0.966-58.086-9.932-101.856-32-130s-51.823-42-90-42zM900 708c13.853 0 24.335 4.58 34 16s15.518 28.060 16 50h-102c-0.16-20.681 4.335-35.951 14-48s23.18-18 38-18zM278 736v138c-0 20.625 1.16 36.312 6 48s13.173 21.537 24 28c10.827 6.463 24.371 10 38 10 13.374-0 25.963-3.262 38-10s20.612-16.312 28-28v32h50v-218h-54v92c-0 31.351-1.325 49.956-4 58s-6.74 14.569-14 20c-7.261 5.432-16.829 10-26 10-8.025 0-12.778-1.944-18-6s-10.026-11.056-12-18c-1.974-6.944-2-25.199-2-56v-100h-54z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-server-suse" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 430, - "id": 165, - "prevSize": 16, - "code": 59780, - "name": "it-server-suse" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 132 - }, - { - "icon": { - "paths": [ - "M398 48c-49.48-0.394-105.040 6.773-168 26l-106 332c130.327-31.196 261.844-49.831 374 28l100-326c-53.73-36.361-117.533-59.343-200-60zM646 136l-102 326c85.969 58.177 202.107 85.272 370 34l104-332c-130.327 31.196-259.844 49.831-372-28zM276 446c-49.48-0.394-105.040 8.773-168 28l-104 330c130.327-31.196 261.844-49.831 374 28l100-324c-53.73-36.361-119.533-61.343-202-62zM532 532l-100 324c85.969 58.177 200.107 87.272 368 36l106-332c-130.327 31.196-261.844 49.831-374-28z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-server-windows" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 431, - "id": 164, - "prevSize": 16, - "code": 59781, - "name": "it-server-windows" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 133 - }, - { - "icon": { - "paths": [ - "M172 2c-94.922 0-174 77.078-174 172v678c0 94.922 79.078 174 174 174h678c94.922 0 172-79.078 172-174v-678c0-94.922-77.078-172-172-172h-678zM172 66h678c60.656 0 108 47.344 108 108v678c0 60.656-47.344 110-108 110h-678c-60.656 0-110-49.344-110-110v-678c0-60.656 49.344-108 110-108zM648 128c-65.702 0-118 59.253-118 134 0 35.455 12.739 67.892 32 92-6.83 9.571-13.44 18.122-20 28-18.237 27.459-34.576 60.552-48 70-65.673 46.222-96 101.301-96 194 0 13.022 2.338 25.479 4 38 18.337-8.975 41.46-14 66-14 3.179 0 4.89-0.173 8 0-2.898-14.424-4-27.401-4-42 0.984-100.874 43.6-162.918 90-228 2.082-2.74 3.586-8.121 6-12 1.928 3.32 5.762 5.98 10 8l38 18c18.578 8.853 39.030 8.156 58 0l42-18c0.66-0.284 1.389 0.328 2 0 33.238 71.604 76.972 151.795 78 218 0 18.641-2.819 36.706-6 54 10.267-1.976 22.724-2 34-2 14.861 0 29.020 0.648 42 4 0.643-7.865 2-15.954 2-24 0-78.166-20.908-136.219-70-184-20.089-19.552-45.094-62.129-72-100 24.681-24.77 40-59.684 40-100 0-74.747-52.298-134-118-134zM438 130l-328 344 150 24-164 292 314-334-110-66 138-260zM600 238c19.902 0 34 16.895 34 40 0 3.188-1.461 7.006-2 10-3.639 0.476-6.208 2.208-10 4 0-17.37-11.314-32-24-32s-22 14.63-22 32c0 10.509 4.217 20.288 10 26-13.125-6.757-22-22.671-22-40 0-23.105 16.098-40 36-40zM696 240c19.902 0 36 16.895 36 40 0 17.329-8.875 33.243-22 40 4.623-5.753 6-14.772 6-24 0-17.37-9.314-32-22-32s-24 14.63-24 32c0 1.901-0.237 4.248 0 6-2.413-1.705-5.581-4.618-8-6-1.994-5.337-4-9.953-4-16 0-23.105 18.098-40 38-40zM646 304c9.671-0 20.724 3.831 28 10l36 32c10.315 8.746 14.721 21.763 10 32-1.499 1.031-2.207 1.229-4 2l-42 20c-18.97 8.156-39.422 8.853-58 0l-38-20c-1.353-0.645-2.925 0.788-4 0-5.798-10.88-0.914-24.747 10-34l36-32c7.276-6.169 16.329-10 26-10zM584 352c-1.797 1.815-4 4.010-4 6 0 11.058 31.255 20 68 20s64-8.942 64-20c0-1.99-0.205-4.185-2-6-7.318 8.665-30.929 14-62 14s-56.682-5.335-64-14zM788 684c-50.719 5.978-68 33.040-68 90 0 65.098-67.424 148 2 148s178-62.902 178-128c0-65.098-20.576-110-90-110-8.678 0-14.754-0.854-22 0zM462 692c-69.424 0-88 44.902-88 110s106.576 128 176 128c69.424 0 4-82.902 4-148s-22.576-90-92-90zM584 824l10 38 12 44c9.107 1.223 16.584 2 26 2 9.967 0 20.394-0.621 30-2 4.077-19.935 16-70 16-70l6-12c-15.711 7.673-32.308 12-50 12-18.109 0-33.944-4.058-50-12z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-server-zxve" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 432, - "id": 163, - "prevSize": 16, - "code": 59782, - "name": "it-server-zxve" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 134 - }, - { - "icon": { - "paths": [ - "M154 0c-85.040 0-154 68.96-154 154v716c0 85.040 68.96 154 154 154h716c85.040 0 154-68.96 154-154v-716c0-85.040-68.96-154-154-154h-716zM184 208h656c30.953 0 56 25.979 56 58v12c0 32.021-25.047 58-56 58h-656c-30.953 0-56-25.979-56-58v-12c0-32.021 25.047-58 56-58zM184 476h656c30.953 0 56 25.979 56 58v12c0 32.021-25.047 58-56 58h-656c-30.953 0-56-25.979-56-58v-12c0-32.021 25.047-58 56-58zM184 744h656c30.953 0 56 25.979 56 58v12c0 32.021-25.047 58-56 58h-656c-30.953 0-56-25.979-56-58v-12c0-32.021 25.047-58 56-58z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-storage" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 433, - "id": 162, - "prevSize": 16, - "code": 59783, - "name": "it-storage" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 135 - }, - { - "icon": { - "paths": [ - "M154 0c-85.040 0-154 68.96-154 154v716c0 85.040 68.96 154 154 154h716c85.040 0 154-68.96 154-154v-716c0-85.040-68.96-154-154-154h-716zM178 122h672c26.747 0 48 28.544 48 64s-21.253 64-48 64h-672c-26.747 0-48-28.544-48-64s21.253-64 48-64zM176 344h672c26.747 0 48 28.544 48 64s-21.253 64-48 64h-672c-26.747 0-48-28.544-48-64s21.253-64 48-64zM320 586c39.229 0 71.5 10.813 96 34 14.583 13.709 24.708 34.334 32 60l-64 16c-3.792-16.625-11.969-30.375-24-40s-26.792-14-44-14c-23.771 0-43.198 8.938-58 26s-22 43.792-22 82c-0 40.542 7.417 68.792 22 86s34.667 26 58 26c17.208 0 31.604-5.062 44-16s20.604-28.521 26-52l64 20c-9.625 35-25.615 61.010-48 78s-51.584 26-86 26c-42.583 0-76.583-14.906-104-44s-42-69.542-42-120c-0-53.375 14.437-94.468 42-124s63.083-44 108-44zM724 586c39.229 0 71.5 10.813 96 34 14.583 13.709 26.708 34.334 34 60l-64 16c-3.792-16.625-11.969-30.375-24-40s-26.792-14-44-14c-23.771 0-43.198 8.938-58 26s-22 43.792-22 82c-0 40.542 7.417 68.792 22 86s32.667 26 56 26c17.208 0 31.604-5.062 44-16s22.604-28.521 28-52l62 20c-9.625 35-25.615 61.010-48 78s-51.583 26-86 26c-42.583 0-76.583-14.906-104-44s-42-69.542-42-120c-0-53.375 14.437-94.468 42-124s63.083-44 108-44z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-storage-cisco-mds" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 434, - "id": 161, - "prevSize": 16, - "code": 59784, - "name": "it-storage-cisco-mds" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 136 - }, - { - "icon": { - "paths": [ - "M154 0c-85.040 0-154 68.96-154 154v716c0 85.040 68.96 154 154 154h716c85.040 0 154-68.96 154-154v-716c0-85.040-68.96-154-154-154h-716zM178 122h672c26.747 0 48 28.544 48 64s-21.253 64-48 64h-672c-26.747 0-48-28.544-48-64s21.253-64 48-64zM176 344h672c26.747 0 48 28.544 48 64s-21.253 64-48 64h-672c-26.747 0-48-28.544-48-64s21.253-64 48-64zM76 598h94c21.391 0 38.778 3.844 50 8 15.079 5.641 27.246 13.603 38 28s18.389 31.146 24 52c5.611 20.854 8 47.424 8 78-0 26.865-0.74 50.556-6 70-6.429 23.748-16.077 43.306-28 58-9.001 11.132-20.687 17.766-36 24-11.456 4.602-26.83 10-46 10h-98v-328zM356 598h152v56h-88v72h76v54h-76v90h94v56h-158v-328zM568 602h64v268h100v56h-164v-324zM782 604h66v268h100v56h-166v-324zM128 654v216h38c14.495 0 25.571-1.922 32-4 8.416-2.672 14.447-5.617 20-12s10.493-17.38 14-32c3.507-14.62 6-34.767 6-60s-2.493-44.493-6-58c-3.507-13.507-7.688-24.43-14-32s-14.298-13.328-24-16c-7.248-2.077-22.842-2-44-2h-22z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-storage-md3000" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 435, - "id": 160, - "prevSize": 16, - "code": 59785, - "name": "it-storage-md3000" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 137 - }, - { - "icon": { - "paths": [ - "M154 0c-85.040 0-154 68.96-154 154v716c0 85.040 68.96 154 154 154h716c85.040 0 154-68.96 154-154v-716c0-85.040-68.96-154-154-154h-716zM178 122h672c26.747 0 48 28.544 48 64s-21.253 64-48 64h-672c-26.747 0-48-28.544-48-64s21.253-64 48-64zM176 344h672c26.747 0 48 28.544 48 64s-21.253 64-48 64h-672c-26.747 0-48-28.544-48-64s21.253-64 48-64zM84 590h64l132 214v-214h60v320h-66l-128-208v208h-62v-320zM376 590h70l80 236 80-236h68l-116 320h-68l-114-320zM684 590h256v54h-96v266h-64v-266h-96v-54z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-storage-netvault" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 436, - "id": 159, - "prevSize": 16, - "code": 59786, - "name": "it-storage-netvault" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 138 - }, - { - "icon": { - "paths": [ - "M869.981 0h-715.962c-85.039 0-154.019 68.98-154.019 154.019v716.009c0 84.992 68.98 153.972 154.019 153.972h716.009c84.992 0 153.972-68.98 153.972-154.019v-715.962c0-85.039-68.98-154.019-154.019-154.019zM177.99 121.996h672.023c26.717 0 47.988 28.532 47.988 64s-21.271 64-47.988 64h-672.023c-26.764 0-47.988-28.532-47.988-64s21.271-64 47.988-64zM175.988 344.017h672.023c26.717 0 47.988 28.532 47.988 64s-21.271 64-47.988 64h-672.023c-26.764 0-47.988-28.532-47.988-64s21.271-64 47.988-64zM351.418 907.543h-253.533v-39.377l164.305-205.452c11.636-14.569 22.761-27.229 33.233-37.981h-178.921v-37.841h229.702v37.841l-180.038 222.441-19.456 22.528h204.707v37.841zM627.293 624.733h-106.077v282.81h-42.496v-282.81h-105.658v-37.841h254.185v37.841zM910.988 907.543h-239.337v-320.698h231.843v37.841h-189.347v98.211h177.385v37.609h-177.385v109.196h196.841v37.841z" - ], - "attrs": [ - { - "fill": "rgb(99, 147, 205)" - } - ], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-storage-sanswitch-zte" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [ - 5 - ] - } - }, - "attrs": [ - { - "fill": "rgb(99, 147, 205)" - } - ], - "properties": { - "order": 437, - "id": 158, - "prevSize": 16, - "code": 59787, - "name": "it-storage-sanswitch-zte" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 139 - }, - { - "icon": { - "paths": [ - "M234 0l-234 228 140 134c59.702-39.324 131.164-62 208-62 47.699 0 93.962 9.903 136 26h186v-198h-436v-128zM788 244v128h-222c68.34 46.169 118.415 116.099 140 198h82v124l234-224-234-226zM346 334c-190.682 0-346 153.318-346 344s155.318 346 346 346c190.682 0 344-155.318 344-346s-153.318-344-344-344zM188 530h64l118 298h-64l-26-68h-120l-24 68h-64l116-298zM382 530h236v50h-88v248h-60v-248h-88v-50zM220 600l-40 110h80l-40-110z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-switch-at" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 438, - "id": 157, - "prevSize": 16, - "code": 59788, - "name": "it-switch-at" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 140 - }, - { - "icon": { - "paths": [ - "M234 0l-234 228 140 134c59.702-39.324 131.164-62 208-62 47.699 0 93.962 9.903 136 26h186v-198h-436v-128zM788 244v128h-222c68.34 46.169 118.415 116.099 140 198h82v124l234-224-234-226zM346 334c-190.682 0-346 153.318-346 344s155.318 346 346 346c190.682 0 344-155.318 344-346s-153.318-344-344-344zM204 524c36.427 0 67.25 12.469 90 34 13.541 12.729 23.229 30.167 30 54l-60 14c-3.521-15.437-10.828-27.062-22-36s-24.021-14-40-14c-22.073 0-40.255 8.156-54 24s-20 40.521-20 76c-0 37.646 6.458 66.021 20 82s30.333 24 52 24c15.979 0 30.489-5.844 42-16s18.989-26.198 24-48l58 18c-8.938 32.5-23.214 58.224-44 74s-48.042 22-80 22c-39.542-0-70.542-12.984-96-40s-38-63.146-38-110c-0-49.562 12.406-88.578 38-116s58.292-42 100-42zM506 524c36.427 0 65.25 12.469 88 34 13.541 12.729 23.229 30.167 30 54l-60 14c-3.521-15.437-10.828-27.062-22-36s-24.021-14-40-14c-22.073 0-40.255 8.156-54 24s-20 40.521-20 76c-0 37.646 6.458 66.021 20 82s30.333 24 52 24c15.979 0 30.489-5.844 42-16s18.989-26.198 24-48l60 18c-8.938 32.5-25.214 58.224-46 74s-46.042 22-78 22c-39.542-0-72.542-12.984-98-40s-38-63.146-38-110c-0-49.562 12.406-88.578 38-116s60.292-42 102-42z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-switch-cisco" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 439, - "id": 156, - "prevSize": 16, - "code": 59789, - "name": "it-switch-cisco" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 141 - }, - { - "icon": { - "paths": [ - "M697.809 543.651c32.349-20.573 70.563-32.908 111.756-32.908 47.709 0 91.183 16.477 126.371 43.38l88.064-84.108-234.449-225.978v128h-222.441c60.835 40.96 105.891 101.329 130.7 171.613z", - "M348.672 299.985c47.756 0 94.161 9.914 136.285 26.019h186.368v-198.004h-436.876v-128l-234.449 227.98 140.288 134.004c59.764-39.284 131.398-61.999 208.384-61.999z", - "M346.671 334.010c-191.069 0-346.671 153.321-346.671 343.971s155.601 346.019 346.671 346.019c128.791 0 240.314-70.703 299.52-175.151-28.346-35.607-45.94-80.151-45.94-129.117 0-61.999 27.555-117.062 70.516-155.369-47.011-134.097-173.196-230.353-324.096-230.353zM334.848 880.035h-42.543v-151.087h-167.005v151.087h-42.496v-320.698h42.543v131.677h166.959v-131.677h42.543v320.698zM569.53 856.529c-20.387 19.456-46.266 29.184-77.545 29.184-28.253 0-51.665-8.378-70.284-25.181-18.665-16.71-29.231-38.493-31.884-65.071l39.377-5.26c4.561 22.295 12.288 38.353 23.18 48.175 10.892 9.914 24.111 14.801 39.75 14.801 18.525 0 34.257-6.47 47.057-19.223 12.753-12.893 19.177-28.765 19.177-47.756 0-18.060-5.865-32.908-17.78-44.684-11.776-11.776-26.857-17.641-45.103-17.641-7.494 0-16.756 1.443-27.881 4.422l4.375-34.583c2.653 0.279 4.748 0.465 6.33 0.465 16.849 0 31.977-4.422 45.428-13.126s20.154-22.295 20.154-40.448c0-14.522-4.887-26.391-14.708-35.887-9.775-9.495-22.435-14.243-37.888-14.243-15.36 0-28.113 4.841-38.4 14.429-10.193 9.635-16.803 24.111-19.689 43.334l-39.517-6.982c4.887-26.345 15.825-46.871 32.861-61.347 17.175-14.522 38.4-21.737 63.814-21.737 17.548 0 33.699 3.77 48.407 11.264 14.755 7.494 26.065 17.734 33.885 30.72 7.866 12.986 11.729 26.764 11.729 41.425 0 13.824-3.677 26.391-11.124 37.841-7.447 11.357-18.479 20.387-33.047 27.089 18.991 4.375 33.699 13.452 44.218 27.276 10.519 13.731 15.779 30.999 15.779 51.665 0.047 27.881-10.147 51.572-30.673 71.075z", - "M879.29 828.649c-16.477 13.684-36.631 20.48-60.509 20.48-19.549 0-37.748-4.98-54.551-15.081-16.756-10.054-29.184-25.228-37.143-45.568s-11.962-44.125-11.962-71.447c0-21.132 3.398-41.658 10.1-61.533s18.385-35.793 34.956-47.569 37.283-17.734 61.905-17.734c21.504 0 39.377 5.353 53.481 16.012 14.15 10.612 24.995 27.601 32.442 51.014l41.844-9.868c-8.657-29.649-23.924-52.596-45.801-68.887-21.923-16.384-49.012-24.483-81.082-24.483-28.346 0-54.319 6.47-77.917 19.316-23.645 12.94-41.844 31.837-54.644 56.692s-19.13 53.993-19.13 87.412c0 30.58 5.632 59.206 16.943 86.016 11.357 26.577 27.881 47.057 49.524 61.114 21.737 14.103 49.897 21.132 84.433 21.132 33.559 0 61.812-9.169 84.992-27.508s39.191-44.87 48.081-79.732l-42.496-10.705c-5.772 26.81-16.943 47.151-33.466 60.928z" - ], - "attrs": [ - { - "fill": "rgb(99, 147, 205)" - }, - { - "fill": "rgb(99, 147, 205)" - }, - { - "fill": "rgb(99, 147, 205)" - }, - { - "fill": "rgb(99, 147, 205)" - } - ], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-switch-h3c" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [ - 5, - 5, - 5, - 5 - ] - } - }, - "attrs": [ - { - "fill": "rgb(99, 147, 205)" - }, - { - "fill": "rgb(99, 147, 205)" - }, - { - "fill": "rgb(99, 147, 205)" - }, - { - "fill": "rgb(99, 147, 205)" - } - ], - "properties": { - "order": 440, - "id": 155, - "prevSize": 16, - "code": 59790, - "name": "it-switch-h3c" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 142 - }, - { - "icon": { - "paths": [ - "M234 0l-234 228 140 134c59.702-39.324 131.164-62 208-62 47.699 0 93.962 9.903 136 26h186v-198h-436v-128zM788 244v128h-222c68.34 46.169 118.415 116.099 140 198h82v124l234-224-234-226zM346 334c-190.682 0-346 153.318-346 344s155.318 346 346 346c190.682 0 344-155.318 344-346s-153.318-344-344-344zM226 516h64v202c-0 26.542-1.334 47.708-6 62-6.271 18.667-17.521 32.698-34 44s-39.021 18-66 18c-31.646-0-54.938-8.281-72-26s-25.854-43.729-26-78l60-8c0.729 18.375 3.333 32.417 8 40 7 11.521 17.708 16 32 16 14.437 0 24.021-3.76 30-12s10-26.042 10-52v-206zM360 516h104c39.375 0 64.041 0.792 76 4 18.375 4.813 33.604 15.886 46 32s20 36.479 20 62c-0 19.688-4.854 36.583-12 50s-14.99 24.344-26 32c-11.011 7.656-22.625 11.521-34 14-15.459 3.062-38.688 6-68 6h-42v120h-64v-320zM424 570v90h36c25.521 0 41.396-0.646 50-4s17.114-8.854 22-16c4.885-7.146 6-14.521 6-24-0-11.666-3.146-22.416-10-30s-15.5-12.104-26-14c-7.729-1.458-22.667-2-46-2h-32z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-switch-juniper" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 441, - "id": 154, - "prevSize": 16, - "code": 59791, - "name": "it-switch-juniper" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 143 - }, - { - "icon": { - "paths": [ - "M234 0l-234 228 140 134c59.702-39.324 131.164-62 208-62 47.699 0 93.962 9.903 136 26h186v-198h-436v-128zM788 244v128h-222c68.34 46.169 118.415 116.099 140 198h82v124l234-224-234-226zM346 334c-190.682 0-346 153.318-346 344s155.318 346 346 346c190.682 0 344-155.318 344-346s-153.318-344-344-344zM98 536h148v44l-112 194h116v48h-164v-52l106-186h-94v-48zM262 536h162v48h-60v238h-42v-238h-60v-48zM450 536h152v48h-110v64h102v48h-102v78h114v48h-156v-286z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-switch-zte" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 442, - "id": 153, - "prevSize": 16, - "code": 59792, - "name": "it-switch-zte" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 144 - }, - { - "icon": { - "paths": [ - "M60 0c-33.495 0-60 26.505-60 60v484c0 33.495 26.505 60 60 60h904c33.495 0 60-26.505 60-60v-484c0-33.495-26.505-60-60-60zM222 170h580c33.495 0 60 26.505 60 60v114c0 33.495-26.505 62-60 62h-580c-33.495 0-60-28.505-60-62v-114c0-33.495 26.505-60 60-60zM740 184c-54.503 0-98 43.497-98 98s43.497 98 98 98c54.503 0 98-43.497 98-98s-43.497-98-98-98zM284 194c-54.503 0-98 43.497-98 98s43.497 100 98 100c54.503 0 98-45.497 98-100s-43.497-98-98-98zM228 640.064v320h64v-140h128v140h64v-320h-64v126h-128v-126zM550 640.064v320h66v-120h42c29.312 0 52.541-2.938 68-6 11.375-2.479 20.989-6.344 32-14s20.854-18.583 28-32c7.146-13.417 10-30.312 10-50-0-25.521-5.604-45.885-18-62s-27.625-27.187-46-32c-11.959-3.208-38.625-4-78-4zM616 694.064h30c23.333 0 40.271 0.544 48 2 10.5 1.896 19.146 6.417 26 14s10 16.334 10 28c-0 9.479-3.115 18.854-8 26s-11.396 12.646-20 16c-8.604 3.354-24.479 4-50 4h-36z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-tapelib-hpmsl" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 443, - "id": 152, - "prevSize": 16, - "code": 59793, - "name": "it-tapelib-hpmsl" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 145 - }, - { - "icon": { - "paths": [ - "M60-2c-33.495 0-60 26.505-60 60v484c0 33.495 26.505 60 60 60h904c33.495 0 60-26.505 60-60v-484c0-33.495-26.505-60-60-60h-904zM222 168h580c33.495 0 60 26.505 60 60v114c0 33.495-26.505 62-60 62h-580c-33.495 0-60-28.505-60-62v-114c0-33.495 26.505-60 60-60zM740 182c-54.503 0-98 43.497-98 98s43.497 98 98 98c54.503 0 98-43.497 98-98s-43.497-98-98-98zM284 192c-54.503 0-98 43.497-98 98s43.497 100 98 100c54.503 0 98-45.497 98-100s-43.497-98-98-98zM642 630c-24.646 0-46.573 4.563-64 12s-30.74 17.782-40 32c-9.26 14.219-14 29.667-14 46-0 25.375 10.312 46.354 30 64 14 12.542 37.292 23.396 72 32 26.979 6.708 44.416 11.375 52 14 11.083 3.938 19.552 8.677 24 14s6 12.417 6 20c-0 11.813-5.427 21.177-16 30s-25.146 14-46 14c-19.688 0-36.406-6.083-48-16s-18.208-24.854-22-46l-64 6c4.229 35.875 18.271 63.26 40 82s51.458 28 92 28c27.854-0 51.333-4.198 70-12s33.791-19.958 44-36c10.208-16.042 16-31.625 16-50-0-20.271-5.469-38.219-14-52s-18.906-24.052-34-32c-15.094-7.948-38.5-16.562-70-24s-51.833-15.146-60-22c-6.417-5.396-10-10.416-10-18-0-8.312 3.146-15.041 10-20 10.646-7.729 25.187-12 44-12 18.229 0 32.885 2.781 42 10s15.229 19.521 18 36l64-2c-1.021-29.458-11.657-54.354-32-72s-49.75-26-90-26zM232 636v54h96v266h64v-266h94v-54h-254z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-tapelib-ibmts" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 444, - "id": 151, - "prevSize": 16, - "code": 59794, - "name": "it-tapelib-ibmts" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 146 - }, - { - "icon": { - "paths": [ - "M60 0c-33.495 0-60 26.505-60 60v484c0 33.495 26.505 60 60 60h904c33.495 0 60-26.505 60-60v-484c0-33.495-26.505-60-60-60zM222 170h580c33.495 0 60 26.505 60 60v114c0 33.495-26.505 62-60 62h-580c-33.495 0-60-28.505-60-62v-114c0-33.495 26.505-60 60-60zM740 184c-54.503 0-98 43.497-98 98s43.497 98 98 98c54.503 0 98-43.497 98-98s-43.497-98-98-98zM284 194c-54.503 0-98 43.497-98 98s43.497 100 98 100c54.503 0 98-45.497 98-100s-43.497-98-98-98zM194 638.718c-24.646 0-46.573 4.563-64 12s-30.74 17.782-40 32c-9.26 14.219-14 29.667-14 46-0 25.375 10.312 46.354 30 64 14 12.542 37.292 23.396 72 32 26.979 6.708 44.416 11.375 52 14 11.083 3.937 19.552 8.677 24 14s6 12.417 6 20c-0 11.813-5.427 21.177-16 30s-25.146 14-46 14c-19.688 0-36.406-6.083-48-16s-18.208-24.854-22-46l-64 6c4.229 35.875 18.271 63.26 40 82s53.458 28 94 28c27.854 0 49.333-4.198 68-12s33.791-19.958 44-36c10.208-16.042 16-33.625 16-52-0-20.271-5.469-36.219-14-50s-18.906-24.052-34-32c-15.094-7.948-38.5-16.562-70-24s-51.833-15.146-60-22c-6.417-5.396-10-10.416-10-18-0-8.312 3.146-15.041 10-20 10.646-7.729 25.187-12 44-12 18.229 0 32.885 2.781 42 10s15.229 19.521 18 36l64-2c-1.021-29.458-11.657-54.354-32-72s-49.75-26-90-26zM380 644.718v170c0 35.875 1.771 63.625 6 82 2.917 12.396 8.812 24.698 18 36s22.177 20.927 38 28c15.823 7.073 39.375 10 70 10 25.375 0 46.25-3.51 62-10s28.593-15.062 38-26c9.406-10.937 14.5-24.104 18-40s6-43.5 6-82v-168h-66v178c-0 25.375-0.104 43.063-2 54s-6.667 20.49-16 28c-9.334 7.511-23.625 10-42 10-18.083 0-33.573-4.052-44-12s-15.229-18.875-18-32c-1.604-8.167-4-24.437-4-52v-174zM704 644.718v320h60v-208l130 208h66v-320h-60v214l-132-214z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-tapelib-sunts" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 445, - "id": 150, - "prevSize": 16, - "code": 59795, - "name": "it-tapelib-sunts" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 147 - }, - { - "icon": { - "paths": [ - "M511.975 3.246l211.157 211.187-211.232 211.202-211.157-211.187 211.232-211.202z", - "M-0.023 507.944l211.202-211.202 211.202 211.202-211.202 211.202-211.202-211.202z", - "M601.514 507.838l211.232-211.172 211.218 211.277-211.232 211.172-211.218-211.277z", - "M511.954 1023.998l-211.202-211.202 211.157-211.157 211.202 211.202-211.157 211.157z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-Virtual network" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 446, - "id": 149, - "prevSize": 16, - "code": 59796, - "name": "it-Virtualnetwork" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 148 - }, - { - "icon": { - "paths": [ - "M496 0c-88.366 0-160 71.634-160 160 0 24.616 6.069 47.168 16 68-2.717-0.137-5.249 0-8 0-88.366 0-160 71.634-160 160 0 27.456 5.815 53.421 18 76-66.58 19.363-116 79.172-116 152 0 35.129 12.807 67.609 32 94-67.806 18.571-118 80.301-118 154 0 88.366 71.634 160 160 160 46.834 0 88.74-19.93 118-52 29.284 32.474 72.829 52 120 52 45.179 0 84.906-17.887 114-48 29.094 30.113 70.821 48 116 48 47.171 0 88.716-19.526 118-52 29.26 32.070 71.166 52 118 52 88.366 0 160-71.634 160-160 0-75.074-52.257-136.747-122-154 18.745-26.206 30-59.324 30-94 0-80.039-59.259-144.213-136-156 8.096-19.142 12-41.909 12-64 0-88.366-71.634-160-160-160-4.843 0-9.266 1.579-14 2 12.979-23.123 22-49.597 22-78 0-88.366-71.634-160-160-160zM486 320c3.384 0.214 6.562 0 10 0 4.814 0 9.294 0.416 14 0-4.875 8.722-10.808 16.369-14 26-2.494-9.021-6.040-17.694-10-26zM494 438c1.789 6.866 3.354 13.525 6 20-4.77 0.246-9.349 1.346-14 2 3.459-6.858 5.543-14.62 8-22z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "networkTree" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 447, - "id": 148, - "prevSize": 16, - "code": 59797, - "name": "networkTree" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 149 - }, - { - "icon": { - "paths": [ - "M192 0c-105.522 0-190 84.478-190 190v644c0 105.522 84.478 190 190 190h644c105.522 0 190-84.478 190-190v-644c0-105.522-84.478-190-190-190h-644zM800 96c52.598 0 96 43.403 96 96s-43.402 96-96 96c-52.598 0-94-43.403-94-96s41.402-96 94-96zM156 108h446v176h-446v-176zM804 418c52.598 0 96 43.403 96 96s-43.402 96-96 96c-52.598 0-94-43.403-94-96s41.402-96 94-96zM150 424h444v176h-444v-176zM156 740h446v176h-446v-176zM808 740c52.598 0 94 43.402 94 96s-41.402 96-94 96c-52.598 0-96-43.402-96-96s43.402-96 96-96z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "resourceType" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 448, - "id": 147, - "prevSize": 16, - "code": 59798, - "name": "resourceType" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 150 - }, - { - "icon": { - "paths": [ - "M384 0h256v256h-56.617v128h312.617v384h128v256h-384v-256h128v-256h-512v256h128v256h-384v-256h128v-384h322.873v-128h-66.873v-256z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "tree-icon" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 449, - "id": 146, - "prevSize": 16, - "code": 59799, - "name": "tree-icon" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 151 - }, - { - "icon": { - "paths": [ - "M0 256v192h96v320h-96v256h256v-256h-96v-320h320v320h-96v256h256v-256h-96v-320h320v320h-96v256h256v-256h-96v-320h96v-192z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "uep-topo-group20x20" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 450, - "id": 145, - "prevSize": 16, - "code": 59800, - "name": "uep-topo-group20x20" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 152 - }, - { - "icon": { - "paths": [ - "M86 0c-47.477 0-86 38.523-86 86v532c0 47.477 38.523 86 86 86h350l-44 172c108.143 38.808 178.516 26.928 240 0l-34-172h340c47.477 0 86-38.523 86-86v-532c0-47.477-38.523-86-86-86h-852zM110 112h804v468h-804v-468z", - "M304 840c-37.227 19.359-60 45.155-60 72 0 62.25 120.094 112 268 112s268-49.75 268-112c0-26.845-22.773-52.641-60-72-22.376 63.518-106.109 112-208 112s-185.624-48.482-208-112z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "uep-topo-root" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 451, - "id": 144, - "prevSize": 16, - "code": 59801, - "name": "uep-topo-root" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 153 - }, - { - "icon": { - "paths": [ - "M0 515.003h192v508.997h-192v-508.997z", - "M623.819 0v384l136-122v762h128v-746l136 122v-384l-192 172-208-188z", - "M298.857 515.003h192v508.997h-192v-508.997z", - "M597.714 515.003h192v508.997h-192v-508.997z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "uep-topo-virtual20x20" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 452, - "id": 143, - "prevSize": 16, - "code": 59802, - "name": "uep-topo-virtual20x20" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 154 - }, - { - "icon": { - "paths": [ - "M814-0.002c-115.833 0-208 94.371-208 210 0 115.623 92.167 208 208 208s210-92.377 210-208c0-115.629-94.167-210-210-210zM152 93.998c-84.432 0-152 67.717-152 152v626c0 84.277 67.568 152 152 152h628c84.432 0 150-67.723 150-152v-392c-35.867 16.242-74.050 26-116 26-157.445 0-286-126.827-286-284 0-45.721 10.802-89.719 30-128h-406zM704 105.998h70v206h-70v-206zM856 105.998h70v206h-70v-206zM110 291.998h84l176 228v-228h80v260c-15.173-4.433-31.583-6-48-6-32.083 0-61.605 10.229-88 26l-124-160v222h-80v-342zM414 597.998c34.617 0 62.38 9.577 84 30 12.869 12.071 23.565 27.389 30 50l-56 14c-3.346-14.642-9.383-25.522-20-34-10.617-8.487-24.815-12-40-12-20.976 0-38.938 6.966-52 22-13.062 15.024-18 40.34-18 74-0 35.718 5.131 60.85 18 76 12.869 15.155 31.41 22 52 22 15.185 0 27.061-4.383 38-14 10.938-9.635 17.238-25.321 22-46l56 18c-8.494 30.833-22.246 53.032-42 68-19.754 14.959-43.63 24-74 24-37.577 0-69.807-14.37-94-40s-36-59.552-36-104c0-47.014 11.678-83.987 36-110s56.364-38 96-38zM578 603.998h106c23.55 0 41.646-1.406 54 2 16.601 4.862 30.16 15.533 42 28 11.839 12.453 19.823 25.952 26 44s10 41.535 10 68c-0 23.25-4.21 43.175-10 60-7.078 20.553-16.874 37.271-30 50-9.909 9.631-23.142 16.606-40 22-12.612 3.966-28.895 6-50 6h-108v-280zM636 649.998v186h42c15.957 0 28.922-0.275 36-2 9.265-2.333 15.887-6.48 22-12 6.113-5.524 12.139-15.346 16-28s4-30.163 4-52c0-21.841-0.141-38.312-4-50-3.861-11.698-11.051-19.449-18-26s-15.319-11.681-26-14c-7.979-2.053-22.707-2-46-2h-26z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "common_ncd_stop" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 453, - "id": 142, - "prevSize": 16, - "code": 59803, - "name": "common_ncd_stop" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 155 - }, - { - "icon": { - "paths": [ - "M132-4c-70.912 0-128 57.088-128 128v768c0 70.912 57.088 128 128 128h418l478-480v-416c0-70.912-57.088-128-128-128h-768zM114 78h112l234 380v-380h106v570h-116l-230-372v372h-106v-570zM1028 640l-380 380h252c70.912 0 128-57.088 128-128v-252z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-app-netnumen" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 454, - "id": 141, - "prevSize": 16, - "code": 59804, - "name": "it-app-netnumen" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 156 - }, - { - "icon": { - "paths": [ - "M498 0c-82.532 2.144-165.473 23.817-242 68-244.886 141.385-329.386 455.113-188 700 110.457 191.318 326.328 283.858 532 248-67.447-15.471-126.088-49.392-172-98-19.648-4.043-39.322-7.308-58-14l32-18c-20.773-27.959-38.401-58.436-50-92l-90 52c-30.316-22.699-56.279-52.734-80-84l110-64c16.047 23.28 34.225 43.553 52 64-6.339-26.139-12-51.912-12-80 0-51.261 11.931-100.275 32-144l-42 24c-18.203-33.787-34.668-67.98-48-102l112-64 34 58c23.494-26.609 49.379-49.664 80-68l-24-42 104-60c14.891 18.474 28.283 37.666 42 58 18.097-2.934 35.074-6 54-6 60.481 0 118.588 16.641 168 44l50-30c11.932 28.367 20.080 58.668 26 88 0.673 0.673 1.332 1.322 2 2 45.731 46.49 78.423 105.65 92 172 23.66-117.806 6.802-243.76-58-356-97.203-168.36-276.429-260.716-458-256zM522 98c45.433 1.164 91.51 8.455 134 24l-64 36c-22.814-22.131-46.003-41.701-70-60zM394 114c39.593 25.649 77.216 56.275 114 92l-84 50-72-126c13.744-5.792 27.944-11.801 42-16zM760 178c31.169 23.019 57.714 49.989 82 82l-116 68c-20.416-32.76-40.879-63.373-64-92l88-52c3.203-1.849 7.605-3.435 10-6zM262 182l72 126-92 52c-12.711-49.321-17.254-97.18-20-144 12.392-12.18 25.886-23.294 40-34zM142 324c3.995 27.904 10.633 55.367 18 84l-58 34c7.125-40.791 21.178-80.958 40-118zM674 396c-158.574 0-286 129.426-286 288s127.426 286 286 286c158.574 0 288-127.426 288-286s-129.426-288-288-288zM192 506c13.398 34.314 27.679 69.994 46 104l-108 62c-15.217-36.176-27.5-72.396-32-110l94-56zM654 512c19.614 0 36 16.386 36 36 0 1.039 0.083 0.988 0 2l126 66c8.663-7.366 19.441-12 32-12 27.46 0 50 21.325 50 48s-22.54 48-50 48c-12.559 0-23.337-4.305-32-12l-76 50c0 1.051 0.147 0.989 0 2l92 62c4.905-3.888 8.99-6 16-6 16.568 0 32 11.905 32 28s-15.432 30-32 30c-16.568 0-28-13.905-28-30l-94-66c-2.938 1.163-6.665 2-10 2-13.338 0-26-9.043-26-22s12.662-24 26-24c4.798 0 8.156 1.697 12 4l76-48c-2.479-5.875-4-11.331-4-18 0-5.095 0.518-11.414 2-16l-122-64c-6.254 6.254-16.193 10-26 10-4.385 0-8.176-2.601-12-4l-90 114c8.642 9.928 12 23.723 12 38 0 31.383-24.617 56-56 56s-56-24.617-56-56c0-31.383 24.617-56 56-56 8.553 0 16.75 2.641 24 6l94-116c-3.186-5.279-6-9.223-6-16 0-19.614 14.386-36 34-36z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-sdn-vnet" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 455, - "id": 140, - "prevSize": 16, - "code": 59805, - "name": "it-sdn-vnet" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 157 - }, - { - "icon": { - "paths": [ - "M154 0c-85.040 0-154 68.96-154 154v716c0 85.040 68.96 154 154 154h716c85.040 0 154-68.96 154-154v-716c0-85.040-68.96-154-154-154h-716zM178 122h672c26.747 0 48 28.544 48 64s-21.253 64-48 64h-672c-26.747 0-48-28.544-48-64s21.253-64 48-64zM176 344h672c26.747 0 48 28.544 48 64s-21.253 64-48 64h-672c-26.747 0-48-28.544-48-64s21.253-64 48-64zM180 588h64v126h128v-126h64v320h-64v-140h-128v140h-64v-320zM598 588h104c39.375 0 66.041 0.792 78 4 18.375 4.813 33.604 15.886 46 32s18 36.479 18 62c-0 19.688-2.854 36.584-10 50s-16.99 24.344-28 32c-11.011 7.656-22.625 11.521-34 14-15.458 3.062-36.688 6-66 6h-44v120h-64v-320zM662 642v90h36c25.521 0 43.396-0.646 52-4s15.114-8.854 20-16c4.885-7.146 8-14.521 8-24-0-11.666-5.146-22.416-12-30s-15.5-12.104-26-14c-7.729-1.458-22.667-1.999-46-2h-32z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-storage-sanswitch-hp" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 456, - "id": 139, - "prevSize": 16, - "code": 59806, - "name": "it-storage-sanswitch-hp" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 158 - }, - { - "icon": { - "paths": [ - "M526 0c-4.17-0.122-9.077-0.191-14-0.191-282.77 0-512 229.23-512 512 0 0.067 0 0.135 0 0.202-0 282.759 229.23 511.99 512 511.99s512-229.23 512-512c0-0.057 0-0.124 0-0.191 0-277.847-221.318-504.002-497.281-511.792zM294 112v78h562v96h-562v78l-126-126 126-126zM728 386l128 128-128 126v-78h-560v-96h560v-80zM294 658v80h562v96h-562v78l-126-126 126-128z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "it-switch" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 457, - "id": 138, - "prevSize": 16, - "code": 59807, - "name": "it-switch" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 159 - }, - { - "icon": { - "paths": [ - "M120 205.183l-58 124h894l-30-64h-424l-16-60zM0 430l64 594h898l62-594z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "uep-moc-root" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 458, - "id": 137, - "prevSize": 16, - "code": 59808, - "name": "uep-moc-root" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 160 - }, - { - "icon": { - "paths": [ - "M0 256v192h96v320h-96v256h256v-256h-96v-320h320v320h-96v256h256v-256h-96v-320h320v320h-96v256h256v-256h-96v-320h96v-192zM64 832h128v128h-128zM448 832h128v128h-128zM832 832h128v128h-128z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "uep-topo-undefinedgroup20x20" - ], - "colorPermutations": { - "100148206110015523011231311471124133150124491091961401931991472051": [] - } - }, - "attrs": [], - "properties": { - "order": 459, - "id": 136, - "prevSize": 16, - "code": 59809, - "name": "uep-topo-undefinedgroup20x20" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 161 - }, - { - "icon": { - "paths": [ - "M288.414 402.18c0 0.009 0 0.020 0 0.030 0 79.643-64.564 144.207-144.207 144.207s-144.207-64.564-144.207-144.207c0-0.011 0-0.021 0-0.032-0-0.007-0-0.018-0-0.029 0-79.643 64.564-144.207 144.207-144.207s144.207 64.564 144.207 144.207c0 0.011-0 0.021-0 0.032z", - "M287.26 811.728c0 0.007 0 0.016 0 0.025 0 64.352-52.167 116.519-116.519 116.519s-116.519-52.167-116.519-116.519c0-0.009 0-0.017 0-0.026-0-0.006-0-0.015-0-0.023 0-64.352 52.167-116.519 116.519-116.519s116.519 52.167 116.519 116.519c0 0.009-0 0.017-0 0.026z", - "M716.419 898.252c0 0.008 0 0.017 0 0.026 0 69.449-56.299 125.748-125.748 125.748s-125.748-56.299-125.748-125.748c0-0.009 0-0.019 0-0.028-0-0.006-0-0.016-0-0.025 0-69.449 56.299-125.748 125.748-125.748s125.748 56.299 125.748 125.748c0 0.009-0 0.019-0 0.028z", - "M748.721 227.979c0 0.014 0 0.031 0 0.047 0 124.243-100.719 224.963-224.963 224.963s-224.963-100.719-224.963-224.963c0-0.017 0-0.033 0-0.050-0-0.011-0-0.028-0-0.045 0-124.243 100.719-224.963 224.963-224.963s224.963 100.719 224.963 224.963c0 0.017-0 0.033-0 0.050z", - "M1025.598 541.773c0 0.011 0 0.024 0 0.037 0 97.483-79.026 176.509-176.509 176.509s-176.509-79.026-176.509-176.509c0-0.013 0-0.026 0-0.039-0-0.009-0-0.022-0-0.035 0-97.483 79.026-176.509 176.509-176.509s176.509 79.026 176.509 176.509c0 0.013-0 0.026-0 0.039z", - "M526.066 635.219c0 0.006 0 0.013 0 0.020 0 51.609-41.837 93.446-93.446 93.446s-93.446-41.837-93.446-93.446c0-0.007 0-0.014 0-0.021-0-0.005-0-0.012-0-0.019 0-51.609 41.837-93.446 93.446-93.446s93.446 41.837 93.446 93.446c0 0.007-0 0.014-0 0.021z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "analysis" - ] - }, - "attrs": [], - "properties": { - "order": 460, - "id": 135, - "prevSize": 16, - "code": 59810, - "name": "analysis" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 162 - }, - { - "icon": { - "paths": [ - "M316-2c-95.089 0-172 76.911-172 172 0 92.48 72.524 167.929 164 172-90.194 5.431-162 78.44-162 170 0 86.687 64.634 158.002 148 170-84.072 11.37-148 82.811-148 170 0 95.089 76.911 172 172 172s172-76.911 172-172c0-87.422-65.601-158.925-150-170 84.346-11.124 150-82.616 150-170 0-92.33-72.732-167.706-164-172 90.194-5.431 162-78.44 162-170 0-95.089-76.911-172-172-172zM750 206c-95.089 0-172 76.911-172 172s76.911 172 172 172c-94.127 1.118-170 77.608-170 172 0 95.089 76.911 172 172 172s174-76.911 174-172c0-95.089-78.911-172-174-172 94.18-1.057 170-77.569 170-172 0-95.089-76.911-172-172-172z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "bindingRelationship" - ] - }, - "attrs": [], - "properties": { - "order": 461, - "id": 134, - "prevSize": 16, - "code": 59811, - "name": "bindingRelationship" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 163 - }, - { - "icon": { - "paths": [ - "M0 0v1024h1024v-1024h-1024zM64 232h896v744h-896v-744zM154 380v64h386v-64h-386zM154 586v64h738v-64h-738zM154 798v64h738v-64h-738z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "browsePolicy" - ] - }, - "attrs": [], - "properties": { - "order": 462, - "id": 133, - "prevSize": 16, - "code": 59812, - "name": "browsePolicy" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 164 - }, - { - "icon": { - "paths": [ - "M0 0v1024h1024v-1024h-1024zM122 120h780v584h-198v198h-384v-198h-198v-584zM234 234v64h556v-64h-556zM234 446v64h556v-64h-556z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "businessManagment" - ] - }, - "attrs": [], - "properties": { - "order": 463, - "id": 132, - "prevSize": 16, - "code": 59813, - "name": "businessManagment" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 165 - }, - { - "icon": { - "paths": [ - "M0 205.472v818.528h1024v-818.528zM66 269.472h896v108.902h-896zM66 544.378h896v415.622h-896zM726 699.098v192h192v-192zM108 827.098v64h156v-64zM314 827.098v64h64v-64z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "cardData" - ] - }, - "attrs": [], - "properties": { - "order": 464, - "id": 131, - "prevSize": 16, - "code": 59814, - "name": "cardData" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 166 - }, - { - "icon": { - "paths": [ - "M340-4l-34 6-286 48 12 34 22 76h-54v862h1024v-585.229l-295.229-276.771h-262.771l-14-120-64 6 12 114h-46l-10-128zM282 72l8 88h-78l-22-50-44 18 12 32h-34l-20-58zM64 224h118l84 216 10 22 24-4 48-6 30-6-2-30-16-192h368.771v212.771h231.229v521.229h-896zM240 224h56l12 150zM142 578v64h762v-64zM142 764v64h762v-64z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "dailyManagment" - ] - }, - "attrs": [], - "properties": { - "order": 465, - "id": 130, - "prevSize": 16, - "code": 59815, - "name": "dailyManagment" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 167 - }, - { - "icon": { - "paths": [ - "M512 0l-512 322h1024l-512-322zM512 114c26.51 0 48 21.49 48 48s-21.49 48-48 48c-26.51 0-48-21.49-48-48s21.49-48 48-48z", - "M55.344 389.331l4 30.336v391.379l-4 31.853h174l-4-31.853v-391.379l4-30.336h-174zM301.344 389.331l4 30.336v391.379l-4 31.853h174l-4-31.853v-391.379l4-30.336h-174zM547.344 389.331l4 30.336v391.379l-4 31.853h174l-4-31.853v-391.379l4-30.336h-174zM793.344 389.331l4 30.336v391.379l-4 31.853h174l-4-31.853v-391.379l4-30.336h-174z", - "M33.331 897.344h957.338l33.331 126.656h-1024z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "enterpriseCustomer" - ] - }, - "attrs": [], - "properties": { - "order": 466, - "id": 129, - "prevSize": 16, - "code": 59816, - "name": "enterpriseCustomer" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 168 - }, - { - "icon": { - "paths": [ - "M96 0v1024h832v-554c-16.551 23.661-38.104 28.804-64 42v448h-704v-896h422c23.693-31.685 58.349-54.324 98-64h-584zM816 26c-114.539 0-206 93.461-206 208s91.461 208 206 208c114.54 0 208-93.461 208-208s-93.46-208-208-208zM220 120v64h248v-64h-248zM710 196h214v76h-214v-76zM220 222v206h248v-206h-248zM220 464v98h248v-98h-248zM218 646v64h578v-64h-578zM224 798v64h580v-64h-580z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "equipmentBlacklist" - ] - }, - "attrs": [], - "properties": { - "order": 467, - "id": 128, - "prevSize": 16, - "code": 59817, - "name": "equipmentBlacklist" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 169 - }, - { - "icon": { - "paths": [ - "M962.030 47.968c-8.838 62.893-26.692 87.763-47.41 100.083-20.708 12.307-50.544 12.506-82.517 12.282-31.978 0-67.463-2.432-98.328 22.835-15.428 12.595-26.625 30.035-29.849 52.672-0.25 1.728 0.198 3.52 0.011 5.248-51.048-20.41-232.3-46.931-275.527-8.051-1.923 1.792-5.16 1.664-7.021 3.52l-421.389 419.59 367.856 367.853 421.389-419.635c1.8-1.792 3.59-3.392 5.265-5.312 47.548-52.435 13.878-252.998-27.359-308.89-2.946-19.462-4.849-36.262-3.511-45.651 1.751-12.32 4.106-15.181 7.021-17.562 5.823-4.736 28.684-7.251 61.453-7.027 32.769 0.006 75.936 1.664 114.126-21.062 38.191-22.714 65.175-68.762 75.499-142.221l-59.699-8.781zM623.738 344.115c31.034 0 56.189 25.158 56.185 56.192 0.001 31.027-25.154 56.179-56.183 56.179s-56.184-25.152-56.185-56.179c-0.001-31.034 25.154-56.192 56.183-56.192z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "equipmentModel" - ] - }, - "attrs": [], - "properties": { - "order": 468, - "id": 127, - "prevSize": 16, - "code": 59818, - "name": "equipmentModel" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 170 - }, - { - "icon": { - "paths": [ - "M160 8c-25.903 30.044-41.331 62.192-48 94h-106v924h670c10.497 1.078 21.219 2 32 2 8.767 0 17.417-1.283 26-2h40v-6c140.119-31.085 246-156.583 246-306s-105.881-273.317-246-304v-308h-158c5.279-16.405 16.044-33.491 32-52l-48-42c-25.903 30.044-41.331 62.192-48 94h-80c5.311-16.271 14.187-33.658 30-52l-48-42c-25.903 30.044-41.331 62.192-48 94h-82c5.819-16.405 16.044-33.491 32-52l-50-42c-25.903 30.044-41.331 62.192-48 94h-82c5.279-16.405 16.044-33.491 32-52l-48-42zM86 182h28c8.23 31.167 24.037 60.201 44 88l52-36c-13.274-18.483-23.611-34.856-30-52h82c8.815 31.148 24.048 60.216 44 88l52-36c-13.245-18.443-23.056-34.89-30-52h80c8.23 31.167 24.037 60.201 44 88l52-36c-13.274-18.483-23.611-34.856-30-52h80c8.23 31.167 24.037 60.201 44 88l52-36c-13.274-18.483-23.611-34.856-30-52h76v220c-166.907 6.305-300 143.532-300 312 0 91.892 40.922 174.406 104 232h-414v-764zM888 582l46 44-226 230-28 26-22-30-128-180 52-38 106 150 200-202z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "examine" - ] - }, - "attrs": [], - "properties": { - "order": 469, - "id": 126, - "prevSize": 16, - "code": 59819, - "name": "examine" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 171 - }, - { - "icon": { - "paths": [ - "M0 0v1024h818v-106l-64 8v34h-690v-896h690v106l64 8v-178h-818zM730 228c-163.35 0-296 130.65-296 294s132.65 296 296 296c163.35 0 294-132.65 294-296s-130.65-294-294-294zM132 246v64h306v-64h-306zM704 324h48c17.845 0 35.574 14.224 34 32l-18 200c-1.574 17.776-14.155 32-32 32h-10c-17.845 0-30.060-14.261-32-32l-22-200c-1.94-17.739 14.155-32 32-32zM132 434v64h226v-64h-226zM132 622v64h226v-64h-226zM728 624c27.036 0 50 20.964 50 48s-22.964 50-50 50c-27.036 0-48-22.964-48-50s20.964-48 48-48zM132 812v64h354v-64h-354z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "failureList" - ] - }, - "attrs": [], - "properties": { - "order": 470, - "id": 125, - "prevSize": 16, - "code": 59820, - "name": "failureList" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 172 - }, - { - "icon": { - "paths": [ - "M448-0.001c-99.149 0-184 84.858-184 184s84.851 178 184 178c99.149 0 174-78.858 174-178s-74.851-184-174-184zM286 373.999c-129.705 57.273-217.877 186.935-226 336l-60 250c284.445-318.778 236-372.086 236 66h276.671v-270.561c3.512-99.722 66.764-160.188 121.919-172.125-17.49-54.214-25.625-122.175 3.41-167.313-5.942-21.014-17.153-35.182-36-42-1.835-1.639-2.149 0-4 0-40.421 38.476-89.792 64-150 64s-117.579-25.524-158-64c-1.347-1.639-2.68 1.639-4 0zM786 397.999c-60.168 0-112 51.224-112 112s51.832 110 112 110c60.168 0 106-49.224 106-110s-45.832-112-106-112zM1014 409.999c-65.69 147.654-105.651 269.621-246 250-36.537 0-71.471-14.414-96-38-0.818-1.005-1.199 1.005-2 0-74.281 35.109-67.145 38.621-110 130l4.464 254 63.536-178h10v192h254v-192h12c97.602-38.567 100.046-313.036 110-418z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "familyCustomer" - ] - }, - "attrs": [], - "properties": { - "order": 471, - "id": 124, - "prevSize": 16, - "code": 59821, - "name": "familyCustomer" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 173 - }, - { - "icon": { - "paths": [ - "M256 22v150h64v-54h398v54h64v-150h-526zM8 242v294h132v-64h96v64h600v-64h96v64h100v-294h-1024zM0 596v428h1024v-428h-92v64h-96v-64h-600v64h-96v-64h-140zM404 658l224 152-224 152v-304z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "fileTool" - ] - }, - "attrs": [], - "properties": { - "order": 472, - "id": 123, - "prevSize": 16, - "code": 59822, - "name": "fileTool" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 174 - }, - { - "icon": { - "paths": [ - "M0 0v1024h1024v-1024h-1024zM448 64h128v896h-128v-896zM120 112h208v210h-208v-210zM696 112h208v210h-208v-210zM120 414h208v210h-208v-210zM696 414h208v210h-208v-210zM120 716h208v210h-208v-210zM696 716h208v210h-208v-210z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "groupManagment" - ] - }, - "attrs": [], - "properties": { - "order": 473, - "id": 122, - "prevSize": 16, - "code": 59823, - "name": "groupManagment" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 175 - }, - { - "icon": { - "paths": [ - "M830 4.002c-3.954 0-6.163 1.654-10 2-21.087 1.899-42.52 9.182-60 20-150.563 49.266-299.814 132.472-452 140v310l470 160c6.045 2.682 13.576 4.251 20 6 2.196 0.595 3.76 1.518 6 2 8.682 1.868 16.664 2 26 2 62.639 0 110.185-44.115 142-102s50-131.924 50-216c0-84.083-18.185-164.115-50-222-31.815-57.892-79.361-102-142-102zM830 64.002c25.474 0 58.072 20.828 84 68 25.928 47.179 42 119.755 42 196 0 76.238-16.072 142.828-42 190-25.928 47.179-58.526 68-84 68s-56.072-20.821-82-68c-25.928-47.172-44-113.762-44-190 0-76.245 18.072-148.821 44-196 25.928-47.172 56.526-68 82-68zM72 166.002c-33.614 0-60 26.386-60 60v190c0 33.614 26.386 60 60 60h172v-310h-172zM830 226.002c-17.38 0-30 49.537-30 110s12.62 108 30 108c17.38 0 32-47.537 32-108s-14.62-110-32-110zM330 570.002c-6.68-0.112-12.981 0.409-20 2-9.358 2.121-19.412 5.042-28 10l-58 34c-34.354 19.839-42.526 54.103-34 84 32.971 115.619 74.038 226.209 176 302 25.476 18.866 55.648 31.828 90 12l56-32c34.353-19.834 64.686-68.57 36-84-110.803-59.587-141.877-183.942-176-304-4.781-16.821-21.959-23.665-42-24z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "notice" - ] - }, - "attrs": [], - "properties": { - "order": 474, - "id": 121, - "prevSize": 16, - "code": 59824, - "name": "notice" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 176 - }, - { - "icon": { - "paths": [ - "M516 0l-182 362h362l-180-362zM270 490l-104 206h696l-102-206h-490zM100 824l-100 200h1024l-100-200h-824z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "policy" - ] - }, - "attrs": [], - "properties": { - "order": 475, - "id": 120, - "prevSize": 16, - "code": 59825, - "name": "policy" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 177 - }, - { - "icon": { - "paths": [ - "M0 0v1024h1024v-1024h-1024zM74 74h876v132h-876v-132zM126 104v64h64v-64h-64zM258 104v64h64v-64h-64zM390 104v64h64v-64h-64zM74 270h876v680h-876v-680zM510 326l-284 194h572l-288-194zM272 558v320h478v-320h-478zM448 738h126v138h-126v-138z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "portal" - ] - }, - "attrs": [], - "properties": { - "order": 476, - "id": 119, - "prevSize": 16, - "code": 59826, - "name": "portal" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 178 - }, - { - "icon": { - "paths": [ - "M0 0v1024h818v-98h-64v34h-690v-896h690v114h64v-178h-818zM572 180c-147.574 0-268 123.722-268 276s120.426 276 268 276c50.852 0 97.535-16.556 138-42 2.376 5.114 5.882 11.751 10 16l188 194c19.466 20.086 50.534 20.086 70 0l24-24c19.466-20.086 19.466-51.914 0-72l-188-196c-4.077-4.207-9.099-7.555-14-10 24.048-41.386 38-90.234 38-142 0-152.278-118.426-276-266-276zM572 254c107.326 0 194 91.253 194 202s-86.674 200-194 200c-107.326 0-196-89.253-196-200s88.674-202 196-202zM134 466v64h82c-5.078-20.817-9.052-41.784-10-64h-72zM138 654v64h204c-24.807-17.419-47.038-40.025-66-64h-138zM138 824v64h452v-64h-452z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "recordQuery" - ] - }, - "attrs": [], - "properties": { - "order": 477, - "id": 118, - "prevSize": 16, - "code": 59827, - "name": "recordQuery" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 179 - }, - { - "icon": { - "paths": [ - "M116 30l-114 528h-2l2 6-2 6h2l102 454h840l78-454h2l-2-6 2-6h-2l-114-528h-792zM162 84h700l84 398h-868l84-398zM328 140v48h370v-48h-370zM236 250v58h554v-58h-554zM190 362v64h646v-64h-646zM378 750h268v60h-268v-60z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "resourceManagment" - ] - }, - "attrs": [], - "properties": { - "order": 478, - "id": 117, - "prevSize": 16, - "code": 59828, - "name": "resourceManagment" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 180 - }, - { - "icon": { - "paths": [ - "M0 768h1024v256h-1024v-256z", - "M155.869 132.442h192v535.838h-192v-535.838z", - "M880.115 476.282v192h-427.888v-192h427.888z", - "M871.413 132.442v192h-427.888v-192h427.888z", - "M0 0v1024h1024v-1024h-1024zM60 60h904v901.997h-904v-901.997z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "ruleManagment" - ] - }, - "attrs": [], - "properties": { - "order": 479, - "id": 116, - "prevSize": 16, - "code": 59829, - "name": "ruleManagment" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 181 - }, - { - "icon": { - "paths": [ - "M908 4l-440 1016h82l438-1016h-80zM586 56c-28.986 0-55.758 11.758-76 32s-34 50.999-34 88c0 37.001 13.758 67.758 34 88s47.014 32 76 32c28.986 0 55.758-11.758 76-32s34-50.999 34-88c0-37.001-13.758-67.758-34-88s-47.014-32-76-32zM586 104c24.033 0 45.497 11.497 60 26s22 29.982 22 46c0 16.018-7.497 33.497-22 48s-35.967 24-60 24c-24.033 0-45.497-9.497-60-24s-22-31.982-22-48c0-16.018 7.497-31.497 22-46s35.967-26 60-26zM462 342l-208 428-124-200-132 84 208 204 22 26 28-22 380-448-174-72zM872 740c-28.986 0-55.758 11.758-76 32s-36 50.999-36 88c0 37.001 15.758 67.758 36 88s47.014 32 76 32c28.986 0 53.758-11.758 74-32s36-50.999 36-88c0-37.001-15.758-67.758-36-88s-45.014-32-74-32zM872 788c24.033 0 45.497 11.497 60 26s20 29.982 20 46c0 16.018-5.497 33.497-20 48s-35.967 24-60 24c-24.033 0-45.497-9.497-60-24s-22-31.982-22-48c0-16.018 7.497-31.497 22-46s35.967-26 60-26z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "sucessRate" - ] - }, - "attrs": [], - "properties": { - "order": 480, - "id": 115, - "prevSize": 16, - "code": 59830, - "name": "sucessRate" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 182 - }, - { - "icon": { - "paths": [ - "M340 0c-188.394 0-340 151.606-340 340v344c0 188.394 151.606 340 340 340h344c188.394 0 340-151.606 340-340v-344c0-188.394-151.606-340-340-340h-344zM340 60h344c156.193 0 280 123.807 280 280v344c0 156.193-123.807 280-280 280h-344c-156.193 0-280-123.807-280-280v-344c0-156.193 123.807-280 280-280zM294 152l-118 98 140 172-148 204 116 86 224-284-214-276zM526 616v96h96v-96h-96zM758 616v96h96v-96h-96z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "terminalManagment" - ] - }, - "attrs": [], - "properties": { - "order": 481, - "id": 114, - "prevSize": 16, - "code": 59831, - "name": "terminalManagment" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 183 - }, - { - "icon": { - "paths": [ - "M232 10c-61.702 26.098-104 88.791-104 160 0 63.406 36.891 118.173 88 148v142h-28c-102.784 0-188 79.286-188 174v216c0 94.714 85.216 174 188 174h648c102.784 0 188-79.286 188-174v-216c0-94.714-85.216-174-188-174h-90v-272.744l32.242 10.697h75.758c9.891-1.512 13.281-2.842 20-18 16.523-50.182 124.738-56.639 146-37.954 3.52-58.704-84.581-96.842-148-94-38.653-1.549-114 0-114 0-12.518 0.026-23.19 12.302-28 28h-56v-8c0-29.134-22.866-54-52-54h-20c-29.134 0-54 24.866-54 54v108c0 29.134 24.866 54 54 54h20c10.645 0 19.738-4.604 28-10v240h-270v-138c55.309-28.606 92-85.473 92-152 0-71.885-45.362-134.327-108-160 0.91 2.929 4 6.714 4 10v176c0 15.687-14.009 28-28 28h-80c-13.991 0-28-12.313-28-28v-176c0-3.286 3.090-7.071 4-10-0.589 0.241-3.414-0.248-4 0zM188 560h648c45.538 0 82 32.037 82 74v16h-812v-16c0-41.963 36.462-74 82-74zM106 714h812v136c0 41.963-36.462 76-82 76h-648c-45.538 0-82-34.037-82-76z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "tools" - ] - }, - "attrs": [], - "properties": { - "order": 482, - "id": 113, - "prevSize": 16, - "code": 59832, - "name": "tools" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 184 - }, - { - "icon": { - "paths": [ - "M386.288 150.611c-64.504 2.92-124.19 43.881-109.558 141.846 15.955 106.825 15.406 172.256 93.327 158.057 87.588-15.961 108.823-82.844 103.471-164.136-5.847-88.81-26.616-138.511-87.24-135.767zM670.326 166.822c-46.129 2.217-72.376 54.29-93.327 119.556-33.015 102.851-30.356 144.937 48.692 149.951 88.855 5.637 118.134-31.147 131.875-111.45 13.208-77.193-5.994-141.384-64.923-156.030-7.366-1.831-15.727-2.343-22.317-2.026zM112.394 359.327c-60.726 0-106.386 63.689-111.586 141.846-7.171 107.77 33.666 156.045 111.586 141.846 87.588-15.961 115.64-60.605 109.558-141.846-5.847-78.094-48.831-141.846-109.558-141.846zM923.931 373.512c-43.702 4.545-86.594 41.033-113.615 93.213-49.679 95.935-32.478 154.168 44.635 172.241 86.68 20.316 129.302-8.204 156.221-85.107 25.876-73.924 13.064-150.038-42.606-174.268-13.918-6.057-30.067-7.594-44.635-6.079zM493.817 497.12c-80.695 0-167.197 57.335-200.855 176.294-89.884 44.495-159.755 129.365-137.961 214.795 35.956 140.948 185.98 135.767 338.817 135.767s326.644 1.514 326.644-143.872c0-145.386-173.807-382.983-326.644-382.983z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "track" - ] - }, - "attrs": [], - "properties": { - "order": 483, - "id": 112, - "prevSize": 16, - "code": 59833, - "name": "track" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 185 - }, - { - "icon": { - "paths": [ - "M325.771 135.155c-83.461 0-153.836 70.365-153.836 153.834 0 83.463 70.375 150.816 153.836 150.816s147.803-67.353 147.803-150.816c0-83.469-64.342-153.834-147.803-153.834zM190.033 448.859c-109.183 48.214-183.195 158.051-190.033 283.537h404.954l113.039-250.144c-12.772-8.111-48.521-27.215-62.517-33.393-1.545-1.312-1.458 0-3.017 0l-126.689 189.911-132.721-189.911c-1.134-1.312-1.905 1.312-3.016 0z", - "M703.355 355.176c-83.461 0-153.836 70.365-153.836 153.834 0 83.463 70.375 150.816 153.836 150.816s147.804-67.354 147.804-150.816c0-83.469-64.342-153.834-147.804-153.834zM567.617 668.88c-109.183 48.214-183.195 158.051-190.033 283.537h645.509c-6.838-125.486-80.85-235.323-190.033-283.537-1.546-1.312-1.459 0-3.017 0-71.621 110.94-177.699 111.193-259.41 0-1.134-1.312-1.905 1.312-3.016 0z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "userManagment" - ] - }, - "attrs": [], - "properties": { - "order": 484, - "id": 111, - "prevSize": 16, - "code": 59834, - "name": "userManagment" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 186 - }, - { - "icon": { - "paths": [ - "M128 0.25v481.997h-128l112 540.806h802l110-540.806h-128v-481.997zM192 64.25h640v417.997h-640zM244 192.25v64h270v-64zM242 322.246v64h520v-64z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "versionManagment" - ] - }, - "attrs": [], - "properties": { - "order": 485, - "id": 110, - "prevSize": 16, - "code": 59835, - "name": "versionManagment" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 187 - }, - { - "icon": { - "paths": [ - "M116 0v1024h792v-722h2l-282-300v-2h-512zM176 60h390v302h282v600h-672v-902zM628 96l192 206h-192v-206zM374 98v106h-114v84h114v112l140-154-140-148zM650 452v106h-114v84h114v112l140-154-140-148zM374 616v106h-114v84h114v112l140-154-140-148z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "workOrder" - ] - }, - "attrs": [], - "properties": { - "order": 486, - "id": 109, - "prevSize": 16, - "code": 59836, - "name": "workOrder" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 188 - }, - { - "icon": { - "paths": [ - "M888.686 0h-753.371c-74.606 0-135.314 62.171-135.314 138.606v746.862c0 76.361 60.709 138.533 135.314 138.533h753.371c74.606 0 135.314-62.171 135.314-138.606v-746.789c0-76.434-60.709-138.606-135.314-138.606zM888.686 950.857h-49.445v-59.831c0-77.531-64-140.581-142.702-140.581h-15.287c-13.239-22.601-37.010-38.473-65.463-38.473-42.35 0-76.8 33.646-76.8 75.118 0 41.399 34.45 75.191 76.8 75.191 28.526 0 52.517-16.091 65.609-38.766h15.141c38.327 0 69.559 30.208 69.559 67.438v59.904h-571.611v-59.831c0-37.23 31.232-67.438 69.559-67.438h51.785c13.239 22.747 37.157 38.766 65.682 38.766 42.35 0 76.727-33.792 76.727-75.191 0-41.472-34.377-75.118-76.727-75.118-28.453 0-52.297 15.872-65.536 38.4h-51.931c-78.702 0-142.702 63.049-142.702 140.581v56.832c-27.355-6.802-48.201-31.598-48.201-62.464v-263.68h109.568c10.679 13.605 26.697 22.894 45.568 22.894 32.329 0 58.441-25.6 58.441-57.198 0-31.671-26.039-57.344-58.441-57.344-21.65 0-39.863 12.069-49.957 29.33h-105.179v-91.429h111.835c10.752 11.776 25.893 19.602 43.301 19.602 32.329 0 58.441-25.673 58.441-57.271 0-31.671-26.039-57.344-58.441-57.344-23.186 0-42.789 13.531-52.224 32.695h-102.912v-267.045c0-36.133 27.867-65.463 62.171-65.463h266.459v108.032c-19.602 9.216-33.353 28.526-33.353 51.2 0 31.744 26.185 57.344 58.587 57.344 32.183 0 58.441-25.6 58.441-57.344 0-17.042-7.973-31.89-19.968-42.423v-116.809h93.33v110.226c-17.774 9.947-30.062 27.721-30.062 49.006 0 31.744 26.185 57.344 58.514 57.344 32.183 0 58.441-25.6 58.441-57.344 0-18.505-9.509-34.231-23.406-44.617v-114.615h266.459c34.231 0 62.098 29.33 62.098 65.463v267.045h-102.546c-9.435-19.163-28.965-32.695-52.224-32.695-32.329 0-58.441 25.673-58.441 57.344 0 31.598 26.039 57.271 58.441 57.271 17.408 0 32.475-7.826 43.301-19.602h111.47v91.429h-104.887c-10.094-17.262-28.306-29.33-49.957-29.33-32.329 0-58.441 25.673-58.441 57.344s26.039 57.198 58.441 57.198c18.871 0 34.962-9.362 45.568-22.894h109.275v263.68c0 36.133-27.867 65.463-62.171 65.463z", - "M356.206 377.637h294.985v275.529h-294.985v-275.529z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "cpu" - ] - }, - "attrs": [], - "properties": { - "order": 487, - "id": 108, - "prevSize": 16, - "code": 59837, - "name": "cpu" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 189 - }, - { - "icon": { - "paths": [ - "M1023.854 653.751l-97.938-566.491h-794.99l-130.706 566.491h-0.219v284.306h1024v-284.306h-0.146zM183.296 160.402h686.885l72.923 421.010h-856.942l97.134-421.010zM955.685 864.841h-887.369v-137.947h887.442v137.947z", - "M131.95 750.738h73.143v99.109h-73.143v-99.109z", - "M247.003 750.738h73.143v99.109h-73.143v-99.109z", - "M890.368 802.231c0 17.693-14.343 32.037-32.037 32.037s-32.037-14.343-32.037-32.037c0-17.693 14.343-32.037 32.037-32.037s32.037 14.343 32.037 32.037z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "memory" - ] - }, - "attrs": [], - "properties": { - "order": 488, - "id": 107, - "prevSize": 16, - "code": 59838, - "name": "memory" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 190 - }, - { - "icon": { - "paths": [ - "M512 0c-282.331 0-512 229.742-512 512s229.669 512 512 512c282.258 0 512-229.742 512-512s-229.742-512-512-512zM512 950.857c-242.030 0-438.857-196.827-438.857-438.857s196.827-438.857 438.857-438.857 438.857 196.827 438.857 438.857-196.827 438.857-438.857 438.857z", - "M757.906 631.296c-56.174-56.174-80.018-165.961-77.605-227.474 2.853-61.44-14.409-118.638-58.661-152.357-39.79-30.208-80.53-24.064-80.53-24.064l-2.414-21.431c0 0-8.923-6.949-26.77-6.949-16.823 0-26.697 6.949-26.697 6.949l-2.706 21.431c0 0-40.667-6.071-80.165 24.064-44.471 33.719-61.586 90.99-58.88 152.357 2.706 61.513-21.358 171.301-77.605 227.401-56.101 56.174-64.073 58.953-61.44 88.283 2.779 29.33 26.917 43.813 26.917 43.813h196.462c0 34.158 37.742 61.733 84.187 61.733 46.592 0 84.187-27.575 84.187-61.733h196.535c0 0 24.21-14.409 26.843-43.813s-5.266-32.11-61.659-88.21z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "currentAlarm" - ] - }, - "attrs": [], - "properties": { - "order": 489, - "id": 106, - "prevSize": 16, - "code": 59839, - "name": "currentAlarm" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 191 - }, - { - "icon": { - "paths": [ - "M518.656 2.341c-282.331 0-512 229.669-512 512 0 282.258 229.669 512 512 512s512.073-229.742 512.073-512c0-282.331-229.742-512-512.073-512zM518.656 953.125c-242.030 0-438.857-196.827-438.857-438.857s196.827-438.857 438.857-438.857c242.103 0 438.93 196.827 438.93 438.857s-196.901 438.857-438.93 438.857z", - "M818.907 432.494c-1.755 0-3.365 1.243-5.339 1.463v-192.951c0 0-27.209-12.142-51.273 0-50.834 25.307-118.711 109.495-190.245 123.173-71.314 13.531-264.265-0.512-350.939 7.607-23.918 2.121-63.927 15.067-67.511 67.584-3.877 52.443 0 107.154 0 107.154s19.602 45.202 45.056 45.202c25.381 0 81.627 0 81.627 0s-2.121 107.447 0 143.287c3.145 50.176 18.871 62.318 38.107 88.137 11.045 15.141 73.655 49.737 112.347 25.966 21.504-13.385 39.643-36.425 31.89-65.536-9.509-35.182-44.105-1.39-54.711-44.105-10.679-42.496-7.607-127.561-7.607-127.561s18.286-25.893 42.642-31.963c5.413-1.463 74.459 4.608 74.459 4.608s190.464 66.779 235.52 129.097c31.963 44.032 60.635 13.531 60.635 13.531v-190.61c1.902 0.219 3.584 1.463 5.266 1.463 20.626 0 37.376-23.479 37.376-52.809 0.073-29.111-16.603-52.736-37.303-52.736zM781.824 668.087h-13.824c0 0 0 0-39.424-35.035-39.424-34.889-127.122-69.925-180.809-86.674-15.433-4.754-65.024-8.338-65.024-8.338v-112.347c6.437-0.146 17.262-4.389 37.815-3.73 107.886 2.999 249.198-129.243 249.198-129.243h12.142v375.369z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "noticeAlarm" - ] - }, - "attrs": [], - "properties": { - "order": 490, - "id": 105, - "prevSize": 16, - "code": 59840, - "name": "noticeAlarm" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 192 - }, - { - "icon": { - "paths": [ - "M672.329 351.305l-117.906 100.571c-10.679-6.217-22.528-10.679-35.767-10.679-8.997 0-17.335 2.121-25.234 5.12l-182.491-182.491c-13.458-13.458-35.84-12.727-50.103 1.609-14.263 14.263-14.994 36.645-1.609 50.103l188.416 188.416c-0.512 3.511-2.121 6.656-2.121 10.386 0 40.375 32.768 73.143 73.143 73.143 39.643 0 71.534-31.671 72.704-71.022l128.439-109.568c15.36-13.093 17.189-36.133 4.169-51.493-13.166-15.433-36.279-17.262-51.639-4.096z", - "M518.656 206.848c20.187 0 36.571-16.384 36.571-36.571v-51.2c0-20.187-16.384-36.571-36.571-36.571s-36.571 16.384-36.571 36.571v51.2c0 20.187 16.311 36.571 36.571 36.571z", - "M518.656 820.736c-20.187 0-36.571 16.457-36.571 36.571v51.273c0 20.114 16.384 36.571 36.571 36.571s36.571-16.457 36.571-36.571v-51.273c0-20.187-16.384-36.571-36.571-36.571z", - "M910.336 477.769h-51.127c-20.187 0-36.571 16.384-36.571 36.571s16.384 36.571 36.571 36.571h51.127c20.261 0 36.571-16.384 36.571-36.571s-16.238-36.571-36.571-36.571z", - "M172.105 477.769h-51.2c-20.114 0-36.571 16.384-36.571 36.571s16.457 36.571 36.571 36.571h51.2c20.187 0 36.571-16.384 36.571-36.571s-16.384-36.571-36.571-36.571z", - "M518.656 2.341c-282.331 0-512 229.669-512 512 0 282.258 229.669 512 512 512s512.073-229.742 512.073-512c0-282.331-229.742-512-512.073-512zM518.656 953.125c-242.030 0-438.857-196.827-438.857-438.857s196.827-438.857 438.857-438.857c242.103 0 438.93 196.827 438.93 438.857s-196.901 438.857-438.93 438.857z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "historyAlarm" - ] - }, - "attrs": [], - "properties": { - "order": 491, - "id": 104, - "prevSize": 16, - "code": 59841, - "name": "historyAlarm" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 193 - }, - { - "icon": { - "paths": [ - "M868.791 755.785l-251.026-245.102 245.175-250.88-107.154-104.521-245.029 250.88-251.026-245.029-104.521 107.008 251.026 245.102-245.175 251.026 107.081 104.448 245.102-250.953 251.026 245.175z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "close" - ] - }, - "attrs": [], - "properties": { - "order": 492, - "id": 103, - "prevSize": 16, - "code": 59842, - "name": "close" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 194 - }, - { - "icon": { - "paths": [ - "M36.571 73.143v950.857h950.857v-950.857h-950.857zM919.113 146.286v113.225h-814.226v-113.225h814.226zM688.567 332.654v165.23h-136.338v-165.23h136.338zM479.086 497.957h-144.018v-165.303h144.018v165.303zM261.925 497.957h-157.038v-165.303h157.038v165.303zM261.925 571.099v142.482h-157.038v-142.482h157.038zM335.067 571.099h144.018v142.482h-144.018v-142.482zM552.229 571.099h136.338v142.482h-136.338v-142.482zM761.71 571.099h157.403v142.482h-157.403v-142.482zM761.71 497.957v-165.303h157.403v165.23h-157.403zM104.887 950.93v-164.206h157.038v164.206h-157.038zM335.067 950.93v-164.206h144.018v164.206h-144.018zM552.229 950.93v-164.206h136.338v164.206h-136.338zM761.71 950.93v-164.206h157.403v164.206h-157.403z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "table" - ] - }, - "attrs": [], - "properties": { - "order": 493, - "id": 102, - "prevSize": 16, - "code": 59843, - "name": "table" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 195 - }, - { - "icon": { - "paths": [ - "M215.040 36.571l501.102 481.646v-481.573h146.286v950.784h-146.286v-463.506l-501.102 463.506z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "next" - ] - }, - "attrs": [], - "properties": { - "order": 494, - "id": 101, - "prevSize": 16, - "code": 59844, - "name": "next" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 196 - }, - { - "icon": { - "paths": [ - "M862.427 36.571l-501.102 481.646v-481.573h-146.286v950.784h146.286v-463.506l501.102 463.506z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "pre" - ] - }, - "attrs": [], - "properties": { - "order": 495, - "id": 100, - "prevSize": 16, - "code": 59845, - "name": "pre" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 197 - }, - { - "icon": { - "paths": [ - "M942.528 574.848c0 0-39.872-43.904-77.632-68.096-37.888-24.32-102.656-36.992-102.656-36.992l-3.392-31.104 6.848-4.608c0 0 27.776-56.64 32.384-69.312 4.544-12.736 12.8-12.736 18.56-19.648s12.032-51.84 8.128-58.88c-2.88-5.184-9.344-7.040-9.344-7.040l1.28-9.152c0 0 10.368-57.728 6.848-75.072s-11.648-45.12-21.888-58.88c-10.496-13.888-27.648-20.8-41.6-18.56-13.888 2.368-20.864-6.912-20.864-6.912s-26.368-23.104-51.84-24.256-98.304 17.344-113.28 85.504c-14.976 68.16 0 110.848 0 110.848l-6.976 2.304c0 0-3.456 28.864 3.52 49.664 6.848 20.736 24.256 33.408 24.256 33.408l3.456 6.976c0 0 4.032 9.344 9.28 20.672 53.44 35.776 90.176 104.704 90.176 184.96 0 46.080-12.224 88.384-32.576 123.072 11.2 0.704 22.464 1.344 33.6 1.088 134.208-3.648 236.672-42.24 243.712-61.888 6.848-19.52 0-68.096 0-68.096z", - "M355.136 580.736c0-78.912 35.52-146.88 87.552-183.168 6.528-13.76 12.864-27.456 14.848-32.896 4.48-12.672 12.736-12.672 18.496-19.584s12.032-51.84 8.128-58.88c-2.88-5.184-9.344-7.040-9.344-7.040l1.28-9.152c0 0 10.368-57.728 6.848-75.072s-11.648-45.12-21.888-58.88c-10.56-13.888-27.712-20.864-41.664-18.56-13.888 2.368-20.864-6.912-20.864-6.912s-26.368-23.104-51.84-24.256c-25.472-1.152-98.304 17.344-113.28 85.504s0 110.848 0 110.848l-6.912 2.304c0 0-3.456 28.864 3.456 49.664 6.912 20.736 24.256 33.408 24.256 33.408l3.456 6.976c0 0 22.016 51.968 31.168 60.032 9.28 8.128 2.304 28.928 2.304 28.928l-12.672 9.216c0 0-161.664 50.88-166.336 97.088s-6.464 55.808-3.264 69.888c2.176 9.344 129.664 68.096 249.28 64.768 10.048-0.256 19.392-1.152 29.056-1.728-20.032-34.688-32.064-76.736-32.064-122.496z", - "M568.832 429.504c0 0-26.368-23.104-51.84-24.256s-98.304 17.344-113.28 85.504c-14.976 68.16 0 110.848 0 110.848l-6.912 2.368c0 0-3.456 28.864 3.456 49.664 6.912 20.736 24.256 33.408 24.256 33.408l3.456 6.976c0 0 22.016 51.968 31.168 60.032 9.28 8.064 2.304 28.864 2.304 28.864l-12.672 9.216c0 0-161.664 50.88-166.336 97.088s-6.464 55.808-3.264 69.888c2.176 9.408 129.664 68.16 249.28 64.832 134.208-3.712 236.736-42.304 243.712-61.888 6.848-19.648 0-68.16 0-68.16s-39.872-43.904-77.632-68.096c-37.888-24.32-102.656-36.992-102.656-36.992l-3.392-31.104 6.848-4.608c0 0 27.776-56.64 32.384-69.312 4.48-12.672 12.736-12.672 18.496-19.648s12.032-51.84 8.128-58.88c-2.88-5.184-9.344-7.040-9.344-7.040l1.28-9.152c0 0 10.368-57.728 6.848-75.072s-11.648-45.12-21.888-58.88c-10.432-14.016-27.52-20.928-41.536-18.688-13.888 2.368-20.864-6.912-20.864-6.912z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "roleset" - ] - }, - "attrs": [], - "properties": { - "order": 496, - "id": 99, - "prevSize": 16, - "code": 59846, - "name": "roleset" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 198 - }, - { - "icon": { - "paths": [ - "M509.504 670.656c0 0 9.344-27.904-3.072-38.656-12.288-10.816-41.792-80.448-41.792-80.448l-4.608-9.344c0 0-23.232-16.96-32.512-44.864-0.64-1.856-0.768-3.968-1.28-5.888-17.152-4.544-28.928-6.848-28.928-6.848l-4.352-39.36 8.64-5.888c0 0 12.16-24.832 23.424-48.512-2.88-25.856-3.456-64 7.104-111.68 6.208-28.096 20.096-49.344 36.864-65.984 3.584-23.104 8.576-61.056 5.504-75.904-4.16-21.888-14.528-56.96-27.712-74.432-13.12-17.536-34.944-26.304-52.48-23.36s-26.24-8.768-26.24-8.768-33.472-29.248-65.6-30.656c-32.128-1.472-124.16 21.888-143.168 107.968-18.944 86.080 0 140.032 0 140.032l-8.64 3.008c0 0-4.416 36.544 4.288 62.72 8.768 26.304 30.656 42.368 30.656 42.368l4.352 8.768c0 0 27.84 65.664 39.424 75.904 11.648 10.112 2.88 36.48 2.88 36.48l-15.936 11.584c0 0-204.288 64.192-210.176 122.688-5.824 58.304-8.192 70.528-4.096 88.256 2.624 11.072 144.704 77.184 287.104 81.728 54.144-51.456 203.456-98.496 203.456-98.496l16.896-12.416z", - "M1019.84 849.536c0 0-53.376-58.816-104-91.328-50.752-32.576-137.344-49.472-137.344-49.472l-4.608-41.728 9.28-6.272c0 0 37.12-75.84 43.392-92.864 6.144-17.024 17.024-17.024 24.768-26.304s16-69.376 10.752-78.976c-3.776-6.912-12.224-9.344-12.224-9.344l1.344-12.224c0 0 13.888-77.376 9.28-100.608s-15.488-60.352-29.376-78.912c-14.016-18.624-37.12-27.904-55.744-24.832-18.624 3.136-27.904-9.28-27.904-9.28s-35.52-30.912-69.504-32.448c-34.112-1.536-131.648 23.168-151.744 114.56-20.096 91.264 0 148.48 0 148.48l-9.28 3.136c0 0-4.672 38.72 4.608 66.56 9.28 27.904 32.512 44.928 32.512 44.928l4.608 9.344c0 0 29.504 69.632 41.728 80.448 12.352 10.752 3.136 38.656 3.136 38.656l-17.024 12.288c0 0-216.64 68.096-222.848 130.048s-8.704 74.752-4.352 93.632c2.88 12.544 173.76 91.264 334.016 86.784 179.904-4.928 317.248-56.704 326.528-82.944 9.344-26.304 0-91.328 0-91.328z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "role" - ] - }, - "attrs": [], - "properties": { - "order": 497, - "id": 98, - "prevSize": 16, - "code": 59847, - "name": "role" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 199 - }, - { - "icon": { - "paths": [ - "M593.664 100.928c0 0-41.216-35.84-80.64-37.632-39.488-1.792-152.512 26.88-175.808 132.736-23.296 105.792 0 172.096 0 172.096l-10.688 3.648c0 0-5.376 44.864 5.312 77.184 10.752 32.256 37.696 51.968 37.696 51.968l5.376 10.816c0 0 34.112 80.704 48.384 93.184 14.4 12.48 3.584 44.8 3.584 44.8l-19.712 14.336c0 0-251.072 78.912-258.24 150.656s-10.048 86.656-5.056 108.48c3.328 14.592 201.344 105.728 386.944 100.608 208.512-5.76 367.68-65.664 378.432-96.128 10.752-30.528 0-105.792 0-105.792s-61.952-68.16-120.64-105.792c-58.752-37.76-159.104-57.344-159.104-57.344l-5.248-48.448 10.624-7.232c0 0 43.136-87.872 50.304-107.584 7.104-19.712 19.712-19.712 28.672-30.464s18.56-80.384 12.48-91.52c-4.352-8-14.336-10.88-14.336-10.88l1.792-14.208c0 0 16.064-89.664 10.688-116.544-5.312-26.88-17.92-69.952-34.048-91.456s-42.944-32.256-64.512-28.736c-21.568 3.648-32.256-10.752-32.256-10.752z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "user" - ] - }, - "attrs": [], - "properties": { - "order": 498, - "id": 97, - "prevSize": 16, - "code": 59848, - "name": "user" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 200 - }, - { - "icon": { - "paths": [ - "M490.639 255.969l-457.452 128.548 31.401 141.455-2.253-0.481v3.779l-45.338 141.681 402.376 96.333 77.45-145.454 1.884-3.779-411.1-87.199 434.191-129.428z", - "M62.336 701.619v205.455l436.372 115.231v-359.347l-66.514 126.766z", - "M531.937 619.74l1.889 3.779 77.445 145.459 402.381-96.338-45.348-141.681v-3.779l-1.367 0.287 33.623-151.404-447.601-120.095-31.16 145.454 442.87 126.525z", - "M531.937 664.648v359.352l436.367-115.236v-205.455l-369.848 88.1z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "empty" - ] - }, - "attrs": [], - "properties": { - "order": 499, - "id": 96, - "prevSize": 16, - "code": 59849, - "name": "empty" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 201 - }, - { - "icon": { - "paths": [ - "M544.427 403.183l179.849 222.788v295.424l119.74 102.605v-397.414l179.985-223.403h-479.573zM809.882 614.946v333.346l-51.473-39.458v-295.492l-138.923-176.503h333.858l-143.462 178.108z", - "M393.865 425.472c-35.601 8.499-61.269 42.598-62.362 44.032l-3.14 4.267-0.205 5.291c-0.137 4.164-3.686 103.185 9.899 155.136 9.83 37.717 35.635 40.482 51.029 42.052 12.834 1.399 14.336 1.843 16.691 10.138 8.431 30.071-19.422 50.381-31.676 57.617-37.717 21.914-106.701-12.937-116.873-26.317-3.618-4.676-7.134-8.943-10.513-13.073-18.091-21.982-30.071-36.42-32.939-81.203-2.628-40.994 0-165.751 0.034-167.049l0.375-17.442h-118.374c-13.141 0-30.413-23.279-39.014-40.585-0.853-13.483-3.823-68.164 0.205-120.286 3.789-50.62 44.237-61.679 68.028-63.795 47.002-4.198 98.202-3.243 147.763-2.321 63.556 1.126 123.563 2.287 174.046-6.861 59.187-10.786 114.449-54.511 163.226-93.082 27.785-21.948 54.033-42.735 76.015-53.146 13.756-6.554 29.286-4.949 39.287-2.765v234.598l19.831-3.277 3.721-1.502c15.735 0 29.047 20.651 29.047 45.056 0 7.817-1.468 15.462-4.403 22.767l31.744 12.629c4.506-11.366 6.793-23.279 6.793-35.43 0-39.868-22.357-72.021-52.599-78.131v-220.604l-10.513-4.403c-1.604-0.717-41.267-16.964-77.551 0.307-25.463 12.083-53.248 33.997-82.534 57.207-45.67 36.079-97.382 77.005-148.173 86.255-47.138 8.499-105.54 7.441-167.322 6.315-50.449-0.956-102.571-1.877-151.415 2.458-57.89 5.12-94.925 40.721-99.021 95.198-4.813 62.259-0.205 125.952 0 128.649l1.502 5.837c2.97 6.451 30.174 63.181 71.339 63.181h83.524c-0.614 36.352-1.775 119.159 0.375 152.508 3.618 55.774 20.753 76.595 40.653 100.727 3.209 3.891 6.519 7.885 9.83 12.151 13.107 17.135 65.092 46.558 114.142 46.558 16.555 0 32.802-3.379 47.070-11.708 39.834-23.586 57.481-59.597 47.206-96.324-8.738-30.857-32.017-33.348-45.943-34.816-13.585-1.399-17.681-1.809-21.572-16.759-10.581-40.516-9.489-118.101-8.977-139.605 7.543-8.67 22.938-23.313 38.059-26.999 6.588-0.478 50.039 2.458 86.699 5.564l8.533-33.143-4.198-0.887c-87.996-7.134-94.481-5.666-97.348-4.983z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "noticeFilter" - ] - }, - "attrs": [], - "properties": { - "order": 500, - "id": 95, - "prevSize": 16, - "code": 59850, - "name": "noticeFilter" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 202 - }, - { - "icon": { - "paths": [ - "M260.949 393.216c14.711-9.284 56.491-30.891 129.877-33.485 93.15-3.174 275.9 29.491 277.675 29.798l52.156 9.353-36.864-38.059c-5.905-6.076-145.681-148.651-287.369-158.618-68.574-4.881-119.159 4.233-146.33 11.196l-5.803-149.094-233.745 271.189 250.402 235.042v-177.323zM226.816 376.491v115.2l-169.097-158.72 155.819-180.736 4.267 108.51 22.323-8.704c0.512-0.171 58.914-22.391 153.873-15.77 85.026 6.007 172.954 68.301 223.198 110.217-63.181-9.694-164.215-22.972-227.601-20.855-106.325 3.755-154.795 44.032-156.809 45.739l-5.973 5.12z", - "M936.073 719.838l-27.477-27.136c-72.841-72.738-102.332-217.771-99.396-292.796 4.471-95.881-25.907-173.705-85.538-219.17-40.073-30.447-80.828-36.079-103.356-36.489l-2.253-20.105-5.7-4.437c-1.707-1.331-17.476-12.971-46.49-12.971-27.238 0-43.895 11.23-45.705 12.493l-6.144 4.335-2.628 20.719c-14.131 0.273-35.567 2.594-59.358 11.878l12.356 31.812c32.529-12.629 59.255-9.148 59.46-9.114l17.237 2.56 4.71-37.069c9.148-3.413 31.846-3.243 40.141-0.239l4.301 37.239 17.374-2.458c1.98-0.205 48.777-6.383 95.403 29.047 50.415 38.434 76.049 106.086 72.090 190.566-3.311 83.558 28.467 237.568 109.397 318.43l27.648 27.307c51.132 50.21 52.531 52.395 50.278 77.653-2.15 23.484-17.51 37.888-24.474 43.315h-275.831v17.067c0 36.318-43.145 65.911-96.119 65.911s-96.085-29.559-96.085-65.911v-17.067h-275.763c-6.929-5.461-22.391-20.070-24.576-43.315-2.253-25.259-0.853-27.443 49.971-77.517l27.75-27.511c68.13-68.062 100.489-187.631 107.52-269.346l-33.997-2.935c-6.519 75.981-36.045 186.539-97.655 248.149l-27.58 27.307c-51.541 50.756-63.795 62.839-60.006 104.96 4.471 47.514 42.769 70.895 44.407 71.851l4.028 2.423h253.645c10.581 47.070 64.102 82.978 128.341 82.978 64.273 0 117.794-35.908 128.375-82.978h253.679l4.028-2.389c1.638-0.956 40.073-24.405 44.373-71.953 3.721-42.121-8.602-54.238-60.382-105.097z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "alarmTurn" - ] - }, - "attrs": [], - "properties": { - "order": 501, - "id": 94, - "prevSize": 16, - "code": 59851, - "name": "alarmTurn" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 203 - }, - { - "icon": { - "paths": [ - "M846.814 118.818c2.526-10.513 5.939-17.169 6.997-18.193v-34.133c-20.617 0-36.42 21.060-41.847 52.326h-56.695c2.526-10.513 5.939-17.169 6.997-18.193v-34.133c-20.617 0-36.42 21.060-41.847 52.326h-56.695c2.526-10.513 5.939-17.169 6.997-18.193v-34.133c-20.617 0-36.42 21.060-41.847 52.326h-56.695c2.526-10.513 5.939-17.169 6.997-18.193v-34.133c-20.617 0-36.42 21.060-41.847 52.326h-56.695c2.526-10.513 5.939-17.169 6.997-18.193v-34.133c-20.617 0-36.454 21.060-41.847 52.326h-56.661c2.526-10.513 5.939-17.169 6.997-18.193v-34.133c-20.617 0-36.454 21.060-41.847 52.326h-56.661c2.526-10.513 5.939-17.169 6.997-18.193v-34.133c-20.617 0-36.454 21.060-41.847 52.326h-56.695c2.526-10.513 5.939-17.169 6.997-18.193v-34.133c-20.617 0-36.454 21.060-41.847 52.326h-114.005v705.434h927.778v-705.434h-138.172zM950.852 790.118h-859.511v-637.167h78.302c2.731 38.4 20.036 65.399 43.383 65.399l1.638-33.792c-2.799-1.707-8.738-13.073-10.615-31.607h57.139c2.731 38.4 20.036 65.399 43.383 65.399l1.638-33.792c-2.799-1.707-8.772-13.073-10.615-31.607h57.139c2.731 38.4 20.036 65.399 43.383 65.399l1.638-33.792c-2.833-1.673-8.806-13.039-10.684-31.607h57.139c2.731 38.4 20.036 65.399 43.383 65.399l1.638-33.792c-2.833-1.673-8.806-13.039-10.684-31.607h57.139c2.731 38.4 20.036 65.399 43.383 65.399l1.638-33.792c-2.833-1.673-8.772-13.005-10.65-31.573h57.139c2.731 38.4 20.036 65.399 43.383 65.399l1.638-33.792c-2.833-1.673-8.772-13.005-10.65-31.573h57.139c2.731 38.4 20.036 65.399 43.383 65.399l1.638-33.792c-2.833-1.673-8.772-13.005-10.65-31.573h57.139c2.731 38.4 20.036 65.399 43.383 65.399l1.638-33.792c-2.833-1.673-8.772-13.005-10.65-31.573h106.052v637.030z", - "M197.086 333.79h176.469v34.133h-176.469v-34.133z", - "M195.584 454.929h684.919v34.133h-684.919v-34.133z", - "M195.584 596.992h684.919v34.133h-684.919v-34.133z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "advice" - ] - }, - "attrs": [], - "properties": { - "order": 502, - "id": 93, - "prevSize": 16, - "code": 59852, - "name": "advice" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 204 - }, - { - "icon": { - "paths": [ - "M857.463 514.287c0-28.228-22.46-51.2-50.074-51.2h-224.939v-379.529c0-36.284-30.481-65.775-67.891-65.775-37.478 0-67.925 29.491-67.925 65.775v379.529h-222.72c-27.648 0-50.108 22.972-50.108 51.2v87.825l2.492 12.015 0.853 5.393 4.028 17.545c4.608 48.23 6.793 213.299-31.232 292.25l-4.096 9.045 5.052 7.987c6.076 9.523 17.033 10.001 35.874 10.001 114.483 0 632.866-48.435 654.848-50.483l15.565-1.468v-276.378h0.239v-113.732zM480.768 83.558c0-17.442 15.155-31.642 33.792-31.642s33.758 14.199 33.758 31.642v379.529h-67.55v-379.529zM207.94 514.287c0-9.421 7.168-17.067 15.974-17.067h583.475c8.806 0 15.94 7.646 15.94 17.067v79.565h-615.39v-79.565zM822.886 873.301c-88.337 8.158-525.21 48.094-632.9 48.913 31.437-87.927 30.071-228.727 25.19-285.15h607.71v236.237z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "clearAlarm" - ] - }, - "attrs": [], - "properties": { - "order": 503, - "id": 92, - "prevSize": 16, - "code": 59853, - "name": "clearAlarm" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 205 - }, - { - "icon": { - "paths": [ - "M914.193 536.303h-814.182c-33.826 0-61.338-27.511-61.338-61.338v-186.948c0-33.826 27.511-61.338 61.338-61.338h814.182c33.826 0 61.338 27.511 61.338 61.338v186.948c-0 33.826-27.511 61.338-61.338 61.338zM100.011 260.813c-14.985 0-27.204 12.22-27.204 27.204v186.948c0 14.985 12.186 27.204 27.204 27.204h814.182c14.985 0 27.204-12.22 27.204-27.204v-186.948c0-14.985-12.186-27.204-27.204-27.204h-814.182z", - "M914.193 903.817h-814.182c-33.826 0-61.338-27.511-61.338-61.338v-186.948c0-33.826 27.511-61.338 61.338-61.338h814.182c33.826 0 61.338 27.511 61.338 61.338v186.948c-0 33.86-27.511 61.338-61.338 61.338zM100.011 628.361c-14.985 0-27.204 12.186-27.204 27.204v186.948c0 14.985 12.186 27.204 27.204 27.204h814.182c14.985 0 27.204-12.186 27.204-27.204v-186.948c0-14.985-12.186-27.204-27.204-27.204h-814.182z", - "M668.433 371.644c0 25.977-21.059 47.036-47.036 47.036s-47.036-21.059-47.036-47.036c0-25.977 21.059-47.036 47.036-47.036s47.036 21.059 47.036 47.036z", - "M848.282 371.644c0 25.977-21.059 47.036-47.036 47.036s-47.036-21.059-47.036-47.036c0-25.977 21.059-47.036 47.036-47.036s47.036 21.059 47.036 47.036z", - "M247.569 756.258c0 25.977-21.059 47.036-47.036 47.036s-47.036-21.059-47.036-47.036c0-25.977 21.059-47.036 47.036-47.036s47.036 21.059 47.036 47.036z", - "M452.369 756.258c0 25.977-21.059 47.036-47.036 47.036s-47.036-21.059-47.036-47.036c0-25.977 21.059-47.036 47.036-47.036s47.036 21.059 47.036 47.036z", - "M670.003 756.258c0 25.996-21.074 47.070-47.070 47.070s-47.070-21.074-47.070-47.070c0-25.996 21.074-47.070 47.070-47.070s47.070 21.074 47.070 47.070z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "alarmBox" - ] - }, - "attrs": [], - "properties": { - "order": 504, - "id": 91, - "prevSize": 16, - "code": 59854, - "name": "alarmBox" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 206 - }, - { - "icon": { - "paths": [ - "M487.083 899.618l-26.658-308.838 307.507 177.527-280.849 131.311zM500.053 653.073l16.828 194.97 177.254-82.91-194.082-112.060zM770.15 733.013l-280.337-161.792 260.233-450.697c21.163-36.693 69.666-49.835 106.496-28.57l145.306 83.9c37.786 21.845 50.347 68.608 28.57 106.462l-15.394 26.522 0.034 0.034-244.907 424.141zM536.474 558.729l221.218 127.659 210.773-365.056-221.218-127.727-210.773 365.124zM780.834 135.578l221.116 127.693c10.923-21.163 3.823-45.739-17.135-57.856l-145.306-83.9c-20.173-11.708-46.251-5.257-58.675 14.063z", - "M0 363.383h331.332v34.133h-331.332v-34.133z", - "M0 540.672h331.332v34.133h-331.332v-34.133z", - "M0 717.961h331.332v34.133h-331.332v-34.133z", - "M0 895.249h720.657v34.133h-720.657v-34.133z", - "M777.683 266.068l29.282 17.61-172.845 287.404-29.282-17.61 172.845-287.404z", - "M865.434 323.273l29.282 17.61-172.845 287.404-29.282-17.61 172.845-287.404z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "afreshDef" - ] - }, - "attrs": [], - "properties": { - "order": 505, - "id": 90, - "prevSize": 16, - "code": 59855, - "name": "afreshDef" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 207 - }, - { - "icon": { - "paths": [ - "M843.981 1024l-119.706-102.605v-295.424l-179.849-222.788h479.573l-180.019 223.437v397.38zM758.409 908.8l51.439 39.458v-333.346l143.497-178.108h-333.892l138.957 176.503v295.492z", - "M493.261 697.105c0 32.631-39.014 59.153-86.972 59.153-47.104 0-86.938-27.102-86.938-59.153v-17.067h-254.396c-6.417-5.086-19.729-17.954-21.641-38.571-2.048-22.562-0.751-24.542 45.466-70.076l25.6-25.327c75.127-75.059 104.175-216.951 100.796-293.751-3.413-77.278 20.002-139.059 66.014-173.943 40.516-30.891 84.48-26.658 86.255-26.419l17.271 2.56 4.369-34.679c8.090-2.901 26.931-2.731 34.304-0.239l4.062 34.782 17.34-2.423c2.15-0.307 45.807-4.608 86.665 26.419 45.978 35.089 69.359 96.836 65.741 174.012-0.717 17.203-1.809 28.262-0.683 43.418h34.406c-1.297-14.848-0.273-25.6 0.375-41.95 4.13-88.576-23.962-160.563-79.155-202.65-36.454-27.716-73.591-33.246-94.583-33.792l-2.048-17.886-5.666-4.403c-1.673-1.229-16.521-12.186-43.657-12.186-25.429 0-41.062 10.513-42.769 11.708l-6.144 4.335-2.321 18.466c-21.026 0.546-58.163 6.076-94.481 33.758-55.125 41.847-83.354 113.801-79.428 202.615 3.004 68.506-23.757 201.114-90.829 268.117l-25.395 25.156c-47.718 46.967-59.051 58.129-55.501 97.485 4.164 44.373 39.936 66.219 41.472 67.14l4.028 2.423h232.414c10.445 43.349 59.836 76.22 119.023 76.22 59.221 0 108.646-32.905 119.091-76.22h107.554v-34.133h-139.639v17.101z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "alarmFilter" - ] - }, - "attrs": [], - "properties": { - "order": 506, - "id": 89, - "prevSize": 16, - "code": 59856, - "name": "alarmFilter" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 208 - }, - { - "icon": { - "paths": [ - "M608.037 386.853c7.314 9.143 15.141 17.627 23.698 25.381l-16.823 35.986c-9.216 19.602 0.293 43.739 21.065 53.614l25.966 12.507c20.846 10.021 45.202 2.048 54.272-17.554l16.75-35.986c10.386 1.609 20.699 3.145 31.598 3.145 10.679 0 21.211-1.536 31.598-3.145l16.75 35.986c9.143 19.675 33.426 27.575 54.272 17.627l25.893-12.507c20.919-9.874 30.354-34.011 21.211-53.614l-16.75-36.133c8.558-7.68 16.457-16.238 23.698-25.381l36.279 15.287c19.822 8.411 43.154-2.414 51.858-23.991l10.971-26.917c8.997-21.65 0-45.861-19.822-54.199l-36.571-15.287c0.878-7.387 2.194-14.629 2.194-22.309 0-7.607-1.39-14.775-2.194-22.162l36.718-15.36c19.822-8.411 28.818-32.622 19.822-54.199l-10.898-26.99c-8.704-21.577-32.11-32.329-51.858-23.991l-36.425 15.287c-7.241-9.143-14.994-17.627-23.698-25.307l16.75-36.279c9.143-19.602-0.293-43.666-21.138-53.614l-26.039-12.434c-20.699-9.947-44.983-2.048-54.126 17.554l-16.75 36.059c-10.386-1.682-20.699-3.218-31.598-3.218s-21.211 1.536-31.598 3.218l-16.75-36.059c-9.143-19.602-33.499-27.502-54.199-17.554l-25.966 12.434c-20.919 10.021-30.427 34.011-21.211 53.614l16.75 36.206c-8.558 7.753-16.53 16.165-23.698 25.381l-36.425-15.36c-19.822-8.411-43.081 2.341-51.858 23.991l-11.045 26.99c-8.777 21.577 0.146 45.861 19.968 54.199l36.571 15.287c-0.878 7.461-2.267 14.629-2.267 22.235 0 7.68 1.536 14.921 2.267 22.382l-36.571 15.287c-19.749 8.411-28.745 32.549-19.968 54.199l11.045 26.917c8.777 21.504 32.037 32.329 51.785 23.991l36.498-15.214zM764.635 132.827c68.608 0 124.489 56.613 124.489 126.537 0 69.778-55.735 126.464-124.489 126.464s-124.562-56.686-124.562-126.464c0-69.925 55.808-126.537 124.562-126.537z", - "M2.926 1034.021h463.141v-386.56h-463.141v386.56zM392.923 960.878h-121.856v-240.274h121.856v240.274zM76.069 720.603h121.856v240.274h-121.856v-240.274z", - "M317.147 364.544l-133.559 8.119c14.19-31.378 35.84-58.953 65.463-79.872 106.13-74.679 191.269-42.789 191.269-42.789-76.946-54.491-160.11-59.099-227.182-12.507-49.957 34.523-86.235 81.774-102.839 136.997l-110.299 4.389 160.11 149.358 157.038-163.694z", - "M915.822 624.786l-198.729 109.275 129.755 32.183c-22.894 25.673-51.858 45.422-86.382 56.466-123.611 39.57-195.291-16.53-195.291-16.53 57.125 75.045 135.168 104.375 213.138 80.018 58.002-17.92 106.715-52.297 139.045-99.913l106.642 28.965-108.178-190.464z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "manAnalysis" - ] - }, - "attrs": [], - "properties": { - "order": 507, - "id": 88, - "prevSize": 16, - "code": 59857, - "name": "manAnalysis" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 209 - }, - { - "icon": { - "paths": [ - "M296.96 296.887c0 82.003-66.477 148.48-148.48 148.48s-148.48-66.477-148.48-148.48c0-82.003 66.477-148.48 148.48-148.48s148.48 66.477 148.48 148.48z", - "M551.936 807.79c0 82.003-66.477 148.48-148.48 148.48s-148.48-66.477-148.48-148.48c0-82.003 66.477-148.48 148.48-148.48s148.48 66.477 148.48 148.48z", - "M930.158 311.808c0 91.496-74.172 165.669-165.669 165.669s-165.669-74.172-165.669-165.669c0-91.496 74.172-165.669 165.669-165.669s165.669 74.172 165.669 165.669z", - "M1024 784.018c0 73.803-59.829 133.632-133.632 133.632s-133.632-59.829-133.632-133.632c0-73.803 59.829-133.632 133.632-133.632s133.632 59.829 133.632 133.632z", - "M732.286 362.027l55.324-19.275 166.956 479.199-55.324 19.275-166.956-479.199z", - "M812.421 225.214l46.39 35.785-460.695 597.214-46.39-35.785 460.695-597.214z", - "M112.914 300.476l52.061-26.868 293.504 568.704-52.061 26.868-293.504-568.704z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "drill" - ] - }, - "attrs": [], - "properties": { - "order": 508, - "id": 87, - "prevSize": 16, - "code": 59858, - "name": "drill" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 210 - }, - { - "icon": { - "paths": [ - "M977.774 586.313l-72.192-30.281c1.609-14.629 4.462-28.965 4.462-44.032s-2.779-29.257-4.462-43.886l72.338-30.427c39.058-16.457 56.759-64.293 39.278-106.862l-21.723-53.248c-17.335-42.715-63.195-63.854-102.254-47.397l-72.046 30.354c-14.263-18.066-29.696-34.743-46.738-50.030l33.134-71.534c17.993-38.766-0.658-86.235-41.765-105.911l-51.419-24.503c-41.106-19.675-89.015-4.096-107.081 34.67l-33.061 71.168c-20.407-3.291-40.96-6.363-62.318-6.363-21.285 0-41.838 3.072-62.245 6.363l-33.061-71.168c-18.066-38.766-66.048-54.345-107.081-34.67l-51.419 24.576c-41.106 19.675-59.831 67.145-41.765 105.838l33.134 71.461c-17.042 15.287-32.475 31.963-46.738 50.030l-71.973-30.281c-39.058-16.457-84.919 4.681-102.254 47.397l-21.797 53.248c-17.408 42.569 0.219 90.478 39.351 106.862l72.192 30.354c-1.536 14.702-4.315 28.891-4.315 43.959 0 15.141 2.779 29.403 4.389 44.105l-72.192 30.281c-39.131 16.603-56.832 64.219-39.497 106.935l21.87 53.175c17.335 42.569 63.269 63.781 102.327 47.397l71.899-30.208c14.263 17.993 29.696 34.743 46.665 50.030l-33.134 71.314c-18.066 38.693 0.658 86.309 41.765 105.838l51.419 24.722c41.106 19.675 89.088 4.023 107.081-34.816l32.987-71.095c20.407 3.291 40.96 6.363 62.245 6.363 21.358 0 41.911-3.072 62.391-6.363l32.987 71.095c17.993 38.766 65.975 54.418 107.081 34.816l51.419-24.722c41.179-19.602 59.758-67.145 41.765-105.838l-33.134-71.461c16.969-15.287 32.402-31.963 46.738-49.957l71.899 30.281c39.058 16.384 84.992-4.827 102.327-47.47l21.797-53.175c17.627-42.715-0.219-90.405-39.278-106.935zM512 761.71c-135.899 0-246.053-111.909-246.053-249.637 0-138.094 110.153-249.71 246.053-249.71 135.753 0 245.906 111.616 245.906 249.71 0 137.728-110.153 249.637-245.906 249.637z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "gear" - ] - }, - "attrs": [], - "properties": { - "order": 509, - "id": 86, - "prevSize": 16, - "code": 59859, - "name": "gear" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 211 - }, - { - "icon": { - "paths": [ - "M512 0c-282.317 0-512 229.683-512 512 0 282.33 229.683 512 512 512 282.33 0 512-229.67 512-512 0-282.317-229.67-512-512-512zM512 1011.379c-275.341 0-499.354-224.026-499.354-499.379 0-275.341 224.013-499.354 499.354-499.354 275.354 0 499.379 224.013 499.379 499.354-0 275.354-224.026 499.379-499.379 499.379z", - "M873.011 546.624c-15.206 0-29.312 4.71-40.973 12.723l-144.064-175.002c10.803-12.659 17.344-29.043 17.344-46.976 0-40-32.422-72.435-72.422-72.435s-72.448 32.435-72.448 72.435c0 22.144 9.971 41.946 25.638 55.219l-147.52 214.63c-12.48-10.202-28.416-16.32-45.786-16.32-19.917 0-37.952 8.051-51.059 21.069l-126.118-104.038c6.003-10.56 9.485-22.733 9.485-35.75 0-40-32.435-72.435-72.435-72.435s-72.435 32.435-72.435 72.435c0 40.013 32.435 72.435 72.435 72.435 22.374 0 42.368-10.15 55.654-26.099l125.184 103.27c-8.269 11.763-13.158 26.074-13.158 41.549 0 40.013 32.435 72.435 72.435 72.435s72.435-32.422 72.435-72.435c0-17.933-6.566-34.342-17.37-46.989l148.723-216.384c10.688 6.221 23.078 9.843 36.339 9.843 17.421 0 33.421-6.157 45.914-16.422l143.347 174.131c-13.312 13.133-21.594 31.373-21.594 51.558 0 40.013 32.435 72.435 72.435 72.435s72.422-32.422 72.422-72.435c0.013-40.013-32.41-72.448-72.41-72.448z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "process" - ] - }, - "attrs": [], - "properties": { - "order": 510, - "id": 85, - "prevSize": 16, - "code": 59860, - "name": "process" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 212 - }, - { - "icon": { - "paths": [ - "M950.857 950.857h-877.714v-877.714h482.011v-73.143h-555.154v1024h1024v-458.679h-73.143z", - "M526.19 277.285c-98.231 91.721-224.475 317.001-224.475 317.001s193.17-118.272 280.576-162.816c77.824-39.643 192.658-28.818 218.478-26.697l-0.658 184.466 223.89-308.297-224.402-280.942 0.585 183.077c-30.647 1.902-187.831 13.897-273.993 94.208z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "unacknownledge" - ] - }, - "attrs": [], - "properties": { - "order": 511, - "id": 84, - "prevSize": 16, - "code": 59861, - "name": "unacknownledge" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 213 - }, - { - "icon": { - "paths": [ - "M950.857 950.857h-877.714v-877.714h482.011v-73.143h-555.154v1024h1024v-458.679h-73.143z", - "M240.933 482.889l335.433 327.826 447.634-640-119.881-83.822-348.818 498.688-212.187-207.36z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "acknownledge" - ] - }, - "attrs": [], - "properties": { - "order": 512, - "id": 83, - "prevSize": 16, - "code": 59862, - "name": "acknownledge" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 214 - }, - { - "icon": { - "paths": [ - "M512.064 0c-282.304 0-512.064 229.696-512.064 512 0 282.368 229.76 512 512.064 512s511.936-229.632 511.936-512-229.632-512-511.936-512zM512.064 960c-246.976 0-448.064-201.024-448.064-448 0-247.040 201.088-448 448.064-448 247.040 0 447.936 201.024 447.936 448 0 246.912-200.896 448-447.936 448z", - "M615.872 427.072l-73.408-41.792 80.64-142.016c-72.576-19.648-152.192 10.624-191.168 79.232-36.224 63.744-26.048 140.608 18.944 193.28l-141.632 249.216c-15.616 27.52-6.016 62.528 21.504 78.144s62.528 6.016 78.144-21.504l141.568-249.28c68.352 11.776 139.712-18.88 175.872-82.56 38.976-68.544 24.384-152.384-29.76-204.864l-80.704 142.144z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "Operation" - ] - }, - "attrs": [], - "properties": { - "order": 513, - "id": 82, - "prevSize": 16, - "code": 59863, - "name": "Operation" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 215 - }, - { - "icon": { - "paths": [ - "M512 0c-282.317 0-512 229.683-512 512 0 282.33 229.683 512 512 512 282.33 0 512-229.67 512-512 0-282.317-229.67-512-512-512zM512 1011.366c-275.341 0-499.354-224.026-499.354-499.366s224.013-499.354 499.354-499.354 499.366 224.013 499.366 499.354-224.026 499.366-499.366 499.366z", - "M910.118 562.355c0-77.478-60.083-140.314-134.208-140.314-4.851 0-9.626 0.307-14.349 0.819-18.867-28.506-47.552-49.28-80.96-57.101-31.194-75.405-102.912-128.205-186.496-128.205-85.978 0-159.334 55.923-188.992 134.81-8.32-1.357-16.794-2.291-25.485-2.291-89.907 0-162.79 76.211-162.79 170.163 0 38.464 12.339 73.805 32.909 102.298-5.99 9.050-9.523 19.878-9.523 31.526 0 31.578 25.587 57.165 57.165 57.165h631.386c31.59 0 57.165-25.587 57.165-57.165 0-8.576-2.022-16.614-5.414-23.923 18.458-24.038 29.594-54.541 29.594-87.782z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "cloud" - ] - }, - "attrs": [], - "properties": { - "order": 514, - "id": 81, - "prevSize": 16, - "code": 59864, - "name": "cloud" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 216 - }, - { - "icon": { - "paths": [ - "M512 0c-282.317 0-512 229.683-512 512 0 282.33 229.683 512 512 512 282.33 0 512-229.67 512-512 0-282.317-229.67-512-512-512zM512 1011.366c-275.341 0-499.354-224.013-499.354-499.366 0-275.341 224.013-499.354 499.354-499.354 275.354 0 499.366 224.013 499.366 499.354 0 275.354-224.013 499.366-499.366 499.366z", - "M559.629 403.942h-364.096c-12.57 0-22.758 9.37-22.758 20.928v219.827c0 11.546 10.189 20.928 22.758 20.928h364.096c12.57 0 22.746-9.37 22.746-20.928v-219.827c0-11.558-10.176-20.928-22.746-20.928zM552.32 621.043c0 9.062-8.704 16.41-19.405 16.41h-310.682c-10.714 0-19.418-7.347-19.418-16.41v-172.506c0-9.062 8.704-16.422 19.418-16.422h310.682c10.701 0 19.405 7.36 19.405 16.422v172.506z", - "M377.587 675.584c-35.341 0-64 28.646-64 64h128c0-35.341-28.659-64-64-64z", - "M831.603 288h-182.4c-7.078 0-12.8 5.734-12.8 12.8v80h208v-80c0-7.066-5.734-12.8-12.8-12.8z", - "M636.403 393.6h208v67.2h-208v-67.2z", - "M636.403 726.4c0 7.078 5.722 12.8 12.8 12.8h182.4c7.078 0 12.8-5.722 12.8-12.8v-252.8h-208v252.8zM740.403 630.4c10.598 0 19.2 8.602 19.2 19.2s-8.602 19.2-19.2 19.2-19.2-8.602-19.2-19.2 8.602-19.2 19.2-19.2z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "computer" - ] - }, - "attrs": [], - "properties": { - "order": 515, - "id": 80, - "prevSize": 16, - "code": 59865, - "name": "computer" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 217 - }, - { - "icon": { - "paths": [ - "M512 64c-247.424 0-448 200.576-448 448 0 247.36 200.576 448 448 448 247.488 0 448-200.64 448-448 0-247.424-200.512-448-448-448zM444.032 908.032l41.6-365.696-253.632-6.336 300.032-432-33.344 321.472 222.4 20.864-277.056 461.696z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "alarm" - ] - }, - "attrs": [], - "properties": { - "order": 516, - "id": 79, - "prevSize": 16, - "code": 59866, - "name": "alarm" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 218 - }, - { - "icon": { - "paths": [ - "M225.984 578.688l290.688 293.312 297.344-293.312-188.992-0.064c-1.728-31.616 9.28-106.688-41.024-253.632-53.312-155.648-242.688-310.336-242.688-310.336s66.688 154.688 90.688 322.112c15.552 108.48 5.312 205.312-17.472 242.88l-188.544-0.96z", - "M771.84 62.016v64h178.176v819.968h-876.032v-819.968h138.56v-64h-202.56v947.968h1004.032v-947.968z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "import" - ] - }, - "attrs": [], - "properties": { - "order": 517, - "id": 78, - "prevSize": 16, - "code": 59867, - "name": "import" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 219 - }, - { - "icon": { - "paths": [ - "M432 549.952c-24 167.36-90.688 322.048-90.688 322.048s189.312-154.688 242.688-310.336c50.304-146.88 39.296-222.016 41.024-253.632h188.992l-297.344-293.376-290.688 293.376 188.48-0.96c22.848 37.568 33.088 134.4 17.536 242.88z", - "M771.84 62.016v64h178.176v819.968h-876.032v-819.968h138.56v-64h-202.56v947.968h1004.032v-947.968z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "export" - ] - }, - "attrs": [], - "properties": { - "order": 518, - "id": 77, - "prevSize": 16, - "code": 59868, - "name": "export" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 220 - }, - { - "icon": { - "paths": [ - "M512-0.064c-282.304 0-512 229.696-512 512s229.696 512 512 512 512-229.696 512-512-229.696-512-512-512zM512 959.936c-247.040 0-448-201.024-448-448 0-247.040 200.96-448 448-448 246.976 0 448 200.96 448 448 0 246.976-201.024 448-448 448z", - "M786.816 451.648c0 61.312-56.96 111.040-127.040 111.040-70.208 0-127.168-49.728-127.168-111.040 0-6.656 0.96-12.992 2.24-19.328h-43.584c1.28 6.4 2.24 12.736 2.24 19.328 0 61.312-56.96 111.040-127.040 111.040-70.208 0-127.104-49.728-127.104-111.040 0-6.656 0.96-12.992 2.24-19.328h-42.56l67.84 310.656c0 0 101.952-29.76 248.384-29.76 130.368 0 248.64 29.76 248.64 29.76l67.648-310.656h-47.040c1.216 6.336 2.304 12.736 2.304 19.328z", - "M581.76 364.928c0 37.22-30.172 67.392-67.392 67.392s-67.392-30.172-67.392-67.392c0-37.22 30.172-67.392 67.392-67.392s67.392 30.172 67.392 67.392z", - "M273.92 375.872c0 31.175-25.273 56.448-56.448 56.448s-56.448-25.273-56.448-56.448c0-31.175 25.273-56.448 56.448-56.448s56.448 25.273 56.448 56.448z", - "M863.040 375.872c0 31.175-25.273 56.448-56.448 56.448s-56.448-25.273-56.448-56.448c0-31.175 25.273-56.448 56.448-56.448s56.448 25.273 56.448 56.448z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "Admin" - ] - }, - "attrs": [], - "properties": { - "order": 519, - "id": 76, - "prevSize": 16, - "code": 59869, - "name": "Admin" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 221 - }, - { - "icon": { - "paths": [ - "M512 0c-282.77 0-512 229.229-512 512s229.23 512 512 512c282.77 0 512-229.229 512-512s-229.23-512-512-512zM770 302l94 92-378 368-320-202 136-102 146 142 322-298z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "allSelected" - ] - }, - "attrs": [], - "properties": { - "order": 520, - "id": 75, - "prevSize": 16, - "code": 59870, - "name": "allSelected" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 222 - }, - { - "icon": { - "paths": [ - "M311.382 213.893l512 314.202-512 325.798z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "angleRight" - ] - }, - "attrs": [], - "properties": { - "order": 521, - "id": 74, - "prevSize": 16, - "code": 59871, - "name": "angleRight" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 223 - }, - { - "icon": { - "paths": [ - "M480-0l-480 512 480 512v-342.551h488c30.527 0 56-28.108 56-61.793v-218.354c0-33.685-25.473-61.793-56-61.793h-488z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "arrowLeft" - ] - }, - "attrs": [], - "properties": { - "order": 522, - "id": 73, - "prevSize": 16, - "code": 59872, - "name": "arrowLeft" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 224 - }, - { - "icon": { - "paths": [ - "M297.119 0l-297.119 317.333 79.585 85.333 376.705-402.667h-159.171zM567.71 5.333l-474.86 509.333 474.86 509.333v-341.333h400.58c30.278 0 55.71-27.75 55.71-61.333v-216c0-33.526-25.432-61.333-55.71-61.333h-400.58v-338.667zM652.601 146.667v109.333h363.44v-48c0-33.526-25.432-61.333-55.71-61.333h-307.731z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "arrowLeftAll" - ] - }, - "attrs": [], - "properties": { - "order": 523, - "id": 72, - "prevSize": 16, - "code": 59873, - "name": "arrowLeftAll" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 225 - }, - { - "icon": { - "paths": [ - "M544-0l480 512-480 512v-342.551h-488c-30.527 0-56-28.108-56-61.793v-218.354c0-33.685 25.473-61.793 56-61.793h488z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "arrowRight" - ] - }, - "attrs": [], - "properties": { - "order": 524, - "id": 71, - "prevSize": 16, - "code": 59874, - "name": "arrowRight" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 226 - }, - { - "icon": { - "paths": [ - "M726.881 0l297.119 317.333-79.585 85.333-376.705-402.667h159.171zM456.29 5.333l474.86 509.333-474.86 509.333v-341.333h-400.58c-30.278 0-55.71-27.75-55.71-61.333v-216c0-33.526 25.432-61.333 55.71-61.333h400.58v-338.667zM371.399 146.667v109.333h-363.44v-48c0-33.526 25.432-61.333 55.71-61.333h307.731z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "arrowRightAll" - ] - }, - "attrs": [], - "properties": { - "order": 525, - "id": 70, - "prevSize": 16, - "code": 59875, - "name": "arrowRightAll" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 227 - }, - { - "icon": { - "paths": [ - "M508 0c-31.119 0-58 24.881-58 56v46c-69.831 10.816-133.646 38.889-188 78l-42-40c-11.002-11.002-25.641-18-40-18s-26.998 6.998-38 18l-18 16c-22.005 22.005-22.005 57.995 0 80l42 40c-34.941 48.538-61.038 103.432-72 164h-36c-31.119 0-58 24.881-58 56v22c0 31.119 26.881 58 58 58h36c12.292 76.335 44.912 147.337 94 204l-34 36c-22.005 22.005-22.005 55.995 0 78l16 18c22.005 22.005 57.995 22.005 80 0l44-46c47.099 28.042 99.181 47.199 156 56v46c0 31.119 26.881 56 58 56h22c31.119 0 56-24.881 56-56v-46c27.753-4.228 54.286-11.152 80-20l-104-106c-14.44 2.229-28.936 4-44 4-159.058 0-288-128.942-288-288s128.942-288 288-288c159.058 0 288 128.942 288 288 0 47.853-13.349 92.29-34 132l104 98c33.635-49.218 58.247-105.432 68-166h22c31.119 0 56-26.881 56-58v-22c0-31.119-24.881-56-56-56h-22c-10.615-58.652-34.805-112.539-68-160l36-36c22.005-22.005 22.005-57.995 0-80l-16-16c-11.002-11.002-25.641-16-40-16s-28.998 4.998-40 16l-36 36c-55.735-41.399-121.471-70.951-194-82v-46c0-31.119-24.881-56-56-56h-22zM520 292c-126.678 0-230 103.322-230 230s103.322 228 230 228c29.501 0 58.095-5.855 84-16l210 210c22.005 22.005 55.995 22.005 78 0l10-10c22.005-22.005 22.005-55.995 0-78l-198-198c28.25-38.126 46-84.904 46-136 0-126.678-103.322-230-230-230zM520 400c67.275 0 122 54.725 122 122s-54.725 122-122 122c-67.275 0-122-54.725-122-122s54.725-122 122-122z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "autoFind" - ] - }, - "attrs": [], - "properties": { - "order": 526, - "id": 69, - "prevSize": 16, - "code": 59876, - "name": "autoFind" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 228 - }, - { - "icon": { - "paths": [ - "M674.24 1010.112l-481.28-481.344 485.696-485.824 45.312 45.248-440.512 440.576 436.032 436.096z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "back" - ] - }, - "attrs": [], - "properties": { - "order": 527, - "id": 68, - "prevSize": 16, - "code": 59877, - "name": "back" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 229 - }, - { - "icon": { - "paths": [ - "M366 0v364h-180v300h184v-52h52v52h40v-300h92v300h40v-52h54v52h184v-300h-174v-364h-292zM0 658v366h366v-152h-132v-92h-90v-122h-144zM880 658v122h-90v92h-132v152h366v-366h-144zM432 872v152h160v-152h-160z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "ball" - ] - }, - "attrs": [], - "properties": { - "order": 528, - "id": 67, - "prevSize": 16, - "code": 59878, - "name": "ball" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 230 - }, - { - "icon": { - "paths": [ - "M448.031 21.984v110.003c-111.249 27.552-192 127.68-192 248v93.997c-14.104 170.784-120.996 270.701-224 378.003 4.723 0 9.21-1.984 14-1.984h282c-1.498 8.525-1.997 17.030-1.997 25.997 0 82.726 65.275 148 148 148h34c82.725 0 150-65.274 150-148 0-8.986-2.49-17.459-4-25.997h320c4.787 0 9.277 1.728 14 1.984-103.004-107.302-209.896-207.219-224-378.003v-93.997c0-120.32-80.751-220.448-192-248v-110.003h-124zM396.031 849.984h32c-11.965 12.403-20 28.371-20 46.003 0 40.346 37.391 73.997 84 73.997-10.154 4.16-20.329 8-32 8-46.609 0-84-34.176-84-77.997 0-19.418 7.773-36.070 20-50.003z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "bell" - ] - }, - "attrs": [], - "properties": { - "order": 529, - "id": 66, - "prevSize": 16, - "code": 59879, - "name": "bell" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 231 - }, - { - "icon": { - "paths": [ - "M509.091 1.707c-134.448 0-242.544 108.704-242.544 244s108.096 246 242.544 246c134.448 0 242.544-110.704 242.544-246s-108.096-244-242.544-244zM769.528 447.707c-140.541 0-254.472 114.618-254.472 256s113.931 256 254.472 256c140.541 0 254.472-114.618 254.472-256s-113.931-256-254.472-256zM306.308 503.707c-346.855 195.91-302.524 531.61-306.162 520h685.883l-1.988-6c-135.113-23.090-238.568-141.499-238.568-284 0-50.008 13.499-97.017 35.785-138-72.082-7.589-136.306-42.513-174.95-92zM610.482 633.707h318.091v128h-318.091v-128z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "blackList" - ] - }, - "attrs": [], - "properties": { - "order": 530, - "id": 65, - "prevSize": 16, - "code": 59880, - "name": "blackList" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 232 - }, - { - "icon": { - "paths": [ - "M512 0c-282.77 0-512 229.23-512 512s229.23 512 512 512c282.77 0 512-229.23 512-512s-229.23-512-512-512zM530 128l22 124-72 6-22-122 72-8zM276 170c70.131 0 128 57.239 128 130 0 15.422-1.298 30.22-6 44l86 90-66 70-86-86c-16.468 8.112-36.565 12-56 12-70.131 0-122-57.267-122-130 0-72.761 51.869-130 122-130zM760 210l54 82-162 116-54-86 162-112zM888 442l8 74-118 22-8-74 118-22zM246 482l8 74-118 20-8-72 118-22zM598 534l62 64c16.654-8.376 32.276-16 52-16 70.131 0 130 63.253 130 136 0 72.752-59.869 130-130 130s-124-57.248-124-130c0-15.163 5.459-32.45 10-46l-68-66 68-72zM372 612l54 90-166 108-50-82 162-116zM540 770l18 118-72 8-18-124 72-2z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "breakLink" - ] - }, - "attrs": [], - "properties": { - "order": 531, - "id": 64, - "prevSize": 16, - "code": 59881, - "name": "breakLink" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 233 - }, - { - "icon": { - "paths": [ - "M512 0c-282.77 0-512 229.229-512 512s229.23 512 512 512c282.77 0 512-229.229 512-512s-229.23-512-512-512zM128 314.003l180 104c61.902-49.734 140.551-80 226-80 198.617 0 360 163.379 360 361.997 0 2.944 0.070 5.056 0 8l-90 1.984c0.134-3.456 0-6.528 0-10.003 0-148.96-121.038-272-270-272-51.469 0-98.972 14.771-140 40l184 106.003-356 93.997-94-353.978z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "cancle" - ] - }, - "attrs": [], - "properties": { - "order": 532, - "id": 63, - "prevSize": 16, - "code": 59882, - "name": "cancle" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 234 - }, - { - "icon": { - "paths": [ - "M1024 512.002c0 282.77-229.23 512-512 512s-512-229.23-512-512c0-282.77 229.23-512 512-512s512 229.23 512 512z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "circle" - ] - }, - "attrs": [], - "properties": { - "order": 533, - "id": 62, - "prevSize": 16, - "code": 59883, - "name": "circle" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 235 - }, - { - "icon": { - "paths": [ - "M-0 5.333v341.333h122.667v445.333h362.667c17.783 132.745 129.128 234.667 266.667 234.667 149.839 0 272-122.278 272-272s-122.161-269.333-272-269.333c-133.011 0-240.954 95.465-264 221.333h-280v-360h133.333v-341.333h-341.333zM712 586.667h85.333v128h128v85.333h-128v128h-85.333v-128h-128v-85.333h128v-128z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "closeTree" - ] - }, - "attrs": [], - "properties": { - "order": 534, - "id": 61, - "prevSize": 16, - "code": 59884, - "name": "closeTree" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 236 - }, - { - "icon": { - "paths": [ - "M0 0v1024h400l-6-238 158-260-146-188-278 392v-602h768v120l128 74v-322h-1024zM796 290l-266 462 166 96 266-460-166-98zM1024 426l-8 16-290 534-58 48h356v-598zM486 828l14 166 152-70-166-96z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "configmap" - ] - }, - "attrs": [], - "properties": { - "order": 535, - "id": 60, - "prevSize": 16, - "code": 59885, - "name": "configmap" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 237 - }, - { - "icon": { - "paths": [ - "M135.461 125.513h789.211v73.143h-789.211v-73.143z", - "M430.373 61.147v107.666h199.387v-107.666h-199.387z", - "M286.281 463.36h99.035v395.045h-99.035v-395.045z", - "M480.549 463.36h99.035v395.045h-99.035v-395.045z", - "M674.816 463.36h99.035v395.045h-99.035v-395.045z", - "M922.697 999.863h-785.335v-714.606h785.335v714.606zM210.505 926.72h639.049v-568.32h-639.049v568.32z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "delete" - ] - }, - "attrs": [], - "properties": { - "order": 536, - "id": 59, - "prevSize": 16, - "code": 59886, - "name": "delete" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 238 - }, - { - "icon": { - "paths": [ - "M211.587 32l-205.602 224h429.166l-223.564-224zM0 304v720h1024v-496h-596.833v-224h-427.167zM77.845 406.003h95.813v96h-95.813v-96zM255.502 406.003h95.813v96h-95.813v-96zM77.845 614.003h95.813v96h-95.813v-96zM255.502 614.003h95.813v96h-95.813v-96zM680.67 614.003h95.813v96h-95.813v-96zM858.326 614.003h95.813v96h-95.813v-96zM501.020 620.019h63.875v296h-63.875v-296zM75.852 820.019h95.813v96h-95.813v-96zM253.502 820.019h95.813v96h-95.813v-96zM680.67 820.019h95.813v96h-95.813v-96zM858.326 820.019h95.813v96h-95.813v-96z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "department" - ] - }, - "attrs": [], - "properties": { - "order": 537, - "id": 58, - "prevSize": 16, - "code": 59887, - "name": "department" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 239 - }, - { - "icon": { - "paths": [ - "M0 45.333v170.667h1024v-170.667h-1024zM0 301.333v170.667h1024v-170.667h-1024zM0 557.333v170.667h1024v-170.667h-1024zM0 813.333v170.667h768v-170.667h-768z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "detail" - ] - }, - "attrs": [], - "properties": { - "order": 538, - "id": 57, - "prevSize": 16, - "code": 59888, - "name": "detail" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 240 - }, - { - "icon": { - "paths": [ - "M0 0v1024h862.766v-292h160l-192-192-190 192h158v228h-366.766v-896h366.503v204h-158l190 192 192-192h-160v-268h-560.503zM72 214h290v64h-290zM72 474h290v64h-290zM72 726h290v64h-290z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "displaySwitch" - ] - }, - "attrs": [], - "properties": { - "order": 539, - "id": 56, - "prevSize": 16, - "code": 59889, - "name": "displaySwitch" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 241 - }, - { - "icon": { - "paths": [ - "M120 0v1024h812l20-822-160-202h-672zM216 96h516l124 164-14 668h-626v-832zM298 178v140h146v-140h-146zM524 234v64h252v-64h-252zM298 386v64h478v-64h-478zM298 562v64h478v-64h-478zM298 738v64h478v-64h-478z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "file" - ] - }, - "attrs": [], - "properties": { - "order": 540, - "id": 55, - "prevSize": 16, - "code": 59890, - "name": "file" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 242 - }, - { - "icon": { - "paths": [ - "M0.006 0l0.497 77.36 415.5 392.907v329.797l192 223.936v-551.698l416.664-388.835-0.668-83.467h-1024zM254.006 101.789h514v44.787l-256 242.258-256-246.33-1.997-40.716z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "filter" - ] - }, - "attrs": [], - "properties": { - "order": 541, - "id": 54, - "prevSize": 16, - "code": 59891, - "name": "filter" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 243 - }, - { - "icon": { - "paths": [ - "M278-4c-16.425 0-30 13.575-30 30v132c0 16.425 13.575 30 30 30h132c16.425 0 30-13.575 30-30v-132c0-16.425-13.575-30-30-30h-132zM598-2c-16.425 0-30 13.575-30 30v132c0 16.425 13.575 30 30 30h132c16.425 0 30-13.575 30-30v-132c0-16.425-13.575-30-30-30h-132zM440 250l-270 2-114 274v368h208l30-30v-272l126-2c12.464-1.292 21.634-18.792 20-40v-300zM568 252v300c-1.634 21.208 7.536 38.708 20 40l126 2v272l30 30h208v-368l-114-274-270-2zM56 960v64h238v-64h-238zM714 962v64h238v-64h-238z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "find" - ] - }, - "attrs": [], - "properties": { - "order": 542, - "id": 53, - "prevSize": 16, - "code": 59892, - "name": "find" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 244 - }, - { - "icon": { - "paths": [ - "M96.8 136.576h200.277c43.173-0.136 53.665 12.675 68.962 42.158 0 0 38.028 112.952 79.827 152.074 13.079 12.242 22.734 21.78 49.133 21.78h432.201c53.627 0 96.8 43.571 96.8 97.694v486.13c0 54.122-43.173 97.694-96.8 97.694h-830.399c-53.627 0-96.8-43.571-96.8-97.694v-702.143c0-54.122 43.173-97.694 96.8-97.694z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "folder" - ] - }, - "attrs": [], - "properties": { - "order": 543, - "id": 52, - "prevSize": 16, - "code": 59893, - "name": "folder" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 245 - }, - { - "icon": { - "paths": [ - "M707.2 952.256h-675.52v-870.912h675.52v64h-611.52v742.912h611.52z", - "M737.92 798.272l-45.248-45.248 235.84-235.776-236.544-236.608 45.248-45.248 281.792 281.856z", - "M226.24 484.8h713.664v64h-713.664v-64z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "forceOut" - ] - }, - "attrs": [], - "properties": { - "order": 544, - "id": 51, - "prevSize": 16, - "code": 59894, - "name": "forceOut" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 246 - }, - { - "icon": { - "paths": [ - "M512 0l-224 256h448l-224-256zM256 288l-256 224 256 224v-448zM768 288v448l256-224-256-224zM288 768l224 256 224-256h-448z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "fullScreen" - ] - }, - "attrs": [], - "properties": { - "order": 545, - "id": 50, - "prevSize": 16, - "code": 59895, - "name": "fullScreen" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 247 - }, - { - "icon": { - "paths": [ - "M823.104 510.912c0 89.472-37.376 169.6-96.576 226.688l132.096 132.096c92.096-91.072 149.44-218.112 149.44-358.784v-0.064l-184.96 0.064z", - "M795.392 385.216h195.136c-49.024-191.36-205.312-338.56-400.896-368.896v191.936c92.736 23.616 167.808 89.984 205.76 176.96z", - "M611.392 806.656c-30.464 10.688-62.656 17.344-96.768 17.344-170.304 0-308.352-140.096-308.352-313.152 0-154.752 110.848-282.56 256.256-307.776v-190.272c-248.064 26.432-441.408 239.36-441.408 498.112 0 276.608 220.992 500.864 493.504 500.864 86.72 0 167.424-23.744 238.208-63.68l-141.44-141.44z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "Graphical" - ] - }, - "attrs": [], - "properties": { - "order": 546, - "id": 49, - "prevSize": 16, - "code": 59896, - "name": "Graphical" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 248 - }, - { - "icon": { - "paths": [ - "M512 0c-282.77 0-512 229.23-512 512s229.23 512 512 512c282.77 0 512-229.23 512-512s-229.23-512-512-512zM508 154c46.383-1.856 85.454 3.072 114 14 28.545 10.93 51.941 26.114 74 44 22.058 17.888 38.725 39.581 48 64 9.273 24.42 13.365 47.981 12 74-1.804 25.729-7.361 51.469-18 76-10.64 24.532-25.936 48.956-46 72-20.065 23.044-44.056 45.493-72 68l-48 38v96h-140v-144c24.721-18.659 47.471-36.070 68-52s40.81-33.788 60-52c19.19-18.211 34.589-37.048 44-58s12.13-42.057 10-60c-3.115-23.536-12.211-39.974-28-52-15.789-12.025-34.516-20.198-56-22-21.485-1.8-39.222 3.978-54 14-13.986 9.106-22.307 19.262-24 30l-6 26-8 4-134 6c1.366-25.281 5.356-50.331 10-72 4.644-21.667 16.939-41.396 38-60 21.061-18.602 46.109-32.135 74-40 27.89-7.863 54.246-12.545 82-14zM428 800h148v94h-148v-94z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "helpTip" - ] - }, - "attrs": [], - "properties": { - "order": 547, - "id": 48, - "prevSize": 16, - "code": 59897, - "name": "helpTip" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 249 - }, - { - "icon": { - "paths": [ - "M368 0v596h-234l364 360h-498v70h1024v-70h-522l388-360h-234v-596h-288z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "hide" - ] - }, - "attrs": [], - "properties": { - "order": 548, - "id": 47, - "prevSize": 16, - "code": 59898, - "name": "hide" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 250 - }, - { - "icon": { - "paths": [ - "M167.615 186.842v487.328l34 73.35h572.385l38-75.226v-33.856h26c104.401 0 188-78.618 188-176.794 0-98.182-83.599-176.8-188-176.8h-26v-98.003zM812 346.912h14c66.898 0 122 51.821 122 114.733 0 62.906-55.102 112.845-122 112.845h-14zM0 843.443l108 180.557h834l82-180.557z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "history" - ] - }, - "attrs": [], - "properties": { - "order": 549, - "id": 46, - "prevSize": 16, - "code": 59899, - "name": "history" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 251 - }, - { - "icon": { - "paths": [ - "M212 6c-86.27 49.558-144 133.862-144 230 0 97.724 59.409 182.82 148 232l24-52c-65.834-40.067-108-105.085-108-180s42.166-141.933 108-182l-28-48zM848 6l-28 48c65.834 40.067 108 107.085 108 182s-42.166 139.933-108 180l24 52c88.591-49.18 148-134.276 148-232 0-96.138-57.73-180.442-144-230zM318 70c-57.742 35.475-98 97.182-98 166 0 69.953 40.705 130.796 100 166l16-38c-44.064-28.681-72-74.374-72-128s27.936-101.319 72-130l-18-36zM742 70l-18 36c44.064 28.681 72 76.374 72 130s-27.936 99.319-72 128l16 38c59.295-35.204 100-96.047 100-166 0-68.818-40.258-130.525-98-166zM406 140c-33.569 20.623-56 55.993-56 96 0 40.667 23.529 75.534 58 96l10-22c-25.617-16.673-42-42.824-42-74s16.383-59.327 42-76l-12-20zM654 140l-12 20c25.617 16.673 42 44.824 42 76s-16.383 57.327-42 74l10 22c34.471-20.466 58-55.333 58-96 0-40.007-22.431-75.377-56-96zM480 194l-28 830h156l-28-830h-100z", - "M218.989 560.393h121.908v463.389h-121.908v-463.389z", - "M88 655.783v368h152v-368h-152zM114 671.783h26v346h-26v-346z", - "M-4.535 844.191h99.537v179.809h-99.537v-179.809z", - "M592.5 803.154h82.665v223.6h-82.665v-223.6z", - "M662.092 580.19h78.332v446.564h-78.332v-446.564z", - "M738 706v318h94v-318h-94zM758 734h20v262h-20v-262z", - "M808 816v208h174v-208h-174zM864 860h82v146h-82v-146z", - "M967.595 914.101h68.362v109.899h-68.362v-109.899z", - "M331.201 818.275v208h143.859v-208h-143.859zM377.501 862.275h67.796v146h-67.796v-146z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "launchingTower" - ] - }, - "attrs": [], - "properties": { - "order": 550, - "id": 45, - "prevSize": 16, - "code": 59900, - "name": "launchingTower" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 252 - }, - { - "icon": { - "paths": [ - "M0 0v160h64v864h896v-864h64v-160h-1024zM192 258h640v640h-640v-640zM400 330l-172 174 172 174v-114h112v-124h-112v-110zM624 516v110h-112v124h112v114l172-174-172-174z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "layout" - ] - }, - "attrs": [], - "properties": { - "order": 551, - "id": 44, - "prevSize": 16, - "code": 59901, - "name": "layout" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 253 - }, - { - "icon": { - "paths": [ - "M1024 0v1024h-736.508v-1024zM168.136 0v1024h-168.136v-1024zM635.932 330l-182 182 182 182v-122h232v-120h-232z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "legendhide" - ] - }, - "attrs": [], - "properties": { - "order": 552, - "id": 43, - "prevSize": 16, - "code": 59902, - "name": "legendhide" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 254 - }, - { - "icon": { - "paths": [ - "M0 0v1024h602v-1024h-602zM704 0v1024h320v-1024h-320zM778 136h172v86h-172v-86zM336 330l182 182-182 182v-122h-232v-120h232v-122zM778 376h172v86h-172v-86zM778 616h172v86h-172v-86zM778 854h172v88h-172v-88z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "legendshow" - ] - }, - "attrs": [], - "properties": { - "order": 553, - "id": 42, - "prevSize": 16, - "code": 59903, - "name": "legendshow" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 255 - }, - { - "icon": { - "paths": [ - "M174 0c-95.761 0-174 78.239-174 174s78.239 172 174 172c30.236 0 57.252-6.394 82-20l442 442c-13.606 24.748-20 51.764-20 82 0 95.761 76.239 174 172 174s174-78.239 174-174c0-95.761-78.239-172-174-172-30.57 0-59.061 6.113-84 20l-442-438c14.951-25.628 22-54.19 22-86 0-95.761-76.239-174-172-174zM174 86c47.881 0 86 40.119 86 88s-38.119 86-86 86c-47.881 0-88-38.119-88-86s40.119-88 88-88zM850 764c47.881 0 88 38.119 88 86s-40.119 88-88 88c-47.881 0-86-40.119-86-88s38.119-86 86-86z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "link" - ] - }, - "attrs": [], - "properties": { - "order": 554, - "id": 41, - "prevSize": 16, - "code": 59904, - "name": "link" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 256 - }, - { - "icon": { - "paths": [ - "M510 8c-203.422 0-367.735 153.347-370 344h92c2.507-130.677 125.564-236 278-236s277.452 105.323 280 236h92c-2.292-190.653-168.578-344-372-344zM156 416c-56.19 0-102 43.81-102 100v406c0 56.19 45.81 102 102 102h710c56.19 0 102-45.81 102-102v-406c0-56.19-45.81-100-102-100h-710zM510 586c37.842 0 68 30.158 68 68 0 20.924-9.216 41.432-24 54v170h-90v-170c-14.784-12.568-24-33.076-24-54 0-37.842 32.158-68 70-68z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "lock" - ] - }, - "attrs": [], - "properties": { - "order": 555, - "id": 40, - "prevSize": 16, - "code": 59905, - "name": "lock" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 257 - }, - { - "icon": { - "paths": [ - "M839.68 794.944l-469.12-469.12 325.824-325.824h-696.384v696.384l325.312-325.312 469.12 469.12z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "ltArrow" - ] - }, - "attrs": [], - "properties": { - "order": 556, - "id": 39, - "prevSize": 16, - "code": 59906, - "name": "ltArrow" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 258 - }, - { - "icon": { - "paths": [ - "M384 0c-211.661 0-384 172.339-384 384s172.339 382 384 382c72.935 0 139.963-20.633 198-56 3.407 7.108 8.094 14.094 14 20l270 272c27.919 27.919 74.081 27.919 102 0l34-36c27.919-27.919 27.919-72.081 0-100l-272-272c-5.848-5.848-10.97-10.602-18-14 34.492-57.525 54-124.046 54-196 0-211.661-170.339-384-382-384zM384 104c153.936 0 278 126.064 278 280s-124.064 278-278 278c-153.936 0-280-124.064-280-278s126.064-280 280-280z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "Magnifier" - ] - }, - "attrs": [], - "properties": { - "order": 557, - "id": 38, - "prevSize": 16, - "code": 59907, - "name": "Magnifier" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 259 - }, - { - "icon": { - "paths": [ - "M512.064 0c-282.368 0-512.064 229.632-512.064 512 0 282.432 229.696 512 512.064 512 282.304 0 511.936-229.632 511.936-512s-229.632-512-511.936-512zM512.064 960c-247.040 0-448.064-201.024-448.064-448 0-247.040 201.024-448 448.064-448 246.976 0 447.936 200.96 447.936 448 0 246.976-200.96 448-447.936 448z", - "M734.976 372.224l20.672-55.808-49.408-32.896-3.84-59.392-58.56-9.856-27.52-52.672-57.728 14.72-46.592-36.864-46.656 36.864-57.6-14.72-27.52 52.672-58.688 9.92-3.712 59.392-49.536 32.832 20.672 55.808-31.808 50.24 41.536 42.496-8.64 58.816 55.296 21.824 13.952 49.92-88.64 237.504 91.648-25.152 46.656 76.736 97.92-262.272 5.12-2.56 3.264 1.6 95.488 255.872 46.656-76.608 91.648 25.152-84.992-227.776 14.656-52.416 55.296-21.824-8.704-58.816 41.6-42.496-31.936-50.24zM626.176 538.88l-105.024 39.104c-3.072 0.256-6.016 1.024-9.152 1.024-19.968 0-38.784-4.032-56.768-9.728l-21.44-8.064c-63.552-29.568-107.904-93.568-107.904-168.32 0-102.848 83.328-186.176 186.112-186.176 102.848 0 186.112 83.328 186.112 186.176 0 59.52-28.416 111.936-71.936 145.984z", - "M669.12 392.832c0 86.775-70.345 157.12-157.12 157.12s-157.12-70.345-157.12-157.12c0-86.775 70.345-157.12 157.12-157.12s157.12 70.345 157.12 157.12z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "Maintain" - ] - }, - "attrs": [], - "properties": { - "order": 558, - "id": 37, - "prevSize": 16, - "code": 59908, - "name": "Maintain" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 260 - }, - { - "icon": { - "paths": [ - "M177.898 320v704h704v-704zM273.457 599.763h512.883v326.237h-512.883z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "maximize" - ] - }, - "attrs": [], - "properties": { - "order": 559, - "id": 36, - "prevSize": 16, - "code": 59909, - "name": "maximize" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 261 - }, - { - "icon": { - "paths": [ - "M634.117 13.088c-39.104-22.577-87.176-9.696-109.753 29.408l-9.772 16.925 330.977 191.089 9.772-16.925c22.577-39.104 9.696-87.176-29.408-109.752l-191.816-110.745zM492.879 97.032l-300.749 520.912 330.977 191.089 300.749-520.912-330.976-191.089zM519.824 215.392l60.178 34.744-210.633 364.826-60.178-34.744 210.633-364.826zM647.702 289.222l60.178 34.744-210.633 364.826-60.178-34.743 210.633-364.826zM148.7 693.166l28.686 332.494 302.291-141.404-330.977-191.089z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "modify" - ] - }, - "attrs": [], - "properties": { - "order": 560, - "id": 35, - "prevSize": 16, - "code": 59910, - "name": "modify" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 262 - }, - { - "icon": { - "paths": [ - "M508.608 9.6c-282.368 0-512.064 229.696-512.064 512 0 282.432 229.696 512 512.064 512 282.304 0 511.936-229.632 512-512 0-282.368-229.632-512-512-512zM508.608 969.6c-247.040 0-448.064-201.024-448.064-448s201.024-448 448.064-448 447.936 201.024 448 448c0 246.976-200.96 448-448 448z", - "M610.048 709.504h-203.008v33.856h-168.96v64h540.928v-64h-168.96z", - "M206.080 666.624h604.928v-429.312h-604.928v429.312zM749.056 617.024h-68.032v-28.032h68.032v28.032zM270.080 301.312h476.928v250.688h-476.928v-250.688z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "Monitor" - ] - }, - "attrs": [], - "properties": { - "order": 561, - "id": 34, - "prevSize": 16, - "code": 59911, - "name": "Monitor" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 263 - }, - { - "icon": { - "paths": [ - "M497.019 10c-30.138 0-54 30.398-54 69.728v354.615l-62 15.938h-6v-241.058c0-39.33-23.862-71.72-54-71.72s-54 32.39-54 71.72v316.763l-44 63.751-10 13.946-100-99.611c-27.919-27.811-70.929-28.958-96-3.984s-21.919 67.816 6 95.626l212 209.183c31.677 130.522 169.028 229.105 332 229.105 175.44 0 317.928-115.646 334-260.981 2.746-8.499 4-16.066 4-25.899v-414.381c0-39.33-23.862-71.72-54-71.72s-56 32.39-56 71.72v153.401l-34-9.961-32-17.93v-318.755c0-39.33-25.862-71.72-56-71.72s-54 32.39-54 71.72v288.872l-44-1.992-24-3.984v-342.661c0-39.33-23.862-69.728-54-69.728z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "move" - ] - }, - "attrs": [], - "properties": { - "order": 562, - "id": 33, - "prevSize": 16, - "code": 59912, - "name": "move" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 264 - }, - { - "icon": { - "paths": [ - "M512 0c-282.77 0-512 229.23-512 512s229.23 512 512 512c282.77 0 512-229.23 512-512s-229.23-512-512-512zM488 174h48c31.119 0 56 24.881 56 56v202h204c31.119 0 56 24.881 56 56v48c0 31.119-24.881 56-56 56h-204v204c0 31.119-24.881 56-56 56h-48c-31.119 0-56-24.881-56-56v-204h-204c-31.119 0-56-24.881-56-56v-48c0-31.119 24.881-56 56-56h204v-202c0-31.119 24.881-56 56-56z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "new" - ] - }, - "attrs": [], - "properties": { - "order": 563, - "id": 32, - "prevSize": 16, - "code": 59913, - "name": "new" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 265 - }, - { - "icon": { - "paths": [ - "M370 0v100h132v322h-132v98h-170v504h800v-810l-194-214h-436zM150 56v132h-132v128h132v132h128v-132h132v-128h-132v-132h-128zM704 504l204 204-198 198-2-132h-244v-156h242l-2-114zM352 616h40v158h-40v-158z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "newShortcut" - ] - }, - "attrs": [], - "properties": { - "order": 564, - "id": 31, - "prevSize": 16, - "code": 59914, - "name": "newShortcut" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 266 - }, - { - "icon": { - "paths": [ - "M800 0v82l-284 6h-32v390h-342v-88h120v-262h-262v262h78v154h406v384h316v96h224v-224h-224v64h-252v-320h252v80h224v-224h-224v78h-252v-326l252-6v78h224v-224h-224zM880 80h64v64h-64v-64zM880 480h64v64h-64v-64zM880 880h64v64h-64v-64z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "openTree" - ] - }, - "attrs": [], - "properties": { - "order": 565, - "id": 30, - "prevSize": 16, - "code": 59915, - "name": "openTree" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 267 - }, - { - "icon": { - "paths": [ - "M448 0v320h576v-320h-576zM0 448v576h1024v-576h-1024z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "poNode" - ] - }, - "attrs": [], - "properties": { - "order": 566, - "id": 29, - "prevSize": 16, - "code": 59916, - "name": "poNode" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 268 - }, - { - "icon": { - "paths": [ - "M272 0v200h480v-200h-480zM98 112c-54.122 0-98 43.878-98 98v358c0 54.122 43.878 98 98 98h828c54.122 0 98-43.878 98-98v-358c0-54.122-43.878-98-98-98h-110v168h-608v-168h-110zM284 724v300h484v-300h-484zM330 786h364v52h-364v-52zM332 894h264v50h-264v-50z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "print" - ] - }, - "attrs": [], - "properties": { - "order": 567, - "id": 28, - "prevSize": 16, - "code": 59917, - "name": "print" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 269 - }, - { - "icon": { - "paths": [ - "M186.869 0v1024h640v-1024h-640zM304.869 134.003h404v133.997h-404v-133.997zM304.869 502.003h186v64h-186v-64zM304.869 732h186v64h-186v-64z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "product" - ] - }, - "attrs": [], - "properties": { - "order": 568, - "id": 27, - "prevSize": 16, - "code": 59918, - "name": "product" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 270 - }, - { - "icon": { - "paths": [ - "M184.32 229.056l469.12 469.12-325.824 325.824h696.384v-696.384l-325.312 325.312-469.12-469.12z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "rbArrow" - ] - }, - "attrs": [], - "properties": { - "order": 569, - "id": 26, - "prevSize": 16, - "code": 59919, - "name": "rbArrow" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 271 - }, - { - "icon": { - "paths": [ - "M169.25 320v456h203.925v248h500.075v-456h-203.925v-248zM239.752 500h362.35v68h-228.928v110h-133.422zM443.677 746h360.71v178h-360.71z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "reduction" - ] - }, - "attrs": [], - "properties": { - "order": 570, - "id": 25, - "prevSize": 16, - "code": 59920, - "name": "reduction" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 272 - }, - { - "icon": { - "paths": [ - "M514 54c-101.166 0-194.73 36.006-268 98l-158-94 88 354 368-86-194-110c48.27-30.912 103.639-52 164-52 157.484 0 288.023 121.916 314 280l102-32c-38.978-204.361-210.106-358-416-358zM188 584l-100 32c38.978 204.361 208.106 358 414 358 101.166 0 194.73-36.006 268-98l160 94-88-354-368 84 194 112c-48.27 30.911-105.639 52-166 52-157.484 0-288.023-121.916-314-280z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "refresh" - ] - }, - "attrs": [], - "properties": { - "order": 571, - "id": 24, - "prevSize": 16, - "code": 59921, - "name": "refresh" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 273 - }, - { - "icon": { - "paths": [ - "M56 0c-31.119 0-56 24.881-56 56v618c0 31.119 24.881 56 56 56 0 0 226.78 4.516 260.648 0v-176c0-34.183 27.817-62 62-62h87.352l-36-92h-164l-34 94h-88l160-418h88l166 416h52.899c34.183 0 62 27.817 62 62v72h57.101v-570c0-31.119-24.881-56-56-56zM348 172l-56 156h112zM414 556v322.99h412v143.343l202-209.343-202-224.847v144.847h-266v-176.99z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "rename" - ] - }, - "attrs": [], - "properties": { - "order": 572, - "id": 23, - "prevSize": 16, - "code": 59922, - "name": "rename" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 274 - }, - { - "icon": { - "paths": [ - "M0 0v1024h1024v-856l-154-168h-870zM158 150h414v138h192v-138h102v240h-708v-240zM158 502h708v406h-708v-406zM254 596v76h516v-76h-516zM254 762v76h516v-76h-516z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "save" - ] - }, - "attrs": [], - "properties": { - "order": 573, - "id": 22, - "prevSize": 16, - "code": 59923, - "name": "save" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 275 - }, - { - "icon": { - "paths": [ - "M0 0l486 1024 96-396 442-142-1024-486zM156 168l666 304-308 82-60 234-298-620z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "select" - ] - }, - "attrs": [], - "properties": { - "order": 574, - "id": 21, - "prevSize": 16, - "code": 59924, - "name": "select" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 276 - }, - { - "icon": { - "paths": [ - "M68 0c-38.145 0-68 31.069-68 70v52c0 38.931 29.855 70 68 70h888c38.145 0 68-31.069 68-70v-52c0-38.931-29.855-70-68-70h-888zM68 268c-38.145 0-68 29.855-68 68v620c0 38.145 29.855 68 68 68h888c38.145 0 68-29.855 68-68v-620c0-38.145-29.855-68-68-68h-888zM810 388l124 10-460 528-320-264 144-124 154 222 358-372z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "selectAll" - ] - }, - "attrs": [], - "properties": { - "order": 575, - "id": 20, - "prevSize": 16, - "code": 59925, - "name": "selectAll" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 277 - }, - { - "icon": { - "paths": [ - "M354 2l-352 264 352 266v-140h434v278h-234v-64h-204v204h204v-76h104v188h-454v-98h-204v204h204v-42h518v-252h130v-342h172v-252h-670v-138z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "selectLeft" - ] - }, - "attrs": [], - "properties": { - "order": 576, - "id": 19, - "prevSize": 16, - "code": 59926, - "name": "selectLeft" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 278 - }, - { - "icon": { - "paths": [ - "M670 2l352 264-352 266v-140h-434v278h234v-64h204v204h-204v-76h-104v188h454v-98h204v204h-204v-42h-518v-252h-130v-342h-172v-252h670v-138z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "selectRight" - ] - }, - "attrs": [], - "properties": { - "order": 577, - "id": 18, - "prevSize": 16, - "code": 59927, - "name": "selectRight" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 279 - }, - { - "icon": { - "paths": [ - "M0 0v356h486l-352 348h234v250h-368v70h1024v-70h-368v-250h234l-374-348h508v-356h-1024z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "show" - ] - }, - "attrs": [], - "properties": { - "order": 578, - "id": 17, - "prevSize": 16, - "code": 59928, - "name": "show" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 280 - }, - { - "icon": { - "paths": [ - "M512 237.682l-512 786.318h1024z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "shrink" - ] - }, - "attrs": [], - "properties": { - "order": 579, - "id": 16, - "prevSize": 16, - "code": 59929, - "name": "shrink" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 281 - }, - { - "icon": { - "paths": [ - "M154 0c-85.352 0-154 68.648-154 154v716c0 85.352 68.648 154 154 154h716c85.352 0 154-68.648 154-154v-716c0-85.352-68.648-154-154-154h-716zM190 128h644c34.183 0 62 27.817 62 62v644c0 34.183-27.817 62-62 62h-644c-34.183 0-62-27.817-62-62v-644c0-34.183 27.817-62 62-62zM272 202v620l518-310-518-310z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "start" - ] - }, - "attrs": [], - "properties": { - "order": 580, - "id": 15, - "prevSize": 16, - "code": 59930, - "name": "start" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 282 - }, - { - "icon": { - "paths": [ - "M154 0c-85.352 0-154 68.648-154 154v716c0 85.352 68.648 154 154 154h716c85.352 0 154-68.648 154-154v-716c0-85.352-68.648-154-154-154h-716zM190 128h644c34.183 0 62 27.817 62 62v644c0 34.183-27.817 62-62 62h-644c-34.183 0-62-27.817-62-62v-644c0-34.183 27.817-62 62-62zM296 296v432h432v-432h-432z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "stop" - ] - }, - "attrs": [], - "properties": { - "order": 581, - "id": 14, - "prevSize": 16, - "code": 59931, - "name": "stop" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 283 - }, - { - "icon": { - "paths": [ - "M512 1024l-512-786.318h1024z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "stretch" - ] - }, - "attrs": [], - "properties": { - "order": 582, - "id": 13, - "prevSize": 16, - "code": 59932, - "name": "stretch" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 284 - }, - { - "icon": { - "paths": [ - "M194 0c-107.068 0-194 82.412-194 184v656c0 101.588 86.932 184 194 184h636c107.068 0 194-82.412 194-184v-656c0-101.588-86.932-184-194-184h-636zM256 166l254 254 254-254 92 90-256 254 258 258-90 90-258-258-258 258-90-90 258-258-254-254 90-90z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "strikeOut" - ] - }, - "attrs": [], - "properties": { - "order": 583, - "id": 12, - "prevSize": 16, - "code": 59933, - "name": "strikeOut" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 285 - }, - { - "icon": { - "paths": [ - "M494.591 0.25c-104.514 3.264-208.762 40.365-296.56 108.41 54.963 14.432 104.846 45.722 142.015 91.731 26.183 32.416 43.293 69.434 52.211 108.41 7.471-4.416 15.182-6.931 22.973-10.419 92.228-41.331 202.903-21.402 273.587 58.374 2.3 2.624 4.099 5.696 6.266 8.339 38.539-10.528 75.134-28.589 106.511-56.294 44.602-39.379 72.015-90.355 83.538-145.939-104.684-110.842-248.067-167.085-390.54-162.611zM129.112 171.2c-154.656 173.299-171.74 430.515-43.857 623.366 14.934-42.534 37.92-81.523 73.096-112.576 40.821-36.064 90.261-55.533 142.015-62.547-39.251-78.547-32.851-174.438 18.796-246.010-8.527-40.979-24.855-80.813-52.211-114.669-35.942-44.499-84.853-73.018-137.838-87.565zM945.696 242.086c-12.714 52.192-39.333 100.41-81.45 137.6-37.012 32.678-81.354 51.789-127.396 60.461 26.015 79.027 6.736 167.418-52.211 231.411 19.428 31.75 44.529 59.674 77.273 81.312 53.569 35.405 115.945 48.032 177.518 41.696 109.728-165.357 113.583-382.061 6.266-552.48zM356.753 690.33c-49.599 7.29-96.216 27.635-135.749 62.541-37.037 32.698-60.956 73.747-75.184 118.835 189.751 193.376 500.447 204.333 705.897 22.938 7.2-6.336 14.128-12.109 20.885-18.771-56.711 3.136-113.526-11.149-162.899-43.776-41.445-27.398-71.715-65.645-91.892-108.41-84.866 42.72-188.114 30.099-261.056-33.357z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "Synchronous" - ] - }, - "attrs": [], - "properties": { - "order": 584, - "id": 11, - "prevSize": 16, - "code": 59934, - "name": "Synchronous" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 286 - }, - { - "icon": { - "paths": [ - "M517.312 51.648c-261.504 0-474.24 212.736-474.24 474.24s212.736 474.24 474.24 474.24c261.44 0 474.176-212.736 474.176-474.24s-212.736-474.24-474.176-474.24zM517.312 936.128c-226.24 0-410.24-184.064-410.24-410.24 0-226.24 184-410.24 410.24-410.24 226.176 0 410.176 184 410.176 410.24 0 226.176-184 410.24-410.176 410.24z", - "M498.624 196.288l-45.312 45.248 245.632 245.632h-445.184v64h457.536l-244.16 244.224 45.248 45.248 315.264-315.328z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "toRight" - ] - }, - "attrs": [], - "properties": { - "order": 585, - "id": 10, - "prevSize": 16, - "code": 59935, - "name": "toRight" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 287 - }, - { - "icon": { - "paths": [ - "M172 0c-95.48 0-172 76.52-172 172v680c0 95.48 76.52 172 172 172h680c95.48 0 172-76.52 172-172v-680c0-95.48-76.52-172-172-172h-680zM244 178h432l104 132v536h-536v-668zM326 306v78h200v-78h-200zM328 478v76h374v-76h-374zM320 648v78h384v-78h-384z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "treefile" - ] - }, - "attrs": [], - "properties": { - "order": 586, - "id": 9, - "prevSize": 16, - "code": 59936, - "name": "treefile" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 288 - }, - { - "icon": { - "paths": [ - "M172 0c-95.48 0-172 76.52-172 172v680c0 95.48 76.52 172 172 172h680c95.48 0 172-76.52 172-172v-680c0-95.48-76.52-172-172-172zM238.712 241.729h206.949c27.848 0 50.787 21.897 50 48v144h316c28.751 0 52 23.249 52 52v266.237c0 28.751-23.249 52-52 52h-568.949c-28.751 0-51.098-23.263-52-52v-462.237c0-26.115 20.152-48 48-48z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "treeFolder" - ] - }, - "attrs": [], - "properties": { - "order": 587, - "id": 8, - "prevSize": 16, - "code": 59937, - "name": "treeFolder" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 289 - }, - { - "icon": { - "paths": [ - "M510 8c-202.717 0-366.626 152.266-370 342-0.012 0.659 0.008 1.34 0 2v66c-48.364 7.619-86 47.443-86 98v406c0 56.19 45.81 102 102 102h710c56.19 0 102-45.81 102-102v-406c0-56.19-45.81-100-102-100h-634v-66c3.722-129.746 126.346-234 278-234 125.236 0 230.961 71.332 266.403 169.184 9.788 9.965 18.88 19.916 30.894 22.829 12.716 3.084 41.895 4.16 53.558-6.145 7.663-6.77 13.476-15.71 11.628-22.481-37.206-155.677-185.523-271.387-362.482-271.387zM510 586c37.842 0 68 30.158 68 68 0 20.924-9.216 41.432-24 54v170h-90v-170c-14.784-12.568-24-33.076-24-54 0-37.842 32.158-68 70-68z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "unlock" - ] - }, - "attrs": [], - "properties": { - "order": 588, - "id": 7, - "prevSize": 16, - "code": 59938, - "name": "unlock" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 290 - }, - { - "icon": { - "paths": [ - "M430.051 1.837c-113.748 0-204 92.25-204 206.003 0 113.747 90.252 205.997 204 205.997s206-92.25 206-205.997c0-113.754-92.252-206.003-206-206.003zM260.051 423.84c-293.451 164.71-256.921 447.763-260 437.997h378c24.631-42.662 62.629-86.432 126-121.997l12-38.003v-1.984c-0.602-0.704-1.411-1.28-2-1.984-16.909-20.928-28.629-51.814-30-97.997 0-62.336 42.539-115.219 100-130.003l4-1.984v-1.984l14-41.997c-37.012 47.104-100.907 80-172 80s-132.988-32.896-170-80zM688.051 467.84c-73.692 0-134 58.304-134 132 0 73.69 60.308 133.997 134 133.997s132-60.307 132-133.997c0-73.696-58.308-132-132-132zM576.051 739.84c-190.112 106.707-166.005 290.323-168 284h558c-1.994 6.336 22.112-177.293-168-284-23.978 30.515-63.943 52-110 52s-88.022-21.485-112-52z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "userCompare" - ] - }, - "attrs": [], - "properties": { - "order": 589, - "id": 6, - "prevSize": 16, - "code": 59939, - "name": "userCompare" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 291 - }, - { - "icon": { - "paths": [ - "M512 0c-135.256 0-243.927 108.883-243.927 244.403 0 135.526 108.671 246.413 243.927 246.413s243.927-110.886 243.927-246.413c0-135.52-108.671-244.403-243.927-244.403zM308.061 502.842c-348.938 196.237-304.247 532.493-307.907 520.864h1023.692c-3.66 11.629 41.030-324.627-307.907-520.864-44.011 56.115-119.403 94.15-203.939 94.15-50.341 0-96.799-15.302-135.959-38.061 100.275 77.171 212.359 110.496 331.9 118.195l3.999-152.256 235.929 208.346-213.936 242.406-11.996-138.234c-166.671-50.202-400.945-148.48-413.876-334.547z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "userDispatch" - ] - }, - "attrs": [], - "properties": { - "order": 590, - "id": 5, - "prevSize": 16, - "code": 59940, - "name": "userDispatch" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 292 - }, - { - "icon": { - "paths": [ - "M130 0c-71.877 0-130 58.123-130 130v764c0 71.877 58.123 130 130 130h764c71.877 0 130-58.123 130-130v-506l-388-388h-506zM772 0l252 252v-122c0-71.877-58.123-130-130-130h-122zM56 352h76l64 102 62-102h76l-100 156 110 164h-78l-72-110-70 110h-78l110-168-100-152zM376 352h98l58 218 58-218h96v320h-60v-252l-64 252h-62l-64-252v252h-60v-320zM752 354h66v264h160v54h-226v-318z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "xml" - ] - }, - "attrs": [], - "properties": { - "order": 591, - "id": 4, - "prevSize": 16, - "code": 59941, - "name": "xml" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 293 - }, - { - "icon": { - "paths": [ - "M638 2c-211.661 0-382 172.339-382 384 0 71.954 19.508 138.475 54 196-7.030 3.398-12.152 8.152-18 14l-272 272c-27.919 27.919-27.919 72.081 0 100l34 36c27.919 27.919 74.081 27.919 102 0l270-272c5.906-5.906 10.593-12.892 14-20 58.037 35.367 125.065 56 198 56 211.661 0 384-170.339 384-382s-172.339-384-384-384zM638 106c153.936 0 280 126.064 280 280s-126.064 278-280 278c-153.936 0-278-124.064-278-278s124.064-280 278-280zM620 194c-25.053 0-46 20.947-46 46v84h-84c-25.053 0-44 18.947-44 44v38c0 25.053 18.947 46 44 46h84v84c0 25.053 20.947 44 46 44h38c25.053 0 44-18.947 44-44v-84h84c25.053 0 46-20.947 46-46v-38c0-25.053-20.947-44-46-44h-84v-84c0-25.053-18.947-46-44-46h-38z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "zoomIn" - ] - }, - "attrs": [], - "properties": { - "order": 592, - "id": 3, - "prevSize": 16, - "code": 59942, - "name": "zoomIn" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 294 - }, - { - "icon": { - "paths": [ - "M638.939 1.061c211.661 0 384 172.339 384 384s-172.339 382-384 382c-72.935 0-139.963-20.633-198-56-3.407 7.108-8.094 14.094-14 20l-270 272c-27.919 27.919-74.081 27.919-102 0l-34-36c-27.919-27.919-27.919-72.081 0-100l272-272c5.848-5.848 10.97-10.602 18-14-34.492-57.525-54-124.046-54-196 0-211.661 170.339-384 382-384zM638.939 105.061c-153.936 0-278 126.064-278 280s124.064 278 278 278c153.936 0 280-124.064 280-278s-126.064-280-280-280z", - "M490.9 323.499h295.725c24.975 0 45.222 20.247 45.222 45.222v37.556c0 24.975-20.247 45.222-45.222 45.222h-295.725c-24.975 0-45.222-20.247-45.222-45.222v-37.556c0-24.975 20.247-45.222 45.222-45.222z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "zoomOut" - ] - }, - "attrs": [], - "properties": { - "order": 593, - "id": 2, - "prevSize": 16, - "code": 59943, - "name": "zoomOut" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 295 - }, - { - "icon": { - "paths": [ - "M0 0v172l172-172h-172zM852 0l172 172v-172h-172zM128 128v768h768v-768h-768zM234 254h556v272l-42-56-72 86-66-194-114 230-104-122-158 162v-378zM0 852v172h172l-172-172zM1024 852l-172 172h172v-172z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "zoomOverView" - ] - }, - "attrs": [], - "properties": { - "order": 594, - "id": 1, - "prevSize": 16, - "code": 59944, - "name": "zoomOverView" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 296 - }, - { - "icon": { - "paths": [ - "M388 0l114 128 114-128h-228zM502 128h-374v768h768v-768h-394zM896 470l128 114v-228l-128 114zM512 896l-114 128h226l-112-128zM128 472l-128-112v226l128-114zM234 254h556v272l-42-56-72 86-66-194-114 230-104-122-158 162v-378z" - ], - "attrs": [], - "isMulticolor": false, - "grid": 0, - "tags": [ - "zoomReset" - ] - }, - "attrs": [], - "properties": { - "order": 595, - "id": 0, - "prevSize": 16, - "code": 59945, - "name": "zoomReset" - }, - "setIdx": 0, - "setId": 2, - "iconIdx": 297 - } - ], - "height": 1024, - "metadata": { - "name": "ZteIctIcons" - }, - "preferences": { - "showGlyphs": true, - "showQuickUse": true, - "showQuickUse2": true, - "showSVGs": true, - "fontPref": { - "prefix": "ict-", - "metadata": { - "fontFamily": "ZteIctIcons", - "majorVersion": 1, - "minorVersion": 0 - }, - "metrics": { - "emSize": 1024, - "baseline": 6.25, - "whitespace": 50 - }, - "embed": false - }, - "imagePref": { - "prefix": "icon-", - "png": true, - "useClassSelector": true, - "color": 4473924, - "bgColor": 16777215, - "classSelector": ".icon" - }, - "historySize": 100, - "showCodes": true, - "gridSize": 16, - "showLiga": false - } -} \ No newline at end of file diff --git a/portal-common/src/main/webapp/common/css/ZteIctIcons/style.css b/portal-common/src/main/webapp/common/css/ZteIctIcons/style.css deleted file mode 100644 index 581db6f0..00000000 --- a/portal-common/src/main/webapp/common/css/ZteIctIcons/style.css +++ /dev/null @@ -1,921 +0,0 @@ -@font-face { - font-family: 'ZteIctIcons'; - src: url('fonts/ZteIctIcons.eot?whxm2m'); - src: url('fonts/ZteIctIcons.eot?whxm2m#iefix') format('embedded-opentype'), - url('fonts/ZteIctIcons.ttf?whxm2m') format('truetype'), - url('fonts/ZteIctIcons.woff?whxm2m') format('woff'), - url('fonts/ZteIctIcons.svg?whxm2m#ZteIctIcons') format('svg'); - font-weight: normal; - font-style: normal; -} - -[class^="ict-"], [class*=" ict-"] { - /* use !important to prevent issues with browser extensions that change fonts */ - font-family: 'ZteIctIcons' !important; - speak: none; - font-style: normal; - font-weight: normal; - font-variant: normal; - text-transform: none; - line-height: 1; - - /* Better Font Rendering =========== */ - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -.ict-it-other-lenovo:before { - content: "\e900"; -} -.ict-it-router-alu7750:before { - content: "\e901"; -} -.ict-it-other-nds:before { - content: "\e902"; -} -.ict-it-other-php:before { - content: "\e903"; -} -.ict-it-app-glassfish:before { - content: "\e904"; -} -.ict-it-other-telnet:before { - content: "\e905"; -} -.ict-it-other-dns:before { - content: "\e906"; -} -.ict-it-other-url:before { - content: "\e907"; -} -.ict-it-database-mysql:before { - content: "\e908"; -} -.ict-it-other-ping:before { - content: "\e909"; -} -.ict-it-other-ftp:before { - content: "\e90a"; -} -.ict-it-other-rest:before { - content: "\e90b"; -} -.ict-it-other-soap:before { - content: "\e90c"; -} -.ict-it-server-macos:before { - content: "\e90d"; -} -.ict-it-server-openbsd:before { - content: "\e90e"; -} -.ict-it-server-debian:before { - content: "\e90f"; -} -.ict-it-app-iis:before { - content: "\e910"; -} -.ict-it-app-mailserver:before { - content: "\e911"; -} -.ict-it-app-websphere:before { - content: "\e912"; -} -.ict-it-app-apache:before { - content: "\e913"; -} -.ict-it-app-jboss:before { - content: "\e914"; -} -.ict-it-other-a10bala:before { - content: "\e915"; -} -.ict-NFV:before { - content: "\e916"; -} -.ict-VNFM:before { - content: "\e917"; -} -.ict-VNF:before { - content: "\e918"; -} -.ict-VNFC:before { - content: "\e919"; -} -.ict-VIM:before { - content: "\e91a"; -} -.ict-VDU:before { - content: "\e91b"; -} -.ict-host:before { - content: "\e91c"; -} -.ict-NS:before { - content: "\e91d"; -} -.ict-it-cluster-vcs:before { - content: "\e91e"; -} -.ict-it-diskraid-hpeva:before { - content: "\e91f"; -} -.ict-it-diskraid-zte:before { - content: "\e920"; -} -.ict-it-firewall-h3c:before { - content: "\e921"; -} -.ict-it-other-ibm-blade:before { - content: "\e922"; -} -.ict-it-other-secfox:before { - content: "\e923"; -} -.ict-it-other-segw:before { - content: "\e924"; -} -.ict-it-other-zteatca:before { - content: "\e925"; -} -.ict-it-other-zteips:before { - content: "\e926"; -} -.ict-it-sdn-controller:before { - content: "\e927"; -} -.ict-it-server-hpux:before { - content: "\e928"; -} -.ict-it-storage-ops:before { - content: "\e929"; -} -.ict-it-storage-sanswitch-brocade:before { - content: "\e92a"; -} -.ict-uep-moc-uca-public:before { - content: "\e92b"; -} -.ict-uep-topo-commongroup20x20:before { - content: "\e92c"; -} -.ict-vapel_chgpile:before { - content: "\e92d"; -} -.ict-car:before { - content: "\e92e"; -} -.ict-chgpile:before { - content: "\e92f"; -} -.ict-chgposition:before { - content: "\e930"; -} -.ict-chgstation:before { - content: "\e931"; -} -.ict-common_dc:before { - content: "\e932"; -} -.ict-common_ncd:before { - content: "\e933"; -} -.ict-common_ncd_break:before { - content: "\e934"; -} -.ict-common_sc:before { - content: "\e935"; -} -.ict-it:before { - content: "\e936"; -} -.ict-it-app:before { - content: "\e937"; -} -.ict-it-app-bind:before { - content: "\e938"; -} -.ict-it-app-dns:before { - content: "\e939"; -} -.ict-it-app-ems:before { - content: "\e93a"; -} -.ict-it-app-mediator:before { - content: "\e93b"; -} -.ict-it-app-ntp:before { - content: "\e93c"; -} -.ict-it-app-ota:before { - content: "\e93d"; -} -.ict-it-app-tomcat:before { - content: "\e93e"; -} -.ict-it-app-trend:before { - content: "\e93f"; -} -.ict-it-app-tsm:before { - content: "\e940"; -} -.ict-it-app-weblogic:before { - content: "\e941"; -} -.ict-it-cluster:before { - content: "\e942"; -} -.ict-it-cluster-hacmp:before { - content: "\e943"; -} -.ict-it-cluster-nec:before { - content: "\e944"; -} -.ict-it-cluster-ns:before { - content: "\e945"; -} -.ict-it-cluster-sg:before { - content: "\e946"; -} -.ict-it-database:before { - content: "\e947"; -} -.ict-it-database-mssql:before { - content: "\e948"; -} -.ict-it-database-oracle:before { - content: "\e949"; -} -.ict-it-database-sybase:before { - content: "\e94a"; -} -.ict-it-database-sybaseiq:before { - content: "\e94b"; -} -.ict-it-diskraid-dellmd:before { - content: "\e94c"; -} -.ict-it-diskraid-emc:before { - content: "\e94d"; -} -.ict-it-diskraid-eternus:before { - content: "\e94e"; -} -.ict-it-diskraid-fujitsu:before { - content: "\e94f"; -} -.ict-it-diskraid-hds:before { - content: "\e950"; -} -.ict-it-diskraid-hpaio:before { - content: "\e951"; -} -.ict-it-diskraid-hpmsa:before { - content: "\e952"; -} -.ict-it-diskraid-ibm:before { - content: "\e953"; -} -.ict-it-diskraid-ibmsm:before { - content: "\e954"; -} -.ict-it-diskraid-macrosan:before { - content: "\e955"; -} -.ict-it-diskraid-netapp:before { - content: "\e956"; -} -.ict-it-diskraid-sun:before { - content: "\e957"; -} -.ict-it-firewall:before { - content: "\e958"; -} -.ict-it-firewall-checkpoint:before { - content: "\e959"; -} -.ict-it-firewall-cisco:before { - content: "\e95a"; -} -.ict-it-firewall-cisco2:before { - content: "\e95b"; -} -.ict-it-firewall-juniper:before { - content: "\e95c"; -} -.ict-it-firewall-neteye:before { - content: "\e95d"; -} -.ict-it-firewall-zte:before { - content: "\e95e"; -} -.ict-it-firewall-ztemf:before { - content: "\e95f"; -} -.ict-it-firewall-zteutm:before { - content: "\e960"; -} -.ict-it-gather:before { - content: "\e961"; -} -.ict-it-ibp:before { - content: "\e962"; -} -.ict-it-ibp-ibp2000:before { - content: "\e963"; -} -.ict-it-net:before { - content: "\e964"; -} -.ict-it-other:before { - content: "\e965"; -} -.ict-it-other-alteon:before { - content: "\e966"; -} -.ict-it-other-appdirector:before { - content: "\e967"; -} -.ict-it-other-atca-lb10:before { - content: "\e968"; -} -.ict-it-other-cisco-ucs:before { - content: "\e969"; -} -.ict-it-other-dcs:before { - content: "\e96a"; -} -.ict-it-other-delta:before { - content: "\e96b"; -} -.ict-it-other-dp:before { - content: "\e96c"; -} -.ict-it-other-e9000:before { - content: "\e96d"; -} -.ict-it-other-f5bigip:before { - content: "\e96e"; -} -.ict-it-other-f5bigip2:before { - content: "\e96f"; -} -.ict-it-other-gbe2c:before { - content: "\e970"; -} -.ict-it-other-h3c:before { - content: "\e971"; -} -.ict-it-other-hpblc:before { - content: "\e972"; -} -.ict-it-other-imm:before { - content: "\e973"; -} -.ict-it-other-secsis:before { - content: "\e974"; -} -.ict-it-other-vc:before { - content: "\e975"; -} -.ict-it-other-ztepower:before { - content: "\e976"; -} -.ict-it-other-ztesgs:before { - content: "\e977"; -} -.ict-it-other-zxsdr-nt:before { - content: "\e978"; -} -.ict-it-router:before { - content: "\e979"; -} -.ict-it-router-cisco:before { - content: "\e97a"; -} -.ict-it-router-juniper:before { - content: "\e97b"; -} -.ict-it-router-zte:before { - content: "\e97c"; -} -.ict-it-sdn-host:before { - content: "\e97d"; -} -.ict-it-sdn-switch:before { - content: "\e97e"; -} -.ict-it-server:before { - content: "\e97f"; -} -.ict-it-server-aix:before { - content: "\e980"; -} -.ict-it-server-klinux:before { - content: "\e981"; -} -.ict-it-server-redhat:before { - content: "\e982"; -} -.ict-it-server-solaris:before { - content: "\e983"; -} -.ict-it-server-suse:before { - content: "\e984"; -} -.ict-it-server-windows:before { - content: "\e985"; -} -.ict-it-server-zxve:before { - content: "\e986"; -} -.ict-it-storage:before { - content: "\e987"; -} -.ict-it-storage-cisco-mds:before { - content: "\e988"; -} -.ict-it-storage-md3000:before { - content: "\e989"; -} -.ict-it-storage-netvault:before { - content: "\e98a"; -} -.ict-it-storage-sanswitch-zte:before { - content: "\e98b"; -} -.ict-it-switch-at:before { - content: "\e98c"; -} -.ict-it-switch-cisco:before { - content: "\e98d"; -} -.ict-it-switch-h3c:before { - content: "\e98e"; -} -.ict-it-switch-juniper:before { - content: "\e98f"; -} -.ict-it-switch-zte:before { - content: "\e990"; -} -.ict-it-tapelib-hpmsl:before { - content: "\e991"; -} -.ict-it-tapelib-ibmts:before { - content: "\e992"; -} -.ict-it-tapelib-sunts:before { - content: "\e993"; -} -.ict-it-Virtualnetwork:before { - content: "\e994"; -} -.ict-networkTree:before { - content: "\e995"; -} -.ict-resourceType:before { - content: "\e996"; -} -.ict-tree-icon:before { - content: "\e997"; -} -.ict-uep-topo-group20x20:before { - content: "\e998"; -} -.ict-uep-topo-root:before { - content: "\e999"; -} -.ict-uep-topo-virtual20x20:before { - content: "\e99a"; -} -.ict-common_ncd_stop:before { - content: "\e99b"; -} -.ict-it-app-netnumen:before { - content: "\e99c"; -} -.ict-it-sdn-vnet:before { - content: "\e99d"; -} -.ict-it-storage-sanswitch-hp:before { - content: "\e99e"; -} -.ict-it-switch:before { - content: "\e99f"; -} -.ict-uep-moc-root:before { - content: "\e9a0"; -} -.ict-uep-topo-undefinedgroup20x20:before { - content: "\e9a1"; -} -.ict-analysis:before { - content: "\e9a2"; -} -.ict-bindingRelationship:before { - content: "\e9a3"; -} -.ict-browsePolicy:before { - content: "\e9a4"; -} -.ict-businessManagment:before { - content: "\e9a5"; -} -.ict-cardData:before { - content: "\e9a6"; -} -.ict-dailyManagment:before { - content: "\e9a7"; -} -.ict-enterpriseCustomer:before { - content: "\e9a8"; -} -.ict-equipmentBlacklist:before { - content: "\e9a9"; -} -.ict-equipmentModel:before { - content: "\e9aa"; -} -.ict-examine:before { - content: "\e9ab"; -} -.ict-failureList:before { - content: "\e9ac"; -} -.ict-familyCustomer:before { - content: "\e9ad"; -} -.ict-fileTool:before { - content: "\e9ae"; -} -.ict-groupManagment:before { - content: "\e9af"; -} -.ict-notice:before { - content: "\e9b0"; -} -.ict-policy:before { - content: "\e9b1"; -} -.ict-portal:before { - content: "\e9b2"; -} -.ict-recordQuery:before { - content: "\e9b3"; -} -.ict-resourceManagment:before { - content: "\e9b4"; -} -.ict-ruleManagment:before { - content: "\e9b5"; -} -.ict-sucessRate:before { - content: "\e9b6"; -} -.ict-terminalManagment:before { - content: "\e9b7"; -} -.ict-tools:before { - content: "\e9b8"; -} -.ict-track:before { - content: "\e9b9"; -} -.ict-userManagment:before { - content: "\e9ba"; -} -.ict-versionManagment:before { - content: "\e9bb"; -} -.ict-workOrder:before { - content: "\e9bc"; -} -.ict-cpu:before { - content: "\e9bd"; -} -.ict-memory:before { - content: "\e9be"; -} -.ict-currentAlarm:before { - content: "\e9bf"; -} -.ict-noticeAlarm:before { - content: "\e9c0"; -} -.ict-historyAlarm:before { - content: "\e9c1"; -} -.ict-close:before { - content: "\e9c2"; -} -.ict-table:before { - content: "\e9c3"; -} -.ict-next:before { - content: "\e9c4"; -} -.ict-pre:before { - content: "\e9c5"; -} -.ict-roleset:before { - content: "\e9c6"; -} -.ict-role:before { - content: "\e9c7"; -} -.ict-user:before { - content: "\e9c8"; -} -.ict-empty:before { - content: "\e9c9"; -} -.ict-noticeFilter:before { - content: "\e9ca"; -} -.ict-alarmTurn:before { - content: "\e9cb"; -} -.ict-advice:before { - content: "\e9cc"; -} -.ict-clearAlarm:before { - content: "\e9cd"; -} -.ict-alarmBox:before { - content: "\e9ce"; -} -.ict-afreshDef:before { - content: "\e9cf"; -} -.ict-alarmFilter:before { - content: "\e9d0"; -} -.ict-manAnalysis:before { - content: "\e9d1"; -} -.ict-drill:before { - content: "\e9d2"; -} -.ict-gear:before { - content: "\e9d3"; -} -.ict-process:before { - content: "\e9d4"; -} -.ict-unacknownledge:before { - content: "\e9d5"; -} -.ict-acknownledge:before { - content: "\e9d6"; -} -.ict-Operation:before { - content: "\e9d7"; -} -.ict-cloud:before { - content: "\e9d8"; -} -.ict-computer:before { - content: "\e9d9"; -} -.ict-alarm:before { - content: "\e9da"; -} -.ict-import:before { - content: "\e9db"; -} -.ict-export:before { - content: "\e9dc"; -} -.ict-Admin:before { - content: "\e9dd"; -} -.ict-allSelected:before { - content: "\e9de"; -} -.ict-angleRight:before { - content: "\e9df"; -} -.ict-arrowLeft:before { - content: "\e9e0"; -} -.ict-arrowLeftAll:before { - content: "\e9e1"; -} -.ict-arrowRight:before { - content: "\e9e2"; -} -.ict-arrowRightAll:before { - content: "\e9e3"; -} -.ict-autoFind:before { - content: "\e9e4"; -} -.ict-back:before { - content: "\e9e5"; -} -.ict-ball:before { - content: "\e9e6"; -} -.ict-bell:before { - content: "\e9e7"; -} -.ict-blackList:before { - content: "\e9e8"; -} -.ict-breakLink:before { - content: "\e9e9"; -} -.ict-cancle:before { - content: "\e9ea"; -} -.ict-circle:before { - content: "\e9eb"; -} -.ict-closeTree:before { - content: "\e9ec"; -} -.ict-configmap:before { - content: "\e9ed"; -} -.ict-delete:before { - content: "\e9ee"; -} -.ict-department:before { - content: "\e9ef"; -} -.ict-detail:before { - content: "\e9f0"; -} -.ict-displaySwitch:before { - content: "\e9f1"; -} -.ict-file:before { - content: "\e9f2"; -} -.ict-filter:before { - content: "\e9f3"; -} -.ict-find:before { - content: "\e9f4"; -} -.ict-folder:before { - content: "\e9f5"; -} -.ict-forceOut:before { - content: "\e9f6"; -} -.ict-fullScreen:before { - content: "\e9f7"; -} -.ict-Graphical:before { - content: "\e9f8"; -} -.ict-helpTip:before { - content: "\e9f9"; -} -.ict-hide:before { - content: "\e9fa"; -} -.ict-history:before { - content: "\e9fb"; -} -.ict-launchingTower:before { - content: "\e9fc"; -} -.ict-layout:before { - content: "\e9fd"; -} -.ict-legendhide:before { - content: "\e9fe"; -} -.ict-legendshow:before { - content: "\e9ff"; -} -.ict-link:before { - content: "\ea00"; -} -.ict-lock:before { - content: "\ea01"; -} -.ict-ltArrow:before { - content: "\ea02"; -} -.ict-Magnifier:before { - content: "\ea03"; -} -.ict-Maintain:before { - content: "\ea04"; -} -.ict-maximize:before { - content: "\ea05"; -} -.ict-modify:before { - content: "\ea06"; -} -.ict-Monitor:before { - content: "\ea07"; -} -.ict-move:before { - content: "\ea08"; -} -.ict-new:before { - content: "\ea09"; -} -.ict-newShortcut:before { - content: "\ea0a"; -} -.ict-openTree:before { - content: "\ea0b"; -} -.ict-poNode:before { - content: "\ea0c"; -} -.ict-print:before { - content: "\ea0d"; -} -.ict-product:before { - content: "\ea0e"; -} -.ict-rbArrow:before { - content: "\ea0f"; -} -.ict-reduction:before { - content: "\ea10"; -} -.ict-refresh:before { - content: "\ea11"; -} -.ict-rename:before { - content: "\ea12"; -} -.ict-save:before { - content: "\ea13"; -} -.ict-select:before { - content: "\ea14"; -} -.ict-selectAll:before { - content: "\ea15"; -} -.ict-selectLeft:before { - content: "\ea16"; -} -.ict-selectRight:before { - content: "\ea17"; -} -.ict-show:before { - content: "\ea18"; -} -.ict-shrink:before { - content: "\ea19"; -} -.ict-start:before { - content: "\ea1a"; -} -.ict-stop:before { - content: "\ea1b"; -} -.ict-stretch:before { - content: "\ea1c"; -} -.ict-strikeOut:before { - content: "\ea1d"; -} -.ict-Synchronous:before { - content: "\ea1e"; -} -.ict-toRight:before { - content: "\ea1f"; -} -.ict-treefile:before { - content: "\ea20"; -} -.ict-treeFolder:before { - content: "\ea21"; -} -.ict-unlock:before { - content: "\ea22"; -} -.ict-userCompare:before { - content: "\ea23"; -} -.ict-userDispatch:before { - content: "\ea24"; -} -.ict-xml:before { - content: "\ea25"; -} -.ict-zoomIn:before { - content: "\ea26"; -} -.ict-zoomOut:before { - content: "\ea27"; -} -.ict-zoomOverView:before { - content: "\ea28"; -} -.ict-zoomReset:before { - content: "\ea29"; -} - diff --git a/portal-common/src/main/webapp/common/css/animate.css b/portal-common/src/main/webapp/common/css/animate.css deleted file mode 100644 index aa84dd61..00000000 --- a/portal-common/src/main/webapp/common/css/animate.css +++ /dev/null @@ -1,3278 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -@charset "UTF-8"; -/* -Animate.css - http://daneden.me/animate -Licensed under the MIT license - -Copyright (c) 2013 Daniel Eden - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ -body { /* Addresses a small issue in webkit: http://bit.ly/NEdoDq */ - -webkit-backface-visibility: hidden; -} -.animated { - -webkit-animation-duration: 1s; - -moz-animation-duration: 1s; - -o-animation-duration: 1s; - animation-duration: 1s; - -webkit-animation-fill-mode: both; - -moz-animation-fill-mode: both; - -o-animation-fill-mode: both; - animation-fill-mode: both; -} - -.animated.hinge { - -webkit-animation-duration: 2s; - -moz-animation-duration: 2s; - -o-animation-duration: 2s; - animation-duration: 2s; -} - -@-webkit-keyframes flash { - 0%, 50%, 100% {opacity: 1;} - 25%, 75% {opacity: 0;} -} - -@-moz-keyframes flash { - 0%, 50%, 100% {opacity: 1;} - 25%, 75% {opacity: 0;} -} - -@-o-keyframes flash { - 0%, 50%, 100% {opacity: 1;} - 25%, 75% {opacity: 0;} -} - -@keyframes flash { - 0%, 50%, 100% {opacity: 1;} - 25%, 75% {opacity: 0;} -} - -.flash { - -webkit-animation-name: flash; - -moz-animation-name: flash; - -o-animation-name: flash; - animation-name: flash; -} -@-webkit-keyframes shake { - 0%, 100% {-webkit-transform: translateX(0);} - 10%, 30%, 50%, 70%, 90% {-webkit-transform: translateX(-10px);} - 20%, 40%, 60%, 80% {-webkit-transform: translateX(10px);} -} - -@-moz-keyframes shake { - 0%, 100% {-moz-transform: translateX(0);} - 10%, 30%, 50%, 70%, 90% {-moz-transform: translateX(-10px);} - 20%, 40%, 60%, 80% {-moz-transform: translateX(10px);} -} - -@-o-keyframes shake { - 0%, 100% {-o-transform: translateX(0);} - 10%, 30%, 50%, 70%, 90% {-o-transform: translateX(-10px);} - 20%, 40%, 60%, 80% {-o-transform: translateX(10px);} -} - -@keyframes shake { - 0%, 100% {transform: translateX(0);} - 10%, 30%, 50%, 70%, 90% {transform: translateX(-10px);} - 20%, 40%, 60%, 80% {transform: translateX(10px);} -} - -.shake { - -webkit-animation-name: shake; - -moz-animation-name: shake; - -o-animation-name: shake; - animation-name: shake; -} -@-webkit-keyframes bounce { - 0%, 20%, 50%, 80%, 100% {-webkit-transform: translateY(0);} - 40% {-webkit-transform: translateY(-30px);} - 60% {-webkit-transform: translateY(-15px);} -} - -@-moz-keyframes bounce { - 0%, 20%, 50%, 80%, 100% {-moz-transform: translateY(0);} - 40% {-moz-transform: translateY(-30px);} - 60% {-moz-transform: translateY(-15px);} -} - -@-o-keyframes bounce { - 0%, 20%, 50%, 80%, 100% {-o-transform: translateY(0);} - 40% {-o-transform: translateY(-30px);} - 60% {-o-transform: translateY(-15px);} -} -@keyframes bounce { - 0%, 20%, 50%, 80%, 100% {transform: translateY(0);} - 40% {transform: translateY(-30px);} - 60% {transform: translateY(-15px);} -} - -.bounce { - -webkit-animation-name: bounce; - -moz-animation-name: bounce; - -o-animation-name: bounce; - animation-name: bounce; -} -@-webkit-keyframes tada { - 0% {-webkit-transform: scale(1);} - 10%, 20% {-webkit-transform: scale(0.9) rotate(-3deg);} - 30%, 50%, 70%, 90% {-webkit-transform: scale(1.1) rotate(3deg);} - 40%, 60%, 80% {-webkit-transform: scale(1.1) rotate(-3deg);} - 100% {-webkit-transform: scale(1) rotate(0);} -} - -@-moz-keyframes tada { - 0% {-moz-transform: scale(1);} - 10%, 20% {-moz-transform: scale(0.9) rotate(-3deg);} - 30%, 50%, 70%, 90% {-moz-transform: scale(1.1) rotate(3deg);} - 40%, 60%, 80% {-moz-transform: scale(1.1) rotate(-3deg);} - 100% {-moz-transform: scale(1) rotate(0);} -} - -@-o-keyframes tada { - 0% {-o-transform: scale(1);} - 10%, 20% {-o-transform: scale(0.9) rotate(-3deg);} - 30%, 50%, 70%, 90% {-o-transform: scale(1.1) rotate(3deg);} - 40%, 60%, 80% {-o-transform: scale(1.1) rotate(-3deg);} - 100% {-o-transform: scale(1) rotate(0);} -} - -@keyframes tada { - 0% {transform: scale(1);} - 10%, 20% {transform: scale(0.9) rotate(-3deg);} - 30%, 50%, 70%, 90% {transform: scale(1.1) rotate(3deg);} - 40%, 60%, 80% {transform: scale(1.1) rotate(-3deg);} - 100% {transform: scale(1) rotate(0);} -} - -.tada { - -webkit-animation-name: tada; - -moz-animation-name: tada; - -o-animation-name: tada; - animation-name: tada; -} -@-webkit-keyframes swing { - 20%, 40%, 60%, 80%, 100% { -webkit-transform-origin: top center; } - 20% { -webkit-transform: rotate(15deg); } - 40% { -webkit-transform: rotate(-10deg); } - 60% { -webkit-transform: rotate(5deg); } - 80% { -webkit-transform: rotate(-5deg); } - 100% { -webkit-transform: rotate(0deg); } -} - -@-moz-keyframes swing { - 20% { -moz-transform: rotate(15deg); } - 40% { -moz-transform: rotate(-10deg); } - 60% { -moz-transform: rotate(5deg); } - 80% { -moz-transform: rotate(-5deg); } - 100% { -moz-transform: rotate(0deg); } -} - -@-o-keyframes swing { - 20% { -o-transform: rotate(15deg); } - 40% { -o-transform: rotate(-10deg); } - 60% { -o-transform: rotate(5deg); } - 80% { -o-transform: rotate(-5deg); } - 100% { -o-transform: rotate(0deg); } -} - -@keyframes swing { - 20% { transform: rotate(15deg); } - 40% { transform: rotate(-10deg); } - 60% { transform: rotate(5deg); } - 80% { transform: rotate(-5deg); } - 100% { transform: rotate(0deg); } -} - -.swing { - -webkit-transform-origin: top center; - -moz-transform-origin: top center; - -o-transform-origin: top center; - transform-origin: top center; - -webkit-animation-name: swing; - -moz-animation-name: swing; - -o-animation-name: swing; - animation-name: swing; -} -/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ - -@-webkit-keyframes wobble { - 0% { -webkit-transform: translateX(0%); } - 15% { -webkit-transform: translateX(-25%) rotate(-5deg); } - 30% { -webkit-transform: translateX(20%) rotate(3deg); } - 45% { -webkit-transform: translateX(-15%) rotate(-3deg); } - 60% { -webkit-transform: translateX(10%) rotate(2deg); } - 75% { -webkit-transform: translateX(-5%) rotate(-1deg); } - 100% { -webkit-transform: translateX(0%); } -} - -@-moz-keyframes wobble { - 0% { -moz-transform: translateX(0%); } - 15% { -moz-transform: translateX(-25%) rotate(-5deg); } - 30% { -moz-transform: translateX(20%) rotate(3deg); } - 45% { -moz-transform: translateX(-15%) rotate(-3deg); } - 60% { -moz-transform: translateX(10%) rotate(2deg); } - 75% { -moz-transform: translateX(-5%) rotate(-1deg); } - 100% { -moz-transform: translateX(0%); } -} - -@-o-keyframes wobble { - 0% { -o-transform: translateX(0%); } - 15% { -o-transform: translateX(-25%) rotate(-5deg); } - 30% { -o-transform: translateX(20%) rotate(3deg); } - 45% { -o-transform: translateX(-15%) rotate(-3deg); } - 60% { -o-transform: translateX(10%) rotate(2deg); } - 75% { -o-transform: translateX(-5%) rotate(-1deg); } - 100% { -o-transform: translateX(0%); } -} - -@keyframes wobble { - 0% { transform: translateX(0%); } - 15% { transform: translateX(-25%) rotate(-5deg); } - 30% { transform: translateX(20%) rotate(3deg); } - 45% { transform: translateX(-15%) rotate(-3deg); } - 60% { transform: translateX(10%) rotate(2deg); } - 75% { transform: translateX(-5%) rotate(-1deg); } - 100% { transform: translateX(0%); } -} - -.wobble { - -webkit-animation-name: wobble; - -moz-animation-name: wobble; - -o-animation-name: wobble; - animation-name: wobble; -} -/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ - -@-webkit-keyframes pulse { - 0% { -webkit-transform: scale(1); } - 50% { -webkit-transform: scale(1.1); } - 100% { -webkit-transform: scale(1); } -} -@-moz-keyframes pulse { - 0% { -moz-transform: scale(1); } - 50% { -moz-transform: scale(1.1); } - 100% { -moz-transform: scale(1); } -} -@-o-keyframes pulse { - 0% { -o-transform: scale(1); } - 50% { -o-transform: scale(1.1); } - 100% { -o-transform: scale(1); } -} -@keyframes pulse { - 0% { transform: scale(1); } - 50% { transform: scale(1.1); } - 100% { transform: scale(1); } -} - -.pulse { - -webkit-animation-name: pulse; - -moz-animation-name: pulse; - -o-animation-name: pulse; - animation-name: pulse; -} -@-webkit-keyframes flip { - 0% { - -webkit-transform: perspective(400px) rotateY(0); - -webkit-animation-timing-function: ease-out; - } - 40% { - -webkit-transform: perspective(400px) translateZ(150px) rotateY(170deg); - -webkit-animation-timing-function: ease-out; - } - 50% { - -webkit-transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1); - -webkit-animation-timing-function: ease-in; - } - 80% { - -webkit-transform: perspective(400px) rotateY(360deg) scale(.95); - -webkit-animation-timing-function: ease-in; - } - 100% { - -webkit-transform: perspective(400px) scale(1); - -webkit-animation-timing-function: ease-in; - } -} -@-moz-keyframes flip { - 0% { - -moz-transform: perspective(400px) rotateY(0); - -moz-animation-timing-function: ease-out; - } - 40% { - -moz-transform: perspective(400px) translateZ(150px) rotateY(170deg); - -moz-animation-timing-function: ease-out; - } - 50% { - -moz-transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1); - -moz-animation-timing-function: ease-in; - } - 80% { - -moz-transform: perspective(400px) rotateY(360deg) scale(.95); - -moz-animation-timing-function: ease-in; - } - 100% { - -moz-transform: perspective(400px) scale(1); - -moz-animation-timing-function: ease-in; - } -} -@-o-keyframes flip { - 0% { - -o-transform: perspective(400px) rotateY(0); - -o-animation-timing-function: ease-out; - } - 40% { - -o-transform: perspective(400px) translateZ(150px) rotateY(170deg); - -o-animation-timing-function: ease-out; - } - 50% { - -o-transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1); - -o-animation-timing-function: ease-in; - } - 80% { - -o-transform: perspective(400px) rotateY(360deg) scale(.95); - -o-animation-timing-function: ease-in; - } - 100% { - -o-transform: perspective(400px) scale(1); - -o-animation-timing-function: ease-in; - } -} -@keyframes flip { - 0% { - transform: perspective(400px) rotateY(0); - animation-timing-function: ease-out; - } - 40% { - transform: perspective(400px) translateZ(150px) rotateY(170deg); - animation-timing-function: ease-out; - } - 50% { - transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1); - animation-timing-function: ease-in; - } - 80% { - transform: perspective(400px) rotateY(360deg) scale(.95); - animation-timing-function: ease-in; - } - 100% { - transform: perspective(400px) scale(1); - animation-timing-function: ease-in; - } -} - -.flip { - -webkit-backface-visibility: visible !important; - -webkit-animation-name: flip; - -moz-backface-visibility: visible !important; - -moz-animation-name: flip; - -o-backface-visibility: visible !important; - -o-animation-name: flip; - backface-visibility: visible !important; - animation-name: flip; -} -@-webkit-keyframes flipInX { - 0% { - -webkit-transform: perspective(400px) rotateX(90deg); - opacity: 0; - } - - 40% { - -webkit-transform: perspective(400px) rotateX(-10deg); - } - - 70% { - -webkit-transform: perspective(400px) rotateX(10deg); - } - - 100% { - -webkit-transform: perspective(400px) rotateX(0deg); - opacity: 1; - } -} -@-moz-keyframes flipInX { - 0% { - -moz-transform: perspective(400px) rotateX(90deg); - opacity: 0; - } - - 40% { - -moz-transform: perspective(400px) rotateX(-10deg); - } - - 70% { - -moz-transform: perspective(400px) rotateX(10deg); - } - - 100% { - -moz-transform: perspective(400px) rotateX(0deg); - opacity: 1; - } -} -@-o-keyframes flipInX { - 0% { - -o-transform: perspective(400px) rotateX(90deg); - opacity: 0; - } - - 40% { - -o-transform: perspective(400px) rotateX(-10deg); - } - - 70% { - -o-transform: perspective(400px) rotateX(10deg); - } - - 100% { - -o-transform: perspective(400px) rotateX(0deg); - opacity: 1; - } -} -@keyframes flipInX { - 0% { - transform: perspective(400px) rotateX(90deg); - opacity: 0; - } - - 40% { - transform: perspective(400px) rotateX(-10deg); - } - - 70% { - transform: perspective(400px) rotateX(10deg); - } - - 100% { - transform: perspective(400px) rotateX(0deg); - opacity: 1; - } -} - -.flipInX { - -webkit-backface-visibility: visible !important; - -webkit-animation-name: flipInX; - -moz-backface-visibility: visible !important; - -moz-animation-name: flipInX; - -o-backface-visibility: visible !important; - -o-animation-name: flipInX; - backface-visibility: visible !important; - animation-name: flipInX; -} -@-webkit-keyframes flipOutX { - 0% { - -webkit-transform: perspective(400px) rotateX(0deg); - opacity: 1; - } - 100% { - -webkit-transform: perspective(400px) rotateX(90deg); - opacity: 0; - } -} - -@-moz-keyframes flipOutX { - 0% { - -moz-transform: perspective(400px) rotateX(0deg); - opacity: 1; - } - 100% { - -moz-transform: perspective(400px) rotateX(90deg); - opacity: 0; - } -} - -@-o-keyframes flipOutX { - 0% { - -o-transform: perspective(400px) rotateX(0deg); - opacity: 1; - } - 100% { - -o-transform: perspective(400px) rotateX(90deg); - opacity: 0; - } -} - -@keyframes flipOutX { - 0% { - transform: perspective(400px) rotateX(0deg); - opacity: 1; - } - 100% { - transform: perspective(400px) rotateX(90deg); - opacity: 0; - } -} - -.flipOutX { - -webkit-animation-name: flipOutX; - -webkit-backface-visibility: visible !important; - -moz-animation-name: flipOutX; - -moz-backface-visibility: visible !important; - -o-animation-name: flipOutX; - -o-backface-visibility: visible !important; - animation-name: flipOutX; - backface-visibility: visible !important; -} -@-webkit-keyframes flipInY { - 0% { - -webkit-transform: perspective(400px) rotateY(90deg); - opacity: 0; - } - - 40% { - -webkit-transform: perspective(400px) rotateY(-10deg); - } - - 70% { - -webkit-transform: perspective(400px) rotateY(10deg); - } - - 100% { - -webkit-transform: perspective(400px) rotateY(0deg); - opacity: 1; - } -} -@-moz-keyframes flipInY { - 0% { - -moz-transform: perspective(400px) rotateY(90deg); - opacity: 0; - } - - 40% { - -moz-transform: perspective(400px) rotateY(-10deg); - } - - 70% { - -moz-transform: perspective(400px) rotateY(10deg); - } - - 100% { - -moz-transform: perspective(400px) rotateY(0deg); - opacity: 1; - } -} -@-o-keyframes flipInY { - 0% { - -o-transform: perspective(400px) rotateY(90deg); - opacity: 0; - } - - 40% { - -o-transform: perspective(400px) rotateY(-10deg); - } - - 70% { - -o-transform: perspective(400px) rotateY(10deg); - } - - 100% { - -o-transform: perspective(400px) rotateY(0deg); - opacity: 1; - } -} -@keyframes flipInY { - 0% { - transform: perspective(400px) rotateY(90deg); - opacity: 0; - } - - 40% { - transform: perspective(400px) rotateY(-10deg); - } - - 70% { - transform: perspective(400px) rotateY(10deg); - } - - 100% { - transform: perspective(400px) rotateY(0deg); - opacity: 1; - } -} - -.flipInY { - -webkit-backface-visibility: visible !important; - -webkit-animation-name: flipInY; - -moz-backface-visibility: visible !important; - -moz-animation-name: flipInY; - -o-backface-visibility: visible !important; - -o-animation-name: flipInY; - backface-visibility: visible !important; - animation-name: flipInY; -} -@-webkit-keyframes flipOutY { - 0% { - -webkit-transform: perspective(400px) rotateY(0deg); - opacity: 1; - } - 100% { - -webkit-transform: perspective(400px) rotateY(90deg); - opacity: 0; - } -} -@-moz-keyframes flipOutY { - 0% { - -moz-transform: perspective(400px) rotateY(0deg); - opacity: 1; - } - 100% { - -moz-transform: perspective(400px) rotateY(90deg); - opacity: 0; - } -} -@-o-keyframes flipOutY { - 0% { - -o-transform: perspective(400px) rotateY(0deg); - opacity: 1; - } - 100% { - -o-transform: perspective(400px) rotateY(90deg); - opacity: 0; - } -} -@keyframes flipOutY { - 0% { - transform: perspective(400px) rotateY(0deg); - opacity: 1; - } - 100% { - transform: perspective(400px) rotateY(90deg); - opacity: 0; - } -} - -.flipOutY { - -webkit-backface-visibility: visible !important; - -webkit-animation-name: flipOutY; - -moz-backface-visibility: visible !important; - -moz-animation-name: flipOutY; - -o-backface-visibility: visible !important; - -o-animation-name: flipOutY; - backface-visibility: visible !important; - animation-name: flipOutY; -} -@-webkit-keyframes fadeIn { - 0% {opacity: 0;} - 100% {opacity: 1;} -} - -@-moz-keyframes fadeIn { - 0% {opacity: 0;} - 100% {opacity: 1;} -} - -@-o-keyframes fadeIn { - 0% {opacity: 0;} - 100% {opacity: 1;} -} - -@keyframes fadeIn { - 0% {opacity: 0;} - 100% {opacity: 1;} -} - -.fadeIn { - -webkit-animation-name: fadeIn; - -moz-animation-name: fadeIn; - -o-animation-name: fadeIn; - animation-name: fadeIn; -} -@-webkit-keyframes fadeInUp { - 0% { - opacity: 0; - -webkit-transform: translateY(20px); - } - - 100% { - opacity: 1; - -webkit-transform: translateY(0); - } -} - -@-moz-keyframes fadeInUp { - 0% { - opacity: 0; - -moz-transform: translateY(20px); - } - - 100% { - opacity: 1; - -moz-transform: translateY(0); - } -} - -@-o-keyframes fadeInUp { - 0% { - opacity: 0; - -o-transform: translateY(20px); - } - - 100% { - opacity: 1; - -o-transform: translateY(0); - } -} - -@keyframes fadeInUp { - 0% { - opacity: 0; - transform: translateY(20px); - } - - 100% { - opacity: 1; - transform: translateY(0); - } -} - -.fadeInUp { - -webkit-animation-name: fadeInUp; - -moz-animation-name: fadeInUp; - -o-animation-name: fadeInUp; - animation-name: fadeInUp; -} -@-webkit-keyframes fadeInDown { - 0% { - opacity: 0; - -webkit-transform: translateY(-20px); - } - - 100% { - opacity: 1; - -webkit-transform: translateY(0); - } -} - -@-moz-keyframes fadeInDown { - 0% { - opacity: 0; - -moz-transform: translateY(-20px); - } - - 100% { - opacity: 1; - -moz-transform: translateY(0); - } -} - -@-o-keyframes fadeInDown { - 0% { - opacity: 0; - -o-transform: translateY(-20px); - } - - 100% { - opacity: 1; - -o-transform: translateY(0); - } -} - -@keyframes fadeInDown { - 0% { - opacity: 0; - transform: translateY(-20px); - } - - 100% { - opacity: 1; - transform: translateY(0); - } -} - -.fadeInDown { - -webkit-animation-name: fadeInDown; - -moz-animation-name: fadeInDown; - -o-animation-name: fadeInDown; - animation-name: fadeInDown; -} -@-webkit-keyframes fadeInLeft { - 0% { - opacity: 0; - -webkit-transform: translateX(-20px); - } - - 100% { - opacity: 1; - -webkit-transform: translateX(0); - } -} - -@-moz-keyframes fadeInLeft { - 0% { - opacity: 0; - -moz-transform: translateX(-20px); - } - - 100% { - opacity: 1; - -moz-transform: translateX(0); - } -} - -@-o-keyframes fadeInLeft { - 0% { - opacity: 0; - -o-transform: translateX(-20px); - } - - 100% { - opacity: 1; - -o-transform: translateX(0); - } -} - -@keyframes fadeInLeft { - 0% { - opacity: 0; - transform: translateX(-20px); - } - - 100% { - opacity: 1; - transform: translateX(0); - } -} - -.fadeInLeft { - -webkit-animation-name: fadeInLeft; - -moz-animation-name: fadeInLeft; - -o-animation-name: fadeInLeft; - animation-name: fadeInLeft; -} -@-webkit-keyframes fadeInRight { - 0% { - opacity: 0; - -webkit-transform: translateX(20px); - } - - 100% { - opacity: 1; - -webkit-transform: translateX(0); - } -} - -@-moz-keyframes fadeInRight { - 0% { - opacity: 0; - -moz-transform: translateX(20px); - } - - 100% { - opacity: 1; - -moz-transform: translateX(0); - } -} - -@-o-keyframes fadeInRight { - 0% { - opacity: 0; - -o-transform: translateX(20px); - } - - 100% { - opacity: 1; - -o-transform: translateX(0); - } -} - -@keyframes fadeInRight { - 0% { - opacity: 0; - transform: translateX(20px); - } - - 100% { - opacity: 1; - transform: translateX(0); - } -} - -.fadeInRight { - -webkit-animation-name: fadeInRight; - -moz-animation-name: fadeInRight; - -o-animation-name: fadeInRight; - animation-name: fadeInRight; -} -@-webkit-keyframes fadeInUpBig { - 0% { - opacity: 0; - -webkit-transform: translateY(2000px); - } - - 100% { - opacity: 1; - -webkit-transform: translateY(0); - } -} - -@-moz-keyframes fadeInUpBig { - 0% { - opacity: 0; - -moz-transform: translateY(2000px); - } - - 100% { - opacity: 1; - -moz-transform: translateY(0); - } -} - -@-o-keyframes fadeInUpBig { - 0% { - opacity: 0; - -o-transform: translateY(2000px); - } - - 100% { - opacity: 1; - -o-transform: translateY(0); - } -} - -@keyframes fadeInUpBig { - 0% { - opacity: 0; - transform: translateY(2000px); - } - - 100% { - opacity: 1; - transform: translateY(0); - } -} - -.fadeInUpBig { - -webkit-animation-name: fadeInUpBig; - -moz-animation-name: fadeInUpBig; - -o-animation-name: fadeInUpBig; - animation-name: fadeInUpBig; -} -@-webkit-keyframes fadeInDownBig { - 0% { - opacity: 0; - -webkit-transform: translateY(-2000px); - } - - 100% { - opacity: 1; - -webkit-transform: translateY(0); - } -} - -@-moz-keyframes fadeInDownBig { - 0% { - opacity: 0; - -moz-transform: translateY(-2000px); - } - - 100% { - opacity: 1; - -moz-transform: translateY(0); - } -} - -@-o-keyframes fadeInDownBig { - 0% { - opacity: 0; - -o-transform: translateY(-2000px); - } - - 100% { - opacity: 1; - -o-transform: translateY(0); - } -} - -@keyframes fadeInDownBig { - 0% { - opacity: 0; - transform: translateY(-2000px); - } - - 100% { - opacity: 1; - transform: translateY(0); - } -} - -.fadeInDownBig { - -webkit-animation-name: fadeInDownBig; - -moz-animation-name: fadeInDownBig; - -o-animation-name: fadeInDownBig; - animation-name: fadeInDownBig; -} -@-webkit-keyframes fadeInLeftBig { - 0% { - opacity: 0; - -webkit-transform: translateX(-2000px); - } - - 100% { - opacity: 1; - -webkit-transform: translateX(0); - } -} -@-moz-keyframes fadeInLeftBig { - 0% { - opacity: 0; - -moz-transform: translateX(-2000px); - } - - 100% { - opacity: 1; - -moz-transform: translateX(0); - } -} -@-o-keyframes fadeInLeftBig { - 0% { - opacity: 0; - -o-transform: translateX(-2000px); - } - - 100% { - opacity: 1; - -o-transform: translateX(0); - } -} -@keyframes fadeInLeftBig { - 0% { - opacity: 0; - transform: translateX(-2000px); - } - - 100% { - opacity: 1; - transform: translateX(0); - } -} - -.fadeInLeftBig { - -webkit-animation-name: fadeInLeftBig; - -moz-animation-name: fadeInLeftBig; - -o-animation-name: fadeInLeftBig; - animation-name: fadeInLeftBig; -} -@-webkit-keyframes fadeInRightBig { - 0% { - opacity: 0; - -webkit-transform: translateX(2000px); - } - - 100% { - opacity: 1; - -webkit-transform: translateX(0); - } -} - -@-moz-keyframes fadeInRightBig { - 0% { - opacity: 0; - -moz-transform: translateX(2000px); - } - - 100% { - opacity: 1; - -moz-transform: translateX(0); - } -} - -@-o-keyframes fadeInRightBig { - 0% { - opacity: 0; - -o-transform: translateX(2000px); - } - - 100% { - opacity: 1; - -o-transform: translateX(0); - } -} - -@keyframes fadeInRightBig { - 0% { - opacity: 0; - transform: translateX(2000px); - } - - 100% { - opacity: 1; - transform: translateX(0); - } -} - -.fadeInRightBig { - -webkit-animation-name: fadeInRightBig; - -moz-animation-name: fadeInRightBig; - -o-animation-name: fadeInRightBig; - animation-name: fadeInRightBig; -} -@-webkit-keyframes fadeOut { - 0% {opacity: 1;} - 100% {opacity: 0;} -} - -@-moz-keyframes fadeOut { - 0% {opacity: 1;} - 100% {opacity: 0;} -} - -@-o-keyframes fadeOut { - 0% {opacity: 1;} - 100% {opacity: 0;} -} - -@keyframes fadeOut { - 0% {opacity: 1;} - 100% {opacity: 0;} -} - -.fadeOut { - -webkit-animation-name: fadeOut; - -moz-animation-name: fadeOut; - -o-animation-name: fadeOut; - animation-name: fadeOut; -} -@-webkit-keyframes fadeOutUp { - 0% { - opacity: 1; - -webkit-transform: translateY(0); - } - - 100% { - opacity: 0; - -webkit-transform: translateY(-20px); - } -} -@-moz-keyframes fadeOutUp { - 0% { - opacity: 1; - -moz-transform: translateY(0); - } - - 100% { - opacity: 0; - -moz-transform: translateY(-20px); - } -} -@-o-keyframes fadeOutUp { - 0% { - opacity: 1; - -o-transform: translateY(0); - } - - 100% { - opacity: 0; - -o-transform: translateY(-20px); - } -} -@keyframes fadeOutUp { - 0% { - opacity: 1; - transform: translateY(0); - } - - 100% { - opacity: 0; - transform: translateY(-20px); - } -} - -.fadeOutUp { - -webkit-animation-name: fadeOutUp; - -moz-animation-name: fadeOutUp; - -o-animation-name: fadeOutUp; - animation-name: fadeOutUp; -} -@-webkit-keyframes fadeOutDown { - 0% { - opacity: 1; - -webkit-transform: translateY(0); - } - - 100% { - opacity: 0; - -webkit-transform: translateY(20px); - } -} - -@-moz-keyframes fadeOutDown { - 0% { - opacity: 1; - -moz-transform: translateY(0); - } - - 100% { - opacity: 0; - -moz-transform: translateY(20px); - } -} - -@-o-keyframes fadeOutDown { - 0% { - opacity: 1; - -o-transform: translateY(0); - } - - 100% { - opacity: 0; - -o-transform: translateY(20px); - } -} - -@keyframes fadeOutDown { - 0% { - opacity: 1; - transform: translateY(0); - } - - 100% { - opacity: 0; - transform: translateY(20px); - } -} - -.fadeOutDown { - -webkit-animation-name: fadeOutDown; - -moz-animation-name: fadeOutDown; - -o-animation-name: fadeOutDown; - animation-name: fadeOutDown; -} -@-webkit-keyframes fadeOutLeft { - 0% { - opacity: 1; - -webkit-transform: translateX(0); - } - - 100% { - opacity: 0; - -webkit-transform: translateX(-20px); - } -} - -@-moz-keyframes fadeOutLeft { - 0% { - opacity: 1; - -moz-transform: translateX(0); - } - - 100% { - opacity: 0; - -moz-transform: translateX(-20px); - } -} - -@-o-keyframes fadeOutLeft { - 0% { - opacity: 1; - -o-transform: translateX(0); - } - - 100% { - opacity: 0; - -o-transform: translateX(-20px); - } -} - -@keyframes fadeOutLeft { - 0% { - opacity: 1; - transform: translateX(0); - } - - 100% { - opacity: 0; - transform: translateX(-20px); - } -} - -.fadeOutLeft { - -webkit-animation-name: fadeOutLeft; - -moz-animation-name: fadeOutLeft; - -o-animation-name: fadeOutLeft; - animation-name: fadeOutLeft; -} -@-webkit-keyframes fadeOutRight { - 0% { - opacity: 1; - -webkit-transform: translateX(0); - } - - 100% { - opacity: 0; - -webkit-transform: translateX(20px); - } -} - -@-moz-keyframes fadeOutRight { - 0% { - opacity: 1; - -moz-transform: translateX(0); - } - - 100% { - opacity: 0; - -moz-transform: translateX(20px); - } -} - -@-o-keyframes fadeOutRight { - 0% { - opacity: 1; - -o-transform: translateX(0); - } - - 100% { - opacity: 0; - -o-transform: translateX(20px); - } -} - -@keyframes fadeOutRight { - 0% { - opacity: 1; - transform: translateX(0); - } - - 100% { - opacity: 0; - transform: translateX(20px); - } -} - -.fadeOutRight { - -webkit-animation-name: fadeOutRight; - -moz-animation-name: fadeOutRight; - -o-animation-name: fadeOutRight; - animation-name: fadeOutRight; -} -@-webkit-keyframes fadeOutUpBig { - 0% { - opacity: 1; - -webkit-transform: translateY(0); - } - - 100% { - opacity: 0; - -webkit-transform: translateY(-2000px); - } -} - -@-moz-keyframes fadeOutUpBig { - 0% { - opacity: 1; - -moz-transform: translateY(0); - } - - 100% { - opacity: 0; - -moz-transform: translateY(-2000px); - } -} - -@-o-keyframes fadeOutUpBig { - 0% { - opacity: 1; - -o-transform: translateY(0); - } - - 100% { - opacity: 0; - -o-transform: translateY(-2000px); - } -} - -@keyframes fadeOutUpBig { - 0% { - opacity: 1; - transform: translateY(0); - } - - 100% { - opacity: 0; - transform: translateY(-2000px); - } -} - -.fadeOutUpBig { - -webkit-animation-name: fadeOutUpBig; - -moz-animation-name: fadeOutUpBig; - -o-animation-name: fadeOutUpBig; - animation-name: fadeOutUpBig; -} -@-webkit-keyframes fadeOutDownBig { - 0% { - opacity: 1; - -webkit-transform: translateY(0); - } - - 100% { - opacity: 0; - -webkit-transform: translateY(2000px); - } -} - -@-moz-keyframes fadeOutDownBig { - 0% { - opacity: 1; - -moz-transform: translateY(0); - } - - 100% { - opacity: 0; - -moz-transform: translateY(2000px); - } -} - -@-o-keyframes fadeOutDownBig { - 0% { - opacity: 1; - -o-transform: translateY(0); - } - - 100% { - opacity: 0; - -o-transform: translateY(2000px); - } -} - -@keyframes fadeOutDownBig { - 0% { - opacity: 1; - transform: translateY(0); - } - - 100% { - opacity: 0; - transform: translateY(2000px); - } -} - -.fadeOutDownBig { - -webkit-animation-name: fadeOutDownBig; - -moz-animation-name: fadeOutDownBig; - -o-animation-name: fadeOutDownBig; - animation-name: fadeOutDownBig; -} -@-webkit-keyframes fadeOutLeftBig { - 0% { - opacity: 1; - -webkit-transform: translateX(0); - } - - 100% { - opacity: 0; - -webkit-transform: translateX(-2000px); - } -} - -@-moz-keyframes fadeOutLeftBig { - 0% { - opacity: 1; - -moz-transform: translateX(0); - } - - 100% { - opacity: 0; - -moz-transform: translateX(-2000px); - } -} - -@-o-keyframes fadeOutLeftBig { - 0% { - opacity: 1; - -o-transform: translateX(0); - } - - 100% { - opacity: 0; - -o-transform: translateX(-2000px); - } -} - -@keyframes fadeOutLeftBig { - 0% { - opacity: 1; - transform: translateX(0); - } - - 100% { - opacity: 0; - transform: translateX(-2000px); - } -} - -.fadeOutLeftBig { - -webkit-animation-name: fadeOutLeftBig; - -moz-animation-name: fadeOutLeftBig; - -o-animation-name: fadeOutLeftBig; - animation-name: fadeOutLeftBig; -} -@-webkit-keyframes fadeOutRightBig { - 0% { - opacity: 1; - -webkit-transform: translateX(0); - } - - 100% { - opacity: 0; - -webkit-transform: translateX(2000px); - } -} -@-moz-keyframes fadeOutRightBig { - 0% { - opacity: 1; - -moz-transform: translateX(0); - } - - 100% { - opacity: 0; - -moz-transform: translateX(2000px); - } -} -@-o-keyframes fadeOutRightBig { - 0% { - opacity: 1; - -o-transform: translateX(0); - } - - 100% { - opacity: 0; - -o-transform: translateX(2000px); - } -} -@keyframes fadeOutRightBig { - 0% { - opacity: 1; - transform: translateX(0); - } - - 100% { - opacity: 0; - transform: translateX(2000px); - } -} - -.fadeOutRightBig { - -webkit-animation-name: fadeOutRightBig; - -moz-animation-name: fadeOutRightBig; - -o-animation-name: fadeOutRightBig; - animation-name: fadeOutRightBig; -} -@-webkit-keyframes bounceIn { - 0% { - opacity: 0; - -webkit-transform: scale(.3); - } - - 50% { - opacity: 1; - -webkit-transform: scale(1.05); - } - - 70% { - -webkit-transform: scale(.9); - } - - 100% { - -webkit-transform: scale(1); - } -} - -@-moz-keyframes bounceIn { - 0% { - opacity: 0; - -moz-transform: scale(.3); - } - - 50% { - opacity: 1; - -moz-transform: scale(1.05); - } - - 70% { - -moz-transform: scale(.9); - } - - 100% { - -moz-transform: scale(1); - } -} - -@-o-keyframes bounceIn { - 0% { - opacity: 0; - -o-transform: scale(.3); - } - - 50% { - opacity: 1; - -o-transform: scale(1.05); - } - - 70% { - -o-transform: scale(.9); - } - - 100% { - -o-transform: scale(1); - } -} - -@keyframes bounceIn { - 0% { - opacity: 0; - transform: scale(.3); - } - - 50% { - opacity: 1; - transform: scale(1.05); - } - - 70% { - transform: scale(.9); - } - - 100% { - transform: scale(1); - } -} - -.bounceIn { - -webkit-animation-name: bounceIn; - -moz-animation-name: bounceIn; - -o-animation-name: bounceIn; - animation-name: bounceIn; -} -@-webkit-keyframes bounceInUp { - 0% { - opacity: 0; - -webkit-transform: translateY(2000px); - } - - 60% { - opacity: 1; - -webkit-transform: translateY(-30px); - } - - 80% { - -webkit-transform: translateY(10px); - } - - 100% { - -webkit-transform: translateY(0); - } -} -@-moz-keyframes bounceInUp { - 0% { - opacity: 0; - -moz-transform: translateY(2000px); - } - - 60% { - opacity: 1; - -moz-transform: translateY(-30px); - } - - 80% { - -moz-transform: translateY(10px); - } - - 100% { - -moz-transform: translateY(0); - } -} - -@-o-keyframes bounceInUp { - 0% { - opacity: 0; - -o-transform: translateY(2000px); - } - - 60% { - opacity: 1; - -o-transform: translateY(-30px); - } - - 80% { - -o-transform: translateY(10px); - } - - 100% { - -o-transform: translateY(0); - } -} - -@keyframes bounceInUp { - 0% { - opacity: 0; - transform: translateY(2000px); - } - - 60% { - opacity: 1; - transform: translateY(-30px); - } - - 80% { - transform: translateY(10px); - } - - 100% { - transform: translateY(0); - } -} - -.bounceInUp { - -webkit-animation-name: bounceInUp; - -moz-animation-name: bounceInUp; - -o-animation-name: bounceInUp; - animation-name: bounceInUp; -} -@-webkit-keyframes bounceInDown { - 0% { - opacity: 0; - -webkit-transform: translateY(-2000px); - } - - 60% { - opacity: 1; - -webkit-transform: translateY(30px); - } - - 80% { - -webkit-transform: translateY(-10px); - } - - 100% { - -webkit-transform: translateY(0); - } -} - -@-moz-keyframes bounceInDown { - 0% { - opacity: 0; - -moz-transform: translateY(-2000px); - } - - 60% { - opacity: 1; - -moz-transform: translateY(30px); - } - - 80% { - -moz-transform: translateY(-10px); - } - - 100% { - -moz-transform: translateY(0); - } -} - -@-o-keyframes bounceInDown { - 0% { - opacity: 0; - -o-transform: translateY(-2000px); - } - - 60% { - opacity: 1; - -o-transform: translateY(30px); - } - - 80% { - -o-transform: translateY(-10px); - } - - 100% { - -o-transform: translateY(0); - } -} - -@keyframes bounceInDown { - 0% { - opacity: 0; - transform: translateY(-2000px); - } - - 60% { - opacity: 1; - transform: translateY(30px); - } - - 80% { - transform: translateY(-10px); - } - - 100% { - transform: translateY(0); - } -} - -.bounceInDown { - -webkit-animation-name: bounceInDown; - -moz-animation-name: bounceInDown; - -o-animation-name: bounceInDown; - animation-name: bounceInDown; -} -@-webkit-keyframes bounceInLeft { - 0% { - opacity: 0; - -webkit-transform: translateX(-2000px); - } - - 60% { - opacity: 1; - -webkit-transform: translateX(30px); - } - - 80% { - -webkit-transform: translateX(-10px); - } - - 100% { - -webkit-transform: translateX(0); - } -} - -@-moz-keyframes bounceInLeft { - 0% { - opacity: 0; - -moz-transform: translateX(-2000px); - } - - 60% { - opacity: 1; - -moz-transform: translateX(30px); - } - - 80% { - -moz-transform: translateX(-10px); - } - - 100% { - -moz-transform: translateX(0); - } -} - -@-o-keyframes bounceInLeft { - 0% { - opacity: 0; - -o-transform: translateX(-2000px); - } - - 60% { - opacity: 1; - -o-transform: translateX(30px); - } - - 80% { - -o-transform: translateX(-10px); - } - - 100% { - -o-transform: translateX(0); - } -} - -@keyframes bounceInLeft { - 0% { - opacity: 0; - transform: translateX(-2000px); - } - - 60% { - opacity: 1; - transform: translateX(30px); - } - - 80% { - transform: translateX(-10px); - } - - 100% { - transform: translateX(0); - } -} - -.bounceInLeft { - -webkit-animation-name: bounceInLeft; - -moz-animation-name: bounceInLeft; - -o-animation-name: bounceInLeft; - animation-name: bounceInLeft; -} -@-webkit-keyframes bounceInRight { - 0% { - opacity: 0; - -webkit-transform: translateX(2000px); - } - - 60% { - opacity: 1; - -webkit-transform: translateX(-30px); - } - - 80% { - -webkit-transform: translateX(10px); - } - - 100% { - -webkit-transform: translateX(0); - } -} - -@-moz-keyframes bounceInRight { - 0% { - opacity: 0; - -moz-transform: translateX(2000px); - } - - 60% { - opacity: 1; - -moz-transform: translateX(-30px); - } - - 80% { - -moz-transform: translateX(10px); - } - - 100% { - -moz-transform: translateX(0); - } -} - -@-o-keyframes bounceInRight { - 0% { - opacity: 0; - -o-transform: translateX(2000px); - } - - 60% { - opacity: 1; - -o-transform: translateX(-30px); - } - - 80% { - -o-transform: translateX(10px); - } - - 100% { - -o-transform: translateX(0); - } -} - -@keyframes bounceInRight { - 0% { - opacity: 0; - transform: translateX(2000px); - } - - 60% { - opacity: 1; - transform: translateX(-30px); - } - - 80% { - transform: translateX(10px); - } - - 100% { - transform: translateX(0); - } -} - -.bounceInRight { - -webkit-animation-name: bounceInRight; - -moz-animation-name: bounceInRight; - -o-animation-name: bounceInRight; - animation-name: bounceInRight; -} -@-webkit-keyframes bounceOut { - 0% { - -webkit-transform: scale(1); - } - - 25% { - -webkit-transform: scale(.95); - } - - 50% { - opacity: 1; - -webkit-transform: scale(1.1); - } - - 100% { - opacity: 0; - -webkit-transform: scale(.3); - } -} - -@-moz-keyframes bounceOut { - 0% { - -moz-transform: scale(1); - } - - 25% { - -moz-transform: scale(.95); - } - - 50% { - opacity: 1; - -moz-transform: scale(1.1); - } - - 100% { - opacity: 0; - -moz-transform: scale(.3); - } -} - -@-o-keyframes bounceOut { - 0% { - -o-transform: scale(1); - } - - 25% { - -o-transform: scale(.95); - } - - 50% { - opacity: 1; - -o-transform: scale(1.1); - } - - 100% { - opacity: 0; - -o-transform: scale(.3); - } -} - -@keyframes bounceOut { - 0% { - transform: scale(1); - } - - 25% { - transform: scale(.95); - } - - 50% { - opacity: 1; - transform: scale(1.1); - } - - 100% { - opacity: 0; - transform: scale(.3); - } -} - -.bounceOut { - -webkit-animation-name: bounceOut; - -moz-animation-name: bounceOut; - -o-animation-name: bounceOut; - animation-name: bounceOut; -} -@-webkit-keyframes bounceOutUp { - 0% { - -webkit-transform: translateY(0); - } - - 20% { - opacity: 1; - -webkit-transform: translateY(20px); - } - - 100% { - opacity: 0; - -webkit-transform: translateY(-2000px); - } -} - -@-moz-keyframes bounceOutUp { - 0% { - -moz-transform: translateY(0); - } - - 20% { - opacity: 1; - -moz-transform: translateY(20px); - } - - 100% { - opacity: 0; - -moz-transform: translateY(-2000px); - } -} - -@-o-keyframes bounceOutUp { - 0% { - -o-transform: translateY(0); - } - - 20% { - opacity: 1; - -o-transform: translateY(20px); - } - - 100% { - opacity: 0; - -o-transform: translateY(-2000px); - } -} - -@keyframes bounceOutUp { - 0% { - transform: translateY(0); - } - - 20% { - opacity: 1; - transform: translateY(20px); - } - - 100% { - opacity: 0; - transform: translateY(-2000px); - } -} - -.bounceOutUp { - -webkit-animation-name: bounceOutUp; - -moz-animation-name: bounceOutUp; - -o-animation-name: bounceOutUp; - animation-name: bounceOutUp; -} -@-webkit-keyframes bounceOutDown { - 0% { - -webkit-transform: translateY(0); - } - - 20% { - opacity: 1; - -webkit-transform: translateY(-20px); - } - - 100% { - opacity: 0; - -webkit-transform: translateY(2000px); - } -} - -@-moz-keyframes bounceOutDown { - 0% { - -moz-transform: translateY(0); - } - - 20% { - opacity: 1; - -moz-transform: translateY(-20px); - } - - 100% { - opacity: 0; - -moz-transform: translateY(2000px); - } -} - -@-o-keyframes bounceOutDown { - 0% { - -o-transform: translateY(0); - } - - 20% { - opacity: 1; - -o-transform: translateY(-20px); - } - - 100% { - opacity: 0; - -o-transform: translateY(2000px); - } -} - -@keyframes bounceOutDown { - 0% { - transform: translateY(0); - } - - 20% { - opacity: 1; - transform: translateY(-20px); - } - - 100% { - opacity: 0; - transform: translateY(2000px); - } -} - -.bounceOutDown { - -webkit-animation-name: bounceOutDown; - -moz-animation-name: bounceOutDown; - -o-animation-name: bounceOutDown; - animation-name: bounceOutDown; -} -@-webkit-keyframes bounceOutLeft { - 0% { - -webkit-transform: translateX(0); - } - - 20% { - opacity: 1; - -webkit-transform: translateX(20px); - } - - 100% { - opacity: 0; - -webkit-transform: translateX(-2000px); - } -} - -@-moz-keyframes bounceOutLeft { - 0% { - -moz-transform: translateX(0); - } - - 20% { - opacity: 1; - -moz-transform: translateX(20px); - } - - 100% { - opacity: 0; - -moz-transform: translateX(-2000px); - } -} - -@-o-keyframes bounceOutLeft { - 0% { - -o-transform: translateX(0); - } - - 20% { - opacity: 1; - -o-transform: translateX(20px); - } - - 100% { - opacity: 0; - -o-transform: translateX(-2000px); - } -} - -@keyframes bounceOutLeft { - 0% { - transform: translateX(0); - } - - 20% { - opacity: 1; - transform: translateX(20px); - } - - 100% { - opacity: 0; - transform: translateX(-2000px); - } -} - -.bounceOutLeft { - -webkit-animation-name: bounceOutLeft; - -moz-animation-name: bounceOutLeft; - -o-animation-name: bounceOutLeft; - animation-name: bounceOutLeft; -} -@-webkit-keyframes bounceOutRight { - 0% { - -webkit-transform: translateX(0); - } - - 20% { - opacity: 1; - -webkit-transform: translateX(-20px); - } - - 100% { - opacity: 0; - -webkit-transform: translateX(2000px); - } -} - -@-moz-keyframes bounceOutRight { - 0% { - -moz-transform: translateX(0); - } - - 20% { - opacity: 1; - -moz-transform: translateX(-20px); - } - - 100% { - opacity: 0; - -moz-transform: translateX(2000px); - } -} - -@-o-keyframes bounceOutRight { - 0% { - -o-transform: translateX(0); - } - - 20% { - opacity: 1; - -o-transform: translateX(-20px); - } - - 100% { - opacity: 0; - -o-transform: translateX(2000px); - } -} - -@keyframes bounceOutRight { - 0% { - transform: translateX(0); - } - - 20% { - opacity: 1; - transform: translateX(-20px); - } - - 100% { - opacity: 0; - transform: translateX(2000px); - } -} - -.bounceOutRight { - -webkit-animation-name: bounceOutRight; - -moz-animation-name: bounceOutRight; - -o-animation-name: bounceOutRight; - animation-name: bounceOutRight; -} -@-webkit-keyframes rotateIn { - 0% { - -webkit-transform-origin: center center; - -webkit-transform: rotate(-200deg); - opacity: 0; - } - - 100% { - -webkit-transform-origin: center center; - -webkit-transform: rotate(0); - opacity: 1; - } -} -@-moz-keyframes rotateIn { - 0% { - -moz-transform-origin: center center; - -moz-transform: rotate(-200deg); - opacity: 0; - } - - 100% { - -moz-transform-origin: center center; - -moz-transform: rotate(0); - opacity: 1; - } -} -@-o-keyframes rotateIn { - 0% { - -o-transform-origin: center center; - -o-transform: rotate(-200deg); - opacity: 0; - } - - 100% { - -o-transform-origin: center center; - -o-transform: rotate(0); - opacity: 1; - } -} -@keyframes rotateIn { - 0% { - transform-origin: center center; - transform: rotate(-200deg); - opacity: 0; - } - - 100% { - transform-origin: center center; - transform: rotate(0); - opacity: 1; - } -} - -.rotateIn { - -webkit-animation-name: rotateIn; - -moz-animation-name: rotateIn; - -o-animation-name: rotateIn; - animation-name: rotateIn; -} -@-webkit-keyframes rotateInUpLeft { - 0% { - -webkit-transform-origin: left bottom; - -webkit-transform: rotate(90deg); - opacity: 0; - } - - 100% { - -webkit-transform-origin: left bottom; - -webkit-transform: rotate(0); - opacity: 1; - } -} - -@-moz-keyframes rotateInUpLeft { - 0% { - -moz-transform-origin: left bottom; - -moz-transform: rotate(90deg); - opacity: 0; - } - - 100% { - -moz-transform-origin: left bottom; - -moz-transform: rotate(0); - opacity: 1; - } -} - -@-o-keyframes rotateInUpLeft { - 0% { - -o-transform-origin: left bottom; - -o-transform: rotate(90deg); - opacity: 0; - } - - 100% { - -o-transform-origin: left bottom; - -o-transform: rotate(0); - opacity: 1; - } -} - -@keyframes rotateInUpLeft { - 0% { - transform-origin: left bottom; - transform: rotate(90deg); - opacity: 0; - } - - 100% { - transform-origin: left bottom; - transform: rotate(0); - opacity: 1; - } -} - -.rotateInUpLeft { - -webkit-animation-name: rotateInUpLeft; - -moz-animation-name: rotateInUpLeft; - -o-animation-name: rotateInUpLeft; - animation-name: rotateInUpLeft; -} -@-webkit-keyframes rotateInDownLeft { - 0% { - -webkit-transform-origin: left bottom; - -webkit-transform: rotate(-90deg); - opacity: 0; - } - - 100% { - -webkit-transform-origin: left bottom; - -webkit-transform: rotate(0); - opacity: 1; - } -} - -@-moz-keyframes rotateInDownLeft { - 0% { - -moz-transform-origin: left bottom; - -moz-transform: rotate(-90deg); - opacity: 0; - } - - 100% { - -moz-transform-origin: left bottom; - -moz-transform: rotate(0); - opacity: 1; - } -} - -@-o-keyframes rotateInDownLeft { - 0% { - -o-transform-origin: left bottom; - -o-transform: rotate(-90deg); - opacity: 0; - } - - 100% { - -o-transform-origin: left bottom; - -o-transform: rotate(0); - opacity: 1; - } -} - -@keyframes rotateInDownLeft { - 0% { - transform-origin: left bottom; - transform: rotate(-90deg); - opacity: 0; - } - - 100% { - transform-origin: left bottom; - transform: rotate(0); - opacity: 1; - } -} - -.rotateInDownLeft { - -webkit-animation-name: rotateInDownLeft; - -moz-animation-name: rotateInDownLeft; - -o-animation-name: rotateInDownLeft; - animation-name: rotateInDownLeft; -} -@-webkit-keyframes rotateInUpRight { - 0% { - -webkit-transform-origin: right bottom; - -webkit-transform: rotate(-90deg); - opacity: 0; - } - - 100% { - -webkit-transform-origin: right bottom; - -webkit-transform: rotate(0); - opacity: 1; - } -} - -@-moz-keyframes rotateInUpRight { - 0% { - -moz-transform-origin: right bottom; - -moz-transform: rotate(-90deg); - opacity: 0; - } - - 100% { - -moz-transform-origin: right bottom; - -moz-transform: rotate(0); - opacity: 1; - } -} - -@-o-keyframes rotateInUpRight { - 0% { - -o-transform-origin: right bottom; - -o-transform: rotate(-90deg); - opacity: 0; - } - - 100% { - -o-transform-origin: right bottom; - -o-transform: rotate(0); - opacity: 1; - } -} - -@keyframes rotateInUpRight { - 0% { - transform-origin: right bottom; - transform: rotate(-90deg); - opacity: 0; - } - - 100% { - transform-origin: right bottom; - transform: rotate(0); - opacity: 1; - } -} - -.rotateInUpRight { - -webkit-animation-name: rotateInUpRight; - -moz-animation-name: rotateInUpRight; - -o-animation-name: rotateInUpRight; - animation-name: rotateInUpRight; -} -@-webkit-keyframes rotateInDownRight { - 0% { - -webkit-transform-origin: right bottom; - -webkit-transform: rotate(90deg); - opacity: 0; - } - - 100% { - -webkit-transform-origin: right bottom; - -webkit-transform: rotate(0); - opacity: 1; - } -} - -@-moz-keyframes rotateInDownRight { - 0% { - -moz-transform-origin: right bottom; - -moz-transform: rotate(90deg); - opacity: 0; - } - - 100% { - -moz-transform-origin: right bottom; - -moz-transform: rotate(0); - opacity: 1; - } -} - -@-o-keyframes rotateInDownRight { - 0% { - -o-transform-origin: right bottom; - -o-transform: rotate(90deg); - opacity: 0; - } - - 100% { - -o-transform-origin: right bottom; - -o-transform: rotate(0); - opacity: 1; - } -} - -@keyframes rotateInDownRight { - 0% { - transform-origin: right bottom; - transform: rotate(90deg); - opacity: 0; - } - - 100% { - transform-origin: right bottom; - transform: rotate(0); - opacity: 1; - } -} - -.rotateInDownRight { - -webkit-animation-name: rotateInDownRight; - -moz-animation-name: rotateInDownRight; - -o-animation-name: rotateInDownRight; - animation-name: rotateInDownRight; -} -@-webkit-keyframes rotateOut { - 0% { - -webkit-transform-origin: center center; - -webkit-transform: rotate(0); - opacity: 1; - } - - 100% { - -webkit-transform-origin: center center; - -webkit-transform: rotate(200deg); - opacity: 0; - } -} - -@-moz-keyframes rotateOut { - 0% { - -moz-transform-origin: center center; - -moz-transform: rotate(0); - opacity: 1; - } - - 100% { - -moz-transform-origin: center center; - -moz-transform: rotate(200deg); - opacity: 0; - } -} - -@-o-keyframes rotateOut { - 0% { - -o-transform-origin: center center; - -o-transform: rotate(0); - opacity: 1; - } - - 100% { - -o-transform-origin: center center; - -o-transform: rotate(200deg); - opacity: 0; - } -} - -@keyframes rotateOut { - 0% { - transform-origin: center center; - transform: rotate(0); - opacity: 1; - } - - 100% { - transform-origin: center center; - transform: rotate(200deg); - opacity: 0; - } -} - -.rotateOut { - -webkit-animation-name: rotateOut; - -moz-animation-name: rotateOut; - -o-animation-name: rotateOut; - animation-name: rotateOut; -} -@-webkit-keyframes rotateOutUpLeft { - 0% { - -webkit-transform-origin: left bottom; - -webkit-transform: rotate(0); - opacity: 1; - } - - 100% { - -webkit-transform-origin: left bottom; - -webkit-transform: rotate(-90deg); - opacity: 0; - } -} - -@-moz-keyframes rotateOutUpLeft { - 0% { - -moz-transform-origin: left bottom; - -moz-transform: rotate(0); - opacity: 1; - } - - 100% { - -moz-transform-origin: left bottom; - -moz-transform: rotate(-90deg); - opacity: 0; - } -} - -@-o-keyframes rotateOutUpLeft { - 0% { - -o-transform-origin: left bottom; - -o-transform: rotate(0); - opacity: 1; - } - - 100% { - -o-transform-origin: left bottom; - -o-transform: rotate(-90deg); - opacity: 0; - } -} - -@keyframes rotateOutUpLeft { - 0% { - transform-origin: left bottom; - transform: rotate(0); - opacity: 1; - } - - 100% { - transform-origin: left bottom; - transform: rotate(-90deg); - opacity: 0; - } -} - -.rotateOutUpLeft { - -webkit-animation-name: rotateOutUpLeft; - -moz-animation-name: rotateOutUpLeft; - -o-animation-name: rotateOutUpLeft; - animation-name: rotateOutUpLeft; -} -@-webkit-keyframes rotateOutDownLeft { - 0% { - -webkit-transform-origin: left bottom; - -webkit-transform: rotate(0); - opacity: 1; - } - - 100% { - -webkit-transform-origin: left bottom; - -webkit-transform: rotate(90deg); - opacity: 0; - } -} - -@-moz-keyframes rotateOutDownLeft { - 0% { - -moz-transform-origin: left bottom; - -moz-transform: rotate(0); - opacity: 1; - } - - 100% { - -moz-transform-origin: left bottom; - -moz-transform: rotate(90deg); - opacity: 0; - } -} - -@-o-keyframes rotateOutDownLeft { - 0% { - -o-transform-origin: left bottom; - -o-transform: rotate(0); - opacity: 1; - } - - 100% { - -o-transform-origin: left bottom; - -o-transform: rotate(90deg); - opacity: 0; - } -} - -@keyframes rotateOutDownLeft { - 0% { - transform-origin: left bottom; - transform: rotate(0); - opacity: 1; - } - - 100% { - transform-origin: left bottom; - transform: rotate(90deg); - opacity: 0; - } -} - -.rotateOutDownLeft { - -webkit-animation-name: rotateOutDownLeft; - -moz-animation-name: rotateOutDownLeft; - -o-animation-name: rotateOutDownLeft; - animation-name: rotateOutDownLeft; -} -@-webkit-keyframes rotateOutUpRight { - 0% { - -webkit-transform-origin: right bottom; - -webkit-transform: rotate(0); - opacity: 1; - } - - 100% { - -webkit-transform-origin: right bottom; - -webkit-transform: rotate(90deg); - opacity: 0; - } -} - -@-moz-keyframes rotateOutUpRight { - 0% { - -moz-transform-origin: right bottom; - -moz-transform: rotate(0); - opacity: 1; - } - - 100% { - -moz-transform-origin: right bottom; - -moz-transform: rotate(90deg); - opacity: 0; - } -} - -@-o-keyframes rotateOutUpRight { - 0% { - -o-transform-origin: right bottom; - -o-transform: rotate(0); - opacity: 1; - } - - 100% { - -o-transform-origin: right bottom; - -o-transform: rotate(90deg); - opacity: 0; - } -} - -@keyframes rotateOutUpRight { - 0% { - transform-origin: right bottom; - transform: rotate(0); - opacity: 1; - } - - 100% { - transform-origin: right bottom; - transform: rotate(90deg); - opacity: 0; - } -} - -.rotateOutUpRight { - -webkit-animation-name: rotateOutUpRight; - -moz-animation-name: rotateOutUpRight; - -o-animation-name: rotateOutUpRight; - animation-name: rotateOutUpRight; -} -@-webkit-keyframes rotateOutDownRight { - 0% { - -webkit-transform-origin: right bottom; - -webkit-transform: rotate(0); - opacity: 1; - } - - 100% { - -webkit-transform-origin: right bottom; - -webkit-transform: rotate(-90deg); - opacity: 0; - } -} - -@-moz-keyframes rotateOutDownRight { - 0% { - -moz-transform-origin: right bottom; - -moz-transform: rotate(0); - opacity: 1; - } - - 100% { - -moz-transform-origin: right bottom; - -moz-transform: rotate(-90deg); - opacity: 0; - } -} - -@-o-keyframes rotateOutDownRight { - 0% { - -o-transform-origin: right bottom; - -o-transform: rotate(0); - opacity: 1; - } - - 100% { - -o-transform-origin: right bottom; - -o-transform: rotate(-90deg); - opacity: 0; - } -} - -@keyframes rotateOutDownRight { - 0% { - transform-origin: right bottom; - transform: rotate(0); - opacity: 1; - } - - 100% { - transform-origin: right bottom; - transform: rotate(-90deg); - opacity: 0; - } -} - -.rotateOutDownRight { - -webkit-animation-name: rotateOutDownRight; - -moz-animation-name: rotateOutDownRight; - -o-animation-name: rotateOutDownRight; - animation-name: rotateOutDownRight; -} -@-webkit-keyframes hinge { - 0% { -webkit-transform: rotate(0); -webkit-transform-origin: top left; -webkit-animation-timing-function: ease-in-out; } - 20%, 60% { -webkit-transform: rotate(80deg); -webkit-transform-origin: top left; -webkit-animation-timing-function: ease-in-out; } - 40% { -webkit-transform: rotate(60deg); -webkit-transform-origin: top left; -webkit-animation-timing-function: ease-in-out; } - 80% { -webkit-transform: rotate(60deg) translateY(0); opacity: 1; -webkit-transform-origin: top left; -webkit-animation-timing-function: ease-in-out; } - 100% { -webkit-transform: translateY(700px); opacity: 0; } -} - -@-moz-keyframes hinge { - 0% { -moz-transform: rotate(0); -moz-transform-origin: top left; -moz-animation-timing-function: ease-in-out; } - 20%, 60% { -moz-transform: rotate(80deg); -moz-transform-origin: top left; -moz-animation-timing-function: ease-in-out; } - 40% { -moz-transform: rotate(60deg); -moz-transform-origin: top left; -moz-animation-timing-function: ease-in-out; } - 80% { -moz-transform: rotate(60deg) translateY(0); opacity: 1; -moz-transform-origin: top left; -moz-animation-timing-function: ease-in-out; } - 100% { -moz-transform: translateY(700px); opacity: 0; } -} - -@-o-keyframes hinge { - 0% { -o-transform: rotate(0); -o-transform-origin: top left; -o-animation-timing-function: ease-in-out; } - 20%, 60% { -o-transform: rotate(80deg); -o-transform-origin: top left; -o-animation-timing-function: ease-in-out; } - 40% { -o-transform: rotate(60deg); -o-transform-origin: top left; -o-animation-timing-function: ease-in-out; } - 80% { -o-transform: rotate(60deg) translateY(0); opacity: 1; -o-transform-origin: top left; -o-animation-timing-function: ease-in-out; } - 100% { -o-transform: translateY(700px); opacity: 0; } -} - -@keyframes hinge { - 0% { transform: rotate(0); transform-origin: top left; animation-timing-function: ease-in-out; } - 20%, 60% { transform: rotate(80deg); transform-origin: top left; animation-timing-function: ease-in-out; } - 40% { transform: rotate(60deg); transform-origin: top left; animation-timing-function: ease-in-out; } - 80% { transform: rotate(60deg) translateY(0); opacity: 1; transform-origin: top left; animation-timing-function: ease-in-out; } - 100% { transform: translateY(700px); opacity: 0; } -} - -.hinge { - -webkit-animation-name: hinge; - -moz-animation-name: hinge; - -o-animation-name: hinge; - animation-name: hinge; -} -/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ - -@-webkit-keyframes rollIn { - 0% { opacity: 0; -webkit-transform: translateX(-100%) rotate(-120deg); } - 100% { opacity: 1; -webkit-transform: translateX(0px) rotate(0deg); } -} - -@-moz-keyframes rollIn { - 0% { opacity: 0; -moz-transform: translateX(-100%) rotate(-120deg); } - 100% { opacity: 1; -moz-transform: translateX(0px) rotate(0deg); } -} - -@-o-keyframes rollIn { - 0% { opacity: 0; -o-transform: translateX(-100%) rotate(-120deg); } - 100% { opacity: 1; -o-transform: translateX(0px) rotate(0deg); } -} - -@keyframes rollIn { - 0% { opacity: 0; transform: translateX(-100%) rotate(-120deg); } - 100% { opacity: 1; transform: translateX(0px) rotate(0deg); } -} - -.rollIn { - -webkit-animation-name: rollIn; - -moz-animation-name: rollIn; - -o-animation-name: rollIn; - animation-name: rollIn; -} -/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ - -@-webkit-keyframes rollOut { - 0% { - opacity: 1; - -webkit-transform: translateX(0px) rotate(0deg); - } - - 100% { - opacity: 0; - -webkit-transform: translateX(100%) rotate(120deg); - } -} - -@-moz-keyframes rollOut { - 0% { - opacity: 1; - -moz-transform: translateX(0px) rotate(0deg); - } - - 100% { - opacity: 0; - -moz-transform: translateX(100%) rotate(120deg); - } -} - -@-o-keyframes rollOut { - 0% { - opacity: 1; - -o-transform: translateX(0px) rotate(0deg); - } - - 100% { - opacity: 0; - -o-transform: translateX(100%) rotate(120deg); - } -} - -@keyframes rollOut { - 0% { - opacity: 1; - transform: translateX(0px) rotate(0deg); - } - - 100% { - opacity: 0; - transform: translateX(100%) rotate(120deg); - } -} - -.rollOut { - -webkit-animation-name: rollOut; - -moz-animation-name: rollOut; - -o-animation-name: rollOut; - animation-name: rollOut; -} - -/* originally authored by Angelo Rohit - https://github.com/angelorohit */ - -@-webkit-keyframes lightSpeedIn { - 0% { -webkit-transform: translateX(100%) skewX(-30deg); opacity: 0; } - 60% { -webkit-transform: translateX(-20%) skewX(30deg); opacity: 1; } - 80% { -webkit-transform: translateX(0%) skewX(-15deg); opacity: 1; } - 100% { -webkit-transform: translateX(0%) skewX(0deg); opacity: 1; } -} - -@-moz-keyframes lightSpeedIn { - 0% { -moz-transform: translateX(100%) skewX(-30deg); opacity: 0; } - 60% { -moz-transform: translateX(-20%) skewX(30deg); opacity: 1; } - 80% { -moz-transform: translateX(0%) skewX(-15deg); opacity: 1; } - 100% { -moz-transform: translateX(0%) skewX(0deg); opacity: 1; } -} - -@-o-keyframes lightSpeedIn { - 0% { -o-transform: translateX(100%) skewX(-30deg); opacity: 0; } - 60% { -o-transform: translateX(-20%) skewX(30deg); opacity: 1; } - 80% { -o-transform: translateX(0%) skewX(-15deg); opacity: 1; } - 100% { -o-transform: translateX(0%) skewX(0deg); opacity: 1; } -} - -@keyframes lightSpeedIn { - 0% { transform: translateX(100%) skewX(-30deg); opacity: 0; } - 60% { transform: translateX(-20%) skewX(30deg); opacity: 1; } - 80% { transform: translateX(0%) skewX(-15deg); opacity: 1; } - 100% { transform: translateX(0%) skewX(0deg); opacity: 1; } -} - -.lightSpeedIn { - -webkit-animation-name: lightSpeedIn; - -moz-animation-name: lightSpeedIn; - -o-animation-name: lightSpeedIn; - animation-name: lightSpeedIn; - - -webkit-animation-timing-function: ease-out; - -moz-animation-timing-function: ease-out; - -o-animation-timing-function: ease-out; - animation-timing-function: ease-out; -} - -.animated.lightSpeedIn { - -webkit-animation-duration: 0.5s; - -moz-animation-duration: 0.5s; - -o-animation-duration: 0.5s; - animation-duration: 0.5s; -} - -/* originally authored by Angelo Rohit - https://github.com/angelorohit */ - -@-webkit-keyframes lightSpeedOut { - 0% { -webkit-transform: translateX(0%) skewX(0deg); opacity: 1; } - 100% { -webkit-transform: translateX(100%) skewX(-30deg); opacity: 0; } -} - -@-moz-keyframes lightSpeedOut { - 0% { -moz-transform: translateX(0%) skewX(0deg); opacity: 1; } - 100% { -moz-transform: translateX(100%) skewX(-30deg); opacity: 0; } -} - -@-o-keyframes lightSpeedOut { - 0% { -o-transform: translateX(0%) skewX(0deg); opacity: 1; } - 100% { -o-transform: translateX(100%) skewX(-30deg); opacity: 0; } -} - -@keyframes lightSpeedOut { - 0% { transform: translateX(0%) skewX(0deg); opacity: 1; } - 100% { transform: translateX(100%) skewX(-30deg); opacity: 0; } -} - -.lightSpeedOut { - -webkit-animation-name: lightSpeedOut; - -moz-animation-name: lightSpeedOut; - -o-animation-name: lightSpeedOut; - animation-name: lightSpeedOut; - - -webkit-animation-timing-function: ease-in; - -moz-animation-timing-function: ease-in; - -o-animation-timing-function: ease-in; - animation-timing-function: ease-in; -} - -.animated.lightSpeedOut { - -webkit-animation-duration: 0.25s; - -moz-animation-duration: 0.25s; - -o-animation-duration: 0.25s; - animation-duration: 0.25s; -} - -/* originally authored by Angelo Rohit - https://github.com/angelorohit */ - -@-webkit-keyframes wiggle { - 0% { -webkit-transform: skewX(9deg); } - 10% { -webkit-transform: skewX(-8deg); } - 20% { -webkit-transform: skewX(7deg); } - 30% { -webkit-transform: skewX(-6deg); } - 40% { -webkit-transform: skewX(5deg); } - 50% { -webkit-transform: skewX(-4deg); } - 60% { -webkit-transform: skewX(3deg); } - 70% { -webkit-transform: skewX(-2deg); } - 80% { -webkit-transform: skewX(1deg); } - 90% { -webkit-transform: skewX(0deg); } - 100% { -webkit-transform: skewX(0deg); } -} - -@-moz-keyframes wiggle { - 0% { -moz-transform: skewX(9deg); } - 10% { -moz-transform: skewX(-8deg); } - 20% { -moz-transform: skewX(7deg); } - 30% { -moz-transform: skewX(-6deg); } - 40% { -moz-transform: skewX(5deg); } - 50% { -moz-transform: skewX(-4deg); } - 60% { -moz-transform: skewX(3deg); } - 70% { -moz-transform: skewX(-2deg); } - 80% { -moz-transform: skewX(1deg); } - 90% { -moz-transform: skewX(0deg); } - 100% { -moz-transform: skewX(0deg); } -} - -@-o-keyframes wiggle { - 0% { -o-transform: skewX(9deg); } - 10% { -o-transform: skewX(-8deg); } - 20% { -o-transform: skewX(7deg); } - 30% { -o-transform: skewX(-6deg); } - 40% { -o-transform: skewX(5deg); } - 50% { -o-transform: skewX(-4deg); } - 60% { -o-transform: skewX(3deg); } - 70% { -o-transform: skewX(-2deg); } - 80% { -o-transform: skewX(1deg); } - 90% { -o-transform: skewX(0deg); } - 100% { -o-transform: skewX(0deg); } -} - -@keyframes wiggle { - 0% { transform: skewX(9deg); } - 10% { transform: skewX(-8deg); } - 20% { transform: skewX(7deg); } - 30% { transform: skewX(-6deg); } - 40% { transform: skewX(5deg); } - 50% { transform: skewX(-4deg); } - 60% { transform: skewX(3deg); } - 70% { transform: skewX(-2deg); } - 80% { transform: skewX(1deg); } - 90% { transform: skewX(0deg); } - 100% { transform: skewX(0deg); } -} - -.wiggle { - -webkit-animation-name: wiggle; - -moz-animation-name: wiggle; - -o-animation-name: wiggle; - animation-name: wiggle; - - -webkit-animation-timing-function: ease-in; - -moz-animation-timing-function: ease-in; - -o-animation-timing-function: ease-in; - animation-timing-function: ease-in; -} - -.animated.wiggle { - -webkit-animation-duration: 0.75s; - -moz-animation-duration: 0.75s; - -o-animation-duration: 0.75s; - animation-duration: 0.75s; -} diff --git a/portal-common/src/main/webapp/common/css/frame-style.css b/portal-common/src/main/webapp/common/css/frame-style.css deleted file mode 100644 index 4470f2be..00000000 --- a/portal-common/src/main/webapp/common/css/frame-style.css +++ /dev/null @@ -1,255 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -#recommend_notice{ - height:30px; - width:100%; - left:0px; - right:0px; - line-height:30px; - text-align:center; - position:absolute; - float:bottom; - bottom:35px; - z-index:2; - cursor:default; -} - -#recommend_notice:hover { - color: #F75000; -} -.menuDivider{ - height:1px; - margin:9px 0; - text-align: center; - overflow:hidden; - background-color:#a6a6a6 !important; -} - -.page-content .page-breadcrumb.breadcrumb { - -webkit-border-radius: 0px; - -moz-border-radius: 0px; - border-radius: 0px; - box-shadow: none; - padding-right: 30px; - padding-left: 8px; - margin-top: 0px !important; - margin-bottom: 10px !important; - border:0px !important; - background-color: #fff; -} -.page-mainIframe{ -border: 0px; -margin: 0px; -padding: 0px; -} - -.zte-navbar-brand { - /*display: inline-block;*/ - padding:0px; - margin-top: -1px; - margin-right: 0px; - width: 225px; - height: 42px; -} - -.zte-navbar-brand img { - margin-left: 10px; - margin-top: 4px; -} - -.zte-navbar-brand.text-logo { - padding-left: 20px; - padding-top: 12px; -} -.zte-brand-text{ - font-size:14px; - font-family:Arial; - color:#ffffff !important; - font-family:"microsoft yahei"; -} -.zte-theme-panel { - width: 45px; - margin-top: -2px; - margin-right: -5px; - z-index: 999; - float: right; - position:relative; -} - -.zte-theme-panel > .toggler { - top:12px; - right:14px; - padding:11px; - cursor:pointer; - position:absolute; - display: block; - background:url(../image/icon-color.png) center no-repeat; -} - -.zte-theme-panel > .toggler:hover { - background-color: #3d3d3d; -} - -.zte-theme-panel > .toggler-close { - display: none; - top:4px; - right:0; - padding:20px; - cursor:pointer; - position:absolute; - background: #3d3d3d url(../image/icon-color-close.png) center no-repeat !important; -} - -.zte-theme-panel > .toggler-close:hover { - background-color:#222 !important; -} - -.zte-theme-panel > .theme-options { - min-width:228px; - top: 44px; - right: 0px; - display:none; - position:absolute; - background:#3d3d3d; -} - -.zte-theme-panel > .theme-options > .theme-option { - color:#cfcfcf; - padding: 15px; - border-top:1px solid #585858; - margin-top: 0px; - margin-bottom: 0px; -} - -.zte-theme-panel > .theme-options > .theme-option.theme-colors { - border-top: 0; -} - -.zte-theme-panel > .theme-options > .theme-option > span { - display: inline-block; - width: 80px; - font-size: 14px; -} - -.zte-theme-panel > .theme-options > .theme-option.theme-colors > span { - display: block; - width: auto; -} - -.zte-theme-panel > .theme-options > .theme-option > select.form-control { - display: inline; - width: 110px !important; -} - -.zte-theme-panel > .theme-options > .theme-option.theme-colors > ul { - list-style:none; - padding: 0; - display: block; - margin-bottom: 1px !important; - margin-top: 10px; -} - -.zte-theme-panel > .theme-options > .theme-option.theme-colors > ul > li { - width:24px; - height:24px; - margin:4 4px; - cursor:pointer; - list-style:none; - float: left; - border:solid 1px #707070; -} - -.zte-theme-panel > .theme-options > .theme-option.theme-colors > ul > li:first-child { - margin-left: 4; -} - -.zte-theme-panel > .theme-options > .theme-option.theme-colors > ul > li:hover, -.zte-theme-panel > .theme-options > .theme-option.theme-colors > ul > li.current { - border:solid 2px #ebebeb; -} - -.zte-theme-panel > .theme-options > .theme-option.theme-colors > ul > li.color-black { - background:#333438; -} -.zte-theme-panel> .theme-options > .theme-option.theme-colors > ul > li.color-ztebluelight { - background:#3366cc; -} -.zte-theme-panel> .theme-options > .theme-option.theme-colors > ul > li.color-ztebluelight2 { - background:#1178ee; -} -.zte-theme-panel> .theme-options > .theme-option.theme-colors > ul > li.color-ztebluelight3 { - background:#067ead; -} -.zte-theme-panel> .theme-options > .theme-option.theme-colors > ul > li.color-ztebluelight4 { - background:#333333; -} -.zte-theme-panel > .theme-options > .theme-option.theme-colors > ul > li.color-zteblue { - background:#1b8fd3; -} -.zte-theme-panel > .theme-options > .theme-option.theme-colors > ul > li.color-grey { - background:#6d6d6d; -} - -.zte-theme-panel > .theme-options > .theme-option.theme-colors > ul > li.color-blue { - background:#124f94; -} - -.zte-theme-panel > .theme-options > .theme-option.theme-colors > ul > li.color-brown { - background:#623f18; -} - -.zte-theme-panel > .theme-options > .theme-option.theme-colors > ul > li.color-purple { - background:#701584; -} - -.zte-theme-panel > .theme-options > .theme-option.theme-colors > ul > li.color-white { - background:#fff; -} -.header.navbar .navbar-nav { - min-width: 210px; -} -.header.navbar .navbar-toggle { - margin: 8px 0px 4px 6px; - padding: 5px 0px 6px 6px; -} - -.nav-tabs li a span.remove{ - color: #f00; - margin-left: 10px; - cursor:hand; -} -.nav-tabs li a span.tabdropremove{ - color: #f00; - margin-right: 10px; - float:right; - cursor:hand; -} -@media (min-width: 768px){ - .navbar-collapse.collapse.hideSideMenuForMainPage { - display: none !important; - } -} -#f_hormenu li.mega-menu-dropdown{ - margin-left:30px; -} -.page-sidebar .sidebar-toggler{ -margin-left:190px; -margin-bottom:5px; -} -.header.navbar .hor-menu ul.nav li.current .selected, -.header.navbar .hor-menu ul.nav li.active .selected{ -margin-bottom:-5px; -} \ No newline at end of file diff --git a/portal-common/src/main/webapp/common/css/login-apk.css b/portal-common/src/main/webapp/common/css/login-apk.css deleted file mode 100644 index 6b993284..00000000 --- a/portal-common/src/main/webapp/common/css/login-apk.css +++ /dev/null @@ -1,183 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*** -Login page -***/ - -/* logo page */ -.login { - background-color: #666 !important; -} - -.login .logo { - margin: 0 auto; - margin-top:60px; - padding: 15px; - text-align: center; -} - - -.login .content { - background: url(../../../common/image/bg-white-lock.png) repeat; - width: 360px; - margin: 0 auto; - margin-bottom: 0px; - padding: 30px; - padding-top: 20px; - padding-bottom: 15px; -} - -.login .content h3 { - color: #eee; -} -.login .content h4 { - color: #eee; -} - -.login .content p, -.login .content label { - color: #fff; -} - -.login .content .login-form, -.login .content .forget-form { - padding: 0px; - margin: 0px; -} - -.login .content .form-control { - background-color: #fff; -} - -.login .content .forget-form { - display: none; -} - -.login .content .register-form { - display: none; -} - -.login .content .form-title { - font-weight: 300; - margin-bottom: 25px; -} - -.login .content .form-actions { - background-color: transparent; - clear: both; - border: 0px; - padding: 0px 30px 25px 30px; - margin-left: -30px; - margin-right: -30px; -} - -.login .content .form-actions .checkbox { - margin-left: 20px; - padding-left: 0; -} - -.login .content .forget-form .form-actions { - border: 0; - margin-bottom: 0; - padding-bottom: 20px; -} - -.login .content .register-form .form-actions { - border: 0; - margin-bottom: 0; - padding-bottom: 0px; -} - -.login .content .form-actions .checkbox { - margin-top: 8px; - display: inline-block; -} - -.login .content .form-actions .btn { - margin-top: 1px; -} - -.login .content .forget-password { - margin-top: 25px; -} - -.login .content .create-account { - border-top: 1px dotted #eee; - padding-top: 10px; - margin-top: 15px; -} - -.login .content .create-account a { - display: inline-block; - margin-top: 5px; -} - -/* select2 dropdowns */ -.login .content .select2-container i { - display: inline-block; - position: relative; - color: #ccc; - z-index: 1; - top:1px; - margin: 4px 4px 0px 3px; - width: 16px; - height: 16px; - font-size: 16px; - text-align: center; -} - -.login .content .has-error .select2-container i { - color: #b94a48; -} - -.login .content .select2-container a span { - font-size: 13px; -} - -.login .content .select2-container a span img { - margin-left: 4px; -} - -/* footer copyright */ -.login .copyright { - text-align: center; - margin: 0 auto; - padding: 10px; - color: #eee; - font-size: 13px; -} - -@media (max-width: 480px) { - /*** - Login page - ***/ - .login .logo { - margin-top:10px; - } - - .login .content { - padding: 30px; - width: 222px; - } - - .login .content h3 { - font-size: 22px; - } - - .login .checkbox { - font-size: 13px; - } -} \ No newline at end of file diff --git a/portal-common/src/main/webapp/common/css/login.css b/portal-common/src/main/webapp/common/css/login.css deleted file mode 100644 index 45b31147..00000000 --- a/portal-common/src/main/webapp/common/css/login.css +++ /dev/null @@ -1,200 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*** -Login page -***/ - -/* logo page */ -.login { - background-color: #666 !important; -} - -.login .logo { - margin: 0 auto; - padding: 15px; - text-align: center; -} - - -.login .content { - background: url(../image/bg-white-lock.png) repeat; - width: 360px; - margin: 0 auto; - margin-top: 150px; - padding: 30px; - padding-top: 20px; - padding-bottom: 15px; - border-radius:5px; - -webkit-box-shadow: 2px 3px 3px #717171; - -moz-box-shadow: 2px 3px 3px #717171; - box-shadow: -1px 1px 1px rgba(255,255,255,0.6) inset,-3px 3px 5px rgba(0,0,0,0.2); -} - -.login .content h3 { - color: #474747; - letter-spacing:5px; - font-size:20px ; - font-family: 'Microsoft Yahei', sans-serif; - text-shadow:-1px 1px rgba(221, 221, 221, 1); -} -.login .content h4 { - color: #eee; -} - -.login .content p, -.login .content label { - color: #4b4b4b; -} - -.login .content .login-form, -.login .content .forget-form { - padding: 0px; - margin: 0px; -} - -.login .content .form-control { - background-color: #fff; - border-radius:15px; -} - -.login .content .forget-form { - display: none; -} - -.login .content .register-form { - display: none; -} - -.login .content .form-title { - font-weight: 300; - margin-bottom: 25px; - text-align: center; -} - -.login .content .form-actions { - background-color: transparent; - clear: both; - border: 0px; - padding: 0px 30px 25px 30px; - margin-left: -30px; - margin-right: -30px; -} - -.login .content .form-actions .checkbox { - margin-left: 20px; - padding-left: 0; -} - -.login .content .forget-form .form-actions { - border: 0; - margin-bottom: 0; - padding-bottom: 20px; -} - -.login .content .register-form .form-actions { - border: 0; - margin-bottom: 0; - padding-bottom: 0px; -} - -.login .content .form-actions .checkbox { - margin-top: 8px; - display: inline-block; -} - -.login .content .form-actions .btn { - margin-top: 1px; - border-radius:20px; -} - -.login .content .forget-password { - margin-top: 25px; -} - -.login .content .create-account { - border-top: 1px dotted #eee; - padding-top: 10px; - margin-top: 15px; -} - -.login .content .create-account a { - display: inline-block; - margin-top: 5px; -} - -/* select2 dropdowns */ -.login .content .select2-container i { - display: inline-block; - position: relative; - color: #ccc; - z-index: 1; - top:1px; - margin: 4px 4px 0px 3px; - width: 16px; - height: 16px; - font-size: 16px; - text-align: center; -} - -.login .content .has-error .select2-container i { - color: #b94a48; -} - -.login .content .select2-container a span { - font-size: 13px; -} - -.login .content .select2-container a span img { - margin-left: 4px; -} -.form-control:focus{ - border:1px solid #5ca3b7 !important; - box-shadow:0px 0px 2px #2aabec !important; -} -/* footer copyright */ -.login .copyright { - text-align: center; - margin: 0 auto; - padding: 10px; - color: #eee; - font-size: 13px; -} - -@media (max-width: 480px) { - /*** - Login page - ***/ - .login .logo { - margin-top:10px; - } - - .login .content { - padding: 30px; - width: 222px; - } - - .login .content h3 { - font-size: 22px; - } - - .login .checkbox { - font-size: 13px; - } -} - -.descLabel{ - width:320px; -} \ No newline at end of file diff --git a/portal-common/src/main/webapp/common/css/main_page.css b/portal-common/src/main/webapp/common/css/main_page.css deleted file mode 100644 index 4089657b..00000000 --- a/portal-common/src/main/webapp/common/css/main_page.css +++ /dev/null @@ -1,48 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -html, body { - margin: 0; - padding: 0; -} - -.layout { - padding-top:0px; -} - -body { - font-family: microsoft yahei !important; - background: #484747; -} - -.main-page-wrapper { - margin-left: 100px; - margin-right: 100px; -} - -.brick .row { - margin-right: 5px; - margin-left: 5px; - margin-top: 10px; -} - -.column{ - padding-left: 5px; - padding-right: 5px; -} - -a:hover{ - color:white; -} diff --git a/portal-common/src/main/webapp/common/css/more-operation.css b/portal-common/src/main/webapp/common/css/more-operation.css deleted file mode 100644 index d9cc08a8..00000000 --- a/portal-common/src/main/webapp/common/css/more-operation.css +++ /dev/null @@ -1,167 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -a { - text-decoration: none !important; -} - -.box{ -height:95px ; -color:#333; -text-align:right; -padding-bottom:20px; -font-size:14px; -text-align:center; -} - -.row a{ -font-weight:normal; -font-size:14px; - -} - -.alarmTitle{ -padding-left:20px; -margin-top: 10px; -} -@media (min-width: 758px) and (max-width: 997px){ - .alarmTitle{ - display:none; - } - .alarmTypePadding{ - padding-left: 25%; - } -} -@media (max-width: 757px){ - .alarmTitle{ - display:none; - } - .alarmTypePadding{ - padding-left: 20%; - } -} - -.titlefont{ - font-size:16px; -} -.label{ - font-weight: 400; -} - -.row1{ - margin-right: 0px !important; -} - -.queryLink{ - font-size: 14px; - margin-top: 10px; - color:#5b9bd1; -} -.carousel-control { - position: absolute; - top: 0; - left: 0; - bottom: 0; - width: 3% !important; - opacity: .5; - filter: alpha(opacity=50); - font-size: 20px; - color: #C7C7C7; - text-align: center; - text-shadow: 0 1px 2px rgba(0,0,0,.6); -} -.carousel-control:hover{ - color: #969494; -} -.carousel-control .glyphicon-chevron-left, .carousel-control .glyphicon-chevron-right, .carousel-control .icon-prev, .carousel-control .icon-next { - margin-left:0; - font-size:25px; - margin-top:-12px; -} -.carousel-control .icon-next, .carousel-control .glyphicon-chevron-right{ - right:35px; -} - -.carousel-inner{ - overflow: visible; -} - -.item { - overflow: visible !important; - display: block!important; - margin-bottom: 0px !important; -} - -.carousel-control.left,.carousel-control.right{ - background-image:none; -} -.upArrowArea{ - background:#fff; - margin-top:-18px; - margin-bottom: 15px; -} -.boxOperation { - color:#1178ee; - background-repeat: no-repeat; - background-position-y: 100%; - height:30px; - line-height:30px; - font-size: 14px; - font-weight:bold; - margin-top:5px; - height:35px; - padding-left:15px; - padding-right:15px; -} -.moreButton:first-child .boxOperation { - margin-left: 45px; -} -.moreButton:last-child .boxOperation { - margin-right: 45px; -} -.moreButton:first-child .boxOperationOnePage{ - margin-left: 0px !important; -} - -.moreOpen { - height: 40px; -} -.moreClose { - height: 0px; - display:none !important; -} -.moreButton{ - float: left; - position: relative; - min-height: 1px; - } -.boxOperation:hover{ - color:#1069d0; -} -.moreButtonSelected{ - background-color: #fff !important; - color:#333; - border-top:3px #f3565d solid; -} -ul{ - list-style-type:none; -} -li{ - list-style-type:none; -} -.dropdown-menu { - z-index: 9991 !important;; -} \ No newline at end of file diff --git a/portal-common/src/main/webapp/common/css/ngict-component.css b/portal-common/src/main/webapp/common/css/ngict-component.css deleted file mode 100644 index 99e24f31..00000000 --- a/portal-common/src/main/webapp/common/css/ngict-component.css +++ /dev/null @@ -1,789 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -body { - color: #333; - font-size: 14px; - font-family: "Microsoft yahei", Arial !important; - background-color: transparent; -} - -/*fontIcon*/ - -[class^="ict-"], -[class*=" ict-"] { - padding-right: 3px; -} - -/*common color*/ - -.blue1 { - background-color: #5b9bd1; - color: #fff; -} - -.blue1:hover { - background-color: #487ca9; - color: #fff; -} - -.blue2 { - background-color: #57b5e3; - color: #fff; -} - -.blue2:hover { - background-color: #43a1cf; - color: #fff; -} - -.red { - background-color: #e35b5a; - color: #fff; -} - -.red:hover { - background-color: #d45150; - color: #fff; -} - -.green { - background-color: #44b6ae; - color: #fff; -} - -.green:hover { - background-color: #329d96; - color: #fff; -} - -.gold { - background-color: #c0af69; - color: #fff; -} - -.gold:hover { - background-color: #ad9a4d; - color: #fff; -} - -.grey { - background-color: #e5e5e5; - color: #333; -} - -.grey:hover { - background-color: #d8d8d8; - color: #333; -} - -.dark_grey { - background-color: #333; - color: #fff; -} - -.dark_grey:hover { - background-color: #101010; - color: #fff; -} - -.white { - background-color: #fff; - border: 1px solid #ddd; - color: #333; -} - -.white:hover { - background-color: #e5e5e5; - color: #333; -} - -/*** -Responsive & Scrollable Tables -***/ - -.table-scrollable { - width: 100%; - overflow-x: auto; - overflow-y: hidden; - border: 1px solid #dddddd; -} - -.table-scrollable > .table { - width: 100% !important; - margin: 0 !important; - margin-bottom: 0; - background-color: #fff; -} - -.table-scrollable > .table > thead > tr > th, -.table-scrollable > .table > tbody > tr > th, -.table-scrollable > .table > tfoot > tr > th, -.table-scrollable > .table > thead > tr > td, -.table-scrollable > .table > tbody > tr > td, -.table-scrollable > .table > tfoot > tr > td { - white-space: nowrap; -} - -.table-scrollable > .table-bordered { - border: 0; -} - -.table-scrollable > .table-bordered > thead > tr > th:first-child, -.table-scrollable > .table-bordered > tbody > tr > th:first-child, -.table-scrollable > .table-bordered > tfoot > tr > th:first-child, -.table-scrollable > .table-bordered > thead > tr > td:first-child, -.table-scrollable > .table-bordered > tbody > tr > td:first-child, -.table-scrollable > .table-bordered > tfoot > tr > td:first-child { - border-left: 0; -} - -.table-scrollable > .table-bordered > thead > tr > th:last-child, -.table-scrollable > .table-bordered > tbody > tr > th:last-child, -.table-scrollable > .table-bordered > tfoot > tr > th:last-child, -.table-scrollable > .table-bordered > thead > tr > td:last-child, -.table-scrollable > .table-bordered > tbody > tr > td:last-child, -.table-scrollable > .table-bordered > tfoot > tr > td:last-child { - border-right: 0; -} - -.table-scrollable > .table-bordered > thead > tr:last-child > th, -.table-scrollable > .table-bordered > tbody > tr:last-child > th, -.table-scrollable > .table-bordered > tfoot > tr:last-child > th, -.table-scrollable > .table-bordered > thead > tr:last-child > td, -.table-scrollable > .table-bordered > tbody > tr:last-child > td, -.table-scrollable > .table-bordered > tfoot > tr:last-child > td { - border-bottom: 0; -} - -/*form*/ - -.form { - padding: 0 !important; -} - -.form-group .multiRow { - margin-bottom: 15px; -} - -.form-group, -.form-group .btn { - font-size: 12px; -} - -.form-body { - padding: 10px; -} - -.form-actions { - padding-top: 20px -} - -.form-actions.nobg { - background-color: transparent; -} - -.form-actions.top { - margin-top: 0; - margin-bottom: 20px; - border-top: 0; - border-bottom: 1px solid #e5e5e5; -} - -/*.form-actions.fluid { - padding: 20px 0; -}*/ - -.form-actions .btnGroup { - padding-left: 0; -} - -.form-actions.fluid > [class^="col-"] { - padding-left: 13px; -} - -.form-actions:before, -.form-actions:after { - display: table; - line-height: 0; - content: ""; -} - -.form-actions:after { - clear: both; -} - -.form-section { - margin: 30px 0px 25px 0px; - padding-bottom: 5px; - border-bottom: 1px solid #eee; -} - -.form .form-section:first-child { - margin-top: 5px; -} - -.help-inline { - font-size: 13px; - color: #737373; - display: inline-block; - padding: 5px; -} - -.submBtn { - text-align: center; -} -.subm-iconMargin { -margin-left:-40px; -} -.subm-margin { -margin-left:-40px; -} - -/* left, right aligned form actions */ - -.form-actions.right { - padding-left: 0; - padding-right: 10px; - text-align: right; -} - -.form-actions.left { - padding-left: 10px; - padding-right: 0; - text-align: left; -} - -/* Checkbox */ - -.form-group .checkbox { - padding-left: 0; -} - -.form-title { - padding: 8px; - margin-bottom: 25px; - border-left: 2px solid #5b9bd1; - color: #1A78CA; - font-size: 16px; -} - -.checkbox-list > label { - display: block; -} - -.checkbox-list > label.checkbox-inline { - display: inline-block; -} - -.checkbox-list > label.checkbox-inline:first-child { - padding-left: 0; -} - -/* Radios */ -input[type="radio"]{ - cursor:pointer -} -.radio-list > label { - display: block; -} - -.radio-list > label.radio-inline { - display: inline-block; -} - -.radio-list > label.radio-inline:first-child { - padding-left: 0; -} - -.form-horizontal .radio-list .radio { - padding-top: 1px; -} - -.form-horizontal .radio-list > label { - margin-bottom: 0; -} - -.form-horizontal .radio > span { - margin-top: 2px; -} - -.help-block { - margin-top: 5px; - margin-bottom: 5px; - color: #a94442 !important; -} - -.form-inline input { - margin-bottom: 0px !important; -} -.form-horizontal .control-label{ - padding-top:4px; - text-align:right; -} - -.form-control-static { - font-size: 14px; - padding-top: 7px; -} - -.control-label .required { - color: #e02222; - font-size: 12px; - padding-left: 2px; -} - -/*TAB*/ - -.nav-tabs { - border: 0; - font-weight: bold; -} - -.nav-tabs > li.active > a, -.nav-tabs > li.active > a:hover, -.nav-tabs > li.active > a:focus { - border: 0; - border-top: 3px solid #F3565D; -} - -.nav-tabs > li > a { - border-radius: 0; - font-weight: bold; -} - -.nav-tabs > li > a:hover { - background-color: #f1f3fa; - border: 1Px solid #f1f3fa; -} - -/*button*/ - -.btn { - min-width: 80px; - letter-spacing: 1px; -} - -.btnGroup .btn { - margin-right: 15px; -} - -.pagination-panel .btn { - min-width: 4px; -} - -.btn.dropdown-toggle, -.btn-group .btn.dropdown-toggle, -.btn:hover, -.btn:disabled, -.btn[disabled], -.btn:focus, -.btn:active, -.btn.active { - outline: none !important; - background-image: none !important; - filter: none; - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; - text-shadow: none; -} -.btn-xs:hover{ -text-decoration:none ; -} -/*radius*/ - -.radius_l { - border-radius: 20px; -} - -.radius_m { - border-radius: 8px; -} - -.radius_s { - border-radius: 3px; -} - -/*Progress Bars*/ - -.progress { - border: 0; - background-image: none !important; - filter: none !important; - -webkit-box-shadow: none !important; - -moz-box-shadow: none !important; - box-shadow: none !important; -} - -.form-wizard .steps > li.active > a.step .number { - background-color: #45B6AF -} - -.progress > .progress-bar-success { - background-color: #45B6AF -} - -/*label*/ - -.label, -label { - font-weight: 400; - /*margin-bottom:15px;*/ -} - -/*表单中的组合*/ - -.input-group-btn-vertical.fa { - font-size: 12px; -} - -.spinner { - width: 60px; - margin-left: 10px; - margin-right: 30px; -} - -.spinner input { - text-align: right; -} - -.input-group-btn-vertical { - position: relative; - white-space: nowrap; - width: 1%; - vertical-align: middle; - display: table-cell; -} - -.input-group-btn-vertical > .btn { - display: block; - float: none; - width: 100%; - max-width: 100%; - padding: 6px; - margin-left: -1px; - position: relative; - border-radius: 0; -} - -.input-group-btn-vertical > .btn { - min-width: 20px; -} - -.input-group-btn-vertical > .btn:first-child { - border-top-right-radius: 4px; -} - -.input-group-btn-vertical > .btn:last-child { - margin-top: -2px; - border-bottom-right-radius: 4px; -} - -.input-group-btn-vertical i { - position: absolute; - top: -2px; - left: 5px; -} - -.input-group .form-control { - height: 26px !important; -} - -/*separator & title*/ - -.separator-line { - height: 1px; - width: 100%; - background: #ddd; - overflow: hidden; - margin-bottom: 15px; - margin-top: 6px; - opacity: 0.6; -} - -.separator { - opacity: 0.7; -} - -.separator:hover { - opacity: 1; -} - -.titlefont { - font-size: 16px; - margin-top:15px; -} - -/*link*/ - -a { - color: #428bca; - text-decoration: none ; - cursor:pointer; -} -a:hover{ - text-decoration: underline; -} -/*html滑块组件*/ - -input[type="range"] { - margin-top: 2px; - background-color: #f0f3f9; - border: 1px solid #ccd6e8; - border-radius: 15px; - width: 400px; - -webkit-appearance: none; - height: 15px; -} - -input[type="range"]::-webkit-slider-thumb { - -webkit-appearance: none; - cursor: pointer; - top: -5px; - height: 28px; - width: 15px; - transform: translateY(-4px); - background: none repeat scroll 0 0 #f0f3f9; - background-color: #9cc2cb; - border-radius: 20px; -} - -input[type="range"]:focus { - outline: none; -} - -/*ztree*/ - -.ztree * { - font-family: "microsoft yahei"; - font-size: 12px; -} - -.ztree { - padding: 15px 30px 0 5px; -} - -.ztree li a.curSelectedNode { - height: 28px; -} - -.ztree li span { - line-height: 16px; - margin-right: 2px; - margin-left: 6px -} - -.ztree li span.button.chk { - width: 13px; - height: 13px; - margin-left: 10px; - cursor: auto -} - -.ztree li span.button.add { - margin-left: 2px; - /* margin-right: -1px; */ - - margin-right: 4px; - background-position: -144px 0; - vertical-align: top; - *vertical-align: middle; - float: right; -} - -.ztree li span.button.edit { - margin-right: 4px; - background-position: -110px -48px; - vertical-align: top; - *vertical-align: middle; - float: right; -} - -.ztree li span.button.remove { - margin-right: 4px; - background-position: -110px -64px; - vertical-align: top; - *vertical-align: middle; - float: right; -} - -.ztree-select .ztree li a { - border: 1px solid #fff !important; -} - -/*table*/ - -table, -.dataTables_length, -.dataTables_info, -.dataTables_paginate { - font-size: 12px; -} - -table .heading { - font-size: 14px; - background: #fff !important; -} - -table.dataTable tbody th, -table.dataTable tbody td { - padding: 8px 10px 4px 10px !important; -} - -table tr:nth-of-type(odd) { - background: #f9f9f9; -} - -table tr:nth-of-type(even) { - background: #fff; -} - -table td:hover { - background-color: #f5f5f5; - border-bottom: 1px solid #d0d0d0; - border-top: 1px solid #d0d0d0; -} - -table tr td label { - cursor: pointer; -} - -.table-btn span { - padding-left: 5px; - padding-right: 5px; -} -.table-bordered>thead>tr>th, .table-bordered>thead>tr>td{ -border-bottom-width:1px; -} -/*select-box with icon*/ - -.iconselect-box .col-xs-1 { - width: 15px; - padding: 110px 0 0 0; -} - -.iconPosition > div { - margin: 20px 0px 0px 0px; -} - -/*-------------C3.css-------------*/ -.c3 path, .c3 line { - stroke: #008acd; -} - -.c3-line { - stroke-width: 3px; -} - -.c3-tooltip { - width: auto; -} - -.c3-tooltip td { - color: #000; -} - -.c3-axis.c3-axis-y { - stroke-width: 1px; -} - -.c3-axis.c3-axis-x { - stroke-width: 1px; -} - -/*checkbox & radio*/ -input[type="checkbox"] { - -webkit-appearance: none; - background: #fff url(../image/checkbox-radio/checkbox-init.png); - height: 18px; - vertical-align: middle; - width: 18px; - margin-bottom:5px; - margin-right:5px; -} - -input[type="checkbox"]:checked { - -webkit-appearance: none; - background: #fff url(../image/checkbox-radio/checkbox-checked.png); - height: 18px; - vertical-align: middle; - width: 18px; -} - -input[type="checkbox"]:focus, -input[type="checkbox"]:hover { - outline: none; -} - -input[type="checkbox"][disabled] { - -webkit-appearance: none; - background: #fff url(../image/checkbox-radio/checkbox-disabled.png); - height: 18px; - vertical-align: middle; - width: 18px; - margin-bottom:5px; - margin-right:5px; -} - -input[type="checkbox"][disabled]:checked { - -webkit-appearance: none; - background: #fff url(../image/checkbox-radio/checkbox-checked-disabled.png); - height: 18px; - vertical-align: middle; - width: 18px; -} - -input[type="radio"] { - -webkit-appearance: none; - background: #fff url(../image/checkbox-radio/radio-init.png); - height: 18px; - vertical-align: middle; - width: 18px; - margin-bottom:5px; - margin-right:5px; -} - -input[type="radio"]:checked { - -webkit-appearance: none; - background: #fff url(../image/checkbox-radio/radio-checked.png); - height: 18px; - vertical-align: middle; - width: 18px; -} - -input[type="radio"]:focus, -input[type="radio"]:hover { - outline: none; -} - -input[type="radio"][disabled] { - -webkit-appearance: none; - background: #fff url(../image/checkbox-radio/radio-disabled.png); - height: 18px; - vertical-align: middle; - width: 18px; - margin-bottom:5px; - margin-right:5px; -} - -input[type="radio"][disabled]:checked { - -webkit-appearance: none; - background: #fff url(../image/checkbox-radio/radio-checked-disabled.png); - height: 18px; - vertical-align: middle; - width: 18px; -} diff --git a/portal-common/src/main/webapp/common/css/plugins.css b/portal-common/src/main/webapp/common/css/plugins.css deleted file mode 100644 index 523986cd..00000000 --- a/portal-common/src/main/webapp/common/css/plugins.css +++ /dev/null @@ -1,1561 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/************************** - PLUGIN CSS CUSTOMIZATIONS -**************************/ - -/*** -Calendar with full calendar -***/ -.external-event { - display: inline-block ; - cursor:move; - margin-bottom: 5px ; - margin-left: 5px ; -} - -.portlet .event-form-title { - font-size: 14px; - margin-top: 4px; - font-weight: 400; - margin-bottom: 10px; -} - -.portlet.calendar .fc-button { - -webkit-box-shadow: none ; - -moz-box-shadow: none ; - box-shadow: none ; - text-shadow: none; - border: 0 ; - padding: 6px 8px 30px 8px ; - margin-left:2px; - border-top-style: none; - border-bottom-style: none; - border-right-style: solid; - border-left-style: solid; - border-color: #ddd; - background: transparent; - color: #fff; - top: -46px; -} - -.portlet.calendar .fc-header { - margin-bottom:-21px; -} - -.portlet.calendar .fc-button-prev { - padding-right: 10px; - padding-left: 8px; -} - -.portlet.calendar .fc-button-next { - padding-right: 8px; - padding-left: 10px; -} - -.portlet.calendar .fc-button.fc-state-active, -.portlet.calendar .fc-button.fc-state-hover { - color: #666 ; - background-color: #F9F9F9 ; -} - -.portlet.calendar .fc-button.fc-state-disabled { - color: #ddd ; -} - -.portlet.calendar .fc-text-arrow { - font-size: 22px; - font-family: "Courier New", Courier, monospace; - vertical-align: baseline; -} - -/* begin: event element */ -.portlet.calendar .fc-event { - border: 0px; - background-color: #69a4e0; - color: #fff; -} - -.portlet.calendar .fc-event-inner { - border: 0px; -} - -.portlet.calendar .fc-event-time { - float: left; - text-align: left; - color: #fff; - font-size: 13px; - font-weight: 300; -} - -.portlet.calendar .fc-event-title { - text-align: left; - float: left; - color: #fff; - font-size: 13px; - font-weight: 300; -} -/* end: event element */ - -.portlet.calendar .fc-header-title h2 { - font-size: 14px ; - line-height: 20px; - font-weight: 400; - color: #111; -} - -.portlet.calendar .fc-widget-header { - background-image: none ; - filter:none; - background-color: #eee ; - text-transform: uppercase; - font-weight: 300; -} - -.portlet.calendar .mobile .fc-button { - margin-left: 2px ; -} - -.portlet.calendar .mobile .fc-button { - padding: 0px 6px 20px 6px ; - margin-left:2px ; - border: 0; - background-color: #ddd ; - background-image: none; - -webkit-box-shadow: none ; - -moz-box-shadow: none ; - box-shadow: none ; - -webkit-border-radius: 0 ; - -moz-border-radius: 0 ; - border-radius: 0 ; - color: #000; - text-shadow: none ; - text-align: center; -} - -.portlet.calendar .mobile .fc-state-hover, -.portlet.calendar .mobile .fc-state-active { - background-color: #eee ; -} - -.portlet.calendar .mobile .fc-button-prev { - margin-right: 5px; - margin-top: -2px; -} - -.portlet.calendar .mobile .fc-button-next { - margin-right: -0px; - margin-top: -2px; -} - -.portlet.calendar .mobile .fc-header-space { - margin: 0px ; - padding: 0px ; - width: 0px ; -} - - .portlet.calendar .mobile .fc-state-disabled { - color: #bbb ; - } - - .portlet.calendar .mobile .fc-header-left { - position: absolute; - z-index: 10; - } - - .portlet.calendar .mobile .fc-header-right { - position: absolute; - z-index: 9; - } - - .portlet.calendar .mobile .fc-header-left .fc-button { - top: -2px ; - } - - .portlet.calendar .mobile .fc-header-right { - position: relative; - right:0; - } - - .portlet.calendar .mobile .fc-header-right .fc-button { - top: 35px ; - } - - .portlet.calendar .mobile .fc-content { - margin-top: 53px; - } - - -/*** -Form wizard -***/ - -.form-wizard .progress { - margin-bottom: 30px; -} - -.form-wizard .steps { - //padding: 10px 0; - //margin-bottom: 15px; -} - -.form-wizard .steps { - background-color: #fff ; - background-image: none ; - filter:none ; - border: 0px; - box-shadow: none ; -} - -.form-wizard .steps li a { - background-color: #fff ; - background-image: none ; - filter:none; - border: 0px; - box-shadow: none ; -} - -.form-wizard .steps li a:hover { - background: none; -} - -.form-wizard .step:hover { - text-decoration: none; -} - -.form-wizard .step .number { - background-color: #eee; - display: inline-block; - text-align: center !important; - font-size: 16px; - font-weight: 300; - padding: 11px 15px 13px 15px; - margin-right: 10px; - height: 45px; - width: 45px; - -webkit-border-radius: 50% !important; - -moz-border-radius: 50% !important; - border-radius: 50% !important; -} - -.form-wizard .step .desc { - display: inline-block; - font-size: 16px; - font-weight: 300; -} - -.form-wizard .active .step .number { - background-color: #35aa47; - color: #fff; -} - -.form-wizard .active .step .desc { - color: #333; - font-weight: 400; -} - -.form-wizard .step i { - display: none; -} - -.form-wizard .done .step .number { - background-color: #f2ae43; - color: #fff; -} - -.form-wizard .done .step .desc { - font-weight: 400; -} - -.form-wizard .done .step i { - font-size: 12px; - font-weight: normal; - color: #999; - display: inline-block; -} - - -@media (min-width: 600px) and (max-width: 1280px) { - .form-wizard .step .desc { - margin-top: 10px; - display: block; - } -} - -@media (max-width: 600px) { - .form-wizard .steps > li > a { - text-align: left; - } -} - -@media (min-width: 600px){ - .nav-justified>li{ - display:table-cell; - width:1%; - } -} - -/*** -Google Maps -***/ -.gmaps { - height: 300px; - width: 100%; -} - -/* important! bootstrap sets max-width on img to 100% which conflicts with google map canvas*/ -.gmaps img { - max-width: none; -} - -#gmap_static div{ - background-repeat: no-repeat ; - background-position: 50% 50% ; - height:100%; - display:block; - height: 300px; -} - -#gmap_routes_instructions { - margin-top: 10px; - margin-bottom: 0px; -} - -/*** -SlimScrollBar plugins css changes -***/ -.scroller { - padding: 0px ; - margin: 0px ; - padding-right: 12px ; - overflow: hidden; -} - -.scroller-footer { - margin-top: 10px; -} - -.scroller-footer:after, -.scroller-footer:before { - content: ""; - display: table; - line-height: 0; -} - -.scroller-footer:after { - clear: both; -} - -.portlet-body .slimScrollBar { - margin-right: 0px ; -} - -/*** -jqvmap changes -***/ -.jqvmap-zoomin { - height: 16px; - width: 16px; - background-color: #666 ; -} - -.jqvmap-zoomout { - height: 16px; - width: 16px; - background-color: #666 ; -} - -.vmaps { - position: relative; - overflow: hidden; - height: 300px; -} - - -/*** -Error state for WYSIWYG Editors -***/ -.has-error .md-editor, -.has-error .wysihtml5-sandbox, -.has-error .cke { - border: 1px solid #B94A48 !important; -} - -.has-success .md-editor, -.has-success .wysihtml5-sandbox, -.has-success .cke { - border: 1px solid #468847 !important; -} - -/*** -Select2 plugin css changes -***/ - -/* enable form validation classes for select2 dropdowns */ -.has-error .select2-container .select2-choice { - border-color: #B94A48; -} - -.has-error .select2-container.select2-dropdown-open .select2-choice { - border-color: #e5e5e5; -} - -.has-error .select2-container.select2-dropdown-open .select2-choice > span { - color: #999999; -} - -.has-success .select2-container .select2-choice { - border-color: #468847; -} - -.has-success .select2-container.select2-dropdown-open .select2-choice { - border-color: #e5e5e5; -} - -.has-success .select2-container.select2-dropdown-open .select2-choice > span { - color: #999999; -} - - -/*** -Jansy File Input plugin css changes -***/ -.fileinput { - margin-bottom: 0; -} - - -/*** -WYSIWYG -***/ -.wysihtml5-toolbar li { - margin: 0px; - height: 29px; -} - -.wysihtml5-toolbar li .dropdown-menu { - margin-top: 5px; -} - -/*** -CKEditor css changes -***/ -.cke_bottom, -.cke_inner, -.cke_top, -.cke_reset, -.cke_dialog_title, -.cke_dialog_footer, -.cke_dialog { - background-image: none !important; - filter:none ; - border-top: 0 ; - border-bottom: 0 ; - -webkit-box-shadow: none !important; - -moz-box-shadow: none !important; - box-shadow: none !important; - text-shadow:none ; -} - -.cke_dialog_ui_button, -.cke_dialog_tab { - background-image: none !important; - filter:none ; - -webkit-box-shadow: none !important; - -moz-box-shadow: none !important; - box-shadow: none !important; - text-shadow:none !important; -} - -.cke_dialog_ui_button:hover, -.cke_dialog_tab:hover { - text-decoration: none; - text-shadow:none ; -} - -.cke_dialog_ui_input_text { - background-image: none !important; - filter:none ; - -webkit-box-shadow: none !important; - -moz-box-shadow: none !important; - box-shadow: none !important; -} - -.cke_combo_button, -.cke_button, -.cke_toolbar, -.cke_toolgroup { - background-image: none !important; - filter:none !important; - border: 0 ; - -webkit-box-shadow: none !important; - -moz-box-shadow: none !important; - box-shadow: none !important; -} - -.cke_button, -.cke_combo_button, -.cke_panel_grouptitle, -.cke_hc.cke_panel_listItem a { - background-image: none !important; - filter:none ; - text-shadow:none ; - -webkit-border-radius: 0px !important; - -moz-border-radius: 0px !important; - -ms-border-radius: 0px !important; - -o-border-radius: 0px !important; -} - -.cke_button:hover, -.cke_combo_button:hover { - background-color: #ddd; -} - -.cke_toolbar_break { - background-image: none !important; - filter:none !important; - border: 0 ; - box-shadow: none !important; - -webkit-box-shadow : none !important; - -moz-box-shadow: none !important; - -ms-box-shadow: none !important; - -o-box-shadow: none !important; -} - -/*** -Modify tags input plugin css -***/ -div.tagsinput { - min-height: 35px; - height: auto !important; - margin: 0; - padding: 5px 5px 0px 5px; - overflow: auto; -} - -div.tagsinput span.tag { - background: #aaa ; - color: #fff ; - border: 0 ; - padding: 3px 6px; - margin-top: 0; - margin-bottom: 5px; -} - -div.tagsinput input { - padding: 3px 6px ; - width: 75px !important; -} - -div.tagsinput span.tag a { - color: #fff ; -} - -div.tagsinput .not_valid { - color: #fff ; - padding: 3px 6px ; - background-color: #e02222 ; -} - -/*** -Gritter notification modify -***/ - -#gritter-notice-wrapper { - right:1px !important; -} - -.gritter-close { - left:auto !important; - right: 3px !important; -} - -.gritter-title { - font-family: 'Open Sans' ; - font-size: 18px ; - font-weight: 300 ; -} - -/*** -jQuery UI Sliders(new in v1.1.1) -***/ -.slider { - border: 0; - padding: 0; - display: block; - margin: 12px 5px; - min-height: 11px; -} - -.ui-slider-vertical { - width: 11px; -} - -.ui-slider-horizontal .ui-slider-handle { - top: -3px; -} - -.ui-slider-vertical .ui-slider-handle { - left: -3px; -} - -.ui-slider-vertical, -.ui-slider-handle { - filter: none !important; - background-image: none !important; -} - -/*** -Dropzone css changes(new in v1.1.1) -***/ -.dropzone { - -webkit-border-radius: 0px ; - -moz-border-radius: 0px ; - border-radius: 0px ; -} - - -/*** -Dashboard Charts(new in v1.2.1) -***/ -.easy-pie-chart, -.sparkline-chart { - text-align: center; -} - -.sparkline-chart { - margin-top: 15px; - position:relative ; -} - -.easy-pie-chart .number { - font-size: 16px; - font-weight: 300; - width: 85px; - margin: 0 auto; -} - -.sparkline-chart .number { - width: 100px; - margin: 0 auto; - margin-bottom: 10px; -} - -.sparkline-chart .title, -.easy-pie-chart .title { - display: block; - text-align: center; - color: #333; - font-weight: 300; - font-size: 16px; - margin-top: 5px; - margin-bottom: 10px; -} - -.sparkline-chart .title:hover, -.easy-pie-chart .title:hover { - color: #666; - text-decoration: none; -} - -.sparkline-chart .title > i, -.easy-pie-chart .title > i { - margin-top: 5px; -} - -/*** -Fancy box fix overlay fix(in v1.2.4) -***/ -.fancybox-overlay { - z-index: 10000 ; -} - -/*** -Datatables Plugin(in v1.3) -***/ -.dataTable { - width: 100% !important; - clear: both; - /*margin-top: 5px;*/ -} - -.dataTables_filter label { - line-height: 32px ; -} - -.dataTable .row-details { - margin-top: 3px; - display: inline-block; - cursor: pointer; - width: 14px; - height: 14px; -} - -.dataTable .row-details.row-details-close { - background: url("../image/datatable-row-openclose.png") no-repeat 0 0; -} - -.dataTable .row-details.row-details-open { - background: url("../image/datatable-row-openclose.png") no-repeat 0 -23px ; -} - -.dataTable .details { - background-color: #eee ; -} - -.dataTable .details td, -.dataTable .details th { - padding: 4px; - background: none ; - border: 0; -} - -.dataTable .details tr:hover td, -.dataTable .details tr:hover th { - background: none ; -} - -.dataTable .details tr:nth-child(odd) td, -.dataTable .details tr:nth-child(odd) th { - background-color: #fff ; -} - -.dataTable .details tr:nth-child(even) td, -.dataTable .details tr:nth-child(even) th { - background-color: #eee ; -} - -.dataTable > thead > tr > th.sorting, -.dataTable > thead > tr > th.sorting_asc, -.dataTable > thead > tr > th.sorting_desc { - padding-right: 18px; -} - -.dataTable .table-checkbox { - width: 8px !important; -} - -@media (max-width: 768px) { - .dataTables_wrapper .dataTables_length .form-control, - .dataTables_wrapper .dataTables_filter .form-control { - display: inline-block; - } - - /* .dataTables_wrapper .dataTables_info { - top: 17px; - }*/ - -/* .dataTables_wrapper .dataTables_paginate { - margin-top: -15px; - }*/ -} - -@media (max-width: 480px) { - .dataTables_wrapper .dataTables_filter .form-control { - width: 175px !important; - } - - .dataTables_wrapper .dataTables_paginate { - float: left; - margin-top: 20px; - } -} - -.dataTables_processing { - position: fixed; - top: 50%; - left: 50%; - min-width: 125px; - margin-left: 0; - padding: 7px; - text-align: center; - color: #333; - font-size: 13px; - border: 1px solid #ddd; - background-color: #eee; - vertical-align: middle; - -webkit-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); - -moz-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); - box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); -} - -.dataTables_processing span { - line-height:15px; - vertical-align: middle; -} - -.dataTables_empty { - text-align: center; -} - -/*** -Extended Datatable -***/ -.dataTables_extended_wrapper { - position: relative !important; - clear: both !important; -} -.dataTables_extended_wrapper .seperator { - padding: 0 2px; -} - -.dataTables_extended_wrapper .dataTables_paginate, -.dataTables_extended_wrapper .dataTables_length, -.dataTables_extended_wrapper .dataTables_info { - display: inline-block; - float: none !important; - padding: 0 !important; - margin: 0 !important; - position: static !important; - font-size: 13px; -} - -@media (max-width: 480px) { - - .dataTables_extended_wrapper .dataTables_paginate, - .dataTables_extended_wrapper .dataTables_length, - .dataTables_extended_wrapper .dataTables_info { - display: block; - margin-bottom: 10px !important; - } - - .dataTables_extended_wrapper .seperator { - display: none; - } -} - -.dataTables_extended_wrapper .dataTables_length label { - margin: 0 !important; - padding: 0 !important; - font-size: 13px; - float: none !important; - display: inline-block !important; -} - -.table-container .table-actions-wrapper { - display: none; -} - -/*** -Password Strength(in v1.4) -***/ -.password-strength .password-verdict { - display: inline-block; - margin-top: 6px; - margin-left: 5px; -} - -.password-strength .progress { - margin-top: 5px; - margin-bottom: 0; -} - -.password-strength .progress-bar { - padding: 2px; -} - -/*** -Uniform disabled checkbox, radio button fix(in v1.4) -***/ - -.table .uniform-inline { - padding: 0; - margin: 0; -} - -.checker { - margin-top: -2px !important; - margin-right: 2px !important; - display:inline; -} - -.checker input, -.radio input { - outline: none !important; -} - -div.checker.disabled span, -div.checker.disabled.active span{ - background-position: -152px -260px; -} - -div.checker.disabled:hover, -div.radio.disabled:hover { - cursor: not-allowed; -} - -div.radio, -div.checker { - margin-right: 0; - margin-left: 3px; -} - -/*** -jQuery Sparkline -***/ -.jqstooltip { - width: auto !important; - height: auto !important; -} - - -/*** -jQuery Multi Select -***/ - -.ms-container .ms-list { - border: 1px solid #e5e5e5; - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; - -} - -.ms-container .ms-optgroup-label{ - font-size: 14px; -} - -.ms-container .ms-selectable li.ms-elem-selectable, -.ms-container .ms-selection li.ms-elem-selection{ - font-size: 13px; -} - -.ms-container .ms-list.ms-focus { - border-color: #999999; - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; -} - -.ms-container .ms-selectable li.ms-hover, -.ms-container .ms-selection li.ms-hover{ - color: #333; - background-color: #eee; -} - -.ms-container .form-control { - margin-bottom: 5px; -} - -/*** -Bootstrap Colorpicker -***/ -.input-group.color .input-group-btn i { - position: absolute; - display: block; - cursor: pointer; - width: 20px; - height: 20px; - right: 6px; -} - -.colorpicker.dropdown-menu { - padding: 5px; -} - -/* change z-index when opened in modal */ -.modal-open .colorpicker { - z-index: 10055 !important; -} - -/*** -Bootstrap Datetimepicker -***/ - -.datetimepicker table td { - font-weight: 300 !important; - font-family: 'Open Sans' !important; -} - -.datetimepicker table th { - font-family: 'Open Sans' !important; - font-weight: 400 !important; -} - -.datetimepicker.dropdown-menu { - padding: 5px; -} - -.datetimepicker .active { - background-color:#4b8df8 !important; - background-image: none !important; - filter: none !important; -} - -.datetimepicker .active:hover { - background-color: #2678FC !important; - background-image: none !important; - filter: none !important; - -} - -/* change z-index when opened in modal */ -.modal-open .datetimepicker { - z-index: 10055 !important; -} - -/*** -Bootstrap Time Picker -***/ -.bootstrap-timepicker-widget table td a { - padding: 4px 0; -} - -.bootstrap-timepicker-widget input, -.bootstrap-timepicker-widget input:focus { - outline: none !important; - border: 0; -} - -.modal-open .bootstrap-timepicker-widget { - z-index: 10055 !important; -} - -.bootstrap-timepicker-widget.timepicker-orient-bottom:before, -.bootstrap-timepicker-widget.timepicker-orient-bottom:after { - top: auto; -} - -/*** -Bootstrap Datepicker -***/ - -.datepicker.dropdown-menu { - padding: 5px; -} - -.datepicker .selected { - background-color:#909090 !important; - background-image: none !important; - filter: none !important; -} - -.datepicker .active { - background-color:#4b8df8 !important; - background-image: none !important; - filter: none !important; -} - -.datepicker .active:hover { - background-color: #2678FC !important; - background-image: none !important; - filter: none !important; -} - -.datepicker .input-daterange input { - text-align: left; -} - -/* change z-index when opened in modal */ -.modal-open .datepicker { - z-index: 10055 !important; -} - -.datepicker table td { - font-weight: 300 !important; - font-family: 'Open Sans' !important; -} - -.datepicker table th { - font-family: 'Open Sans' !important; - font-weight: 400 !important; -} - - -/*** -Clockface -***/ - -.modal-open .clockface { - z-index: 10055 !important; -} - -.clockface .cell .inner.active, -.clockface .cell .outer.active { - background-color:#4b8df8 !important; - background-image: none ; - filter:none ; -} - - -/*** -Bootstrap Daterangepicker -***/ - -.modal-open .daterangepicker { - z-index: 10055 !important; -} - -.daterangepicker td { - text-shadow: none ; -} - -.daterangepicker td.active { - background-color: #4b8df8 ; - background-image: none ; - filter:none ; -} - -.daterangepicker th { - font-weight: 400; - font-size: 14px; -} - -.daterangepicker .ranges input[type="text"] { - width: 70px !important; - font-size: 11px; - vertical-align: middle; -} - -.daterangepicker .ranges label { - font-weight: 300; - display: block; -} - -.daterangepicker .ranges .btn { - margin-top: 10px; -} - -.daterangepicker.dropdown-menu { - padding: 5px; -} - -.daterangepicker .ranges li { - color: #333; -} - -.daterangepicker .ranges li.active, -.daterangepicker .ranges li:hover { - background: #4b8df8 !important; - border: 1px solid #4b8df8 !important; - color: #fff; -} - -.daterangepicker .range_inputs input { - margin-bottom: 0 !important; -} - -/*** -Bootstrap Editable -***/ - -.editable-input table, -.editable-input table th, -.editable-input table td, -.editable-input table tr { - border: 0 !important; -} - -.editable-input .combodate select { - margin-bottom: 5px; -} - -/*** -FuelUX Spinners -***/ - -.spinner-buttons.btn-group-vertical .btn { - text-align: center; - margin: 0; - height: 17px; - width: 22px; - padding-left: 6px; - padding-right: 6px; - padding-top: 0px; -} - - -/*** -NoUI Range Sliders -***/ -.noUi-handle { - height: 20px; - width: 20px; - margin: -3px 0 0 -20px; -} - -.noUi-base { - height: 16px; -} - -.noUi-connect { - background: #ffb848; -} - -/*** -Toastr Notifications -***/ -.toast { - -webkit-box-shadow: none !important; - -moz-box-shadow: none !important; - box-shadow: none !important; -} - -.toast { - background-color: #030303; -} -.toast-success { - background-color: #51a351; -} -.toast-error { - background-color: #bd362f; -} -.toast-info { - background-color: #2f96b4; -} -.toast-warning { - background-color: #f89406; -} - -.toast .toast-close-button { - display: inline-block; - margin-top: 0px; - margin-right: 0px; - text-indent: -100000px; - width: 11px; - height: 16px; - background-repeat: no-repeat !important; - background-image: url("../image/portlet-remove-icon-white.png") !important; -} - -.toast-top-center { - top: 12px; - margin: 0 auto; - left: 50%; - margin-left: -150px; -} - -.toast-bottom-center { - bottom: 12px; - margin: 0 auto; - left: 50%; - margin-left: -150px; -} - -/*** -Google reCaptcha -***/ -.form-recaptcha-img { - margin-bottom: 10px; - clear: both; - border: 1px solid #e5e5e5; - padding: 5px; -} - -iframe[src="about:blank"] { - display:none; -} - -/*** -Bootstrap Markdown -***/ -.md-input { - padding: 5px !important; - border-bottom: 0 !important; -} - -.md-editor .btn-toolbar { - margin-left: 0px; -} - -.md-editor.active { - border: 1px solid #999999; - -webkit-box-shadow: none !important; - -moz-box-shadow: none !important; - box-shadow: none !important; -} - -/*** -Bootstrap Datepaginator -***/ -.datepaginator a { - font-family: 'Open Sans'; - font-size: 13px; - font-weight: 300; -} - -.datepicker .today { - background-image: none !important; - filter: none !important; -} - -#dp-calendar { - right: 4px !important; -} - -/*** -Font Awesome 4.0 Demo -***/ -.fa-item { - font-size: 14px; - padding: 10px 10px 10px 20px; -} - -.fa-item i { - font-size: 16px; - display: inline-block; - width: 20px; -} - -.fa-item:hover { - cursor: pointer; - background: #eee; -} - -/*** -Bootstrap Modal -***/ -/* fix: content shifting to the right on modal open */ -.modal-open.page-overflow .page-container, -.modal-open.page-overflow .page-container .navbar-fixed-top, -.modal-open.page-overflow .page-container .navbar-fixed-bottom, -.modal-open.page-overflow .modal-scrollable { - overflow-y: auto !important; -} - -.modal-scrollable { - overflow: hidden !important; -} - - -/*** -jQuery Notific8 Plugin -***/ - -.jquery-notific8-message { - font-size: 13px; -} - -[class*="jquery-notific8"], -[class*="jquery-notific8"]:after, -[class*="jquery-notific8"]:before { - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; -} - -.right .jquery-notific8-close-sticky span, -.left .jquery-notific8-close-sticky span { - font-size: 10px; -} - -.jquery-notific8-heading { - font-weight: 300; - font-size: 16px; -} - -/*** -jQuery File Upload -***/ - -.blueimp-gallery .close { - background-image: url("../image/portlet-remove-icon-white.png") !important; - margin-top: -2px; -} - -.blueimp-gallery .prev, -.blueimp-gallery .next { - border-radius: 23px !important; -} - -/*** -Bootstrap Switch -***/ - -.has-switch { - border-color: #e5e5e5; -} - -.has-switch:focus { - -webkit-box-shadow: none; - box-shadow: none; -} - -/*** -Jstree -***/ - -.jstree-default .jstree-clicked { - border: 0; - background-color: #e1e1e1; - box-shadow:none; -} - -.jstree-default .jstree-hovered { - border: 0; - background-color: #eee; - box-shadow:none; -} - -.jstree-default .jstree-wholerow-clicked, -.jstree-wholerow .jstree-wholerow-clicked { - background: none; - border: 0; - background-color: #e1e1e1; - box-shadow:none; -} - -.jstree-default .jstree-wholerow-hovered, -.jstree-wholerow .jstree-wholerow-hovered { - border: 0; - background-color: #eee; - box-shadow:none; -} - -.jstree-icon.icon-lg { - margin-top: 1px; -} - -.jstree-open > .jstree-anchor > .fa-folder:before { - margin-left: 2px; - content: "\f07c"; -} - -.jstree-default.jstree-rtl .jstree-last { - background: transparent; - background-repeat: no-repeat; -} - -.vakata-context, -.vakata-context ul { - padding: 0; - min-width: 125px; - background-color: #ffffff; - -webkit-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); - -moz-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); - box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); - font-size: 14px; - font-family: "Segoe UI",Helvetica, Arial, sans-serif; - border: 1px solid #ddd; -} - -.vakata-context li a { - padding: 0 10px; -} - -.vakata-context .vakata-context-hover > a, -.vakata-context li a:hover { - background-color: #eee; - color: #333; - box-shadow: none; -} - -.vakata-context li a span, -.vakata-context li a ins { - display: none; -} - -.vakata-context .vakata-context-separator a, -.vakata-context-rtl .vakata-context-separator a { - margin: 0; -} - -.jstree-rename-input { - background-color: #ffffff !important; - border: 1px solid #e5e5e5 !important; - outline: none !important; - padding: 2px 6px !important; - margin-right: -4px !important; -} - -/*** -Bootstrap Select -***/ - -.bootstrap-select .btn { - border-color: #e5e5e5; -} - -.bootstrap-select.open .btn1 { - border-color: #999999; -} - -.bootstrap-select.open.dropup .btn1 { - border-color: #999999; -} - -.bootstrap-select .btn:focus { - outline: none !important; - outline-offset: 0; -} - -.bootstrap-select.btn-group .dropdown-menu { - margin-top: 1px; -} - -.bootstrap-select.btn-group .dropdown-menu > li > dt > .text { - font-weight: 600; - font-family: 'Open Sans'; - font-size: 14px; -} - -.bootstrap-select.btn-group .dropdown-menu .text-muted { - color: #999 !important; -} - -.bootstrap-select .caret { - border: 0; - width: auto; - height: auto; - margin-top: -10px !important; -} - -.bootstrap-select .caret:before { - content: "\f107"; - display: inline-block; - border: 0; - font-family: FontAwesome; - font-style: normal; - font-weight: normal; -} - -.bootstrap-select .selected i { - color: #aaa; -} - -/*** -Pace - Page Progress -***/ - -.pace .pace-progress { - z-index: 10000; - top: 40px; - height: 2px; -} - -.pace .pace-progress-inner { - box-shadow: none; -} - -.pace .pace-activity { - top: 44px; - right: 22px; - border-radius: 10px !important; -} - - -@media (max-width: 480px) { - - .page-header-fixed .pace .pace-progress { - top: 82px; - } - - .page-header-fixed .pace .pace-activity { - top: 88px; - right: 15px; - } - -} diff --git a/portal-common/src/main/webapp/common/css/print.css b/portal-common/src/main/webapp/common/css/print.css deleted file mode 100644 index dda6c5ed..00000000 --- a/portal-common/src/main/webapp/common/css/print.css +++ /dev/null @@ -1,53 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -body { - background-color: #fff !important; -} - -.header { - display: none; -} - -.page-sidebar { - display: none; -} - -.theme-panel { - display: none; -} - -.hidden-print { - display: none; -} - -.footer { - display: none; -} - -.no-page-break { - page-break-after: avoid; -} - -.page-container { - margin: 0px !important; - padding: 0px !important; -} - -.page-content { - min-height: auto !important; - padding: 0px 20px 20px !important; - margin: 0 !important; -} \ No newline at end of file diff --git a/portal-common/src/main/webapp/common/css/style-custom.css b/portal-common/src/main/webapp/common/css/style-custom.css deleted file mode 100644 index c0052ed4..00000000 --- a/portal-common/src/main/webapp/common/css/style-custom.css +++ /dev/null @@ -1,1510 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* remove rounds from all elements */ - -div, -input, -select, -textarea, -span, -img, -table, -td, -th, -p, -a, -button, -ul, -code, -pre, -li { - //-webkit-border-radius: 0 !important; - //-moz-border-radius: 0 !important; - //border-radius: 0 !important; -} - -/*** -Buttons & Dropdown Buttons -***/ - -.btn { - border-width: 0; - padding: 7px 14px; - font-size: 14px; - outline: none !important; - -webkit-box-shadow: none !important; - -moz-box-shadow: none !important; - box-shadow: none !important; - //-webkit-border-radius: 0 !important; - //-moz-border-radius: 0 !important; - //border-radius: 0 !important; - text-shadow: none; -} - -/* fix jumping group buttons */ -.btn-group.btn-group-solid .btn + .btn, -.btn-group.btn-group-solid .btn + .btn-group.btn-group-solid, -.btn-group.btn-group-solid .btn-group.btn-group-solid + .btn, -.btn-group.btn-group-solid .btn-group.btn-group-solid + .btn-group.btn-group-solid { - margin-left: 0px; -} - -.btn-group-vertical.btn-group-solid > .btn + .btn, -.btn-group-vertical.btn-group-solid > .btn + .btn-group, -.btn-group-vertical.btn-group-solid > .btn-group + .btn, -.btn-group-vertical.btn-group-solid > .btn-group + .btn-group { - margin-top: 0px; - margin-left: 0; -} - -.btn-default { - border-width: 1px; - padding: 6px 13px; -} - -.btn.red-stripe { - border-left: 3px solid #d84a38; -} - -.btn.blue-stripe { - border-left: 3px solid #4d90fe; -} - -.btn.purple-stripe { - border-left: 3px solid #852b99; -} - -.btn.green-stripe { - border-left: 3px solid #35aa47; -} - -.btn.yellow-stripe { - border-left: 3px solid #ffb848; -} - -.btn.dark-stripe { - border-left: 3px solid #555555; -} - -.btn.default { - color: #333333; - text-shadow: none; - background-color: #e5e5e5; -} -.btn.default:hover, -.btn.default:focus, -.btn.default:active, -.btn.default.active, -.btn.default[disabled], -.btn.default.disabled { - color: #333333; - background-color: #d8d8d8 !important; - outline: none !important; -} - -/* Red */ -.btn.red { - color: white; - text-shadow: none; - background-color: #d84a38; -} -.btn.red:hover, -.btn.red:focus, -.btn.red:active, -.btn.red.active, -.btn.red[disabled], -.btn.red.disabled { - background-color: #bb2413 !important; - color: #fff !important; - outline: none !important; -} - -/* Blue */ - -.btn.blue { - color: white; - text-shadow: none; - background-color: #4d90fe; -} -.btn.blue:hover, -.btn.blue:focus, -.btn.blue:active, -.btn.blue.active, -.btn.blue[disabled], -.btn.blue.disabled { - background-color: #0362fd !important; - color: #fff !important; - outline: none !important; -} - -.btn-group .btn.blue.dropdown-toggle { - background-color: #4d90fe !important; -} -.btn-group .btn.blue:hover, -.btn-group .btn.blue:focus, -.btn-group .btn.blue:active, -.btn-group .btn.blue.active, -.btn-group .btn.blue.disabled, -.btn-group .btn.blue[disabled] { - background-color: #0362fd !important; - color: #fff !important; - outline: none !important; -} - -/* Green */ -.btn.green { - color: white; - text-shadow: none; - background-color: #35aa47; -} -.btn.green:hover, -.btn.green:focus, -.btn.green:active, -.btn.green.active, -.btn.green.disabled, -.btn.green[disabled]{ - background-color: #1d943b !important; - color: #fff !important; - outline: none !important; -} - -/* Purple */ -.btn.purple { - color: white; - text-shadow: none; - background-color: #852b99; -} -.btn.purple:hover, -.btn.purple:focus, -.btn.purple:active, -.btn.purple.active, -.btn.purple.disabled, -.btn.purple[disabled] { - background-color: #6d1b81 !important; - color: #fff !important; - outline: none !important; -} - -.btn-group .btn.purple.dropdown-toggle { - background-color: #852b99 !important; -} -.btn-group .btn.purple:hover, -.btn-group .btn.purple:focus, -.btn-group .btn.purple:active, -.btn-group .btn.purple.active, -.btn-group .btn.purple.disabled, -.btn-group .btn.purple[disabled] { - background-color: #6d1b81 !important; - color: #fff !important; - outline: none !important; -} - -/* Yellow */ -.btn.yellow { - color: white; - text-shadow: none; - background-color: #ffb848; -} -.btn.yellow:hover, -.btn.yellow:focus, -.btn.yellow:active, -.btn.yellow.active, -.btn.yellow.disabled, -.btn.yellow[disabled] { - background-color: #eca22e !important; - color: #fff !important; - outline: none !important; -} - -.btn-group .btn.yellow.dropdown-toggle { - background-color: #ffb848 !important; -} -.btn-group .btn.yellow:hover, -.btn-group .btn.yellow:focus, -.btn-group .btn.yellow:active, -.btn-group .btn.yellow.active, -.btn-group .btn.yellow.disabled, -.btn-group .btn.yellow[disabled] { - background-color: #eca22e !important; - color: #fff !important; - outline: none !important; -} - -/* Black */ -.btn.dark { - color: white; - text-shadow: none; - background-color: #555555; -} -.btn.dark:hover, -.btn.dark:focus, -.btn.dark:active, -.btn.dark.active, -.btn.dark.disabled, -.btn.dark[disabled] { - background-color: #222222 !important; - color: #fff !important; - outline: none !important; -} - -.btn-group .btn.dark.dropdown-toggle { - background-color: #555555 !important; -} -.btn-group .btn.dark:hover, -.btn-group .btn.dark:focus, -.btn-group .btn.dark:active, -.btn-group .btn.dark.active, -.btn-group .btn.dark.disabled, -.btn-group .btn.dark[disabled] { - background-color: #222222 !important; - color: #fff !important; - outline: none !important; -} - -.btn-lg { - padding: 10px 16px; - font-size: 18px; - line-height: 1.33; - vertical-align: middle; -} - -.btn-lg > i { - font-size: 18px; -} - -.btn > i { - font-size: 14px; -} - -.btn-sm, -.btn-xs { - padding: 4px 10px 5px 10px; - font-size: 13px; - line-height: 1.5; -} - -.btn-sm > i, -.btn-xs > i { - font-size: 13px; -} - -.btn-xs { - padding: 1px 5px; -} - -.btn-block { - display: block; - width: 100%; - padding-left: 0; - padding-right: 0; -} - -/*** -Metro icons -***/ - -[class^="m-icon-"] { - display: inline-block; - width: 14px; - height: 14px; - margin-top: 3px; - line-height: 14px; - vertical-align: top; - background-image: url(../image/syncfusion-icons.png); - background-position: 0 0; - background-repeat: no-repeat; -} - -[class^="m-icon-big-"] { - display: inline-block; - width: 30px; - height: 30px; - margin: 6px; - vertical-align: middle; - background-image: url(../image/syncfusion-icons.png); - background-position: 0 0px; - background-repeat: no-repeat; -} - -/* large icons */ -.btn.m-icon-big { - padding: 9px 16px 8px 16px; -} - -.btn.m-icon-big.m-icon-only{ - padding: 9px 8px 8px 0px; -} - -.btn.m-icon-big [class^="m-icon-big-"] { - margin: 0 0 0 10px; -} - -.btn.m-icon-ony > i { - margin-left: 0px; -} - -/* default icons */ -.btn.m-icon { - padding: 7px 14px 7px 14px; -} - -.btn.m-icon [class^="m-icon-"] { - margin: 4px 0 0 5px; -} - -.btn.m-icon.m-icon-only { - padding: 7px 10px 7px 6px; -} - -/* white icon */ -.m-icon-white { - background-image: url(../image/syncfusion-icons-white.png); -} - -/* Misc */ -.m-icon-swapright { - background-position: -27px -10px; -} -.m-icon-swapdown { - background-position: -68px -10px; -} -.m-icon-swapleft { - background-position: -8px -10px; -} -.m-icon-swapup { - background-position: -46px -10px; -} -.m-icon-big-swapright{ - background-position: -42px -28px; -} -.m-icon-big-swapdown{ - background-position: -115px -28px; -} -.m-icon-big-swapleft{ - background-position: -6px -28px; -} -.m-icon-big-swapup{ - background-position: -78px -28px; -} - - -/*** -Popover - ***/ -.popover { - -webkit-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.2); - -moz-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.2); - box-shadow: 0 1px 8px rgba(0, 0, 0, 0.2); - padding: 0 !important; -} - -.popover .popover-title { - -webkit-border-radius: 0 !important; - -moz-border-radius: 0 !important; - border-radius: 0 !important; - margin: 0 !important; -} - -.info .popover .popover-title, -.popover.info .popover-title, -.info .popover .popover-content, -.popover.info .popover-content { - color:#27a9e3; -} - -.success .popover .popover-title, -.popover.success .popover-title, -.success .popover .popover-content, -.popover.success .popover-content { - color:#468847; -} - -.error .popover .popover-title, -.popover.error .popover-title, -.error .popover .popover-content, -.popover.error .popover-content { - color:#B94A48; -} - -.warning .popover .popover-title, -.popover.warning .popover-title, -.warning .popover .popover-content, -.popover.warning .popover-content { - color:#C09853; -} - -.popovers.yellow + .popover { - background: yellow; -} - -.popovers.yellow + .popover .popover-title { - background: yellow; -} - -.popovers.yellow + .popover .popover-content { - background: yellow; -} - -/*** -Dropdown -***/ - - /*Fixing dropdown issue on mobile devices in Bootstrap 3.2.2*/ -.dropdown-backdrop { - position: static; -} - -.dropdown:hover .caret, -.open.dropdown .caret { - opacity: 1; - filter: alpha(opacity=100); -} - - -.dropdown.open .dropdown-toggle { - color: #08c; - background: #ccc; - background: rgba(0, 0, 0, 0.3); -} - -/*** -Dropdown Menu -***/ - -.dropdown-menu { - position: absolute; - top: 100%; - left: 0; - z-index: 1000; - display: none; - float: left; - list-style: none; - text-shadow: none; - padding: 0px; - margin:0px; - background-color: #ffffff; - -webkit-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); - -moz-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); - box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); - font-size: 14px; - font-family: "Segoe UI",Helvetica, Arial, sans-serif; - border: 1px solid #ddd; -} - -/* custom dropdown conetnt */ -.dropdown-content { - padding:5px; -} - -.dropdown-content form { - margin:0; -} - -.dropdown.inline .dropdown-menu { - display: inline-block; - position: relative; -} - -.dropdown-menu.bottom-up { - top: auto; - bottom: 100%; - margin-bottom: 2px; -} - -.dropdown-menu li > a { - padding: 6px 0 6px 13px; - color: #333; - text-decoration: none; - display: block; - clear: both; - font-weight: normal; - line-height: 18px; - white-space: nowrap; -} - -.dropdown-menu li > a:hover, -.dropdown-menu .active > a, -.dropdown-menu .active > a:hover { - text-decoration: none; - background-image: none; - background-color: #eee; - color: #333; - filter:none; -} - -/* dropdown sub menu support for Bootsrap 3 */ -.dropdown-submenu { - position: relative; -} - -.dropdown-submenu > .dropdown-menu { - top: 5px; - left: 100%; - margin-top: -6px; - margin-left: -1px; -} - -.dropdown-submenu:hover > .dropdown-menu { - display: block; -} - -.dropup .dropdown-submenu > .dropdown-menu { - top: auto; - bottom: 0; - margin-top: 0; - margin-bottom: -2px; -} - -.dropdown-submenu > a:after { - position: absolute; - display: inline-block; - font-size: 14px; - right: 7px; - top: 7px; - font-family: FontAwesome; - height: auto; - content: "\f105"; - font-weight: 300; -} - -.dropdown-submenu:hover > a:after { - border-left-color: #ffffff; -} - -.dropdown-submenu.pull-left { - float: none; -} - -.dropdown-submenu.pull-left > .dropdown-menu { - left: -100%; - margin-left: 10px; -} - -.nav.pull-right > li > .dropdown-menu, -.nav > li > .dropdown-menu.pull-right { - right: 0; - left: auto; -} - -.nav.pull-right > li > .dropdown-menu:before, -.nav > li > .dropdown-menu.pull-right:before { - right: 12px; - left: auto; -} - -.nav.pull-right > li > .dropdown-menu:after, -.nav > li > .dropdown-menu.pull-right:after { - right: 13px; - left: auto; -} - -.nav.pull-right > li > .dropdown-menu .dropdown-menu, -.nav > li > .dropdown-menu.pull-right .dropdown-menu { - right: 100%; - left: auto; - margin-right: -1px; - margin-left: 0; - -webkit-border-radius: 6px 0 6px 6px; - -moz-border-radius: 6px 0 6px 6px; - border-radius: 6px 0 6px 6px; -} - -@media (max-width: 767px) { - - .navbar-nav .open .dropdown-menu { - position: absolute; - float: left; - width: auto; - margin-top: 0; - background-color: #ffffff; - border: 1px solid #ddd; - -webkit-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); - -moz-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); - box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); - } - - .navbar-nav .open .dropdown-menu > li > a { - padding: 6px 0 6px 13px; - color: #333 !important; - } - - .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-nav .open .dropdown-menu > li > a:focus { - background-color: #eee !important; - } - -} - -/*** -Dropdown Checkboxes (in v1.3) -***/ -.dropdown-checkboxes { - padding: 5px; -} - -.dropdown-checkboxes label { - display: block; - font-weight: 300; - color: #333; - margin-bottom: 4px; - margin-top: 4px; -} - - -/*** -Dropdown Menu Badges -***/ - -.dropdown-menu > li > a > .badge { - position: absolute; - margin-top: 1px; - right: 3px; - display: inline; - font-size: 11px; - font-weight: 300; - text-shadow:none; - height: 18px; - padding: 3px 6px 3px 6px; - text-align: center; - vertical-align: middle; - -webkit-border-radius: 12px !important; - -moz-border-radius: 12px !important; - border-radius: 12px !important; -} - -.dropdown-menu > li > a > .badge.badge-roundless { - -webkit-border-radius: 0 !important; - -moz-border-radius: 0 !important; - border-radius: 0 !important; -} - -/* end: sidebar menu badges */ - -/*** -Forms -***/ -code { - border: 1px solid #e1e1e1; - -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1); - -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1); - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1); -} -label { - font-weight: 400; - font-size: 14px; -} - -.form-control:-moz-placeholder { - color: #999999; -} -.form-control::-moz-placeholder { - color: #999999; -} -.form-control:-ms-input-placeholder { - color: #999999; -} -.form-control::-webkit-input-placeholder { - color: #999999; -} -.form-control { - font-size: 14px; - font-weight: normal; - color: #333333; - background-color: #ffffff; - border: 1px solid #e5e5e5; - border-radius: 0; - -webkit-box-shadow: none; - box-shadow: none; - -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; - transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; -} -.form-control:focus { - border-color: #999999; - outline: 0; - -webkit-box-shadow: none !important; - box-shadow: none !important; -} -.form-control[disabled], -.form-control[readonly], -fieldset[disabled] .form-control { - cursor: not-allowed; - background-color: #eeeeee; -} - -.form-control.height-auto { - height: auto; -} - -.uneditable-input { - padding: 6px 12px; - min-width: 206px; - font-size: 14px; - font-weight: normal; - height: 34px; - color: #333333; - background-color: #ffffff; - border: 1px solid #e5e5e5; - border-radius: 0; - -webkit-box-shadow: none; - box-shadow: none; - -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; - transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; -} - -label.form-control { - display: block; - margin-bottom: 5px; -} - -input[disabled], -select[disabled], -textarea[disabled] { - cursor: not-allowed; - background-color: #F4F4F4 !important; -} - -input[readonly], -select[readonly], -textarea[readonly] { - cursor: not-allowed; - background-color: #F9F9F9 !important; -} - -/* input groups */ -.input-group.input-group-fixed { - width: auto !important; -} - -.input-group-addon { - border-color: #e5e5e5; - background: #e5e5e5; - min-width: 39px; -} - -.input-group-addon > i { - color: #999; -} - -/* form control sizing */ -.form-control-inline { - display: inline-block !important; -} - -.input-mini { - width: 45px !important; -} - -.input-xsmall { - width: 80px !important; -} - -.input-small { - width: 120px !important; -} - -.input-medium { - width: 240px !important; -} - -.input-large { - width: 320px !important; -} - -.input-xlarge { - width: 480px !important; -} - -.input-inline { - display: inline-block; - width: auto; - vertical-align: middle; -} - -.form-group .input-inline { - margin-right: 5px; -} - -.input-sm { - height: 28px; - padding: 5px 10px; - font-size: 13px; -} - -select.input-sm { - height: 28px; - line-height: 28px; - padding: 2px 10px; -} - -/*** -Input spinner(in v1.4) -***/ - -input[type="text"].spinner, -input[type="password"].spinner, -input[type="datetime"].spinner, -input[type="datetime-local"].spinner, -input[type="date"].spinner, -input[type="month"].spinner, -input[type="time"].spinner, -input[type="week"].spinner, -input[type="number"].spinner, -input[type="email"].spinner, -input[type="url"].spinner, -input[type="search"].spinner, -input[type="tel"].spinner, -input[type="color"].spinner { - background-image: url("../image/input-spinner.gif") !important; - background-repeat: no-repeat; - background-position: right 8px; -} - -@media (max-width: 768px) { - - .input-large { - width: 250px !important; - } - - .input-xlarge { - width: 300px !important; - } - -} - -/*** -Error States -***/ - -.has-warning .help-inline, -.has-warning .help-block, -.has-warning .control-label { - color: #c09853; -} - -.has-warning .form-control { - border-color: #c09853; - -webkit-box-shadow: none; - box-shadow: none; -} - -.has-warning .form-control:focus { - border-color: #a47e3c; - -webkit-box-shadow: none; - box-shadow: none; -} - -.has-warning .input-group-addon { - color: #c09853; - background-color: #fcf8e3; - border-color: #c09853; -} - -.has-error .help-inline, -.has-error .help-block, -.has-error .control-label { - color: #b94a48; -} - -.has-error .form-control { - border-color: #b94a48; - -webkit-box-shadow: none; - box-shadow: none; -} - -.has-error .form-control:focus { - border-color: #953b39; - -webkit-box-shadow: none; - box-shadow: none; -} - -.has-error .input-group-addon { - color: #b94a48; - background-color: #f2dede; - border-color: #b94a48; -} - -.has-success .help-inline, -.has-success .help-block, -.has-success .control-label { - color: #468847; -} - -.has-success .form-control { - border-color: #468847; - -webkit-box-shadow: none; - box-shadow: none; -} - -.has-success .form-control:focus { - border-color: #356635; - -webkit-box-shadow: none; - box-shadow: none; -} - -.has-success .input-group-addon { - color: #468847; - background-color: #dff0d8; - border-color: #468847; -} - -/*** -Custom label and badges -***/ - -.label, -.badge { - font-weight: 300; - text-shadow: none !important; -} - -.label { - font-size: 12px; - padding: 3px 6px 3px 6px; -} - -.label.label-sm { - font-size: 12px; - padding: 1px 4px 1px 4px; -} - -h1 .label, -h2 .label, -h3 .label, -h4 .label, -h5 .label, -h6 .label, -h7 .label { - font-size: 75%; -} - -.badge { - font-size: 11px !important; - font-weight: 300; - text-align: center; - background-color: #e02222; - height: 18px; - padding: 3px 6px 3px 6px; - -webkit-border-radius: 12px !important; - -moz-border-radius: 12px !important; - border-radius: 12px !important; - text-shadow:none !important; - text-align: center; - vertical-align: middle; -} - -.badge.badge-roundless { - -webkit-border-radius: 0 !important; - -moz-border-radius: 0 !important; - border-radius: 0 !important; -} - -.badge-default, -.label-default { - background-color: #999 !important; -} - -.badge-primary, -.label-primary { - background-color: #428bca !important; -} - -.label-success, -.badge-success { - background-color: #3cc051; - background-image: none !important; -} - -.label-warning, -.badge-warning { - background-color: #fcb322; - background-image: none !important; -} - -.label-danger, -.badge-danger { - background-color: #ed4e2a; - background-image: none !important; -} - -.label-info, -.badge-info { - background-color: #57b5e3; - background-image: none !important; -} - -/* fix badge position for navs */ -.nav.nav-pills > li > a > .badge { - margin-top: -2px; -} - -.nav.nav-stacked > li > a > .badge { - margin-top: 1px; - margin-bottom: 0px; -} - -/*** -Iconic Labels -***/ - -.label.label-icon { - padding: 4px 1px 4px 5px; - margin-right: 2px; - text-align: center !important; -} - -.ie9 .label.label-icon, -.ie10 .label.label-icon { - padding: 3px 0px 3px 3px; -} - -.label.label-icon > i { - font-size: 12px; - text-align: center !important; -} - - -/*** -Pagination -***/ -.pagination { - margin: 10px 0; -} - -.pagination .active > a, -.pagination .active > a:hover { - background: #eee; - border-color: #dddddd; - color: #333; -} - - - -/*** -wells -***/ -.well { - -webkit-box-shadow: none !important; - -moz-box-shadow: none !important; - box-shadow: none !important; -} - -/* Bootstrap Tabs */ - -.dropup.open > .dropdown-toggle, -.dropdown.open > .dropdown-toggle { - border-color: #ddd !important; -} - -.nav-tabs > li > .dropdown-menu:after, -.nav-pills > li > .dropdown-menu:after, -.navbar-nav > li > .dropdown-menu:after, - -.nav-tabs > li > .dropdown-menu:before, -.nav-pills > li > .dropdown-menu:before, -.navbar-nav > li > .dropdown-menu:before { - display: none !important; -} - -.nav-tabs > .dropdown.open > .dropdown-toggle, -.nav-pills > .dropdown.open > .dropdown-toggle { - background: #eee !important; - color: #0d638f !important; -} - - -.nav-tabs, -.nav-pills { - margin-bottom: 10px; -} - -.tabs-right > .nav-tabs, -.tabs-left > .nav-tabs { - border-bottom: 0; -} - -.tabs-left > .nav-tabs > li, -.tabs-right > .nav-tabs > li { - float: none; -} - -.tabs-left > .nav-tabs > li > a, -.tabs-right > .nav-tabs > li > a { - min-width: 74px; - margin-right: 0; - margin-bottom: 3px; -} - -.tabs-left > .nav-tabs { - float: left; - margin-right: 19px; - border-right: 1px solid #ddd; -} - -.tabs-left > .nav-tabs > li > a { - margin-right: -1px; - -webkit-border-radius: 4px 0 0 4px; - -moz-border-radius: 4px 0 0 4px; - border-radius: 4px 0 0 4px; -} - -.tabs-left > .nav-tabs > li > a:hover, -.tabs-left > .nav-tabs > li > a:focus { - border-color: #eeeeee #dddddd #eeeeee #eeeeee; -} - -.tabs-left > .nav-tabs .active > a, -.tabs-left > .nav-tabs .active > a:hover, -.tabs-left > .nav-tabs .active > a:focus { - border-color: #ddd transparent #ddd #ddd; - *border-right-color: #ffffff; -} - -.tabs-right > .nav-tabs { - float: right; - margin-left: 19px; - border-left: 1px solid #ddd; -} - -.tabs-right > .nav-tabs > li > a { - margin-left: -1px; - -webkit-border-radius: 0 4px 4px 0; - -moz-border-radius: 0 4px 4px 0; - border-radius: 0 4px 4px 0; -} - -.tabs-right > .nav-tabs > li > a:hover, -.tabs-right > .nav-tabs > li > a:focus { - border-color: #eeeeee #eeeeee #eeeeee #dddddd; -} - -.tabs-right > .nav-tabs .active > a, -.tabs-right > .nav-tabs .active > a:hover, -.tabs-right > .nav-tabs .active > a:focus { - border-color: #ddd #ddd #ddd transparent; - *border-left-color: #ffffff; -} - -.tabs-below > .nav-tabs, -.tabs-below > .nav-pills { - border-bottom: 0; - margin-bottom: 0px; - margin-top: 10px; -} - -.tabs-below > .nav-tabs { - border-top: 1px solid #ddd; - margin-bottom: 0; - margin-top: 10px; -} - -.tabs-below > .nav-tabs > li { - margin-top: -1px; - margin-bottom: 0; -} - -.tabs-below > .nav-tabs > li > a { - -webkit-border-radius: 0 0 4px 4px; - -moz-border-radius: 0 0 4px 4px; - border-radius: 0 0 4px 4px; -} - -.tabs-below > .nav-tabs > li > a:hover, -.tabs-below > .nav-tabs > li > a:focus { - border-top-color: #ddd; - border-bottom-color: transparent; -} - -.tabs-below > .nav-tabs > .active > a, -.tabs-below > .nav-tabs > .active > a:hover, -.tabs-below > .nav-tabs > .active > a:focus { - border-color: transparent #ddd #ddd #ddd; -} - -/* BS3.0.3 removed tabbable class so its added back */ -.tabbable:before, -.tabbable:after { - display: table; - content: " "; -} - -.tabbable:after { - clear: both; -} - -.tabbable:before, -.tabbable:after { - display: table; - content: " "; -} - -.tabbable:after { - clear: both; -} - -/*** -Bootstrap modal -***/ - -.modal { - z-index: 10050 !important; - outline: none !important; -} - -.modal-header { - border-bottom: 1px solid #EFEFEF; -} - -.modal-header h3{ - font-weight: 300; -} - -.modal-small.modal-dialog { - width: 400px; -} - -.modal-wide.modal-dialog { - width: 60%; -} - -.modal-full.modal-dialog { - width: 100%; -} - -@media (max-width: 768px) { - - .modal-small.modal-dialog, - .modal-wide.modal-dialog, - .modal-full.modal-dialog { - width: auto; - } - -} - -/*** -Modal header close button fix -***/ -.modal-header .close { - margin-top: 0px !important; -} - -.modal > .loading { - position: absolute; - top: 50%; - left:50%; - margin-top: -22px; - margin-left: -22px; -} - -.modal-backdrop { - border: 0 !important; - outline: none !important; - z-index: 10049 !important; -} - -.modal-backdrop, -.modal-backdrop.fade.in { - background-color: #333 !important; -} - -/* fix: content shifting to the right on modal open due to scrollbar closed */ -.modal { - overflow-y: auto !important; -} - -.modal-open { - overflow-y: auto !important; -} - -.modal-open-noscroll { - overflow-y: hidden !important; -} - - -/*** -Image Carousel -***/ -.carousel.image-carousel .carousel-inner { - padding-top: 0; - padding-bottom: 0; -} - -.carousel.image-carousel .carousel-control i { - position: absolute; - top:40%; -} - -.carousel.image-carousel.image-carousel-hoverable .carousel-control i { - display: none; -} - -.carousel.image-carousel.image-carousel-hoverable:hover .carousel-control i { - display: inline-block; -} - -.carousel.image-carousel .carousel-control.left i { - left:10px; -} - -.carousel.image-carousel .carousel-control.right i { - right:10px; -} - -.carousel.image-carousel .carousel-indicators { - margin-top: 10px; - bottom: -7px; -} - -.carousel.image-carousel .carousel-indicators li { - background-color: #666; -} - -.carousel.image-carousel .carousel-indicators li.active { - background-color: #333; -} - -.carousel.image-carousel .carousel-caption { - position: absolute; - right: 0; - bottom: 0; - left: 0; - padding: 15px 15px 25px 15px; - background: #333333; - background: rgba(0, 0, 0, 0.75); -} - -.carousel.image-carousel .carousel-caption h4, -.carousel.image-carousel .carousel-caption h3, -.carousel.image-carousel .carousel-caption h2, -.carousel.image-carousel .carousel-caption p { - text-align: left; - line-height: 20px; - color: #ffffff; -} - -.carousel.image-carousel .carousel-caption h2, -.carousel.image-carousel .carousel-caption h3, -.carousel.image-carousel .carousel-caption h4 { - margin: 0 0 5px; -} - -.carousel.image-carousel .carousel-caption h2 a, -.carousel.image-carousel .carousel-caption h3 a, -.carousel.image-carousel .carousel-caption h4 a { - color: #aaa; -} - -.carousel.image-carousel .carousel-caption p { - margin-bottom: 0; -} - -.carousel.image-carousel .item { - margin: 0; -} - -/*** -Bootstrap Tables -***/ - -.table thead > tr > th { - border-bottom: 0; -} - -.table tbody tr.active td, -.table tbody tr.active th { - background-color: #e9e9e9 !important; -} - -.table tbody tr.active:hover td, -.table tbody tr.active:hover th { - background-color: #e1e1e1 !important; -} - -.table-striped tbody tr.active:nth-child(odd) td, -.table-striped tbody tr.active:nth-child(odd) th { - background-color: #017ebc; -} - -.table .heading > th { - background-color: #eee !important; -} - -/*** -Bootstrap Panel -***/ - -.panel { - -webkit-box-shadow: none !important; - -moz-box-shadow: none !important; - box-shadow: none !important; -} - -.panel .panel-title > a:hover { - text-decoration: none; -} - -.accordion .panel-heading { - padding: 0; -} - -.accordion .panel-title { - padding: 0; -} - -.accordion .panel-title .accordion-toggle { - display: block; - padding: 10px 15px; -} - -.accordion .accordion-toggle.accordion-toggle-styled { - background: url("../image/accordion-plusminus.png") no-repeat; - background-position: right -19px; - margin-right: 15px; -} - -.accordion .accordion-toggle.accordion-toggle-styled.collapsed { - background-position: right 12px; -} - -/*** -Responsive Image -***/ -.table td .img-responsive{ - width:100%; -} - -/*** -Unstyled List -***/ - -.list-unstyled li > .list-unstyled { - margin-left: 25px; -} - -.alarm-critical{ - background-color: rgb(255, 0, 0); -} - -.alarm-major{ - background-color: rgb(255, 150, 0); -} - -.alarm-minor{ - background-color: rgb(248, 252, 96); -} - -.alarm-warning{ - background-color: rgb(152, 240, 248); -} \ No newline at end of file diff --git a/portal-common/src/main/webapp/common/css/style-ict-bootstrap.css b/portal-common/src/main/webapp/common/css/style-ict-bootstrap.css deleted file mode 100644 index 49685ac2..00000000 --- a/portal-common/src/main/webapp/common/css/style-ict-bootstrap.css +++ /dev/null @@ -1,838 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -@font-face { - font-family: 'Lato'; - font-style: normal; - font-weight: 400; - src: local('Lato Regular'), local('Lato-Regular'), url(9k-RPmcnxYEPm8CNFsH2gg.woff) format('woff'); -} -html, body, div, span, applet, object, blockquote, pre, -a, abbr, acronym, address, big, cite, code, -del, dfn, em, img, ins, kbd, q, s, samp, -small, strike, strong, sub, sup, tt, var, -b, u, i, center, -dl, dt, dd, ol, ul, li, -fieldset, form, label, legend, -table, caption, tbody, tfoot, thead, tr, th, td, -article, aside, canvas, details, embed, -figure, figcaption, footer, header, hgroup, -menu, nav, output, ruby, section, summary, -time, mark, audio, video { - margin: 0; - padding: 0; - border: 0; - font-size: 1em; - vertical-align: baseline; -} -/* HTML5 display-role reset for older browsers */ -article, aside, details, figcaption, figure, -footer, header, hgroup, menu, nav, section { - display: block; -} -body { - background: rgba(231, 231, 231, 0.43); - line-height: 1.125em; - color: white; - max-width: 1920px; - margin: 0 auto; - position: relative; - font-family: 'Lato', Helvetica, Arial, Tahoma; - text-shadow: 1px 1px 0 rgba(0,0,0,0.3); -} -ol, ul { - padding: 0 10px; - margin: 0 10px; - line-height: 1.5em; -} -h1, h2, h3, h4, h5, h6 { - text-shadow: 1px 1px 0 rgba(0,0,0,0.5); - font-family: 'Lato', Georgia, Helvetica, Tahoma; - margin: 10px 0; - font-weight: normal; -} -h1 { - font-size: 1.875em; -} -h2 { - font-size: 1.6em; - line-height: 1em; -} -h3 { - font-size: 1.25em; -} -h4 { - font-size: 1.125em; -} -h5 { - font-size: 1em; -} -h6 { - font-size: 0.875em; -} -a { - text-decoration: none; - color: white; -} -a:hover { - color: white; - opacity: 0.9; -} -a:visited { - color: white; -} -h2 { - cursor: pointer; -} -code, pre { - font-family: Monaco, Menlo, Consolas; - font-size: 1em; - color: #FFFFDE; - padding: 0 3px 2px; -} - -table { - border-collapse: collapse; - border-spacing: 0; -} - -.header { - /*padding: 14px 0; - background-color: rgb(19, 17, 17); - background-color: #006a3f; - background-image: - radial-gradient(rgba(0,0,0,0.1) 15%, transparent 16%), - radial-gradient(rgba(0,0,0,0.1) 15%, transparent 16%), - radial-gradient(rgba(255, 255, 255, 0.1) 15%, transparent 20%), - radial-gradient(rgba(255, 255, 255, 0.1) 15%, transparent 20%); - background-image: - -webkit-radial-gradient(rgba(0,0,0,0.1) 15%, transparent 16%), - -webkit-radial-gradient(rgba(0,0,0,0.1) 15%, transparent 16%), - -webkit-radial-gradient(rgba(255, 255, 255, 0.1) 15%, transparent 20%), - -webkit-radial-gradient(rgba(255, 255, 255, 0.1) 15%, transparent 20%); - background-position: 0 0px, 4px 4px, 0 1px, 4px 5px; - background-size: 8px 8px; - border-bottom: 1px solid rgb(41, 41, 41);*/ - margin-top: 1%; - /* margin-left: 10%; */ - margin-left: 90px; -} -@media (min-width: 1600px){ - .header { - margin-top: 1%; - margin-left: 95px; - } -} - -.header div.float-left { - /*padding-left: 2%;*/ -} - -@media (min-width: 769px) and (max-width: 1024px) { - .header div.float-left { - /*padding-left: 5%;*/ - } -} - -.header a { - font-size: 35px; - color: white; - display: block; - opacity: 0.8; -} -.header a:first-letter { - font-size: 60px; - line-height: 40px; - font-weight: bold; -} -.header .target { - margin-left: 5px; - margin-bottom: 20px; -} - -.header .reponsive-block { - list-style: none; - margin: 0px; - padding: 50px 2% 0 0; -} - -.header .reponsive-block li { - display: inline-block; - float:left; -} - -.header .reponsive-block a { - display: inline-block; - margin: 0 5px; - cursor: pointer; - background: url(../i/reponsive.png) no-repeat; -} - -.header .reponsive-block a.desktop { - background-position: 3px 0; - width: 34px; height: 26px; -} - -.header .reponsive-block a.tablet-landscape { - background-position: -49px 0; - width: 22px; - height: 22px; -} - -.header .reponsive-block a.tablet-portrait { - background-position: -90px 0; - width: 18px; - height: 24px; -} - -.header .reponsive-block a.iphone-landscape { - background-position: -129px 0; - width: 20px; - height: 20px; -} - -.header .reponsive-block a.iphone-portrait { - background-position: -166px 0; - width: 16px; - height: 26px; -} - -.header .reponsive-block a.desktop:hover, -.header .reponsive-block a.desktop.active { - background-position: 3px -34px; -} - -.header .reponsive-block a.tablet-landscape:hover, -.header .reponsive-block a.tablet-landscape.active { - background-position: -49px -34px; -} - -.header .reponsive-block a.tablet-portrait:hover, -.header .reponsive-block a.tablet-portrait.active { - background-position: -91px -33px; -} - -.header .reponsive-block a.iphone-landscape:hover, -.header .reponsive-block a.iphone-landscape.active { - background-position: -128px -33px; -} - -.header .reponsive-block a.iphone-portrait:hover, -.header .reponsive-block a.iphone-portrait.active { - background-position: -166px -33px; -} -.free-wall { - margin: auto; -} - -.free-wall-logo { - margin: auto; - height: 420px; -} -.size2-2 { - width: 80px; - height: 80px; -} - -.size11 { - height: 160px; - width: 160px; -} - -.size12 { - width: 160px; - height: 320px; -} - -.size21 { - width: 320px; - height: 160px; -} - -.size22 { - height: 320px; - width: 320px; -} - -.size13 { - width: 160px; - height: 480px; -} - -.size31 { - width: 480px; - height: 160px; -} - -.size23 { - width: 320px; - height: 480px; -} - -.size24 { - width: 320px; - height: 640px; -} - -.size32 { - width: 480px; - height: 320px; -} - -.size33 { - width: 480px; - height: 480px; -} - -.size34 { - width: 480px; - height: 640px; -} - -.size43 { - width: 640px; - height: 480px; -} - -.size35 { - width: 480px; - height: 800px; -} - -.size53 { - width: 800px; - height: 480px; -} - -.size36 { - width: 480px; - height: 960px; -} - -.size41 { - width: 270px; - height: 160px; -} -.size42 { - width: 270px; - height: 320px; -} -.size41-1024 { - width: 213px; - height: 133px; -} -.size42-1024 { - width: 213px; - height: 275px; -} -.size41-1366 { - width: 278px; - height: 156px; -} -.size42-1366 { - width: 278px; - height: 332px; -} -.size41-1440 { - width: 310px; - height: 168px; -} -.size42-1440 { - width: 310px; - height: 340px; -} -.size41-1600 { - width: 330px; - height: 173px; -} -.size42-1600 { - width: 330px; - height: 354px; -} - -.donate form { - height: 100%; - width: 100%; - background: rgb(44, 62, 80); -} - -.donate form .paypal { - display: block; - margin: auto; - padding: 20px 0px 0px 0px; - outline: 0; -} - -.img-demo { - vertical-align: bottom; - list-style: none; - margin:0; - padding: 0; -} - -.img-demo li { - float: left; - width: 25%; - text-align: center; -} - -.img-demo li img { - border: 2px solid white; - width: 98px; - height: 98px; -} - -.float-left { - float: left; -} - -.float-right { - float: right; -} - -.clearfix:before, -.clearfix:after { - content: ""; - display: table; -} - -.clearfix:after { - clear: both; -} - -.clearfix { - zoom: 1; /* For IE 6/7 (trigger hasLayout) */ -} - -.rest-left { - margin-left: 244px; -} - -.desc h1, -.desc h2, -.desc h3, -.desc h4, -.desc h5, -.desc h6 { - font-weight: bold; -} - -.desc h2 { - border-bottom: 1px solid rgba(0,0,0,0.1); - margin-top: 0px; - margin-bottom: 0px; - padding-bottom: 50px; -} - -.desc h2 span { - float: left; - display: block; - line-height: 50px; -} - -@media (max-width: 1024px) { - .brick { - height:140px; - } -} - -.brick { - margin-top:10px; - background-color: white; - /* float: left; */ - cursor: default; - overflow: hidden; - background-repeat: no-repeat; - background-size: cover; - background-position: center; - height:160px; -} - -@media (min-width: 1440px) { - .brick { - height:180px; - } -} - -.brick .cover { - overflow: hidden; - margin: 20px; - margin-top: 25%; - font-size: 30px; - float: right; - text-align: right; -} - -.brick .read-more { - position: absolute; - display: none; - bottom: 0px; - left: 0px; - right: 0px; - padding: 12px; - background: rgb(0, 0, 0); - background: rgba(0, 0, 0, 0.45); -} - -.brick:hover .read-more { - display: block; - cursor: pointer; -} - -.brick .desc { - display: none; -} - -.full-width .float-left { - display: none; -} - -.full-width .desc { - display: block; -} - -.full-width.brick { - box-shadow: none; - overflow: visible; - border: none !important; - background: none !important; -} - -.full-width.brick .cover { - margin: 0px 20px; - color: #333; -} - -.full-width.brick .cover * { - text-shadow: none; -} - -.full-width.brick .cover code { - color: #666; -} - -.open .float-left { - display: none; -} - -.open .desc { - display: block; -} - -.example { - width: 0px; - height: 0px; - overflow: visible !important; /* for ie7 */ -} - -.example-draggable { - cursor: move; -} - -.example-draggable * { - cursor: move; -} - -.example-draggable a { - cursor: pointer; -} - -.cell { - background-position: center center; - background-repeat: no-repeat; - background-size: cover; - position: absolute; - background-color: #222; -} - -[class*="-share"] { - cursor: pointer; - margin: 20px 0; - line-height: 30px; - padding-left: 30px; -} - -.facebook-share { - background: url(../i/fb.png) no-repeat left center; -} - -.twitter-share { - background: url(../i/tw.png) no-repeat left center; -} - -.google-share { - background: url(../i/gp.png) no-repeat left center; -} - -.download-icon { - background: url(../i/download.png) no-repeat left center; - display: block; - margin: 0 0 10px 0; - line-height: 30px; - padding-left: 30px; -} - -.js-icon { - background: url(../i/js.png) no-repeat left center; - display: block; - line-height: 30px; - padding-left: 30px; -} - -.fork { - float: right; - width: 100%; - height: 100%; - display: block; - background: url(../i/forkme.png) no-repeat top right; -} - -.back-button { - position: fixed; - z-index: 9999; - padding: 1%; - bottom: 2%; - right: 2%; - display: none; - background: black; -} - -.back-button .back-icon { - background: url(../i/back.png) no-repeat top center; - width: 45px; - height: 27px; - display: block; -} - -.back-button .back-icon:hover { - background: url(../i/back.png) no-repeat bottom center; -} - -@media (min-width: 1600px) { - .main-content-wrapper{ - width:100%; - margin-left:95px; - margin-right: 1%; - } -} - -@media (min-width: 1441px) and (max-width: 1599px) { - .main-content-wrapper{ - width:100%; - /*margin-left: 0%; */ - margin-left:75px; - margin-right: 1%; - } -} - -@media (min-width: 1367px) and (max-width: 1440px) { - .main-content-wrapper{ - width:100%; - margin-left: 75px; - margin-right: 1%; - } -} - -@media (min-width: 1281px) and (max-width: 1366px) { - .main-content-wrapper{ - width:100%; - /*margin-left: 2%; */ - margin-left:75px; - margin-right: 2%; - } -} - -@media (min-width: 1025px) and (max-width: 1280px) { - .main-content-wrapper{ - width:100%; - /*margin-left: 4%;*/ - margin-left:75px; - margin-right: 1%; - } -} - -@media (min-width: 769px) and (max-width: 1024px) { - .main-content-wrapper{ - width:100%; - /*margin-left: 6%;*/ - margin-left:75px; - margin-right: 1%; - } -} - -@media (min-width: 641px) and (max-width: 768px) { - .main-content-wrapper{ - width:100%; - margin-left: 10%; - margin-right: 1%; - } -} - -@media (min-width: 481px) and (max-width: 640px) { - .main-content-wrapper{ - width:100%; - margin-left: 0%; - margin-right: 1%; - } -} - -@media (max-width: 480px) { - .main-content-wrapper{ - width:100%; - margin-left: 9%; - margin-right: 1%; - } -} - -body{ - font-family: microsoft yahei; - background: #484747; -} - -.skyBlue-mainpage{ - background: -moz-linear-gradient(left top, #1cadd9, #20c0f0); - background: -webkit-gradient(linear, left top, right bottom, color-stop(0, #1cadd9), color-stop(1, #20c0f0)); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#1cadd9', endColorstr='#20c0f0', GradientType='0'); - background: linear-gradient(to bottom right,#1cadd9, #20c0f0); -} -.golden-mainpage{ - background-image: -moz-linear-gradient(left top, #bca374, #d9cf7a); - background-image: -webkit-gradient(linear, left top, right bottom, color-stop(0, #bca374), color-stop(1, #d9cf7a)); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#bca374, endColorstr=#d9cf7a, GradientType=0); - background: linear-gradient(to bottom right,#bca374, #d9cf7a); -} -.manLieONCloud-image{ - background-image: url('../image/mainpage/pic/1.png'); -} -.orange-mainpage{ - background-image: -moz-linear-gradient(left top, #f09c0a, #f4be35); - background-image: -webkit-gradient(linear, left top, right bottom, color-stop(0, #f09c0a), color-stop(1, #f4be35)); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#f09c0a, endColorstr=#f4be35, GradientType=0); - background: linear-gradient(to bottom right,#f09c0a, #f4be35); -} -.pinkishRed-mainpage{ - background-image: -moz-linear-gradient(left top, #e03655, #ef3a5b); - background-image: -webkit-gradient(linear, left top, right bottom, color-stop(0, #e03655), color-stop(1, #ef3a5b)); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#e03655, endColorstr=#ef3a5b, GradientType=0); - background: linear-gradient(to bottom right,#e03655, #ef3a5b); -} -.magicCube-image{ - background-image: url('../image/mainpage/pic/4.png'); -} -.magicThought-image{ - background-image: url('../image/mainpage/pic/5.png'); -} -.grassGreen-mainpage{ - background-image: -moz-linear-gradient(left top, #008b04, #03a501); - background-image: -webkit-gradient(linear, left top, right bottom, color-stop(0, #008b04), color-stop(1, #03a501)); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#008b04, endColorstr=#03a501, GradientType=0); - background: linear-gradient(to bottom right,#008b04, #03a501); -} -.meeting-image{ - background-image: url('../image/mainpage/pic/3.png'); -} -.earth-image{ - background-image: url('../image/mainpage/pic/2.png'); -} -.toolsImageBrokenLine{ - background-image: url('../image/mainpage/icon/1.png'); - height: 150px; - width: 120px; - margin-top: 15%; - margin-left:-5px; -} -.toolsImageHierachy{ - background-image: url('../image/mainpage/icon/2.png'); - height: 150px; - width: 120px; - margin-top: 15%; - margin-left:-5px; -} -.toolsImageGear{ - background-image: url('../image/mainpage/icon/3.png'); - height: 150px; - width: 120px; - margin-top: 15%; - margin-left:-5px; -} -.toolsImagePresent{ - background-image: url('../image/mainpage/icon/4.png'); - height: 150px; - width: 120px; - margin-top: 15%; - margin-left:-5px; -} -.toolsImageFile{ - background-image: url('../image/mainpage/icon/5.png'); - height: 150px; - width: 120px; - margin-top: 15%; - margin-left:-5px; -} -.toolsImageBriefcase{ - background-image: url('../image/mainpage/icon/6.png'); - height: 150px; - width: 120px; - margin-top: 15%; - margin-left:-5px; -} -.contentTip{ - opacity:0; - display:block; - padding: 20px; - text-align: left; - line-height: inherit; - text-indent: 2em; - position: absolute; -} -.contentTipShow{ - display:block; - padding: 20px; - text-align: left; - line-height: inherit; - text-indent: 2em; - position: absolute; -} -.coverHidden{ - display:none; -} -.coverShrink{ - width:0px !important; - height:0px !important; -} -/* -.brick .contentToggle{ - -webkit-transition: opacity 1s ease-in-out; - -moz-transition: opacity 1s ease-in-out; - -o-transition: opacity 1s ease-in-out; - transition: opacity 1s ease-in-out; -} -.brick .cover :hover{ - opacity:0; -} -*/ -.hideSideMenuForMainPage { - display: none! important; -} -.fullFillDiv { - width:100%; - height:100%; -} -@media screen and (min-width: 992px)and (max-width: 1280px) { - .brick .cover { - font-size:25px; - } -} - diff --git a/portal-common/src/main/webapp/common/css/style-ict.css b/portal-common/src/main/webapp/common/css/style-ict.css deleted file mode 100644 index 85ad3eff..00000000 --- a/portal-common/src/main/webapp/common/css/style-ict.css +++ /dev/null @@ -1,820 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -@font-face { - font-family: 'Lato'; - font-style: normal; - font-weight: 400; - src: local('Lato Regular'), local('Lato-Regular'), url(9k-RPmcnxYEPm8CNFsH2gg.woff) format('woff'); -} -html, body, div, span, applet, object, blockquote, pre, -a, abbr, acronym, address, big, cite, code, -del, dfn, em, img, ins, kbd, q, s, samp, -small, strike, strong, sub, sup, tt, var, -b, u, i, center, -dl, dt, dd, ol, ul, li, -fieldset, form, label, legend, -table, caption, tbody, tfoot, thead, tr, th, td, -article, aside, canvas, details, embed, -figure, figcaption, footer, header, hgroup, -menu, nav, output, ruby, section, summary, -time, mark, audio, video { - margin: 0; - padding: 0; - border: 0; - font-size: 1em; - vertical-align: baseline; -} -/* HTML5 display-role reset for older browsers */ -article, aside, details, figcaption, figure, -footer, header, hgroup, menu, nav, section { - display: block; -} -body { - background: rgba(231, 231, 231, 0.43); - line-height: 1.125em; - color: white; - max-width: 1920px; - margin: 0 auto; - position: relative; - font-family: 'Lato', Helvetica, Arial, Tahoma; - text-shadow: 1px 1px 0 rgba(0,0,0,0.3); -} -ol, ul { - padding: 0 10px; - margin: 0 10px; - line-height: 1.5em; -} -h1, h2, h3, h4, h5, h6 { - text-shadow: 1px 1px 0 rgba(0,0,0,0.5); - font-family: 'Lato', Georgia, Helvetica, Tahoma; - margin: 10px 0; - font-weight: normal; -} -h1 { - font-size: 1.875em; -} -h2 { - font-size: 1.6em; - line-height: 1em; -} -h3 { - font-size: 1.25em; -} -h4 { - font-size: 1.125em; -} -h5 { - font-size: 1em; -} -h6 { - font-size: 0.875em; -} -a { - text-decoration: none; - color: white; -} -a:hover { - color: white; - opacity: 0.9; -} -a:visited { - color: white; -} -h2 { - cursor: pointer; -} -code, pre { - font-family: Monaco, Menlo, Consolas; - font-size: 1em; - color: #FFFFDE; - padding: 0 3px 2px; -} - -table { - border-collapse: collapse; - border-spacing: 0; -} - -.header { - /*padding: 14px 0; - background-color: rgb(19, 17, 17); - background-color: #006a3f; - background-image: - radial-gradient(rgba(0,0,0,0.1) 15%, transparent 16%), - radial-gradient(rgba(0,0,0,0.1) 15%, transparent 16%), - radial-gradient(rgba(255, 255, 255, 0.1) 15%, transparent 20%), - radial-gradient(rgba(255, 255, 255, 0.1) 15%, transparent 20%); - background-image: - -webkit-radial-gradient(rgba(0,0,0,0.1) 15%, transparent 16%), - -webkit-radial-gradient(rgba(0,0,0,0.1) 15%, transparent 16%), - -webkit-radial-gradient(rgba(255, 255, 255, 0.1) 15%, transparent 20%), - -webkit-radial-gradient(rgba(255, 255, 255, 0.1) 15%, transparent 20%); - background-position: 0 0px, 4px 4px, 0 1px, 4px 5px; - background-size: 8px 8px; - border-bottom: 1px solid rgb(41, 41, 41);*/ - margin-top: 3%; - /* margin-left: 10%; */ - margin-left: 75px; -} -@media (min-width: 1600px){ - .header { - margin-top: 3%; - margin-left: 95px; - } -} - -.header div.float-left { - /*padding-left: 2%;*/ -} - -@media (min-width: 769px) and (max-width: 1024px) { - .header div.float-left { - /*padding-left: 5%;*/ - } -} - -.header a { - font-size: 35px; - color: white; - display: block; - opacity: 0.8; -} -.header a:first-letter { - font-size: 60px; - line-height: 40px; - font-weight: bold; -} -.header .target { - margin-left: 5px; - margin-bottom: 20px; -} - -.header .reponsive-block { - list-style: none; - margin: 0px; - padding: 50px 2% 0 0; -} - -.header .reponsive-block li { - display: inline-block; - float:left; -} - -.header .reponsive-block a { - display: inline-block; - margin: 0 5px; - cursor: pointer; - background: url(../i/reponsive.png) no-repeat; -} - -.header .reponsive-block a.desktop { - background-position: 3px 0; - width: 34px; height: 26px; -} - -.header .reponsive-block a.tablet-landscape { - background-position: -49px 0; - width: 22px; - height: 22px; -} - -.header .reponsive-block a.tablet-portrait { - background-position: -90px 0; - width: 18px; - height: 24px; -} - -.header .reponsive-block a.iphone-landscape { - background-position: -129px 0; - width: 20px; - height: 20px; -} - -.header .reponsive-block a.iphone-portrait { - background-position: -166px 0; - width: 16px; - height: 26px; -} - -.header .reponsive-block a.desktop:hover, -.header .reponsive-block a.desktop.active { - background-position: 3px -34px; -} - -.header .reponsive-block a.tablet-landscape:hover, -.header .reponsive-block a.tablet-landscape.active { - background-position: -49px -34px; -} - -.header .reponsive-block a.tablet-portrait:hover, -.header .reponsive-block a.tablet-portrait.active { - background-position: -91px -33px; -} - -.header .reponsive-block a.iphone-landscape:hover, -.header .reponsive-block a.iphone-landscape.active { - background-position: -128px -33px; -} - -.header .reponsive-block a.iphone-portrait:hover, -.header .reponsive-block a.iphone-portrait.active { - background-position: -166px -33px; -} -.free-wall { - margin: auto; -} - -.free-wall-logo { - margin: auto; - height: 420px; -} -.size2-2 { - width: 80px; - height: 80px; -} - -.size11 { - height: 160px; - width: 160px; -} - -.size12 { - width: 160px; - height: 320px; -} - -.size21 { - width: 320px; - height: 160px; -} - -.size22 { - height: 320px; - width: 320px; -} - -.size13 { - width: 160px; - height: 480px; -} - -.size31 { - width: 480px; - height: 160px; -} - -.size23 { - width: 320px; - height: 480px; -} - -.size24 { - width: 320px; - height: 640px; -} - -.size32 { - width: 480px; - height: 320px; -} - -.size33 { - width: 480px; - height: 480px; -} - -.size34 { - width: 480px; - height: 640px; -} - -.size43 { - width: 640px; - height: 480px; -} - -.size35 { - width: 480px; - height: 800px; -} - -.size53 { - width: 800px; - height: 480px; -} - -.size36 { - width: 480px; - height: 960px; -} - -.size41 { - width: 270px; - height: 160px; -} -.size42 { - width: 270px; - height: 320px; -} -.size41-1024 { - width: 213px; - height: 133px; -} -.size42-1024 { - width: 213px; - height: 275px; -} -.size41-1366 { - width: 278px; - height: 156px; -} -.size42-1366 { - width: 278px; - height: 332px; -} -.size41-1440 { - width: 310px; - height: 168px; -} -.size42-1440 { - width: 310px; - height: 340px; -} -.size41-1600 { - width: 330px; - height: 173px; -} -.size42-1600 { - width: 330px; - height: 354px; -} - -.donate form { - height: 100%; - width: 100%; - background: rgb(44, 62, 80); -} - -.donate form .paypal { - display: block; - margin: auto; - padding: 20px 0px 0px 0px; - outline: 0; -} - -.img-demo { - vertical-align: bottom; - list-style: none; - margin:0; - padding: 0; -} - -.img-demo li { - float: left; - width: 25%; - text-align: center; -} - -.img-demo li img { - border: 2px solid white; - width: 98px; - height: 98px; -} - -.float-left { - float: left; -} - -.float-right { - float: right; -} - -.clearfix:before, -.clearfix:after { - content: ""; - display: table; -} - -.clearfix:after { - clear: both; -} - -.clearfix { - zoom: 1; /* For IE 6/7 (trigger hasLayout) */ -} - -.rest-left { - margin-left: 244px; -} - -.desc h1, -.desc h2, -.desc h3, -.desc h4, -.desc h5, -.desc h6 { - font-weight: bold; -} - -.desc h2 { - border-bottom: 1px solid rgba(0,0,0,0.1); - margin-top: 0px; - margin-bottom: 0px; - padding-bottom: 50px; -} - -.desc h2 span { - float: left; - display: block; - line-height: 50px; -} - -.brick { - background-color: white; - float: left; - cursor: default; - overflow: hidden; - background-repeat: no-repeat; - background-size: cover; - background-position: center; -} - -.brick .cover { - overflow: hidden; - margin: 20px; -/* margin-left: 60%; */ - margin-top: 25%; -/* width: 120px; */ - height: 30px; - font-size: 30px; - padding: 7px; - float: right; - text-align: right; -} - -.brick .read-more { - position: absolute; - display: none; - bottom: 0px; - left: 0px; - right: 0px; - padding: 12px; - background: rgb(0, 0, 0); - background: rgba(0, 0, 0, 0.45); -} - -.brick:hover .read-more { - display: block; - cursor: pointer; -} - -.brick .desc { - display: none; -} - -.full-width .float-left { - display: none; -} - -.full-width .desc { - display: block; -} - -.full-width.brick { - box-shadow: none; - overflow: visible; - border: none !important; - background: none !important; -} - -.full-width.brick .cover { - margin: 0px 20px; - color: #333; -} - -.full-width.brick .cover * { - text-shadow: none; -} - -.full-width.brick .cover code { - color: #666; -} - -.open .float-left { - display: none; -} - -.open .desc { - display: block; -} - -.example { - width: 0px; - height: 0px; - overflow: visible !important; /* for ie7 */ -} - -.example-draggable { - cursor: move; -} - -.example-draggable * { - cursor: move; -} - -.example-draggable a { - cursor: pointer; -} - -.cell { - background-position: center center; - background-repeat: no-repeat; - background-size: cover; - position: absolute; - background-color: #222; -} - -[class*="-share"] { - cursor: pointer; - margin: 20px 0; - line-height: 30px; - padding-left: 30px; -} - -.facebook-share { - background: url(../i/fb.png) no-repeat left center; -} - -.twitter-share { - background: url(../i/tw.png) no-repeat left center; -} - -.google-share { - background: url(../i/gp.png) no-repeat left center; -} - -.download-icon { - background: url(../i/download.png) no-repeat left center; - display: block; - margin: 0 0 10px 0; - line-height: 30px; - padding-left: 30px; -} - -.js-icon { - background: url(../i/js.png) no-repeat left center; - display: block; - line-height: 30px; - padding-left: 30px; -} - -.fork { - float: right; - width: 100%; - height: 100%; - display: block; - background: url(../i/forkme.png) no-repeat top right; -} - -.back-button { - position: fixed; - z-index: 9999; - padding: 1%; - bottom: 2%; - right: 2%; - display: none; - background: black; -} - -.back-button .back-icon { - background: url(../i/back.png) no-repeat top center; - width: 45px; - height: 27px; - display: block; -} - -.back-button .back-icon:hover { - background: url(../i/back.png) no-repeat bottom center; -} - -@media (min-width: 1600px) { - .main-content-wrapper{ - width:100%; - margin-left:95px; - margin-right: 1%; - } -} - -@media (min-width: 1441px) and (max-width: 1599px) { - .main-content-wrapper{ - width:100%; - /*margin-left: 0%; */ - margin-left:75px; - margin-right: 1%; - } -} - -@media (min-width: 1367px) and (max-width: 1440px) { - .main-content-wrapper{ - width:100%; - margin-left: 75px; - margin-right: 1%; - } -} - -@media (min-width: 1281px) and (max-width: 1366px) { - .main-content-wrapper{ - width:100%; - /*margin-left: 2%; */ - margin-left:75px; - margin-right: 2%; - } -} - -@media (min-width: 1025px) and (max-width: 1280px) { - .main-content-wrapper{ - width:100%; - /*margin-left: 4%;*/ - margin-left:75px; - margin-right: 1%; - } -} - -@media (min-width: 769px) and (max-width: 1024px) { - .main-content-wrapper{ - width:100%; - /*margin-left: 6%;*/ - margin-left:75px; - margin-right: 1%; - } -} - -@media (min-width: 641px) and (max-width: 768px) { - .main-content-wrapper{ - width:100%; - margin-left: 10%; - margin-right: 1%; - } -} - -@media (min-width: 481px) and (max-width: 640px) { - .main-content-wrapper{ - width:100%; - margin-left: 0%; - margin-right: 1%; - } -} - -@media (max-width: 480px) { - .main-content-wrapper{ - width:100%; - margin-left: 9%; - margin-right: 1%; - } -} - -body{ - font-family: microsoft yahei; - background: #484747; -} - -.skyBlue-mainpage{ - background: -moz-linear-gradient(left top, #1cadd9, #20c0f0); - background: -webkit-gradient(linear, left top, right bottom, color-stop(0, #1cadd9), color-stop(1, #20c0f0)); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#1cadd9', endColorstr='#20c0f0', GradientType='0'); - background: linear-gradient(to bottom right,#1cadd9, #20c0f0); -} -.golden-mainpage{ - background-image: -moz-linear-gradient(left top, #bca374, #d9cf7a); - background-image: -webkit-gradient(linear, left top, right bottom, color-stop(0, #bca374), color-stop(1, #d9cf7a)); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#bca374, endColorstr=#d9cf7a, GradientType=0); - background: linear-gradient(to bottom right,#bca374, #d9cf7a); -} -.manLieONCloud-image{ - background-image: url('../image/mainpage/pic/1.png'); -} -.orange-mainpage{ - background-image: -moz-linear-gradient(left top, #f09c0a, #f4be35); - background-image: -webkit-gradient(linear, left top, right bottom, color-stop(0, #f09c0a), color-stop(1, #f4be35)); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#f09c0a, endColorstr=#f4be35, GradientType=0); - background: linear-gradient(to bottom right,#f09c0a, #f4be35); -} -.pinkishRed-mainpage{ - background-image: -moz-linear-gradient(left top, #e03655, #ef3a5b); - background-image: -webkit-gradient(linear, left top, right bottom, color-stop(0, #e03655), color-stop(1, #ef3a5b)); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#e03655, endColorstr=#ef3a5b, GradientType=0); - background: linear-gradient(to bottom right,#e03655, #ef3a5b); -} -.magicCube-image{ - background-image: url('../image/mainpage/pic/4.png'); -} -.grassGreen-mainpage{ - background-image: -moz-linear-gradient(left top, #008b04, #03a501); - background-image: -webkit-gradient(linear, left top, right bottom, color-stop(0, #008b04), color-stop(1, #03a501)); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#008b04, endColorstr=#03a501, GradientType=0); - background: linear-gradient(to bottom right,#008b04, #03a501); -} -.meeting-image{ - background-image: url('../image/mainpage/pic/3.png'); -} -.earth-image{ - background-image: url('../image/mainpage/pic/2.png'); -} -.toolsImageBrokenLine{ - background-image: url('../image/mainpage/icon/1.png'); - height: 150px; - width: 120px; - top: 30px; - position: absolute; -} -.toolsImageHierachy{ - background-image: url('../image/mainpage/icon/2.png'); - height: 150px; - width: 120px; - top: 30px; - position: absolute; -} -.toolsImageGear{ - background-image: url('../image/mainpage/icon/3.png'); - height: 150px; - width: 120px; - top: 30px; - position: absolute; -} -.toolsImagePresent{ - background-image: url('../image/mainpage/icon/4.png'); - height: 150px; - width: 120px; - top: 30px; - position: absolute; -} -.toolsImageFile{ - background-image: url('../image/mainpage/icon/5.png'); - height: 150px; - width: 120px; - top: 30px; - position: absolute; -} -.toolsImageBriefcase{ - background-image: url('../image/mainpage/icon/6.png'); - height: 150px; - width: 120px; - top: 30px; - position: absolute; -} -.contentTip{ - opacity:0; - display:block; - padding: 20px; - text-align: left; - line-height: inherit; - text-indent: 2em; - position: absolute; -} -.contentTipShow{ - display:block; - padding: 20px; - text-align: left; - line-height: inherit; - text-indent: 2em; - position: absolute; -} -.coverHidden{ - display:none; -} -.coverShrink{ - width:0px !important; - height:0px !important; -} -/* -.brick .contentToggle{ - -webkit-transition: opacity 1s ease-in-out; - -moz-transition: opacity 1s ease-in-out; - -o-transition: opacity 1s ease-in-out; - transition: opacity 1s ease-in-out; -} -.brick .cover :hover{ - opacity:0; -} -*/ -.hideSideMenuForMainPage { - display: none! important; -} -.fullFillDiv { - width:100%; - height:100%; -} - diff --git a/portal-common/src/main/webapp/common/css/style-responsive.css b/portal-common/src/main/webapp/common/css/style-responsive.css deleted file mode 100644 index 9971b13a..00000000 --- a/portal-common/src/main/webapp/common/css/style-responsive.css +++ /dev/null @@ -1,989 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*** -Responsive Theme. -Based on http://getbootstrap.com/css/#responsive-utilities-classes -***/ - -/*** -Fixed Footer -***/ - -.page-footer-fixed.page-footer-fixed-mobile .footer { - position: fixed; - left: 0; - right: 0; - z-index: 10000; - bottom: 0; -} - -.page-footer-fixed.page-footer-fixed-mobile .page-container { - margin-bottom: 20px !important; -} - -.page-footer-fixed.page-footer-fixed-mobile.page-sidebar-fixed .footer { - margin-left: 0 !important; -} - -/*** -Form Medium Devices Up To Large Devices -***/ - -@media (min-width: 992px) and (max-width: 1200px) { - - .page-boxed .header.navbar .dropdown .username { - display: none; - } - -} - -@media (max-width: 1024px) { - .hidden-1024 { - display: none; - } -} - -/*** -From Medium Devices Up To Larger Devices -***/ - -@media (min-width: 992px) { - - /*** - Page sidebar - ***/ - .page-sidebar { - width: 225px; - float: left; - position: relative; - margin-right: -100%; - } - - .page-sidebar.navbar-collapse { - max-height: none !important; - } - - /*** - Page content - ***/ - .page-content-wrapper { - float: left; - width: 100%; - } - - .page-content { - margin-left: 0px; - margin-top: 0px; - min-height: 500px; - padding: 20px 20px 0px 20px; - } - - .page-content.no-min-height { - min-height: auto; - } - - /*** - Footer - ***/ - .footer { - clear: left; - } - - /*** - Fixed Sidebar - ***/ - .page-sidebar-fixed .page-content { - min-height: 500px; - } - - .page-sidebar-fixed .page-sidebar { - position: fixed !important; - margin-left: 0; - top: 41px; - } - - .page-sidebar-fixed ul.page-sidebar-menu > li.last { - margin-bottom: 15px !important; - } - - .page-sidebar-fixed.page-sidebar-hover-on .page-sidebar { - z-index: 10000; - width: 35px; - } - - .page-sidebar-fixed.page-sidebar-hover-on .page-sidebar .selected { - display: none; - } - - .page-sidebar-fixed.page-sidebar-hover-on .page-content { - margin-left: 35px; - } - - .page-sidebar-fixed.page-sidebar-hover-on .footer { - margin-left: 35px; - } - - .page-sidebar-fixed .page-sidebar-closed .page-sidebar .sidebar-search .submit, - .page-sidebar-fixed .page-sidebar .sidebar-toggler { - -webkit-transition: all 0.3s ease; - -moz-transition: all 0.3s ease; - -o-transition: all 0.3s ease; - transition: all 0.3s ease; - } - - .page-sidebar-fixed.page-sidebar-reversed .page-sidebar-closed .page-sidebar .sidebar-search .submit, - .page-sidebar-fixed.page-sidebar-reversed .page-sidebar .sidebar-toggler { - -webkit-transition: none; - -moz-transition: none; - -o-transition: none; - transition: none; - } - - .page-sidebar-hovering { - overflow: hidden !important; - } - - .page-sidebar-hovering .sub-menu, - .page-sidebar-hovering span.title, - .page-sidebar-hovering span.arrow { - display: none !important; - } - - .page-sidebar-hovering .submit { - opacity: 0; - width: 0 !important; - height: 0 !important; - } - - /*** - Fixed Sidebar - ***/ - - .page-sidebar-fixed .footer { - margin-left: 225px; - background-color: #fff; - padding: 8px 20px 5px 20px; - } - - .page-sidebar-fixed .footer .footer-inner { - color: #333; - } - - .page-sidebar-fixed.page-sidebar-closed .footer { - margin-left: 35px; - } - - .page-sidebar-fixed .footer .footer-tools .go-top { - background-color: #666; - } - - .page-sidebar-fixed .footer .footer-tools .go-top i { - color: #ddd; - } - - /*** - Boxed Layout - ***/ - - .page-boxed .header.navbar .navbar-brand { - margin-left: 0px !important; - width: 226px; - } - - .page-boxed .header.navbar .navbar-brand img { - margin-left: 10px; - } - - .page-boxed .header.navbar .navbar-nav { - margin-right: 0px; - } - - .page-boxed .footer { - padding: 8px 0 5px 0; - } - - .page-boxed.page-sidebar-fixed .footer { - padding-right: 20px; - padding-left: 20px; - } - - /*** - Sidebar Reversed - ***/ - - .page-sidebar-reversed .page-sidebar { - float: right; - margin-right: 0; - margin-left: -100%; - } - - .page-sidebar-reversed.page-sidebar-fixed .page-sidebar { - margin-left: -225px; - } - - .page-sidebar-reversed .page-content { - margin-left: 0; - margin-right: 225px; - } - - .page-sidebar-reversed.page-sidebar-fixed .page-sidebar-wrapper { - position: relative; - float: right; - } - - .page-sidebar-reversed.page-sidebar-fixed .footer { - margin-left: 0; - margin-right: 225px; - padding: 8px 20px 5px 20px; - } - - .page-sidebar-reversed.page-sidebar-fixed.page-footer-fixed .footer { - margin-left: 0; - margin-right: 0; - } - - .page-sidebar-reversed.page-sidebar-fixed.page-sidebar-hover-on .page-content { - margin-left: 0; - margin-right: 35px; - } - - .page-sidebar-reversed.page-sidebar-fixed.page-sidebar-hover-on .footer { - margin-right: 35px; - } - - /*** - Sidebar Closed - ***/ - - .page-sidebar-closed .page-sidebar .sidebar-toggler { - margin-left: 3px; - } - - .page-sidebar-closed .page-sidebar .sidebar-search .form-container { - width: 29px; - margin-left: 3px; - } - - .page-sidebar-closed .page-sidebar .sidebar-search .form-container .input-box { - border-bottom: 0 !important; - } - - .page-sidebar-closed .page-sidebar .sidebar-search .form-container input[type="text"] { - display: none; - } - - .page-sidebar-closed .page-sidebar .sidebar-search .form-container .submit { - margin-top: 5px !important; - margin-left: 7px !important; - margin-right: 7px !important; - display: block !important; - } - - .page-sidebar-closed .page-sidebar .sidebar-search.open .form-container { - width: 255px; - position: relative; - z-index: 1; - padding-top: 0px; - } - - .page-sidebar-closed .page-sidebar .sidebar-search.open .form-container input[type="text"] { - margin-top: 7px; - margin-left: 8px; - padding-left: 10px; - padding-bottom: 2px; - width: 185px; - display: inline-block !important; - } - - .page-sidebar-closed .page-sidebar .sidebar-search.open .form-container .submit { - display: inline-block; - width: 13px; - height: 13px; - margin: 11px 8px 9px 6px !important; - } - - .page-sidebar-closed .page-sidebar .sidebar-search.open .form-container .remove { - background-repeat: no-repeat; - width: 11px; - height: 11px; - margin: 12px 8px 9px 8px !important; - display: inline-block !important; - float: left !important; - } - - .page-sidebar-closed .page-sidebar-menu > li > a .selected { - right: -3px !important; - } - - .page-sidebar-closed .page-sidebar-menu > li > a > .title, - .page-sidebar-closed .page-sidebar-menu > li > a > .arrow { - display: none !important; - } - - .page-sidebar-closed .page-sidebar .sidebar-toggler { - margin-right: 3px; - } - - .page-sidebar-closed .page-sidebar .sidebar-search { - margin-top: 6px; - margin-bottom: 6px; - } - - .page-sidebar-closed .page-sidebar-menu { - width: 35px !important; - } - - .page-sidebar-closed .page-sidebar-menu > li > a { - padding-left: 7px; - } - - .page-sidebar-fixed.page-sidebar-closed .page-sidebar-menu > li > a { - -webkit-transition: all 0.2s ease; - -moz-transition: all 0.2s ease; - -o-transition: all 0.2s ease; - transition: all 0.2s ease; - } - - .page-sidebar-reversed.page-sidebar-fixed.page-sidebar-closed .page-sidebar-menu > li > a { - -webkit-transition: none; - -moz-transition: none; - -o-transition: none; - transition: none; - } - - .page-sidebar-closed .page-sidebar-menu > li:hover { - width: 236px !important; - position: relative !important; - z-index: 2000; - display: block !important; - } - - .page-sidebar-closed .page-sidebar-menu > li.sidebar-toggler-wrapper:hover, - .page-sidebar-closed .page-sidebar-menu > li.sidebar-search-wrapper:hover { - width: 35px !important; - } - - .page-sidebar-closed .page-sidebar-menu > li:hover .selected { - display: none; - } - - .page-sidebar-closed .page-sidebar-menu > li:hover > a > i { - margin-right: 10px; - } - - .page-sidebar-closed .page-sidebar-menu > li:hover .title { - display: inline !important; - } - - .page-sidebar-closed .page-sidebar-menu > li > .sub-menu { - display: none !important; - } - - .page-sidebar-closed .page-sidebar-menu > li:hover > .sub-menu { - width: 200px; - position: absolute; - z-index: 2000; - left: 36px; - margin-top: 0; - top: 100%; - display: block !important; - } - - .page-sidebar-closed .page-sidebar-menu > li:hover > .sub-menu > li > .sub-menu, - .page-sidebar-closed .page-sidebar-menu > li:hover > .sub-menu > li > .sub-menu > li > .sub-menu { - width: 200px; - } - - /* 2rd level sub menu*/ - .page-sidebar-closed .page-sidebar-menu > li:hover > .sub-menu > li > a { - padding-left: 15px !important; - } - - /* 3rd level sub menu*/ - .page-sidebar-closed .page-sidebar-menu > li > ul.sub-menu > li > .sub-menu > li > a { - padding-left: 30px !important; - } - - /* 4rd level sub menu*/ - .page-sidebar-closed .page-sidebar-menu > li > ul.sub-menu > li > .sub-menu > li > .sub-menu > li > a { - padding-left: 45px !important; - } - - /* sidebar container */ - - .page-sidebar-closed .page-sidebar { - width: 35px; - } - - .page-sidebar-closed .page-content { - margin-left: 35px; - } - - /*** - Sidebar Reversed & Sidebar Closed - ***/ - - .page-sidebar-reversed.page-sidebar-closed .page-sidebar { - margin-left: -35px; - width: 35px; - } - - .page-sidebar-reversed.page-sidebar-closed .page-content { - margin-left: 0 !important; - margin-right: 35px !important; - } - - .page-sidebar-reversed.page-sidebar-closed .page-sidebar-menu > li:hover { - margin-left: -201px; - } - - .page-sidebar-reversed.page-sidebar-closed .page-sidebar-menu > li.sidebar-toggler-wrapper:hover, - .page-sidebar-reversed.page-sidebar-closed .page-sidebar-menu > li.sidebar-search-wrapper:hover { - margin-left: 0; - } - - .page-sidebar-reversed.page-sidebar-closed .page-sidebar .sidebar-search.open .form-container { - margin-left: -225px; - } - - .page-sidebar-reversed.page-sidebar-closed .page-sidebar .sidebar-search.open .form-container .submit { - margin: 11px 8px 9px 12px !important; - float: left !important; - } - - .page-sidebar-reversed.page-sidebar-closed .page-sidebar .sidebar-search.open .form-container .remove { - margin: 12px 6px 9px 8px !important; - float: right !important; - } - - .page-sidebar-reversed.page-sidebar-closed .page-sidebar-menu > li:hover > .sub-menu { - left:auto; - right: 36px; - } - - .page-sidebar-reversed.page-sidebar-fixed.page-sidebar-closed .footer { - margin-right: 35px; - } - - /*** - Fixed Footer - ***/ - - .page-footer-fixed .footer { - position: fixed; - left: 0; - right: 0; - z-index: 10000; - bottom: 0; - } - - .page-footer-fixed .page-container { - margin-bottom: 20px !important; - } - - .page-footer-fixed.page-sidebar-fixed .footer { - margin-left: 0 !important; - } - -} - -/*** -Up To Medium Devices -***/ - -@media (max-width:991px) { - - /*** - Page header - ***/ - .header.navbar { - padding: 0 20px 0 20px; - position: relative; - clear: both; - } - - .page-header-fixed.page-header-fixed-mobile .navbar-fixed-top { - position: fixed; - } - - .header.navbar .navbar-toggle { - display: inline-block; - } - - .page-sidebar.navbar-collapse { - max-height: none; /* set some max height to have a scrollable menu on mobile devices */ - } - - .page-sidebar.navbar-collapse.collapse { - display: none !important; - } - - .page-sidebar.navbar-collapse.in { - overflow: hidden !important; - overflow-y: auto !important; - display: block !important; - } - - .page-full-width .page-sidebar-menu { - display: block; - } - - .page-sidebar.navbar-collapse.navbar-no-scroll { - max-height: none !important; - } - - .header.navbar .nav li.dropdown i { - display: inline-block; - position: relative; - top:1px; - right:0px; - } - - .header.navbar .navbar-nav { - display: block; - margin-bottom: 0px !important; - } - - .header.navbar .navbar-nav .open .dropdown-menu { - position: absolute; - } - - .header.navbar .navbar-nav { - display: inline-block; - margin: 0 10px 0 0; - } - - .header.navbar .navbar-nav > li { - float: left; - } - - .header.navbar .navbar-brand { - margin-left: 0px !important; - padding-left: 0px !important; - } - - .header.navbar .navbar-brand img { - margin-left: 4px !important; - } - - - /*** - Header Search Box - ***/ - - .header.navbar .search-form { - display: none; - } - - .page-sidebar .header.navbar-responsive-search { - display: block; - } - - /*** - Page container - ***/ - .page-container { - margin: 0 !important; - padding: 0 !important; - } - - .page-header-fixed.page-header-fixed-mobile .page-container { - margin-top: 42px !important; - } - - /*** - Page content - ***/ - .page-content { - margin: 0px !important; - padding: 20px 20px 20px 20px !important; - min-height: 280px; - } - - /*** - Page sidebar - ***/ - .page-sidebar { - border-top: 0 !important; - margin: 20px; - } - - .page-sidebar.in { - border-top: 0 !important; - margin: 20px; - position: relative; - z-index: 5; - } - - .header.navbar .sidebar-toggler, - .page-sidebar .sidebar-toggler { - display: none; - } - - .page-sidebar ul { - margin-top:0px; - width:100%; - } - - .page-sidebar .selected { - display: none !important; - } - - .page-sidebar .sidebar-search .input-box { - width: 220px; - } - - /*** - Styler panel - ***/ - .styler-panel { - top:55px; - right:20px; - } - - /*** - Boxed Layout - ***/ - .page-boxed .header.navbar > .container, - .page-boxed .footer > .container, - .page-boxed > .container { - max-width: none !important; - margin: 0 !important; - padding: 0 !important; - } - -} - -/*** -From Small Devices Up To Medium Devices -***/ - -@media (min-width: 768px) and (max-width: 991px) { - - /*** - Body - ***/ - body { - padding-top: 0px; - } - - /*** - Page sidebar - ***/ - .page-sidebar .btn-navbar.collapsed .arrow { - display: none; - } - - .page-sidebar .btn-navbar .arrow { - position: absolute; - right: 25px; - width: 0; - height: 0; - top:50px; - border-bottom: 15px solid #5f646b; - border-left: 15px solid transparent; - border-right: 15px solid transparent; - } - - /*** - Boxed Layout - ***/ - .page-boxed .header.navbar > .container, - .page-boxed > .container { - margin: auto !important; - } - - .page-boxed .header.navbar { - margin: auto !important; - padding: 0; - } - - .page-boxed .footer { - padding-left: 0; - padding-right: 0; - } - -} - -/*** -Extra Small Devices Only -***/ - -@media (max-width: 767px) { - - /*** - Page header - ***/ - - .header.navbar { - padding: 0 10px 0 10px; - } - - .header.navbar .top-nav .nav{ - margin-top: 0px; - margin-right: 5px; - } - - .header.navbar .nav > li > .dropdown-menu.notification:after, - .header.navbar .nav > li > .dropdown-menu.notification:before { - margin-right: 160px; - } - - .header.navbar .nav > li > .dropdown-menu.notification { - margin-right: -160px; - } - - .header.navbar .nav > li > .dropdown-menu.inbox:after, - .header.navbar .nav > li > .dropdown-menu.inbox:before { - margin-right: 110px; - } - - .header.navbar .nav > li > .dropdown-menu.inbox { - margin-right: -110px; - } - - .header.navbar .nav > li > .dropdown-menu.tasks:after, - .header.navbar .nav > li > .dropdown-menu.tasks:before { - margin-right: 60px; - } - - .header.navbar .nav > li > .dropdown-menu.tasks { - margin-right: -60px; - } - - /* Header logo */ - .header.navbar .navbar-brand { - margin-left: 0px !important; - width: 110px; - } - - /*** - Page content - ***/ - .page-content { - padding: 20px 10px 10px 10px !important; - overflow: hidden; - } - - /*** - Page title - ***/ - .page-title { - margin-bottom: 20px; - font-size: 18px; - } - - .page-title small { - font-size: 13px; - padding-top: 3px; - } - - /*** - Styler pagel - ***/ - .styler-panel { - top:58px; - right:12px; - } - - /*** - Page breadcrumb - ***/ - .breadcrumb { - padding-left: 10px; - padding-right: 10px; - } - - /*** - Portlet form action - ***/ - .portlet-body.form .form-actions{ - padding-left: 15px; - } - - - /*** - Form input validation states - ***/ - .input-icon .input-error, - .input-icon .input-warning, - .input-icon .input-success { - top:-27px; - float: right; - right:10px !important; - } - - /*** - Advance tables - ***/ - .table-advance tr td.highlight:first-child a { - margin-left: 8px; - } - - /*** - Footer - ***/ - .footer { - padding-left: 10px; - padding-right: 10px; - } - - .footer .go-top { - float: right; - display: block; - margin-right: 0px; - } - - /*** - Vertical inline menu - ***/ - .ver-inline-menu li.active:after { - display: none; - } - - /*** - Form controls - ***/ - .form-horizontal .form-actions { - padding-left: 180px; - } - - .portlet .form-horizontal .form-actions { - padding-left: 190px; - } -} - -/*** -The Most Extra Small Devices Landscape Mode Only -***/ - -@media (max-width: 580px) { - - .header.navbar .username { - display: none; - } - -} - -@media (max-width: 480px) { - - /*** - Header navbar - ***/ - .page-header-fixed.page-header-fixed-mobile .header.navbar { - height: 84px; - } - - .page-header-fixed.page-header-fixed-mobile .page-container { - margin-top: 84px !important; - } - - .header.navbar .navbar-nav { - display: block; - clear: both; - margin-top: 2px; - margin-right: 0; - } - - .header.navbar .navbar-nav > li.dropdown .dropdown-toggle { - margin-top:-1px; - padding-left: 9px; - padding-right: 9px; - } - - .header.navbar .navbar-nav > li.dropdown.language .dropdown-toggle, - .header.navbar .navbar-nav > li.dropdown.user .dropdown-toggle { - padding-left: 4px; - padding-right: 15px; - } - - .header.navbar .navbar-nav li.dropdown .dropdown-toggle .badge { - top: 8px; - } - - /*** - Page sidebar - ***/ - .page-sidebar, - .page-sidebar.in { - margin: 0 10px 10px 10px; - } - - .page-header-fixed.page-header-fixed-mobile .page-sidebar, - .page-header-fixed.page-header-fixed-mobile .page-sidebar.in { - margin-top: 10px; - } - - /*** - Page title - ***/ - .page-title small { - display: block; - clear: both; - } - - /*** - Forms - ***/ - .portlet .form-horizontal .form-actions { - padding-left: 10px; - } - - /*** - Dashboard date range panel - ***/ - .page-content .breadcrumb .dashboard-date-range { - padding-bottom: 8px; - } - - .page-content .breadcrumb .dashboard-date-range span { - display: none; - } - - .page-content .breadcrumb > .btn-group span { - display: none; - } - - .page-content .breadcrumb > .btn-group > .btn { - padding-left: 7px; - padding-right: 7px; - } - - /*** - Hidden phone - ***/ - .hidden-480 { - display: none !important; - } -} - -/*** -The Most Extra Small Devices Portrait Mode Only -***/ - -@media (max-width: 320px) { - - /*** - Hidden phone - ***/ - .hidden-320 { - display: none; - } - - .header.navbar .navbar-brand { - width: 100px; - } -} \ No newline at end of file diff --git a/portal-common/src/main/webapp/common/css/style.css b/portal-common/src/main/webapp/common/css/style.css deleted file mode 100644 index 1cb9b76c..00000000 --- a/portal-common/src/main/webapp/common/css/style.css +++ /dev/null @@ -1,4715 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*** -Colors -blue: #4b8df8 -light blue: #bfd5fa -red: #e02222 -yellow: #ffb848 -green: #35aa47 -purple: #852b99 -dark: #555555; -light grey: #fafafa; -***/ -/*fontIcon*/ -[class^="ict-"], [class*=" ict-"]{ - padding-right:3px; - display: inline-block; - width: 1.25em; - text-align: center; -} -.page-sidebar-menu [class^="ict-"], .page-sidebar-menu [class*=" ict-"]{ -padding-right:0; -} -/********************* - GENERAL RESET & SETUP -*********************/ - -/*** -Reset and overrides -***/ -body { - color: #333; - /*font-family: 'Open Sans', sans-serif; - font-size:13px; */ - font-family: "Microsoft yahei", Verdana, Arial, Helvetica, sans-serif !important; - padding: 0px !important; - margin: 0px !important; - direction: ltr; -} -.page-content-body{ -padding-left:15px; -padding-right:15px; -padding-top:10px; -} -/* -Internet Explorer 10 doesn't differentiate device width from viewport width, and thus doesn't -properly apply the media queries in Bootstrap's CSS. To address this, -you can optionally include the following CSS and JavaScript to work around this problem until Microsoft issues a fix. -*/ -@-webkit-viewport { - width: device-width; -} - -@-moz-viewport { - width: device-width; -} - -@-ms-viewport { - width: device-width; -} - -@-o-viewport { - width: device-width; -} - -@viewport { - width: device-width; -} - -/* Internet Explorer 10 doesn't differentiate device width from viewport width, -and thus doesn't properly apply the media queries in Bootstrap's CSS. To address this, following CSS code applied */ -@-ms-viewport { - width: auto !important; -} - -/*** -Custom Scrollbars -***/ - -::-webkit-scrollbar { - width: 12px; -} - -::-webkit-scrollbar-track { - background-color: #eaeaea; - border-left: 1px solid #cecece; -} - -::-webkit-scrollbar-thumb { - background-color: #cecece; -} - -::-webkit-scrollbar-thumb:hover { - background-color: #aaa; -} - -::-webkit-scrollbar-track { - border-radius: 0; - box-shadow: none; - border: 0; -} - -::-webkit-scrollbar-thumb { - border-radius: 0; - box-shadow: none; - border: 0; -} - -/*** -General typography -***/ -h1 small, -h2 small, -h3 small, -h4 small, -h5 small, -h6 small { - color: #444; -} - -h1, -h2, -h3, -h4, -h5, -h6 { - font-family: Arial, sans-serif; - font-weight: 300 !important; -} - -h1.block, -h2.block, -h3.block, -h4.block, -h5.block, -h6.block { - padding-top: 10px; - padding-bottom: 10px; -} - -a { - text-shadow: none !important; - color: #5b9bd1; -} - -/*** -Fix link outlines after click -***/ -a,a:focus, a:hover, a:active { - outline: 0; -} - -/*** -General backgrounds. Can be applied to any block or panel -***/ - -.bg-blue { - background-image: none !important; - background-color: #4b8df8 !important; - border-color:#4b8df8 !important; - color: #fff !important; -} - -.bg-red { - background-image: none !important; - background-color: #e02222 !important; - border-color: #e02222 !important; - color: #fff !important; -} - -.bg-yellow { - background-image: none !important; - background-color: #ffb848 !important; - border-color: #ffb848 !important; - color: #fff !important; -} - -.bg-green { - background-image: none !important; - background-color: #35aa47 !important; - border-color: #35aa47 !important; - color: #fff !important; -} - -.bg-purple { - background-image: none !important; - background-color: #852b99 !important; - border-color: #852b99 !important; - color: #fff !important; -} - -.bg-dark { - background-image: none !important; - background-color: #555555 !important; - border-color: #555555 !important; - color: #fff !important; -} - -.bg-grey { - background-image: none !important; - background-color: #fafafa !important; - border-color: #fafafa !important; -} - -/*** -Font Awesome Icons -***/ - -[class^="fa-"], -[class*=" fa-"] { - display: inline-block; -/* margin-top: 1px;*/ - font-size: 14px; - *margin-right: .3em; - line-height: 14px; -} - -/*** -Make font awesome icons fixed width(latest version issue) -***/ - -li [class^="fa-"], -li [class*=" fa-"] { - display: inline-block; - width: 1.25em; - text-align: center; -} -li [class^="fa-"].icon-large, -li [class*=" fa-"].icon-large { - /* increased font size for icon-large */ - width: 1.5625em; -} - -.page-breadcrumb .fa-angle-right{ - display:inline-block; - margin-left:8px; - margin-right:8px; -} - -.page-breadcrumb i[class^="fa-"], [class*=" fa-"],.page-breadcrumb i[class^="ict-"], [class*=" ict-"]{ - display:none; -} - - - -.fa-lg, -.icon-lg { - font-size: 16px; -} - -.fa-2x { - font-size: 2em; -} -.fa-3x { - font-size: 3em; -} -.fa-4x { - font-size: 4em; -} -.fa-5x { - font-size: 5em; -} - -.icon-default { - color: #ccc; -} - -.icon-success { - color: #468847; -} - -.icon-info { - color: #27a9e3; -} - -.icon-warning { - color: #dbc056; -} - -.icon-danger { - color: #B94A48; -} - -/*** -Close icon used for modal dialog and other UI element close buttons -***/ -.close { - display: inline-block; - margin-top: 0px; - margin-right: 0px; - width: 9px; - height: 9px; - background-repeat: no-repeat !important; - text-indent: -10000px; - outline: none; - background-image: url("../image/remove-icon-small.png") !important; -} - -.about{ - height:345px; - width:528px; -} - -.aboutmain{ - background-image: url("../image/about/about-bg-light.png"); -} - -.aboutinfo{ - background-image: url("../image/about/about-bg-dark.png"); -} - -.about a{ - color: white; - - margin-left:15px; - text-decoration: none; -} - -.about a.about_close{ - float:right; - margin-right:20px; - font-size: 1.2em; -} - -.about div{ - padding-top:10px; - -} - -.about div.info{ - float: right; - margin-right: 15px; - margin-top: 130px; - color: white; - font-size: 13px; -} - -.about div.info div{ - margin-left:15px; -} - -.about div.info img{ - margin-right: 55px; -} - -.aboutDlg{ - width: 530px; - margin-left:150px; -} - -/*** -General HR -***/ - -hr { - margin: 20px 0; - border: 0; - border-top: 1px solid #E0DFDF; - border-bottom: 1px solid #FEFEFE; -} - -/*** -Tools -***/ - -.display-none, -.display-hide { - display: none; -} - -.no-space { - margin: 0px !important; - padding: 0px !important; -} - -.no-margin { - margin:0; -} - -.no-border { - border:0 !important; -} - -.margin-bottom-5 { - margin-bottom: 5px; -} - -.margin-bottom-10 { - margin-bottom: 10px !important; -} - -.margin-top-10 { - margin-top: 10px !important; -} - -.margin-bottom-15 { - margin-bottom: 15px !important; -} - -.margin-bottom-20 { - margin-bottom: 20px !important; -} - -.margin-top-20 { - margin-top: 20px !important; -} - -.margin-bottom-25 { - margin-bottom: 25px !important; -} - -.margin-right-10 { - margin-right: 10px !important; -} - -.bold { - font-weight:600 !important; -} - -.fix-margin { - margin-left: 0px !important -} - -.border { - border: 1px solid red; -} - -.inline { - display: inline; -} - -.text-align-reverse { - text-align: right; -} - -/*** -ie8 & ie9 modes -***/ - -.visible-ie8 { - display: none; -} - -.ie8 .visible-ie8 { - display: inherit !important; -} - -.visible-ie9 { - display: none; -} - -.ie9 .visible-ie9 { - display: inherit !important; -} - -.hidden-ie8 { - display: inherit; -} - -.ie8 .hidden-ie8 { - display: none !important; -} - -.hidden-ie9 { - display: inherit; -} - -.ie9 .hidden-ie9 { - display: none !important; -} - -/******************** - GENERAL LAYOUT -*********************/ - -/*** -Header and header elements. -***/ - -.header.navbar { - width: 100%; - padding: 0 20px 0 20px; - margin: 0; - border: 0px; - padding: 0px; - box-shadow: none; - height: 42px; - min-height: 42px; -} - -.header.navbar.navbar-fixed-top { - z-index: 9995 !important; -} - -.header.navbar .navbar-brand { - display: inline-block; - margin-top: -1px; - margin-right: 0; - padding-left: 0; - padding-right: 0; - width: 225px; - height: 42px; -} - -.header.navbar .navbar-brand img { - margin-left: 20px; -} - -.header.navbar .navbar-brand.text-logo { - padding-left: 20px; - padding-top: 12px; -} - -.header.navbar .navbar-toggle { - margin: 8px 6px 4px 6px; - padding: 0; - padding-top:2px; - padding-bottom: 6px; - background-image: none; - filter:none; - box-shadow: none; - color: #fff; - border: 0; -} - -.header.navbar .navbar-toggle:hover { - text-decoration: none; - background: none; -} - -.header.navbar .navbar-nav { - margin-right: 20px; - display: block; -} - -.header.navbar .navbar-nav > li { - margin: 0px; - padding: 0px; -} - -.header.navbar .navbar-nav > li.dropdown, -.header.navbar .navbar-nav > li.dropdown > a { - padding-left: 4px; - padding-right: 4px; -} - -.header.navbar .navbar-nav > li.dropdown > a:last-child { - padding-right: 0; -} - -.header.navbar .navbar-nav > li.dropdown:last-child { - padding-right: 2px; -} - -.header.navbar .navbar-nav > li.dropdown .dropdown-toggle { - margin: 0px; - padding: 15px 10px 7px 10px; -} - -.header.navbar .navbar-nav > li.dropdown .dropdown-toggle > i { - font-size: 18px; -} - -.header.navbar .navbar-nav > li.dropdown .dropdown-menu > li > a > i { - font-size: 14px; -} - -.header.navbar .navbar-nav > li.dropdown.user .dropdown-toggle { - padding-top: 9px; - *padding: 9px 18px 6px 6px; -} - -.header.navbar .navbar-nav > li.dropdown.user .dropdown-toggle:hover { - text-decoration: none; -} - -.header.navbar .navbar-nav > li.dropdown.user .dropdown-toggle .username { - color: #ddd; -} - -.header.navbar .navbar-nav > li.dropdown.user .dropdown-toggle i { - display: inline-block; - margin-top: 5px; - margin: 0; - font-size: 16px; -} - -.header.navbar .navbar-nav > li.dropdown.user .dropdown-menu i { - width: 15px; - display: inline-block; -} - -.header.navbar .navbar-nav > li.dropdown .dropdown-toggle .badge { - position: absolute; - top: 8px; - right: 20px; -} - - -.header.navbar .navbar-nav > li.dropdown.system .dropdown-toggle { - padding: 13px 0px 6px 6px; -} - -.header.navbar .navbar-nav > li.dropdown.system .dropdown-toggle:hover { - text-decoration: none; -} - -.header.navbar .navbar-nav > li.dropdown.system .dropdown-toggle .sysname { - color: #ddd; -} - -.header.navbar .navbar-nav > li.dropdown.system .dropdown-toggle i { - display: inline-block; - margin-top: 5px; - margin: 0; - font-size: 16px; -} - -.header.navbar .navbar-nav > li.dropdown.system .dropdown-menu i { - width: 15px; - display: inline-block; -} - -/*** -Header Search -***/ -.header.navbar .search-form { - float: left; - display: inline-block; - padding: 0; - height: 41px; - margin:0; -} - -.header.navbar .search-form .form-control{ - margin-top: 8px; - border: 0; - padding-top: 1px; - padding-right: 27px; -} - -.header.navbar .search-form .submit { - position: relative; - display: block; - float: right; - margin-top: -21px; - margin-right: 8px; - width: 13px; - height: 15px; - box-shadow: none; - border: 0px; - padding: 0px; - background-color: none; - background-repeat: no-repeat !important; - outline: none !important; - opacity: 0.8; - filter: alpha(opacity=80); -} - -.header.navbar .search-form .submit:hover { - opacity: 1; - filter: alpha(opacity=100); -} - -/*** -Language Bar -***/ - -.header.navbar .navbar-nav > li.dropdown.language { - padding-left: 0; - padding-right: 0; - margin: 0; -} - -.header.navbar .navbar-nav > li.dropdown.language > a { - color: #ddd; - font-size: 13px; - padding: 11px 1px 11px 5px; -} - -.header.navbar .navbar-nav > li.dropdown.language > a > img { - margin-bottom: 2px; -} - -.header.navbar .navbar-nav > li.dropdown.language > a > i { - font-size: 16px; -} - -.header.navbar .navbar-nav > li.dropdown.language > .dropdown-menu > li > a > img { - margin-bottom: 2px; -} - -.header.navbar .navbar-nav .dropdown-menu { - margin-top: 3px; -} - -/*** -Page container -***/ - -.page-container { - margin: 0px; - padding: 0px; - position: relative; -} - -.page-container:before, -.page-container:after { - display: table; - content: " "; -} - -.page-container:after { - clear: both; -} - -.page-header-fixed .page-container { - margin-top: 42px; -} - -/*** IE 8 Fixes ***/ -/*** -Page sidebar -***/ - -.ie8 .page-sidebar { - width: 225px; - float: left; - position: relative; - margin-right: -100%; -} - -/*** -Page content -***/ - -.ie8 .page-content-wrapper { - float: left; - width: 100%; - } - -.ie8 .page-content { - margin-left: 225px; - margin-top: 0px; - min-height: 540px; - padding: 20px 20px 20px 20px; - } -/*** IE 8 Fixes ***/ - -/*** -Page sidebar -***/ - -.page-sidebar.navbar-collapse { - padding: 0; -} - -.page-sidebar-menu { - list-style: none; - margin: 0; - padding: 0; - margin: 0; - padding: 0; -} - -.page-sidebar-menu > li { - display: block; - margin: 0; - padding: 0; - border: 0px; -} - -.page-sidebar-menu > li.start > a { - border-top-color: transparent !important; -} - -.page-sidebar-menu > li:last-child > a, -.page-sidebar-menu > li.last > a { - border-bottom-color: transparent !important; -} - -.page-sidebar-menu > li > a { - display: block; - position: relative; - margin: 0; - border: 0px; - padding: 10px 15px; - text-decoration: none; - font-size: 14px; - font-weight: 300; -} - -.page-sidebar-fixed .page-sidebar-menu > li > a { - -webkit-transition: all 0.2s ease; - -moz-transition: all 0.2s ease; - -o-transition: all 0.2s ease; - transition: all 0.2s ease; -} - -.page-sidebar-reversed.page-sidebar-fixed .page-sidebar-menu > li > a{ - -webkit-transition: none; - -moz-transition: none; - -o-transition: none; - transition: none; -} - -.page-sidebar-menu > li > a i { - font-size: 16px; - margin-right: 5px; - text-shadow:none; -} - -.page-sidebar-menu > li.break { - margin-bottom: 20px; -} - -.page-sidebar-menu > li.open > a { - font-size: 14px; -} - -.page-sidebar-menu > li.active > a { - border: none; - text-shadow:none; - font-size: 14px; -} - -.page-sidebar-menu > li.active > a .selected { - display: block; - width: 8px; - height: 25px; - background-image: url("../image/sidebar-menu-arrow.png"); - float: right; - position: absolute; - right:0px; - top:8px; -} - -.page-sidebar-reversed .page-sidebar-menu > li.active > a .selected { - background-image: url("../image/sidebar-menu-arrow-reverse.png"); - right: auto; - left:0; -} - -.page-sidebar ul > li > a > .arrow:before { - float: right; - margin-top: 0px; - margin-right: 5px; - display: inline; - font-size: 16px; - font-family: FontAwesome; - height: auto; - content: "\f104"; - font-weight: 300; - text-shadow:none; -} - -.page-sidebar-menu > li > a > .arrow.open:before { - float: right; - margin-top: 0px; - margin-right: 3px; - display: inline; - font-family: FontAwesome; - height: auto; - font-size: 16px; - content: "\f107"; - font-weight: 300; - text-shadow:none; -} - -/* bagin: sidebar menu badges */ -.page-sidebar-menu li > a > .badge { - float: right; - margin-top: 1px; - margin-right: 13px; -} - -/* end: sidebar menu badges */ - -.page-sidebar-menu .sub-menu { - padding: 0; -} - -.page-sidebar-menu > li > ul.sub-menu { - display: none; - list-style: none; - clear: both; - margin: 8px 0px 8px 0px; -} - -.page-sidebar-menu > li.active > ul.sub-menu { - display: block; -} - -.page-sidebar-menu > li > ul.sub-menu > li { - background: none; - margin: 0px; - padding: 0px; - margin-top: 1px !important; -} - -.page-sidebar-menu > li > ul.sub-menu > li > a { - display: block; - margin: 0px 0px 0px 0px; - padding: 5px 0px; - padding-left: 44px !important; - text-decoration: none; - font-size: 14px; - font-weight: 300; - background: none; -} - -/* 3rd level sub menu */ -.page-sidebar-menu > li > ul.sub-menu > li ul.sub-menu { - display: none; - list-style: none; - clear: both; - margin: 0px 0px 0px 0px; -} - -.page-sidebar-menu > li > ul.sub-menu li > a > .arrow:before { - float: right; - margin-top: 1px; - margin-right: 20px; - display: inline; - font-size: 16px; - font-family: FontAwesome; - height: auto; - content: "\f104"; - font-weight: 300; - text-shadow:none; -} - -.page-sidebar-menu > li > ul.sub-menu li > a > .arrow.open:before { - float: right; - margin-top: 1px; - margin-right: 18px; - display: inline; - font-family: FontAwesome; - height: auto; - font-size: 16px; - content: "\f107"; - font-weight: 300; - text-shadow:none; -} - -.page-sidebar-menu > li.active > ul.sub-menu > li.active ul.sub-menu { - display: block; -} - -.page-sidebar-menu > li > ul.sub-menu > li ul.sub-menu li { - background: none; - margin: 0px; - padding: 0px; - margin-top: 1px !important; -} - -.page-sidebar-menu > li > ul.sub-menu li > ul.sub-menu > li > a { - display: block; - margin: 0px 0px 0px 0px; - padding: 5px 0px; - text-decoration: none; - font-size: 14px; - font-weight: 300; - background: none; -} - -.page-sidebar-menu > li > ul.sub-menu > li > ul.sub-menu > li > a { - padding-left: 60px; -} - -.page-sidebar-menu > li > ul.sub-menu > li > ul.sub-menu > li > ul.sub-menu > li > a { - padding-left: 80px; -} - -.page-sidebar-menu > li.active > ul.sub-menu > li.active ul.sub-menu > li.active ul.sub-menu { - display: block; -} - - -.page-sidebar-menu > li > ul.sub-menu li > ul.sub-menu > li > a > i { - font-size: 13px; -} - -/*** -Sidebar Search -***/ - -.page-sidebar .sidebar-search { - padding:0; - margin: 0; -} - -.page-sidebar .header.navbar-responsive-search { - display: none; -} - -.page-sidebar .sidebar-search .form-container { - margin: 15px 20px 15px 20px; - height: 35px; - padding-top: 7px; -} - -.page-sidebar .sidebar-search .form-container .submit { - display: block; - float: right; - margin-top: 3px; - width: 13px; - height: 15px; - background-repeat: no-repeat; - box-shadow: none; - border: 0px; - padding: 0px; - outline: none !important; -} - -.page-sidebar .sidebar-search .form-container input[type="text"] { - margin: 0px; - width: 165px; - border: 0px; - padding: 0 !important; - font-size: 14px !important; - box-shadow: none !important; - font-size: 14px; - font-weight: normal; -} - -.page-sidebar .sidebar-search .form-container input[type="text"]:focus { - outline: none !important; -} - -/*** -Sidebar toggler(show/hide) -***/ -.sidebar-toggler { - cursor: pointer; - opacity: 0.5; - filter: alpha(opacity=50); - width: 29px; - height: 29px; - background-repeat: no-repeat; -} - -.sidebar-toggler:hover { - filter: alpha(opacity=100); - opacity: 1; -} - -.page-sidebar .sidebar-toggler { - margin-top: 15px; - /* margin-left: 175px;*/ -} - -.header.navbar .sidebar-toggler { - float: left; - display: inline-block; - margin-top: 6px; - margin-left: -42px; -} - -/*** -Page content -***/ -.page-content { - margin-top: 0px; - padding: 0px; - background-color: #fff; -} - -.ie8 .page-content { - padding: 20px; - margin-left: 225px; - margin-top: 0px; - min-height: 760px; -} - -.ie8 .page-sidebar-fixed .page-content { - min-height: 600px; -} - -.ie8 .page-content.no-min-height { - min-height: auto; -} - -.page-full-width .page-content { - margin-left: 0px !important; -} - -.page-full-width .page-sidebar-menu { - display: none; -} - -/*** -Page title -***/ -.page-title { - padding: 0px; - font-size: 30px; - letter-spacing: -1px; - display: block; - color: #666; - margin: 0px 0px 15px 0px; - font-weight: 300; - font-family: 'Open Sans', sans-serif; -} - -.page-title small { - font-size: 14px; - letter-spacing: 0px; - font-weight: 300; - color: #888; -} - -/*** -Page breadcrumb -***/ - -.ie8 .row .page-breadcrumb.breadcrumb > li { - margin-right: 1px; -} - -.page-content .page-breadcrumb.breadcrumb { - -webkit-border-radius: 0px; - -moz-border-radius: 0px; - border-radius: 0px; - box-shadow: none; - padding-right: 30px; - padding-left: 8px; - margin-top: 15px; - margin-bottom: 25px; - border:0px !important; - background-color: #fff; -} - -.page-content .page-breadcrumb.breadcrumb > li > a, -.page-content .page-breadcrumb.breadcrumb > li > i, -.page-content .page-breadcrumb.breadcrumb > li > span { - color: #333; - font-size: 14px; - text-shadow:none; -} - -.page-content .page-breadcrumb.breadcrumb > li > i { - color: #666; -} - -.page-content .page-breadcrumb.breadcrumb > li+li:before { - display: none; -} - -/* Dashboard breadcrumb Dropdown */ -.page-content .page-breadcrumb.breadcrumb .more-botton-zone .btn-group { - right: 15px; - position: absolute; - margin-top: -8px; -} -.page-content .page-breadcrumb.breadcrumb .more-botton-zone { - position:inherit; -} - -.page-content .page-breadcrumb.breadcrumb .more-botton-zone .btn-group .btn { - padding-top: 8px; - padding-bottom: 8px; - font-size: 12px; -} - -/* Dashboard date range panel */ -.page-content .page-breadcrumb.breadcrumb .dashboard-date-range { - position: relative; - top: -8px; - margin-right: -30px; - display: none; - padding: 9px 9px 8px 9px; - cursor: pointer; - color: #fff; - background-color: #e02222; -} - -/* hack for chrome and safari */ -@media all and (-webkit-min-device-pixel-ratio:0) { - .page-content .page-breadcrumb.breadcrumb .dashboard-date-range { - padding: 9px; - } -} - -.page-content .page-breadcrumb.breadcrumb .dashboard-date-range > span { - font-size: 12px; - font-weight: 300; - color: #fff; - text-transform: uppercase; -} - -.page-content .page-breadcrumb.breadcrumb .dashboard-date-range > .fa-calendar { - text-transform: none; - color: #fff; - margin-top: 0px; - font-size: 14px; -} - -.page-content .page-breadcrumb.breadcrumb .dashboard-date-range > .fa-angle-down { - color:#fff; - font-size: 16px; -} - -/*** -Footer -***/ - -.footer { - padding: 8px 20px 5px 20px; - font-size: 12px; -} - -.footer:after, -.footer:before { - content: ""; - display: table; - line-height: 0; -} - -.footer:after { - clear: both; -} - -.footer .footer-inner { - float: left; - display: inline-block; -} - -.footer .footer-tools { - float: right; - display: inline-block; -} - -.footer .footer-tools .go-top { - display: block; - text-decoration: none; - cursor: pointer; - margin-top: -2px; - margin-right: 0px; - margin-bottom: 0px; - font-size: 16px; - padding: 0px 6px 0px 6px; -} - -.footer .footer-tools .go-top i { - font-size: 22px; - margin-bottom: 5px; -} - - -/******************** - GENERAL UI ELEMENTS -*********************/ - -/*** -Icon stuff -***/ -i.icon, a.icon { - color: #999; - margin-right: 5px; - font-weight: normal; - font-size: 13px; -} - -i.icon-black { - color: #000 !important; -} - -a.icon:hover { - text-decoration: none; - -webkit-transition: all 0.1s ease-in-out; - -moz-transition: all 0.1s ease-in-out; - -o-transition: all 0.1s ease-in-out; - -ms-transition: all 0.1s ease-in-out; - transition: all 0.1s ease-in-out; - opacity: .4; - filter:alpha(opacity=40); -} - -a.icon.huge i{ - font-size: 16px !important; -} - -i.big { - font-size: 20px; -} - -i.warning { - color: #d12610; -} - -i.critical { - color: #37b7f3; -} - -i.normal { - color: #52e136; -} - -/*** -Custom wells -***/ -.well { - background-color: #fafafa; - border: 1px solid #eee; - -webkit-border-radius: 0px; - -moz-border-radius: 0px; - border-radius: 0px; - -webkit-box-shadow: none !important; - -moz-box-shadow: none !important; - box-shadow: none !important; -} - -.well.mini { - padding: 7px !important; -} - -/*** -Form stuff -***/ - - -/*** -Bordered form layout -***/ - -/*** -Input icons -***/ - -/* input with right aligned and colored icons */ - -/* input with left aligned icons */ -.input-icon { - position: relative; -} - - -.input-icon input { - padding-left: 33px !important; -} - -.input-icon i { - color: #ccc; - display: block; - position: absolute; - margin: 11px 2px 4px 10px; - width: 16px; - height: 16px; - font-size: 16px; - text-align: center; -} - -.input-icon.right input { - padding-left: 12px !important; - padding-right: 33px !important; -} - -.input-icon.right i { - right: 8px; - float: right; -} - -.has-success .input-icon > i { - color: #468847; -} - -.has-warning .input-icon > i { - color: #c09853; -} - -.has-error .input-icon > i { - color: #b94a48; -} - -/*** -Portlets -***/ -.portlet { - clear: both; - margin-top: 0px; - margin-bottom: 25px; - padding: 0px; -} - -.portlet > .portlet-title { - margin-bottom: 15px; - border-bottom: 1px solid #eee; -} - -.portlet > .portlet-title:after, -.portlet > .portlet-title:before { - content: ""; - display: table; - line-height: 0; -} - -.portlet > .portlet-title:after { - clear: both; -} - -.portlet > .portlet-title > .caption { - float: left; - display: inline-block; - font-size: 18px; - line-height: 18px; - font-weight: 400; - margin: 0; - padding: 0; - margin-bottom: 8px; -} - -.portlet > .portlet-title > .caption > i { - float: left; - margin-top: 4px; - display: inline-block !important; - font-size: 13px; - margin-right: 5px; - color: #666; -} - -.portlet.blue > .portlet-title > .caption, -.portlet.green > .portlet-title > .caption, -.portlet.yellow > .portlet-title > .caption, -.portlet.red > .portlet-title > .caption, -.portlet.purple > .portlet-title > .caption, -.portlet.grey > .portlet-title > .caption { - color: #fff; -} - -.portlet.box.blue > .portlet-title > .caption > i, -.portlet.box.green > .portlet-title > .caption > i, -.portlet.box.grey > .portlet-title > .caption > i, -.portlet.box.yellow > .portlet-title > .caption > i, -.portlet.box.red > .portlet-title > .caption > i, -.portlet.box.purple > .portlet-title > .caption > i, -.portlet.box.light-grey > .portlet-title > .caption > i{ - color: #fff; -} - -.sortable .portlet > .portlet-title { - cursor: move; -} - -.portlet > .portlet-title > .tools, -.portlet > .portlet-title > .actions - { - display: inline-block; - padding: 0; - margin: 0; - margin-top: 6px; - float: right; -} - -.portlet > .portlet-title > .tools > a { - display: inline-block; - height: 16px; - margin-left:5px; -} - -.portlet > .portlet-title > .actions > .dropdown-menu i { - color: #000 !important; -} - -.portlet > .portlet-title > .tools > a.remove { - margin-bottom: 2px; - background-image:url(../image/portlet-remove-icon.png); - background-repeat: no-repeat; - width: 11px; -} - -.portlet > .portlet-title > .tools > a.config { - margin-bottom: 2px; - background-image:url(../image/portlet-config-icon.png); - background-repeat: no-repeat; - width: 12px; -} - -.portlet > .portlet-title > .tools > a.reload { - margin-bottom: 2px; - background-image:url(../image/portlet-reload-icon.png); - width: 13px; -} - -.portlet > .portlet-title > .tools > a.expand { - margin-bottom: 2px; - background-image:url(../image/portlet-expand-icon.png); - width: 14px; -} - -.portlet > .portlet-title > .tools > a.collapse { - margin-bottom: 2px; - background-image:url(../image/portlet-collapse-icon.png); - width: 14px; -} - -.portlet > .portlet-title > .tools > a:hover { - text-decoration: none; - -webkit-transition: all 0.1s ease-in-out; - -moz-transition: all 0.1s ease-in-out; - -o-transition: all 0.1s ease-in-out; - -ms-transition: all 0.1s ease-in-out; - transition: all 0.1s ease-in-out; - opacity:.6; - filter:'alpha(opacity=60)'; -} - -.portlet > .portlet-title > .actions > .btn-group { - margin-top: -13px; -} - -.portlet > .portlet-title > .actions > .btn { - padding: 4px 10px; - margin-top: -14px; -} - -.portlet > .portlet-title > .actions > .btn-group > .btn { - padding: 4px 10px; - margin-top: -1px; -} - -.portlet > .portlet-title > .actions > .btn.btn-sm { - padding: 3px 8px; - margin-top: -13px; -} - -.portlet > .portlet-title > .actions > .btn-group > .btn-sm { - padding: 3px 8px; - margin-top: -1px; -} - -.portlet > .portlet-title > .pagination.pagination-sm { - float: right !important; - display: inline-block !important; - margin: 0px; - margin-top: -4px; -} - -@media (max-width: 767px) { - .portlet > .portlet-title > .actions.btn-set > .btn-group, - .portlet > .portlet-title > .actions.btn-set > .btn { - margin-top: 0px; - margin-bottom: 5px; - } -} - -.portlet > .portlet-body { - clear: both; - padding: 0; -} - -.portlet > .portlet-empty { - min-height: 125px; -} - -.portlet > .portlet-body.light-blue, .portlet.light-blue { - background-color: #bfd5fa !important; -} - -.portlet > .portlet-body.blue, .portlet.blue { - background-color: #4b8df8 !important; -} - -.portlet > .portlet-body.red, .portlet.red { - background-color: #e02222 !important; -} - -.portlet > .portlet-body.yellow, .portlet.yellow { - background-color: #ffb848 !important; -} - -.portlet > .portlet-body.green, .portlet.green { - background-color: #35aa47 !important; -} - -.portlet > .portlet-body.purple, .portlet.purple { - background-color: #852b99 !important; -} - -.portlet > .portlet-body.light-grey, .portlet.light-grey { - background-color: #fafafa !important; -} - -.portlet > .portlet-body.grey, .portlet.grey { - background-color: #555555 !important; -} - -/* draggable girds */ - -.ui-sortable-placeholder { - border: 1px dotted black; - visibility: visible !important; - height: 100% !important; -} - -.ui-sortable-placeholder * { - visibility: hidden; -} - -.sortable-box-placeholder { - background-color: #f5f5f5; - border: 1px dashed #DDDDDD; - display: block; - /* float: left;*/ - margin-top: 0px !important; - margin-bottom: 24px !important; -} - -.sortable-box-placeholder * { - visibility:hidden; -} - -/*** -Solid colored portlet -***/ -.portlet.solid { - padding: 10px; -} - -.portlet.solid > .portlet-title > .tools { - margin-top: 2px; - border: 0px; -} - -.portlet.solid > .portlet-title { - margin-bottom: 5px; - border: 0px; -} - -.portlet.solid.bordered > .portlet-title { - margin-bottom: 15px; -} - -.portlet.solid.red > .portlet-title, -.portlet.solid.red > .portlet-title > .caption > i, -.portlet.solid.red > .portlet-body, - -.portlet.solid.green > .portlet-title, -.portlet.solid.green > .portlet-title > .caption > i, -.portlet.solid.green > .portlet-body, - -.portlet.solid.yellow > .portlet-title, -.portlet.solid.yellow > .portlet-title > .caption > i, -.portlet.solid.yellow > .portlet-body, - -.portlet.solid.grey > .portlet-title, -.portlet.solid.grey > .portlet-title > .caption > i, -.portlet.solid.grey > .portlet-body, - -.portlet.solid.purple > .portlet-title, -.portlet.solid.purple > .portlet-title > .caption > i, -.portlet.solid.purple > .portlet-body, - -.portlet.solid.blue > .portlet-title, -.portlet.solid.blue > .portlet-title > .caption > i, -.portlet.solid.blue > .portlet-body { - border: 0; - color: #fff; -} - -.portlet.bordered { - border-left: 2px solid #ddd; -} - -/*** -Box portlet -***/ - -.portlet.box { - padding:0px !important -} - -.portlet.box > .portlet-title { - padding:8px 10px 2px 10px; - border-bottom: 1px solid #eee; - color: #fff !important; -} - -.portlet.box > .portlet-title > .tools { - margin-top: 3px; -} - -.portlet.box > .portlet-title > .tools > a.remove, -.portlet.solid > .portlet-title > .tools > a.remove { - background-image:url(../image/portlet-remove-icon-white.png); -} - -.portlet.box > .portlet-title > .tools > a.config, -.portlet.solid > .portlet-title > .tools > a.config { - background-image:url(../image/portlet-config-icon-white.png); -} - -.portlet.box > .portlet-title > .tools > a.reload, -.portlet.solid > .portlet-title > .tools > a.reload { - background-image:url(../image/portlet-reload-icon-white.png); -} - -.portlet.box > .portlet-title > .tools > a.expand, -.portlet.solid > .portlet-title > .tools > a.expand { - background-image:url(../image/portlet-expand-icon-white.png); -} - -.portlet.box > .portlet-title > .tools > a.collapse, -.portlet.solid > .portlet-title > .tools > a.collapse { - background-image:url(../image/portlet-collapse-icon-white.png); -} - -/* portlet buttons */ -.portlet.box > .portlet-body { - background-color: #fff; - padding: 10px; -} - -.portlet.box > .portlet-title { - margin-bottom: 0px; -} - -.portlet.box.blue > .portlet-title { - background-color: #4b8df8; -} - -.portlet.box.blue { - border: 1px solid #b4cef8; - border-top: 0; -} - -.portlet.box.red > .portlet-title { - background-color: #e02222; -} - -.portlet.box.red { - border: 1px solid #ef8476; - border-top: 0; -} - -.portlet.box.yellow > .portlet-title { - background-color: #ffb848; -} - -.portlet.box.yellow { - border: 1px solid #fccb7e; - border-top: 0; -} - -.portlet.box.green > .portlet-title { - background-color: #35aa47; -} - -.portlet.box.green { - border: 1px solid #77e588; - border-top: 0; -} - -.portlet.box.purple > .portlet-title { - background-color: #852b99; -} - -.portlet.box.purple { - border: 1px solid #af5cc1; - border-top: 0; -} - -.portlet.box.grey > .portlet-title { - background-color: #555555; -} - -.portlet.box.grey { - border: 1px solid #9d9c9c; - border-top: 0; -} - -.portlet.box.light-grey > .portlet-title { - background-color: #aaa; -} - -.portlet.box.light-grey { - border: 1px solid #bbb; - border-top: 0; -} - -/*** -Charts and statistics -***/ -.chart, .pie, .bars { - overflow: hidden; - height: 300px; -} - -/*** -Statistic lists -***/ -.item-list.table .percent { - width: 30px; - float: right; - margin-right: 10px; - margin-top: 3px; -} - -/*** -Chart tooltips -***/ -.chart-tooltip { - clear: both; - z-index: 100; - background-color: #736e6e !important; - padding: 5px !important; - color: #fff; -} - -.chart-tooltip .label { - clear: both; - display: block; - margin-bottom: 2px; -} - -/*** -Mini chart containers -***/ -.bar-chart { - display: none -} - -.line-chart { - display: none -} - -/*** -Custom icon buttons -***/ -.icon-btn { - height: 60px; - min-width: 80px; - margin: 5px 5px 0 0; - border: 1px solid #ddd; - padding: 12px 0px 0px 0px; - background-color: #fafafa !important; - background-image: none !important; - filter:none !important; - -webkit-box-shadow: none !important; - -moz-box-shadow: none !important; - box-shadow: none !important; - display:inline-block !important; - color: #646464 !important; - text-shadow: none !important; - text-align: center; - cursor: pointer; - position: relative; - -webkit-transition: all 0.3s ease !important; - -moz-transition: all 0.3s ease !important; - -ms-transition: all 0.3s ease !important; - -o-transition: all 0.3s ease !important; - transition: all 0.3s ease !important; -} - -.icon-btn i { - font-size: 18px; -} - -.ie8 .icon-btn:hover { - filter: none !important; -} - -.icon-btn:hover { - text-decoration: none !important; - border-color: #999 !important; - color: #444 !important; - text-shadow: 0 1px 0px rgba(255, 255, 255, 1) !important; - -webkit-transition: all 0.3s ease !important; - -moz-transition: all 0.3s ease !important; - -ms-transition: all 0.3s ease !important; - -o-transition: all 0.3s ease !important; - transition: all 0.3s ease !important; - -webkit-box-shadow: none !important; - -moz-box-shadow: none !important; - box-shadow: none !important; -} - -.icon-btn:hover .badge { - -webkit-transition: all 0.3s ease !important; - -moz-transition: all 0.3s ease !important; - -ms-transition: all 0.3s ease !important; - -o-transition: all 0.3s ease !important; - transition: all 0.3s ease !important; - -webkit-box-shadow: none !important; - -moz-box-shadow: none !important; - box-shadow: none !important; -} - -.icon-btn div { - font-family: 'Open Sans', sans-serif; - margin-top: 5px; - margin-bottom: 20px; - color: #000; - font-size: 12px; - font-weight: 300; -} - -.icon-btn .badge { - position: absolute; - font-family: 'Open Sans', sans-serif; - font-size: 11px !important; - font-weight: 300; - top: -5px; - right: -5px; - padding: 3px 6px 3px 6px; - color: white !important; - text-shadow: none; - border-width: 0; - border-style: solid; - -webkit-border-radius: 12px !important; - -moz-border-radius: 12px !important; - border-radius: 12px !important; - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; -} - -/* extended dropdowns */ -.dropdown-menu.extended { - min-width: 160px !important; - max-width: 300px !important; - width: 233px !important; - background-color: #ffffff !important; -} - -.dropdown-menu.extended:before, -.dropdown-menu.extended:after { - border-bottom-color: #ddd !important; -} - -.dropdown-menu.extended li a{ - display: block; - padding: 5px 10px !important; - clear: both; - font-weight: normal; - line-height: 20px; - white-space: normal !important; -} - -.dropdown-menu.extended li i{ - margin-right: 3px; -} - -.dropdown-menu.extended li a{ - font-size: 13px; - padding: 10px !important; - background-color: #ffffff; -} - -.dropdown-menu.extended li a:hover { - background-image: none; - background-color: #f5f5f5; - color: #000; - filter:none; -} - -.dropdown-menu.extended li p{ - padding: 10px; - background-color: #eee; - margin: 0px; - font-size: 14px; - font-weight: 300; - color: #000; -} - -.dropdown-menu.extended li a{ - padding: 7px 0 5px 0px; - list-style: none; - border-bottom: 1px solid #f4f4f4 !important; - font-size: 12px; - text-shadow: none; -} - -.dropdown-menu.extended li:first-child a { - border-top: none; - border-bottom: 1px solid #f4f4f4 !important; -} - -.dropdown-menu.extended li:last-child a { - border-top: 1px solid white !important; - border-bottom: 1px solid #f4f4f4 !important; -} - -.dropdown-menu.extended li.external > a { - font-size: 13px; - font-weight: 400; -} - -.dropdown-menu.extended li.external > a > i{ - margin-top: 3px; - float: right; -} - -/* header notifications dropdowns */ -.dropdown-menu .dropdown-menu-list.scroller { - padding-right: 0 !important; - padding-left: 0; - list-style: none; -} - -.dropdown-menu.notification li > a .time { - font-size: 12px; - font-weight: 600; - text-align: right; - font-style: italic; -} - -/* header inbox dropdowns */ -.dropdown-menu.inbox li > a .photo { - float: left; - padding-right: 6px; -} - -.dropdown-menu.inbox li > a .photo > img { - height: 40px; - width: 40px; -} - -.dropdown-menu.inbox li > a .subject { - display: block; -} - -.dropdown-menu.inbox li > a .subject .from { - font-size: 14px; - font-weight: 400; - color: #02689b; -} - -.dropdown-menu.inbox li > a .subject .time { - font-size: 12px; - font-weight: 600; - font-style: italic; - position: relative; - float: right; -} - -.dropdown-menu.inbox li > a .message { - display: block !important; - font-size: 12px; -} - -/* header tasks */ -.dropdown-menu.tasks .task { - margin-bottom: 5px; -} - -.dropdown-menu.tasks .task .desc { - font-size: 13px; - font-weight: 300; -} - -.dropdown-menu.tasks .task .percent { - font-size: 14px; - font-weight: 600; - font-family: 'Open Sans', sans-serif; - float: right; - display: inline-block; -} - -.dropdown-menu.tasks .progress { - display: block; - height: 11px; - margin: 0px; -} - -/*** -General list for item with image -***/ -.item-list li .img { - height: 50px; - width: 50px; - float: left; - margin-top: 3px; - margin-right: 5px; -} - -.item-list { - margin: 0px; - list-style: none; -} - -.item-list li { - padding: 7px 0 5px 0px; - list-style: none; - border-top: 1px solid white; - border-bottom: 1px solid #EBEBEB; - font-size: 12px; -} - -.item-list li:first-child { - border-top: none; - border-bottom: 1px solid #EBEBEB; -} - -.item-list li:last-child { - border-top: none; - border-bottom: none; -} - -.item-list li .label { - margin-right: 5px; -} - -.item-list.todo li .label { - position: absolute; - right: 80px; -} - -.item-list.todo li .actions { - position: absolute; - right: 45px; -} - -/*** -Custom tables -***/ -.table-toolbar { - margin-bottom: 15px; -} - -.table.table-full-width { - width: 100% !important; -} - -.table .m-btn { - margin-top: 0px; - margin-left: 0px; - margin-right: 5px; -} - -.table thead tr th { - font-size: 14px; - font-weight: 600; -} - -.table-advance { - margin-bottom: 10px !important; -} - -.table-advance thead { - color: #999; -} - -.table-advance thead tr th{ - background-color: #DDD; - font-size: 14px; - font-weight: 400; - color: #666; -} - -.table-advance div.success, -.table-advance div.info, -.table-advance div.important, -.table-advance div.warning, -.table-advance div.danger { - position: absolute; - margin-top:-5px; - float: left; - width: 2px; - height: 30px; - margin-right: 20px !important; -} - -.table-advance tr td { - border-left-width: 0px; -} -.table-advance tr td:first-child { - border-left-width: 1px !important; -} - -.table-advance tr td.highlight:first-child a { - margin-left: 15px; -} - -.table-advance td.highlight div.success { - border-left: 2px solid #66ee66; -} - -.table-advance td.highlight div.info { - border-left: 2px solid #87ceeb; -} - -.table-advance td.highlight div.important { - border-left: 2px solid #f02c71; -} - -.table-advance td.highlight div.warning { - border-left: 2px solid #fdbb39; -} - -.table-advance td.highlight div.danger { - border-left: 2px solid #e23e29; -} - -/*** -Star rating -***/ -.rating { - unicode-bidi: bidi-override; - direction: rtl; - font-size: 30px; -} - -.rating span.star { - font-family: FontAwesome; - font-weight: normal; - font-style: normal; - display: inline-block; -} - -.rating span.star:hover { - cursor: pointer; -} - -.rating span.star:before { - content: "\f006"; - padding-right: 5px; - color: #999999; -} - -.rating span.star:hover:before, -.rating span.star:hover ~ span.star:before { - content: "\f005"; - color: #e3cf7a; -} - - -/*** -Item block with details shown on hover -***/ -.item { - overflow: hidden; - display: block; - margin-bottom: 20px; -} - -.item .details { - width: 100%; - display: none; - background-color: #000; - color: #fff !important; - padding: 5px; - text-align: center; - position: relative; - bottom:30px; - margin-bottom:-30px; - overflow: hidden; - z-index: 6; -} - -.item:hover .details { - display: block; - opacity: 0.7; - filter: alpha(opacity = 70); -} - -.item:hover .zoom-icon{ - opacity:0.5; - filter: alpha(opacity = 50); -} - -/*** -Zoom icon overlay on images -***/ -.zoom { - cursor: pointer; - width: 100%; - height: 100%; - position: relative; - z-index: 5; -} - -.zoom .zoom-icon { - background-image:url("../image/overlay-icon.png"); - background-color: #222; - background-repeat: no-repeat; - background-position: 50%; - position: absolute; - width: inherit; - height: inherit; - opacity: 0; - filter: alpha(opacity = 0); - z-index: 6; - top:0; -} - -/*** -Chats -***/ -.chats { - margin:0; - padding: 0; - margin-top: -15px; -} - -.chats li { - list-style: none; - padding: 5px 0; - margin: 10px auto; - font-size: 12px; -} - -.chats li img.avatar { - height: 45px; - width: 45px; - -webkit-border-radius: 50% !important; - -moz-border-radius: 50% !important; - border-radius: 50% !important; -} - -.chats li.in img.avatar { - float: left; - margin-right: 10px; -} - -.chats li .name { - color:#3590c1; - font-size: 13px; - font-weight: 400; -} - -.chats li .datetime { - color:#333; - font-size: 13px; - font-weight: 400; -} - -.chats li.out img.avatar { - float: right; - margin-left: 10px; -} - -.chats li .message { - display: block; - padding: 5px; - position: relative; -} - -.chats li.in .message { - text-align: left; - border-left: 2px solid #35aa47; - margin-left: 65px; - background: #fafafa -} - -.chats li.in .message .arrow { - display: block; - position: absolute; - top: 5px; - left: -8px; - width: 0; - height: 0; - - border-top: 8px solid transparent; - border-bottom: 8px solid transparent; - border-right: 8px solid #35aa47; -} - -.chats li.out .message .arrow { - display: block; - position: absolute; - top: 5px; - right: -8px; - border-top: 8px solid transparent; - border-bottom: 8px solid transparent; - border-left: 8px solid #da4a38; -} - -.chats li.out .message { - border-right: 2px solid #da4a38; - margin-right: 65px; - background: #fafafa; - text-align: right; -} - -.chats li.out .name, -.chats li.out .datetime { - text-align: right; -} - -.chats li .message .body { - display: block; -} - -.chat-form { - margin-top: 15px; - padding: 10px; - background-color: #e9eff3; - overflow: hidden; - clear: both; -} - -.chat-form .input-cont { - margin-right: 40px; -} - -.chat-form .input-cont .form-control { - width: 100% !important; - margin-bottom: 0px; -} - -.chat-form .input-cont input{ - border: 1px solid #ddd; - width: 100% !important; - margin-top: 0; -} - -.chat-form .input-cont input { - background-color: #fff !important; -} - -.chat-form .input-cont input:focus{ - border: 1px solid #4b8df9 !important; -} - -.chat-form .btn-cont { - margin-top: -42px; - position: relative; - float: right; - width:44px; -} - -.chat-form .btn-cont .arrow { - position: absolute; - top: 17px; - right: 43px; - border-top: 8px solid transparent; - border-bottom: 8px solid transparent; - border-right: 8px solid #4d90fe; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} - -.chat-form .btn-cont:hover .arrow { - border-right-color: #0362fd; -} - -.chat-form .btn-cont:hover .btn { - background-color: #0362fd; -} - -.chat-form .btn-cont .btn { - margin-top: 8px; -} - -/*** -System feeds -***/ -.feeds { - margin: 0px; - padding: 0px; - list-style: none; -} - -.feeds li { - background-color: #fafafa; - margin-bottom: 7px; -} - -.feeds li:before, -.feeds li:after { - display: table; - line-height: 0; - content: ""; -} - -.feeds li:after { - clear: both; -} - -.feeds li:last-child { - margin-bottom: 0px; -} - -.feeds .col1 { - float:left; - width:100%; - clear: both; -} - -.feeds .col2 { - float:left; - width:75px; - margin-left:-75px; -} - -.feeds .col1 .cont { - float:left; - margin-right:75px; - overflow:hidden; -} - -.feeds .col1 .cont .cont-col1 { - float:left; - margin-right:-100%; -} - -.feeds .col1 .cont .cont-col1 .label { - display: inline-block; - padding: 5px 4px 6px 5px; - vertical-align: middle; - text-align: center; -} -.feeds .col1 .cont .cont-col1 .label > i { - text-align: center; - font-size: 14px; -} - -.feeds .col1 .cont .cont-col2 { - float:left; - width:100%; -} - -.feeds .col1 .cont .cont-col2 .desc { - margin-left:35px; - padding-top: 4px; - padding-bottom: 5px; - overflow:hidden; -} - -.feeds .col2 .date { - padding: 4px 9px 5px 4px; - text-align: right; - font-style: italic; - color:#c1cbd0; -} - -/*** -Users -***/ -.user-info { - margin-bottom: 10px !important; -} - -.user-info img { - float: left; - margin-right: 5px; -} - -.user-info .details { - display: inline-block; -} - -.user-info .label { - font-weight: 300; - font-size: 11px; -} - -/*** -Accordions -***/ -.accordion-heading { - background:#eee; -} - -.accordion-heading a { - text-decoration:none; -} - -.accordion-heading a:hover { - text-decoration:none; -} - -/*** -Vertical inline menu -***/ -.ver-inline-menu { - padding: 0; - margin: 0; - list-style: none; -} - -.ver-inline-menu li { - position:relative; - margin-bottom:1px; -} - -.ver-inline-menu li i { - width: 37px; - height: 37px; - display: inline-block; - color:#b9cbd5; - font-size:15px; - padding:12px 10px 10px 8px; - margin:0 8px 0 0; - text-align: center; - background:#e0eaf0 !important; -} - -.ver-inline-menu li a { - font-size: 13px; - color:#557386; - display:block; - background:#f0f6fa; - border-left:solid 2px #c4d5df; -} - -.ver-inline-menu li:hover a, -.ver-inline-menu li:hover i { - background:#e0eaf0; - text-decoration:none; -} - -.ver-inline-menu li:hover i { - color:#fff; - background:#c4d5df !important; -} - -.ver-inline-menu li.active a, -.ver-inline-menu li:hover a { - font-size: 13px; -} - -.ver-inline-menu li.active a { - border-left:solid 2px #0c91e5; -} - -.ver-inline-menu li.active a, -.ver-inline-menu li.active i { - color:#fff; - background:#169ef4; - text-decoration:none; -} - -.ver-inline-menu li.active i { - background:#0c91e5 !important; -} - -.ver-inline-menu li.active:after { - content: ''; - display: inline-block; - border-bottom: 6px solid transparent; - border-top: 6px solid transparent; - border-left: 6px solid #169ef4; - position: absolute; - top: 12px; - right: -5px; -} - -/*** -Custom tabs -***/ -.nav-tabs > li > a > .badge, -.nav-pills > li > a > .badge { - margin-top: -3px; -} - -.nav-tabs > li > a, -.nav-pills > li > a { - font-size: 14px; -} - -.nav-tabs-sm > li > a, -.nav-pills-sm > li > a { - font-size: 13px; -} - -.tabbable-custom { - margin-bottom: 15px; - padding: 0px; - overflow: hidden; -} - -.tabbable-custom > .nav-tabs { - border: none; - margin: 0px; -} - -.tabbable-custom > .tab-content { - background-color: #fff; - border: 1px solid #ddd; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; - padding: 10px; -} - -.tabbable-custom.nav-justified .tab-content { - margin-top: -1px; -} - -.tabs-below.tabbable-custom.nav-justified .tab-content { - margin-top: 0px; - margin-bottom: -2px; -} - -.tabbable-custom.boxless > .tab-content { - padding:15px 0; - border-left:none; - border-right:none; - border-bottom:none; -} - -.tabbable-custom .nav-tabs > li { - margin-right: 2px; - border-top: 2px solid transparent; -} - -.tabbable-custom .nav-tabs > li > a { - margin-right: 0; - } - -.tabbable-custom .nav-tabs > li > a:hover { - background: none; - border-color:transparent; -} - -.tabbable-custom .nav-tabs > li.active { - border-top: 3px solid #d12610; - margin-top: 0; - position: relative; -} - -.tabbable-custom .nav-tabs > li.active > a { - border-top: none; - font-weight: 400; -} - -.tabbable-custom .nav-tabs > li.active > a:hover { - border-top: none; - background: #fff; - border-color: #d4d4d4 #d4d4d4 transparent; -} - -.tabbable-custom .nav-tabs > li { - margin-right: 2px; - border-top: 2px solid transparent; -} - -/* below tabs */ - -.tabs-below.tabbable-custom .nav-tabs > li > a { - border-top: none; - border-bottom: 2px solid transparent; - margin-top: -1px; -} - -.tabs-below.tabbable-custom .nav-tabs > li.active { - border-top: none; - border-bottom: 3px solid #d12610; - margin-bottom: 0; - position: relative; -} - -.tabs-below.tabbable-custom .nav-tabs > li.active > a { - border-bottom: none -} - -.tabs-below.tabbable-custom .nav-tabs > li.active > a:hover { - background: #fff; - border-color: #d4d4d4 #d4d4d4 transparent; -} - -/*full width tabs with bigger titles */ -.tabbable-custom.tabbable-full-width > .tab-content { - padding:15px 0; - border-left:none; - border-right:none; - border-bottom:none; -} - -.tabbable-custom.tabbable-full-width .nav-tabs > li > a { - color:#424242; - font-size:15px; - padding:9px 15px; -} - -/*** -Custom portlet tabs -***/ - -.portlet-tabs > .nav-tabs { - position: relative; - top: -41px; - margin-right: 10px; - overflow: hidden; -} - -.portlet-tabs > .nav-tabs > li { - float: right; -} - -.portlet-tabs > .nav-tabs { - border-bottom: none; -} - -.portlet-tabs > .nav-tabs > li > a { - color: #fff; - padding-top: 8px; - padding-bottom: 10px; - line-height: 16px; - margin-top: 6px; - margin-left: 0px; - margin-right: 0px; - border-left: 0; - border-right: 0; - -webkit-border-radius: 0px; - -moz-border-radius: 0px; - border-radius: 0px; -} - -.portlet-tabs > .nav-tabs > li:last-child > a { - border-right:0; -} - -.portlet-tabs > .nav-tabs > li { - margin-left: 1px; -} - -.portlet-tabs > .nav-tabs > li.active { - color: #333; - border-top-color: transparent; -} - -.portlet-tabs > .nav-tabs > li.active > a { - margin-bottom: 0px; - border-bottom: 0; - margin-left: 0px; - margin-right: 0px; - border-left: 0; - border-right: 0; - border-top-color:transparent !important; -} - -.portlet-tabs > .nav-tabs > li > a:hover { - color: #333; - margin-bottom: 0; - border-bottom-color: transparent; - margin-left: 0; - margin-right: 0; - border-left: 0; - border-right: 0; - border-top-color:transparent; - background-color: #fff; -} - -.portlet-tabs > .nav-tabs > .active > a { - color: #555555; - cursor: default; - background-color: #fff; -} - -.portlet-tabs > .nav-tabs > .active > a:hover { - background-color: #fff !important; -} - -.portlet-tabs > .tab-content { - padding: 10px !important; - margin: 0px; - margin-top: -50px !important; -} - -.portlet.tabbable .portlet-body { - padding: 0px; -} - -.tab-pane > p:last-child { - margin-bottom: 0px; -} - -/* reverse aligned tabs */ - -.tabs-reversed > li { - float: right; -} - -.tabs-reversed > li, -.tabs-reversed > li > a { - margin-right: 0; -} - -/*** -Dashboard container -***/ - -#dashboard { - overflow: hidden; -} - -/*** -Dashboard stats -***/ -.dashboard-stat { - margin-bottom: 25px; -} - -.portlet .dashboard-stat:last-child { - margin-bottom: 0; -} - -.dashboard-stat:before, -.dashboard-stat:after { - display: table; - line-height: 0; - content: ""; -} -.dashboard-stat:after { - clear: both; -} - -.dashboard-stat .visual { - width: 80px; - height:80px; - display: block; - float: left; - padding-top: 10px; - padding-left: 15px; - margin-bottom: 10px; -} - -.dashboard-stat .visual i { - font-size: 65px; - line-height: 65px; - color: #fff; -} - -.dashboard-stat .visual { - font-size: 35px; - line-height: 35px; -} - -@media (min-width: 992px) and (max-width: 1024px) { - - .dashboard-stat .visual i { - font-size: 28px; - line-height: 28px; - } - -} - -.dashboard-stat .details { - position: absolute; - right: 15px; - padding-right: 10px; -} - -.dashboard-stat .details .number { - padding-top: 15px; - text-align: right; - font-size: 34px; - line-height: 34px; - letter-spacing: -1px; - margin-bottom: 5px; - font-weight: 300; - color: #fff; -} - -.dashboard-stat .details .desc { - text-align: right; - font-size: 16px; - letter-spacing: 0px; - font-weight: 300; - color: #fff; -} - -.dashboard-stat .more { - clear: both; - display: block; - padding: 5px 10px 5px 10px; - text-transform: uppercase; - font-weight: 300; - font-size: 11px; - color: #fff; - opacity: 0.7; - filter: alpha(opacity=70); -} - -.dashboard-stat .more:hover { - text-decoration: none; - opacity: 1; - filter: alpha(opacity=100); -} - -.dashboard-stat .more > i { - display: inline-block; - margin-top: 1px; - float: right; -} - -.dashboard-stat.blue { - background-color: #27a9e3; -} - -.dashboard-stat.blue .more { - background-color: #208dbe; -} - -.dashboard-stat.green { - background-color: #28b779; -} - -.dashboard-stat.green .more { - background-color: #10a062; -} - -.dashboard-stat.red { - background-color: #e7191b; -} - -.dashboard-stat.red .more { - background-color:#bc0d0e; -} - -.dashboard-stat.yellow { - background-color: #ffb848; -} - -.dashboard-stat.yellow .more { - background-color: #cb871b; -} - -.dashboard-stat.purple { - background-color: #852b99; -} - -.dashboard-stat.purple .more { - background-color: #6e1881; -} - -/*** -Text Stats -***/ - -.text-stat h3 { - margin-top: 5px; - margin-bottom: 0px; - font-size: 18px; -} - -.text-stat span { - font-size: 12px; - text-transform: uppercase; -} - -@media (max-width: 767px) { - - .text-stat { - margin-top: 20px; - } - -} - -/*** -Tiles(new in v1.1.1) -***/ - -.tiles { - margin-right: -10px; -} - -.tiles:before, -.tiles:after { - display: table; - content: " "; -} - -.tiles:after { - clear: both; -} - -.tile { - display: block; - letter-spacing: 0.02em; - float: left; - height: 135px; - width: 135px !important; - cursor: pointer; - text-decoration: none; - color: #ffffff; - position: relative; - font-weight: 300; - font-size: 12px; - letter-spacing: 0.02em; - line-height: 20px; - overflow: hidden; - border: 4px solid transparent; - margin: 0 10px 10px 0; -} - -.tile:after, -.tile:before { - content: ""; - float: left; -} - -.tile.double { - width: 280px !important; -} - -.tile.double-down { - height: 280px !important; -} - -.tile:active, .tile.selected { - border-color: #ccc !important; -} - -.tile:hover { - border-color: #aaa !important; -} - -.tile.selected .corner:after { - content: ""; - display: inline-block; - border-left: 40px solid transparent; - border-bottom: 40px solid transparent; - border-right: 40px solid #ccc; - position: absolute; - top: -3px; - right: -3px; -} - -.tile.selected .check:after { - content: ""; - font-family: FontAwesome; - font-size: 13px; - content: "\f00c"; - display: inline-block; - position: absolute; - top: 2px; - right: 2px; -} - -.tile * { - color: #ffffff; -} - -.tile .tile-body { - height: 100%; - vertical-align: top; - padding: 10px 10px; - overflow: hidden; - position: relative; - font-weight: 400; - font-size: 12px; - color: #000000; - color: #ffffff; - margin-bottom: 10px; -} - -.tile .tile-body img { - float: left; - margin-right: 10px; -} - -.tile .tile-body img.pull-right { - float: right !important; - margin-left: 10px; - margin-right: 0px; -} - -.tile .tile-body .content { - display: inline-block; -} - -.tile .tile-body > i { - margin-top: 17px; - display: block; - font-size: 56px; - line-height: 56px; - text-align: center; -} - - -.tile.double-down i { - margin-top: 95px; -} - -.tile .tile-body h1, -.tile .tile-body h2, -.tile .tile-body h3, -.tile .tile-body h4, -.tile .tile-body h5, -.tile .tile-body h6, -.tile .tile-body p { - padding: 0; - margin: 0; - line-height: 14px; -} - -.tile .tile-body h3, -.tile .tile-body h4 { - margin-bottom: 5px; -} - -.tile .tile-body h1:hover, -.tile .tile-body h2:hover, -.tile .tile-body h3:hover, -.tile .tile-body h4:hover, -.tile .tile-body h5:hover, -.tile .tile-body h6:hover, -.tile .tile-body p:hover { - color: #ffffff; -} - -.tile .tile-body p { - font-weight: 400; - font-size: 13px; - color: #000000; - color: #ffffff; - line-height: 20px; - overflow: hidden; -} - -.tile .tile-body p:hover { - color: rgba(0, 0, 0, 0.8); -} - -.tile .tile-body p:active { - color: rgba(0, 0, 0, 0.4); -} - -.tile .tile-body p:hover { - color: #ffffff; -} - -.tile.icon > .tile-body { - padding: 0; -} - -.tile .tile-object { - position: absolute; - bottom: 0; - left: 0; - right: 0; - min-height: 30px; - background-color: transparent; - *zoom: 1; -} - -.tile .tile-object:before, -.tile .tile-object:after { - display: table; - content: ""; -} - -.tile .tile-object:after { - clear: both; -} - -.tile .tile-object > .name { - position: absolute; - bottom: 0; - left: 0; - margin-bottom: 5px; - margin-left: 10px; - margin-right: 15px; - font-weight: 400; - font-size: 13px; - color: #ffffff; -} - -.tile .tile-object > .name > i { - vertical-align: middle; - display: block; - font-size: 24px; - height: 18px; - width: 24px; -} - -.tile .tile-object > .number { - position: absolute; - bottom: 0; - right: 0; - margin-bottom: 0; - color: #ffffff; - text-align: center; - font-weight: 600; - font-size: 14px; - letter-spacing: 0.01em; - line-height: 14px; - margin-bottom: 8px; - margin-right: 10px; -} - -.tile.image > .tile-body { - padding: 0 !important; -} - -.tile.image > .tile-body > img{ - width: 100%; - height: auto; - min-height: 100%; - max-width: 100%; -} - -.tile.image .tile-body h3 { - display: inline-block; -} - -/*** -Theme Panel -***/ - -.theme-panel { - width: 400px; - margin-top: 0px; - margin-right: 1px; - z-index: 999; - float: right; - position:relative; -} - -.theme-panel > .toggler { - top:4px; - right:0; - padding:20px; - cursor:pointer; - position:absolute; - background:#c9c9c9 url(../image/icon-color.png) center no-repeat; -} - -.theme-panel > .toggler:hover { - background-color: #3d3d3d !important; -} - -.theme-panel > .toggler-close { - display: none; - top:4px; - right:0; - padding:20px; - cursor:pointer; - position:absolute; - background: #3d3d3d url(../image/icon-color-close.png) center no-repeat !important; -} - -.theme-panel > .toggler-close:hover { - background-color:#222 !important; -} - -.theme-panel > .theme-options { - top:4px; - right:40px; - display:none; - position:absolute; - background:#3d3d3d; -} - -.theme-panel > .theme-options > .theme-option { - color:#cfcfcf; - padding: 15px; - border-top:1px solid #585858; - margin-top: 0px; - margin-bottom: 0px; -} - -.theme-panel > .theme-options > .theme-option.theme-colors { - border-top: 0; -} - -.theme-panel > .theme-options > .theme-option > span { - text-transform:uppercase; - display: inline-block; - width: 138px; - font-size: 14px; -} - -.theme-panel > .theme-options > .theme-option.theme-colors > span { - display: block; - width: auto; -} - -.theme-panel > .theme-options > .theme-option > select.form-control { - display: inline; - width: 100px; - text-transform: lowercase; -} - -.theme-panel > .theme-options > .theme-option.theme-colors > ul { - list-style:none; - padding: 0; - display: block; - margin-bottom: 1px !important; - margin-top: 10px; -} - -.theme-panel > .theme-options > .theme-option.theme-colors > ul > li { - width:37px; - height:37px; - margin:0 4px; - cursor:pointer; - list-style:none; - float: left; - border:solid 1px #707070; -} - -.theme-panel > .theme-options > .theme-option.theme-colors > ul > li:first-child { - margin-left: 0; -} - -.theme-panel > .theme-options > .theme-option.theme-colors > ul > li:hover, -.theme-panel > .theme-options > .theme-option.theme-colors > ul > li.current { - border:solid 2px #ebebeb; -} - -.theme-panel > .theme-options > .theme-option.theme-colors > ul > li.color-black { - background:#333438; -} - -.theme-panel > .theme-options > .theme-option.theme-colors > ul > li.color-grey { - background:#6d6d6d; -} - -.theme-panel > .theme-options > .theme-option.theme-colors > ul > li.color-ztebluelight { - background:#3366cc; -} -.theme-panel > .theme-options > .theme-option.theme-colors > ul > li.color-ztebluelight { - background:#1ab3ec; -} - -.theme-panel > .theme-options > .theme-option.theme-colors > ul > li.color-blue { - background:#124f94; -} - -.theme-panel > .theme-options > .theme-option.theme-colors > ul > li.color-brown { - background:#623f18; -} - -.theme-panel > .theme-options > .theme-option.theme-colors > ul > li.color-purple { - background:#701584; -} - -.theme-panel > .theme-options > .theme-option.theme-colors > ul > li.color-white { - background:#fff; -} - -/*** -Top bar menu -***/ - -/* enable arrow for dropdown menu */ -.header.navbar .nav > li > .dropdown-menu:before { - position: absolute; - top: -7px; - right: 9px; - display: inline-block !important; - border-right: 7px solid transparent; - border-bottom: 7px solid #ccc; - border-left: 7px solid transparent; - border-bottom-color: rgba(0, 0, 0, 0.2); - content: ''; -} - -.header.navbar .nav > li > .dropdown-menu:after { - position: absolute; - top: -6px; - right: 10px; - display: inline-block !important; - border-right: 6px solid transparent; - border-bottom: 6px solid #fff; - border-left: 6px solid transparent; - content: ''; -} - -/*** -Mega Menu(new in v1.6) -***/ - -.mega-menu .nav, -.mega-menu .collapse, -.mega-menu .mega-menu-dropup, -.mega-menu .mega-menu-dropdown { - position: static; -} -.mega-menu .container { - position: relative; -} -.mega-menu .mega-menu-dropdown .dropdown-menu { - left: auto; - width: auto; -} -.mega-menu .nav.navbar-right .dropdown-menu { - left: auto; - right: 0; -} -.mega-menu .mega-menu-content { - padding: 10px; - margin: 0; -} -.mega-menu .mega-menu-full .dropdown-menu { - left: 20px; - right: 20px; -} - -.mega-menu-responsive-content { - padding: 10px 15px 10px 60px; -} - -.page-boxed .mega-menu .mega-menu-dropdown .dropdown-menu { - top: 42px; -} - -.page-boxed .mega-menu .mega-menu-dropdown.mega-menu-full .dropdown-menu { - margin: 0; - padding: 0; - left: 18px; - right: 18px; -} - -.mega-menu .mega-menu-submenu { - width: auto !important; - padding: 0px 30px 0px 0px !important; - margin: 0 !important; -} - - - .mega-menu-content .row :last-child>ul{ - border-right: 0 !important; -} - -.mega-menu .mega-menu-submenu li > h3 { - font-size: 14px; - margin-top: 10px; - padding-left: 5px; -} - -.mega-menu .mega-menu-submenu li { - padding: 2px !important; - margin: 0 !important; - list-style: none; -} - -.mega-menu .mega-menu-submenu li > a { - padding: 5px !important; - margin: 0 !important; -} - -/*** -Horezantal Menu(new in v1.2) -***/ - -.header.navbar .hor-menu { - margin: 0; - float: left; -} - -.header.navbar .hor-menu ul.nav li > a { - font-size: 15px; - padding: 11px 10px; -} - -.header.navbar .hor-menu ul.nav li.current .selected, -.header.navbar .hor-menu ul.nav li.active .selected { - left: 50%; - bottom:0; - position: absolute; - border-left: 6px solid transparent; - border-right: 6px solid transparent; - /*border-top: 6px solid #e02222;*/ - display: inline-block; - margin: 0; - width: 0px; - height:0px; - margin-left: -7px; - margin-bottom:-6px; -} - -/*drop-down*/ -.header.navbar .hor-menu .dropdown-menu { - margin-top: 0; - border: none; - box-shadow: none; -} - -.header.navbar .hor-menu .classic-menu-dropdown .dropdown-submenu > .dropdown-menu { - top: 0; -} - -.header.navbar .hor-menu .classic-menu-dropdown .dropdown-submenu > a:after { - top: 8px; - margin-right: 0px; -} - -.header.navbar .hor-menu .classic-menu-dropdown .dropdown-menu li > a { - padding: 7px 18px !important; - margin-bottom:1px; -} - -.header.navbar .hor-menu .classic-menu-dropdown .dropdown-menu .arrow { - display: none; -} - -.header.navbar .hor-menu .classic-menu-dropdown .dropdown-menu li > a:hover, -.header.navbar .hor-menu .classic-menu-dropdown .dropdown-menu li:hover > a, -.header.navbar .hor-menu .classic-menu-dropdown .dropdown-menu li.active > a { - filter:none !important; -} - -.header.navbar .hor-menu .nav > li > .dropdown-menu:after, -.header.navbar .hor-menu .nav > li > .dropdown-menu:before { - border-bottom: none !important; -} - -/*search*/ -.header.navbar .hor-menu .hor-menu-search-form-toggler { - display: inline-block; - padding: 12px 22px 12px 22px !important; - cursor: pointer; - background: url(../image/hor-menu-search.png) no-repeat center; -} - -.header.navbar .hor-menu .hor-menu-search-form-toggler:hover { - opacity: 0.8; - filter: alpha(opacity=80); -} - -.header.navbar .hor-menu a.hor-menu-search-form-toggler-close { - display: none; -} - -.header.navbar .hor-menu .search-form { - margin: 0; - top:42px; - right:0px; - padding:0 4px; - display:none; - z-index:999; - position:absolute; -} - -.header.navbar .hor-menu .search-form .btn { - padding: 7px 20px; - height: 32px; - width: 10px; - display: inline-block; -} - -.header.navbar .hor-menu .search-form .btn:hover { - opacity: 0.8; - filter: alpha(opacity=80); -} - -.header.navbar .hor-menu .search-form form { - margin-bottom: 0; -} - -.header.navbar .hor-menu .search-form form input { - background: none; - width: 200px; - border: none; - margin-top: 6px; -} - -/*** -Top News Blocks(new in v1.2.2) -***/ -.top-news { - color: #fff; - margin: 8px 0; -} - -.top-news a, -.top-news em, -.top-news span { - display: block; - text-align: left; -} - -.top-news a { - padding: 10px; - position: relative; - margin-bottom: 10px; -} - -.top-news a .top-news-icon { - right: 8px; - bottom: 15px; - opacity:0.3; - font-size: 35px; - position: absolute; - filter: alpha(opacity=30); /*For IE8*/ -} - -.top-news em { - margin-bottom: 0; - font-style: normal; -} - -.top-news span { - font-size: 18px; - margin-bottom: 5px; -} - -/*** -Block Images(new in v1.2.2) -***/ -.blog-images { - margin-bottom: 0; -} - -.blog-images li { - padding: 0; - margin: 0; - display: inline; -} - -.blog-images li a:hover { - text-decoration: none; -} - -.blog-images li img { - width: 50px; - height: 50px; - opacity: 0.6; - margin: 0 2px 8px; -} - -.blog-images li img:hover { - opacity: 1; - box-shadow: 0 0 0 4px #72c02c; - transition: all 0.4s ease-in-out 0s; - -moz-transition: all 0.4s ease-in-out 0s; - -webkit-transition: all 0.4s ease-in-out 0s; -} - -/*Sidebar Tags*/ -ul.sidebar-tags a { - color: #555; - font-size:12px; - padding:3px 5px; - background:#f7f7f7; - margin:0 2px 5px 0; - display:inline-block; -} - -ul.sidebar-tags a:hover, -ul.sidebar-tags a:hover i { - background: #EEE; - text-decoration:none; - -webkit-transition:all 0.3s ease-in-out; - -moz-transition:all 0.3s ease-in-out; - -o-transition:all 0.3s ease-in-out; - transition:all 0.3s ease-in-out; -} - -ul.sidebar-tags a i { - color:#777; -} - -ul.sidebar-tags li { - padding: 0; -} - -/*** -Social Icons(new in v1.2.2) -***/ -.social-icons { - padding: 0; - margin:0; -} - -.social-icons:after, -.social-icons:before { - content: ""; - display: table; -} - -.social-icons:after { - clear: both; -} - -.social-icons li { - float:left; - display:inline; - list-style:none; - margin-right:5px; - margin-bottom:5px; - text-indent:-9999px; -} -.social-icons li a, a.social-icon { - width:28px; - height:28px; - display:block; - background-position:0 0; - background-repeat:no-repeat; - transition: all 0.3s ease-in-out; - -o-transition: all 0.3s ease-in-out; - -ms-transition: all 0.3s ease-in-out; - -moz-transition: all 0.3s ease-in-out; - -webkit-transition: all 0.3s ease-in-out; -} -.social-icons li:hover a { - background-position:0 -38px; -} - -.social-icons-color li a { - opacity: 0.7; - background-position:0 -38px !important; -} - -.social-icons-color li a:hover { - opacity: 1; -} - -.social-icons .amazon {background: url(../image/social/amazon.png) no-repeat;} -.social-icons .behance {background: url(../image/social/behance.png) no-repeat;} -.social-icons .blogger {background: url(../image/social/blogger.png) no-repeat;} -.social-icons .deviantart {background: url(../image/social/deviantart.png) no-repeat;} -.social-icons .dribbble {background: url(../image/social/dribbble.png) no-repeat;} -.social-icons .dropbox {background: url(../image/social/dropbox.png) no-repeat;} -.social-icons .evernote {background: url(../image/social/evernote.png) no-repeat;} -.social-icons .facebook {background: url(../image/social/facebook.png) no-repeat;} -.social-icons .forrst {background: url(../image/social/forrst.png) no-repeat;} -.social-icons .github {background: url(../image/social/github.png) no-repeat;} -.social-icons .googleplus {background: url(../image/social/googleplus.png) no-repeat;} -.social-icons .jolicloud {background: url(../image/social/jolicloud.png) no-repeat;} -.social-icons .last-fm {background: url(../image/social/last-fm.png) no-repeat;} -.social-icons .linkedin {background: url(../image/social/linkedin.png) no-repeat;} -.social-icons .picasa {background: url(../image/social/picasa.png) no-repeat;} -.social-icons .pintrest {background: url(../image/social/pintrest.png) no-repeat;} -.social-icons .rss {background: url(../image/social/rss.png) no-repeat;} -.social-icons .skype {background: url(../image/social/skype.png) no-repeat;} -.social-icons .spotify {background: url(../image/social/spotify.png) no-repeat;} -.social-icons .stumbleupon {background: url(../image/social/stumbleupon.png) no-repeat;} -.social-icons .tumblr {background: url(../image/social/tumblr.png) no-repeat;} -.social-icons .twitter {background: url(../image/social/twitter.png) no-repeat;} -.social-icons .vimeo {background: url(../image/social/vimeo.png) no-repeat;} -.social-icons .wordpress {background: url(../image/social/wordpress.png) no-repeat;} -.social-icons .xing {background: url(../image/social/xing.png) no-repeat;} -.social-icons .yahoo {background: url(../image/social/yahoo.png) no-repeat;} -.social-icons .youtube {background: url(../image/social/youtube.png) no-repeat;} -.social-icons .vk {background: url(../image/social/vk.png) no-repeat;} -.social-icons .instagram {background: url(../image/social/instagram.png) no-repeat;} -.social-icons .reddit {background: url(../image/social/reddit.png) no-repeat;} -.social-icons .aboutme {background: url(../image/social/aboutme.png) no-repeat;} -.social-icons .flickr {background: url(../image/social/flickr.png) no-repeat;} -.social-icons .foursquare {background: url(../image/social/foursquare.png) no-repeat;} -.social-icons .gravatar {background: url(../image/social/gravatar.png) no-repeat;} -.social-icons .klout {background: url(../image/social/klout.png) no-repeat;} -.social-icons .myspace {background: url(../image/social/myspace.png) no-repeat;} -.social-icons .quora {background: url(../image/social/quora.png) no-repeat;} - -/*** -Inline Social Icons -***/ - -.social-icon { - display:inline-block !important; - width:28px; - height:28px; - background-position:0 0; - background-repeat:no-repeat; - transition: all 0.3s ease-in-out; - -o-transition: all 0.3s ease-in-out; - -ms-transition: all 0.3s ease-in-out; - -moz-transition: all 0.3s ease-in-out; - -webkit-transition: all 0.3s ease-in-out; -} - -.social-icon.amazon {background: url(../image/social/amazon.png) no-repeat;} -.social-icon.behance {background: url(../image/social/behance.png) no-repeat;} -.social-icon.blogger {background: url(../image/social/blogger.png) no-repeat;} -.social-icon.deviantart {background: url(../image/social/deviantart.png) no-repeat;} -.social-icon.dribbble {background: url(../image/social/dribbble.png) no-repeat;} -.social-icon.dropbox {background: url(../image/social/dropbox.png) no-repeat;} -.social-icon.evernote {background: url(../image/social/evernote.png) no-repeat;} -.social-icon.facebook {background: url(../image/social/facebook.png) no-repeat;} -.social-icon.forrst {background: url(../image/social/forrst.png) no-repeat;} -.social-icon.github {background: url(../image/social/github.png) no-repeat;} -.social-icon.googleplus {background: url(../image/social/googleplus.png) no-repeat;} -.social-icon.jolicloud {background: url(../image/social/jolicloud.png) no-repeat;} -.social-icon.last-fm {background: url(../image/social/last-fm.png) no-repeat;} -.social-icon.linkedin {background: url(../image/social/linkedin.png) no-repeat;} -.social-icon.picasa {background: url(../image/social/picasa.png) no-repeat;} -.social-icon.pintrest {background: url(../image/social/pintrest.png) no-repeat;} -.social-icon.rss {background: url(../image/social/rss.png) no-repeat;} -.social-icon.skype {background: url(../image/social/skype.png) no-repeat;} -.social-icon.spotify {background: url(../image/social/spotify.png) no-repeat;} -.social-icon.stumbleupon {background: url(../image/social/stumbleupon.png) no-repeat;} -.social-icon.tumblr {background: url(../image/social/tumblr.png) no-repeat;} -.social-icon.twitter {background: url(../image/social/twitter.png) no-repeat;} -.social-icon.vimeo {background: url(../image/social/vimeo.png) no-repeat;} -.social-icon.wordpress {background: url(../image/social/wordpress.png) no-repeat;} -.social-icon.xing {background: url(../image/social/xing.png) no-repeat;} -.social-icon.yahoo {background: url(../image/social/yahoo.png) no-repeat;} -.social-icon.youtube {background: url(../image/social/youtube.png) no-repeat;} -.social-icon.vk {background: url(../image/social/vk.png) no-repeat;} -.social-icon.instagram {background: url(../image/social/instagram.png) no-repeat;} -.social-icon.reddit {background: url(../image/social/reddit.png) no-repeat;} -.social-icon.aboutme {background: url(../image/social/aboutme.png) no-repeat;} -.social-icon.flickr {background: url(../image/social/flickr.png) no-repeat;} -.social-icon.foursquare {background: url(../image/social/foursquare.png) no-repeat;} -.social-icon.gravatar {background: url(../image/social/gravatar.png) no-repeat;} -.social-icon.klout {background: url(../image/social/klout.png) no-repeat;} -.social-icon.myspace {background: url(../image/social/myspace.png) no-repeat;} -.social-icon.quora {background: url(../image/social/quora.png) no-repeat;} - -.social-icon:hover { - background-position:0 -38px; -} - -.social-icon-color { - opacity: 0.7; - background-position:0 -38px !important; -} - -.social-icon-color:hover { - opacity: 1; -} - -/*** -Notes -***/ - -/* Common styles for all types */ -.note { - margin: 0 0 20px 0; - padding: 15px 30px 15px 15px; - border-left: 5px solid #eee; -} - -.note h1, -.note h2, -.note h3, -.note h4 { - margin-top: 0; -} - -.note p:last-child { - margin-bottom: 0; -} -.note code, -.note .highlight { - background-color: #fff; -} - -/* Variations */ -.note-danger { - background-color: #FAEAE6; - border-color: #ed4e2a; -} - -.note-warning { - background-color: #FCF3E1; - border-color: #fcb322; -} - -.note-info { - background-color: #E8F6FC; - border-color: #57b5e3; -} - -.note-success { - background-color: #EBFCEE; - border-color: #3cc051; -} - -/*** -Demo Utils -***/ -.scrollspy-example { - position: relative; - height: 200px; - margin-top: 10px; - overflow: auto; -} - -.util-btn-margin-bottom-5 .btn { - margin-bottom: 5px !important; -} - -.util-btn-group-margin-bottom-5 .btn-group { - margin-bottom: 5px !important; -} - -.fontawesome-demo i { - font-size: 18px; -} - -.fontawesome-demo li { - padding-top: 5px; - padding-bottom: 5px; -} - -.glyphicons-demo ul { - padding-left: 0; - padding-bottom: 1px; - margin-bottom: 20px; - list-style: none; - overflow: hidden; -} - -.bs-glyphicons { - padding-left: 0; - padding-bottom: 1px; - margin-bottom: 20px; - list-style: none; - overflow: hidden; -} -.glyphicons-demo ul li { - float: left; - width: 25%; - height: 115px; - padding: 10px; - margin: 0 -1px -1px 0; - font-size: 12px; - line-height: 1.4; - text-align: center; - border: 1px solid #ddd; -} - -.glyphicons-demo .glyphicon { - display: block; - margin: 5px auto 10px; - font-size: 24px; -} -.glyphicons-demo ul li:hover { - background-color: rgba(86,61,124,.1); -} - -@media (min-width: 768px) { - .glyphicons-demo ul li { - width: 12.5%; - } -} - -/*** -Forms -****/ - -.static-info { - margin-bottom: 10px; -} - -.static-info .name { - font-size: 14px; -} - -.static-info .value { - font-size: 14px; - font-weight: 600; -} - -.static-info.align-reverse .name, -.static-info.align-reverse .value { - text-align: right; -} - -input.placeholder, -textarea.placeholder { - color: #aaa !important; -} - -.help-block { - margin-top: 5px; - margin-bottom: 5px; -} - -.form-inline input { - margin-bottom: 0px !important; -} - -.control-label { - margin-top: 2px; -} - -.form-control-static { - font-size: 14px; - padding-top: 7px; -} - -.control-label .required { - color: #e02222; - font-size: 12px; - padding-left: 2px; -} - -.switch-wrapper { - display: inline-block; -} - -.form { - padding: 0 !important; -} - -.form-body { - padding: 10px; -} - -.form-actions { - padding: 20px 10px; - margin-top: 20px; -/* background-color: #f5f5f5; - border-top: 1px solid #e5e5e5;*/ - *zoom: 1; -} - -.form-actions.nobg { - background-color: transparent; -} - -.form-actions.top { - margin-top: 0; - margin-bottom: 20px; - border-top: 0; - border-bottom: 1px solid #e5e5e5; -} - -.form-actions.fluid { - padding: 20px 0; -} - -.form-actions.fluid > [class^="col-"] { - padding-left: 13px; -} - -.form-actions:before, -.form-actions:after { - display: table; - line-height: 0; - content: ""; -} - -.form-actions:after { - clear: both; -} - -.form-section { - margin: 30px 0px 25px 0px; - padding-bottom: 5px; - border-bottom: 1px solid #eee; -} - -.form .form-section:first-child { - margin-top: 5px; -} - -.help-inline { - font-size: 13px; - color: #737373; - display: inline-block; - padding: 5px; -} - -/* left, right aligned form actions */ -.form-actions.right { - padding-left: 0; - padding-right: 10px; - text-align: right; -} - -.form-actions.left { - padding-left: 10px; - padding-right: 0; - text-align: left; -} - -/* Checkboxes */ -.form-group .checkbox { - padding-left: 0; -} - -.checkbox-list > label { - display: block; -} - -.checkbox-list > label.checkbox-inline { - display: inline-block; -} - -.checkbox-list > label.checkbox-inline:first-child { - padding-left: 0; -} - -/* Radios */ - -.radio-list > label { - display: block; -} - -.radio-list > label.radio-inline { - display: inline-block; -} - -.radio-list > label.radio-inline:first-child { - padding-left: 0; -} - -.form-horizontal .radio-list .radio { - padding-top: 1px; -} - -.form-horizontal .radio-list > label { - margin-bottom: 0; -} - -.form-horizontal .radio > span { - margin-top: 2px; -} - -/* Rows seperated form layout */ -.form-row-seperated .form-group { - margin: 0; - border-bottom: 1px solid #efefef; - padding: 10px 0px 10px 0px; -} - -.form-row-seperated .form-group.last { - border-bottom: 0; - margin-bottom: 0; - padding-bottom: 10px; -} - -.form-row-seperated .form-actions { - margin-top: 0; -} - -.form-row-seperated .form-body { - padding: 0; - margin-top: 0; -} - -.form-row-seperated .help-block { - margin-bottom: 0; -} - -/* form bordered */ -.form-bordered .form-body { - margin: 0; - padding: 0; -} - -.form-bordered .form-actions { - margin-top: 0; -} - -.form-bordered .form-group { - margin: 0; - border-bottom: 1px solid #efefef; -} - -.form-bordered .form-group.last { - border-bottom: 0; -} - -.form-bordered .help-block { - margin-bottom: 0; -} - -.form-bordered .control-label { - padding-top: 16px; -} - -.form-bordered .form-group > div { - padding: 10px; - border-left: 1px solid #efefef; -} - -.form-bordered .form-actions.fluid > .row > div { - padding-left: 10px; -} - -.form-horizontal.form-bordered.form-row-stripped .form-group:nth-child(even) { - background-color: #fcfcfc; -} - -.form-horizontal.form-bordered.form-label-stripped .form-group:nth-child(even) { - background-color: #fcfcfc; -} - -.form-horizontal.form-bordered.form-row-stripped .form-control { - background: #fff !important; -} - -.form-horizontal.form-bordered.form-label-stripped .form-group:nth-child(even) > div { - background-color: #ffffff; -} - -/*** -Bordered form layout -***/ - -.form-bordered .form-control { - margin: 0; -} - - -/*** -Disabled Menu Link -***/ - -.disabled-link > a > span.text, -.disabled-link > a > span.title { - font-style: italic !important; - color: #888 !important; -} - -.disabled-link > a:hover { - cursor: not-allowed !important; -} - - -/*** -Responsive & Scrollable Tables -***/ - -.table-scrollable { - width: 100%; - overflow-x: auto; - overflow-y: hidden; - border: 1px solid #dddddd; - margin: 10px 0 !important; -} - -.table-scrollable > .table { - width: 100% !important; - margin: 0 !important; - margin-bottom: 0; - background-color: #fff; -} - -.table-scrollable > .table > thead > tr > th, -.table-scrollable > .table > tbody > tr > th, -.table-scrollable > .table > tfoot > tr > th, -.table-scrollable > .table > thead > tr > td, -.table-scrollable > .table > tbody > tr > td, -.table-scrollable > .table > tfoot > tr > td { - white-space: nowrap; -} - -.table-scrollable > .table-bordered { - border: 0; -} - -.table-scrollable > .table-bordered > thead > tr > th:first-child, -.table-scrollable > .table-bordered > tbody > tr > th:first-child, -.table-scrollable > .table-bordered > tfoot > tr > th:first-child, -.table-scrollable > .table-bordered > thead > tr > td:first-child, -.table-scrollable > .table-bordered > tbody > tr > td:first-child, -.table-scrollable > .table-bordered > tfoot > tr > td:first-child { - border-left: 0; -} - -.table-scrollable > .table-bordered > thead > tr > th:last-child, -.table-scrollable > .table-bordered > tbody > tr > th:last-child, -.table-scrollable > .table-bordered > tfoot > tr > th:last-child, -.table-scrollable > .table-bordered > thead > tr > td:last-child, -.table-scrollable > .table-bordered > tbody > tr > td:last-child, -.table-scrollable > .table-bordered > tfoot > tr > td:last-child { - border-right: 0; -} - -.table-scrollable > .table-bordered > thead > tr:last-child > th, -.table-scrollable > .table-bordered > tbody > tr:last-child > th, -.table-scrollable > .table-bordered > tfoot > tr:last-child > th, -.table-scrollable > .table-bordered > thead > tr:last-child > td, -.table-scrollable > .table-bordered > tbody > tr:last-child > td, -.table-scrollable > .table-bordered > tfoot > tr:last-child > td { - border-bottom: 0; -} - -/*** -Responsive Flip Scroll Tables -***/ - -.flip-scroll table { width: 100%; } - -@media only screen and (max-width: 768px) { - - .flip-scroll .flip-content:after { visibility: hidden; display: block; font-size: 0; content: " "; clear: both; height: 0; } - .flip-scroll * html .flip-content { zoom: 1; } - .flip-scroll *:first-child+html .flip-content { zoom: 1; } - - .flip-scroll table { width: 100%; border-collapse: collapse; border-spacing: 0; } - - .flip-scroll th, - .flip-scroll td { margin: 0; vertical-align: top; } - .flip-scroll th { - text-align: left; - border: 0 !important; - border-bottom: 1px solid #ddd !important; - border-right: 1px solid #ddd !important; - font-size: 13px !important; - padding: 5px; - width: auto !important; - } - - .flip-scroll table { display: block; position: relative; width: 100%; } - .flip-scroll thead { - display: block; - float: left; - } - .flip-scroll tbody { - display: block; - width: auto; - position: relative; - overflow-x: auto; - white-space: nowrap; - } - .flip-scroll thead tr { display: block; } - .flip-scroll th { display: block; text-align: right; } - .flip-scroll tbody tr { display: inline-block; vertical-align: top; margin-left: -5px; } - .flip-scroll td { display: block; min-height: 1.25em; text-align: left; border-top: 0 !important; border-left: 0 !important; border-right: 0 !important} - - /* sort out borders */ - - .flip-scroll th { border-bottom: 0; border-left: 0; } - .flip-scroll td { border-left: 0; border-right: 0; border-bottom: 0; } - .flip-scroll tbody tr { border-left: 1px solid #ddd; } - .flip-scroll th:last-child, - .flip-scroll td:last-child { border-bottom: 1px solid #ddd; } - -} - -/*** -UI Loading -***/ - -.loading-message { - display: inline-block; - min-width: 125px; - padding: 10px; - margin: 0 auto; - color: #000 !important; - font-size: 13px; - font-weight: 400; - text-align: center; - vertical-align: middle; -} - -.loading-message span { - line-height:20px; - vertical-align: middle; -} - -.loading-message.loading-message-boxed { - border: 1px solid #ddd; - background-color: #eee; - -webkit-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); - -moz-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); - box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); -} - -.page-loading { - position: fixed; - top: 50%; - left: 50%; - min-width: 125px; - margin-left: -50px; - margin-top: -30px; - padding: 7px; - text-align: center; - color: #333; - font-size: 13px; - border: 1px solid #ddd; - background-color: #eee; - vertical-align: middle; - -webkit-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); - -moz-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); - box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); -} - -.page-loading span { - line-height:20px; - vertical-align: middle; -} - -.zteDivWidth -{ - width:auto !important -} - - - -.nav-load-error {} - -.nav-pos-option {} - -/*TAB*/ -.nav-tabs{ -border:0; -} -.nav-tabs>li.active>a, .nav-tabs>li.active>a:hover, .nav-tabs>li.active>a:focus{ -border:0; -border-top:3px solid #F3565D; -} -.nav-tabs>li>a{ -border-radius:0; -} -.nav-tabs>li>a:hover{ -background-color:#f1f3fa; -border:1Px solid #f1f3fa; -} -/*button*/ -.btn{ -min-width: 80px; -letter-spacing:1px; -} -.btnGroup .btn{ -margin-left:15px; -margin-right:15px; -} -.pagination-panel .btn{ -min-width: 4px; } -/*radius*/ -.radius_l{ -border-radius: 20px; -} -.radius_m{ -border-radius: 8px; -} -.radius_s{ -border-radius: 3px; -} -/*common color*/ -.blue1 { - background-color:#5b9bd1; - color:#fff; -} -.blue1:hover{ - background-color:#487ca9; - color:#fff; -} -.blue2{ - background-color:#57b5e3; - color:#fff; -} -.blue2:hover{ - background-color:#43a1cf; - color:#fff; -} -.red{ - background-color:#E35B5A; - color:#fff; -} -.red:hover{ - background-color:#ad9a4d; - color:#fff; -} -.green{ - background-color:#44B6AE; -} -.green:hover{ - background-color:#329d96; -} -.yellow{ - background-color:#C0AF69; - color:#fff; -} -.yellow:hover{ - background-color:#d45150; - color:#fff; -} -.grey{ - background-color:#e5e5e5; - color:#333; -} -.grey:hover{ - background-color:#d8d8d8; - color:#333; -} -/*Progress Bars*/ -.progress { - border: 0; - background-image: none !important; - filter: none !important; - -webkit-box-shadow: none !important; - -moz-box-shadow: none !important; - box-shadow: none !important; - -} -.form-wizard .steps > li.active > a.step .number{ -background-color:#45B6AF -} -.progress > .progress-bar-success{ -background-color:#45B6AF -} -/*label*/ -label{ -font-weight:400; -margin-bottom:15px; -} -/**/ -.input-group-btn-vertical.fa{ -font-size:12px; -} -.spinner { - width: 60px; - margin-left:10px; - margin-right:30px; -} -.spinner input { - text-align: right; -} -.input-group-btn-vertical { - position: relative; - white-space: nowrap; - width: 1%; - vertical-align: middle; - display: table-cell; -} -.input-group-btn-vertical > .btn { - display: block; - float: none; - width: 100%; - max-width: 100%; - padding: 6px; - margin-left: -1px; - position: relative; - border-radius: 0; -} -.input-group-btn-vertical > .btn{ - min-width:20px; -} -.input-group-btn-vertical > .btn:first-child { - border-top-right-radius: 4px; -} -.input-group-btn-vertical > .btn:last-child { - margin-top: -2px; - border-bottom-right-radius: 4px; -} -.input-group-btn-vertical i{ - position: absolute; - top: -2px; - left: 5px; -} -.input-group .form-control{ -height:26px !important; -} - -.about{ - height:345px; - width:528px; -} - -.aboutmain{ - background-image: url("../image/about/about-bg-light.png"); -} - -.aboutinfo{ - background-image: url("../image/about/about-bg-dark.png"); -} - -.about a{ - color: white; - - margin-left:15px; - text-decoration: none; -} - -.about a.about_close{ - float:right; - margin-right:20px; - font-size: 1.2em; -} - -.about div{ - padding-top:7px; - -} - -.about div.info{ - float: right; - margin-right: 15px; - margin-top: 130px; - color: white; - font-size: 13px; -} - -.about div.info div{ - margin-left:15px; -} - -.about div.info img{ - margin-right: 55px; -} - -.aboutDlg{ - width: 530px; - margin-left:150px; -} - -.aboutDlg .dataTable{ - background-color: white; - -} - -.aboutDlg table.dataTable .heading>th.sorting_disabled { - background-color: white !important; -} - -.aboutDlg #abouttable_wrapper{ - height:285px; - background-color: white; - padding:0px; - overflow:auto; -} - -.aboutDlg td , .aboutDlg .table thead tr th{ - font-size:13px; - font-weight:100; -} - -.aboutDlg{ - font-family:microsoft yahei,Arial; - letter-spacing:1px; -} - -.aboutDlg tr { - height:37px; -} \ No newline at end of file diff --git a/portal-common/src/main/webapp/common/css/themes/black.css b/portal-common/src/main/webapp/common/css/themes/black.css deleted file mode 100644 index 031fcb74..00000000 --- a/portal-common/src/main/webapp/common/css/themes/black.css +++ /dev/null @@ -1,388 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*** -Default theme -***/ - -/*** -Reset and overrides -***/ -body { - background-color: #3d3d3d !important; -} -/*** -Page header -***/ -.header { - filter: none !important; - background-image: none !important; - background-color: #212121 !important; -} -.header .btn-navbar { - background-color: #212121 !important; -} -.header .navbar-nav .dropdown-toggle:hover, -.header .navbar-nav .dropdown.open .dropdown-toggle { - background-color: #383838 !important; -} -.header .navbar-nav li.dropdown .dropdown-toggle i { - color: #8a8a8a !important; -} -.page-content .page-breadcrumb.breadcrumb{ -background-color:#F5F5F5 !important; -} -/*** -Header Search -***/ -.header .search-form { - background-color: #000; -} - -.header .search-form .form-control { - color: #999; - border: 0; - background-color: #000; -} - -.header .search-form .form-control::-webkit-input-placeholder { /* WebKit browsers */ - color: #777; -} -.header .search-form .form-control:-moz-placeholder { /* Mozilla Firefox 4 to 18 */ - color: #777; -} -.header .search-form .form-control::-moz-placeholder { /* Mozilla Firefox 19+ */ - color: #777; -} -.header .search-form .form-control:-ms-input-placeholder { /* Internet Explorer 10+ */ - color: #777; -} - -.header .search-form .submit { - background: url(../../image/search-icon-light.png); -} - -/*** -Hor menu -***/ -.header .hor-menu ul.nav li a { - color: #999; -} - -.header .hor-menu ul.nav li.open > a, -.header .hor-menu ul.nav li > a:hover, -.header .hor-menu ul.nav li > a:focus { - color: #fff; - background: #383838; -} - -.header .hor-menu .dropdown-menu li:hover > a, -.header .hor-menu ul.nav li.active > a, -.header .hor-menu ul.nav li.active > a:hover { - color: #fff; - background: #e02222 !important; -} - -.header .hor-menu ul.nav li.current > a, -.header .hor-menu ul.nav li.current > a:hover { - color: #fff; - background: #e02222 !important; -} - -.header .hor-menu .dropdown-menu { - background: #383838; -} -.header .hor-menu .dropdown-menu li > a { - color: #999; -} - -.header .hor-menu .hor-menu-search-form-toggler.off { - background: #383838 url(../../image/hor-menu-search-close.png) no-repeat center; -} - -.header .hor-menu .search-form { - background:#383838; -} - -.header .hor-menu .search-form form input { - color: #999; -} - -.header .hor-menu .search-form .btn { - color: #999; - background: url(../../image/search-icon.png) no-repeat center; -} - -.header .hor-menu .search-form form input::-webkit-input-placeholder { /* WebKit browsers */ - color: #999; -} -.header .hor-menu .search-form form input:-moz-placeholder { /* Mozilla Firefox 4 to 18 */ - color: #999; -} -.header .hor-menu .search-form form input::-moz-placeholder { /* Mozilla Firefox 19+ */ - color: #999; -} -.header .hor-menu .search-form form input:-ms-input-placeholder { /* Internet Explorer 10+ */ - color: #999; -} -.btn-group .btn.blue.dropdown-toggle{ - background-color: #3d3d3d !important; - color: #fff !important; -} -/*** -Mega Menu -***/ -.mega-menu .mega-menu-submenu { - border-right: 1px solid #444; -} -.mega-menu .mega-menu-submenu li h3 { - color: #fff; -} -/*** -Page sidebar -***/ -.page-sidebar { - background-color: #3d3d3d; -} -ul.page-sidebar-menu > li > a { - border-top: 1px solid #5c5c5c !important; - color: #ffffff !important; -} -ul.page-sidebar-menu > li:last-child > a { - border-bottom: 1px solid transparent !important; -} -ul.page-sidebar-menu > li a i { - color: #969696; -} -ul.page-sidebar-menu > li.open > a, -ul.page-sidebar-menu > li > a:hover, -ul.page-sidebar-menu > li:hover > a { - background: #303030; -} -ul.page-sidebar-menu > li.active > a { - background: #e02222 !important; - border-top-color: transparent !important; - color: #ffffff; -} -ul.page-sidebar-menu > li.active > a i { - color: #ffffff; -} -ul.page-sidebar-menu > li > ul.sub-menu > li:first-child > a { - border-top: 0px !important; -} -ul.page-sidebar-menu > li > ul.sub-menu > li.active > a, -ul.page-sidebar-menu > li > ul.sub-menu > li > a:hover { - color: #ffffff !important; - background: #575757 !important; -} -ul.page-sidebar-menu > li > ul.sub-menu > li > a:hover { - background: #575757 !important; -} -/* 3rd level sub menu */ -ul.page-sidebar-menu > li > ul.sub-menu li > ul.sub-menu > li.active > a, -ul.page-sidebar-menu > li > ul.sub-menu li > ul.sub-menu > li > a:hover, -ul.page-sidebar-menu > li > ul.sub-menu li.open > a { - color: #ffffff !important; - background: #575757 !important; -} -/* font color for all sub menu links*/ -ul.page-sidebar-menu li > ul.sub-menu > li > a { - color: #bdbdbd; -} -/* menu arrows */ -ul.page-sidebar-menu > li > a .arrow:before, -ul.page-sidebar-menu > li > a .arrow.open:before { - color: #7d7d7d !important; -} -ul.page-sidebar-menu > li > ul.sub-menu a .arrow:before, -ul.page-sidebar-menu > li > ul.sub-menu a .arrow.open:before { - color: #707070 !important; -} -ul.page-sidebar-menu > li > a > .arrow.open:before { - color: #8a8a8a !important; -} -ul.page-sidebar-menu > li.active > a .arrow:before, -ul.page-sidebar-menu > li.active > a .arrow.open:before { - color: #ffffff !important; -} -/* sidebar search */ -.page-sidebar .sidebar-search input { - background-color: #242424 !important; - color: #7d7d7d; -} -.page-sidebar .sidebar-search input::-webkit-input-placeholder { - color: #7d7d7d !important; -} -.page-sidebar .sidebar-search input:-moz-placeholder { - color: #7d7d7d !important; -} -.page-sidebar .sidebar-search input:-ms-input-placeholder { - color: #7d7d7d !important; -} -.page-sidebar .sidebar-search input { - background-color: #3d3d3d !important; - color: #bfbfbf !important; -} -.page-sidebar .sidebar-search .input-box { - border-bottom: 1px solid #7d7d7d !important; -} -.page-sidebar .sidebar-search .submit { - background-image: url(../../image/search-icon.png); -} -/*** -Sidebar toggler -***/ -.sidebar-toggler { - background-image: url(../../image/sidebar-toggler.jpg); - background-color: #242424; -} -/* search box bg color on expanded */ -.page-sidebar-closed .page-sidebar .sidebar-search.open .form-container { - background-color: #3d3d3d !important; -} -.page-sidebar-closed .page-sidebar .sidebar-search.open .form-container .remove { - background-image: url("../../image/sidebar-search-close.png"); -} -/* sub menu bg color on hover menu item */ -.page-sidebar-closed ul.page-sidebar-menu > li:hover .sub-menu { - background-color: #3d3d3d; -} -/*** -Footer -***/ -.footer .footer-inner { - color: #999999; -} -.footer .footer-tools .go-top { - background-color: #4f4f4f; -} -.footer .footer-tools .go-top:hover { - opacity: 0.7; - filter: alpha(opacity=70); -} -.footer .footer-tools .go-top i { - color: #8a8a8a; -} -/*** -Footer Layouts (new in v1.3) -***/ -/* begin:fixed footer */ -.page-footer-fixed .footer { - background-color: #242424; -} -.page-footer-fixed .footer .footer-inner { - color: #999999; -} -.page-footer-fixed .footer .footer-tools .go-top { - background-color: #4f4f4f; -} -.page-footer-fixed .footer .footer-tools .go-top i { - color: #8a8a8a; -} -/* end:fixed footer */ -/*** -Gritter Notifications -***/ -.gritter-top { - background: url(../../thirdparty/gritter/images/gritter.png) no-repeat left -30px !important; -} -.gritter-bottom { - background: url(../../thirdparty/gritter/images/gritter.png) no-repeat left bottom !important; -} -.gritter-item { - display: block; - background: url(../../thirdparty/gritter/images/gritter.png) no-repeat left -40px !important; -} -.gritter-close { - background: url(../../thirdparty/gritter/images/gritter.png) no-repeat left top !important; -} -.gritter-title { - text-shadow: none !important; - /* Not supported by IE :( */ - -} -/* for the light (white) version of the gritter notice */ -.gritter-light .gritter-item, -.gritter-light .gritter-bottom, -.gritter-light .gritter-top, -.gritter-light .gritter-close { - background-image: url(../../thirdparty/gritter/images/gritter-light.png) !important; -} -.gritter-item-wrapper a { - color: #18a5ed; -} -.gritter-item-wrapper a:hover { - color: #0b6694; -} -/* begin: boxed page */ -@media (min-width: 992px) { - .page-boxed { - background-color: #2e2e2e !important; - } - .page-boxed .page-container { - background-color: #3d3d3d; - border-left: 1px solid #5e5e5e; - border-bottom: 1px solid #5e5e5e; - } - .page-boxed.page-sidebar-reversed .page-container { - border-left: 0; - border-right: 1px solid #5e5e5e; - } - .page-boxed.page-sidebar-fixed .page-container { - border-left: 0; - border-bottom: 0; - } - .page-boxed.page-sidebar-reversed.page-sidebar-fixed .page-container { - border-left: 0; - border-right: 0; - border-bottom: 0; - } - .page-boxed.page-sidebar-fixed .page-sidebar { - border-left: 1px solid #5e5e5e; - } - .page-boxed.page-sidebar-reversed.page-sidebar-fixed .page-sidebar { - border-right: 1px solid #5e5e5e; - border-left: 0; - } - .page-boxed.page-sidebar-fixed.page-footer-fixed .footer { - background-color: #2e2e2e !important; - } -} -/* end: boxed page */ -/*** -Landscape phone to portrait tablet -***/ -@media (max-width: 991px) { - /*** - page sidebar - ***/ - .page-sidebar { - background-color: #292929 !important; - } - ul.page-sidebar-menu > li > a { - border-top: 1px solid #4a4a4a !important; - } - ul.page-sidebar-menu > li:last-child > a { - border-bottom: 0 !important; - } - .page-sidebar .sidebar-search input { - background-color: #292929 !important; - } - ul.page-sidebar-menu > li.open > a, - ul.page-sidebar-menu > li > a:hover, - ul.page-sidebar-menu > li:hover > a { - background: #1e1e1e; - } -} diff --git a/portal-common/src/main/webapp/common/css/themes/black_ifrm.css b/portal-common/src/main/webapp/common/css/themes/black_ifrm.css deleted file mode 100644 index b3d684c6..00000000 --- a/portal-common/src/main/webapp/common/css/themes/black_ifrm.css +++ /dev/null @@ -1,207 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*** -light_ifrm theme -***/ -td>a>span[class^="ict-"], td>a>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>div>span[class^="ict-"], td>div>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>div>span>span[class^="ict-"], td>div>span>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>span>span[class^="ict-"], td>span>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -/* button style*/ -.buttonRounded, -.buttonRoundedOver, -.buttonRoundedFocused, -.buttonRoundedFocusedOver, -.buttonRoundedDown, -.buttonRoundedFocusedDown, -.buttonRoundedSelected, -.buttonRoundedSelectedFocused, -.buttonRoundedSelectedDown, -.buttonRoundedSelectedFocusedDown, -.buttonRoundedSelectedOver, -.buttonRoundedSelectedFocusedOver, -.buttonRoundedDisabled, -.buttonRoundedSelectedDisabled { - background-color: #3d3d3d; - color: #fff; - border: 0px solid #b15a59; - border-radius: 0px; - font-family: Arial, Verdana, sans-serif; - font-size: 12px; - /*padding: 0 3px;*/ - padding-left:7px !important; - padding-right:7px !important; - height:30px !important; -} -.buttonRoundedDisabled, .buttonRoundedSelectedDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} -.buttonRoundedOver, -.buttonRoundedFocusedOver, -.buttonRoundedSelectedFocused, -.buttonRoundedSelectedFocusedOver, -.buttonRoundedDown, -.buttonRoundedFocusedDown { - background-color: #212121; - height:30px !important; -} - -.menuButton, -.menuButtonOver, -.menuButtonDown, -.menuButtonDisabled, -.menuButtonFocused, -.menuButtonFocusedDown, -.menuButtonFocusedOver, -.menuButtonSelected, -.menuButtonSelectedDown, -.menuButtonSelectedOver, -.menuButtonSelectedDisabled { - background-color: #3d3d3d; - border: 0px solid #ababab; - color: #fff; - font-family: Arial, Verdana, sans-serif; - font-size: 12px; - padding-left: 7px !important; - padding-right: 7px !important; - height:30px !important; -} -.menuButtonOver { - background-color: #212121; - } -.menuButtonDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} -.buttonTitle, -.buttonTitleOver, -.buttonTitleDown, -.buttonTitleSelected, -.buttonTitleFocused, -.buttonTitleSelectedFocused, -.buttonTitleSelectedOver, -.buttonTitleFocusedOver, -.buttonTitleSelectedFocusedOver, -.buttonTitleSelectedDown, -.buttonTitleFocusedDown, -.buttonTitleSelectedFocusedDown, -.buttonTitleDisabled, -.buttonTitleSelectedDisabled { - color: #fff ; - } -.buttonTitleDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} - /* windowBody dialogBody Style */ - .windowBody, -.dialogBody { - background-color: white; - border: 1px solid #d1d1d1; - border-top: 0; -} -.windowHeader, -.dialogHeader { - background-color: #3d3d3d; - padding: 0; -} -/* sectionHeader Style */ -.sectionHeaderopened { - background-color: #3d3d3d; - } - .sectionHeaderclosed { - background-color: #262626; - } - -#dt_example h1{ -color:#3d3d3d; -font-weight:600 !important; -} - - /*cell style*/ -.tallCellOver, -.tallCellOverDark { - background-color: #ffede4; - border-bottom: 1px solid #ffede4; - border-top: 1px solid #ffede4; - } -.tallCellSelected, -.tallCellSelectedDark { - background: #f8dddd; - border-bottom: 1px solid #f8dddd; - border-top: 1px solid #f8dddd; - } -.tallCellSelectedOver, -.tallCellSelectedOverDark { - background: #f8dddd; - border-bottom: 1px solid #f8dddd; - border-top: 1px solid #f8dddd; - } -.imgHeaderButtonOver, -.imgHeaderButtonDown, -.headerButtonOver, -.headerButtonDown, -.sorterButtonOver, -.sorterButtonDown { - background-color: #c4d7e2; - } - .cellSelected, -.cellSelectedDark, -.specialColSelected, -.recordSummaryCellSelected, -.recordSummaryCellSelectedDark { - background: #f8dddd !important; - border-bottom: 1px solid #f8dddd; - border-top: 1px solid #f8dddd; - } -.cellSelectedOver, -.cellSelectedOverDark, -.specialColSelectedOver, -.recordSummaryCellSelectedOver, -.recordSummaryCellSelectedOverDark { - background: #f8dddd !important; - border-bottom: 1px solid #f8dddd; - border-top: 1px solid #f8dddd; -} -.cellOver, -.cellOverDark, -.specialColOver, -.recordSummaryCellOver, -.recordSummaryCellOverDark { - background: #ffede4 !important; - border-bottom: 1px solid #ffede4; - border-top: 1px solid #ffede4; - } -.treeCellOver, -.treeCellOverDark { - background-color: #ffede4; -} diff --git a/portal-common/src/main/webapp/common/css/themes/blue.css b/portal-common/src/main/webapp/common/css/themes/blue.css deleted file mode 100644 index 296a9db0..00000000 --- a/portal-common/src/main/webapp/common/css/themes/blue.css +++ /dev/null @@ -1,374 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*** -Blue theme -***/ -/*** -Reset and overrides -***/ -body { - background-color: #1570a6 !important; -} -/*** -Page header -***/ -.header { - filter: none !important; - background-image: none !important; - background-color: #0f4e74 !important; -} -.header .btn-navbar { - background-color: #0f4e74 !important; -} -.header .navbar-nav .dropdown-toggle:hover, -.header .navbar-nav .dropdown.open .dropdown-toggle { - color: #fff; - background-color: #146a9d !important; -} -.header .navbar-nav li.dropdown .dropdown-toggle i { - color: #68bbec !important; -} -.page-content .page-breadcrumb.breadcrumb{ -background-color:#F5F5F5 !important; -} -/*** -Header Search -***/ -.header .search-form { - background-color: #0B4263; -} - -.header .search-form .form-control{ - color: #68bbec; - border: 0; - background-color: #0B4263; -} - -.header .search-form .submit { - background: url(../../image/search-icon-blue.png); -} - -/*** -Hor menu -***/ -.header .hor-menu ul.nav li a { - color: #ccc; -} - -.header .hor-menu ul.nav li.open > a, -.header .hor-menu ul.nav li > a:hover, -.header .hor-menu ul.nav li > a:focus { - color: #fff; - background: #146a9d; -} - -.header .hor-menu .dropdown-menu li:hover > a, -.header .hor-menu ul.nav li.active > a, -.header .hor-menu ul.nav li.active > a:hover { - color: #fff; - background: #e02222 !important; -} - -.header .hor-menu ul.nav li.current > a, -.header .hor-menu ul.nav li.current > a:hover { - color: #fff; - background: #e02222 !important; -} - -.header .hor-menu .dropdown-menu { - background: #146a9d; -} -.header .hor-menu .dropdown-menu li > a { - color: #ccc; -} - -.header .hor-menu .hor-menu-search-form-toggler.off { - background: #146a9d url(../../image/hor-menu-search-close-white.png) no-repeat center; -} - -.header .hor-menu .search-form { - background:#146a9d; -} - -.header .hor-menu .search-form form input { - color: #ccc; -} - -.header .hor-menu .search-form .btn { - color: #ccc; - background: url(../../image/search-icon-white.png) no-repeat center; -} - -.header .hor-menu .search-form form input::-webkit-input-placeholder { /* WebKit browsers */ - color: #ccc; -} -.header .hor-menu .search-form form input:-moz-placeholder { /* Mozilla Firefox 4 to 18 */ - color: #ccc; -} -.header .hor-menu .search-form form input::-moz-placeholder { /* Mozilla Firefox 19+ */ - color: #ccc; -} -.header .hor-menu .search-form form input:-ms-input-placeholder { /* Internet Explorer 10+ */ - color: #ccc; -} - -/*** -Mega Menu -***/ -.mega-menu .mega-menu-submenu { - border-right: 1px solid #1876AD; -} - -.mega-menu .mega-menu-submenu li h3 { - color: #fff; -} - -/*** -Page sidebar -***/ -.page-sidebar { - background-color: #1570a6; -} -ul.page-sidebar-menu > li > a { - border-top: 1px solid #1c95dc !important; - color: #ffffff !important; -} -ul.page-sidebar-menu > li:last-child > a { - border-bottom: 1px solid transparent !important; -} -ul.page-sidebar-menu > li a i { - color: #7fc5ef; -} -ul.page-sidebar-menu > li.open > a, -ul.page-sidebar-menu > li > a:hover, -ul.page-sidebar-menu > li:hover > a { - background: #12618f; -} -ul.page-sidebar-menu > li.active > a { - background: #cc1d1d !important; - border-top-color: transparent !important; - color: #ffffff; -} -ul.page-sidebar-menu > li.active > a i { - color: #ffffff; -} -ul.page-sidebar-menu > li > ul.sub-menu > li:first-child > a { - border-top: 0px !important; -} -ul.page-sidebar-menu > li > ul.sub-menu > li.active > a, -ul.page-sidebar-menu > li > ul.sub-menu > li > a:hover { - color: #ffffff !important; - background: #1b8fd3 !important; -} -ul.page-sidebar-menu > li > ul.sub-menu > li > a:hover { - background: #1b8fd3 !important; -} -/* 3rd level sub menu */ -ul.page-sidebar-menu > li > ul.sub-menu li > ul.sub-menu > li.active > a, -ul.page-sidebar-menu > li > ul.sub-menu li > ul.sub-menu > li > a:hover, -ul.page-sidebar-menu > li > ul.sub-menu li.open > a { - color: #ffffff !important; - background: #1b8fd3 !important; -} -/* font color for all sub menu links*/ -ul.page-sidebar-menu li > ul.sub-menu > li > a { - color: #c3e4f7; -} -/* menu arrows */ -ul.page-sidebar-menu > li > a .arrow:before, -ul.page-sidebar-menu > li > a .arrow.open:before { - color: #51b1e9 !important; -} -ul.page-sidebar-menu > li > ul.sub-menu a .arrow:before, -ul.page-sidebar-menu > li > ul.sub-menu a .arrow.open:before { - color: #3ba6e6 !important; -} -ul.page-sidebar-menu > li > a > .arrow.open:before { - color: #68bbec !important; -} -ul.page-sidebar-menu > li.active > a .arrow:before, -ul.page-sidebar-menu > li.active > a .arrow.open:before { - color: #ffffff !important; -} -/* sidebar search */ -.page-sidebar .sidebar-search input { - background-color: #0f5179 !important; - color: #51b1e9; -} -.page-sidebar .sidebar-search input::-webkit-input-placeholder { - color: #51b1e9 !important; -} -.page-sidebar .sidebar-search input:-moz-placeholder { - color: #51b1e9 !important; -} -.page-sidebar .sidebar-search input:-ms-input-placeholder { - color: #51b1e9 !important; -} -.page-sidebar .sidebar-search input { - background-color: #1570a6 !important; - color: #bfbfbf !important; -} -.page-sidebar .sidebar-search .input-box { - border-bottom: 1px solid #51b1e9 !important; -} -.page-sidebar .sidebar-search .submit { - background-image: url(../../image/search-icon-blue.png); -} -/*** -Sidebar toggler -***/ -.sidebar-toggler { - background-image: url(../../image/sidebar-toggler-blue.jpg); - background-color: #0f5179; -} -/* search box bg color on expanded */ -.page-sidebar-closed .page-sidebar .sidebar-search.open .form-container { - background-color: #1570a6 !important; -} -.page-sidebar-closed .page-sidebar .sidebar-search.open .form-container .remove { - background-image: url("../../image/sidebar-search-close-blue.png"); -} -/* sub menu bg color on hover menu item */ -.page-sidebar-closed ul.page-sidebar-menu > li:hover .sub-menu { - background-color: #1570a6; -} -/*** -Footer -***/ -.footer .footer-inner { - color: #68bbec; -} -.footer .footer-tools .go-top { - background-color: #1985c6; -} -.footer .footer-tools .go-top:hover { - opacity: 0.7; - filter: alpha(opacity=70); -} -.footer .footer-tools .go-top i { - color: #68bbec; -} -/*** -Footer Layouts (new in v1.3) -***/ -/* begin:fixed footer */ -.page-footer-fixed .footer { - background-color: #0f5179; -} -.page-footer-fixed .footer .footer-inner { - color: #68bbec; -} -.page-footer-fixed .footer .footer-tools .go-top { - background-color: #1985c6; -} -.page-footer-fixed .footer .footer-tools .go-top i { - color: #68bbec; -} -/* end:fixed footer */ -/*** -Gritter Notifications -***/ -.gritter-top { - background: url(../../thirdparty/gritter/images/gritter-blue.png) no-repeat left -30px !important; -} -.gritter-bottom { - background: url(../../thirdparty/gritter/images/gritter-blue.png) no-repeat left bottom !important; -} -.gritter-item { - display: block; - background: url(../../thirdparty/gritter/images/gritter-blue.png) no-repeat left -40px !important; -} -.gritter-close { - background: url(../../thirdparty/gritter/images/gritter-blue.png) no-repeat left top !important; -} -.gritter-title { - text-shadow: none !important; - /* Not supported by IE :( */ - -} -/* for the light (white) version of the gritter notice */ -.gritter-light .gritter-item, -.gritter-light .gritter-bottom, -.gritter-light .gritter-top, -.gritter-light .gritter-close { - background-image: url(../../thirdparty/gritter/images/gritter-light.png) !important; -} -.gritter-item-wrapper a { - color: #18a5ed; -} -.gritter-item-wrapper a:hover { - color: #0b6694; -} -/* begin: boxed page */ -@media (min-width: 992px) { - .page-boxed { - background-color: #125e8b !important; - } - .page-boxed .page-container { - background-color: #1570a6; - border-left: 1px solid #1c98e1; - border-bottom: 1px solid #1c98e1; - } - .page-boxed.page-sidebar-reversed .page-container { - border-left: 0; - border-right: 1px solid #1c98e1; - } - .page-boxed.page-sidebar-fixed .page-container { - border-left: 0; - border-bottom: 0; - } - .page-boxed.page-sidebar-reversed.page-sidebar-fixed .page-container { - border-left: 0; - border-right: 0; - border-bottom: 0; - } - .page-boxed.page-sidebar-fixed .page-sidebar { - border-left: 1px solid #1c98e1; - } - .page-boxed.page-sidebar-reversed.page-sidebar-fixed .page-sidebar { - border-right: 1px solid #1c98e1; - border-left: 0; - } - .page-boxed.page-sidebar-fixed.page-footer-fixed .footer { - background-color: #125e8b !important; - } -} -/* end: boxed page */ -/*** -Landscape phone to portrait tablet -***/ -@media (max-width: 991px) { - /*** - page sidebar - ***/ - .page-sidebar { - background-color: #105882 !important; - } - ul.page-sidebar-menu > li > a { - border-top: 1px solid #187fbd !important; - } - ul.page-sidebar-menu > li:last-child > a { - border-bottom: 0 !important; - } - .page-sidebar .sidebar-search input { - background-color: #105882 !important; - } - ul.page-sidebar-menu > li.open > a, - ul.page-sidebar-menu > li > a:hover, - ul.page-sidebar-menu > li:hover > a { - background: #0e4b70; - } -} diff --git a/portal-common/src/main/webapp/common/css/themes/blue_ifrm.css b/portal-common/src/main/webapp/common/css/themes/blue_ifrm.css deleted file mode 100644 index c9d274af..00000000 --- a/portal-common/src/main/webapp/common/css/themes/blue_ifrm.css +++ /dev/null @@ -1,207 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*** -light_ifrm theme -***/ -td>a>span[class^="ict-"], td>a>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>div>span[class^="ict-"], td>div>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>div>span>span[class^="ict-"], td>div>span>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>span>span[class^="ict-"], td>span>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -/* button style*/ -.buttonRounded, -.buttonRoundedOver, -.buttonRoundedFocused, -.buttonRoundedFocusedOver, -.buttonRoundedDown, -.buttonRoundedFocusedDown, -.buttonRoundedSelected, -.buttonRoundedSelectedFocused, -.buttonRoundedSelectedDown, -.buttonRoundedSelectedFocusedDown, -.buttonRoundedSelectedOver, -.buttonRoundedSelectedFocusedOver, -.buttonRoundedDisabled, -.buttonRoundedSelectedDisabled { - background-color: #3f9ed5; - color: #fff; - border: 0px solid #b15a59; - border-radius: 0px; - font-family: Arial, Verdana, sans-serif; - font-size: 12px; - /*padding: 0 3px;*/ - padding-left:7px !important; - padding-right:7px !important; - height:30px !important; -} -.buttonRoundedDisabled, .buttonRoundedSelectedDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} -.buttonRoundedOver, -.buttonRoundedFocusedOver, -.buttonRoundedSelectedFocused, -.buttonRoundedSelectedFocusedOver, -.buttonRoundedDown, -.buttonRoundedFocusedDown { - background-color: #398ec0; - height:30px !important; -} - -.menuButton, -.menuButtonOver, -.menuButtonDown, -.menuButtonDisabled, -.menuButtonFocused, -.menuButtonFocusedDown, -.menuButtonFocusedOver, -.menuButtonSelected, -.menuButtonSelectedDown, -.menuButtonSelectedOver, -.menuButtonSelectedDisabled { - background-color: #3f9ed5; - border: 0px solid #ababab; - color: #fff; - font-family: Arial, Verdana, sans-serif; - font-size: 12px; - padding-left: 7px !important; - padding-right: 7px !important; - height:30px !important; -} -.menuButtonOver { - background-color: #398ec0; - } -.menuButtonDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} - - .buttonTitle, -.buttonTitleOver, -.buttonTitleDown, -.buttonTitleSelected, -.buttonTitleFocused, -.buttonTitleSelectedFocused, -.buttonTitleSelectedOver, -.buttonTitleFocusedOver, -.buttonTitleSelectedFocusedOver, -.buttonTitleSelectedDown, -.buttonTitleFocusedDown, -.buttonTitleSelectedFocusedDown, -.buttonTitleDisabled, -.buttonTitleSelectedDisabled { - color: #fff ; - } - .buttonTitleDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} - /* windowBody dialogBody Style */ - .windowBody, -.dialogBody { - background-color: white; - border: 1px solid #3f9ed5; - border-top: 0; -} -.windowHeader, -.dialogHeader { - background-color: #3f9ed5; - padding: 0; -} -/* sectionHeader Style */ -.sectionHeaderopened { - background-color: #3f9ed5; - } - .sectionHeaderclosed { - background-color: #52ade2; - } - -#dt_example h1{ -color:#438eb9; -font-weight:600 !important; -} - /*cell style*/ -.tallCellOver, -.tallCellOverDark { - background-color: #d9e3e8; - border-bottom: 1px solid #d9e3e8; - border-top: 1px solid #d9e3e8; - } -.tallCellSelected, -.tallCellSelectedDark { - background: #c4d7e2; - border-bottom: 1px solid #c4d7e2; - border-top: 1px solid #c4d7e2; - } -.tallCellSelectedOver, -.tallCellSelectedOverDark { - background: #c4d7e2; - border-bottom: 1px solid #c4d7e2; - border-top: 1px solid #c4d7e2; - } -.imgHeaderButtonOver, -.imgHeaderButtonDown, -.headerButtonOver, -.headerButtonDown, -.sorterButtonOver, -.sorterButtonDown { - background-color: #c4d7e2; - } -.cellSelected, -.cellSelectedDark, -.specialColSelected, -.recordSummaryCellSelected, -.recordSummaryCellSelectedDark { - background: #c4d7e2 !important; - border-bottom: 1px solid #c4d7e2; - border-top: 1px solid #c4d7e2; - } -.cellSelectedOver, -.cellSelectedOverDark, -.specialColSelectedOver, -.recordSummaryCellSelectedOver, -.recordSummaryCellSelectedOverDark { - background: #c4d7e2 !important; - border-bottom: 1px solid #c4d7e2; - border-top: 1px solid #c4d7e2; -} -.cellOver, -.cellOverDark, -.specialColOver, -.recordSummaryCellOver, -.recordSummaryCellOverDark { - background: #d9e3e8 !important; - border-bottom: 1px solid #d9e3e8; - border-top: 1px solid #d9e3e8; - } -.treeCellOver, -.treeCellOverDark { - background-color: #d9e3e8; -} diff --git a/portal-common/src/main/webapp/common/css/themes/brown.css b/portal-common/src/main/webapp/common/css/themes/brown.css deleted file mode 100644 index afbe0365..00000000 --- a/portal-common/src/main/webapp/common/css/themes/brown.css +++ /dev/null @@ -1,376 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*** -Brown theme -***/ -/*** -Reset and overrides -***/ -body { - background-color: #623f18 !important; -} -/*** -Page header -***/ -.header { - filter: none !important; - background-image: none !important; - background-color: #35220d !important; -} -.header .btn-navbar { - background-color: #35220d !important; -} -.header .navbar-nav .dropdown-toggle:hover, -.header .navbar-nav .dropdown.open .dropdown-toggle { - background-color: #5a3a16 !important; -} -.header .navbar-nav li.dropdown .dropdown-toggle i { - color: #d18d42 !important; -} -.btn-group .btn.blue.dropdown-toggle{ -background-color: #8d6a43 !important; -} -.page-content .page-breadcrumb.breadcrumb{ -background-color:#F5F5F5 !important; -} -/*** -Header Search -***/ -.header .search-form { - background-color: #241709; -} - -.header .search-form .form-control{ - color: #ccc; - border: 0; - background-color: #241709; -} - -.header .search-form .submit { - background: url(../../image/search-icon-brown.png); -} -/*** -Hor menu -***/ -.header .hor-menu ul.nav li a { - color: #ccc; -} - -.header .hor-menu ul.nav li.open > a, -.header .hor-menu ul.nav li > a:hover, -.header .hor-menu ul.nav li > a:focus { - color: #fff; - background: #5a3a16; -} - -.header .hor-menu .dropdown-menu li:hover > a, -.header .hor-menu ul.nav li.active > a, -.header .hor-menu ul.nav li.active > a:hover { - color: #fff; - background: #e02222 !important; -} - -.header .hor-menu ul.nav li.current > a, -.header .hor-menu ul.nav li.current > a:hover { - color: #fff; - background: #e02222 !important; -} - - -.header .hor-menu .dropdown-menu { - background: #5a3a16; -} -.header .hor-menu .dropdown-menu li > a { - color: #ccc; -} - -.header .hor-menu .hor-menu-search-form-toggler.off { - background: #5a3a16 url(../../image/hor-menu-search-close-white.png) no-repeat center; -} - -.header .hor-menu .search-form { - background:#5a3a16; -} - -.header .hor-menu .search-form form input { - color: #ccc; -} - -.header .hor-menu .search-form .btn { - color: #ccc; - background: url(../../image/search-icon-white.png) no-repeat center; -} - -.header .hor-menu .search-form form input::-webkit-input-placeholder { /* WebKit browsers */ - color: #ccc; -} -.header .hor-menu .search-form form input:-moz-placeholder { /* Mozilla Firefox 4 to 18 */ - color: #ccc; -} -.header .hor-menu .search-form form input::-moz-placeholder { /* Mozilla Firefox 19+ */ - color: #ccc; -} -.header .hor-menu .search-form form input:-ms-input-placeholder { /* Internet Explorer 10+ */ - color: #ccc; -} - -/*** -Mega Menu -***/ -.mega-menu .mega-menu-submenu { - border-right: 1px solid #6B451B; -} - -.mega-menu .mega-menu-submenu li h3 { - color: #fff; -} - -/*** -Page sidebar -***/ -.page-sidebar { - background-color: #623f18; -} -ul.page-sidebar-menu > li > a { - border-top: 1px solid #935f24 !important; - color: #ffffff !important; -} -ul.page-sidebar-menu > li:last-child > a { - border-bottom: 1px solid transparent !important; -} -ul.page-sidebar-menu > li a i { - color: #9a6d3a; -} -ul.page-sidebar-menu > li.open > a, -ul.page-sidebar-menu > li > a:hover, -ul.page-sidebar-menu > li:hover > a { - background: #4e3112; -} -ul.page-sidebar-menu > li.active > a { - background: #4e3112 !important; - border-top-color: transparent !important; - color: #ffffff; -} -ul.page-sidebar-menu > li.active > a i { - color: #ffffff; -} -ul.page-sidebar-menu > li > ul.sub-menu > li:first-child > a { - border-top: 0px !important; -} -ul.page-sidebar-menu > li > ul.sub-menu > li.active > a, -ul.page-sidebar-menu > li > ul.sub-menu > li > a:hover { - color: #ffffff !important; - background: #8b5922 !important; -} -ul.page-sidebar-menu > li > ul.sub-menu > li > a:hover { - background: #8b5922 !important; -} -/* 3rd level sub menu */ -ul.page-sidebar-menu > li > ul.sub-menu li > ul.sub-menu > li.active > a, -ul.page-sidebar-menu > li > ul.sub-menu li > ul.sub-menu > li > a:hover, -ul.page-sidebar-menu > li > ul.sub-menu li.open > a { - color: #ffffff !important; - background: #8b5922 !important; -} -/* font color for all sub menu links*/ -ul.page-sidebar-menu li > ul.sub-menu > li > a { - color: #e5bf94; -} -/* menu arrows */ -ul.page-sidebar-menu > li > a .arrow:before, -ul.page-sidebar-menu > li > a .arrow.open:before { - color: #c88131 !important; -} -ul.page-sidebar-menu > li > ul.sub-menu a .arrow:before, -ul.page-sidebar-menu > li > ul.sub-menu a .arrow.open:before { - color: #b4742c !important; -} -ul.page-sidebar-menu > li > a > .arrow.open:before { - color: #d18d42 !important; -} -ul.page-sidebar-menu > li.active > a .arrow:before, -ul.page-sidebar-menu > li.active > a .arrow.open:before { - color: #ffffff !important; -} -/* sidebar search */ -.page-sidebar .sidebar-search input { - background-color: #39250e !important; - color: #b18d65; -} -.page-sidebar .sidebar-search input::-webkit-input-placeholder { - color: #b18d65 !important; -} -.page-sidebar .sidebar-search input:-moz-placeholder { - color: #b18d65 !important; -} -.page-sidebar .sidebar-search input:-ms-input-placeholder { - color: #b18d65 !important; -} -.page-sidebar .sidebar-search input { - background-color: #623f18 !important; - color: #b18d65 !important; -} -.page-sidebar .sidebar-search .input-box { - border-bottom: 1px solid #845f36 !important; -} -.page-sidebar .sidebar-search .submit { - background-image: url(../../image/search-icon-brown.png); -} -/*** -Sidebar toggler -***/ -.sidebar-toggler { - background-image: url(../../image/sidebar-toggler-brown.jpg); - background-color: #39250e; -} -/* search box bg color on expanded */ -.page-sidebar-closed .page-sidebar .sidebar-search.open .form-container { - background-color: #623f18 !important; -} -.page-sidebar-closed .page-sidebar .sidebar-search.open .form-container .remove { - background-image: url("../../image/sidebar-search-close-brown.png"); -} -/* sub menu bg color on hover menu item */ -.page-sidebar-closed ul.page-sidebar-menu > li:hover .sub-menu { - background-color: #623f18; -} -/*** -Footer -***/ -.footer .footer-inner { - color: #999999; -} -.footer .footer-tools .go-top { - background-color: #7f511f; -} -.footer .footer-tools .go-top:hover { - opacity: 0.7; - filter: alpha(opacity=70); -} -.footer .footer-tools .go-top i { - color: #d18d42; -} -/*** -Footer Layouts (new in v1.3) -***/ -/* begin:fixed footer */ -.page-footer-fixed .footer { - background-color: #39250e; -} -.page-footer-fixed .footer .footer-inner { - color: #999999; -} -.page-footer-fixed .footer .footer-tools .go-top { - background-color: #7f511f; -} -.page-footer-fixed .footer .footer-tools .go-top i { - color: #d18d42; -} -/* end:fixed footer */ -/*** -Gritter Notifications -***/ -.gritter-top { - background: url(../../thirdparty/gritter/images/gritter-brown.png) no-repeat left -30px !important; -} -.gritter-bottom { - background: url(../../thirdparty/gritter/images/gritter-brown.png) no-repeat left bottom !important; -} -.gritter-item { - display: block; - background: url(../../thirdparty/gritter/images/gritter-brown.png) no-repeat left -40px !important; -} -.gritter-close { - background: url(../../thirdparty/gritter/images/gritter-brown.png) no-repeat left top !important; -} -.gritter-title { - text-shadow: none !important; - /* Not supported by IE :( */ - -} -/* for the light (white) version of the gritter notice */ -.gritter-light .gritter-item, -.gritter-light .gritter-bottom, -.gritter-light .gritter-top, -.gritter-light .gritter-close { - background-image: url(../../thirdparty/gritter/images/gritter-light.png) !important; -} -.gritter-item-wrapper a { - color: #b18d65; -} -.gritter-item-wrapper a:hover { - color: #755a3b; -} -/* begin: boxed page */ -@media (min-width: 992px) { - .page-boxed { - background-color: #492f12 !important; - } - .page-boxed .page-container { - background-color: #623f18; - border-left: 1px solid #976125; - border-bottom: 1px solid #976125; - } - .page-boxed.page-sidebar-reversed .page-container { - border-left: 0; - border-right: 1px solid #976125; - } - .page-boxed.page-sidebar-fixed .page-container { - border-left: 0; - border-bottom: 0; - } - .page-boxed.page-sidebar-reversed.page-sidebar-fixed .page-container { - border-left: 0; - border-right: 0; - border-bottom: 0; - } - .page-boxed.page-sidebar-fixed .page-sidebar { - border-left: 1px solid #976125; - } - .page-boxed.page-sidebar-reversed.page-sidebar-fixed .page-sidebar { - border-right: 1px solid #976125; - border-left: 0; - } - .page-boxed.page-sidebar-fixed.page-footer-fixed .footer { - background-color: #492f12 !important; - } -} -/* end: boxed page */ -/*** -Landscape phone to portrait tablet -***/ -@media (max-width: 991px) { - /*** - page sidebar - ***/ - .page-sidebar { - background-color: #412a10 !important; - } - ul.page-sidebar-menu > li > a { - border-top: 1px solid #764c1d !important; - } - ul.page-sidebar-menu > li:last-child > a { - border-bottom: 0 !important; - } - .page-sidebar .sidebar-search input { - background-color: #412a10 !important; - } - ul.page-sidebar-menu > li.open > a, - ul.page-sidebar-menu > li > a:hover, - ul.page-sidebar-menu > li:hover > a { - background: #311f0c; - } -} diff --git a/portal-common/src/main/webapp/common/css/themes/brown_ifrm.css b/portal-common/src/main/webapp/common/css/themes/brown_ifrm.css deleted file mode 100644 index b8663344..00000000 --- a/portal-common/src/main/webapp/common/css/themes/brown_ifrm.css +++ /dev/null @@ -1,207 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*** -light_ifrm theme -***/ -td>a>span[class^="ict-"], td>a>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>div>span[class^="ict-"], td>div>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>div>span>span[class^="ict-"], td>div>span>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>span>span[class^="ict-"], td>span>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -/* button style*/ -.buttonRounded, -.buttonRoundedOver, -.buttonRoundedFocused, -.buttonRoundedFocusedOver, -.buttonRoundedDown, -.buttonRoundedFocusedDown, -.buttonRoundedSelected, -.buttonRoundedSelectedFocused, -.buttonRoundedSelectedDown, -.buttonRoundedSelectedFocusedDown, -.buttonRoundedSelectedOver, -.buttonRoundedSelectedFocusedOver, -.buttonRoundedDisabled, -.buttonRoundedSelectedDisabled { - background-color: #8d6a43; - color: #fff; - border: 0px solid #b15a59; - border-radius: 0px; - font-family: Arial, Verdana, sans-serif; - font-size: 12px; - /*padding: 0 3px;*/ - padding-left:7px !important; - padding-right:7px !important; - height:30px !important; -} -.buttonRoundedDisabled, .buttonRoundedSelectedDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} -.buttonRoundedOver, -.buttonRoundedFocusedOver, -.buttonRoundedSelectedFocused, -.buttonRoundedSelectedFocusedOver, -.buttonRoundedDown, -.buttonRoundedFocusedDown { - background-color: #805b32; - height:30px !important; -} - -.menuButton, -.menuButtonOver, -.menuButtonDown, -.menuButtonDisabled, -.menuButtonFocused, -.menuButtonFocusedDown, -.menuButtonFocusedOver, -.menuButtonSelected, -.menuButtonSelectedDown, -.menuButtonSelectedOver, -.menuButtonSelectedDisabled { - background-color: #8d6a43; - border: 0px solid #ababab; - color: #fff; - font-family: Arial, Verdana, sans-serif; - font-size: 12px; - padding-left: 7px !important; - padding-right: 7px !important; - height:30px !important; -} -.menuButtonOver { - background-color: #805b32; - } - .menuButtonDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} - .buttonTitle, -.buttonTitleOver, -.buttonTitleDown, -.buttonTitleSelected, -.buttonTitleFocused, -.buttonTitleSelectedFocused, -.buttonTitleSelectedOver, -.buttonTitleFocusedOver, -.buttonTitleSelectedFocusedOver, -.buttonTitleSelectedDown, -.buttonTitleFocusedDown, -.buttonTitleSelectedFocusedDown, -.buttonTitleDisabled, -.buttonTitleSelectedDisabled { - color: #fff ; -} -.buttonTitleDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} - /* windowBody dialogBody Style */ - .windowBody, -.dialogBody { - background-color: white; - border: 1px solid #8d6a43; - border-top: 0; -} -.windowHeader, -.dialogHeader { - background-color: #8d6a43; - padding: 0; -} -/* sectionHeader Style */ -.sectionHeaderopened { - background-color: #8d6a43; - } - .sectionHeaderclosed { - background-color: #9f7b53; - } - -#dt_example h1{ -color:#8d6a43; -font-weight:600 !important; -} - /*cell style*/ -.tallCellOver, -.tallCellOverDark { - background-color: #ece0d3; - border-bottom: 1px solid #ece0d3; - border-top: 1px solid #ece0d3; - } -.tallCellSelected, -.tallCellSelectedDark { - background: #d4c2af; - border-bottom: 1px solid #d4c2af; - border-top: 1px solid #d4c2af; - } -.tallCellSelectedOver, -.tallCellSelectedOverDark { - background: #d4c2af; - border-bottom: 1px solid #d4c2af; - border-top: 1px solid #d4c2af; - } -.imgHeaderButtonOver, -.imgHeaderButtonDown, -.headerButtonOver, -.headerButtonDown, -.sorterButtonOver, -.sorterButtonDown { - background-color: #cbaf8f; - } -.cellSelected, -.cellSelectedDark, -.specialColSelected, -.recordSummaryCellSelected, -.recordSummaryCellSelectedDark { - background: #d4c2af !important; - border-bottom: 1px solid #d4c2af; - border-top: 1px solid #d4c2af; - } -.cellSelectedOver, -.cellSelectedOverDark, -.specialColSelectedOver, -.recordSummaryCellSelectedOver, -.recordSummaryCellSelectedOverDark { - background: #d4c2af !important; - border-bottom: 1px solid #d4c2af; - border-top: 1px solid #d4c2af; -} -.cellOver, -.cellOverDark, -.specialColOver, -.recordSummaryCellOver, -.recordSummaryCellOverDark { - background: #ece0d3 !important; - border-bottom: 1px solid #ece0d3; - border-top: 1px solid #ece0d3; - } -.treeCellOver, -.treeCellOverDark { - background-color: #ece0d3; -} - diff --git a/portal-common/src/main/webapp/common/css/themes/grey.css b/portal-common/src/main/webapp/common/css/themes/grey.css deleted file mode 100644 index eb1d9bc5..00000000 --- a/portal-common/src/main/webapp/common/css/themes/grey.css +++ /dev/null @@ -1,372 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*** -Grey theme -***/ -/*** -Reset and overrides -***/ -body { - background-color: #666666 !important; -} -/*** -Page header -***/ -.header { - filter: none !important; - background-image: none !important; - background-color: #4a4a4a !important; -} -.header .btn-navbar { - background-color: #4a4a4a !important; -} -.header .navbar-nav .dropdown-toggle:hover, -.header .navbar-nav .dropdown.open .dropdown-toggle { - background-color: #616161 !important; -} -.header .navbar-nav li.dropdown .dropdown-toggle i { - color: #b3b3b3 !important; -} -.page-content .page-breadcrumb.breadcrumb{ -background-color:#F5F5F5 !important; -} -/*** -Header Search -***/ -.header .search-form { - background-color: #3a3a3a; -} - -.header .search-form .form-control{ - color: #ccc; - border: 0; - background-color: #3a3a3a; -} - -.header .search-form .submit { - background: url(../../image/search-icon-light.png); -} -/*** -Hor menu -***/ -.header .hor-menu ul.nav li a { - color: #ccc; -} - -.header .hor-menu ul.nav li.open > a, -.header .hor-menu ul.nav li > a:hover, -.header .hor-menu ul.nav li > a:focus { - color: #fff; - background: #616161; -} - -.header .hor-menu .dropdown-menu li:hover > a, -.header .hor-menu ul.nav li.active > a, -.header .hor-menu ul.nav li.active > a:hover { - color: #fff; - background: #e02222 !important; -} - -.header .hor-menu ul.nav li.current > a, -.header .hor-menu ul.nav li.current > a:hover { - color: #fff; - background: #e02222 !important; -} - -.header .hor-menu .dropdown-menu { - background: #616161; -} -.header .hor-menu .dropdown-menu li > a { - color: #ccc; -} - -.header .hor-menu .hor-menu-search-form-toggler.off { - background: #616161 url(../../image/hor-menu-search-close-white.png) no-repeat center; -} - -.header .hor-menu .search-form { - background:#616161; -} - -.header .hor-menu .search-form form input { - color: #ccc; -} - -.header .hor-menu .search-form .btn { - color: #ccc; - background: url(../../image/search-icon-white.png) no-repeat center; -} - -.header .hor-menu .search-form form input::-webkit-input-placeholder { /* WebKit browsers */ - color: #ccc; -} -.header .hor-menu .search-form form input:-moz-placeholder { /* Mozilla Firefox 4 to 18 */ - color: #ccc; -} -.header .hor-menu .search-form form input::-moz-placeholder { /* Mozilla Firefox 19+ */ - color: #ccc; -} -.header .hor-menu .search-form form input:-ms-input-placeholder { /* Internet Explorer 10+ */ - color: #ccc; -} - -/*** -Mega Menu -***/ -.mega-menu .mega-menu-submenu { - border-right: 1px solid #757575; -} - -.mega-menu .mega-menu-submenu li h3 { - color: #fff; -} - -/*** -Page sidebar -***/ -.page-sidebar { - background-color: #666666; -} -ul.page-sidebar-menu > li > a { - border-top: 1px solid #858585 !important; - color: #ffffff !important; -} -ul.page-sidebar-menu > li:last-child > a { - border-bottom: 1px solid transparent !important; -} -ul.page-sidebar-menu > li a i { - color: #bfbfbf; -} -ul.page-sidebar-menu > li.open > a, -ul.page-sidebar-menu > li > a:hover, -ul.page-sidebar-menu > li:hover > a { - background: #595959; -} -ul.page-sidebar-menu > li.active > a { - background: #e02222 !important; - border-top-color: transparent !important; - color: #ffffff; -} -ul.page-sidebar-menu > li.active > a i { - color: #ffffff; -} -ul.page-sidebar-menu > li > ul.sub-menu > li:first-child > a { - border-top: 0px !important; -} -ul.page-sidebar-menu > li > ul.sub-menu > li.active > a, -ul.page-sidebar-menu > li > ul.sub-menu > li > a:hover { - color: #ffffff !important; - background: #808080 !important; -} -ul.page-sidebar-menu > li > ul.sub-menu > li > a:hover { - background: #808080 !important; -} -/* 3rd level sub menu */ -ul.page-sidebar-menu > li > ul.sub-menu li > ul.sub-menu > li.active > a, -ul.page-sidebar-menu > li > ul.sub-menu li > ul.sub-menu > li > a:hover, -ul.page-sidebar-menu > li > ul.sub-menu li.open > a { - color: #ffffff !important; - background: #808080 !important; -} -/* font color for all sub menu links*/ -ul.page-sidebar-menu li > ul.sub-menu > li > a { - color: #e6e6e6; -} -/* menu arrows */ -ul.page-sidebar-menu > li > a .arrow:before, -ul.page-sidebar-menu > li > a .arrow.open:before { - color: #a6a6a6 !important; -} -ul.page-sidebar-menu > li > ul.sub-menu a .arrow:before, -ul.page-sidebar-menu > li > ul.sub-menu a .arrow.open:before { - color: #999999 !important; -} -ul.page-sidebar-menu > li > a > .arrow.open:before { - color: #b3b3b3 !important; -} -ul.page-sidebar-menu > li.active > a .arrow:before, -ul.page-sidebar-menu > li.active > a .arrow.open:before { - color: #ffffff !important; -} -/* sidebar search */ -.page-sidebar .sidebar-search input { - background-color: #4d4d4d !important; - color: #a6a6a6; -} -.page-sidebar .sidebar-search input::-webkit-input-placeholder { - color: #a6a6a6 !important; -} -.page-sidebar .sidebar-search input:-moz-placeholder { - color: #a6a6a6 !important; -} -.page-sidebar .sidebar-search input:-ms-input-placeholder { - color: #a6a6a6 !important; -} -.page-sidebar .sidebar-search input { - background-color: #666666 !important; - color: #bfbfbf !important; -} -.page-sidebar .sidebar-search .input-box { - border-bottom: 1px solid #a6a6a6 !important; -} -.page-sidebar .sidebar-search .submit { - background-image: url(../../image/search-icon.png); -} -/*** -Sidebar toggler -***/ -.sidebar-toggler { - background-image: url(../../image/sidebar-toggler.jpg); - background-color: #4d4d4d; -} -/* search box bg color on expanded */ -.page-sidebar-closed .page-sidebar .sidebar-search.open .form-container { - background-color: #666666 !important; -} -.page-sidebar-closed .page-sidebar .sidebar-search.open .form-container .remove { - background-image: url("../../image/sidebar-search-close.png"); -} -/* sub menu bg color on hover menu item */ -.page-sidebar-closed ul.page-sidebar-menu > li:hover .sub-menu { - background-color: #666666; -} -/*** -Footer -***/ -.footer .footer-inner { - color: #b3b3b3; -} -.footer .footer-tools .go-top { - background-color: #787878; -} -.footer .footer-tools .go-top:hover { - opacity: 0.7; - filter: alpha(opacity=70); -} -.footer .footer-tools .go-top i { - color: #b3b3b3; -} -/*** -Footer Layouts (new in v1.3) -***/ -/* begin:fixed footer */ -.page-footer-fixed .footer { - background-color: #4d4d4d; -} -.page-footer-fixed .footer .footer-inner { - color: #b3b3b3; -} -.page-footer-fixed .footer .footer-tools .go-top { - background-color: #787878; -} -.page-footer-fixed .footer .footer-tools .go-top i { - color: #b3b3b3; -} -/* end:fixed footer */ -/*** -Gritter Notifications -***/ -.gritter-top { - background: url(../../thirdparty/gritter/images/gritter.png) no-repeat left -30px !important; -} -.gritter-bottom { - background: url(../../thirdparty/gritter/images/gritter.png) no-repeat left bottom !important; -} -.gritter-item { - display: block; - background: url(../../thirdparty/gritter/images/gritter.png) no-repeat left -40px !important; -} -.gritter-close { - background: url(../../thirdparty/gritter/images/gritter.png) no-repeat left top !important; -} -.gritter-title { - text-shadow: none !important; - /* Not supported by IE :( */ - -} -/* for the light (white) version of the gritter notice */ -.gritter-light .gritter-item, -.gritter-light .gritter-bottom, -.gritter-light .gritter-top, -.gritter-light .gritter-close { - background-image: url(../../thirdparty/gritter/images/gritter-light.png) !important; -} -.gritter-item-wrapper a { - color: #18a5ed; -} -.gritter-item-wrapper a:hover { - color: #0b6694; -} -/* begin: boxed page */ -@media (min-width: 992px) { - .page-boxed { - background-color: #575757 !important; - } - .page-boxed .page-container { - background-color: #666666; - border-left: 1px solid #878787; - border-bottom: 1px solid #878787; - } - .page-boxed.page-sidebar-reversed .page-container { - border-left: 0; - border-right: 1px solid #878787; - } - .page-boxed.page-sidebar-fixed .page-container { - border-left: 0; - border-bottom: 0; - } - .page-boxed.page-sidebar-reversed.page-sidebar-fixed .page-container { - border-left: 0; - border-right: 0; - border-bottom: 0; - } - .page-boxed.page-sidebar-fixed .page-sidebar { - border-left: 1px solid #878787; - } - .page-boxed.page-sidebar-reversed.page-sidebar-fixed .page-sidebar { - border-right: 1px solid #878787; - border-left: 0; - } - .page-boxed.page-sidebar-fixed.page-footer-fixed .footer { - background-color: #575757 !important; - } -} -/* end: boxed page */ -/*** -Landscape phone to portrait tablet -***/ -@media (max-width: 991px) { - /*** - page sidebar - ***/ - .page-sidebar { - background-color: #525252 !important; - } - ul.page-sidebar-menu > li > a { - border-top: 1px solid #737373 !important; - } - ul.page-sidebar-menu > li:last-child > a { - border-bottom: 0 !important; - } - .page-sidebar .sidebar-search input { - background-color: #525252 !important; - } - ul.page-sidebar-menu > li.open > a, - ul.page-sidebar-menu > li > a:hover, - ul.page-sidebar-menu > li:hover > a { - background: #474747; - } -} diff --git a/portal-common/src/main/webapp/common/css/themes/grey_ifrm.css b/portal-common/src/main/webapp/common/css/themes/grey_ifrm.css deleted file mode 100644 index 62ca4023..00000000 --- a/portal-common/src/main/webapp/common/css/themes/grey_ifrm.css +++ /dev/null @@ -1,209 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*** -light_ifrm theme -***/ -td>a>span[class^="ict-"], td>a>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>div>span[class^="ict-"], td>div>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>div>span>span[class^="ict-"], td>div>span>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>span>span[class^="ict-"], td>span>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -/* button style*/ -.buttonRounded, -.buttonRoundedOver, -.buttonRoundedFocused, -.buttonRoundedFocusedOver, -.buttonRoundedDown, -.buttonRoundedFocusedDown, -.buttonRoundedSelected, -.buttonRoundedSelectedFocused, -.buttonRoundedSelectedDown, -.buttonRoundedSelectedFocusedDown, -.buttonRoundedSelectedOver, -.buttonRoundedSelectedFocusedOver, -.buttonRoundedDisabled, -.buttonRoundedSelectedDisabled { - background-color: #69a0f8; - color: #fff; - border: 0px solid #b15a59; - border-radius: 0px; - font-family: Arial, Verdana, sans-serif; - font-size: 12px; - /*padding: 0 3px;*/ - padding-left:7px !important; - padding-right:7px !important; - height:30px !important; -} -.buttonRoundedDisabled, .buttonRoundedSelectedDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} -.buttonRoundedOver, -.buttonRoundedFocusedOver, -.buttonRoundedSelectedFocused, -.buttonRoundedSelectedFocusedOver, -.buttonRoundedDown, -.buttonRoundedFocusedDown { - background-color: #4b8df8; - height:30px !important; -} - -.menuButton, -.menuButtonOver, -.menuButtonDown, -.menuButtonDisabled, -.menuButtonFocused, -.menuButtonFocusedDown, -.menuButtonFocusedOver, -.menuButtonSelected, -.menuButtonSelectedDown, -.menuButtonSelectedOver, -.menuButtonSelectedDisabled { - background-color: #69a0f8; - border: 0px solid #ababab; - color: #fff; - font-family: Arial, Verdana, sans-serif; - font-size: 12px; - padding-left: 7px !important; - padding-right: 7px !important; - height:30px !important; -} -.menuButtonOver { - background-color: #4b8df8; - } -.menuButtonDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} -.buttonTitle, -.buttonTitleOver, -.buttonTitleDown, -.buttonTitleSelected, -.buttonTitleFocused, -.buttonTitleSelectedFocused, -.buttonTitleSelectedOver, -.buttonTitleFocusedOver, -.buttonTitleSelectedFocusedOver, -.buttonTitleSelectedDown, -.buttonTitleFocusedDown, -.buttonTitleSelectedFocusedDown, -.buttonTitleDisabled, -.buttonTitleSelectedDisabled { - color: #fff ; - } -.buttonTitleDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} - /* windowBody dialogBody Style */ - .windowBody, -.dialogBody { - background-color: white; - border: 1px solid #69a0f8; - border-top: 0; -} -.windowHeader, -.dialogHeader { - background-color: #69a0f8; - padding: 0; -} -/* sectionHeader Style */ -.sectionHeaderopened { - background-color: #69a0f8; - } - .sectionHeaderclosed { - background-color: #5e9bfd; - } - -#dt_example h1{ -color:#4b8df8; -font-weight:600 !important; -} - - - /*cell style*/ -.tallCellOver, -.tallCellOverDark { - background-color: #ffede4; - border-bottom: 1px solid #ffede4; - border-top: 1px solid #ffede4; - } -.tallCellSelected, -.tallCellSelectedDark { - background: #f8dddd; - border-bottom: 1px solid #f8dddd; - border-top: 1px solid #f8dddd; - } -.tallCellSelectedOver, -.tallCellSelectedOverDark { - background: #f8dddd; - border-bottom: 1px solid #f8dddd; - border-top: 1px solid #f8dddd; - } -.imgHeaderButtonOver, -.imgHeaderButtonDown, -.headerButtonOver, -.headerButtonDown, -.sorterButtonOver, -.sorterButtonDown { - background-color: #c4d7e2; - } -.cellSelected, -.cellSelectedDark, -.specialColSelected, -.recordSummaryCellSelected, -.recordSummaryCellSelectedDark { - background: #f8dddd !important; - border-bottom: 1px solid #f8dddd; - border-top: 1px solid #f8dddd; - } -.cellSelectedOver, -.cellSelectedOverDark, -.specialColSelectedOver, -.recordSummaryCellSelectedOver, -.recordSummaryCellSelectedOverDark { - background: #f8dddd !important; - border-bottom: 1px solid #f8dddd; - border-top: 1px solid #f8dddd; -} -.cellOver, -.cellOverDark, -.specialColOver, -.recordSummaryCellOver, -.recordSummaryCellOverDark { - background: #ffede4 !important; - border-bottom: 1px solid #ffede4; - border-top: 1px solid #ffede4; - } -.treeCellOver, -.treeCellOverDark { - background-color: #ffede4; -} - diff --git a/portal-common/src/main/webapp/common/css/themes/light.css b/portal-common/src/main/webapp/common/css/themes/light.css deleted file mode 100644 index 3932cb19..00000000 --- a/portal-common/src/main/webapp/common/css/themes/light.css +++ /dev/null @@ -1,479 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*** -light theme -***/ - -/*** -Reset and overrides -***/ -body { - background-color: #fafafa !important; -} -/*** -Page header -***/ -.header { - filter: none !important; - background-image: none !important; - background-color: #434343 !important; -} -.header .btn-navbar { - background-color: #434343 !important; -} -.header .navbar-nav .dropdown-toggle:hover, -.header .navbar-nav .dropdown.open .dropdown-toggle { - background-color: #4f4f4f !important; -} -.header .navbar-nav li.dropdown .dropdown-toggle i { - color: #808080 !important; -} -.btn-group .btn.blue.dropdown-toggle{ -background-color: #28b779 !important; -} -.page-content .page-breadcrumb.breadcrumb{ -background-color:#F5F5F5 !important; -} -/*** -Header Search -***/ -.header .search-form { - background-color: #3a3a3a; -} - -.header .search-form .form-control{ - color: #ccc; - border: 0; - background-color: #3a3a3a; -} - -.header .search-form .submit { - background: url(../../image/search-icon.png); -} -/*** -Hor menu -***/ -.header .hor-menu ul.nav li a { - color: #ccc; -} - -.header .hor-menu ul.nav li.open > a, -.header .hor-menu ul.nav li > a:hover, -.header .hor-menu ul.nav li > a:focus { - color: #fff; - background: #4f4f4f; -} - -.header .hor-menu .dropdown-menu li:hover > a, -.header .hor-menu ul.nav li.active > a, -.header .hor-menu ul.nav li.active > a:hover { - color: #fff; - background: #51b88b !important; -} -.header.navbar .hor-menu ul.nav li.current .selected, -.header.navbar .hor-menu ul.nav li.active .selected { - border-top: 6px solid #51b88b; - } - -.header .hor-menu ul.nav li.current > a, -.header .hor-menu ul.nav li.current > a:hover { - color: #fff; - background: #e02222 !important; -} - -.header .hor-menu .dropdown-menu { - background: #4f4f4f; -} -.header .hor-menu .dropdown-menu li > a { - color: #ccc; -} - -.header .hor-menu .hor-menu-search-form-toggler.off { - background: #4f4f4f url(../../image/hor-menu-search-close-white.png) no-repeat center; -} - -.header .hor-menu .search-form { - background:#4f4f4f; -} - -.header .hor-menu .search-form form input { - color: #ccc; -} - -.header .hor-menu .search-form .btn { - color: #ccc; - background: url(../../image/search-icon-white.png) no-repeat center; -} - -.header .hor-menu .search-form form input::-webkit-input-placeholder { /* WebKit browsers */ - color: #ccc; -} -.header .hor-menu .search-form form input:-moz-placeholder { /* Mozilla Firefox 4 to 18 */ - color: #ccc; -} -.header .hor-menu .search-form form input::-moz-placeholder { /* Mozilla Firefox 19+ */ - color: #ccc; -} -.header .hor-menu .search-form form input:-ms-input-placeholder { /* Internet Explorer 10+ */ - color: #ccc; -} - -/*** -Mega Menu -***/ -.mega-menu .mega-menu-submenu { - border-right: 1px solid #656565; -} - -.mega-menu .mega-menu-submenu li h3 { - color: #fff; -} - -/*** -Page sidebar -***/ -.page-content { - border-left: 1px solid #e2e2e2 !important; - border-bottom: 1px solid #e2e2e2 !important; -} -.page-sidebar-reversed .page-content { - border-left: 0; - border-right: 1px solid #e2e2e2 !important; -} -.page-sidebar { - background-color: #fafafa; -} -.page-sidebar-fixed .page-content { - border: 0 !important; -} -.page-sidebar-fixed .page-sidebar { - border-right: 1px solid #e2e2e2 !important; -} - - -ul.page-sidebar-menu > li > a { - border-top: 1px solid #e2e2e2 !important; - color: #000 !important; - font-weight: 400; -} - -ul.page-sidebar-menu > li:first-child > a { - border-top: 1px solid transparent !important; -} - -ul.page-sidebar-menu > li:last-child > a { - border-bottom: 1px solid transparent !important; -} - -ul.page-sidebar-menu > li a i { - color: #bbb !important; -} -ul.page-sidebar-menu > li.open > a, -ul.page-sidebar-menu > li > a:hover, -ul.page-sidebar-menu > li:hover > a { - background: #eee; - border-top: 1px solid #e8e8e8; -} -ul.page-sidebar-menu > li.active > a .selected { - right:-7px; - top:0px; - width: 7px; - height: 39px; - background-image: url("../../image/sidebar-menu-arrow-green.png"); -} -.page-sidebar-reversed ul.page-sidebar-menu > li.active > a .selected { - right: auto; - left:-7px; - background-image: url("../../image/sidebar-menu-arrow-green-reverse.png"); -} -ul.page-sidebar-menu > li.active i { - color: #fff !important; -} -.page-sidebar-fixed ul.page-sidebar-menu > li.active > a .selected { - display: none; -} -ul.page-sidebar-menu > li.active > a{ - background: #28b779 !important; - border-top-color: transparent !important; - color:#fff !important; -} -ul.page-sidebar-menu > li.active > a i { - color: #fff; -} -ul.page-sidebar-menu > li > a > .arrow:before, -ul.page-sidebar-menu > li > a > .arrow.open:before { - color: #ccc !important; -} -ul.page-sidebar-menu > li.active > a .arrow:before, -ul.page-sidebar-menu > li.active > a .arrow.open:before { - color: #fff !important; -} -ul.page-sidebar-menu > li > ul.sub-menu > li:first-child > a { - border-top: 0px !important; -} - -ul.page-sidebar-menu ul.sub-menu > li > a { - font-weight: 400 !important; - color: #333 !important; -} -ul.page-sidebar-menu ul.sub-menu > li.active > a, -ul.page-sidebar-menu ul.sub-menu > li > a:hover { - color: #818181 !important; - background: #efefef !important; -} - -ul.page-sidebar-menu > li > ul.sub-menu a .arrow:before, -ul.page-sidebar-menu > li > ul.sub-menu a .arrow.open:before { - color: #ccc !important; -} - -/* sub menu links effects */ -ul.page-sidebar-menu ul.sub-menu > li.active > a, -ul.page-sidebar-menu ul.sub-menu > li > a:hover, -ul.page-sidebar-menu ul.sub-menu > li.open > a { - color: #818181 !important; - background: #efefef !important; -} -ul.page-sidebar-menu ul.sub-menu > li > a i { - color: #bbb !important; -} - -/* sidebar search */ -.page-sidebar .sidebar-search input { - background-color: #fbfbfb !important; - color: #727272 !important; -} -.page-sidebar .sidebar-search input::-webkit-input-placeholder { - color: #aaa !important; -} -.page-sidebar .sidebar-search input:-moz-placeholder { - color: #aaa !important; -} -.page-sidebar .sidebar-search input:-ms-input-placeholder { - color: #aaa !important; -} -.page-sidebar .sidebar-search .input-box { - border-bottom: 1px solid #e2e2e2 !important; -} -.page-sidebar .sidebar-search .submit { - background-image: url(../../image/search-icon-white.png); -} - -/*** -Sidebar toggler -***/ -.sidebar-toggler { - background-image: url(../../image/sidebar-toggler-light.jpg); - background-color: #333; -} -/* search box bg color on expanded */ -.page-sidebar-closed .page-sidebar .sidebar-search.open .form-container { - background-color: #fbfbfb !important; -} -.page-sidebar-closed .page-sidebar .sidebar-search.open .form-container .remove { - background-image: url("../../image/sidebar-search-close-light.png"); -} -/* sub menu bg color on hover menu item */ -.page-sidebar-closed ul.page-sidebar-menu > li:hover .sub-menu { - background-color: #fbfbfb; -} -/*** -Footer -***/ -.footer .footer-inner { - color: #333333; -} -.footer .footer-tools .go-top { - background-color: #666666; -} -.footer .footer-tools .go-top:hover { - opacity: 0.7; - filter: alpha(opacity=70); -} -.footer .footer-tools .go-top i { - color: #999999; -} -/*** -Footer Layouts (new in v1.3) -***/ -/* begin:fixed footer */ -.page-footer-fixed .footer { - background-color: #434343; -} -.page-footer-fixed .footer .footer-inner { - color: #aaaaaa; -} -.page-footer-fixed .footer .footer-tools .go-top { - background-color: #666666; -} -.page-footer-fixed .footer .footer-tools .go-top i { - color: #aaaaaa; -} -/* end:fixed footer */ -/*** -Gritter Notifications -***/ -.gritter-top { - background: url(../../thirdparty/gritter/images/gritter.png) no-repeat left -30px !important; -} -.gritter-bottom { - background: url(../../thirdparty/gritter/images/gritter.png) no-repeat left bottom !important; -} -.gritter-item { - display: block; - background: url(../../thirdparty/gritter/images/gritter.png) no-repeat left -40px !important; -} -.gritter-close { - background: url(../../thirdparty/gritter/images/gritter.png) no-repeat left top !important; -} -.gritter-title { - text-shadow: none !important; - /* Not supported by IE :( */ - -} -/* for the light (white) version of the gritter notice */ -.gritter-light .gritter-item, -.gritter-light .gritter-bottom, -.gritter-light .gritter-top, -.gritter-light .gritter-close { - background-image: url(../../thirdparty/gritter/images/gritter-light.png) !important; -} -.gritter-item-wrapper a { - color: #18a5ed; -} -.gritter-item-wrapper a:hover { - color: #0b6694; -} -/* begin: boxed page */ -@media (min-width: 992px) { - .page-boxed { - background-color: #E8E8E8 !important; - } - .page-boxed .page-container { - background-color: #fafafa; - border-left: 1px solid #e2e2e2; - border-bottom: 1px solid #e2e2e2; - } - .page-sidebar-reversed.page-boxed .page-container { - border-left: 0; - border-right: 1px solid #e2e2e2; - } - .page-boxed.page-sidebar-fixed .page-container { - border-left: 0; - border-bottom: 0; - } - .page-boxed.page-sidebar-fixed .page-sidebar { - border-left: 1px solid #e2e2e2; - } - .page-boxed.page-sidebar-reversed.page-sidebar-fixed .page-sidebar { - border-right: 1px solid #e2e2e2; - border-left: 0; - } - .page-boxed.page-sidebar-fixed.page-footer-fixed .footer { - background-color: #E8E8E8 !important; - } -} -/* end: boxed page */ -/*** -Landscape phone to portrait tablet -***/ -@media (max-width: 991px) { - /*** - page sidebar - ***/ - .page-sidebar { - background-color: #f1f1f1 !important; - border-right: none !important; - } - .page-sidebar-fixed .page-sidebar { - border-right: none !important; - } - .page-content { - border-left: none !important; - } - ul.page-sidebar-menu > li > a { - border-top: 1px solid #ccc !important; - } - ul.page-sidebar-menu > li:last-child > a { - border-bottom: 0 !important; - } - - ul.page-sidebar-menu > li.open > a, - ul.page-sidebar-menu > li > a:hover { - color: #666666 !important; - background-color: #dddddd !important; - } - ul.page-sidebar-menu > li.open > a { - border-bottom-color: transparent !important; - } - ul.page-sidebar-menu > li.active > a { - color: #ffffff !important; - background-color: #28b779 !important; - } - - ul.page-sidebar-menu ul.sub-menu > li > a { - color: #111 !important; - } - - ul.page-sidebar-menu ul.sub-menu > li.open > a, - ul.page-sidebar-menu ul.sub-menu > li.active > a, - ul.page-sidebar-menu ul.sub-menu > li > a:hover { - color: #666666 !important; - background: #dddddd !important; - } - - .page-sidebar .sidebar-search input { - background-color: #f1f1f1 !important; - color: #ccc !important; - } - - .page-sidebar .sidebar-search .input-box { - border-bottom-color: #ccc !important; - } - .page-sidebar .sidebar-search input::-webkit-input-placeholder { - color: #ccc !important; - } - .page-sidebar .sidebar-search input:-moz-placeholder { - color: #ccc !important; - } - .page-sidebar .sidebar-search input:-ms-input-placeholder { - color: #ccc !important; - } - - /*** - page footer - ***/ - - .footer { - background-color: #434343; - } - - .footer .footer-inner { - color: #cccccc; - } - .footer .footer-tools .go-top { - background-color: #666666; - } - .footer .footer-tools .go-top i { - color: #999999; - } -} - -@media (max-width: 767px) { - body { - background-color: #333 !important; - } -} \ No newline at end of file diff --git a/portal-common/src/main/webapp/common/css/themes/light_ifrm.css b/portal-common/src/main/webapp/common/css/themes/light_ifrm.css deleted file mode 100644 index 640cb51c..00000000 --- a/portal-common/src/main/webapp/common/css/themes/light_ifrm.css +++ /dev/null @@ -1,207 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*** -light_ifrm theme -***/ -td>a>span[class^="ict-"], td>a>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>div>span[class^="ict-"], td>div>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>div>span>span[class^="ict-"], td>div>span>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>span>span[class^="ict-"], td>span>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -/* button style*/ -.buttonRounded, -.buttonRoundedOver, -.buttonRoundedFocused, -.buttonRoundedFocusedOver, -.buttonRoundedDown, -.buttonRoundedFocusedDown, -.buttonRoundedSelected, -.buttonRoundedSelectedFocused, -.buttonRoundedSelectedDown, -.buttonRoundedSelectedFocusedDown, -.buttonRoundedSelectedOver, -.buttonRoundedSelectedFocusedOver, -.buttonRoundedDisabled, -.buttonRoundedSelectedDisabled { - background-color: #5fbf95; - color: #fff; - border: 0px solid #b15a59; - border-radius: 0px; - font-family: Arial, Verdana, sans-serif; - font-size: 12px; - /*padding: 0 3px;*/ - padding-left:7px !important; - padding-right:7px !important; - height:30px !important; -} -.buttonRoundedDisabled, .buttonRoundedSelectedDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} -.buttonRoundedOver, -.buttonRoundedFocusedOver, -.buttonRoundedSelectedFocused, -.buttonRoundedSelectedFocusedOver, -.buttonRoundedDown, -.buttonRoundedFocusedDown { - background-color: #1faa6e; - height:30px !important; -} - -.menuButton, -.menuButtonOver, -.menuButtonDown, -.menuButtonDisabled, -.menuButtonFocused, -.menuButtonFocusedDown, -.menuButtonFocusedOver, -.menuButtonSelected, -.menuButtonSelectedDown, -.menuButtonSelectedOver, -.menuButtonSelectedDisabled { - background-color: #5fbf95; - border: 0px solid #ababab; - color: #fff; - font-family: Arial, Verdana, sans-serif; - font-size: 12px; - padding-left: 7px !important; - padding-right: 7px !important; - height:30px !important; -} -.menuButtonOver { - background-color: #1faa6e; - } -.menuButtonDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} - .buttonTitle, -.buttonTitleOver, -.buttonTitleDown, -.buttonTitleSelected, -.buttonTitleFocused, -.buttonTitleSelectedFocused, -.buttonTitleSelectedOver, -.buttonTitleFocusedOver, -.buttonTitleSelectedFocusedOver, -.buttonTitleSelectedDown, -.buttonTitleFocusedDown, -.buttonTitleSelectedFocusedDown, -.buttonTitleDisabled, -.buttonTitleSelectedDisabled { - color: #fff ; - } - .buttonTitleDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} - /* windowBody dialogBody Style */ - .windowBody, -.dialogBody { - background-color: white; - border: 1px solid #51b88b; - border-top: 0; -} -.windowHeader, -.dialogHeader { - background-color: #51b88b; - padding: 0; -} -/* sectionHeader Style */ -.sectionHeaderopened { - background-color: #51b88b; - } - .sectionHeaderclosed { - background-color: #70c6a0; - } - -#dt_example h1{ -color:#51b88b; -font-weight:600 !important; -} - /*cell style*/ -.tallCellOver, -.tallCellOverDark { - background-color: #d7eae3; - border-bottom: 1px solid #d7eae3; - border-top: 1px solid #d7eae3; - } -.tallCellSelected, -.tallCellSelectedDark { - background: #c7e5da; - border-bottom: 1px solid #c7e5da; - border-top: 1px solid #c7e5da; - } -.tallCellSelectedOver, -.tallCellSelectedOverDark { - background: #c7e5da; - border-bottom: 1px solid #c7e5da; - border-top: 1px solid #c7e5da; - } -.imgHeaderButtonOver, -.imgHeaderButtonDown, -.headerButtonOver, -.headerButtonDown, -.sorterButtonOver, -.sorterButtonDown { - background-color: #aadac5; - } -.cellSelected, -.cellSelectedDark, -.specialColSelected, -.recordSummaryCellSelected, -.recordSummaryCellSelectedDark { - background: #c7e5da !important; - border-bottom: 1px solid #c7e5da; - border-top: 1px solid #c7e5da; - } -.cellSelectedOver, -.cellSelectedOverDark, -.specialColSelectedOver, -.recordSummaryCellSelectedOver, -.recordSummaryCellSelectedOverDark { - background: #c7e5da !important; - border-bottom: 1px solid #c7e5da; - border-top: 1px solid #c7e5da; -} -.cellOver, -.cellOverDark, -.specialColOver, -.recordSummaryCellOver, -.recordSummaryCellOverDark { - background: #d7eae3 !important; - border-bottom: 1px solid #d7eae3; - border-top: 1px solid #d7eae3; - } -.treeCellOver, -.treeCellOverDark { - background-color: #d7eae3; -} - diff --git a/portal-common/src/main/webapp/common/css/themes/purple.css b/portal-common/src/main/webapp/common/css/themes/purple.css deleted file mode 100644 index 08b7c6f1..00000000 --- a/portal-common/src/main/webapp/common/css/themes/purple.css +++ /dev/null @@ -1,375 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*** -Purple theme -***/ -/*** -Reset and overrides -***/ -body { - background-color: #701584 !important; -} -/*** -Page header -***/ -.header { - filter: none !important; - background-image: none !important; - background-color: #470d54 !important; -} -.header .btn-navbar { - background-color: #470d54 !important; -} -.header .navbar-nav .dropdown-toggle:hover, -.header .navbar-nav .dropdown.open .dropdown-toggle { - background-color: #69147b !important; -} -.header .navbar-nav li.dropdown .dropdown-toggle i { - color: #c84fe3 !important; -} -.btn-group .btn.blue.dropdown-toggle{ -background-color: #571067 !important; -} -.page-content .page-breadcrumb.breadcrumb{ -background-color:#F5F5F5 !important; -} -/*** -Header Search -***/ -.header .search-form { - background-color: #360A40; -} - -.header .search-form .form-control{ - color: #ccc; - border: 0; - background-color: #360A40; -} - -.header .search-form .submit { - background: url(../../image/search-icon-purple.png); -} -/*** -Hor menu -***/ -.header .hor-menu ul.nav li a { - color: #ccc; -} - -.header .hor-menu ul.nav li.open > a, -.header .hor-menu ul.nav li > a:hover, -.header .hor-menu ul.nav li > a:focus { - color: #fff; - background: #69147b; -} - -.header .hor-menu .dropdown-menu li:hover > a, -.header .hor-menu ul.nav li.active > a, -.header .hor-menu ul.nav li.active > a:hover { - color: #fff; - background: #e02222 !important; -} - -.header .hor-menu ul.nav li.current > a, -.header .hor-menu ul.nav li.current > a:hover { - color: #fff; - background: #e02222 !important; -} - -.header .hor-menu .dropdown-menu { - background: #69147b; -} -.header .hor-menu .dropdown-menu li > a { - color: #ccc; -} - -.header .hor-menu .hor-menu-search-form-toggler.off { - background: #69147b url(../../image/hor-menu-search-close-white.png) no-repeat center; -} - -.header .hor-menu .search-form { - background:#69147b; -} - -.header .hor-menu .search-form form input { - color: #ccc; -} - -.header .hor-menu .search-form .btn { - color: #ccc; - background: url(../../image/search-icon-white.png) no-repeat center; -} - -.header .hor-menu .search-form form input::-webkit-input-placeholder { /* WebKit browsers */ - color: #ccc; -} -.header .hor-menu .search-form form input:-moz-placeholder { /* Mozilla Firefox 4 to 18 */ - color: #ccc; -} -.header .hor-menu .search-form form input::-moz-placeholder { /* Mozilla Firefox 19+ */ - color: #ccc; -} -.header .hor-menu .search-form form input:-ms-input-placeholder { /* Internet Explorer 10+ */ - color: #ccc; -} - -/*** -Mega Menu -***/ -.mega-menu .mega-menu-submenu { - border-right: 1px solid #78188C; -} - -.mega-menu .mega-menu-submenu li h3 { - color: #fff; -} - -/*** -Page sidebar -***/ -.page-sidebar { - background-color: #701584; -} -ul.page-sidebar-menu > li > a { - border-top: 1px solid #9d1db9 !important; - color: #ffffff !important; -} -ul.page-sidebar-menu > li:last-child > a { - border-bottom: 1px solid transparent !important; -} -ul.page-sidebar-menu > li a i { - color: #cf65e7; -} -ul.page-sidebar-menu > li.open > a, -ul.page-sidebar-menu > li > a:hover, -ul.page-sidebar-menu > li:hover > a { - background: #5d116e; -} -ul.page-sidebar-menu > li.active > a { - background: #571067 !important; - border-top-color: transparent !important; - color: #ffffff; -} -ul.page-sidebar-menu > li.active > a i { - color: #ffffff; -} -ul.page-sidebar-menu > li > ul.sub-menu > li:first-child > a { - border-top: 0px !important; -} -ul.page-sidebar-menu > li > ul.sub-menu > li.active > a, -ul.page-sidebar-menu > li > ul.sub-menu > li > a:hover { - color: #ffffff !important; - background: #951cb0 !important; -} -ul.page-sidebar-menu > li > ul.sub-menu > li > a:hover { - background: #951cb0 !important; -} -/* 3rd level sub menu */ -ul.page-sidebar-menu > li > ul.sub-menu li > ul.sub-menu > li.active > a, -ul.page-sidebar-menu > li > ul.sub-menu li > ul.sub-menu > li > a:hover, -ul.page-sidebar-menu > li > ul.sub-menu li.open > a { - color: #ffffff !important; - background: #951cb0 !important; -} -/* font color for all sub menu links*/ -ul.page-sidebar-menu li > ul.sub-menu > li > a { - color: #e4a7f1; -} -/* menu arrows */ -ul.page-sidebar-menu > li > a .arrow:before, -ul.page-sidebar-menu > li > a .arrow.open:before { - color: #c239df !important; -} -ul.page-sidebar-menu > li > ul.sub-menu a .arrow:before, -ul.page-sidebar-menu > li > ul.sub-menu a .arrow.open:before { - color: #bb23dc !important; -} -ul.page-sidebar-menu > li > a > .arrow.open:before { - color: #c84fe3 !important; -} -ul.page-sidebar-menu > li.active > a .arrow:before, -ul.page-sidebar-menu > li.active > a .arrow.open:before { - color: #ffffff !important; -} -/* sidebar search */ -.page-sidebar .sidebar-search input { - background-color: #4b0e58 !important; - color: #bf55d7; -} -.page-sidebar .sidebar-search input::-webkit-input-placeholder { - color: #b84dd0 !important; -} -.page-sidebar .sidebar-search input:-moz-placeholder { - color: #b84dd0 !important; -} -.page-sidebar .sidebar-search input:-ms-input-placeholder { - color: #b84dd0 !important; -} -.page-sidebar .sidebar-search input { - background-color: #701584 !important; - color: #bfbfbf !important; -} -.page-sidebar .sidebar-search .input-box { - border-bottom: 1px solid #a93bc1 !important; -} -.page-sidebar .sidebar-search .submit { - background-image: url(../../image/search-icon-purple.png); -} -/*** -Sidebar toggler -***/ -.sidebar-toggler { - background-image: url(../../image/sidebar-toggler-purple.jpg); - background-color: #4b0e58; -} -/* search box bg color on expanded */ -.page-sidebar-closed .page-sidebar .sidebar-search.open .form-container { - background-color: #701584 !important; -} -.page-sidebar-closed .page-sidebar .sidebar-search.open .form-container .remove { - background-image: url("../../image/sidebar-search-close-purple.png"); -} -/* sub menu bg color on hover menu item */ -.page-sidebar-closed ul.page-sidebar-menu > li:hover .sub-menu { - background-color: #701584; -} -/*** -Footer -***/ -.footer .footer-inner { - color: #c84fe3; -} -.footer .footer-tools .go-top { - background-color: #8a1aa3; -} -.footer .footer-tools .go-top:hover { - opacity: 0.7; - filter: alpha(opacity=70); -} -.footer .footer-tools .go-top i { - color: #c84fe3; -} -/*** -Footer Layouts (new in v1.3) -***/ -/* begin:fixed footer */ -.page-footer-fixed .footer { - background-color: #4b0e58; -} -.page-footer-fixed .footer .footer-inner { - color: #c84fe3; -} -.page-footer-fixed .footer .footer-tools .go-top { - background-color: #8a1aa3; -} -.page-footer-fixed .footer .footer-tools .go-top i { - color: #c84fe3; -} -/* end:fixed footer */ -/*** -Gritter Notifications -***/ -.gritter-top { - background: url(../../thirdparty/gritter/images/gritter-purple.png) no-repeat left -30px !important; -} -.gritter-bottom { - background: url(../../thirdparty/gritter/images/gritter-purple.png) no-repeat left bottom !important; -} -.gritter-item { - display: block; - background: url(../../thirdparty/gritter/images/gritter-purple.png) no-repeat left -40px !important; -} -.gritter-close { - background: url(../../thirdparty/gritter/images/gritter-purple.png) no-repeat left top !important; -} -.gritter-title { - text-shadow: none !important; - /* Not supported by IE :( */ - -} -/* for the light (white) version of the gritter notice */ -.gritter-light .gritter-item, -.gritter-light .gritter-bottom, -.gritter-light .gritter-top, -.gritter-light .gritter-close { - background-image: url(../../thirdparty/gritter/images/gritter-light.png) !important; -} -.gritter-item-wrapper a { - color: #18a5ed; -} -.gritter-item-wrapper a:hover { - color: #0b6694; -} -/* begin: boxed page */ -@media (min-width: 992px) { - .page-boxed { - background-color: #5a116a !important; - } - .page-boxed .page-container { - background-color: #701584; - border-left: 1px solid #a11ebd; - border-bottom: 1px solid #a11ebd; - } - .page-boxed.page-sidebar-reversed .page-container { - border-left: 0; - border-right: 1px solid #a11ebd; - } - .page-boxed.page-sidebar-fixed .page-container { - border-left: 0; - border-bottom: 0; - } - .page-boxed.page-sidebar-reversed.page-sidebar-fixed .page-container { - border-left: 0; - border-right: 0; - border-bottom: 0; - } - .page-boxed.page-sidebar-fixed .page-sidebar { - border-left: 1px solid #a11ebd; - } - .page-boxed.page-sidebar-reversed.page-sidebar-fixed .page-sidebar { - border-right: 1px solid #a11ebd; - border-left: 0; - } - .page-boxed.page-sidebar-fixed.page-footer-fixed .footer { - background-color: #5a116a !important; - } -} -/* end: boxed page */ -/*** -Landscape phone to portrait tablet -***/ -@media (max-width: 991px) { - /*** - page sidebar - ***/ - .page-sidebar { - background-color: #520f61 !important; - } - ul.page-sidebar-menu > li > a { - border-top: 1px solid #83189a !important; - } - ul.page-sidebar-menu > li:last-child > a { - border-bottom: 0 !important; - } - .page-sidebar .sidebar-search input { - background-color: #520f61 !important; - } - ul.page-sidebar-menu > li.open > a, - ul.page-sidebar-menu > li > a:hover, - ul.page-sidebar-menu > li:hover > a { - background: #430d4f; - } -} diff --git a/portal-common/src/main/webapp/common/css/themes/purple_ifrm.css b/portal-common/src/main/webapp/common/css/themes/purple_ifrm.css deleted file mode 100644 index 7a4826d5..00000000 --- a/portal-common/src/main/webapp/common/css/themes/purple_ifrm.css +++ /dev/null @@ -1,207 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*** -Purple_ifrm theme -***/ -td>a>span[class^="ict-"], td>a>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>div>span[class^="ict-"], td>div>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>div>span>span[class^="ict-"], td>div>span>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>span>span[class^="ict-"], td>span>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -/* button style*/ -.buttonRounded, -.buttonRoundedOver, -.buttonRoundedFocused, -.buttonRoundedFocusedOver, -.buttonRoundedDown, -.buttonRoundedFocusedDown, -.buttonRoundedSelected, -.buttonRoundedSelectedFocused, -.buttonRoundedSelectedDown, -.buttonRoundedSelectedFocusedDown, -.buttonRoundedSelectedOver, -.buttonRoundedSelectedFocusedOver, -.buttonRoundedDisabled, -.buttonRoundedSelectedDisabled { - background-color: #b045c7; - color: #fff !important; - border: 0px solid #b15a59; - font-family: Arial, Verdana, sans-serif; - font-size: 12px; - /*padding: 0 3px;*/ - padding-left:7px !important; - padding-right:7px !important; - height:30px !important; -} -.buttonRoundedDisabled, .buttonRoundedSelectedDisabled{ - background-color: #f0f0f0; - color: #dadada !important; - opacity: 1; -} -.buttonRoundedOver, -.buttonRoundedFocusedOver, -.buttonRoundedSelectedFocused, -.buttonRoundedSelectedFocusedOver , -.buttonRoundedDown, -.buttonRoundedFocusedDown{ - background-color: #8f32a3; - height:30px !important; -} - -.menuButton, -.menuButtonOver, -.menuButtonDown, -.menuButtonDisabled, -.menuButtonFocused, -.menuButtonFocusedDown, -.menuButtonFocusedOver, -.menuButtonSelected, -.menuButtonSelectedDown, -.menuButtonSelectedOver, -.menuButtonSelectedDisabled { - background-color: #b045c7; - border: 0px solid #ababab; - color: #fff !important; - font-family: Arial, Verdana, sans-serif; - font-size: 12px; - padding-left: 7px !important; - padding-right: 7px !important; - height:30px !important; -} -.menuButtonOver { - background-color: #8f32a3; - } -.menuButtonDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} - .buttonTitle, -.buttonTitleOver, -.buttonTitleDown, -.buttonTitleSelected, -.buttonTitleFocused, -.buttonTitleSelectedFocused, -.buttonTitleSelectedOver, -.buttonTitleFocusedOver, -.buttonTitleSelectedFocusedOver, -.buttonTitleSelectedDown, -.buttonTitleFocusedDown, -.buttonTitleSelectedFocusedDown, -.buttonTitleDisabled, -.buttonTitleSelectedDisabled { - color: #fff ; - } - .buttonTitleDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} - /* windowBody dialogBody Style */ - .windowBody, -.dialogBody { - background-color: white; - border: 1px solid #5d116e; - border-top: 0; -} - -.windowHeader, -.dialogHeader { - background-color: #5d116e; - padding: 0; -} -/* sectionHeader Style */ -.sectionHeaderopened { - background-color: #8f32a3; - } - .sectionHeaderclosed { - background-color: #a03bb6; - } - -#dt_example h1{ -color:#8f32a3; -font-weight:600 !important; -} - /*cell style*/ -.tallCellOver, -.tallCellOverDark { - background-color: #e7c7ee; - border-bottom: 1px solid #e7c7ee; - border-top: 1px solid #e7c7ee; - } -.tallCellSelected, -.tallCellSelectedDark { - background: #d49ce0; - border-bottom: 1px solid #d49ce0; - border-top: 1px solid #d49ce0; - } -.tallCellSelectedOver, -.tallCellSelectedOverDark { - background: #d49ce0; - border-bottom: 1px solid #d49ce0; - border-top: 1px solid #d49ce0; - } -.imgHeaderButtonOver, -.imgHeaderButtonDown, -.headerButtonOver, -.headerButtonDown, -.sorterButtonOver, -.sorterButtonDown { - background-color: #ecd4f1; - } -.cellSelected, -.cellSelectedDark, -.specialColSelected, -.recordSummaryCellSelected, -.recordSummaryCellSelectedDark { - background: #d49ce0 !important; - border-bottom: 1px solid #d49ce0; - border-top: 1px solid #d49ce0; - } -.cellSelectedOver, -.cellSelectedOverDark, -.specialColSelectedOver, -.recordSummaryCellSelectedOver, -.recordSummaryCellSelectedOverDark { - background: #d49ce0 !important; - border-bottom: 1px solid #d49ce0; - border-top: 1px solid #d49ce0; -} -.cellOver, -.cellOverDark, -.specialColOver, -.recordSummaryCellOver, -.recordSummaryCellOverDark { - background: #e7c7ee !important; - border-bottom: 1px solid #e7c7ee; - border-top: 1px solid #e7c7ee; - } -.treeCellOver, -.treeCellOverDark { - background-color: #e7c7ee; -} - diff --git a/portal-common/src/main/webapp/common/css/themes/zteblue.css b/portal-common/src/main/webapp/common/css/themes/zteblue.css deleted file mode 100644 index c95553fa..00000000 --- a/portal-common/src/main/webapp/common/css/themes/zteblue.css +++ /dev/null @@ -1,398 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*** -Blue theme -***/ -/*** -Reset and overrides -***/ -body { - background-color: #e8e8e8 !important; -} -/*** -Page header -***/ -.header { - filter: none !important; - background-image: none !important; - background-color: #1b8fd3 !important; -} -.header .btn-navbar { - background-color: #1b8fd3!important; -} -.header .navbar-nav .dropdown-toggle:hover, -.header .navbar-nav .dropdown.open .dropdown-toggle { - color: #fff; - background-color: #ee5c00 !important; -} -.header .navbar-nav li.dropdown .dropdown-toggle i { - color: #fff !important; -} -.page-content .page-breadcrumb.breadcrumb .dashboard-date-range{ -background-color: #ee5c00 !important; -} -.btn-group .btn.blue.dropdown-toggle{ -background-color: #ee5c00 !important; -} -.page-content .page-breadcrumb.breadcrumb{ -background-color:#F5F5F5 !important; -} -/*** -Header Search -***/ -.header .search-form { - background-color: #0B4263; -} - -.header .search-form .form-control{ - color: #68bbec; - border: 0; - background-color: #0B4263; -} - -.header .search-form .submit { - background: url(../../image/search-icon-blue.png); -} -.zte-theme-panel > .toggler:hover { - background-color: #146a9d !important; -} -/*** -Hor menu -***/ -.header .hor-menu ul.nav li a { - color: #ccc; -} - -.header .hor-menu ul.nav li.open > a, -.header .hor-menu ul.nav li > a:hover, -.header .hor-menu ul.nav li > a:focus { - color: #fff; - background: #146a9d; -} - -.header .hor-menu .dropdown-menu li:hover > a, -.header .hor-menu ul.nav li.active > a, -.header .hor-menu ul.nav li.active > a:hover { - color: #fff; - background: #ee5c00 !important; -} -.header.navbar .hor-menu ul.nav li.current .selected, -.header.navbar .hor-menu ul.nav li.active .selected { - border-top: 6px solid #ee5c00; - } -.header .hor-menu ul.nav li.current > a, -.header .hor-menu ul.nav li.current > a:hover { - color: #fff; - background: #e02222 !important; -} - -.header .hor-menu .dropdown-menu { - background: #146a9d; -} -.header .hor-menu .dropdown-menu li > a { - color: #ccc; -} - -.header .hor-menu .hor-menu-search-form-toggler.off { - background: #146a9d url(../../image/hor-menu-search-close-white.png) no-repeat center; -} - -.header .hor-menu .search-form { - background:#146a9d; -} - -.header .hor-menu .search-form form input { - color: #ccc; -} - -.header .hor-menu .search-form .btn { - color: #ccc; - background: url(../../image/search-icon-white.png) no-repeat center; -} - -.header .hor-menu .search-form form input::-webkit-input-placeholder { /* WebKit browsers */ - color: #ccc; -} -.header .hor-menu .search-form form input:-moz-placeholder { /* Mozilla Firefox 4 to 18 */ - color: #ccc; -} -.header .hor-menu .search-form form input::-moz-placeholder { /* Mozilla Firefox 19+ */ - color: #ccc; -} -.header .hor-menu .search-form form input:-ms-input-placeholder { /* Internet Explorer 10+ */ - color: #ccc; -} - -/*** -Mega Menu -***/ -.mega-menu .mega-menu-submenu { - border-right: 1px solid #1876AD; -} - -.mega-menu .mega-menu-submenu li h3 { - color: #fff; -} - -/*** -Page sidebar -***/ -.page-sidebar { - background-color: #e8e8e8; -} -ul.page-sidebar-menu > li > a { - border-top: 1px solid #d3d1d1 !important; - /*color: black !important;*/ -} -ul.page-sidebar-menu > li:last-child > a { - border-bottom: 1px solid transparent !important; -} -ul.page-sidebar-menu > li a i { - /*color: black !important;*/ -} -ul.page-sidebar-menu > li.open > a{ -border-bottom: 1px solid #d3d1d1 !important; -color: #0d638f; -} -ul.page-sidebar-menu > li > a:hover -/*ul.page-sidebar-menu > li:hover > a */{ - background: #1b8fd3; - color: #ffffff; -} -ul.page-sidebar-menu > li.active > a { - background: #ee5c00 !important; - border-top-color: transparent !important; - color: #ffffff; -} -ul.page-sidebar-menu > li.active > a i { - color: #ffffff; -} -ul.page-sidebar-menu > li > ul.sub-menu > li:first-child > a { - border-top: 0px !important; -} -ul.page-sidebar-menu > li > ul.sub-menu > li.active > a, -ul.page-sidebar-menu > li > ul.sub-menu > li > a:hover { - color: #ffffff !important; - background: #1b8fd3 !important; -} -ul.page-sidebar-menu > li > ul.sub-menu > li > a:hover { - background: #1b8fd3 !important; -} -/* 3rd level sub menu */ -ul.page-sidebar-menu > li > ul.sub-menu li > ul.sub-menu > li.active > a, -ul.page-sidebar-menu > li > ul.sub-menu li > ul.sub-menu > li > a:hover, -ul.page-sidebar-menu > li > ul.sub-menu li.open > a { - color: #ffffff !important; - background: #1b8fd3 !important; -} -/* font color for all sub menu links*/ -ul.page-sidebar-menu li > ul.sub-menu > li > a { - /*color: #c3e4f7;*/ -} -/* menu arrows */ -ul.page-sidebar-menu > li > a .arrow:before, -ul.page-sidebar-menu > li > a .arrow.open:before { - /*color: #51b1e9 !important;*/ -} -ul.page-sidebar-menu > li > ul.sub-menu a .arrow:before, -ul.page-sidebar-menu > li > ul.sub-menu a .arrow.open:before { - color: #3ba6e6 !important; -} -ul.page-sidebar-menu > li > a > .arrow.open:before { - /* color: #68bbec !important;*/ -} -ul.page-sidebar-menu > li.active > a .arrow:before, -ul.page-sidebar-menu > li.active > a .arrow.open:before { - color: #ffffff !important; -} -/* sidebar search */ -.page-sidebar .sidebar-search input { - background-color: #0f5179 !important; - color: #0d638f; -} -.page-sidebar .sidebar-search input::-webkit-input-placeholder { - color: #0d638f !important; -} -.page-sidebar .sidebar-search input:-moz-placeholder { - color: #0d638f !important; -} -.page-sidebar .sidebar-search input:-ms-input-placeholder { - color: #0d638f !important; -} -.page-sidebar .sidebar-search input { - background-color: #e8e8e8 !important; - /* color: #bfbfbf !important;*/ -} -.page-sidebar .sidebar-search .input-box { - border-bottom: 1px solid #0d638f !important; -} -.page-sidebar .sidebar-search .submit { - background-image: url(../../image/search-icon-blue.png); -} -/*** -Sidebar toggler -***/ -.sidebar-toggler { - background-image: url(../../image/sidebar-toggler-grey.jpg); - background-color: #0f5179; -} -/* search box bg color on expanded */ -.page-sidebar-closed .page-sidebar .sidebar-search.open .form-container { - background-color: #1b8fd3 !important; -} -.page-sidebar-closed .page-sidebar .sidebar-search.open .form-container .remove { - background-image: url("../../image/sidebar-search-close-blue.png"); -} -/* sub menu bg color on hover menu item */ -.page-sidebar-closed ul.page-sidebar-menu > li:hover .sub-menu { - background-color: #1b8fd3; -} -/*** -Footer -***/ -.footer .footer-inner { - color: #7c7c7c; -} -.footer .footer-tools .go-top { - background-color: #1985c6; -} -.footer .footer-tools .go-top:hover { - opacity: 0.7; - filter: alpha(opacity=70); -} -.footer .footer-tools .go-top i { - color: #68bbec; -} -/*** -Footer Layouts (new in v1.3) -***/ -/* begin:fixed footer */ -.page-footer-fixed .footer { - background-color: #0f5179; -} -.page-footer-fixed .footer .footer-inner { - color: #68bbec; -} -.page-footer-fixed .footer .footer-tools .go-top { - background-color: #1985c6; -} -.page-footer-fixed .footer .footer-tools .go-top i { - color: #68bbec; -} -/* end:fixed footer */ -/*** -Gritter Notifications -***/ -.gritter-top { - background: url(../../thirdparty/gritter/images/gritter-blue.png) no-repeat left -30px !important; -} -.gritter-bottom { - background: url(../../thirdparty/gritter/images/gritter-blue.png) no-repeat left bottom !important; -} -.gritter-item { - display: block; - background: url(../../thirdparty/gritter/images/gritter-blue.png) no-repeat left -40px !important; -} -.gritter-close { - background: url(../../thirdparty/gritter/images/gritter-blue.png) no-repeat left top !important; -} -.gritter-title { - text-shadow: none !important; - /* Not supported by IE :( */ - -} -/* for the light (white) version of the gritter notice */ -.gritter-light .gritter-item, -.gritter-light .gritter-bottom, -.gritter-light .gritter-top, -.gritter-light .gritter-close { - background-image: url(../../thirdparty/gritter/images/gritter-light.png) !important; -} -.gritter-item-wrapper a { - color: #18a5ed; -} -.gritter-item-wrapper a:hover { - color: #0b6694; -} -/* begin: boxed page */ -@media (min-width: 992px) { - .page-boxed { - background-color: #125e8b !important; - } - .page-boxed .page-container { - background-color: #1570a6; - border-left: 1px solid #1c98e1; - border-bottom: 1px solid #1c98e1; - } - .page-boxed.page-sidebar-reversed .page-container { - border-left: 0; - border-right: 1px solid #1c98e1; - } - .page-boxed.page-sidebar-fixed .page-container { - border-left: 0; - border-bottom: 0; - } - .page-boxed.page-sidebar-reversed.page-sidebar-fixed .page-container { - border-left: 0; - border-right: 0; - border-bottom: 0; - } - .page-boxed.page-sidebar-fixed .page-sidebar { - border-left: 1px solid #1c98e1; - } - .page-boxed.page-sidebar-reversed.page-sidebar-fixed .page-sidebar { - border-right: 1px solid #1c98e1; - border-left: 0; - } - .page-boxed.page-sidebar-fixed.page-footer-fixed .footer { - background-color: #125e8b !important; - } -} -/* end: boxed page */ -/*** -Landscape phone to portrait tablet -***/ -@media (max-width: 991px) { - /*** - page sidebar - ***/ - .page-sidebar { - background-color: #3d95c9 !important; - } - ul.page-sidebar-menu > li > a { - border-top: 1px solid #187fbd !important; - } - ul.page-sidebar-menu > li:last-child > a { - border-bottom: 0 !important; - } - .page-sidebar .sidebar-search input { - background-color: #3d95c9 !important; - } - ul.page-sidebar-menu > li.open > a{ - border-bottom: 1px solid #187fbd !important; - - } - ul.page-sidebar-menu > li > a:hover/*, - ul.page-sidebar-menu > li:hover > a */{ - background: #0e4b70; - } - ul.page-sidebar-menu > li a i{ - color:#fff !important; - } - ul.page-sidebar-menu > li a{ - color:#fff !important; - } -} diff --git a/portal-common/src/main/webapp/common/css/themes/zteblue_ifrm.css b/portal-common/src/main/webapp/common/css/themes/zteblue_ifrm.css deleted file mode 100644 index bb4a3820..00000000 --- a/portal-common/src/main/webapp/common/css/themes/zteblue_ifrm.css +++ /dev/null @@ -1,206 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*** -light_ifrm theme -***/ -td>a>span[class^="ict-"], td>a>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>div>span[class^="ict-"], td>div>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>div>span>span[class^="ict-"], td>div>span>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>span>span[class^="ict-"], td>span>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -/* button style*/ -.buttonRounded, -.buttonRoundedOver, -.buttonRoundedFocused, -.buttonRoundedFocusedOver, -.buttonRoundedDown, -.buttonRoundedFocusedDown, -.buttonRoundedSelected, -.buttonRoundedSelectedFocused, -.buttonRoundedSelectedDown, -.buttonRoundedSelectedFocusedDown, -.buttonRoundedSelectedOver, -.buttonRoundedSelectedFocusedOver, -.buttonRoundedDisabled, -.buttonRoundedSelectedDisabled { - background-color: #4da9df; - color: #fff; - border: 0px solid #b15a59; - border-radius: 0px; - font-family: Arial, Verdana, sans-serif; - font-size: 12px; - /*padding: 0 3px;*/ - padding-left:7px !important; - padding-right:7px !important; - height:30px !important; -} -.buttonRoundedDisabled, .buttonRoundedSelectedDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} -.buttonRoundedOver, -.buttonRoundedFocusedOver, -.buttonRoundedSelectedFocused, -.buttonRoundedSelectedFocusedOver, -.buttonRoundedDown, -.buttonRoundedFocusedDown { - background-color: #479fd3; - height:30px !important; -} - -.menuButton, -.menuButtonOver, -.menuButtonDown, -.menuButtonDisabled, -.menuButtonFocused, -.menuButtonFocusedDown, -.menuButtonFocusedOver, -.menuButtonSelected, -.menuButtonSelectedDown, -.menuButtonSelectedOver, -.menuButtonSelectedDisabled { - background-color: #4da9df; - border: 0px solid #ababab; - color: #fff; - font-family: Arial, Verdana, sans-serif; - font-size: 12px; - padding-left: 7px !important; - padding-right: 7px !important; - height:30px !important; -} -.menuButtonOver { - background-color: #479fd3; - } -.menuButtonDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} - .buttonTitle, -.buttonTitleOver, -.buttonTitleDown, -.buttonTitleSelected, -.buttonTitleFocused, -.buttonTitleSelectedFocused, -.buttonTitleSelectedOver, -.buttonTitleFocusedOver, -.buttonTitleSelectedFocusedOver, -.buttonTitleSelectedDown, -.buttonTitleFocusedDown, -.buttonTitleSelectedFocusedDown, -.buttonTitleDisabled, -.buttonTitleSelectedDisabled { - color: #fff ; - } - .buttonTitleDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} - /* windowBody dialogBody Style */ - .windowBody, -.dialogBody { - background-color: white; - border: 1px solid #2c9ada; - border-top: 0; -} -.windowHeader, -.dialogHeader { - background-color: #2c9ada; - padding: 0; -} -/* sectionHeader Style */ -.sectionHeaderopened { - background-color: #438eb9; - } - .sectionHeaderclosed { - background-color: #3a85b0; - } - -#dt_example h1{ -color:#438eb9; -font-weight:600 !important; -} - /*cell style*/ -.tallCellOver, -.tallCellOverDark { - background-color: #ffede4; - border-bottom: 1px solid #ffede4; - border-top: 1px solid #ffede4; - } -.tallCellSelected, -.tallCellSelectedDark { - background: #f8dddd; - border-bottom: 1px solid #f8dddd; - border-top: 1px solid #f8dddd; - } -.tallCellSelectedOver, -.tallCellSelectedOverDark { - background: #f8dddd; - border-bottom: 1px solid #f8dddd; - border-top: 1px solid #f8dddd; - } -.imgHeaderButtonOver, -.imgHeaderButtonDown, -.headerButtonOver, -.headerButtonDown, -.sorterButtonOver, -.sorterButtonDown { - background-color: #c4d7e2; - } -.cellSelected, -.cellSelectedDark, -.specialColSelected, -.recordSummaryCellSelected, -.recordSummaryCellSelectedDark { - background: #f8dddd !important; - border-bottom: 1px solid #f8dddd; - border-top: 1px solid #f8dddd; - } -.cellSelectedOver, -.cellSelectedOverDark, -.specialColSelectedOver, -.recordSummaryCellSelectedOver, -.recordSummaryCellSelectedOverDark { - background: #f8dddd !important; - border-bottom: 1px solid #f8dddd; - border-top: 1px solid #f8dddd; -} -.cellOver, -.cellOverDark, -.specialColOver, -.recordSummaryCellOver, -.recordSummaryCellOverDark { - background: #ffede4 !important; - border-bottom: 1px solid #ffede4; - border-top: 1px solid #ffede4; - } -.treeCellOver, -.treeCellOverDark { - background-color: #ffede4; -} diff --git a/portal-common/src/main/webapp/common/css/themes/ztebluelight.css b/portal-common/src/main/webapp/common/css/themes/ztebluelight.css deleted file mode 100644 index 10dda58a..00000000 --- a/portal-common/src/main/webapp/common/css/themes/ztebluelight.css +++ /dev/null @@ -1,450 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*** -Blue theme -***/ -/*** -Reset and overrides -***/ -body { - background-color: #f1f3fa !important; - font-family:"microsoft yahei"; -} -.page-content{ -background-color:#f1f3fa !important; -} -.page-sidebar-menu > li.active > a .selected{ -background-image:url("../../image/sidebar-menu-arrow-bluelight.png") -} -/*** -Page header -***/ -.header { - filter: none !important; - background-image: none !important; - background-color: #3366CC !important; -} -.header .btn-navbar { - background-color: #3366CC!important; -} -.header .navbar-nav .dropdown-toggle:hover, -.header .navbar-nav .dropdown.open .dropdown-toggle { - color: #fff; - background-color: #3061c1 !important; -} -.header .navbar-nav li.dropdown .dropdown-toggle i { - color: white !important; -} -.zte-theme-panel > .toggler:hover { - background-color: #6192f7 !important; -} -.page-content .page-breadcrumb.breadcrumb .dashboard-date-range{ - background-color: #3366CC !important; -} -.btn-group .btn.blue.dropdown-toggle{ - background-color: #3366CC !important; -} -.btn-group .btn.blue.dropdown-toggle:hover{ - background-color: #2f5ebd !important; -} -/*** -Header Search -***/ -.header .search-form { - background-color: #0B4263; -} - -.header .search-form .form-control{ - color: #68bbec; - border: 0; - background-color: #0B4263; -} - -.header .search-form .submit { - background: url(../../image/search-icon-blue.png); -} - -/*** -Hor menu -***/ -.header .hor-menu ul.nav li a { - color: #fff; -} - -.header .hor-menu ul.nav li.open > a, -.header .hor-menu ul.nav li > a:hover, -.header .hor-menu ul.nav li > a:focus { - color: #bdcff4; - background: #3366CC; -} -.header .hor-menu .dropdown-menu li > a { - color: #333 !important ; -} -.header .hor-menu .dropdown-menu li:hover > a{ - color: #3366CC !important; - background: #e5e8f0 !important; -} -.dropdown-menu .mega-menu-content .row .mega-menu-submenu .active > a, -.dropdown-menu .mega-menu-content .row .mega-menu-submenu .active > a:hover{ - color:#333 !important; - background: #D9E5FF !important; -} -.header .hor-menu ul.nav li.active > a, -.header .hor-menu ul.nav li.active > a:hover { - color: #fff; - background: #3366CC !important; -} -.header .hor-menu ul.nav li.current > a, -.header .hor-menu ul.nav li.current > a:hover { - color: #3366CC; - background: #4174dc !important; -} - -.header .hor-menu .dropdown-menu { - background: #fff ; - border: 1px #769be6 solid !important ; - border-top:0 !important ; - border-bottom-right-radius:5px !important ; - border-bottom-left-radius:5px !important ; - padding-right:20px; -} - -.header .hor-menu .hor-menu-search-form-toggler.off { - background: #4d7ee1 url(../../image/hor-menu-search-close-white.png) no-repeat center; -} - -.header .hor-menu .search-form { - background:#4d7ee1; -} - -.header .hor-menu .search-form form input { - color: #ccc; -} -.header .hor-menu .search-form form input::-webkit-input-placeholder { /* WebKit browsers */ - color: #ccc; -} -.header .hor-menu .search-form form input:-moz-placeholder { /* Mozilla Firefox 4 to 18 */ - color: #ccc; -} -.header .hor-menu .search-form form input::-moz-placeholder { /* Mozilla Firefox 19+ */ - color: #ccc; -} -.header .hor-menu .search-form form input:-ms-input-placeholder { /* Internet Explorer 10+ */ - color: #ccc; -} - -.header.navbar .hor-menu ul.nav li.current .selected, -.header.navbar .hor-menu ul.nav li.active .selected { - border-top: 6px solid #3366CC; -} -/*** -Mega Menu -***/ -.mega-menu .mega-menu-submenu { - //border-right: 1px solid #d5d5d5; -} - -.mega-menu .mega-menu-submenu li h3 { - color: #5681DA; - font-weight:600 !important; - -} -/*.mega-menu-dropdown .fa, -#page-f-sidebar-menu .sub-menu .fa, -.sub-menu .sub-menu .fa -{ -display:none; -}去掉左边二级菜单图标*/ -#main_hormenu .mega-menu-dropdown{ -margin-left:30px; -} -/*** -Page sidebar -***/ -.page-sidebar { - background-color: #f1f3fa; -} -ul.page-sidebar-menu > li:last-child > a { - border-bottom: 1px solid transparent !important; -} -.ul.page-sidebar-menu > li a i { - /* color: #0d638f;*/ -} -ul.page-sidebar-menu > li.open > a{ -border-bottom: 1px solid #e0e2e9 !important; -} -ul.page-sidebar-menu > li > a { - border-top: 1px solid #e0e2e9 !important; - /*background: #fff !important;*/ - color: #2e487d !important; -} -ul.page-sidebar-menu > li > a:hover{ - background: #fff !important; - color: #3366CC !important; -} -ul.page-sidebar-menu > li.active > a { - background: #3366CC !important; - border-top-color: transparent !important; - color: #ffffff !important; -} -ul.page-sidebar-menu > li.active > a:hover { - background: #507edb !important; - border-top-color: transparent !important; - color: #ffffff !important; -} -ul.page-sidebar-menu > li.active > a i { - color: #ffffff; -} -ul.page-sidebar-menu > li > ul.sub-menu > li:first-child > a { - border-top: 0px !important; -} -ul.page-sidebar-menu > li > ul.sub-menu > li > a{ - color: #2e487d;/*right menu*/ -} -ul.page-sidebar-menu > li > ul.sub-menu > li.active > a { - color: #3366CC !important; - background: #dde2f1 !important; -} -ul.page-sidebar-menu > li > ul.sub-menu > li.active > a:hover { - background: #e3e7f5 !important; -} -ul.page-sidebar-menu > li > ul.sub-menu > li > a:hover { - background: #eee !important; - color:#3366CC; -} -ul.page-sidebar-menu > li.open > a{ - color:#fff; - } -/* 3rd level sub menu */ -ul.page-sidebar-menu > li > ul.sub-menu li > ul.sub-menu > li.active > a, -ul.page-sidebar-menu > li > ul.sub-menu li > ul.sub-menu > li > a:hover, -ul.page-sidebar-menu > li > ul.sub-menu li.open > a { - color: #3366CC !important; - background: #fff !important; -} -/* font color for all sub menu links*/ -ul.page-sidebar-menu li > ul.sub-menu > li > a { - /*color: #c3e4f7;*/ -} -/* menu arrows */ -ul.page-sidebar-menu > li > a .arrow:before, -ul.page-sidebar-menu > li > a .arrow.open:before { - /*color: #51b1e9 !important;*/ -} -ul.page-sidebar-menu > li > ul.sub-menu a .arrow:before, -ul.page-sidebar-menu > li > ul.sub-menu a .arrow.open:before { - color: #3ba6e6 !important; -} -ul.page-sidebar-menu > li > a > .arrow.open:before { - color: #68bbec !important; -} -ul.page-sidebar-menu > li.active > a .arrow:before, -ul.page-sidebar-menu > li.active > a .arrow.open:before { - color: #ffffff !important; -} -/* sidebar search */ -.page-sidebar .sidebar-search input { - background-color: #0f5179 !important; - color: #000000; -} -.page-sidebar .sidebar-search input::-webkit-input-placeholder { - color: #000000 !important; -} -.page-sidebar .sidebar-search input:-moz-placeholder { - color: #000000 !important; -} -.page-sidebar .sidebar-search input:-ms-input-placeholder { - color: #000000 !important; -} -.page-sidebar .sidebar-search input { - background-color: #eeeeee !important; - /*color: white !important;*/ -} -.page-sidebar .sidebar-search .input-box { - border-bottom: 1px solid #000000 !important; -} -.page-sidebar .sidebar-search .submit { - background-image: url(../../image/search-icon-blue.png); -} -/*** -Sidebar toggler -***/ -.sidebar-toggler { - background-image: url(../../image/sidebar-toggler-grey.jpg); - background-color: #0f5179; -} -/* search box bg color on expanded */ -.page-sidebar-closed .page-sidebar .sidebar-search.open .form-container { - background-color: #3366CC !important; -} -.page-sidebar-closed .page-sidebar .sidebar-search.open .form-container .remove { - background-image: url("../../image/sidebar-search-close-blue.png"); -} -/* sub menu bg color on hover menu item */ -.page-sidebar-closed ul.page-sidebar-menu > li:hover .sub-menu { - background-color: #e4e4e4; -} -/*** -Footer -***/ -.footer .footer-inner { - color: #7c7c7c; -} -.footer .footer-tools .go-top { - background-color: #1985c6; -} -.footer .footer-tools .go-top:hover { - opacity: 0.7; - filter: alpha(opacity=70); -} -.footer .footer-tools .go-top i { - color: #68bbec; -} -/*** -Footer Layouts (new in v1.3) -***/ -/* begin:fixed footer */ -.page-footer-fixed .footer { - background-color: #0f5179; -} -.page-footer-fixed .footer .footer-inner { - color: #68bbec; -} -.page-footer-fixed .footer .footer-tools .go-top { - background-color: #1985c6; -} -.page-footer-fixed .footer .footer-tools .go-top i { - color: #68bbec; -} -/* end:fixed footer */ -/*** -Gritter Notifications -***/ -.gritter-top { - background: url(../../thirdparty/gritter/images/gritter-blue.png) no-repeat left -30px !important; -} -.gritter-bottom { - background: url(../../thirdparty/gritter/images/gritter-blue.png) no-repeat left bottom !important; -} -.gritter-item { - display: block; - background: url(../../thirdparty/gritter/images/gritter-blue.png) no-repeat left -40px !important; -} -.gritter-close { - background: url(../../thirdparty/gritter/images/gritter-blue.png) no-repeat left top !important; -} -.gritter-title { - text-shadow: none !important; - /* Not supported by IE :( */ - -} -/* for the light (white) version of the gritter notice */ -.gritter-light .gritter-item, -.gritter-light .gritter-bottom, -.gritter-light .gritter-top, -.gritter-light .gritter-close { - background-image: url(../../thirdparty/gritter/images/gritter-light.png) !important; -} -.gritter-item-wrapper a { - color: #18a5ed; -} -.gritter-item-wrapper a:hover { - color: #0b6694; -} -/* begin: boxed page */ -@media (min-width: 992px) { - .page-boxed { - background-color: #fff !important; - } - .page-boxed .page-container { - background-color: #fff; - border-left: 1px solid #1c98e1; - border-bottom: 1px solid #1c98e1; - } - .page-boxed.page-sidebar-reversed .page-container { - border-left: 0; - border-right: 1px solid #1c98e1; - } - .page-boxed.page-sidebar-fixed .page-container { - border-left: 0; - border-bottom: 0; - } - .page-boxed.page-sidebar-reversed.page-sidebar-fixed .page-container { - border-left: 0; - border-right: 0; - border-bottom: 0; - } - .page-boxed.page-sidebar-fixed .page-sidebar { - border-left: 1px solid #1c98e1; - } - .page-boxed.page-sidebar-reversed.page-sidebar-fixed .page-sidebar { - border-right: 1px solid #1c98e1; - border-left: 0; - } - .page-boxed.page-sidebar-fixed.page-footer-fixed .footer { - background-color: #125e8b !important; - } -ul.page-sidebar-menu > li .active> a{ - background: #3366CC !important; -} -/* end: boxed page */ -/*** -Landscape phone to portrait tablet -***/ -@media (max-width: 991px) { - /*** - page sidebar - ***/ - .page-sidebar { - background-color: #f1f3fa !important; - } - ul.page-sidebar-menu > li > a { - border-top: 1px solid #e0e2e9 !important; - - } - ul.page-sidebar-menu > li > a :hover{ - border-top: 1px solid #e0e2e9 !important; - color: #fff !important; - } - ul.page-sidebar-menu > li:last-child > a { - border-bottom: 0 !important; - } - .page-sidebar .sidebar-search input { - background-color: #4072d6 !important; - color:#c5c5c7 !important; - } - .page-sidebar .sidebar-search input::-webkit-input-placeholder { - color: #c5c5c7 !important; -} - .page-sidebar .sidebar-search input:-moz-placeholder { - color: #c5c5c7 !important; -} - .page-sidebar .sidebar-search input:-ms-input-placeholder { - color: #c5c5c7 !important; -} - ul.page-sidebar-menu > li.open > a, - ul.page-sidebar-menu > li.open > a:hover, - ul.page-sidebar-menu > li > a:hover{ - background: #3366CC !important; - } - ul.page-sidebar-menu > li > a:hover, - ul.page-sidebar-menu > li:hover > a { - background: #fff !important; - } - ul.page-sidebar-menu li > ul.sub-menu > li > a { - color: #3366CC; -} - diff --git a/portal-common/src/main/webapp/common/css/themes/ztebluelight2.css b/portal-common/src/main/webapp/common/css/themes/ztebluelight2.css deleted file mode 100644 index 6e16c8e1..00000000 --- a/portal-common/src/main/webapp/common/css/themes/ztebluelight2.css +++ /dev/null @@ -1,520 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*** -Blue theme -***/ -/*** -Reset and overrides -***/ -body { - background-color: #f9f9f9 !important; - font-family: "microsoft yahei" !important; -} - -.page-content { - background-color: #f1f3fa !important; -} - -/*** -Page header -***/ -.header { - filter: none !important; - /*background-image: none !important;*/ - background-color: #1178ee !important; - /* background: -webkit-linear-gradient(#37c4fa, #0081bb ); - background: -o-linear-gradient(#37c4fa, #0081bb ); - background: -moz-linear-gradient(#37c4fa, #0081bb ); - background: linear-gradient(#37c4fa, #0081bb ); */ -} - -.header .btn-navbar { - background-color: #f9f9f9 !important; -} - -.header .navbar-nav .dropdown-toggle:hover, -.header .navbar-nav .dropdown.open .dropdown-toggle { - color: #fff; - background-color: #1470d8 !important; -} - -.zte-theme-panel > .toggler:hover { - background-color: #70abcd !important; -} - -.header .navbar-nav li.dropdown .dropdown-toggle i { - color: #fff !important; -} - -.btn-group .btn.blue.dropdown-toggle { - background-color: #1178EE !important; -} - -.btn-group .btn.blue.dropdown-toggle:hover { - background-color: #0f70df !important; -} - -/*** -Header Search -***/ -.header .search-form { - background-color: #0B4263; -} - -.header .search-form .form-control { - color: #68bbec; - border: 0; - background-color: #0B4263; -} - -.header .search-form .submit { - background: url(../../image/search-icon-blue.png); -} - -/*** -Hor menu -***/ -.header .hor-menu ul.nav li a { - color: #fff; -} - -.header .hor-menu ul.nav li.open > a, -.header .hor-menu ul.nav li > a:hover, -.header .hor-menu ul.nav li > a:focus { - color: #D4E9F2; - background-color: #1178ee; - /*background: -webkit-linear-gradient(#37c4fa, #0081bb ); - background: -o-linear-gradient(#37c4fa, #0081bb ); - background: -moz-linear-gradient(#37c4fa, #0081bb ); - background: linear-gradient(#37c4fa, #0081bb );*/ -} - -.header.navbar .hor-menu ul.nav li.current .selected, -.header.navbar .hor-menu ul.nav li.active .selected { - border-top: 6px solid #0081bb; -} - -.header .hor-menu .dropdown-menu li:hover > a, -.header .hor-menu ul.nav li.active > a, -.header .hor-menu ul.nav li.active > a:hover { - color: #fff; - /*background: -webkit-linear-gradient(#37c4fa, #0081bb ); - background: -o-linear-gradient(#37c4fa, #0081bb ); - background: -moz-linear-gradient(#37c4fa, #0081bb ); - background: linear-gradient(#37c4fa, #0081bb );*/ -} - -.header.navbar .hor-menu ul.nav li.current .selected, -.header.navbar .hor-menu ul.nav li.active .selected { - border-top: 6px solid #0081bb; -} - -.header .hor-menu ul.nav li.current > a, -.header .hor-menu ul.nav li.current > a:hover { - color: #fff; - background: #e02222 !important; -} - -.header .hor-menu .dropdown-menu { - background: #1178EE; -} - -.header .hor-menu .dropdown-menu li > a { - color: #ccc; -} - -.header .hor-menu .hor-menu-search-form-toggler.off { - background: #126ed8 url(../../image/hor-menu-search-close-white.png) no-repeat center; -} - -.header .hor-menu .search-form { - background: #126ed8; -} - -.header .hor-menu .search-form form input { - color: #ccc; -} - -.header .hor-menu .search-form .btn { - color: #ccc; - background: url(../../image/search-icon-white.png) no-repeat center; -} - -.header .hor-menu .search-form form input::-webkit-input-placeholder { - /* WebKit browsers */ - color: #ccc; -} - -.header .hor-menu .search-form form input:-moz-placeholder { - /* Mozilla Firefox 4 to 18 */ - color: #ccc; -} - -.header .hor-menu .search-form form input::-moz-placeholder { - /* Mozilla Firefox 19+ */ - color: #ccc; -} - -.header .hor-menu .search-form form input:-ms-input-placeholder { - /* Internet Explorer 10+ */ - color: #ccc; -} - -.dropdown-menu .mega-menu-content .row .mega-menu-submenu li:hover > a { - color: #fff !important; - background: #388ef1 !important; -} - -.dropdown-menu .mega-menu-content .row .mega-menu-submenu .active > a, -.dropdown-menu .mega-menu-content .row .mega-menu-submenu .active > a:hover { - color: #fff !important; - background: #0e6ad4 !important; -} - -/*** -Mega Menu -***/ -.mega-menu .mega-menu-submenu { - border-right: 1px solid #1876AD; -} - -.mega-menu .mega-menu-submenu li h3 { - color: #fff; - font-family: "microsoft yahei" -} - -/*** -Page sidebar -***/ -.page-sidebar { - background-color: #f9f9f9; -} - -ul.page-sidebar-menu > li > a { - border-top: 1px solid #e5e5e5 !important; - color: #616161 !important; - border-left: 3px solid transparent !important; -} - -ul.page-sidebar-menu > li > a:hover { - color: #1178EE !important; - background-color: #eee; -} - -ul.page-sidebar-menu > li:last-child > a { - border-bottom: 1px solid #e5e5e5 !important; -} - -/*ul.page-sidebar-menu > li a i { - color: #e5e5e5 ! important; -}*/ -ul.page-sidebar-menu ul.sub-menu > li > a { - color: #616161 !important; -} - -ul.page-sidebar-menu ul.sub-menu > li.active > a { - color: #1178EE !important; -} - -ul.page-sidebar-menu ul.sub-menu > li > a:hover { - color: #1178EE !important; - background-color: #eee; -} - -ul.page-sidebar-menu > li > a:hover, -ul.page-sidebar-menu > li:hover > a { - background: #fff; - color: #585858; - border-left: 3px solid #1178ee !important; -} - -ul.page-sidebar-menu > li.open > a { - background: #fff; - color: #585858; - border-bottom: 1px solid #e5e5e5 !important; -} - -ul.page-sidebar-menu > li.active > a { - background: #fff !important; - border-top: 1px solid #e5e5e5 !important; - color: #1178ee !important; - font-weight: bold; -} - -ul.page-sidebar-menu > li.active > a i { - color: #1178ee; -} - -ul.page-sidebar-menu > li > ul.sub-menu > li:first-child > a { - /* border-top: 1px solid #e5e5e5 !important;*/ -} - -ul.page-sidebar-menu > li > ul.sub-menu > li.active > a -ul.page-sidebar-menu > li > ul.sub-menu > li > a:hover { - color: #4b88b7 !important; -} - -ul.page-sidebar-menu > li > ul.sub-menu > li > a:hover { - /* background: #1b8fd3 !important;*/ -} - -/* 3rd level sub menu */ -ul.page-sidebar-menu > li > ul.sub-menu li > ul.sub-menu > li.active > a, -ul.page-sidebar-menu > li > ul.sub-menu li > ul.sub-menu > li > a:hover, -ul.page-sidebar-menu > li > ul.sub-menu li.open > a { - color: #ffffff !important; - border-bottom: 1px solid #e5e5e5 !important; -} - -.page-sidebar-menu > li.active > a .selected { - /* background-image: url(../../image/sidebar-menu-arrow-blue.png) !important;*/ - border-right: 2px solid #1178ee !important; - height: 37px !important; - top: 2px !important; -} - -/* font color for all sub menu links*/ -ul.page-sidebar-menu li > ul.sub-menu > li > a { - /*color: #c3e4f7;*/ -} - -/* menu arrows */ -ul.page-sidebar-menu > li > a .arrow:before, -ul.page-sidebar-menu > li > a .arrow.open:before { - /*color: #51b1e9 !important;*/ -} - -ul.page-sidebar-menu > li > ul.sub-menu a .arrow:before, -ul.page-sidebar-menu > li > ul.sub-menu a .arrow.open:before { - color: #3ba6e6 !important; -} - -ul.page-sidebar-menu > li > a > .arrow.open:before { - /* color: #68bbec !important;*/ -} - -/*ul.page-sidebar-menu > li.active > a .arrow:before, -ul.page-sidebar-menu > li.active > a .arrow.open:before { - color: #ffffff !important; -}*/ -/* sidebar search */ -.page-sidebar .sidebar-search input { - background-color: #0f5179 !important; - color: #1178ee; -} - -.page-sidebar .sidebar-search input::-webkit-input-placeholder { - color: #1178ee !important; -} - -.page-sidebar .sidebar-search input:-moz-placeholder { - color: #1178ee !important; -} - -.page-sidebar .sidebar-search input:-ms-input-placeholder { - color: #1178ee !important; -} - -.page-sidebar .sidebar-search input { - background-color: #f9f9f9 !important; - /* color: #bfbfbf !important;*/ -} - -.page-sidebar .sidebar-search .input-box { - border-bottom: 1px solid #1178ee !important; -} - -.page-sidebar .sidebar-search .submit { - background-image: url(../../image/search-icon-blue.png); -} - -/*** -Sidebar toggler -***/ -.sidebar-toggler { - background-image: url(../../image/sidebar-toggler-grey.jpg); - background-color: #0f5179; -} - -/* search box bg color on expanded */ -.page-sidebar-closed .page-sidebar .sidebar-search.open .form-container { - background-color: #f9f9f9 !important; -} - -.page-sidebar-closed .page-sidebar .sidebar-search.open .form-container .remove { - background-image: url("../../image/sidebar-search-close-blue.png"); -} - -/* sub menu bg color on hover menu item */ -.page-sidebar-closed ul.page-sidebar-menu > li:hover .sub-menu { - background-color: #f9f9f9; -} - -/*** -Footer -***/ -.footer .footer-inner { - color: #7c7c7c; -} - -.footer .footer-tools .go-top { - background-color: #1985c6; -} - -.footer .footer-tools .go-top:hover { - opacity: 0.7; - filter: alpha(opacity=70); -} - -.footer .footer-tools .go-top i { - color: #68bbec; -} - -/*** -Footer Layouts (new in v1.3) -***/ -/* begin:fixed footer */ -.page-footer-fixed .footer { - background-color: #0f5179; -} - -.page-footer-fixed .footer .footer-inner { - color: #68bbec; -} - -.page-footer-fixed .footer .footer-tools .go-top { - background-color: #1985c6; -} - -.page-footer-fixed .footer .footer-tools .go-top i { - color: #68bbec; -} - -/* end:fixed footer */ -/*** -Gritter Notifications -***/ -.gritter-top { - background: url(../../thirdparty/gritter/images/gritter-blue.png) no-repeat left -30px !important; -} - -.gritter-bottom { - background: url(../../thirdparty/gritter/images/gritter-blue.png) no-repeat left bottom !important; -} - -.gritter-item { - display: block; - background: url(../../thirdparty/gritter/images/gritter-blue.png) no-repeat left -40px !important; -} - -.gritter-close { - background: url(../../thirdparty/gritter/images/gritter-blue.png) no-repeat left top !important; -} - -.gritter-title { - text-shadow: none !important; - /* Not supported by IE :( */ - -} - -/* for the light (white) version of the gritter notice */ -.gritter-light .gritter-item, -.gritter-light .gritter-bottom, -.gritter-light .gritter-top, -.gritter-light .gritter-close { - background-image: url(../../thirdparty/gritter/images/gritter-light.png) !important; -} - -.gritter-item-wrapper a { - color: #18a5ed; -} - -.gritter-item-wrapper a:hover { - color: #0b6694; -} - -/* begin: boxed page */ -@media (min-width: 992px) { - .page-boxed { - background-color: #125e8b !important; - } - - .page-boxed .page-container { - background-color: #1570a6; - border-left: 1px solid #1c98e1; - border-bottom: 1px solid #1c98e1; - } - - .page-boxed.page-sidebar-reversed .page-container { - border-left: 0; - border-right: 1px solid #1c98e1; - } - - .page-boxed.page-sidebar-fixed .page-container { - border-left: 0; - border-bottom: 0; - } - - .page-boxed.page-sidebar-reversed.page-sidebar-fixed .page-container { - border-left: 0; - border-right: 0; - border-bottom: 0; - } - - .page-boxed.page-sidebar-fixed .page-sidebar { - border-left: 1px solid #1c98e1; - } - - .page-boxed.page-sidebar-reversed.page-sidebar-fixed .page-sidebar { - border-right: 1px solid #1c98e1; - border-left: 0; - } - - .page-boxed.page-sidebar-fixed.page-footer-fixed .footer { - background-color: #125e8b !important; - } -} - -/* end: boxed page */ -/*** -Landscape phone to portrait tablet -***/ -@media (max-width: 991px) { - /*** - page sidebar - ***/ - .page-sidebar { - background-color: #f9f9f9 !important; - } - - ul.page-sidebar-menu > li > a { - border-top: 1px solid #e5e5e5 !important; - } - - ul.page-sidebar-menu > li:last-child > a { - border-bottom: 0 !important; - } - - .page-sidebar .sidebar-search input { - background-color: #f9f9f9 !important; - } - - ul.page-sidebar-menu > li.open > a, - ul.page-sidebar-menu > li > a:hover, - ul.page-sidebar-menu > li:hover > a { - background: #fff; - } -} diff --git a/portal-common/src/main/webapp/common/css/themes/ztebluelight2_ifrm.css b/portal-common/src/main/webapp/common/css/themes/ztebluelight2_ifrm.css deleted file mode 100644 index 2c2ef5ea..00000000 --- a/portal-common/src/main/webapp/common/css/themes/ztebluelight2_ifrm.css +++ /dev/null @@ -1,229 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*** -ztebluelight2_ifrm theme -***/ -body{ - background-color: white!important; -} - -td>a>span[class^="ict-"], td>a>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>div>span[class^="ict-"], td>div>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>div>span>span[class^="ict-"], td>div>span>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>span>span[class^="ict-"], td>span>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -/* button style*/ -.buttonRounded, -.buttonRoundedOver, -.buttonRoundedFocused, -.buttonRoundedFocusedOver, -.buttonRoundedDown, -.buttonRoundedFocusedDown, -.buttonRoundedSelected, -.buttonRoundedSelectedFocused, -.buttonRoundedSelectedDown, -.buttonRoundedSelectedFocusedDown, -.buttonRoundedSelectedOver, -.buttonRoundedSelectedFocusedOver, -.buttonRoundedDisabled, -.buttonRoundedSelectedDisabled { - background-color: #1095cd; - color: #fff; - border: 0px solid #b15a59; - border-radius: 0px; - font-family: Arial, Verdana, sans-serif; - font-size: 12px; - /*padding: 0 3px;*/ - padding-left:7px !important; - padding-right:7px !important; - height:30px !important; -} -.buttonRoundedDisabled, .buttonRoundedSelectedDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} -.buttonRoundedOver, -.buttonRoundedFocusedOver, -.buttonRoundedSelectedFocused, -.buttonRoundedSelectedFocusedOver, -.buttonRoundedDown, -.buttonRoundedFocusedDown { - background-color: #3a85b0; - height:30px !important; -} - -.menuButton, -.menuButtonOver, -.menuButtonDown, -.menuButtonDisabled, -.menuButtonFocused, -.menuButtonFocusedDown, -.menuButtonFocusedOver, -.menuButtonSelected, -.menuButtonSelectedDown, -.menuButtonSelectedOver, -.menuButtonSelectedDisabled { - background-color: #0081bb; - border: 0px solid #ababab; - color: #fff; - font-family: Arial, Verdana, sans-serif; - font-size: 12px; - padding-left: 7px !important; - padding-right: 7px !important; - height:30px !important; -} -.menuButtonOver { - background-color: #3a85b0; - } -.menuButtonDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} - .buttonTitle, -.buttonTitleOver, -.buttonTitleDown, -.buttonTitleSelected, -.buttonTitleFocused, -.buttonTitleSelectedFocused, -.buttonTitleSelectedOver, -.buttonTitleFocusedOver, -.buttonTitleSelectedFocusedOver, -.buttonTitleSelectedDown, -.buttonTitleFocusedDown, -.buttonTitleSelectedFocusedDown, -.buttonTitleDisabled, -.buttonTitleSelectedDisabled { - color: #fff ; - } - .buttonTitleDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} - /* windowBody dialogBody Style */ - .windowBody, -.dialogBody { - background-color: white; - border: 1px solid #0081bb; - border-top: 0; -} -.windowHeader, -.dialogHeader { - background-color: #0081bb; - padding: 0; -} -/* sectionHeader Style */ -.sectionHeaderopened { - background-color: #0081bb; - } - .sectionHeaderclosed { - background-color: #3a85b0; - } - -#dt_example h1{ -color:#0081bb; -font-weight:600 !important; -} -/*cell style*/ -.tallCellOver, -.tallCellOverDark { - background-color: #d9e3e8; - border-bottom: 1px solid #d9e3e8; - border-top: 1px solid #d9e3e8; - } -.tallCellSelected, -.tallCellSelectedDark { - background: #c4d7e2; - border-bottom: 1px solid #c4d7e2; - border-top: 1px solid #c4d7e2; - } -.tallCellSelectedOver, -.tallCellSelectedOverDark { - background: #c4d7e2; - border-bottom: 1px solid #c4d7e2; - border-top: 1px solid #c4d7e2; - } -.imgHeaderButtonOver, -.imgHeaderButtonDown, -.headerButtonOver, -.headerButtonDown, -.sorterButtonOver, -.sorterButtonDown { - background-color: #c4d7e2; - } -.cellSelected, -.cellSelectedDark, -.specialColSelected, -.recordSummaryCellSelected, -.recordSummaryCellSelectedDark { - background: #c4d7e2 !important; - border-bottom: 1px solid #c4d7e2; - border-top: 1px solid #c4d7e2; - } -.cellSelectedOver, -.cellSelectedOverDark, -.specialColSelectedOver, -.recordSummaryCellSelectedOver, -.recordSummaryCellSelectedOverDark { - background: #c4d7e2 !important; - border-bottom: 1px solid #c4d7e2; - border-top: 1px solid #c4d7e2; -} -.cellOver, -.cellOverDark, -.specialColOver, -.recordSummaryCellOver, -.recordSummaryCellOverDark { - background: #d9e3e8 !important; - border-bottom: 1px solid #d9e3e8; - border-top: 1px solid #d9e3e8; - } -.treeCellOver, -.treeCellOverDark { - background-color: #d9e3e8; -} -/*日志管理的蓝色大圆角筛选按é’?/ -.blue { - background-color: #fff; - color:#1095cd; - } -.blue:hover { - background-color: #e8f3fd; - color:#5b9bd1; - } -.blue.selected{ - border:0; - background-color: #1178EE; - color:#fff; -} -.blue.selected:hover{ - border:0; - background-color: #1178EE; - color:#fff; -} diff --git a/portal-common/src/main/webapp/common/css/themes/ztebluelight3.css b/portal-common/src/main/webapp/common/css/themes/ztebluelight3.css deleted file mode 100644 index da9c959a..00000000 --- a/portal-common/src/main/webapp/common/css/themes/ztebluelight3.css +++ /dev/null @@ -1,497 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*** -light theme -***/ - -/*** -Reset and overrides -***/ -body { - background-color: #eeeeee !important; -} -/*** -Page header -***/ -.header { - background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #3993ba), color-stop(50%, #1f88b3), color-stop(100%, #067ead)); - background-image: -moz-linear-gradient(top, #3993ba 0%, #1f88b3 50%, #067ead 100%); - background-image: -o-linear-gradient(top, #3993ba 0%, #1f88b3 50%, #067ead 100%); - background-image: linear-gradient(top, #3993ba 0%, #1f88b3 50%, #067ead 100%); - background-color: #1584b0 ; -} -.header .btn-navbar { - background-color: #434343 !important; -} -.header .navbar-nav .dropdown-toggle:hover, -.header .navbar-nav .dropdown.open .dropdown-toggle { - background-color: #4399bd !important; -} -.header .navbar-nav li.dropdown .dropdown-toggle i { - color: #ffffff !important; -} -.zte-theme-panel > .toggler:hover { - background-color: #54aacf !important; -} -.btn-group .btn.blue.dropdown-toggle{ -background-color: #428bca !important; -} -.page-content .page-breadcrumb.breadcrumb{ -background-color:#F5F5F5 !important; -} -/*** -Header Search -***/ -.header .search-form { - background-color: #3a3a3a; -} - -.header .search-form .form-control{ - color: #ccc; - border: 0; - background-color: #3a3a3a; -} - -.header .search-form .submit { - background: url(../../image/search-icon.png); -} - -/*** -Hor menu -***/ -.header .hor-menu ul.nav li a { - color: #ccc; -} - -.header .hor-menu ul.nav li.open > a, -.header .hor-menu ul.nav li > a:hover, -.header .hor-menu ul.nav li > a:focus { - color: #fff; - background: #4399bd; -} - -.header .hor-menu .dropdown-menu li:hover > a, -.header .hor-menu ul.nav li.active > a, -.header .hor-menu ul.nav li.active > a:hover { - color: #fff; - background: #136c8f !important; -} -.header.navbar .hor-menu ul.nav li.current .selected, -.header.navbar .hor-menu ul.nav li.active .selected { - border-top: 6px solid #136c8f; - } -.header .hor-menu ul.nav li.current > a, -.header .hor-menu ul.nav li.current > a:hover { - color: #fff; - background: #e02222 !important; -} - -.header .hor-menu .dropdown-menu { - background: #4399bd; -} -.header .hor-menu .dropdown-menu li > a { - color: #ccc; -} - -.header .hor-menu .hor-menu-search-form-toggler.off { - background: #4399bd url(../../image/hor-menu-search-close-white.png) no-repeat center; -} - -.header .hor-menu .search-form { - background:#4399bd; -} - -.header .hor-menu .search-form form input { - color: #ccc; -} - -.header .hor-menu .search-form .btn { - color: #ccc; - background: url(../../image/search-icon-white.png) no-repeat center; -} - -.header .hor-menu .search-form form input::-webkit-input-placeholder { /* WebKit browsers */ - color: #ccc; -} -.header .hor-menu .search-form form input:-moz-placeholder { /* Mozilla Firefox 4 to 18 */ - color: #ccc; -} -.header .hor-menu .search-form form input::-moz-placeholder { /* Mozilla Firefox 19+ */ - color: #ccc; -} -.header .hor-menu .search-form form input:-ms-input-placeholder { /* Internet Explorer 10+ */ - color: #ccc; -} - -/*** -Mega Menu -***/ -.mega-menu .mega-menu-submenu { - border-right: 1px solid #656565; -} - -.mega-menu .mega-menu-submenu li h3 { - color: #fff; -} - -/*** -Page sidebar -***/ -/*.page-content { - border-left: 1px solid #e2e2e2 !important; - border-bottom: 1px solid #e2e2e2 !important;*/ -} -.page-sidebar-reversed .page-content { - border-left: 0; - border-right: 1px solid #e2e2e2 !important; -} -.page-sidebar { - background-color: #eeeeee; -} -.page-sidebar-fixed .page-content { - border: 0 !important; -} -.page-sidebar-fixed .page-sidebar { - border-right: 1px solid #e2e2e2 !important; -} - - -ul.page-sidebar-menu > li > a { - border-top: 1px solid #ececec !important; - border-bottom: 1px solid #cccccc !important; - color: #000 !important; - font-weight: 400; - background-color: #e0e0e0 !important; -} - -ul.page-sidebar-menu > li:first-child > a { - border-top: 1px solid transparent !important; -} - -ul.page-sidebar-menu > li:last-child > a { - border-bottom: 1px solid transparent !important; -} - -ul.page-sidebar-menu > li a i { - color: #000000 !important; -} -ul.page-sidebar-menu > li.open > a, -ul.page-sidebar-menu > li > a:hover, -ul.page-sidebar-menu > li:hover > a { - background: #eee; - border-top: 1px solid #e8e8e8; -} -/*ul.page-sidebar-menu > li.active > a .selected { - right:-7px; - top:0px; - width: 7px; - height: 39px; - background-image: url("../../image/sidebar-menu-arrow-green.png"); -} */ -.page-sidebar-reversed ul.page-sidebar-menu > li.active > a .selected { - right: auto; - left:-7px; - background-image: url("../../image/sidebar-menu-arrow-green-reverse.png"); -} -ul.page-sidebar-menu > li.active i { - color: #fff !important; -} -.page-sidebar-fixed ul.page-sidebar-menu > li.active > a .selected { - display: none; -} -ul.page-sidebar-menu > li.active > a{ - background: #428bca !important; - border-top-color: transparent !important; - color:#fff!important; -} -ul.page-sidebar-menu > li.active > a i { - color: #fff; -} -ul.page-sidebar-menu > li > a > .arrow:before, -ul.page-sidebar-menu > li > a > .arrow.open:before { - color: #ccc !important; -} -ul.page-sidebar-menu > li.active > a .arrow:before, -ul.page-sidebar-menu > li.active > a .arrow.open:before { - color: #fff !important; -} -ul.page-sidebar-menu > li > ul.sub-menu > li:first-child > a { - border-top: 0px !important; -} - -ul.page-sidebar-menu ul.sub-menu > li > a { - font-weight: 400 !important; - color: #333 !important; -} -ul.page-sidebar-menu ul.sub-menu > li.active > a, -ul.page-sidebar-menu ul.sub-menu > li > a:hover { - color: #818181 !important; - background: #efefef !important; -} - -ul.page-sidebar-menu > li > ul.sub-menu a .arrow:before, -ul.page-sidebar-menu > li > ul.sub-menu a .arrow.open:before { - color: #ccc !important; -} - -/* sub menu links effects */ -ul.page-sidebar-menu ul.sub-menu > li.active > a, -ul.page-sidebar-menu ul.sub-menu > li.active > a:hover{ - color: #000 !important; - background: #dbe6ea !important; -} -ul.page-sidebar-menu ul.sub-menu > li > a:hover, -ul.page-sidebar-menu ul.sub-menu > li.open > a { - color: #000000 !important; - background: #e7e7e7 !important; -} -ul.page-sidebar-menu ul.sub-menu > li > a i { - color: #000000 !important; -} - -/* sidebar search */ -.page-sidebar .sidebar-search input { - background-color: #eeeeee !important; - color: #727272 !important; -} -.page-sidebar .sidebar-search input::-webkit-input-placeholder { - color: #aaa !important; -} -.page-sidebar .sidebar-search input:-moz-placeholder { - color: #aaa !important; -} -.page-sidebar .sidebar-search input:-ms-input-placeholder { - color: #aaa !important; -} -.page-sidebar .sidebar-search .input-box { - border-bottom: 1px solid #e2e2e2 !important; -} -.page-sidebar .sidebar-search .submit { - background-image: url(../../image/search-icon-white.png); -} - -/*** -Sidebar toggler -***/ -.sidebar-toggler { - background-image: url(../../image/sidebar-toggler-light.jpg); - background-color: #333; -} -/* search box bg color on expanded */ -.page-sidebar-closed .page-sidebar .sidebar-search.open .form-container { - background-color: #fbfbfb !important; -} -.page-sidebar-closed .page-sidebar .sidebar-search.open .form-container .remove { - background-image: url("../../image/sidebar-search-close-light.png"); -} -/* sub menu bg color on hover menu item */ -.page-sidebar-closed ul.page-sidebar-menu > li:hover .sub-menu { - background-color: #eeeeee; -} -/*** -Footer -***/ -.footer .footer-inner { - color: #333333; -} -.footer .footer-tools .go-top { - background-color: #666666; -} -.footer .footer-tools .go-top:hover { - opacity: 0.7; - filter: alpha(opacity=70); -} -.footer .footer-tools .go-top i { - color: #999999; -} -/*** -Footer Layouts (new in v1.3) -***/ -/* begin:fixed footer */ -.page-footer-fixed .footer { - background-color: #434343; -} -.page-footer-fixed .footer .footer-inner { - color: #aaaaaa; -} -.page-footer-fixed .footer .footer-tools .go-top { - background-color: #666666; -} -.page-footer-fixed .footer .footer-tools .go-top i { - color: #aaaaaa; -} -/* end:fixed footer */ -/*** -Gritter Notifications -***/ -.gritter-top { - background: url(../../thirdparty/gritter/images/gritter.png) no-repeat left -30px !important; -} -.gritter-bottom { - background: url(../../thirdparty/gritter/images/gritter.png) no-repeat left bottom !important; -} -.gritter-item { - display: block; - background: url(../../thirdparty/gritter/images/gritter.png) no-repeat left -40px !important; -} -.gritter-close { - background: url(../../thirdparty/gritter/images/gritter.png) no-repeat left top !important; -} -.gritter-title { - text-shadow: none !important; - /* Not supported by IE :( */ - -} -/* for the light (white) version of the gritter notice */ -.gritter-light .gritter-item, -.gritter-light .gritter-bottom, -.gritter-light .gritter-top, -.gritter-light .gritter-close { - background-image: url(../../thirdparty/gritter/images/gritter-light.png) !important; -} -.gritter-item-wrapper a { - color: #18a5ed; -} -.gritter-item-wrapper a:hover { - color: #0b6694; -} -/* begin: boxed page */ -@media (min-width: 992px) { - .page-boxed { - background-color: #E8E8E8 !important; - } - .page-boxed .page-container { - background-color: #eeeeee; - border-left: 1px solid #e2e2e2; - border-bottom: 1px solid #e2e2e2; - } - .page-sidebar-reversed.page-boxed .page-container { - border-left: 0; - border-right: 1px solid #e2e2e2; - } - .page-boxed.page-sidebar-fixed .page-container { - border-left: 0; - border-bottom: 0; - } - .page-boxed.page-sidebar-fixed .page-sidebar { - border-left: 1px solid #e2e2e2; - } - .page-boxed.page-sidebar-reversed.page-sidebar-fixed .page-sidebar { - border-right: 1px solid #e2e2e2; - border-left: 0; - } - .page-boxed.page-sidebar-fixed.page-footer-fixed .footer { - background-color: #E8E8E8 !important; - } -} -/* end: boxed page */ -/*** -Landscape phone to portrait tablet -***/ -@media (max-width: 991px) { - /*** - page sidebar - ***/ - .page-sidebar { - background-color: #f1f1f1 !important; - border-right: none !important; - } - .page-sidebar-fixed .page-sidebar { - border-right: none !important; - } - .page-content { - border-left: none !important; - } - ul.page-sidebar-menu > li > a { - border-top: 1px solid #ececec !important; - border-bottom: 1px solid #cccccc !important; - } - ul.page-sidebar-menu > li:last-child > a { - border-bottom: 0 !important; - } - - ul.page-sidebar-menu > li.open > a,{ - color: #666666 !important; - background-color: #e0e0e0 !important; - } - - /*ul.page-sidebar-menu > li > a:hover { - color: #666666 !important; - background-color: #e7e7e7 !important; - }*/ - ul.page-sidebar-menu > li.open > a { - border-bottom-color: transparent !important; - } - /* ul.page-sidebar-menu > li.active > a { - color: #ffffff !important; - background-color: #28b779 !important; - }*/ - - ul.page-sidebar-menu ul.sub-menu > li > a { - color: #111 !important; - } -ul.page-sidebar-menu ul.sub-menu > li.active > a{ - color: #000 !important; - background: #dbe6ea !important; -} - ul.page-sidebar-menu ul.sub-menu > li.open > a, - ul.page-sidebar-menu ul.sub-menu > li > a:hover { - color: #000 !important; - background: #e7e7e7 !important; - } - - .page-sidebar .sidebar-search input { - background-color: #f1f1f1 !important; - color: #ccc !important; - } - - .page-sidebar .sidebar-search .input-box { - border-bottom-color: #ccc !important; - } - .page-sidebar .sidebar-search input::-webkit-input-placeholder { - color: #ccc !important; - } - .page-sidebar .sidebar-search input:-moz-placeholder { - color: #ccc !important; - } - .page-sidebar .sidebar-search input:-ms-input-placeholder { - color: #ccc !important; - } - - /*** - page footer - ***/ - - .footer { - background-color: #434343; - } - - .footer .footer-inner { - color: #cccccc; - } - .footer .footer-tools .go-top { - background-color: #666666; - } - .footer .footer-tools .go-top i { - color: #999999; - } -} - -@media (max-width: 767px) { - body { - background-color: #077ead !important; - } -} \ No newline at end of file diff --git a/portal-common/src/main/webapp/common/css/themes/ztebluelight3_ifrm.css b/portal-common/src/main/webapp/common/css/themes/ztebluelight3_ifrm.css deleted file mode 100644 index 10714dde..00000000 --- a/portal-common/src/main/webapp/common/css/themes/ztebluelight3_ifrm.css +++ /dev/null @@ -1,220 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*** -light_ifrm theme -***/ -td>a>span[class^="ict-"], td>a>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>div>span[class^="ict-"], td>div>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>div>span>span[class^="ict-"], td>div>span>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>span>span[class^="ict-"], td>span>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -/* button style*/ -.buttonRounded, -.buttonRoundedOver, -.buttonRoundedFocused, -.buttonRoundedFocusedOver, -.buttonRoundedDown, -.buttonRoundedFocusedDown, -.buttonRoundedSelected, -.buttonRoundedSelectedFocused, -.buttonRoundedSelectedDown, -.buttonRoundedSelectedFocusedDown, -.buttonRoundedSelectedOver, -.buttonRoundedSelectedFocusedOver, -.buttonRoundedDisabled, -.buttonRoundedSelectedDisabled { - background-color: #47a5cc; - color: #fff; - border: 0px solid #b15a59; - border-radius: 0px; - font-family: Arial, Verdana, sans-serif; - font-size: 12px; - /*padding: 0 3px;*/ - padding-left:7px !important; - padding-right:7px !important; - height:30px !important; -} -.buttonRoundedDisabled, .buttonRoundedSelectedDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} -.buttonRoundedOver, -.buttonRoundedFocusedOver, -.buttonRoundedSelectedFocused, -.buttonRoundedSelectedFocusedOver, -.buttonRoundedDown, -.buttonRoundedFocusedDown { - background-color: #3a8fb3; - height:30px !important; -} - -.menuButton, -.menuButtonOver, -.menuButtonDown, -.menuButtonDisabled, -.menuButtonFocused, -.menuButtonFocusedDown, -.menuButtonFocusedOver, -.menuButtonSelected, -.menuButtonSelectedDown, -.menuButtonSelectedOver, -.menuButtonSelectedDisabled { - background-color: #47a5cc; - border: 0px solid #ababab; - color: #fff; - font-family: Arial, Verdana, sans-serif; - font-size: 12px; - padding-left: 7px !important; - padding-right: 7px !important; - height:30px !important; -} -.menuButtonOver { - background-color: #3a8fb3; - } -.menuButtonDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} - - .buttonTitle, -.buttonTitleOver, -.buttonTitleDown, -.buttonTitleSelected, -.buttonTitleFocused, -.buttonTitleSelectedFocused, -.buttonTitleSelectedOver, -.buttonTitleFocusedOver, -.buttonTitleSelectedFocusedOver, -.buttonTitleSelectedDown, -.buttonTitleFocusedDown, -.buttonTitleSelectedFocusedDown, -.buttonTitleDisabled, -.buttonTitleSelectedDisabled { - color: #fff ; - } - .buttonTitleDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} - /* windowBody dialogBody Style */ - .windowBody, -.dialogBody { - background-color: white; - border: 1px solid #2b8db6; - border-top: 0; -} -.windowHeader, -.dialogHeader { - background-color: #2b8db6; - padding: 0; -} -/* sectionHeader Style */ -.sectionHeaderopened { - background-color: #2b8db6; - } - .sectionHeaderclosed { - background-color: #3899c2; - } - -#dt_example h1{ -color:#2b8db6; -font-weight:600 !important; -} -/*cell style*/ -.tallCellOver, -.tallCellOverDark { - background-color: #c4d7e2; - } -.imgHeaderButtonOver, -.imgHeaderButtonDown, -.headerButtonOver, -.headerButtonDown, -.sorterButtonOver, -.sorterButtonDown { - background-color: #c4d7e2; - } - /*cell style*/ -.tallCellOver, -.tallCellOverDark { - background-color: #d9e3e8; - border-bottom: 1px solid #d9e3e8; - border-top: 1px solid #d9e3e8; - } -.tallCellSelected, -.tallCellSelectedDark { - background: #c4d7e2; - border-bottom: 1px solid #c4d7e2; - border-top: 1px solid #c4d7e2; - } -.tallCellSelectedOver, -.tallCellSelectedOverDark { - background: #c4d7e2; - border-bottom: 1px solid #c4d7e2; - border-top: 1px solid #c4d7e2; - } -.imgHeaderButtonOver, -.imgHeaderButtonDown, -.headerButtonOver, -.headerButtonDown, -.sorterButtonOver, -.sorterButtonDown { - background-color: #c4d7e2; - } -.cellSelected, -.cellSelectedDark, -.specialColSelected, -.recordSummaryCellSelected, -.recordSummaryCellSelectedDark { - background: #c4d7e2 !important; - border-bottom: 1px solid #c4d7e2; - border-top: 1px solid #c4d7e2; - } -.cellSelectedOver, -.cellSelectedOverDark, -.specialColSelectedOver, -.recordSummaryCellSelectedOver, -.recordSummaryCellSelectedOverDark { - background: #c4d7e2 !important; - border-bottom: 1px solid #c4d7e2; - border-top: 1px solid #c4d7e2; -} -.cellOver, -.cellOverDark, -.specialColOver, -.recordSummaryCellOver, -.recordSummaryCellOverDark { - background: #d9e3e8 !important; - border-bottom: 1px solid #d9e3e8; - border-top: 1px solid #d9e3e8; - } -.treeCellOver, -.treeCellOverDark { - background-color: #d9e3e8; -} diff --git a/portal-common/src/main/webapp/common/css/themes/ztebluelight4.css b/portal-common/src/main/webapp/common/css/themes/ztebluelight4.css deleted file mode 100644 index ff534473..00000000 --- a/portal-common/src/main/webapp/common/css/themes/ztebluelight4.css +++ /dev/null @@ -1,620 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*** -light theme -***/ - -/*** -Reset and overrides -***/ -body { - background-color: #f1f3fa !important; -} - -.page-content .page-breadcrumb.breadcrumb .dashboard-date-range { - background-color: #ededed !important; -} - -.page-content { - background-color: #f1f3fa !important; -} - -.vSplitbar { - background-color: transparent !important; -} - -.btn-group .btn.blue.dropdown-toggle { - background-color: #333 !important; -} - -.btn-group .btn.blue.dropdown-toggle:hover { - background-color: #000 !important; -} - -/*** -Page header -***/ -.header { - filter: none !important; - background-color: #333333 !important; -} - -.header .btn-navbar { - background-color: #434343 !important; -} - -.header .navbar-nav .dropdown-toggle:hover, -.header .navbar-nav .dropdown.open .dropdown-toggle { - background-color: #40484c !important; -} - -.header .navbar-nav li.dropdown .dropdown-toggle i { - color: #ffffff !important; -} - -.zte-theme-panel > .toggler:hover { - background-color: #40484c !important; -} - -/*** -Header Search -***/ -.header .search-form { - background-color: #3a3a3a; -} - -.header .search-form .form-control { - color: #ccc; - border: 0; - background-color: #3a3a3a; -} - -.header .search-form .submit { - background: url(../../image/search-icon.png); -} - -/*** -Hor menu -***/ -.header .hor-menu ul.nav li a { - color: #fff; -} - -.header .hor-menu ul.nav li.open > a, -.header .hor-menu ul.nav li > a:hover, -.header .hor-menu ul.nav li > a:focus { - color: #ccc; - background: #333333; -} - -.header .hor-menu .dropdown-menu li:hover > a, -.header .hor-menu ul.nav li.active > a, -.header .hor-menu ul.nav li.active > a:hover { - color: #fff; - background: #333 !important; -} - -.header.navbar .hor-menu ul.nav li.current .selected, -.header.navbar .hor-menu ul.nav li.active .selected { - border-top: 6px solid #101010; -} - -.header .hor-menu ul.nav li.current > a, -.header .hor-menu ul.nav li.current > a:hover { - color: #fff; - background: #e02222 !important; -} - -.header .hor-menu .dropdown-menu { - background: #4f4f4f; -} - -.header .hor-menu .dropdown-menu li > a { - color: #ccc; -} - -.header .hor-menu .hor-menu-search-form-toggler.off { - background: #4f4f4f url(../../image/hor-menu-search-close-white.png) no-repeat center; -} - -.header .hor-menu .search-form { - background: #4f4f4f; -} - -.header .hor-menu .search-form form input { - color: #ccc; -} - -.header .hor-menu .search-form .btn { - color: #ccc; - background: url(../../image/search-icon-white.png) no-repeat center; -} - -.header .hor-menu .search-form form input::-webkit-input-placeholder { - /* WebKit browsers */ - color: #ccc; -} - -.header .hor-menu .search-form form input:-moz-placeholder { - /* Mozilla Firefox 4 to 18 */ - color: #ccc; -} - -.header .hor-menu .search-form form input::-moz-placeholder { - /* Mozilla Firefox 19+ */ - color: #ccc; -} - -.header .hor-menu .search-form form input:-ms-input-placeholder { - /* Internet Explorer 10+ */ - color: #ccc; -} - -/*** -Mega Menu -***/ -.mega-menu .mega-menu-submenu { - border-right: 1px solid #656565; -} - -.mega-menu .mega-menu-submenu li h3 { - color: #fff; -} - -/*** -Page sidebar -***/ -/*.page-content { - border-left: 1px solid #e2e2e2 !important; - border-bottom: 1px solid #e2e2e2 !important; -}*/ -.page-sidebar-menu > li.active > a .selected { - background-image: none !important; - border-right:#5C9ACF 3px solid; - height:40px !important; - top:0 !important; -} - -.page-sidebar-reversed .page-content { - border-left: 0; - border-right: 1px solid #e2e2e2 !important; -} - -.page-sidebar { - background-color: #f1f3fa; -} - -.page-sidebar-fixed .page-content { - border: 0 !important; -} - -.page-sidebar-fixed .page-sidebar { - border-right: 1px solid #e2e2e2 !important; -} - -ul.page-sidebar-menu > li > a { - border: 1px solid #dddddd !important; - color: #000 !important; - font-weight: 400; - background-color: #fff !important; - margin-left: 3px; - margin-right: 3px; - margin-bottom: 5px; - -webkit-border-radius: 3px !important; - -moz-border-radius: 3px !important; - -ms-border-radius: 3px !important; - -o-border-radius: 3px !important; - border-radius: 3px !important; -} - -.page-sidebar-menu > li.start > a { - border-top: 1px solid #dddddd !important; -} - -ul.page-sidebar-menu > li:first-child > a { - border-top: 1px solid #dddddd !important; -} - -ul.page-sidebar-menu > li:last-child > a { - border-bottom: 1px solid #dddddd !important; -} - -/*ul.page-sidebar-menu > li a i { - color: #000 !important; -}*/ - -/*ul.page-sidebar-menu > li.open > a:hover { - background: #ededed !important; - color: #000 !important; -}*/ -ul.page-sidebar-menu > li.open > a { - background: #fff !important; - color: #000 !important; -} -ul.page-sidebar-menu > li.active > a:hover { - background: #fff !important; - color: #5C9ACF !important ; - //border-left: #5C9ACF 3px solid; -} - - -/*ul.page-sidebar-menu > li.active > a .selected { - right:-7px; - top:0px; - width: 7px; - height: 39px; - background-image: url("../../image/sidebar-menu-arrow-green.png");*/ - } - -.page-sidebar-reversed ul.page-sidebar-menu > li.active > a .selected { - right: auto; - left: -7px; - background-image: url("../../image/sidebar-menu-arrow-green-reverse.png"); -} - -/*ul.page-sidebar-menu > li.active i { - color: #fff !important; -}*/ -.page-sidebar-fixed ul.page-sidebar-menu > li.active > a .selected { - display: none; -} - -ul.page-sidebar-menu > li.active > a { - background: #fff !important; - border-right-color: transparent !important; - color: #1177CF !important; -} - -ul.page-sidebar-menu > li.active > a i { - color: #5C9ACF; -} - -ul.page-sidebar-menu > li > a > .arrow:before, -ul.page-sidebar-menu > li > a > .arrow.open:before { - color: #ccc !important; -} - -ul.page-sidebar-menu > li.active > a .arrow:before, -ul.page-sidebar-menu > li.active > a .arrow.open:before { - color: #5C9ACF !important; -} - -ul.page-sidebar-menu > li > ul.sub-menu > li:first-child > a { - border-top: 0px !important; -} - -ul.page-sidebar-menu ul.sub-menu > li > a { - font-weight: 400 !important; - color: #2a6496 !important; - margin-left: 4px !important; - margin-right: 4px !important; - margin-bottom: 5px !important; -} - -ul.page-sidebar-menu ul.sub-menu > li.active > a, -ul.page-sidebar-menu ul.sub-menu > li > a:hover { - color: #818181 !important; - background: #ededed !important; -} - -ul.page-sidebar-menu > li > ul.sub-menu a .arrow:before, -ul.page-sidebar-menu > li > ul.sub-menu a .arrow.open:before { - color: #ccc !important; -} - -/* sub menu links effects */ -ul.page-sidebar-menu ul.sub-menu > li.active > a, -ul.page-sidebar-menu ul.sub-menu > li.active > a:hover { - color: #1177CF !important; - background: #dbe6ea !important; -} - -ul.page-sidebar-menu ul.sub-menu > li > a:hover, -ul.page-sidebar-menu ul.sub-menu > li.open > a { - color: #428bca !important; - background: #eaf1f4 !important; -} - -ul.page-sidebar-menu > li > a:hover, -ul.page-sidebar-menu > li.active > a:hover { - background-color: #ecf1f5 !important; - color: #585858; -} -/* sidebar search */ -.page-sidebar .sidebar-search input { - background-color: #f5f5f5 !important; - color: #727272 !important; -} - -.page-sidebar .sidebar-search input::-webkit-input-placeholder { - color: #aaa !important; -} - -.page-sidebar .sidebar-search input:-moz-placeholder { - color: #aaa !important; -} - -.page-sidebar .sidebar-search input:-ms-input-placeholder { - color: #aaa !important; -} - -.page-sidebar .sidebar-search .input-box { - border-bottom: 1px solid #e2e2e2 !important; -} - -.page-sidebar .sidebar-search .submit { - background-image: url(../../image/search-icon-white.png); -} - -/*** -Sidebar toggler -***/ -.sidebar-toggler { - background-image: url(../../image/sidebar-toggler-light.jpg); - background-color: #333; -} - -/* search box bg color on expanded */ -.page-sidebar-closed .page-sidebar .sidebar-search.open .form-container { - background-color: #fbfbfb !important; -} - -.page-sidebar-closed .page-sidebar .sidebar-search.open .form-container .remove { - background-image: url("../../image/sidebar-search-close-light.png"); -} - -/* sub menu bg color on hover menu item */ -.page-sidebar-closed ul.page-sidebar-menu > li:hover .sub-menu { - background-color: #f5f5f5; -} - -/*** -Footer -***/ -.footer .footer-inner { - color: #333333; -} - -.footer .footer-tools .go-top { - background-color: #666666; -} - -.footer .footer-tools .go-top:hover { - opacity: 0.7; - filter: alpha(opacity=70); -} - -.footer .footer-tools .go-top i { - color: #999999; -} - -/*** -Footer Layouts (new in v1.3) -***/ -/* begin:fixed footer */ -.page-footer-fixed .footer { - background-color: #434343; -} - -.page-footer-fixed .footer .footer-inner { - color: #aaaaaa; -} - -.page-footer-fixed .footer .footer-tools .go-top { - background-color: #666666; -} - -.page-footer-fixed .footer .footer-tools .go-top i { - color: #aaaaaa; -} - -/* end:fixed footer */ -/*** -Gritter Notifications -***/ -.gritter-top { - background: url(../../thirdparty/gritter/images/gritter.png) no-repeat left -30px !important; -} - -.gritter-bottom { - background: url(../../thirdparty/gritter/images/gritter.png) no-repeat left bottom !important; -} - -.gritter-item { - display: block; - background: url(../../thirdparty/gritter/images/gritter.png) no-repeat left -40px !important; -} - -.gritter-close { - background: url(../../thirdparty/gritter/images/gritter.png) no-repeat left top !important; -} - -.gritter-title { - text-shadow: none !important; - /* Not supported by IE :( */ - -} - -/* for the light (white) version of the gritter notice */ -.gritter-light .gritter-item, -.gritter-light .gritter-bottom, -.gritter-light .gritter-top, -.gritter-light .gritter-close { - background-image: url(../../thirdparty/gritter/images/gritter-light.png) !important; -} - -.gritter-item-wrapper a { - color: #18a5ed; -} - -.gritter-item-wrapper a:hover { - color: #0b6694; -} - -/* begin: boxed page */ -@media (min-width: 992px) { - .page-boxed { - background-color: #E8E8E8 !important; - } - - .page-boxed .page-container { - background-color: #f5f5f5; - border-left: 1px solid #e2e2e2; - border-bottom: 1px solid #e2e2e2; - } - - .page-sidebar-reversed.page-boxed .page-container { - border-left: 0; - border-right: 1px solid #e2e2e2; - } - - .page-boxed.page-sidebar-fixed .page-container { - border-left: 0; - border-bottom: 0; - } - - .page-boxed.page-sidebar-fixed .page-sidebar { - border-left: 1px solid #e2e2e2; - } - - .page-boxed.page-sidebar-reversed.page-sidebar-fixed .page-sidebar { - border-right: 1px solid #e2e2e2; - border-left: 0; - } - - .page-boxed.page-sidebar-fixed.page-footer-fixed .footer { - background-color: #E8E8E8 !important; - } - - .page-sidebar-closed .page-sidebar-menu > li > a { - margin-left: 0; - margin-right: 0; - } -} - -/* end: boxed page */ -/*** -Landscape phone to portrait tablet -***/ -@media (max-width: 991px) { - /*** - page sidebar - ***/ - .page-sidebar-closed .page-sidebar-menu > li > a { - margin-left: 0; - margin-right: 0; - } - - .page-sidebar { - background-color: #f1f1f1 !important; - border-right: none !important; - } - - .page-sidebar-fixed .page-sidebar { - border-right: none !important; - } - - .page-content { - border-left: none !important; - } - - ul.page-sidebar-menu > li > a { - border-top: 1px solid #ececec !important; - border-bottom: 1px solid #cccccc !important; - } - - /* ul.page-sidebar-menu > li:last-child > a { - border-bottom: 0 !important; - }*/ - ul.page-sidebar-menu > li.open > a, { - color: #666666 !important; - background-color: #e0e0e0 !important; - } - - /*ul.page-sidebar-menu > li > a:hover { - color: #666666 !important; - background-color: #e7e7e7 !important; - }*/ - ul.page-sidebar-menu > li.open > a { - border-bottom-color: transparent !important; - } - - /* ul.page-sidebar-menu > li.active > a { - color: #ffffff !important; - background-color: #28b779 !important; - }*/ - /*ul.page-sidebar-menu ul.sub-menu > li > a { - color: #111 !important; - }*/ - /*ul.page-sidebar-menu ul.sub-menu > li.active > a{ - color: #000 !important; - background: #dbe6ea !important; */ -} - -/* ul.page-sidebar-menu ul.sub-menu > li.open > a, - ul.page-sidebar-menu ul.sub-menu > li > a:hover { - color: #000 !important; - background: #e7e7e7 !important; - }*/ - -.page-sidebar .sidebar-search input { - background-color: #f1f1f1 !important; - color: #ccc !important; -} - -.page-sidebar .sidebar-search .input-box { - border-bottom-color: #ccc !important; -} - -.page-sidebar .sidebar-search input::-webkit-input-placeholder { - color: #ccc !important; -} - -.page-sidebar .sidebar-search input:-moz-placeholder { - color: #ccc !important; -} - -.page-sidebar .sidebar-search input:-ms-input-placeholder { - color: #ccc !important; -} - -/*** -page footer -***/ - -.footer { - background-color: #434343; -} - -.footer .footer-inner { - color: #cccccc; -} - -.footer .footer-tools .go-top { - background-color: #666666; -} - -.footer .footer-tools .go-top i { - color: #999999; -} - - } - -@media (max-width: 767px) { - body { - background-color: #333333 !important; - } -} \ No newline at end of file diff --git a/portal-common/src/main/webapp/common/css/themes/ztebluelight4_ifrm.css b/portal-common/src/main/webapp/common/css/themes/ztebluelight4_ifrm.css deleted file mode 100644 index d0bf1b4f..00000000 --- a/portal-common/src/main/webapp/common/css/themes/ztebluelight4_ifrm.css +++ /dev/null @@ -1,209 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*** -ztebluelight4_ifrm theme -***/ -body{ - background-color: white!important; -} -td>a>span[class^="ict-"], td>a>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>div>span[class^="ict-"], td>div>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>div>span>span[class^="ict-"], td>div>span>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>span>span[class^="ict-"], td>span>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -/* button style*/ -.buttonRounded, -.buttonRoundedOver, -.buttonRoundedFocused, -.buttonRoundedFocusedOver, -.buttonRoundedDown, -.buttonRoundedFocusedDown, -.buttonRoundedSelected, -.buttonRoundedSelectedFocused, -.buttonRoundedSelectedDown, -.buttonRoundedSelectedFocusedDown, -.buttonRoundedSelectedOver, -.buttonRoundedSelectedFocusedOver, -.buttonRoundedDisabled, -.buttonRoundedSelectedDisabled { - background-color: #47a080; - color: #fff; - border: 0px solid #b15a59; - border-radius: 0px; - font-family: Arial, Verdana, sans-serif; - font-size: 12px; - /*padding: 0 3px;*/ - padding-left:7px !important; - padding-right:7px !important; - height:30px !important; -} -.buttonRoundedDisabled, .buttonRoundedSelectedDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} -.buttonRoundedOver, -.buttonRoundedFocusedOver, -.buttonRoundedSelectedFocused, -.buttonRoundedSelectedFocusedOver, -.buttonRoundedDown, -.buttonRoundedFocusedDown { - background-color: #3f9375; - height:30px !important; -} - -.menuButton, -.menuButtonOver, -.menuButtonDown, -.menuButtonDisabled, -.menuButtonFocused, -.menuButtonFocusedDown, -.menuButtonFocusedOver, -.menuButtonSelected, -.menuButtonSelectedDown, -.menuButtonSelectedOver, -.menuButtonSelectedDisabled { - background-color: #47a080; - border: 0px solid #ababab; - color: #fff; - font-family: Arial, Verdana, sans-serif; - font-size: 12px; - padding-left: 7px !important; - padding-right: 7px !important; - height:30px !important; -} -.menuButtonOver { - background-color: #3f9375; - } -.menuButtonDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} - .buttonTitle, -.buttonTitleOver, -.buttonTitleDown, -.buttonTitleSelected, -.buttonTitleFocused, -.buttonTitleSelectedFocused, -.buttonTitleSelectedOver, -.buttonTitleFocusedOver, -.buttonTitleSelectedFocusedOver, -.buttonTitleSelectedDown, -.buttonTitleFocusedDown, -.buttonTitleSelectedFocusedDown, -.buttonTitleDisabled, -.buttonTitleSelectedDisabled { - color: #fff ; - } - .buttonTitleDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} - /* windowBody dialogBody Style */ - .windowBody, -.dialogBody { - background-color: white; - border: 1px solid #47a080; - border-top: 0; -} -.windowHeader, -.dialogHeader { - background-color: #47a080; - padding: 0; -} -/* sectionHeader Style */ -.sectionHeaderopened { - background-color: #47a080; - } - .sectionHeaderclosed { - background-color: #4ca887; - } - -#dt_example h1{ -color:#47a080; -font-weight:600 !important; -} - /*cell style*/ -.tallCellOver, -.tallCellOverDark { - background-color: #d7eae3; - border-bottom: 1px solid #d7eae3; - border-top: 1px solid #d7eae3; - } -.tallCellSelected, -.tallCellSelectedDark { - background: #c7e5da; - border-bottom: 1px solid #c7e5da; - border-top: 1px solid #c7e5da; - } -.tallCellSelectedOver, -.tallCellSelectedOverDark { - background: #c7e5da; - border-bottom: 1px solid #c7e5da; - border-top: 1px solid #c7e5da; - } -.imgHeaderButtonOver, -.imgHeaderButtonDown, -.headerButtonOver, -.headerButtonDown, -.sorterButtonOver, -.sorterButtonDown { - background-color: #a2cfbf; - } -.cellSelected, -.cellSelectedDark, -.specialColSelected, -.recordSummaryCellSelected, -.recordSummaryCellSelectedDark { - background: #c7e5da !important; - border-bottom: 1px solid #c7e5da; - border-top: 1px solid #c7e5da; - } -.cellSelectedOver, -.cellSelectedOverDark, -.specialColSelectedOver, -.recordSummaryCellSelectedOver, -.recordSummaryCellSelectedOverDark { - background: #c7e5da !important; - border-bottom: 1px solid #c7e5da; - border-top: 1px solid #c7e5da; -} -.cellOver, -.cellOverDark, -.specialColOver, -.recordSummaryCellOver, -.recordSummaryCellOverDark { - background: #d7eae3 !important; - border-bottom: 1px solid #d7eae3; - border-top: 1px solid #d7eae3; - } -.treeCellOver, -.treeCellOverDark { - background-color: #d7eae3; -} diff --git a/portal-common/src/main/webapp/common/css/themes/ztebluelight_ifrm.css b/portal-common/src/main/webapp/common/css/themes/ztebluelight_ifrm.css deleted file mode 100644 index 7b06ddfb..00000000 --- a/portal-common/src/main/webapp/common/css/themes/ztebluelight_ifrm.css +++ /dev/null @@ -1,228 +0,0 @@ -/** - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*** -ztebluelight_ifrm theme -***/ -body{ - background-color: white!important; -} -td>a>span[class^="ict-"], td>a>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>div>span[class^="ict-"], td>div>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>div>span>span[class^="ict-"], td>div>span>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} -td>span>span[class^="ict-"], td>span>span[class*=" ict-"]{ -color:#7083ba; -font-size: 16px; -} - -/* button style*/ -.buttonRounded, -.buttonRoundedOver, -.buttonRoundedFocused, -.buttonRoundedFocusedOver, -.buttonRoundedDown, -.buttonRoundedFocusedDown, -.buttonRoundedSelected, -.buttonRoundedSelectedFocused, -.buttonRoundedSelectedDown, -.buttonRoundedSelectedFocusedDown, -.buttonRoundedSelectedOver, -.buttonRoundedSelectedFocusedOver, -.buttonRoundedDisabled, -.buttonRoundedSelectedDisabled { - background-color: #3366cc ; - color: #fff; - border: 0px solid #b15a59; - font-family: Arial, Verdana, sans-serif; - font-size: 12px; - /*padding: 0 3px;*/ - padding-left:7px !important; - padding-right:7px !important; - height:30px !important; -} -.buttonRoundedDisabled, .buttonRoundedSelectedDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} -.buttonRoundedOver, -.buttonRoundedFocusedOver, -.buttonRoundedSelectedFocused, -.buttonRoundedSelectedFocusedOver , -.buttonRoundedDown, -.buttonRoundedFocusedDown{ - background-color: #6997f5; - height:30px !important; -} - -.menuButton, -.menuButtonOver, -.menuButtonDown, -.menuButtonDisabled, -.menuButtonFocused, -.menuButtonFocusedDown, -.menuButtonFocusedOver, -.menuButtonSelected, -.menuButtonSelectedDown, -.menuButtonSelectedOver, -.menuButtonSelectedDisabled { - background-color: #3366cc; - border: 0px solid #ababab; - color: #fff; - font-family: Arial, Verdana, sans-serif; - font-size: 12px; - padding-left: 7px !important; - padding-right: 7px !important; - height:30px !important; -} -.menuButtonOver { - background-color: #6997f5; - } -.menuButtonDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} - .buttonTitle, -.buttonTitleOver, -.buttonTitleDown, -.buttonTitleSelected, -.buttonTitleFocused, -.buttonTitleSelectedFocused, -.buttonTitleSelectedOver, -.buttonTitleFocusedOver, -.buttonTitleSelectedFocusedOver, -.buttonTitleSelectedDown, -.buttonTitleFocusedDown, -.buttonTitleSelectedFocusedDown, -.buttonTitleDisabled, -.buttonTitleSelectedDisabled { - color: #fff ; - } -.buttonTitleDisabled{ - background-color: #f0f0f0; - color: #dadada; - opacity: 1; -} - /* windowBody dialogBody Style */ - .windowBody, -.dialogBody { - background-color: white; - border: 1px solid #b4cef8; - border-top: 0; -} -.windowHeader, -.dialogHeader { - background-color: #3366cc; - padding: 0; -} -/* sectionHeader Style */ -.sectionHeaderopened { - background-color: #3366cc; - } - .sectionHeaderclosed { - background-color: #619bfa; - } - -#dt_example h1{ -color:#3366cc; -font-weight:600 !important; -} -/*cell style*/ -.tallCellOver, -.tallCellOverDark { - background-color: #ffede4; - border-bottom: 1px solid #ffede4; - border-top: 1px solid #ffede4; - } -.tallCellSelected, -.tallCellSelectedDark { - background: #f8dddd; - border-bottom: 1px solid #f8dddd; - border-top: 1px solid #f8dddd; - } -.tallCellSelectedOver, -.tallCellSelectedOverDark { - background: #f8dddd; - border-bottom: 1px solid #f8dddd; - border-top: 1px solid #f8dddd; - } -.imgHeaderButtonOver, -.imgHeaderButtonDown, -.headerButtonOver, -.headerButtonDown, -.sorterButtonOver, -.sorterButtonDown { - background-color: #c4d7e2; -} -.cellSelected, -.cellSelectedDark, -.specialColSelected, -.recordSummaryCellSelected, -.recordSummaryCellSelectedDark { - background: #f8dddd !important; - border-bottom: 1px solid #f8dddd; - border-top: 1px solid #f8dddd; - } -.cellSelectedOver, -.cellSelectedOverDark, -.specialColSelectedOver, -.recordSummaryCellSelectedOver, -.recordSummaryCellSelectedOverDark { - background: #f8dddd !important; - border-bottom: 1px solid #f8dddd; - border-top: 1px solid #f8dddd; -} -.cellOver, -.cellOverDark, -.specialColOver, -.recordSummaryCellOver, -.recordSummaryCellOverDark { - background: #ffede4 !important; - border-bottom: 1px solid #ffede4; - border-top: 1px solid #ffede4; - } -.treeCellOver, -.treeCellOverDark { - background-color: #ffede4; -} -/*日志管理的蓝色大圆角筛选按é’?/ -.blue { - background-color: #fff; - color:#1991c5; -} -.blue:hover { - background-color: #e8f3fd; - color:#3366cc; -} -.blue.selected{ - border:0; - background-color: #3366cc; - color:#fff; -} -.blue.selected:hover{ - border:0; - background-color: #3366cc; - color:#fff; -} \ No newline at end of file diff --git a/portal-common/src/main/webapp/common/default.html b/portal-common/src/main/webapp/common/default.html deleted file mode 100644 index 8d2eb6ca..00000000 --- a/portal-common/src/main/webapp/common/default.html +++ /dev/null @@ -1,174 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    - - -
    - -
    -
    -
    -
    -
    - - -
    -
    -
    -
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/i18n/web-framework-i18n-en-US.properties b/portal-common/src/main/webapp/common/i18n/web-framework-i18n-en-US.properties deleted file mode 100644 index 18da1883..00000000 --- a/portal-common/src/main/webapp/common/i18n/web-framework-i18n-en-US.properties +++ /dev/null @@ -1,222 +0,0 @@ -# -# Copyright 2016-2017, CMCC Technologies Co., Ltd. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -com_zte_ums_ict_framework_ui_page_title=OPEN-O System -com_zte_ums_ict_framework_ui_main_title=OPEN-O -com_zte_ums_ict_framework_ui_skin_select=Theme Color -com_zte_ums_ict_framework_ui_language=Language -com_zte_ums_ict_framework_ui_language_zhcn=中文 -com_zte_ums_ict_framework_ui_language_en=English -com_zte_ums_ict_framework_ui_skin_layout=Layout -com_zte_ums_ict_framework_ui_layout_fluid=Fluid -com_zte_ums_ict_framework_ui_layout_boxed=Boxed -com_zte_ums_ict_framework_ui_page_head=Header -com_zte_ums_ict_framework_ui_page_fixed=Fixed -com_zte_ums_ict_framework_ui_page_default=Default -com_zte_ums_ict_framework_ui_page_head_fixed=Fixed -com_zte_ums_ict_framework_ui_page_head_default=Default -com_zte_ums_ict_framework_ui_page_sidebar_fixed=Fixed -com_zte_ums_ict_framework_ui_page_sidebar_default=Default -com_zte_ums_ict_framework_ui_side_bar=Sidebar -com_zte_ums_ict_framework_ui_sidebar_location=Sidebar Position -com_zte_ums_ict_framework_ui_navbar_direction=Menu Direction -com_zte_ums_ict_framework_ui_navbar_direction_horizontal=Horizontal -com_zte_ums_ict_framework_ui_navbar_direction_vertical=Vertical -com_zte_ums_ict_framework_ui_navbar_direction_fmenu=Category Navigation -com_zte_ums_ict_framework_ui_keep_top=Top -com_zte_ums_ict_framework_ui_keep_left=Left -com_zte_ums_ict_framework_ui_keep_right=Right -com_zte_ums_ict_framework_ui_page_footer=Footer - -com_zte_ums_ict_framework_ui_basic_info=Basic Information -com_zte_ums_ict_framework_ui_search_value=Search... -com_zte_ums_ict_framework_ui_sidebar_mainPage=Home -com_zte_ums_ict_framework_ui_sidebar_topo=Topology -com_zte_ums_ict_framework_ui_sidebar_resList=Resource Table -com_zte_ums_ict_framework_ui_sidebar_physicTopo=Physical Topology -com_zte_ums_ict_framework_ui_sidebar_linkTopo=Relation Topology -com_zte_ums_ict_framework_ui_sidebar_alarm=Alarm -com_zte_ums_ict_framework_ui_sidebar_alarm_summary=Alarm Summary -com_zte_ums_ict_framework_ui_sidebar_currentAlarm=Active Alarm -com_zte_ums_ict_framework_ui_sidebar_historyAlarm=History Alarm -com_zte_ums_ict_framework_ui_sidebar_notice=Notification -com_zte_ums_ict_framework_ui_sidebar_alarmRule=Alarm Setting -com_zte_ums_ict_framework_ui_sidebar_queryAlarm=Query Alarm -com_zte_ums_ict_framework_ui_sidebar_alarmStat=Alarm Statistic -com_zte_ums_ict_framework_ui_sidebar_alarmSetup=Alarm Setting -com_zte_ums_ict_framework_ui_sidebar_perform=Performance - -com_zte_ums_ict_framework_ui_sidebar_pm_meatask=Measure Management -com_zte_ums_ict_framework_ui_sidebar_index=Index Management -com_zte_ums_ict_framework_ui_sidebar_threshold=Threshold Management - -com_zte_ums_ict_framework_ui_sidebar_historySearch=History Query -com_zte_ums_ict_framework_ui_sidebar_realTimeSearch=Realtime Data Query -com_zte_ums_ict_framework_ui_sidebar_counterAndIndicator=Counter and Index -com_zte_ums_ict_framework_ui_sidebar_measureTaskMang=Measurement Task -com_zte_ums_ict_framework_ui_sidebar_generalTemplateMang=Common Template -com_zte_ums_ict_framework_ui_sidebar_config=Configuration -com_zte_ums_ict_framework_ui_sidebar_itDevMang=IT Resource Management -com_zte_ums_ict_framework_ui_sidebar_ipDevMang=IP Resource Management -com_zte_ums_ict_framework_ui_sidebar_autoFind=Auto Discovery -com_zte_ums_ict_framework_ui_sidebar_pollConfig=Poll Configuration -com_zte_ums_ict_framework_ui_sidebar_smcenter=Security Center -com_zte_ums_ict_framework_ui_sidebar_security=Security -com_zte_ums_ict_framework_ui_sidebar_smGuide=security Entry -com_zte_ums_ict_framework_ui_sidebar_deptMang=Department Management -com_zte_ums_ict_framework_ui_sidebar_userMang=User Management -com_zte_ums_ict_framework_ui_sidebar_roleMang=Role Management -com_zte_ums_ict_framework_ui_sidebar_acccRule=Customize User Account Rule -com_zte_ums_ict_framework_ui_sidebar_roleAndRoleset=Role & Role Set -com_zte_ums_ict_framework_ui_sidebar_role=Role Management -com_zte_ums_ict_framework_ui_sidebar_roleset=Role Set Management -com_zte_ums_ict_framework_ui_sidebar_log=Log -com_zte_ums_ict_framework_ui_sidebar_operationLog=Operation Log -com_zte_ums_ict_framework_ui_sidebar_sysLog=System Log -com_zte_ums_ict_framework_ui_sidebar_securityLog=Security Log -com_zte_ums_ict_framework_ui_sidebar_sysLogMultiTab=System Log(Multi-tab Example) -com_zte_ums_ict_framework_ui_sidebar_operationLogMultiTab=Operation Log(Multi-tab Example) -com_zte_ums_ict_framework_ui_sidebar_system=System -com_zte_ums_ict_framework_ui_sidebar_dataBackup=Backup Data -com_zte_ums_ict_framework_ui_sidebar_fileBackup=Backup Files -com_zte_ums_ict_framework_ui_sidebar_license=License -com_zte_ums_ict_framework_ui_sidebar_sysState=System Status -com_zte_ums_ict_framework_ui_sidebar_SystemMang=System Management - -com_zte_ums_ict_framework_ui_sidebar_monitor=Monitor -com_zte_ums_ict_framework_ui_sidebar_alarmByCell=Active Alarm Statistic by NE -com_zte_ums_ict_framework_ui_sidebar_alarmByCellType=Active Alarm Statistic by NE Type -com_zte_ums_ict_framework_ui_breadcrumbs_moreOper=More Operation -com_zte_ums_ict_framework_ui_sidebar_dbStructBack=DB Struct Backup -com_zte_ums_ict_framework_ui_sidebar_baseDataBack=Base Data Backup -com_zte_ums_ict_framework_ui_sidebar_logDataBackRestore=Log Data Back&Restore -com_zte_ums_ict_framework_ui_sidebar_alarmDataBackRestore=Alarm Data Back&Restore -com_zte_ums_ict_framework_ui_sidebar_dbBack=Database Backup -com_zte_ums_ict_framework_ui_breadcrumbs_ruleSetup=Rule Setup -com_zte_ums_ngict_dashboard=Dashboard - -com_zte_ums_ict_framework_ui_sidebar_levelRedefineSetup=Severity Regrading Setting -com_zte_ums_ict_framework_ui_sidebar_disposeSuggestionSetup=Handing Suggestion Setting -com_zte_ums_ict_framework_ui_sidebar_AlarmBoxSetup=Set Alarm Box -com_zte_ums_ict_framework_ui_sidebar_measureObjectMang=MO Management -com_zte_ums_ict_framework_ui_sidebar_thresholdTaskMang=Threshold Task -com_zte_ums_ict_framework_ui_sidebar_anDevMan=AN Device Management -com_zte_ums_ict_framework_ui_sidebar_cellMang=Cell management -com_zte_ums_ict_framework_ui_sidebar_snmpPing= SNMP Ping -com_zte_ums_ict_framework_ui_sidebar_telnet=Telnet -com_zte_ums_ict_framework_ui_sidebar_workOder=Work Order -com_zte_ums_ict_framework_ui_sidebar_resMang=Resource Management -com_zte_ums_ict_framework_ui_sidebar_SecurityMang=Security Management -com_zte_ums_ict_framework_ui_sidebar_userLockStatus=Show Locked Users -com_zte_ums_ict_framework_ui_sidebar_loginUserMang=Login User Management -com_zte_ums_ict_framework_ui_sidebar_userBlackList=User Blacklist -com_zte_ums_ict_framework_ui_sidebar_operationSet=Operation Set Management -com_zte_ums_ict_framework_ui_sidebar_LogMang=Log Management -com_zte_ums_ict_framework_ui_sidebar_backRestore=Backup and Restore -com_zte_ums_ict_framework_ui_sidebar_dbStructBack=Backup Whole DB Structure -com_zte_ums_ict_framework_ui_sidebar_baseDataBack=Backup Basic Data -com_zte_ums_ict_framework_ui_sidebar_logDataBackRestore=Log Data Backup and Restore -com_zte_ums_ict_framework_ui_sidebar_alarmDataBackRestore=Alarm Data Backup and Restore -com_zte_ums_ict_framework_ui_loading=loading...... -com_zte_ums_ict_framework_ui_searching=searching...... -com_zte_ums_ict_framework_ui_clickTooFast=You click on too fast, please wait for a while to click the menu, thank you! -com_zte_ums_ict_framework_ui_loadmenuerror=loading menu failed. -com_zte_ums_ict_framework_ui_confirmlogout=Do you confirm to logout? -com_zte_ums_aos_framework_ui_heartbeat_fail=The session is invalidated. -com_zte_ums_ict_framework_ui_fixedsidedefaultheaderError=Default Header with Fixed Sidebar option is not supported. Proceed with Fixed Header with Fixed Sidebar. -com_zte_ums_ict_framework_ui_fixedsiderightpositionError=Fixed Sidebar with right position is not supported. Set Sidebar as default. -com_zte_ums_ict_framework_ui_loadchgpwdpageError=loading change password page failed. -com_zte_ums_ict_framework_ui_searchmessage=The {0} keyword search results as follows: -com_zte_ums_ict_framework_ui_month=January,February,March,April,May,June,July,August,September,October,November,December -com_zte_ums_ict_framework_ui_customdate=Custom date -com_zte_ums_ict_framework_ui_from=From -com_zte_ums_ict_framework_ui_to=To -com_zte_ums_ict_framework_ui_apply=Apply -com_zte_ums_ict_framework_ui_today=Today -com_zte_ums_ict_framework_ui_yestoday=Yestoday -com_zte_ums_ict_framework_ui_lastdays=Last {0} days -com_zte_ums_ict_framework_ui_thismonth=This month -com_zte_ums_ict_framework_ui_lastmonth=Last month - -com_zte_ums_ict_framework_ui_group_about=About -com_zte_ums_ict_framework_ui_group_logout=Logout -com_zte_ums_ict_framework_ui_changePwd=Change Password -com_zte_ums_ict_framework_ui_group_fullscreen=Full Screen -com_zte_ums_ict_framework_ui_group_exitfullscreen=Exit Full Screen -com_zte_ums_ict_framework_moudle_help = Help -com_zte_ums_ict_framework_moudle_menutoggler=More - - -com_zte_ums_ict_alarmcount_total_label = Total:{0} -com_zte_ums_ict_alarmcount_critical_label = Critical:{0} -com_zte_ums_ict_alarmcount_critical_text = Critical Alarm -com_zte_ums_ict_alarmcount_major_label = Major:{0} -com_zte_ums_ict_alarmcount_major_text = Major Alarm -com_zte_ums_ict_alarmcount_minor_label = Minor:{0} -com_zte_ums_ict_alarmcount_minor_text = Minor Alarm -com_zte_ums_ict_alarmcount_warning_label = Warning:{0} -com_zte_ums_ict_alarmcount_warning_text = Warning Alarm -com_zte_ums_ict_alarmcount_none_label=No alarm Now! -com_zte_ums_ict_alarmcount_total_after_text = ,Now!" -com_zte_ums_ict_alarmcount_total_before_text =Total Alarm Number: - -com_zte_ums_ict_framework_ui_sidebar_performMonitor=Perform Monitor -com_zte_ums_ict_framework_ui_sidebar_resource=Resource -com_zte_ums_ict_framework_ui_sidebar_manualAdd=Manual Add -com_zte_ums_ict_framework_ui_sidebar_gisTopo=GIS Topo - - -com_zte_ums_ict_framework_ui_sidebar_userDispatch=User Dispatch -com_zte_ums_ict_framework_ui_sidebar_roleCollect=Role Collection - -com_zte_ums_ict_sm_user_op_ok=Operation succeeded. -com_zte_ums_ict_sm_user_close_button=Close -com_zte_ums_ict_sm_user_confirm=OK -com_zte_ums_ict_sm_user_ok=OK -com_zte_ums_ict_sm_user_modify_current_password_label=      User Password Set -com_zte_ums_ict_sm_user_modify_current_password=User Password Set -com_zte_ums_ict_sm_user_old_password=Old Password -com_zte_ums_ict_sm_user_confirmpassword=Confirm New Password -com_zte_ums_ict_sm_user_cancel_button=Cancel -com_zte_ums_ict_sm_user_password=New Password -com_zte_ums_ict_sm_password_confirm_not_consistent = The New Password and the Confirm New Password are inconsistent. -com_zte_ums_ict_sm_user_inputoldpwd=Please input old password -com_zte_ums_ict_sm_user_inputnewpwd=Please input new password -com_zte_ums_ict_sm_user_inputnewpwdagain=Please input new password again -com_zte_ums_ict_portal_chgpwd_oldpwdError=Old password error -com_zte_ums_ict_login_inputname=Please input user name -com_zte_ums_ict_login_inputpwd=Please input user password - -com_zte_ums_ict_framework_ui_ztebluelight=ZTE Blue Light -com_zte_ums_ict_framework_ui_zteblue=ZTE Blue -com_zte_ums_ict_framework_ui_blue=Blue - -com_zte_ums_ict_about_ppu_field_name =Name -com_zte_ums_ict_about_ppu_field_version = Version -com_zte_ums_ict_about_ppu_field_desc = Description -com_zte_ums_ict_about_ppu_field_time = Update Time -com_zte_ums_ict_framework_moudle_about = About -com_zte_ums_ict_framework_about_detail = Info -com_zte_ums_ict_framework_about_version=Version: -com_zte_ums_ict_portal_login_companyName=2014 @; ZTE - Corporation - -com_zte_ums_ict_framework_main_page_dashboard=Dashboard -com_zte_ums_ict_framework_main_page_monitor=Monitor -com_zte_ums_ict_framework_main_page_alarm=Alarm -com_zte_ums_ict_framework_main_page_performance=Performance -com_zte_ums_ict_framework_main_page_security=Security -com_zte_ums_ict_framework_main_page_log=Log -com_zte_ums_ict_framework_main_page_system=System \ No newline at end of file diff --git a/portal-common/src/main/webapp/common/i18n/web-framework-login-i18n-en-US.properties b/portal-common/src/main/webapp/common/i18n/web-framework-login-i18n-en-US.properties deleted file mode 100644 index 4f5ba8af..00000000 --- a/portal-common/src/main/webapp/common/i18n/web-framework-login-i18n-en-US.properties +++ /dev/null @@ -1,25 +0,0 @@ -# -# Copyright 2016-2017, CMCC Technologies Co., Ltd. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -openo_login_title=OPEN-O System -openo_login_welcome=Welcome -openo_login_userPasswordError=User name or password is not available. -openo_login_connectError=System error occurred. -openo_input_userName=Please Input User Name -openo_input_password=Please Input Password -openo_login_rememberMe=Remember Me -openo_login_username=Username: -openo_login_password=Password: -openo_login_login=Login diff --git a/portal-common/src/main/webapp/common/i18n/web-framework-mainPage-i18n-en-US.properties b/portal-common/src/main/webapp/common/i18n/web-framework-mainPage-i18n-en-US.properties deleted file mode 100644 index cb08ef41..00000000 --- a/portal-common/src/main/webapp/common/i18n/web-framework-mainPage-i18n-en-US.properties +++ /dev/null @@ -1,24 +0,0 @@ -# -# Copyright 2016-2017, CMCC Technologies Co., Ltd. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -openo_main_page_title=OPEN-O System -org_openo_orchestrator_framework_main_page_service=Service -org_openo_orchestrator_framework_main_page_cloud=Cloud -org_openo_orchestrator_framework_main_page_orchestrator=Orchestrator -org_openo_orchestrator_framework_main_page_monitor=Monitor -org_openo_orchestrator_framework_main_page_resource=Resource -org_openo_orchestrator_framework_main_page_design=Design -org_openo_orchestrator_framework_main_page_alarm=Alarm -org_openo_orchestrator_framework_main_page_performance=Performance diff --git a/portal-common/src/main/webapp/common/i18n/web-framework-menu-i18n-en-US.properties b/portal-common/src/main/webapp/common/i18n/web-framework-menu-i18n-en-US.properties deleted file mode 100644 index bf8ceaf6..00000000 --- a/portal-common/src/main/webapp/common/i18n/web-framework-menu-i18n-en-US.properties +++ /dev/null @@ -1,41 +0,0 @@ -# -# Copyright 2016-2017, CMCC Technologies Co., Ltd. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -openo_menu_service=Service -openo_menu_service_service_management=Service Management -openo_menu_orchestrator=Orchestrator -openo_menu_orchestrator_model_design=Model Design -openo_menu_orchestrator_node_type=Node Type -openo_menu_orchestrator_package=Package -openo_menu_orchestrator_service_template=Service Template -openo_menu_orchestrator_host_image=Host Image -openo_menu_orchestrator_lifecycle=Lifecycle -openo_menu_resource_mgr=Resource Mgr -openo_menu_resource_mgr_sdno=Resource Mgr sdno -openo_menu_resource_mgr_nfvo=Resource Mgr Nfvo -openo_menu_user=User -openo_menu_user_user_management=User Management -openo_menu_topology=Topology -openo_menu_topology_physical_topology=Physical Topology -openo_menu_topology_service_topology=Service Topology -openo_menu_performance=Performance -openo_menu_performance_performance_query=Performance Query -openo_menu_alarm_alarm_query=Alarm Query -openo_menu_manage_view=Manage View -openo_menu_manage_view_vim_manage=VIM Manage -openo_menu_manage_view_vnfm=VNFM -openo_menu_manage_view_sdn_controller=SDN Controller -openo_menu_monitor=Monitor -openo_menu_monitor_parameter_setting=Parameter Setting diff --git a/portal-common/src/main/webapp/common/image/License.txt b/portal-common/src/main/webapp/common/image/License.txt deleted file mode 100644 index d1ce787a..00000000 --- a/portal-common/src/main/webapp/common/image/License.txt +++ /dev/null @@ -1,362 +0,0 @@ -THIS LICENSE FILE CONTAINS THE LICENSE APPLICABLE DEPENDING ON THE TYPE OF CONTRIBUTIONS. - -APACHE LICENSE 2 IS APPLICABLE FOR SOURCE CODE, CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL FOR DOCUMENTATION - -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - - -Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - -"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - -"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - -"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - -"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - -"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - -"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - -"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - -"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - -"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - -"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - -2. Grant of Copyright License. - -Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. - -Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - -4. Redistribution. - -You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - -You must give any other recipients of the Work or Derivative Works a copy of this License; and You must cause any modified files to carry prominent notices stating that You changed the files; and You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - -5. Submission of Contributions. - -Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - -6. Trademarks. - -This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. - -Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. - -In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. - -While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS - -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - -Attribution 4.0 International - -https://creativecommons.org/licenses/by/4.0/legalcode - -Creative Commons Corporation ("Creative Commons") is not a law firm and does not provide legal services or legal advice. Distribution of Creative Commons public licenses does not create a lawyer-client or other relationship. Creative Commons makes its licenses and related information available on an "as-is" basis. Creative Commons gives no warranties regarding its licenses, any material licensed under their terms and conditions, or any related information. Creative Commons disclaims all liability for damages resulting from their use to the fullest extent possible. - -Using Creative Commons Public Licenses - -Creative Commons public licenses provide a standard set of terms and conditions that creators and other rights holders may use to share original works of authorship and other material subject to copyright and certain other rights specified in the public license below. The following considerations are for informational purposes only, are not exhaustive, and do not form part of our licenses. - - Considerations for licensors: Our public licenses are - intended for use by those authorized to give the public - permission to use material in ways otherwise restricted by - copyright and certain other rights. Our licenses are - irrevocable. Licensors should read and understand the terms - and conditions of the license they choose before applying it. - Licensors should also secure all rights necessary before - applying our licenses so that the public can reuse the - material as expected. Licensors should clearly mark any - material not subject to the license. This includes other CC- - licensed material, or material used under an exception or - limitation to copyright. More considerations for licensors: - wiki.creativecommons.org/Considerations_for_licensors - Considerations for the public: By using one of our public - licenses, a licensor grants the public permission to use the - licensed material under specified terms and conditions. If - the licensor's permission is not necessary for any reason--for - example, because of any applicable exception or limitation to - copyright--then that use is not regulated by the license. Our - licenses grant only permissions under copyright and certain - other rights that a licensor has authority to grant. Use of - the licensed material may still be restricted for other - reasons, including because others have copyright or other - rights in the material. A licensor may make special requests, - such as asking that all changes be marked or described. - Although not required by our licenses, you are encouraged to - respect those requests where reasonable. More_considerations - for the public: - wiki.creativecommons.org/Considerations_for_licensees -Creative Commons Attribution 4.0 International Public License - -By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions. - - -Section 1 -- Definitions. - - a. Adapted Material means material subject to Copyright and Similar - Rights that is derived from or based upon the Licensed Material - and in which the Licensed Material is translated, altered, - arranged, transformed, or otherwise modified in a manner requiring - permission under the Copyright and Similar Rights held by the - Licensor. For purposes of this Public License, where the Licensed - Material is a musical work, performance, or sound recording, - Adapted Material is always produced where the Licensed Material is - synched in timed relation with a moving image. - b. Adapter's License means the license You apply to Your Copyright - and Similar Rights in Your contributions to Adapted Material in - accordance with the terms and conditions of this Public License. - c. Copyright and Similar Rights means copyright and/or similar rights - closely related to copyright including, without limitation, - performance, broadcast, sound recording, and Sui Generis Database - Rights, without regard to how the rights are labeled or - categorized. For purposes of this Public License, the rights - specified in Section 2(b)(1)-(2) are not Copyright and Similar - Rights. - d. Effective Technological Measures means those measures that, in the - absence of proper authority, may not be circumvented under laws - fulfilling obligations under Article 11 of the WIPO Copyright - Treaty adopted on December 20, 1996, and/or similar international - agreements. - e. Exceptions and Limitations means fair use, fair dealing, and/or - any other exception or limitation to Copyright and Similar Rights - that applies to Your use of the Licensed Material. - f. Licensed Material means the artistic or literary work, database, - or other material to which the Licensor applied this Public - License. - g. Licensed Rights means the rights granted to You subject to the - terms and conditions of this Public License, which are limited to - all Copyright and Similar Rights that apply to Your use of the - Licensed Material and that the Licensor has authority to license. - h. Licensor means the individual(s) or entity(ies) granting rights - under this Public License. - i. Share means to provide material to the public by any means or - process that requires permission under the Licensed Rights, such - as reproduction, public display, public performance, distribution, - dissemination, communication, or importation, and to make material - available to the public including in ways that members of the - public may access the material from a place and at a time - individually chosen by them. - j. Sui Generis Database Rights means rights other than copyright - resulting from Directive 96/9/EC of the European Parliament and of - the Council of 11 March 1996 on the legal protection of databases, - as amended and/or succeeded, as well as other essentially - equivalent rights anywhere in the world. - k. You means the individual or entity exercising the Licensed Rights - under this Public License. Your has a corresponding meaning. - -Section 2 -- Scope. - - a. License grant. - 1. Subject to the terms and conditions of this Public License, - the Licensor hereby grants You a worldwide, royalty-free, - non-sublicensable, non-exclusive, irrevocable license to - exercise the Licensed Rights in the Licensed Material to: - a. reproduce and Share the Licensed Material, in whole or - in part; and - b. produce, reproduce, and Share Adapted Material. - 2. Exceptions and Limitations. For the avoidance of doubt, where - Exceptions and Limitations apply to Your use, this Public - License does not apply, and You do not need to comply with - its terms and conditions. - 3. Term. The term of this Public License is specified in Section - 6(a). - 4. Media and formats; technical modifications allowed. The - Licensor authorizes You to exercise the Licensed Rights in - all media and formats whether now known or hereafter created, - and to make technical modifications necessary to do so. The - Licensor waives and/or agrees not to assert any right or - authority to forbid You from making technical modifications - necessary to exercise the Licensed Rights, including - technical modifications necessary to circumvent Effective - Technological Measures. For purposes of this Public License, - simply making modifications authorized by this Section 2(a) - (4) never produces Adapted Material. - 5. Downstream recipients. - a. Offer from the Licensor -- Licensed Material. Every - recipient of the Licensed Material automatically - receives an offer from the Licensor to exercise the - Licensed Rights under the terms and conditions of this - Public License. - b. No downstream restrictions. You may not offer or impose - any additional or different terms or conditions on, or - apply any Effective Technological Measures to, the - Licensed Material if doing so restricts exercise of the - Licensed Rights by any recipient of the Licensed - Material. - 6. No endorsement. Nothing in this Public License constitutes or - may be construed as permission to assert or imply that You - are, or that Your use of the Licensed Material is, connected - with, or sponsored, endorsed, or granted official status by, - the Licensor or others designated to receive attribution as - provided in Section 3(a)(1)(A)(i). - b. Other rights. - 1. Moral rights, such as the right of integrity, are not - licensed under this Public License, nor are publicity, - privacy, and/or other similar personality rights; however, to - the extent possible, the Licensor waives and/or agrees not to - assert any such rights held by the Licensor to the limited - extent necessary to allow You to exercise the Licensed - Rights, but not otherwise. - 2. Patent and trademark rights are not licensed under this - Public License. - 3. To the extent possible, the Licensor waives any right to - collect royalties from You for the exercise of the Licensed - Rights, whether directly or through a collecting society - under any voluntary or waivable statutory or compulsory - licensing scheme. In all other cases the Licensor expressly - reserves any right to collect such royalties. - -Section 3 -- License Conditions. - -Your exercise of the Licensed Rights is expressly made subject to the following conditions. - - a. Attribution. - 1. If You Share the Licensed Material (including in modified - form), You must: - a. retain the following if it is supplied by the Licensor - with the Licensed Material: - i. identification of the creator(s) of the Licensed - Material and any others designated to receive - attribution, in any reasonable manner requested by - the Licensor (including by pseudonym if - designated); - ii. a copyright notice; - iii. a notice that refers to this Public License; - iv. a notice that refers to the disclaimer of - warranties; - v. a URI or hyperlink to the Licensed Material to the - extent reasonably practicable; - b. indicate if You modified the Licensed Material and - retain an indication of any previous modifications; and - c. indicate the Licensed Material is licensed under this - Public License, and include the text of, or the URI or - hyperlink to, this Public License. - 2. You may satisfy the conditions in Section 3(a)(1) in any - reasonable manner based on the medium, means, and context in - which You Share the Licensed Material. For example, it may be - reasonable to satisfy the conditions by providing a URI or - hyperlink to a resource that includes the required - information. - 3. If requested by the Licensor, You must remove any of the - information required by Section 3(a)(1)(A) to the extent - reasonably practicable. - 4. If You Share Adapted Material You produce, the Adapter's - License You apply must not prevent recipients of the Adapted - Material from complying with this Public License. - -Section 4 -- Sui Generis Database Rights. - -Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material: - - a. for the avoidance of doubt, Section 2(a)(1) grants You the right - to extract, reuse, reproduce, and Share all or a substantial - portion of the contents of the database; - b. if You include all or a substantial portion of the database - contents in a database in which You have Sui Generis Database - Rights, then the database in which You have Sui Generis Database - Rights (but not its individual contents) is Adapted Material; and - c. You must comply with the conditions in Section 3(a) if You Share - all or a substantial portion of the contents of the database. -For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights. - - -Section 5 -- Disclaimer of Warranties and Limitation of Liability. - - a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE - EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS - AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF - ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, - IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, - WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR - PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, - ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT - KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT - ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. - b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE - TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, - NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, - INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, - COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR - USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN - ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR - DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR - IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. - c. The disclaimer of warranties and limitation of liability provided - above shall be interpreted in a manner that, to the extent - possible, most closely approximates an absolute disclaimer and - waiver of all liability. - -Section 6 -- Term and Termination. - - a. This Public License applies for the term of the Copyright and - Similar Rights licensed here. However, if You fail to comply with - this Public License, then Your rights under this Public License - terminate automatically. - b. Where Your right to use the Licensed Material has terminated under - Section 6(a), it reinstates: - 1. automatically as of the date the violation is cured, provided - it is cured within 30 days of Your discovery of the - violation; or - 2. upon express reinstatement by the Licensor. - For the avoidance of doubt, this Section 6(b) does not affect any - right the Licensor may have to seek remedies for Your violations - of this Public License. - c. For the avoidance of doubt, the Licensor may also offer the - Licensed Material under separate terms or conditions or stop - distributing the Licensed Material at any time; however, doing so - will not terminate this Public License. - d. Sections 1, 5, 6, 7, and 8 survive termination of this Public - License. - -Section 7 -- Other Terms and Conditions. - - a. The Licensor shall not be bound by any additional or different - terms or conditions communicated by You unless expressly agreed. - b. Any arrangements, understandings, or agreements regarding the - Licensed Material not stated herein are separate from and - independent of the terms and conditions of this Public License. - -Section 8 -- Interpretation. - - a. For the avoidance of doubt, this Public License does not, and - shall not be interpreted to, reduce, limit, restrict, or impose - conditions on any use of the Licensed Material that could lawfully - be made without permission under this Public License. - b. To the extent possible, if any provision of this Public License is - deemed unenforceable, it shall be automatically reformed to the - minimum extent necessary to make it enforceable. If the provision - cannot be reformed, it shall be severed from this Public License - without affecting the enforceability of the remaining terms and - conditions. - c. No term or condition of this Public License will be waived and no - failure to comply consented to unless expressly agreed to by the - Licensor. - d. Nothing in this Public License constitutes or may be interpreted - as a limitation upon, or waiver of, any privileges and immunities - that apply to the Licensor or You, including from the legal - processes of any jurisdiction or authority. -Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the "Licensor." The text of the Creative Commons public licenses is dedicated to the public domain under the CC0 Public Domain Dedication. Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at creativecommons.org/policies, Creative Commons does not authorize the use of the trademark "Creative Commons" or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses. - -Creative Commons may be contacted at creativecommons.org. \ No newline at end of file diff --git a/portal-common/src/main/webapp/common/image/about/License.txt b/portal-common/src/main/webapp/common/image/about/License.txt deleted file mode 100644 index d1ce787a..00000000 --- a/portal-common/src/main/webapp/common/image/about/License.txt +++ /dev/null @@ -1,362 +0,0 @@ -THIS LICENSE FILE CONTAINS THE LICENSE APPLICABLE DEPENDING ON THE TYPE OF CONTRIBUTIONS. - -APACHE LICENSE 2 IS APPLICABLE FOR SOURCE CODE, CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL FOR DOCUMENTATION - -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - - -Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - -"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - -"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - -"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - -"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - -"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - -"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - -"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - -"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - -"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - -"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - -2. Grant of Copyright License. - -Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. - -Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - -4. Redistribution. - -You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - -You must give any other recipients of the Work or Derivative Works a copy of this License; and You must cause any modified files to carry prominent notices stating that You changed the files; and You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - -5. Submission of Contributions. - -Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - -6. Trademarks. - -This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. - -Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. - -In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. - -While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS - -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - -Attribution 4.0 International - -https://creativecommons.org/licenses/by/4.0/legalcode - -Creative Commons Corporation ("Creative Commons") is not a law firm and does not provide legal services or legal advice. Distribution of Creative Commons public licenses does not create a lawyer-client or other relationship. Creative Commons makes its licenses and related information available on an "as-is" basis. Creative Commons gives no warranties regarding its licenses, any material licensed under their terms and conditions, or any related information. Creative Commons disclaims all liability for damages resulting from their use to the fullest extent possible. - -Using Creative Commons Public Licenses - -Creative Commons public licenses provide a standard set of terms and conditions that creators and other rights holders may use to share original works of authorship and other material subject to copyright and certain other rights specified in the public license below. The following considerations are for informational purposes only, are not exhaustive, and do not form part of our licenses. - - Considerations for licensors: Our public licenses are - intended for use by those authorized to give the public - permission to use material in ways otherwise restricted by - copyright and certain other rights. Our licenses are - irrevocable. Licensors should read and understand the terms - and conditions of the license they choose before applying it. - Licensors should also secure all rights necessary before - applying our licenses so that the public can reuse the - material as expected. Licensors should clearly mark any - material not subject to the license. This includes other CC- - licensed material, or material used under an exception or - limitation to copyright. More considerations for licensors: - wiki.creativecommons.org/Considerations_for_licensors - Considerations for the public: By using one of our public - licenses, a licensor grants the public permission to use the - licensed material under specified terms and conditions. If - the licensor's permission is not necessary for any reason--for - example, because of any applicable exception or limitation to - copyright--then that use is not regulated by the license. Our - licenses grant only permissions under copyright and certain - other rights that a licensor has authority to grant. Use of - the licensed material may still be restricted for other - reasons, including because others have copyright or other - rights in the material. A licensor may make special requests, - such as asking that all changes be marked or described. - Although not required by our licenses, you are encouraged to - respect those requests where reasonable. More_considerations - for the public: - wiki.creativecommons.org/Considerations_for_licensees -Creative Commons Attribution 4.0 International Public License - -By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions. - - -Section 1 -- Definitions. - - a. Adapted Material means material subject to Copyright and Similar - Rights that is derived from or based upon the Licensed Material - and in which the Licensed Material is translated, altered, - arranged, transformed, or otherwise modified in a manner requiring - permission under the Copyright and Similar Rights held by the - Licensor. For purposes of this Public License, where the Licensed - Material is a musical work, performance, or sound recording, - Adapted Material is always produced where the Licensed Material is - synched in timed relation with a moving image. - b. Adapter's License means the license You apply to Your Copyright - and Similar Rights in Your contributions to Adapted Material in - accordance with the terms and conditions of this Public License. - c. Copyright and Similar Rights means copyright and/or similar rights - closely related to copyright including, without limitation, - performance, broadcast, sound recording, and Sui Generis Database - Rights, without regard to how the rights are labeled or - categorized. For purposes of this Public License, the rights - specified in Section 2(b)(1)-(2) are not Copyright and Similar - Rights. - d. Effective Technological Measures means those measures that, in the - absence of proper authority, may not be circumvented under laws - fulfilling obligations under Article 11 of the WIPO Copyright - Treaty adopted on December 20, 1996, and/or similar international - agreements. - e. Exceptions and Limitations means fair use, fair dealing, and/or - any other exception or limitation to Copyright and Similar Rights - that applies to Your use of the Licensed Material. - f. Licensed Material means the artistic or literary work, database, - or other material to which the Licensor applied this Public - License. - g. Licensed Rights means the rights granted to You subject to the - terms and conditions of this Public License, which are limited to - all Copyright and Similar Rights that apply to Your use of the - Licensed Material and that the Licensor has authority to license. - h. Licensor means the individual(s) or entity(ies) granting rights - under this Public License. - i. Share means to provide material to the public by any means or - process that requires permission under the Licensed Rights, such - as reproduction, public display, public performance, distribution, - dissemination, communication, or importation, and to make material - available to the public including in ways that members of the - public may access the material from a place and at a time - individually chosen by them. - j. Sui Generis Database Rights means rights other than copyright - resulting from Directive 96/9/EC of the European Parliament and of - the Council of 11 March 1996 on the legal protection of databases, - as amended and/or succeeded, as well as other essentially - equivalent rights anywhere in the world. - k. You means the individual or entity exercising the Licensed Rights - under this Public License. Your has a corresponding meaning. - -Section 2 -- Scope. - - a. License grant. - 1. Subject to the terms and conditions of this Public License, - the Licensor hereby grants You a worldwide, royalty-free, - non-sublicensable, non-exclusive, irrevocable license to - exercise the Licensed Rights in the Licensed Material to: - a. reproduce and Share the Licensed Material, in whole or - in part; and - b. produce, reproduce, and Share Adapted Material. - 2. Exceptions and Limitations. For the avoidance of doubt, where - Exceptions and Limitations apply to Your use, this Public - License does not apply, and You do not need to comply with - its terms and conditions. - 3. Term. The term of this Public License is specified in Section - 6(a). - 4. Media and formats; technical modifications allowed. The - Licensor authorizes You to exercise the Licensed Rights in - all media and formats whether now known or hereafter created, - and to make technical modifications necessary to do so. The - Licensor waives and/or agrees not to assert any right or - authority to forbid You from making technical modifications - necessary to exercise the Licensed Rights, including - technical modifications necessary to circumvent Effective - Technological Measures. For purposes of this Public License, - simply making modifications authorized by this Section 2(a) - (4) never produces Adapted Material. - 5. Downstream recipients. - a. Offer from the Licensor -- Licensed Material. Every - recipient of the Licensed Material automatically - receives an offer from the Licensor to exercise the - Licensed Rights under the terms and conditions of this - Public License. - b. No downstream restrictions. You may not offer or impose - any additional or different terms or conditions on, or - apply any Effective Technological Measures to, the - Licensed Material if doing so restricts exercise of the - Licensed Rights by any recipient of the Licensed - Material. - 6. No endorsement. Nothing in this Public License constitutes or - may be construed as permission to assert or imply that You - are, or that Your use of the Licensed Material is, connected - with, or sponsored, endorsed, or granted official status by, - the Licensor or others designated to receive attribution as - provided in Section 3(a)(1)(A)(i). - b. Other rights. - 1. Moral rights, such as the right of integrity, are not - licensed under this Public License, nor are publicity, - privacy, and/or other similar personality rights; however, to - the extent possible, the Licensor waives and/or agrees not to - assert any such rights held by the Licensor to the limited - extent necessary to allow You to exercise the Licensed - Rights, but not otherwise. - 2. Patent and trademark rights are not licensed under this - Public License. - 3. To the extent possible, the Licensor waives any right to - collect royalties from You for the exercise of the Licensed - Rights, whether directly or through a collecting society - under any voluntary or waivable statutory or compulsory - licensing scheme. In all other cases the Licensor expressly - reserves any right to collect such royalties. - -Section 3 -- License Conditions. - -Your exercise of the Licensed Rights is expressly made subject to the following conditions. - - a. Attribution. - 1. If You Share the Licensed Material (including in modified - form), You must: - a. retain the following if it is supplied by the Licensor - with the Licensed Material: - i. identification of the creator(s) of the Licensed - Material and any others designated to receive - attribution, in any reasonable manner requested by - the Licensor (including by pseudonym if - designated); - ii. a copyright notice; - iii. a notice that refers to this Public License; - iv. a notice that refers to the disclaimer of - warranties; - v. a URI or hyperlink to the Licensed Material to the - extent reasonably practicable; - b. indicate if You modified the Licensed Material and - retain an indication of any previous modifications; and - c. indicate the Licensed Material is licensed under this - Public License, and include the text of, or the URI or - hyperlink to, this Public License. - 2. You may satisfy the conditions in Section 3(a)(1) in any - reasonable manner based on the medium, means, and context in - which You Share the Licensed Material. For example, it may be - reasonable to satisfy the conditions by providing a URI or - hyperlink to a resource that includes the required - information. - 3. If requested by the Licensor, You must remove any of the - information required by Section 3(a)(1)(A) to the extent - reasonably practicable. - 4. If You Share Adapted Material You produce, the Adapter's - License You apply must not prevent recipients of the Adapted - Material from complying with this Public License. - -Section 4 -- Sui Generis Database Rights. - -Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material: - - a. for the avoidance of doubt, Section 2(a)(1) grants You the right - to extract, reuse, reproduce, and Share all or a substantial - portion of the contents of the database; - b. if You include all or a substantial portion of the database - contents in a database in which You have Sui Generis Database - Rights, then the database in which You have Sui Generis Database - Rights (but not its individual contents) is Adapted Material; and - c. You must comply with the conditions in Section 3(a) if You Share - all or a substantial portion of the contents of the database. -For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights. - - -Section 5 -- Disclaimer of Warranties and Limitation of Liability. - - a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE - EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS - AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF - ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, - IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, - WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR - PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, - ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT - KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT - ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. - b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE - TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, - NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, - INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, - COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR - USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN - ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR - DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR - IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. - c. The disclaimer of warranties and limitation of liability provided - above shall be interpreted in a manner that, to the extent - possible, most closely approximates an absolute disclaimer and - waiver of all liability. - -Section 6 -- Term and Termination. - - a. This Public License applies for the term of the Copyright and - Similar Rights licensed here. However, if You fail to comply with - this Public License, then Your rights under this Public License - terminate automatically. - b. Where Your right to use the Licensed Material has terminated under - Section 6(a), it reinstates: - 1. automatically as of the date the violation is cured, provided - it is cured within 30 days of Your discovery of the - violation; or - 2. upon express reinstatement by the Licensor. - For the avoidance of doubt, this Section 6(b) does not affect any - right the Licensor may have to seek remedies for Your violations - of this Public License. - c. For the avoidance of doubt, the Licensor may also offer the - Licensed Material under separate terms or conditions or stop - distributing the Licensed Material at any time; however, doing so - will not terminate this Public License. - d. Sections 1, 5, 6, 7, and 8 survive termination of this Public - License. - -Section 7 -- Other Terms and Conditions. - - a. The Licensor shall not be bound by any additional or different - terms or conditions communicated by You unless expressly agreed. - b. Any arrangements, understandings, or agreements regarding the - Licensed Material not stated herein are separate from and - independent of the terms and conditions of this Public License. - -Section 8 -- Interpretation. - - a. For the avoidance of doubt, this Public License does not, and - shall not be interpreted to, reduce, limit, restrict, or impose - conditions on any use of the Licensed Material that could lawfully - be made without permission under this Public License. - b. To the extent possible, if any provision of this Public License is - deemed unenforceable, it shall be automatically reformed to the - minimum extent necessary to make it enforceable. If the provision - cannot be reformed, it shall be severed from this Public License - without affecting the enforceability of the remaining terms and - conditions. - c. No term or condition of this Public License will be waived and no - failure to comply consented to unless expressly agreed to by the - Licensor. - d. Nothing in this Public License constitutes or may be interpreted - as a limitation upon, or waiver of, any privileges and immunities - that apply to the Licensor or You, including from the legal - processes of any jurisdiction or authority. -Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the "Licensor." The text of the Creative Commons public licenses is dedicated to the public domain under the CC0 Public Domain Dedication. Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at creativecommons.org/policies, Creative Commons does not authorize the use of the trademark "Creative Commons" or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses. - -Creative Commons may be contacted at creativecommons.org. \ No newline at end of file diff --git a/portal-common/src/main/webapp/common/image/about/about-bg-dark.png b/portal-common/src/main/webapp/common/image/about/about-bg-dark.png deleted file mode 100644 index e6e984edc3e05ff756bd400f323f57104f646fac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 87487 zcmV)bK&iipP)KLZ*U+5Lu!Sk^o_Z5E4Meg@_7P6crJiNL9pw)e1;Xm069{HJUZAPk55R%$-RIA z6-eL&AQ0xu!e<4=008gy@A0LT~suv4>S3ILP<0Bm`DLLvaF4FK%)Nj?Pt*r}7;7Xa9z9H|HZjR63e zC`Tj$K)V27Re@400>HumpsYY5E(E}?0f1SyGDiY{y#)Yvj#!WnKwtoXnL;eg03bL5 z07D)V%>y7z1E4U{zu>7~aD})?0RX_umCct+(lZpemCzb@^6=o|A>zVpu|i=NDG+7} zl4`aK{0#b-!z=TL9Wt0BGO&T{GJWpjryhdijfaIQ&2!o}p04JRKYg3k&Tf zVxhe-O!X z{f;To;xw^bEES6JSc$k$B2CA6xl)ltA<32E66t?3@gJ7`36pmX0IY^jz)rRYwaaY4 ze(nJRiw;=Qb^t(r^DT@T3y}a2XEZW-_W%Hszxj_qD**t_m!#tW0KDiJT&R>6OvVTR z07RgHDzHHZ48atvzz&?j9lXF70$~P3Knx_nJP<+#`N z#-MZ2bTkiLfR>_b(HgWKJ%F~Nr_oF3b#wrIijHG|(J>BYjM-sajE6;FiC7vY#};Gd zST$CUHDeuEH+B^pz@B062qXfFfD`NpUW5?BY=V%GM_5c)L#QR}BeW8_2v-S%gfYS= zB9o|3v?Y2H`NVi)In3rTB8+ej^> zQ=~r95NVuDChL%G$=>7$vVg20myx%S50Foi`^m%Pw-h?Xh~i8Mq9jtJloCocWk2Nv zrJpiFnV_ms&8eQ$2&#xWpIS+6pmtC%Q-`S&GF4Q#^mhymh7E(qNMa}%YZ-ePrx>>xFPTiH1=E+A$W$=bG8>s^ zm=Bn5Rah$aDtr}@$`X}2l~$F0mFKEdRdZE8)p@E5RI61Ft6o-prbbn>P~)iy)E2AN zsU20jsWz_8Qg>31P|s0cqrPALg8E|(vWA65poU1JRAaZs8I2(p#xiB`SVGovRs-uS zYnV-9TeA7=Om+qP8+I>yOjAR1s%ETak!GFdam@h^# z)@rS0t$wXH+Irf)+G6c;?H29p+V6F6oj{!|o%K3xI`?%6x;DB|x`n#ibhIR?(H}Q3Gzd138Ei2)WAMz7W9Vy`X}HnwgyEn!VS)>mv$8&{hQn>w4zwy3R}t;BYlZQm5)6pty=DfLrs+A-|>>;~;Q z_F?uV_HFjh9n2gO9o9Q^JA86v({H5aB!kjoO6 zc9$1ZZKsN-Zl8L~mE{`ly3)1N^`o1+o7}D0ZPeY&J;i;i`%NyJ8_8Y6J?}yE@b_5a zam?eLr<8@mESk|3$_SkmS{wQ>%qC18))9_|&j{ZT zes8AvOzF(F2#DZEY>2oYX&IRp`F#{ADl)1r>QS^)ba8a|EY_^#S^HO&t^Rgqwv=MZThqqEWH8 zxJo>d=ABlR_Bh=;eM9Tw|Ih34~oTE|= zX_mAr*D$vzw@+p(E0Yc6dFE}(8oqt`+R{gE3x4zjX+Sb3_cYE^= zgB=w+-tUy`ytONMS8KgRef4hA?t0j zufM;t32jm~jUGrkaOInTZ`zyfns>EuS}G30LFK_G-==(f<51|K&cocp&EJ`SxAh3? zNO>#LI=^+SEu(FqJ)ynt=!~PC9bO$rzPJB=?=j6w@a-(u02P7 zaQ)#(uUl{HW%tYNS3ItC^iAtK(eKlL`f9+{bJzISE?u8_z3;~C8@FyI-5j_jy7l;W z_U#vU3hqqYU3!mrul&B+{ptt$59)uk{;_4iZQ%G|z+lhASr6|H35TBkl>gI*;nGLU zN7W-nBaM%pA0HbH8olyl&XeJ%vZoWz%6?Y=dFykl=imL}`%BMQ{Mhgd`HRoLu6e2R za__6DuR6yg#~-}Tc|Gx_{H@O0eebyMy5GmWADJlpK>kqk(fVV@r_fLLKIeS?{4e)} z^ZO;zpECde03c&XQcVB=dL;k=fP(-4`Tqa_faw4Lbua(`>RI+y?e7jKeZ#YO-D zO6*BQK~#9!?ETr2EJ>0ji18w#YKw38Mnq;-*3#$(2*A(~O#_5CJYnV;)IWev!H3|# zfT8KC%*xpAzWZj2stPmXL39ya%-qb~Z)8N2YehwRn46pFBErkz!-w(z_5c3=0001- zEb?d1m$2tBK*Z)pLqIcYUO@nB{tW=l`;r3@%wYe)MF05hGu!b#GiyJ^2CsKt9bf5A z%D`TH{464f=?UL?VEcvbXCkIo3WM{EpFg^4G&6+mz5zi0*2S->Pd~oceonCsRVCB6 zB009}>fPHfA~O1F7~Gaap2FbxKmDKo5lBo8k%-95;>k~5?{ED$czOJy-~N^E^Sv(C z4m`>9ZG%7gyDS?7(B^w7?y}MOOnIaPcGSQC5VOf@$sHqY%Gnb+_>(%XgeY4qA zVnNJ+006;26~PoqR1lGg#f*^DR75=U{(ByOn_8swWYXWd_SK7vyS+v96Vc=ie_j8( zwn(*2-D^zmTy|p*k$y^Q4Vz2qTf^q(D!o{DFuJ%)nHY9nI#M zsckovYW+r4A#y}SM54hIPfuqjr*i{U0msbD1_X$vI=Hv#Z7j=*h=8~Za(la4tvBm! zA*!1)AR;mYfQp(56FSE#Mo6_+6IC>Jj)_&m*d~mPKlM>V>&s>_c~|8#%?x7 z2PYp5_8$)(w&v20iH6PEWFpBU5?kCDzV<&;L@Igm24-fC$van8)iFU(XJOm)Ww^pd zzF`8AYW)F1o1e89)WoWtx-HB!Uu2tg*-x?h4k0@JZ%*cO|NiZzhz>SOo2rfP!LIee zOs8i{022`a1f(uIF(dp9n6_gvkU?(#OGm-?HMmD%K2uj`fB4Vy zS!RIbNX&>F0GLYjET&R}W~x94NJSa8MY$@=qNuh-Symy2u0&|2A_0*MY78U#>NZ1) z@O$mfO;htS0Gg5jR1q=SO+pg1H0!eF&4lCt;Q8~D2RssJunvIQI5ywByL7Q{Z8c%M z^>8Qb15|Zt0sSz${#cyY|0lEAmk@UCATx`fj5x5sZRXJ{Eet9Ry-XrjcludQ=PH_= zIpK0}gsS#p4V*8s?WPhj7-TvSWR6W7!>XLL3(dJjgh5+d*})k{kNqB6*Ggo zf-oXnEc5NAY|G&Bv<9_)13<<<{p0hiFRL$~ZjxP42aJb@d(Xc;C4^9WQ+qO|zi-Ex z8lV(#9wXYnmFu;8y+1`qhHhgz*s5WSMzEP=6O&8^TUMAZ@EFqnMz^t|FA8P0nG6 z$N)w}u~gZDOKyL9F$ODkdkdVzpc?yo5PCi~XALOSSiPZ*OzmL@Lyga$5a(I8Da-vU zeo*vok`GKANze4}@`A0;Xi^XC_90;Ev5z#wHkzQLYb*WEPi;lge8;@(BV zJon7BSywiMToJm$y8)oj+&})O@7}+O@YHc%cYd(|un^=4&-oo4Hi+SNIfjl7^dBm- zv^#RIHY&#$+QA*Dq`#$5Mo`KFd|abNS8;5=ocVjn=z#IqyZ$7Vo;itD^hNbN@$V?#Kx%@n20q9 zWbGhh!BRE2T{q5f2(Yx^$(S!Z^2Ecncudu?b{Wuf4atWjEgv=Jll*(&b<^A3?jUEwut!~FA|MdPb^rhqbvtiT zAMi1YT!EBIn_x{zy`|rNaopbM+5qd+p|R=Mt7ea_?c}$lh-7@ja+cq2wvd!Yl8S}( z+uU#$6}Zcp491vJ*K#r1a=i~cvYaqJTI!T&Q-@4GaKOJhJzwUt?A@Es5)Lu}%VpL) zI~)h3PseW-z2BKhOfHE7`!IgZw*IKQv)>91UQFF;4N(zB;*a+@pXUa$Uah|Q<|3cD zswzT-l}J%m>+QCvsBC4t>_HL%cDxxB47S{$Mf~q>_+?@+AVbkvFdW&$EO)bac%wmLkQV1x$&T&k> z$4^YY;UupeM&j_g({8S`jUak^24TV+w@_FMh_x_OZ{q<@L5&Z!!bG?{$v5k=3ToCi ziPVr(>k8wWv)upFzx?6DyUX>exYGojoaGJ9M+SE{v_BociKE4`cS#aV?yo}>4Ss(a z9`4A)tZ5Xl(HBGm2r7t(#5HCOn&qB&aeaC9%{R}S!`1p$DtEbBmsO}l011(aYHwXu zB?1Pk0Dy^@S=53kf>L}Fm}*-wC5<%PVKX)kQp5K5p{%Sq+653DMHQre-J-*bKXVW* z%c{;y0KrUE*-tr)p6%<%tOG!%rP8)`x5uWvpINMfSxeFkJcvOAN#%P~+v(myM4nw$ z_dQxtmPmV;aT0jh#fVLRn=Y&|Oq9O=iBq#J$rtx63omw4k2)YWvl9)00j}XWbo)qJ2+L-E6wwe(bqN zX0fMBQJ-_dBx!D+S!CSBU)E1nopWaKtde#d1OnP)n8pB3Y|d&c2XU*L>TcPLuJyqh z7}ka@FE(}nH50uHaoW2r5eKiE^GAKf2@c#wgfv;$R3onxyF_?ZnEZ%&7KP zV}ST!>4o*vBLILbV?@|&D%Fk+6@M6ngl4upTV%8B-RsXGOz+F(Ngg7z%4!=EYhtE- zcx`t@R3x-(jF6y7+SKC4BWyp@ti5f9!)%YB`&&#NF(wd7O5mz1|A2`pNqY>VpVlU} zF&MBl8e0%T7r_xViV`%|#G z)Tk{p9{~&qYJCVIw#3K|0+;k0(q=ts?w2;V7ZHK#t}XzmiZY%pQB5F>Tg;$tO6XzL z0AdosjhcrO1EyHq>%LdpJAgZwIII*c9dm?mYSy7hiP#Z`sIhU&`J7@3Ky@>4)4wHX zpil?F%JyfNM)A~H}w5K%RC>izqFfAO{~ zE61n?V08szV1J0~Q8I>5sH6Jd}W%LH7alK>W3b7ZmN<%1UoxyMe zq+L7S`-JM2_Pf;KWC%h;&@cjQDEJt^A|~g(>^_zanRn>tupe!(+Q?$sA&m8FRgghc zUSF5gDGs&~CK3Py2}v=jdtQtbt4z%8Ml%2is{Kb=A88M8)ArxX@Q5%PooJ51hH{qi zILS|<(PWM~6x25{Hh^?y8MbPD={j`DeT%=1|2EJ)2zmQ9q@@4AFin7(HKq;D-3yy) z_huUR4l^?|5oru`V28Pk9uk2XN{gw98WJI)s)DH_R__e$!{^&~A3oo1%FEkAN?`&< z4%Vfp*nmAT5lou$jHq^b_4o9Uz=okYlDCR%sBzl351`x8x3SAosp>Q&)!AGaaCI>$ z6x*HUqY)@{wSY#*O|sZQdI!7?zTWe zj%sndzHc*x$HIJZ)LLZeznN*d$kyvJ$Q?bB@p`}e)5YRu`{~1V`nKgV&m2n?5K%x; z5dc!P%YJC1JM5>AlAKT@rGP|D0WI|_jg3w|$1Dx*ASG7R&qbAp$2t}OP!wgGZg+PH z)r<^6&4X0KIbjP{AQ$&@vTzeNes>HC>r$|-cijuRlxT4T4E`N{oRXHI6!j0jBR zm;nKy?*JNWOlVXGyirJ4>%^jgVXSW~vMg&nfknWrzB=omDx&B$D1Chp0&0-Xel|h( zKt;fkt>l>}@^wT}NyU$eh~qo&qPMo^7Q>M`a53ohqXB3{llr33X2#x&sHj4R-`A02 zhyAB@%4Xfh#T;5wz@mU;=+F_P8U#}Xd-3+_#jAJkKYT)TIs4$yOo-7nj$Bn^kvtX~ zkq8hNNla_Ftd-Be+ORZuQ@jcsc=7t#r4Zka`vwO{<_v?#L~z!P>i}s7!{Faj25TQ1 z;XYNeDcx4S|r}aCjK}SR$-G~NT z!<_&Gq&ZB(MkHvMCXEq`KEOcQ@;6H3Hd>9As^k#@5CK3Xl_QTT z)uu!O&S$I5_Wg&?-@m=OzPdHQ-21{RFcXoe^qPjDB1%L}h=f|>t_mG-vv(UK9%#@7 zYW)}mV2^_Ak#*%kA6vUB+$gy~L+h&zjv*R6gu8a1y0;~A8Uq{ISFIX^pY4hC5wO9K zjN0>M%#JCDCLo86YTaD~+IfX>dtj14jA7!(VngjtGKTnEe9vMzqfNOj!kz%F10_92 zcxt^W9AlPqs7jR(3$~^LU`X6-P#}U9iDKRXNlE3L^NtBAf;-VkU>y~9_KTSi(I>rAfyKb~|Ic0o_Nqv+lAIZ?0Hr6E=G#0FRf zgIG1OSevT3I#z?!b-kp)pcF>rv9u#PE<8Xpt+_FXju!;L&N$1&;C5TRetZ4X%a510 z8$@!>i)tAvBy{M+%#%yY!!5~5RpLDXGe}4Wku1>D5CTn_%*X3zAEE$L?aT)f%-TQP z$C4UNNt&v3+*Rv7F1^611Y%dN(f1RrB-EfYJ}q)INHWZ_>~^z-@gSoecE8ofZzGqk z)f{W=Zj#2c-+>=X2T0r{_9fN_?%QT_&yF_hQf(*WC_TyV{&cZj6&EM7KmX%5&S4D8 zng=3)F2r0*&KP<5!#pDqJt zRyD+k7uEIR*wh76P%Uw^t!MzE((aEKxg!D@0H8Lxud0H@K_)d{rzUK6OrxfUx&9~| zRr1lyphnoJE+QjQEN_{#WVF;q1ku6CQ+!fLX%N#1->OXW_mC#ni6wnniBM~VbNT_C z86h%qU#c{M0cbr6mL?D&CU7Z7Qm7d?!lK-=L&w?YtJ|MneSG!q)6Ht*(E}2gl~q|w zql21M!Dxpyxa1i_B zUDE3JhFwwXu=8dXOLMK{yQ%KVFaX)i z;vg_F1vPSxiA&LRd`Q2+c*XhB>~6U#-%n8i(OG&Q!cw! znWrWi16neIExI4I&i>c17^0erRy*B)Q(B0hT>DDJw9M05ZQij_K_rIj)V&{xC}!u|HL_Wvc%0MvbXPm$o}+)Q{t9JSfk-_Up2#DF{x`}EcwAmX{Tm4b@?g-gBqwv z3}|~I^foa$WgwNx?9%iX8{l+AfP@y}Z^^RFlN}dtTjD5KjN@UDp0?>i_n(Bk6G?3z zQT-kR6+^Uvm~`!d(!Uy}_XGV)>yzj^FtA;9+S?3!x>b5eU0=b}re+ZAq^n3WSgc=l z+Gnb4L=>!AIx=;V)UkzZXLvYe{xHcr8cmDZw)Te|H1UKE6w>N%RvXU+smWLt0(&6B zLezkXQKe8-^!cYRw}1Qb^`}qQLD8{C08>WP%yGG`)B<@j8BM$EW6EQWb%frmqY>8b znRd5W!o;096vl{<<`|nvb@O_VRBaG9KN$3~?K+`SsG|0f6l#JpJ2dbKSp z+m)Hd4g06>F4_>dT|I}K^W=Dz-S6CAy+63rHJyk3eU9B1{FktYWZwdl|`sD&-1FPimF=7=OxJ7x0m0)cyoEZE<>fNfaEBP2xQw*XNFN%<2cQW z<4eNn=+E(=Ojj1BsOr0*DyUgf*0o#?_Vc)L&X)6wlM@7qDUzyE*ExJQG5Wx(vtB;&P`7c6&-i;8MEq5K)K^%Ozwkvp==}!- zG+m0Dl#vYq%TSOb77kT#jLzrVBK-X3^Q$-SKYqSZBt$aQx+w)vRiaoxoAKNkSKV2G z*yRtBTAHTdgMpz=pzg;lfWEPD(f)Tr+iV4Y6X$u z@h^Y=E_Wmv>jzEqSdFpJqct4%pb~uSF#LBcr23>V|J4sOYxvG+O$TvA!ig}{gfu`v z=iK#r`{MP7A76Z2t=Edi&Y1xL6M|Z0TDN~l)E5NWGh6`osPA8l^3+s<^N(T+XRC7k}m3)>F(Ry7BXr12Cch66u zEdwH|XP#hCsUGN;zVGV}0issbnitC`V zZ4bwkcj59qUPh8?+~FQZO8x)>@L1Ip4pWGv2|Dovd3-xLd*=oB>T|U`@J181$fxT<+akAdiK> zjB6n&eWm5K)+vOw|AldMhGFwh(l0T&I%ipy4(v^v;Jc}LiEepMB5REi?nL}g|M-nch0G1BGM#CTdp7k>zV<a?qP- zg2(Mp9MfTw^+sLXY||J*%DO?E&PE=1<(N!i9d_yU4w&e~tovfo02QpKg+Apf2DdDRGC!o6?6{aDuSucFh_C1=jePM5Ru(?u0Ztd;ix_cJB; zF21|GMSNh|cXf|rG=Im#;C9crd^#RCvuS006`O`l12jWs`uOF`|Mu4(-+sI)6+$SX z3hc5x&kaIVZUHFsGeoMwHvOU|ia&0XPR=a3bCHk3{f>~k_w&cP_X9EG9we2Pa0k3; z#2!3iT@3!1sbxUR5Fp$bgPmNXs&q zq0eRt8pVK_yogei^|z=i6TgFSH##&r!|C{-ZacMUk-=VbF0{(Fu&W!qHHlr1eKhfu zO1nea_2p{gI0c6eB@4TO)xGwMulFFWoetYzX>Db@)`_#8^Xz)C`;TP5T*o}~VWTa0 zm83g~YVSl}Qz9?;I2O=$=+UM)V!z90!r2^ZN|^AE-&`#6Y_;Bq1XUz*5N8b~0-}Rn z`X^iSbo_1{MwB;CE2D@e28zgpW3v_B9T^af0RPAxq*khSTnW%T$tFlY$__^KhD^}ZHuU<$1+Xm>+W zcc^9U8f4%4A@3YQ0ppgvq-l0g;Ca}{yul40TYMYLN7@TL*>0B9&SReWfB5bh5|YFD zj6Qz;^2cw!0b~FpBsFRJM%#&=+Rpabzp9>&r{lMivEev2CuRZ=sT=~5yWJFTK3x9z z`r~H3l>k|m5rU|Ss+pwPc70XXS{0%DGsy>TI|2E4B%?>G&-= z3{8hIr(toZN+NQ^LFDFU_43`9?_azLMu6V?s4&*bWiaPFu@@CE-Bx8@mU-q4+Q}15b7GQkJb8`w>HrZbHmc^ZH1({*Q5H|f)A3t7;)shB zN})z5>gC&a|Lb3VeEH$h(B+vYFeX%_Drg9bh6EI+yu^XLFq%6Htq_P!sG9x?GmKp$ zcqiXR^LhSX{_&6BoS*dl-;CJ=K(hbceo1Z|J(|>MOCUK}2WK8V%>UO23l>|g|%-n=y2B-!}s?j#YHe-{C5PlIl$kXw39Be}e zgx7lB3qlY9#5|t?P+0{r{mY9F|Ni6KVjY%QZc+v*T{e^82*fcu$A%!LR%aEMgk|+O zNL4XYF!e59Zz^UsP{fJI`mSUhQ;oH#l-^!ZZ$$APs0~4(Hy3jNuxmT1tewAvy(W*r zhZB(tRY}C(UYwmQ=I=gVZHsbTfuF!l@E+3T51OR37l3Laam0QT2Eg9hcwg)mGw&*q zv7{5i(X;b*xOap>4ZZgR_WwO5P~qXsCCLCB)oRV`Ge2{X#kK7++#$I%woBbGoVMU`l-(G8)Z{$ZdR*(yF-j@G z5@TkXAP`3=C7q6br-?Q*2L>Vmk!G3ymp^{<`TF+D^-5H07AsCjhU}Us`xw|F*j?fI zKy7f)01Z>hO1nxrgI*O!M6JF^;x8WW8f^-68oLLZYT+LIr={+EaDLv=KYe%Z2!g01 zEQ+m$fXs0;^v=1e04m~hw_Gf4Zf-K?GNdLlYH~HTcD*7-v1b(1WU=BCRP}WHdeVy& zFG|}B5Fk_)g0XX7E^q(+r*|*jdtN9}5y``c$8 z?orB^91XW??Dm}_E_Skhu}3Mc--e^~z=nV20MSInDrSd7&rTQ1S@!@wjZf5+klg|{+m$UDloq_3M zIp1yz1Rw*=aBcjma<;?U$N^%;}0ACvvd1Gh2!?T%AWRi_3(Oh9S|B4);ffBg2@dcFB{ zwGy?#?CuB7)H@1>n#u!`b7%&`+SE1PDWp24=OSX}Tv3HRp5|Uz1x&GH2f5I=O&yNa zi6VqQfBP)YGXQl=Raqhcni6?KkO)|+OomHIlA(y;J!hH!e0BTH^K%s)V5V&~Pt**I z5!+xY4OO0wr{h_n3$YYC5N zA@>-uz5<8sN-xHU-1rR!-7us(g=}5p29kDgG)7u1=2@0q-mKP}0&F^UdUS7*V&4fk zj%syFMAP)W?`|IG)zWt+KL8WS9?bGCm}^IRG01#uHxdQ+;~&j4|Bv6CDd;@+K~$Pv{klfE!m`tAyWzG@VM=8^o)~MKs+j$qaEsahBNiL=CUYzHT{Q9!Av!BUmA3eOclV0@cd*x zpZTksO;xqy*t!_=tAS3VvDFO*HEu%~!$!La^uOr_WB8Oy&)$a!c%;cc$WJIRR8E82q6T(dN2$kvS-J>tcvN_e1vSr|0JRof*Ob>Os5NY9Akc*F&r|vZ_<2q zyR}gypTxDg3?r7Ap`mKUfE0;UHE3YRv)pG{c745BZ@0C>{t7y^BOlw~8hxr$7qRcn zA@=ls!yP1D;Hfn80Tyr|NIq~RIE6}$0jr%W$uT{@I6Iv?1C4BQ1}m$L0<+I=ZdbW; z9Az~X#0(MHdmHN%G)>*Asw&LP%m(0`6OqlfT+DM#gpT7M1ra1tFm80WhE-=oI_#&4Iz}}t#f|TRWyPK z!zzNQQPS<)YLe5~OixFa2j>NU+~^IBnY(V!Z;u5CH+17$b*D0pN6* zpDeP^*Q>G&@YVVjRW*(_Y`f%!${f&5`rbLncS^Q)zpLoMQvi-Bh(6LarQD&Rq+sGj z1}TLdp!{KrS@y?gCuW$r2o{+bA`*KhGnI1YeMFp)7`h~_{z#qnYYG4cq-qG}m>kpf z?JDyenb?SI64cbObIhiyfTdcVdFTd(#DujDK@gv)Q%}d&gq}d-q#6Q@B*38RoGYt} z*a5O>nK>fI?>^uD`0~R~uRa#gcn%P;!0*|fc-a}uL^^(4NuXBftKB8??8oV?@vI*c({7W-ZymHJ4%$Ur$B z_vfbwc5%8mIhnKf4)N>hnh}zkW?A<6`u3aiQ&k}ZWJ0x8(KZ58RaMo^OJJB}X-}@= z>G%aa260_rYd2e2mRXi>H){mV@>~tyyubYU)ra>VFFPX(AZFa5-G|ar_v5ayt5vmQ zn(rc%KCBXapP}werga~JtAV-1dSWA?(fK`XE;_!##ETp<$G7WkQHHPb>~~+rF4@8T z{e3&&sX;4T>!%C=80lU%7$-SV<1vT*=e>&xwR0(W#y@^@#@^3z?*KtT;lQHYokqN^ z*nz4>vrmMx+?RxxH>-=&rK%D!AcasNHMdl?=1J8puTRI*@yi{K7?H%JhMt&-84*D> zV?t(8c>D3{`=8#v|M;Z}Le90j(#(QM40R?OPW!afI&YqockMJe8ba+OIfgyZ#X)G# zWVPd7=VR2;RXfeb=7ZXbMQfKuVs3?}C-akK-jq5Y(OFE?t|wJDCg)!4@)m47B;Q-al=1`X0b2Bm?E+ zBgnJN0B+W6GnFcc3KFLMP}(k+(E@!+GMKfiwem%qJu z|LHmaah7$#QN6~ouR*uV;MU%v8Cu-^g9uGQ!2m4j{~(%*Yty}UuiateKR-&6=iXb= z0TP&YrqfbhZ{N-$n3|~q8Y0f}%sIE-6jdpYJ0N6|?{rie(SNax1yTSi1rr+BYg;?lGr0+RTU6T9iSNy#paAdw?^Nd>^o|3Y`19XRZD&0C9vC=vw?yQw*E z3aV(}m=?47_3h@Hi!)IHpjMnw)eH?4%`hW=>c)6FemO{rBA3a6h#4SL5WT#)1VBLeIxC=Lx>H0yeoi94_~ z@`yXpMXYTA{-g<4EU3mPRzko?-~v*N$h8;(BhB*6JGb4ILF6GPv}*wBxNdVucg2t* zW<&g__q}bGe4Kl7cZRWRA~*C!U61I(8zz7V&(D^p%f;y;*RZJqGqa)wEhGd+M}$PI zUyRqI3@U~&S|kT~01X_pe^&i(0| zlf`^)BHPV|y#q1?CL{o0SGNeM^=$JYcRtP~?%xVUBCcs$FoG>D0W>pCxIOnRW z3ZcrpXTtZNzI^}U!|V4eM=Yvl0)|vuSgk}6De^)r`FKRyWm4Lg2fK`kx^}!sK56W@ zC^+W18;$dvDs+McZvry8<YwR%?TVNC#svpA z-4Z>KbQZa_>?dq9qtWwfw6`!xO=4HVZX|J1LlE{>wsC4;NAGf&@DFE8m-(}kxrQo~ zmCrn)Gp%-zi4~ELT>*pj*M8>MTL3_ifJBI-s8v;Y58gXwzP`E5y{lVn5s6)tY!lJw zA2K3sec_I#)+cZAbR24}mx)F5u%O&1F$aPh~r$x+@1X(%C7tHkb5|la!iEdyZ+XB$1xQ^ zAhi%7h{j`e1C%6+%0UNHq>6?H7)?z(mLs|i??FTlPc=;SE^9IvNEaPjeXqwo?QK8a zFpRYccQxiSm>Ci3v>HB6NzaZG2%CBsJD>d`a~EfeZ_m#}BotdSCFcyNK>+1I8ox^? zAN9ZxFz!R0{p^vxrC{dPp2egdjGyYXb$sR>`CtE7<$=26t+7-V-$u9F)M@ zs#kA{c$$;$(3RSiRoE!?!Db2KR3#(*L_1&3PM7nulO-UC3IJsJ41huvh>QqDZJeCK zV`%R8CjF{XzhOJJF~-?QOoW6YqAHGk9wpEhb8Q%OF-lX=Ab=R%3;@(~md38)$y+=f zcSbg~AycbF5YagXQw;%#oby+=>z`h||MAuPb)n48R3udFUDSh$e@IB!Zk$oT)VK1- zd5cL%Dwbl~LT>~39}yl6)H^i6-0z{BJ%r$P&u<%(iBg~BYIQ|5h=m}+D0SW@8FA*h z)m<93Z5wzC*wKL9zDSPiUJtWlZqu;4t<`KtY=9;k6|~zKK4VbNdiYas+E4Q-HY#oP zQK`Xg#;G|-xY`rONR_oK{LRA`YQq2qqf(Rlo5EBC7E{)}<L*yHbuDna`U$ruRnagS#1T7h_Dv?5CMo#5F*#c%Wxd*;W*wO zc?&$G0ud2xL&jduKw-mozT8v?&;!maej8@9aU9fYFRcHsX_>m zN#LDBLJh-CQMG&1`iCSn z!8R+YiP+fujM&Pm4}h}WR&{b}-gp|4O^OT>!g7{>`_0+OEY~1a82|}LG*qgAIjZ?v z?5E=_Cj)tm5^-C9YOgE8Q0?j*W3)`@h!tX=tcpmyEvo9BJ6ZD0?d=&LIVR$mk}Ix>Jjd;bMoDeKuvr66tjoym&5fBot6$IBHFG6@i9lxrh!KxQTy+7Ww6_Rs~;=?;ohG!S9O*1iMihrXz-NC2cr z&?4lx{h3{}KSe6zJ}*ur+nDBn!-elxgIE@+msy0{(*WBVW?-%PUe}< zvl$ags6<80kZ3=^d2H{(zy}Ok_Kuq0GC3^WRAbVZc`pi|E^jW*mQ__nvb>rF5kiRV z{|M%sODF(Oe&RoRCNcdAf`|x61caduOEDB-w#aWc+wXsP{nN`2n<8YMql9)E4j;HX z9zqq_Q+6I%6`XqUo)w*)@#>K|#Gzk1Dpb1eql{#rIHk~2 z;~~Z#_z-2om`qvkiDBa{#?N&;h_QPo0$eN?7w5Cg8)0UuA(^!TW}e+(c@4z(0pLzC zfL-1KT3NKw;EHkk_x=@`h~6uLI-kz~S0bCuCd)D+LZmjq6Eh7Gd30Hp5p@*ad-Rb! z9l!q~2G#Xr1dwKXuybFoZhwCJ@yC}RF0VGsoOyDHGKzcdWZxwi(S!OMY{xLSM7ZIB z{%JJ#!j3pSxR(k@RQqU}^R)GOs!IRAfBk-4>dA5e5@PKFvCYlUdgTNh2m-b@DEGNz z@5lk5DM(N=Kwyy&TWs1=NK~m)Ffmb+NdbxSxmu19OGh^8Bkei#nUl7n3Kvdm}_n*Ie`}x28(;sIURa*@Trr72NYDy^kpq^zxnX? z{R$m8XDTQGh#+ns?1$k;g;rBM*dts;8j`lJi|7=c$##Pf`;e~t-`EEAz#~5_J*jwx zYNjfx>YVe}H=FN&e(nDAKN35V0K^)Cb)vtKJ`08hZKp9|l<^QzRrNjt0}%;oA`*g> zRVgB6De=#vI!MdSXR2q38zQj>00l8I=jLW~vy#i}EBF2;&m0qYPiNL7(8Q1cs~~NAQw%u}pT>ayM=n_4fP5h)hCs|fe0{rl`|Ch`5~FpCydbksg|aM75e<>p5EO7*iE7{iuGbY4dPkY(%=2IZY ziK#%!NT_mxbI?+;I!;!^Rf$9bU{9R9y}6TJ_MYHh{^`#Pk3po8q7w9$1EVv}ohw3! zozS6Cs$Fw7(&$9#Pxdp;?4UXU%b1#EzvIl z3s6QQLsc{YLO@azJg$bZ6NrI_@}|-e*QPZd(Qt#XDTW{6Ee5vhxb))weNNWukw*o& zXy?t$m1XeGi@^^s-wN2D{_woqu1Y~70`{OIKLs_iR9#c?P!$V7RDjUO@f?VNWCj%gA)%PDK^3&DWK#qtx?Yvet(nQ8WSL(s z=2`BOD(lW0U^Y|-8&P(LT_A(ci&W8MdEt&R-Daxi%h{j4J??mMJ}+4s1e&+DYyj$~EU$h=yVYlOO&MMadL z){+7-l`?$3x&c!Ol_;x16++zFv51X;Whk1e1EgFl=lq^$)}IR$4UO4K@K$)k@0{5P<-3Rot%2%scNLA$afd%x8H$=VM1x*gzaGda}APV}G>K z7q1<#q@a_llEXAGG+Ab-d>ZQ1Xz7=Gc^Z zuxKnHq&M{28u`s0UcAKF;(}+M#{p|@jJ>ST658DCBQ-|pJgG0 zP)VNWpjH-JcErpdK3%?id->-5mrZHF4$#O{_pZ!we6yozsfYC5qyKqdp42jHce{bF znV&sgX9;23jUXy*DCrn6mRb$mwx}*|w`5WjRT)%*iUKmVHSpL(V^Pwp0b+;;akzE! z53qfuAuu3D-c*FARLvAsrKJ)z@2t7`NL^L7BevG!kEZAhpj;KqA=>=hJLjBp;FxOX z;bT=c)$Z=swA(@s8b(`*CaK zdo*KGTZTXg0G4@&aG#*>>G+L6Qj-fTj#>$xotc(J;qp9~y?*=o-+z94d3jq@;=ETd zsVV|Oa#1aRS45ST{a}jAG}WGM_x2Xilv&@h4H9F72UzNdZv;GU%TGkE3aT2*-Ent2 zpK&b=g$Sk$mU;62Y+F`qF1AG#LWq(kls7;!LJ&^f1Ksw%Cr1`5_QA$+`uFHskWgeNyd!Kpd96QHM1W@;p z9GEOR<|=41x37Wbg8cIz&QDGj4z;R85&diyEQC-1S*k>Kr?05jAJLwwOj>woANRw( z#boYsY#yx!-Z3#&RV5Z?d9GqN>&QmG{porwK?KPdRYQpVJ?IEW^I#_9sIQS1mz}000h&qR6Zo5-5T?!T^waPfO0Ssw}IbD60@el-V^_Jq|}A ztebo-!KlDMQ|5l()hi+rI)xyjBGPoY7ywYD*>qLkT76_tzDb@pn;CW@z=1;rEvl_&f0R{4pa@|MCf_}Zw-^+_nW!D}+72o`%9{>6*}WacvDY$* zgkuv2$Juw-_#YR6ZzMJ~0|KNv21Lwr_71a*ox{x*LM7U0d$a`n);9HEJ)p?Dk5)2~ z^r-KMs)<rWIqsPIkN1Cc{X^Wu$Ig57dbW02sPR;I&rs(G`CDuC=fAyJSJLSS;t zUL@27m}L6jE)m&DbZC#a7{EvE$ELm9$9j$f*BoN3Kh-`XZCEkYU=~+`nK9vPmao=D z=9!tK=?*bOQ!9!RAj|v{67~B$k{W~cjVy|3C9>UAA3k0G?T1&NE^ij6=MqXV17xeg zTZ35d;GG?eZ1_R^c9#ofc(de5zK@luY;a;iy;B@o-#I_dOaFM}cqp zX+3aH)gqe~6LDV$X2^^{5zSD;DhRPNGYJw6d7kCWnTT#Tg;<=?-5XrqCW-Y}?>N=9 zC9on;6#K=R`WY&XHDACw9f`$KLTZqk+Dk{`K?6;8H#atd)Sgez<~difX+r7y%K8h?!@(_uezJ0e~q2YO_iREd-IW`p^IJ-Pzev zO>afXggK{p56QfD03cFExg^3`x6!i;s&Opt9#1eRqn4HDE!{5PCu}eC?{XoA$ zjG+<$VCN7}LjW|#JfF`$UtT>sKSAaQOo@mQZHt1LopXc)pzx?L{2N8~y&x%MkujSN^tgak;4j@byUh6@1!iHuE&0L)bqs#2?9 zaY7#v#c|&8VMWW>1m;*zF9B6mgsxGb3T1q{RL?Z5b#J3VhkDjV$`-SBGCM>HHdsAs zBN?z~7JHJBI`vaClhE*hTQIF#aIscQ4Wkw*HUW{L1S>aU{>i8j1=;{tI85(Mle%UcFYzFJN4zDni0ryxm>M^)6+!= zLXL^35+U!mWeEg}JY(h%f~q*@Otqb`*4lzboaX8HHD(f!4p=jd3!c;ysc2P6Aaa?{ z(X0v;Isg9i%}=jBy?l4M3FIAu3KJ>Bpi{tr**WxP8okA?n#80HO$LR*j!=5S{`N=4 z4eRFvFxJeNSQ{~K1Bi9mCZtX#TTf0;YCZ^?(;8P|CK0f7hqeZ-SKT>ek6@I1io+(X zF$?v$%n$?&2|2~|T>Yd0CFyS-&R&L^)Z`pTbIdG3q~6Beyjg3i5$(t+P?Po(TA7Oa z+o|~<#7Hn5jgal&?3VvPjVECMg`upYi!Fgk2TCOJ#z#lk^)xrQe=XtLyaDUX#*7FR zj0p`)L$M$SvUPXk?F%pRAYP~%>U6xfafIQ1pLS>2tFj9mEA(2k2+by3o zr+y20Lthvw`VS3OkP?#j=*_gMN+M#%FW-HB`TE1_cV7xI?;X_0K{w;_eiYa}(EOg= zHyC*^km1?=E!0?kYqj+rr2=sXAO;VsjYld|iW0TzP3f%F^xWJS4(ls^LtBKP$fzZb zUB^x&h}Jc9(3J7pW(jJ7u||&FC`1vBg@>*qFHSW#?N_CSnPZ!X7&IVNcZ)GS>W{KI z^5uw?HSuZckYl|i-m3Iln4*M96}iT021p7}R+2gX=Gkdg$@f3Ld3JGeegWraaFXR% z6yO${_0}w8Sx)Ris5aZRcTC{+r;RaczVp$Kg`sxM)QihlL?@llIJdZWN*fcEWWi|a z+nPZJ7JF{ujO9GzqO@XLkYg|)A_*X7+oFs&KhHcfR#oL(HyVV7f-X`Bq1OnlDl0MS64TGeewSD<;`ka#?D`n005cKf>bc7P7j)Jk8Gi^$-rno;p)z> zXo)$H*vxciwaGE!zOVZ`Qpwvn+_AZ>nWhf4Osw{l>k!fP=CB%eQ&`p7IkI4F*~u&- z>1yO1Vm(Yvw3|gyJCD|gL$B^%Pi}2&T<2O;l6sU8;n;$up5M$8ZQ^eJV!Sj3MZl(+ zJetVfkUpf?I^UBkh*k2KBOxJ}F*_oR#RDRaIo5o!nB|LnuJ|!~_38H0_4aJR=SzQj z?oYGX>B-VeH>-73ZhfBT^SmqzZwz+`EFV!f`sNx*cM|rrD7Jm}JfZeR$11bdLMgrVHU6~Mr8u&ju zGF=#GhurTzHFF^hQ}M?*zD8|aF>>75^=P4zV!J1Mwiew-(#&zMZ-zu%<;X{^!jNtWwr*j8aGy> zuGq|m2d#T=>JmxxaIwkUR4Sh3i$$L0E?D{ee6ha0tSb0;S#2u4sq|v;!DrdG&n}#I z8UjW4ihdAxq|@gQsXOh5l8$l}BLSO-4yqjgxvIsSg9t?=u8IhZHtqaC2+QSSTZ9wu zC4|P+qk@%HD2i&9d*{5WOzx8>fARM{?vi;P+C(-ARRJW(e7)Mde0%xo&F3$-1rRbJ z7z7Of=3Hg~Wm!eDu?v#gvvGC_+Z?6zcL;vfhhEK0n-PJeYHC)qamENAl$6&W?kLpbh60StK#f*@%;P@%^(DB z9b@7x#^yWiW=LNjKj1-FaX3f93=ZE6N8zpg)9aMAm|2o$t9D|ps%AbT=dW&VPZxQp zu`C3zpt>zfLYU>*+V zB}8nrH4%5RS_jTxf3A6_u;91@e6q!Q&$o2;1nV9GGgHz1y?A$S*l`YY4?lO*A2#Ix ztS6$1ww0K{IlIPHuyr$*Q)h*32_{D8h6YWiZhLu=FdEgZRV}v2cQ-LoY@5%I0J>|D z?^RlB?_0>FMd&=^V6T^kc2r z{xo1seZ~ZcG~z*}pA%hmKX2&mlYyAeUZOi&MNw#c+p zAQ53A?^sL+Qq8*>4q`ld?e+2;8)(JrKptj7|@{L9QAvkdCygB|}=0A_4%{&^-6Bn6_Iz&gGo`W*BkTBFJ@U$>2|%DE%I+KW^rYYsp6BB!|4uiP=H4p zG&BjPwlv=Zm*eEA#@nTR&Pn?#X0|xZz!U^#v%IRR)w;+$g&7yDv zF=>ArP9&=9cL@d{A`rfR|LNz~pWl7D-j;#A15-4pXTAf97;+@#YY0_4-+po(-dj*P z^#QxA_OPySS1K^p$4ybF-iP;#?c+IvgZDfT89uP+G{|N|HHfr#IHig;83wkx-biSX zQ`$%vSrgrZ0Z5DU_p`#ZGLobvWB^Qv2BNjpM%{EljX+`D>VozB470XO-SQ5s7Bp-d z4(dWo%}*E)TLmSe`ii>It2_?}z6qOhhL@>`Y#}tB?#aIIqXY_RZeU5|;RqK() zCsJzVodYpbC5~FBUoJ6#Shn3=(itSPX~DViPdj6chIESvI-h6rnRkw@QY4J+b?n@7F@ z^`?Y++ZaOa5=FvlC1p|EFh4sxEz3_#dUiTn%ro!jCR~Jq9V40=stO}BJ2DJbwHbHa zh`yTztGd&G?(VlZHiV%a8&3zYwKjb@9pj=`w5PsaP5rFd;mx{ucDAe}gb?Z>U!r9t zgjFphS)-bews1ZjU)eF(j-k_JqZTtWK%lD9`794r5vnquEw*YeUcdY4<-4n!br54u zZM|fkwIZxP)}q&x6Yug%RpJ&u3Ydv8jMz45A}6H=p^7v*os^L?fVA2P#BpMnR;i z0=VpY{b}Lc^YcXrxGwDCj2x4r%tV8Ppq0xqWI)rR*pm0Hm2XJB6J6QKZ0+$90RUjW zyWiq|(fY0yLP7)t(VgILY*z1i8MDkYE@#)P)!A}UXhpW>|DQsYrOKdPnGLOb}#MrEu0 zr;<)TZBL01teJR`3_huqEnuv>S34X-1T{tD`oyrCZN#bEck>66WveEGxq}b4$FZk0 z3d#2)80{F4wbFd44iqZ?-;z zi}}gv>FLSIQbe}JwkoR%6bMbEzX7I4wC>XOXy5fUyu~5i=KEhq+3B(jw?!2q`&d;0q#h|~2*HREJqD4R zO?k6goiFF7i@C$i)q3;n?9`z}=~i|bva?VEz&*Nh_AJXi-s0G;I}ndL<{NGLq|rs`J-3fleUACGX2Y^9@ zi08BX=H}KrL}pWoYpjx}8UmSjQAqf)=6pOIhuD{?m8R`P-j-5fX2{Gw`}F1J`=8&w zc=IVJX3mpVh7ehjMC84z(R19%`Wv*Q9W}4?5G|&|z#KfxMmHg;wc{{)EU8qM>Zkzg zt124QpWM`wLI_&Vy}08WT|BJ_I)j0TifB`)&?cP6LG?P#Gw$^HHERLt%wRAZ$0FY} z@(5bYw8<^nsTw%A)C6)IFBDUIV8BwlJq4e;Gs2?%Ws}7zj<~sUoI9op-L(?+jj7~aoF7n+;(p1lUXChQB z1d$*Bc<1N1bP8^?O{zMuAJ(Y7PSq{OiwP0y-UUgrMX)V^#F0zsC#Q-L%tqM$% z`j2jfPgmX~PBrM+A;+^ko6U0PI8?&ykf1ELne)+`I+sZhRn2lYo4I*DTW_~0*w9!l zPNyOxuwVpcXvhGlDiXGcNKA&B{Ph4rw_JXd=3rF008j$^5$Rv`t!#xYv*$ZB2_`mims}PEX$Zlg0_vZ z(o7sW#LV3#8M{w}{J`Aeeh!0RShyeeVGQIB_jIrye*X8sRQ7zh*7+YJqNw5?htUi% zZ?-LB4DShAE>cHa(neu$h)o&vYa7rqVQOy)Xc!#{wx5X5nGTA&Q0;}KO@`PNEha;r z+CNj`&!FcOcDe2(5RRIK0>s2_TNLwI9;(VgI6GZ>@2je0CPEFO-sMsIo=8Fn0Dy#5 zSzer-tybl>*u=R^5-Ko3W(5F@tWX0mLapH#BtkL-L|_C^yxCOS>eHK#SKprbv**t) zPM4u5b3Zq;b+IhOS4jm3j$M@bWadKH+SG9hP%U=rB5IFp7L)dJLG zp0P*YM4Jj6_s2taOw4nKMQ%gqad~DCT&6-8l?3OUs+uYSRi(uN4Av=a!(cpxCc;bm z1+UToch^|JHnZ7ty%F2!IK-W>6RT=uwY5EP)R!$E077op-5hZHb*L^ixB$Epq1y9M z4-5@<$xrTr!jAI5M2N%@g^Viz43^6oHzXxYP(bIhx7 z8afkG1T>42MU)VNAfUd!+Fq{TUoDs4etY43p`l#*nfGT`)s<&Y&Pz~HL1NErjg#mo zWD^&790bu|$E{+(&YRiu76%Zhb_6>{NQ!2viUENEKor2hvzA3cE@Pr?Q4#>*BF}P= z&F>^m4i<@eAg(^%Xzdi#G`C1?`2N#y z5pHUNeT>FoV%{gBs5auVHYQ3F~?zhyFDcnTGwtu1{OrkOa-n>*c7Xq z^=6U7vu`i{^z6LYRE)0L3OghsAXEuuRgoF68|Ro!wd0;SY&+265JD6jJlts-k5-Gi zEWs275X><<&bGnIvW!(U1yhktQ7|(*hp{P?DXNDd;*+=dN;M2K;AVlDDMfm-3V?a< zKV4pb|MR;aU%uOxrle zXS3W>oGStZNCx#}KyBoF2im`kaC$O7UCxP+5F#dsFih^c94ILn$EO(aJqFD^msNQ8 zW%cpaK73gJ+uweAdvl5C^VvLe9!x{IK{U=B<#}2OPbpOsf`faXb=yZ`y{h|;<({y% zd_%7mH2d+ zxorb7FtDJi0Cc^o{?~u~@%x|OmO``n(lyi78tDg6L)gRX$Kk|JQ$`a=9{N!>MAjZb6cA|zUNPdY|p`XqDhA|Nv}EJ&O2BNuxIk;09 zMlHiPF}ASFK%wh^-%(lZ&EIbO9<6Qd24kXKXLILVkv-S2i#B?ciaj*#V`fGOj_B<4 z#51-2H>$c5#fe&qiD=mXrU9_o%wL?Jtk&DxO{J=YJJ&TPB(X>_u3c&sNWo=uBr2<7 zTW*<%i30k!pKcc!fA`IK8G=f6ak2dFn{QS(w-MYTuIHKzyv4z>RZrghPL02Ndy8SJ z3hhL!x+$;DxeO#!gyg*|t19!ZC@VlRfK{M&$F3;z?DRr26>S&=q# z5Noc2imI4trRK7%s>8RELd;iZoSvBGP&iFam%E0o7UVtDvD0?_6xT-HZXk} z^!;_>YwLtQK~y)J?WfOQ{`+5ldimxPa+c-Zq#%$y&u-TnLo#ARv<6F1&{{L%j==m- znEtCir{VEY}k%t~seH?~?a zwZm)p_v5L2iEB-#uMU?i6INA;#35LoWhcw*WRY7tm=`Q6QpBuj&?nhB0{{jjq$*VG z2n>o%71V-M-g#3%K<6A{U29@?iST>NQfudyG$OUujvO$@PE`TSIVY-@*EiSeZKY;b zZnu)>GbS(-14Uv$Z%its$ks6fvH_Z@W2BnC6@7!%@RAu5Q5}Rp`cM13q*0R`D2cTz zuNDqyI?@kW=6>`Fw@|Aq1b#La1t1 zp4P4P(E&fnq2FmrVq~OU0E96{LS%OA9V5ck&HDRSAO7;=+ihWv9h#b|AtF0bWsK70 zvGc&N+aNT=9;Wbs@#Y;E)>Mpc$`nqNng=u42ES@$JySNy{#yFv%k2iyDimeeG#WQ) zb3G5*IwpnI^H!L93R7{?Y;9(S(iy^|Q& zJM#CaSE3zcW)aD}XM~gGJoZ`KBUr9$N@k1s?Bry=`nZk#bXvDubQ#I9xD7O{6#zmc z05!m>3@g}P-faH(%_-RB%=2%M`qs0EmO?<3zGHO2q>~n0w%s_KQ5iV{7Rn z{tgi`B+?+QX7&STZa=i@Lp{sWLK=svxTZCX!>v`6NjXkJvh$0u=j8U6DCo%W@P5x5 z$$?4cc`@_z%o{>Dp4P8mXz17nspj+S{A}^@%NGT1hc!hO+b%J(1M~5^?1T)2rdk#< zn`Q6bU%%0CezrI}S)ZINo-OA&F#1Ims!~hSz=Ym;FsMX*Psgy;-q|Szr*{EaNq9nV zms-hDHI+K$G(@D#bC}6$TV&o9WvM_x@#=Q%oI6?0!IXf(v=i#@lCvkV!aE`zYaG9J z3<^{!^E|79z5RIk!^?MXK3rC%I%2D5SYbO^8Sc`)+@n!FxttohQI8n%H3|}A#^doe zq*wRFx`fjMg6?Gu)i$!*Ee)8#Z)fCl-EA`k=tI3@~ zRiaQR5UJ{ByC!zd&u`XpeS34h+^$aY**rg6oOp(1p8M=n%+{Miv>>VgPwG#O>R~mR zg%6J&?hz#3;}8{MCn5+yWC$?Jv$CqHQXFwGG{9{cE^ls`aGqxx1Y6o5QPafwlwaI^ zpX2;wvszd-qAbL&4DkN*&EI~0`{u(JQF2*E3YL^562Qdny)k!0)|NytU+W=0Y~YNdpre7!To14pH% zvqs`$uC+u!nF$e*OccPBHFzdPzFZZnGGuwVnyr_oCx4vz?d_MUlEvbDxi~M23Q+5s zS8|K!L2W@iE)_i7QpeP}iv+wA4P1mt)0859lkNj5xlMILzLR zT$#`jo-Ai#io~kwn5MnOJ}kJNZH~k$N(iSX^NZ6Z0;twPv+bPvLk25Owa_CFF-LW1 zi$z`UJOTx^QbMVPSSU-`uI2sJ_QjhI|Jz@F{IUus=NBf$`sTV(RZ+EvM&B&})q+}P zsw$6VrfW_bQj^Q7i6P)}kym15fEI`l$*s5L&FzLL(vMl|p4-P1RQR3yj7Ty-bWF}? zio6Z>??1lz{>9t3pRUWwn21ab)X*UQbMU@+*p5D^2JqmOyps@h6cRA@K)--LIOrA{ z48SP5n>26Z?c>H>$h!cOT~dyNh~7GA>+7ak?evmk-NWR2GUrYf`7HOMO6Z6knhwJP z!#fR}nP5yZh>4KRo?e^2mos92;njM&AB%z0lKj#tsJrRof(?U>cg}4!KhJbangT^UYs=cp+k*9RNrW1Y}}F z3MxdTDu^-bLqKii%O1Y#TT_EL#0>8Gt4A<0V<_UzxV9DV8|x2tZOxA{leQiaWJjWZ zjSzhZK~)LqKqEOJD)@jrv4`5X$jQT9{lnk0iyVnXD9P~=A0WPzjvJfSlf{Z%~V8GC31Z=N=Hh?NS<>-HdE7Jrl#O9Gf}f@ zBh|Z`>zD67{QT4Vn=4bPJ3I+7$^<>+!F}xph}cR3wbTTGqJ)xAmy5;ix*&ooR6$e> zZf-YcP|Nhr)05x<`Js3cY6xwn$FmoG1 z-N}h~jJW##6jlD~`?E_<#DJ{~Pr5 zZp}HDF#=%hJdO=(QQW8VpG1~)0!M5;sa{y@o1kXgO@#F$-5%>t=*ZLYt~SE)J)L)I zYjGWGv%iF}N9!CoiRM@BEfeoN7)p@(4-rAllRdjQoh>p%0z)P=m8i>XF#Nhb>$YK! z)c>VwOw0t%xp(j0`PnQQK1UQJM6O$NUDOa0X`n>kZ=vsAZ0LINdm~0*eH0LzW)3zr ztt5yA!*wOMx2ttgE|#-J<}CybD!|4Bs)Rs0~aeLZvFqOtEXiOiewLiUOjbz5jgum+#-aes?7n+bZfo!JRM~B2qH!q2D;w zCK==MVX_~03WGKQ98F?Gp+B)^KbST-$9SwA%S*X@Qax%7!ey7GnGYE7UG-_ zQnqzUXtrqDe1@ZAd}#wQp1R$gLdl}WzX^~^S)W#7UlULrBD?g*nFNpfBx+9 zW<$gxDrU@%kOac$TI{hR5g1HCVFrMzszhW9c53+Y<%cZu-+g<2cCyICwyQ0A4icmi zW=3Fg&P*kg?0vE(YxxkBN2^sFZv-VSwmh4y!WM$eGQTM+CE8YDwJDeLyww7Z1^E^e zNSUC&-+}~A=GH~A^_f?d5CRcL-^tF42r*Tv?>=1q{OaR}PuFFr5D9kR&v)YZa3n|k z9+}4>XSF9Yxc6X*mKIM$Fw|Att;O_9ZIdahi2LVI>_D4spTl@?Ey22RLDqF&3@YJ- za3^JZ7jU#^oa#|O*^6~RcQOC&LPB@A?dlbrH_fJwECg6JTh@{b<42)7N<20lU z>n*C-xOe!(q%`oq$2~DKjM8-m8XGDB2~k8;qcC1Cl)p#Vury8p2i89agS?-vc!4;TfOUK?9oZM7oa(c2jJy~4dY}#7As3NBbSNrXc zW`zf0kwg)!j&k)Ts+X(6Ayx_@$h%LU{^cM3j6@>avMim?ozIa8j8!xpv+;Lqg{yrA z#*tR2ChTE8^EcP)i}RD4q6(t7o5E)=hL z!OSr(=CeF=h+V5*oRVaZr=M)5j_KRy7uTz`Ni%#q5zt5>sYkS8Z39$W9*Fa8LRlgh zkRe(n`1vZVGR`u7_4*?@e*W$Ge3pf<4aJJtJ0dWg)P}l~7_;B>-}?^@6o8P>R3#`8 zWVzdHtIWF!G>F{Xt{nm`=gzrUn~Zk=0zv)0n<*ws`X93cJWhpUW&$gVEqhPItM&G; zKfnI;dG+OH6I6&1%@Ei#RW0uWEe)<89?st*F1+_&9Wsh-mk*mtK1QXNIt;~@E0w~_ zc=)Qmmpp5)b_-3dG0vj|j9Ih<1sgh~JEsTj%rN@pm!pMqC+PuAI@WgBb)%C~OL4s1 z{BZ8YQAtUsnW!2o-g)NZ+zT|+S|JRQ4C6@Sy*no%fb+AHllkm=RkU>-NeosBfBk{Z4-u`MVQd4~ zs;7!^__y3CVSCpnv}UB6h}x=RLyxkI2PUSEmSGH3OUJ-s{WAj6ar^U5N%Q;hh$BBx zB^V%r<#|4v<%>M4DPVwLiBK2nJs#LDNfMEeW%)PH&bP(KGKg8DB>6S%R=XhYufxgM0e!-FdJ-Rl*K@uV>^CVH*e5;)6}) z2+SU6N$$APm{3?-sX|ST17&XS&M@xnw@2TdbdVz{7=SgIT0aaoyc1*`x4^)Idvl@( zR#j1(`OG`cGv_l`loe>tyf)hD_v29vg9~=7rUdZKH_twOxvsP@iSiyemEAs~!)S#C z>j60R6Aa!Us8w+d5V=T4kWgk>hQycaaCQ6nY?)o0p3Ii>(_Gqijn+N%n*I*+8QPr~ z03{cz$K7XUuco02hKPoyhD=2E?Bev@yZ7@v&$28iY>JR^nLElekAONH(eq1;Z2P+$ zyFx_-aE?QeqAag(*MIxz_0O+9E9IFd)5_EwI5Vt5VE{-T9$Sd|!075I=>OR4XMg=* z57~EoZW!kZw`fO7X>Uy>KFoj||L~!fu5dA`3n2`$iiZ?S`2YI9{I@|uM1&c0q*z-6 zCZ!ooJsL#^rX19I&G85ZsQ@I!Dsp3saiS~{zo0WcSo@v?NF4;uL!2?5e*=RlVlUP< zsAm&rS&m>A7mMXQk4mVBXo;Fhtwe;6V6y=c$RPrv0sxaMicnSo(8yvt3t)0f3Hewk zY)m{)scX&132dR#rU%6lI>K1(kAyL=YN|qrNK^)071ix}n^Cqd0y$*H%sC=fQv)UP z2Fmq-4H5+dHB_|t0o*Q|n&i5Jc%Ba5NLnuj|D-%80R$q)OzgNGT_YN*aB_0G-j=!J zAfc*CHAUt{o?Bh9t#579Vu`ilSDsxoALnI&q=1f(}P<{Av{nsDg zz5Z~chTfB@#D1uF@7pmb4SF0~q&l>APcIvc^xSq8QIquv?N#i5AmcHm15+^Q!x)2O zec*j3j4^B|sbk-y*~<(O3@9ot5OS!bC<-R76_$5ESO>|KBY+(-zA1KpBOw?P*61-3 zB9e%P5F$Tn|6r(bWnuEG-IxbG*}FIyv+P%dot)*nr_wT6leh;zYX5H$(K&CTv$=PS z%=`;PnHn^b+7a>Obg{Ty->%oHfQ~?v}}ox#aYvSxDJ-y7$Q8WT-%MKp-$o`K;5^LuBXBeX^D!5?eWBG5G8?h7mKD!)wq z${xQIc92>x8UlH8s?~Ba_udhq1e-9^J8-jmIt&d=EJ2uYKFiKd7gyIeMIoY!NM@2| z#E+t_(tOkqDok?HUXay}G)L$-d9epuKmqmh&Fb=&7PIVZIbSYjCv%1Eje%s@!uy#> z2vs4WV&XX1Tr@y4E;v>@L?kv3KEhKbjDjJWUIP&#ipng@nEB@BW>b6o~Mj!-WcjsD4(G@#v zM)&Un+uQp}Jy|dAwK!7bAs_G2MQ;M6;R>OxS)Auf1H4~0W zO+yGGcIOQkry6_S>|lz3ggDWY-D-D_k*{`?cL!lLxMXdcVljkz`N#bTWP`z2z1wsb zGq{HDO;1lwbH_wb6czhyN4)fS4Rin^!px!;sxtR{aelH|Z?D!HuzHHNnnp$i5kBGq zg55)ar(f@)$XZYY0X%y2T!igvQ+S_cE?-x;di(kMBjtfGaOc{nQQ8h=HdP=nRdNgfQkAnsz6I|P)xx?cuWr}g(aAiI zO)vn!i1NFrc~8`7>l`dts2nr9?A^z!AAfrF;{9a^;+cYlsx)F|W(#)6+#1-S{`3$N z|5$>uzd)jali`=D)d_SEk;&$}uh)RG^K)YFg-Bhm#6zvbA!p*onaF-&*P}9wNyED* zY1q$Uc$B+I09o#qi@ffEYzv`Za|xQ6nzDC{T$Lfq+;TZv%(L6=HnLO+Ib!{Y$T1jy zJR`Deqb3Z6W)LP3G_0zYN@M^t2iq!`@oc^z!p&yQ1}BT<=VEh$_|uPX^Nhdy_Uzfk zDJYbi0z4-%@7*qN;`#1n%B0X)8wy5s_fUm=K9{O0w`=FKb*Z`MQgpp7u5QUWcj7#e z#&ICOd1(-wrkf*Z6)I1hEfL0nN>P_K?jk(WT-@O>rokvPXay=C(n6v( zDy?E87mAN)jt^uMI3(|QxtL*;bTV}8>n!r?K3YUV5dl*sMj+?l{Cu(6mfNDJf+`#; zQh#rFbZn2uLkW8epxHTQcDXKQc|LQjp;A-NYzC{cWaf1dN`i$!cz5;j^Ud?;&(6=5 z)pipREvS1?q;1+baIw}N+;+kAV5&&nQ;XRNL0i@KAp|y?&$88Ob+(vqi}H3|c)#)N zyhFT4m(8y=w-{5;nK)>u5Xw?sz5D#bPj5b4-YPJIl_G^%=5tfiAc}@)gzl@x?_;VG z{Hpt4rXvYU)IpokUKrU^la z8lBo20jMuGwNqXN-7E6_?EZ0cnTrOe<D7g5Gt)c-fkJ;Y@S!) zgE2ld43`m{z|F_dd$lxM!-3G;;lh5Gv_(fV5zCU+vh(rAXQ2U9SI)(|f4tI?yIhFnOgmYiUH9a0d7k!D_<#C;{6ACDF~y0OOtB-h+4EWpgGVsQu%YbkTgI4(h$8Kb2nmr1K7YOe%mBbl2$0!TQl&FI5}aYD*h$kiG{g z0?|k;ZObicwm4b_FqkgC%nKfHMV`OCEec<&L| zD8>aqNQ9(jsuFJ`)}^#49MVeUOwFHZl&L4%p(fW-ijOyU81_#o-lbi!e{jVP2QWt3 zr**Lg=h@;b^~{eZrli`&fHoGgDyw1}tfmD{OKb1bNF8<@-7$A3G1pj+zG&v50YE*q zTOm=UrLmUMQ3+7{=WcRp$5`_tsa?ldJne7+8%eG=jdD7?_;%>T4v_sQZkd7Zs=in) zGt^~{0FckTV{ZH+Je7WlYRgL=2!00Aor zV!GO{&z1}LbaQ>ZK0jY9<~borkZisH38tZ{HUZI5mhr*^ZNj$BaqDNNNYv`66Hz^9 zE8<%5olS5wxFVu@AXgH-0+L^^x86Hu+H5x0j2ZKM=E*=r>K&d;%lOrnEX=f)#4>TCGDAFAmqN zgUR+om^M~8g|__yCZ&aWp+87Gic6|$(zk%SmuoX1{OxM} z<@(k;cK*yUiwc4fN78})I%j~#3zJ4f%ghMLz@*xGpQ(YUAWD|GZBbrcZ~pbCx9>lE zxx8LE&K$E!PzzZ;i`wSHC%6lWIUpk0ql3L?8yuh_(@pdnyQQ(X!z1BQ`%;0}lvn2* zh!G4_FzO^t>qz=2=h%Gak%)zA>^e_{m!i2732nK1vOEb>6RZypDBZyR)*2NCqAIG5 zI0ui&7{e@KSN#n}o$&)AY;U)x>>!*DE7GD_x?-@NCTlHcH$snyWGY1HnCA1W$G)#M zG7!ExnE@t^AR#Q~`SWLI?>>C--iIKFXmu;XZ=nY&PK{9m5F#S1#ilGs<{c8P3c20f zp3Iz7a-I9dEPM9+xp%bQY^!aN&t~Fmvt8#rAEu0rPD~TZXb0CP=BCN$+xtuDK54Rj zsH)0kZZXepSKGy6zTFl#>oq%ic6u6VX}@yu+8CxWqC^O=ZN-GJmH zmmhw5^FbAy&zTv_;>vH{f7p2vU$ zHFPbFks1z8I^OjjZ%+^ql4>>~qKb;BibarraN0K1Qo9dN+NIN%#+n~d*>iF%>qOkT zmO5AQ$Sm?9IYsZlou~vRRE@mbG!@gY_xK-fIEZ42AxLB&HX2JKlii0F+w)-e&7Xg`LW@)o~vh zpmWZ^LRmS+Jo74=c~?}`&3dyb3XS>>^=PkOZ=zu>CA~>c&4`G|StauJ{q?{9@b1m~ zFO`}n22(^J#yDD0ZJ(U*Jz6V{#q00e(QUhG}hl>O1+ zosy0ZOo0zyzVV?mnHdBzKt%SL2a}*u2Gx@1mD(n(ZdbP#7t8Z!XGOX3?4sQ#u2p-R zNG%dlD1}qB`MF*ms*r5pNCa=6sG0%-0}(qgH3^j%p0^SLrW0 zzys4&q@u=5t4;O#-RGZPe)x2`GQ}(-2?A6rHyc`{&P(VCiCSS6tscAWE;F_li!YdWiI^4c#KsI_+^_WVX~5x2lM`6pD%fyEjrI>&kDv!?yH zAG$)YGX>_|h{5#ZR7CI$|9Y7aRYLe+xNG{i}zPAUcCGA`36iIiOtr~gIcX=t|AtFh-q{Hhd>Oq znmvH3g%Fq>vQr6cvY6+qbxGv6Wwlyww%ekOY}E8u=rkI8m89|j2YSpFwjc5&1r0L~LbkEnb3*rB-+9HbycvHDCcZ|G66!`M>n&(MnbjrGuvXWB^1_K?DS2 zqVuzpljTgMLgczuZxC)B#QvQ7p*1QGA^DpcN)L)vbtZ4rzkq!0r^CSps# zw{fbmXY))(5cgQAHOU`_jEk02)T87RMjmW~LQ@-)86ptXqf!9WU|Z?+ro3IR*V}47 zn`aI~RTvl%s|c#834jS|98gHa%#0LEYb|gEm`L!ZT=u$e1DPmt!XcQcif8nU#B_7J zR-lu`0zlM)^BxppGXerOGr$c1V&lj!Pz`GCn6=BFnX9rO0%BJM1;E^U0=wLVfBp9t zfBot8wp2oL#NIhoQLHbV;uIP)Ghkv!re{nn0~;WF-3*L2GJq(9i<8wv98cDosyhzx z!|_eng`OQUPoiHgwGmJ~*d{&J3{HRYM8jSKpD;6pAVpEtd~ci>EI1k9ryqQGTu;($L-G5hwLZx@+26-GcJ1XNQt21IfUCeWzm zMT6Lq7qD4QHcBJWvGdFnsuEQ4`La^@^!euBet7li^R+5E?^Q)51V!uGkB`{YM^qr}4$H7- zn(~0;Ie9;Sf#sd58$3J_NkjNu9UEhq{V33E5ZBf+c(Ef7YH@YbyMe(;F6&W;o4mGE zf)KQ#7*DF~=0>8c-(kiC?DuaFWn{?Dsa}&jVb`R8%1pM1@vG z@o~AFpP$dN%t#Q>B7czBAz~0KtF7}h0*Jn(J0EJ?LoGC&1RQ2@7)tB{KqO``gXLnr zE(;|5czNxa&d-*S;ok6tp;N>nya(2Qzx&+iOh7wlFeW!5LI}<|5qbUL>aRb({P5wj z5pD5eg|3x%>&_D@E=zpZJF(11hyYS9x1Qi) zpoNwu>^tlsgznnn?iQM4-OqDKN2F!bztyXEWDQU%>B<%&z9vvVbHX$8rM%@1vVV`M zqGLn8AxPHLTXOOD*%)s0a|?JP77>;J(m}>0^MUlKwgE?$Pe<4{_uc&X6B1Aq0nvI@ ztv59jfGD9kjHh_v2)BN@otYh>o}aH@zq+`)+eL;~gp#QOfeKaZxz5$YRZC{}{o)*` zLlz}L5V5XTB0;>|hVc3B?z*|V{#;dDy?J$ZcD7#Cm4+rrgW!<4;xi1f&!{S5#UfD< z4C<{jloQ_`SVL5dt~C;2s3J0B@Il^xy5Xw2*sRb-K4bVx(Y~lYT5e~=9|?7a07{6v zrl}m)tM$$8?%VHw{KL0DefQ(r^UXP7Kp+V|_~00cNXF_C@vo@kwsf}L0E0=}sWSc0 zTV%bGf>wAu>@5MTd*?Hb%t(56qvYIQ;3~%E%mpy(2MYq_ba(zJ(K5lCsVRln#IpQb zO!s0AHGRVQb2s0R>5?vx=-f~-miofbaV~p@Yhs`Q{jv2WK6B_i83k1Kq z4_vv91y=;cr>RQiB?S}_0mF~8;#O|xFUte9FF{6rz7gcqxR*|3q4B#LNVAIYx zQR+dFxOwf2#f=)YVz}8gXY2LdUGvM^kM4J`FE^|KzfBgREKmO&1_a8qqS3!cRA_ySVm1Cly5E{=+^W#v5T+iTN_Pd&nw}45KwquAi zj`kU2(%D$1`^O=4V>w76*Ddx=@SUjL4QWy@c<)W4Y>67{Jukz}U(l%4?p8u@QB1uj zt=m6>INHM)?xA$S1nSqTdb6o3$6(Ve&ky~AhyWrQ7%GE@o}aB=U7hdVfA-$13Pj4p z1PyqY{dZUi`yMVz6Bjgek#a-?Od&|v`HJ1e`bKV1>-E0PRLd7R(0YYUT>U-Nk0T-AYxt>zkW*A9-E9Mg+Ei95W;d1n3dA zL^-gg1|9pBZzz{-gMPT$C z29ohU)Kz_V*PLxuH@A21KHa`LUn4V-DyW!X4q(aK^ME@7TG|_mASG>tKD__%r|*9H z_OHL(Y(24KBo(RHnM)G^kI@aYV+p4zy|yen1D3g^wV!=vame@c2wOIzJrD90W3%N7 zy|_7|F?2rU+G|4RJqJ;qy$C@xhe7k+qC4+Q(51&;Tof7iU>)BZQ99F^VEYa1-%2kdv2(zOOCbDffKMggARl_t+1|fp?-Z|&k1>am=ov&7o znIma8WQFY~n@Gn@YF+$^Y1<*M-~;yhke~pty}PLyH}y&adO@sfS632t{_b-{P_H)I zhTdLpKYYIZ_1E|R`seSqciZ5b%GHs*Dg>M6bL`46DuO``1Sy@-pAdqA?wUK|%D9%# z&o?3x1m1r9oSGl@Yf?ZDA1CQd^A-v3|Ni>(AHVzYkKg`qeb-d3q99?nOAUDpV(L+Z zNJa}kn!caBkF~hog59$II1m5P7mNq8{Y@6Mk2M7fnFMb_ zmtIT_W*z$C|M~y=zvS``Ceb%$WM(9?CSh?kqv$5hO+rL;&gGv8taY0@S_;FljE*CL zb~3yJ?FVXy_}hO+6VwHf+Et>#d+%JOs;J@h)%nHQI)xAjDnMFFbfmj^5@c=3eQyFG zQFDTsRmCxV`gH9D6-YG@8K$$KO@t0=d7#u`rOG7fu5*tUHakJ54~-YRa^tGceO^+yn0 z@iQcqn_AV2^Rri1m+2Ivh&WdbOTdqNVf_PtpQv!`Jdaeydzq+$HUIH1KmKsD-MxQz z^W9(H{_^p9>$fV6LumY+4}QCqyPIv}w{?vbl5QK-U?fa74M|8UK~xYxLW2+x1XP*e z)AjB7+2;24_UE_nnxM7Au)C|OYS)CSs!z3^M3h~=h?oI#j*%FFDrU!ex4ZK~?>_AQ z!+-kc4-rkCIrkD0+oJRx@WvsdcV>&ZMJmD?&hiFTbEf(BbxnmCtt``i7w^O*K zt`{z-)h{%sB};Cx&aJ}`5${7;z?><-%xh8{=`hNYPRr=4g+=HNPiSW@6c+Lfj$b9} z-uDmud@hav5*l2DnKgDVHmkZ~gQn(I1-zKox^l0tF6+u+BDb&xMmZc?plF`12QzRL zGs*AVAs?CTH;RI^1-oWuwLbrJ+x+&G&Rjc)ei8TlT zuIsghy%ZyQM~;zDHHi9_=U9~x&d*l6#v|ybo4a=(uMv?nSnRHNvZi;B15G4|cw=^` zxRT&OgRAO4{^h6t^*{de`|EAvgD4;olZ$6_Sv~M5Skz(a5yN`G{eQ7nr0Sje1?(CF z|J2iV(;?7(k`rN{18b{@CB5$WEf4CtdyAbd{{?7PCIvuK?e5s>!HP|Bgx|+uj1TUi z0s(@S!_h;3m9z2=aV!94RfGIkM(HaO-N=ZyDA#=yYnY!_oYKl^MDXjgv(36@&QCFy zqMkJuX}LZj_|1Ct`ttne_n$%&04YqiG4avbFf*XIQ)C!r@`N48Bev%)0>wmERRsvU z#{Ycxd9!lcooC1Y@VjsB?(Q5xRk>BYQAHmb5g&>7Bp}%=OWeT796L#(sv3MiqE*e? zMmIJ8`u5%Vx?a~Sk>I%6H4UGrja0Oefe5{i*545~&6XT*z5nC4Km79_zWaE6$Ic-k z0T2)nXizKeQCYUueHVthH#6-4OcrwY9<}`xN}8tGRhnY{ILKRIXM}U|7Dm-CQmi(U z+^b1iL0A9o{!Tj0U}1Ma4Ncudf|StYqdV%yIE=AXmjo;%k#_2QbbxCiN@pR;VhWWp zDZ>{xH>dYwZvh9a}ps1oEVoc_UlSgkJ zE_6zVp$lV{WoJkxfVA`7QxVwC)GkH_#HhKuZ?nlRNn-98K)thx)8C$hPkiM0P znOr$3{hVKB(az6SXPf%d=Nkz=1gR=lZq3KcmQ>rqV-eLp)>8DkH>%suuO!fX(`Rx7`|rpNcA|V`oXQC=#Ivs3^NiHN->J1Z~yw;pT7OI2}DfZZ`W15 z^U|t=BNEtFa5I$25(j%L`h)A#!yNsO5>2mRjGmNf?h_(!)nb=6n_R(ass8H*pA_N6Om;Os#-a|yf`y&k%Fss)d(@XfQl5Tsvw~X0=|BA@%d)^;rb4; zqV-tt_1NHGU79j3zP3TdQVYES?8m8yB%-Q5{)O4-G46J|x~}e2fB5y?`w#CgE-v1@ zdDDn@0LW1sBA#j>QL$2{gr=O&CB$8`tyXR)u&UhM?dR)Nb+M^eMM0`WhvQL?xI5-V z-iOBf51)7c>A(E*FYm9pI#a)Ewtl@{dl4oCWVHwr&_ry>t)LDMebVPpY`$jTUrXh!dwQjC2?LWdh>T0;;YnnDHc(6e^G>zQ6P zoNb%va)&&k5}Ytm`?@`Q2(v^a^ZZEg&hgo1?Xq%!cH~f=yFPaJ=2cb2UtOMGUY;X@ zb2fO008{MEk9BE)^UbsqJ0%!t57y)=0wfg>1y<#t>cj4QwbI~4HBfyMs`uC1pML!5 zuit&wG+u(J)v^;8bZ7(snV1=a_oli*NK7Om?A8Xl74JV>e-4VFEo8$zw^I;rwt$fs zNkp5*-`w2($N&5T((NQ_y@!MY@#j!8PirW!^dO|+)+-`?Ih;lHy?Qg4OwevQUcpMZc|Ih!o|D}i# zGHY~PvhpG_vtxk;PS>qyjRar@9z@A!0w7`)1y#q+O9McWrW&>J;oF}+{KxC7GI?Z<-)M?9B<6JTfdYR}YL6FYPrbh~_N2z-vj+;Dd{D$C4L$j9S^ugFB7@?zl>;!6LCZBt&dHpCU`Ev0|ct7Pq)o~|ML%j_|x|vK70ZsKtghiZ7}-gJeN9kc{T((8P(f{c5MsWm)# z4Z!t^$aDRxQr1*^m|8ScRe8fRvQvl$z%a^OuUCg5#vtfirQWYs)q1^B5#S0myljVo z1c)F2psN*MTx`y+*W2ASBAY}BCFXdMP`N5R@cqu<5$GSpHn>TMRU%$Etx~*0Y0)-%m)p}El$nEyFa%}FJ5bAmryl!_p5&5+K ze06cb#LaHYOw5#p9L8@-JRkw0iV`z2fne|+5i94A@Z;y(KYaVsAOG^h_4SU4i#hUR z)eErb{T!NBYGhH#9i4-!LnkbDwb~npkP?n$C;NIZ3kfr(rUERD?fHzU7W4rf9W0(p z861nm%Ie`_x)0LBnCd;`DZ_nr%)v-K#6QD9l~E+$Je0UZS>*JKi8RQnuFlTZY%JFL zveOHQ=ao$IjS0>+^~L$Rsv^OZG2kZ=UQ&5XxRgEw`eJgh2x0tBB-7~Zs2+Vq%O9hl z!GmZJ_1D!o|vE5`*Qr+sr-8tuJ?=5an1+iT)Sk8s-QacEirf|tGN#RDZ4 z!wh4_4UF3hs}vcgRtEeZy=KGw1Dg$Gv_P_KM~+&<$M#o z_rz|7?VH&dT%HiTiotj*W&!x|*Y|(?_NQ;Z|K;Y+*VT#%n%x%Abrbi+Mi6z01w7R5 zw+wf)MdO8~=A#Yz5$VNphty--nz8;vsnA>n&A;0pAj87;!ya|ptZz76XBCwoQU2sf z!8F#c+uidhZ41L&r*F?Qs$XN9Y`F)>Y*=G{DZu3$I6|TML+~8P2(@ zi!&8{`~H)tR#lBiO|wHpLI%*6=ppZ=I6X43lu9|}s8`50zZso+MgucCKJb62zUf0; z@X!J5DgI12!co1#QLEME4DbF|Jm&ga$DRP}6{CJ|JDL6r=picEJ+xVw{$ zm!|pnq2|lWi;MF!$4Jb~Y%(M&-qMJ(v(2aLPnC1mH#g^JD`p1@gy^TxTroBmRRTao zzPa;1y?ysDfBNCwyHC4D)|<70?6%$^)vn%&FKmrw8}bl~-!ZAb*Ap?TgoI7g7;_W=is}=l7~=v;qxY=3 zXt|eo@?i+G_NWIf=iFz+nG00^omLPRy=*I&Q7 zzP{cyO)}T6re`jJqRzM36f#9dNAOFjL z|MT0AJ5;Qys`1+(ftV4U_ibshopsgyW^Nc%9h1HFPsb>75_>TpA`E!5pJoTtm7o$eOv2YQ0GNW+>z7Bb;J}@M_Wzi8x6@E2X3{tfw|j?O-ioZVXU4VvA_hCBuv_ zNIaN?$m|qUM554-Dii4hw@I1eby7l!bm#^fE%#-t(}E4_3IL)aXmfe~YE>~RAc24Y zh$A;qNqsSOncTaef#57JmYHh@9kSJ!s{ce~FYZ`SM8?|%Q)#m0dW zQH4y3;qLZxU9Yx)&CY-LcwM>r;%s&E`O|83;loaXCuT$jK-Hii9$119vUAm^o6mp# z{`)_E`^&ozJK{7}4ZvW?H$g7_0~$(ei5RL%XKyd00O?v`696u&E^YTBLzlbB$8;e+ z?Gr2g%~bA3dj_)z+Wr>pVP|@j?{o6@$7&=3n*L+HBT>nW zCQFnAjkhK~22oKZLL$@p(GY?LA>`Ip;{$PkE+~G)B_r(44WcX_!tAk*7jyb!lbl0l z;qq2dM`uq4HDVJTg7vCiRaK;Y`=5VwZ@zkcalWY?XiybotbY9I{WoteL}hcnabSbN zrjq8eRUxFRUjO>>(?9>=yYK$`e&=bmI^S*Y5Gw@%ElOz?vFTx^@8~>lh7)_P)iHfq zho1PM=Pib*BqrvG(}&(T@zse-EFD!Hg@!JG1H@l9(0o>;w?V5ALQa5A)fu{1hB0yv z)XP9|ESc@g7ScQp9H*p^#u3eVMz5p0N9J;c5FGQ_rmh?twjD4^UBb)v7MZ8BpS-I& zhHt)p?Fh-S_YFHb;w;=p;P+^6aq=zR)rU7Q`}pTuu-048f|;%#qSot;q6Y9@;kMzM zJN)(M4}bdO_rLu5u4#mstID~m{`7gLfY&#-CJ^iWR@9s4P*8RV?0)$9-GBPefBf@z zzufLTJ0izKb=JC#%R&fcl%`MCIvN;#$m%`$hm2k9#SlmE(;PkcIp8xL)M}D`?P+!z z;8f_-8CDxhFAf5a*9#&+SL^^#qUCB`yVfTc5ia_M>Y87t2eLSzWemy`c70p@hBpxPRAnu ze5!Sunsn`@H78px>H5FHXHRa45oK<>&c=I>$Q3g&?R>NI>Kr%Uzg=xUfBm~RS6Az* z=G&XQw{PY3tIL`k5jy8oMI|7jf@~ZA?N1;7^r!EC{P{h(^=3ocyIW9PuQt2pu1$nW zO-Z00m%(u!eWrpmOfF&Hbj4_YVyG@xGA}KRg-3bI7sa_mt>9+H<1FB&ox<1j?r|vM z-PtI~yHDj+rLy``|3{d2vQ2oXY6v^iy`ZsP$c(z>gF1}SV}w1>gbkHUrvjr}q(f3W zDvOl&T$z*NL;@%pYcEVxSMF?66A@?v7@#IE^(EA!M#FPLU_x^4>o>37efa3ug&=#e zG^fwdkGlRL1=&G}$-S0-rjm2$=Sz@PwMN9?o5t^uiCnb{DzpxbT>t4?hw%6R@b}+* z^Yz``U9;QnJg@2v0jUUANX~uuc>Cke@Be>)`0nm*2h0Ex8X+VjHyj~8O2A-SlHn~sZ?sa{!hMOD5H8KKH zGrmMd(O4(^($S4x)GS^==^i~mEJ~L z8o(`&9=Z}k5#^E!8#-DzI?>+Fw81T)wCqJ2t;-SLB_d3mo=!xEh7e4;JvR;}=G7j% zhY`uMq6i`)C2>>fZefLyxss9S28!H@M)+;!`2)uPU5g$a0TES|Th*2ERCRt=RKEzA z)bLCqVn|1~uK263UK1dbTgZcd!a>~oBuR%>LY5^PSlEjFsG;61EA|!Ye6wRFV%j#l zo4Z>@s9Z$=44^?Iz~|fM{q1f?^x@<6|N8&_5C8pNzyExD3#jb)=BD}6pMU(rpMLo1 z?Z@B)6IZS_a3nLAQ-me-BSz?vhF6iG{ox+b@zD!9^U19$!w4UQ4lFDlz3rE$7gI%v z<34}bD!|@`iFLzLI~MmOxqH7$A&r(sm~RN76zJ;pNS>-};LM@r%aYtd6l-E@O1lVD z0MVSD#lMocO&rHeMN9Pye2X{^gI~egDJTZ6nM~Tm=!(0H}x>f@fx8m#ae>N!X~Me;(9Vup@Cex*+qq zBZn|7jq8*5Y-n$+A%_B|(D2bIuV1(T?Z0m<1i>+bvu_1j^2gHQAu&e5(RNBy0eusq z-HX1HOr_?45&{Ad5fC64ojx%mqW7U`0wxWS(pB^pd0xc(ae5e|NuQ3Uw3>ulu~qXP zfmH3CB$^j`l;Go}9%$uwy{fCKLXa=VGwiXCq(cKeGDA$$D{86v{& z)_)eM(h+-lNeSig4h$6nZz>pBq;MA;?DYTpAO2;vUj6#+phSLZQX3-`1UkNK2RJ}!;u_09HryS=`>6U2I5uWHk^GFAdD z6`0HF+{~225tKytw8hKcJYLxw;NT-a%RxPf+1Fn2f+=+A5fcohUg5whVVZ;=DRM4X z5*uQ>jmy=0A0l_(^K%$ux2Jvh6XN0r-=Y8Q4elRNeznXaGKDDAb-iBKmE*`&@;CG9 zIS&bns;d=Wy*hU;WyHkB%c2wJ`_aJKGY|TR+0^d5g+Ad>I$D;S^<5I~oC$zbP_d%* z`TFd==71ev!3@M|Et!n3(BuJE;`x~f1bpxwNG9wxqABb2KUcWm3eA9#=yPcqNs+4?Di}Os1 zGtq5BXMO__f&>L2pdg-^RYV1V(6K`zSDA;oY0```$6eg?8Q<>CcODgjr0x|JwRj+C%K@iD+yzn>kvh}R0Dvm~?Hs04& z4FZ=JXO|b}tGYIZ z(t#~s!(6lR-uvLQEq#WD$n^)`(`^tDw8-OJ+B08guHBep!8E3gmZKysjKhC1-{`RE zsY>RxEuDF!gc4=PNYpd}fUBx*c6XO=E;lQuA_yo7!S8BELB7x)MxLbTHs2cG*set6 zs^Z;l$BZEG=Jn?0=JU<%P83+FV&_E!6o)WDZHa46XgW(Swi#gfQD#dE)wxnDsjc13 z6lYH6t=lirQV|sqiJVFRPy`}k01QcA)6P%J%!Y~%RdijiLI|Nz??FUB0g*re+qoIY zazID`YH_QIw46E!q$p)Q{U|ID4uV1*`*|2)4_Sg*V0W*`Gge*5xz0oh2kJRdJY-{H05uH(3*iP>!M&`G@lv_2NnN`2rv#h5)mSJ-)uJP&1zM# zBSN5zDELA<7|{0?b7fRjRb8*DH?OZ&D<`1=RJDlp!AF9}4EFtlFY;jbJQukiQ8`?=F~+vg z!%->Y-YjIK6e&_Zm#%OFXs(s%%;gaxCC@6E1K5g_GuQKcY#oi34i4H7dx!FREvfmP z9buzsM3WFf^=z}MD`zvesL@-<7ws?&oD1_iWM(HZi92>X( z7#~ze^MQ9Z0^pOl5KQ@XVt|9(@y>>P{`RAyFj4|aAtI1tuH0(1a&_hEiU=w8w+nQM zjGY=BsX9JYjjn6r4>J*SCjcK@4XyOeOZp!=hDty}go8D&dXG#*ybnhM2OjOwyV2(= zBFJn5-pTsJ+4o^8I`FqT;~SjN z>WJqK-q%%qb$R~b)92f}29=nc1OxQobUEP!=WR$2H8G&B4{N3#%V!wJ8tQ<{pmiz$ zV<3@o5kv)3kju0G3P79_ljoTH6vVTI__uy+oeXgXd1H-5o+epmGFcRQ>P~3I+#c7{iN@7SlaC z;i>a#=~FVfqczP=Qi2#la7>%c$~k0;emD&le5o@S{bWK_djqB8sV?ZNtBbE*U!h9y z!MQ5&g}{T_?&GA^4*KxnSG4~s`pD2~%+>lddoKf&=iU`&;%rq!f~p9JfI7!jhZyIK+Uz(-xapjbLLyjPD#{4c6#0meNe)p75fE$V&d)ZE ziQ>sYMeCU-{PLInTC#1BSXEawUtVlhb#-&+qmPd~j97$n(mevF%IhD#)bWUk#au9p zEr>(X_?SvSVj^N96U_z08Dj7bnzro`N~92Btf{hz-w=W+BLG0caE@5F#enr;_OG)R zvY!ns1T`J%PUd2c2f=!ktq9sXa91LjV|pPVULt#*s&POelF@=qe^eb+Oh z*i=7oBK0v5w}|NG{k8<@jgLX6u&7gE?9^6(LjSh2WmUlHw}>hMfK;`1RaLw7%B8e} zQ{Upt_Y=#!MXpXb2@Rn?TUW1Mo$tb@#&6+NSg2$-N_VQp)(ekAx?dbRQm*jYYp_p_{O_xjbw`@|Y{}Sl;?Dj)#uv2OTP2q@R)5F*~y|L4vA^N>)P<&H6NI`r+)zIc`56N3|XatM3~U>YtzmnLRAq35kVU}GAZ`hQh-8^%G5CSGMpEzQ*pY0w!1s$DpjbE&sThL zzKZF8nux)K$`yUtvU)H!Z_)mj0?piQvSG)qTXL~B_+e-?&b%qPo>hUCWY+h_Hfk;Fm9sa1C_vF7)FV?Vt5fK1_ zXiw~Dszx;Xpmj>UYJBf23<1RPlEwwtRmYt4Uh`VuGPGC2=?@Z3#3MvikcNm<(K!yj zsVa9PC_%^s@zHDL+z5yyqJZLk2tL-@$v|?2GSx(vn@-TkTHt6$zuiqO zHxXeJS?yF20Tg>M*#(|?@PJ#LmU2)d1YcEk@S)<0NZ0H73nu?)SLxn28G?|DJT{K` z;{5FV;_l{l$IN0*9uxpYf`~Hn!S=l%8Y%VIpD?a}SVwNR)}`>93at@QRoXWf+GzK` z{o=etoh3%j3{?4>(qCJ&QhDO+zY0utWxHowXGY;3An(NcWD<|Gqi|&ZA5jfUqBUaO z4hslMP{Wh&|Gh;{*9*rJ3R7jBtLr@~Rx;($R-G08gbzDIZPz(~7SyY0EbMCls zJi$8W1Ii~Z5S=K_A}9u_EWMbiVD#cL?dFIF-P&YD0<6N0fI!3`NJ)<&ODv~rL&}3` zDy;Plc;E8f06q?ftGyaxK}1YtPbD!&>6F6k(76O)242a-9>dct*rd*PN^D!ua}2B?68dB3xaaBM5Wly?&_^7t`|=hiw!h z5)gB(1h`pO7w7A`=HNp#78GfwBpiifX)%LY5B0@+h1r0z%W7cc0%J0$qa;O3X#S=m z&|a9C;8+3*N?MeBQNc83W2zq02$4KI+;>G2@Y%78(WAqG+^Rj4VKDJBoj8NZ-lC*Z zJ=kp|-NbTg)Jo#Zk?VPimWVCA@IHisYVcXH(oUM1-bU{>>dO1?^f~S`)7$;U4zQez z!5d*!yY;GKA_-sefL@t`m-7~fZXGK-LnkB`S@fCsSqwgEM&wayud2(K>BK!al!wQc_fUaH5(+Gt#NaXTs^ZdR+WzPehi zoW$`W45>|hv{qr#Y<~#*jESWWK;vKW=~$#B^r1n3{g&o1D(s!K88n)yU1bkhGV=u zUw`%H^-sUN6%lgIdkLt7JYyFYDd_cQ^G{)*Qwz6OZf>vV3C>Q7(8t6Ri(_mk>B?LD z*p$Z1K{(wW-f7^gv_}%7#w<;U5T%-OaLTcVADx2^)aAw~%Wz-$=pY-kr#ju~TRd2R zSTL+iHH!B8w)|vEEz8k_a?EqY0Nr~Zfq02EY?xj@zQY)Wc#W5&#`Z*Ph#6uwvq+cA z-3DLF3X9#@4r-(0M5t~bxH(&^3Nx#KbM9{=!RS<|4&5sVY7wYNP!S1=0FLnL>cTlg zWRfWcA4m2uE;@}5a-QKCbTTq8X)@fBZ1i|-`s9GIF-Zn34lSy-63`{rX&j^_1VTzL zt8@mPBuOmQmy2tlsVdFhGR^^kQvTD1BYMJR?1?+Uy+@-8N^#?Gpn==h?l{ zI{)K4jD<|Y4!T{bJ_)&obmwI!jzA?5jmIn`l`K#|sn}{=oR(&-81FqJF|!X1AOdm_ zRc$UWuP)El6@dgG0t=a6ybm~V-r|tmY$pr>1Obp-Hs#Fj>o?UezpUPe+ostvatP|` zdfR-)DN2}bGyvUsixUxOkL|^&tmWa4%#i3T5&foqKs>zysYNuh2#U^OP~+w&Q6*A9 z(nK;iFvlYXdM4!UH94%rRO&7i)=&U|qsmsN2##q`nIUR)Kw<*LmgrA=A2sT?ri3@f zHij-tpffl4lwQjyCEX$Qu?}!}RFZP)6Oq8CiJ3VB4?v)Ce9dAD#8wDMBw$iG%PvEu z%}qlH5;TN}4p0$xu5=qYfF3RAop1rRh;6NK>9n^!k?yPek%)H%M}-7)br)y*?x%zoIY zDw`fFCD~mwM{+=ngKtB{;So!tWzkmK{|$?5%loyxV7BOC9Kh++*0}PKCd}HH>3Vb& zfx2)Rr%P3*(X{A^lOM$>ae_hda<|Mpg)EZMD_%u!(UrbfGJE(q0n;Lra$q?dOEjVB zRm_uijYc0L%8>;@iP&;#Mm#@Tud2$3X){~Smob7drEl@j)vY(LFRv~)OlTzv3Em*K zhbgN+O8(m`e?8ih&u*jS1hnNUv+bFKEomTJyVyc0ac{9tsxz4Kz00+5S*+15pk6|3 zdJ_T-WnZl?t~vWJLIfPG?VP+=wB*CflFma%F!RK^#fWj3W-!6B3)O?P8JZTlyp!`4 z;79WoOTLj79w#W65^PAkpd7Rr<UcNG}DS z-W#2QPs%W03P}AN((a=jMtQ68L>1cw5V_yH!U_qe8nc z@inG~^su8kstO<%=j&IO=L`~pC!!^z6kojjZL!0jRgGl@c|xeTvt02#Nw4LE z%ezEKXS4=2nxk0G5o0@R%oNosnP}wB6rh%G-Ch&u{(F9JYLXDq$IIB2)v)MQfxHhH z@-)mprkdd)NC?vFO!Um=Ge3H6cAH8c7*iZ1L~CA*i&D(bIuT$&)B}XLUe)KD+A*O) z@FOlukraWxB=glvEFN@!h=K#GnZNn^^{4C4&T$Y$l;wrQFF3s@jwnPpMvK?bEFzNF znP_Hx+W)GV5VB{^a35wdw>n0NV@G-tdkI$igeBegOCksxW=;rEM`aZKl@Sml^IOZx z@yp?G!|wX%moA`BKaC#}5sP1~)|kEC1n{g)r;LEudoLor80GoJwRnWX&|wiX6P$He zX0cUInxfem0rL_C@rVG%r$)3{uh#22Pw=M%UqyuJ%b_tBc~tv|#Hzqdm*?xN%kw6D z-tK}yGiJcM58b+$^OySgPefWdgu)a?hPaef?{T6Da~`=L0Hu%2nUn+Q@?+~k2Ya3h zdu)Is-(VXH3aEBPXLWif%>T=L)BDi2+0jD3r)5hV5eY@xHZ;R92!?woJ|u+Ty)U8d zPsJ8B6;&*`o@rZ*{Tw_Vn+Q78(IL!HF!HdLM~KCgqY_b7x!N%R5OSU;wGZJq$q%?0OU9#l>I=$+gi9>39k&&c#3W?)=xO@c&SwJhLkn3bH0T9G&=c znjJC@Kh;IPJfo_jgvLIn_#{d8!6m6u*g#dOKqwKRh?*dVftMMhPJkrQPa+(a^Heqc zyYzOa7mekt02R5*^UY>m#o{SQk+LuV2*``^2NUxa!^EP8Gd|(Y?gXtuT)CUOyQ;2V zzq)*V^>O>_&Nso*3nD^DO2RhQH&*&M)qq~7E6`)6(+Bqoy)2<9Mgbxaah~Hfh}4LW z?;-Qy-BBTgJ6a?1pLS zaUJ}+5HkR(NLAH!?f45K|9A>imyQbAvm+I8RfPadaB*?={?pCfZiKfdYS`<^f-+dv zs(t)%)-L{{!x4l?sxU)eHl>42gaEkn!JY#%Weid_a|Og!di~Pmu(jJ;dhogT(NDGt zRVGL;B$2i2fFqkvSxKV;olRmq^C8A6d~{&M5q z0$Q4<@(oxpB@{D02Qwi@?jr>zT-9#9a!jNG`to%zPNHvd#A)h2#5Q#D-n*&_-Xr7d zSC=0@-8An%`ykA0IdY~efQKKCY>$U_f|4i9!K3+ZL9|PJ^Prl9;6ng0XG5OFzQB3U1eIDVT^f1 zQ(GT3`U5>m5s?sjW)q%mopw=%(NFzEGEYS74-;56rd=>ugq{CK0by_;;ws*(>$+l0 zx%?OAEuLsUWUkNviYlTiAh25TtE=;y+wI5CcL0n?677_#0>O#tp>Q7->&Z*Eh=8$g z(MdIC${3@2JA^=BcxCiKNGXH{Q`N;dWT8cQM%IT^ql?|F9{>1&)Onb2;Gt#u#cN*7 z*haU}PiI?0i3o|`Z~=MWV?-niS;r3=YcG`LM!00se~2hv)kqegs#cF0s;(Xs0X$!a zF&4K<+M1Zhd93_hmT@N@-i*BvCR(qm&AN(m4)Dd!TRhb(1YyS^1oIwH6mS z=2j&r7$c!X4wjeiu$LIhUIiRSv?B0O7s$*KjP)9r6BUGrBB+RpB1x)xp}COEwmlNw zcfYIbVe|?bhq5^1fpF>^2zT9v)uZzNDP6>=n-Nq7q z%Jwsbl+Efvm+ZagJYGs|%8hQRgrJr39AUI5ot_dQ$v$e|;eTQxP_1j;tgFf~D5wCE zepyE9@k54A`8x-I(XuFs=z3MXy4-yDc)i{FAmE&{P9`(s;p4|gAIL{Q`a{8qiOER&&X2S|aMp~_^&8Ci#7NbcXei^Svp0}7ha)==W z07c};l&NxYxqkEd^51B^f@i7C#jgJ$IMF0f=f+$yH_-vH`NWDO;Rr_KG zVm?OWI0rgasVm;BxMmJsgaQ)gvHKTVfXWM~`hbzq{I2fr#o#Mf#gPp45`c*y!1)<} z{nhJ_fB6YS2?H@BP|1FMP~10T2+D~z6D^-Yrk?CUU^xww7KDW-VGTKQ>pKvbTy24*&r0cFG7rfQht;p2G-?AT~S{ z5k-YC3MiGejxK$Ann~=EOb<)v#Z?vKd($XrgkqPgHO6~-*M)r0(7dKuwsNkbP=L@O zUE>7qtJ{u(rOHUX*3oQY5kJ#=?<$LHAv9#hDu`DBA|hf!5(%J^^03I%mF`!2K(ZbZ zcWkWv0q4(-wo7hF3I+o}#$unGMzv9~Xc;-Ci}N$*ocErP?VZdHUVhW{MI@aSS7+y& z%gfEjPoJx*5>b@L9uaz|lc4h%##p{Pnl}LSQo|)TvM@W@<6i|3z=r^!hF5UbB&X7Q zb=s~y3z)CGxE-7cu}iUyAxLcb6U-wlSc*+yyu6vW$}#QTx)xANRr(6mA9d7wnL5&*Sae5!4$+K*4u997>nw(M=%&r=al z#zgmKo}&Van6zKpzd^*3f?CH!y6#iCI&@R*Q%`t?mBF^UI zTID9~3;f+fP4C36WjLh~FEujMk_1T>Qn9VZr`@6vXljMH-u=GxJi}Q9HW!@+TfEOd z*p?>SNu9~|QCm4ptM3pUIb%YjjGK`Gve*z=~0W0!m z)tOR_&KLrFV(b_pbCaB`y)aU_Pum$#t9ZT(VQhoN;U=f3&s)x}wDM37#>gDup<>O_@}aH@-FrYh?r%`_Wx zg}rq!`x6RCRV-`ghT|Y%B0*KGINoz_u@Mm|bqSe>Oy&>GGzC#ni2t8t-9*&>WHwetIc|~+ijh5U{DZ5n{dhd{)N7D zBF}h+@dOeOF#$5ctE=-UlkqT^<|hoSddR3=9x!7^N-3ee-eS}h9Tzg2^~{hVj8hsB z>`qqTuzHnIjtpd_&0rxAM3_l5;G!Btf(??T*R)PaNxgo^vj!w2!U%7%!3|LrP!%;T zSU?S;-uu`TP9?Q@aqN>=|NCsJj0L?P&NS|Gl>Xl z&>)y$P7D&f@%9R+N+4o33SU&{g3SpCM7#!7sOuGiu2_nyOrz52bPFi_gE^pU+ z5QQ;}Z54Jd_y$A>iHN-fP)0yv6Rtoa@;*oq??d7Er34U<9T0rLu_RqOo3hkllr+59 zh6YmwrUa2HYj&VGwpkHSG+5}W5}5F8vsMl8vP%6~qI66h~9pNE;l&AARaq;xm zp<-0L(D*bdi00g@{Mrts3ih(-eS2UZCeAd4Afi+i5d)!#O=Urm7^L^3sbH@3DNWw)-m-MdahYcdYYIi)daYit6MvZ>-}vBzCXf+n)VtF(s~8J!quJ^MS>Bu_q-Wh3 zj~5B%$U+F-H$HVNj*#4V0VSzo)64wk&eK4aJ){{Tuyz~{j{$%HFtdhGyXtIR)fK-$ z$&h|M>LvON=uRXN#5o#OC7{aDtE-E*Z$I8{11J!)s`}tn)e(`nf(=JsR5rOZi!52d%BeI^6HaL3mU<5MijVr#>7>|%$=&^~+oXmrghJ};- zA=ql<1&#kH#Fv1AA@Qa{fftXG8m<~nYgxpHln?@$^L=KCCCJ6a`uuFI64*KK<;D5h zz4I1hx{c4VJe7;TM%tqaA|e_#>-wuVm*4*Is{$}rs;a>!8*0%xPJ^w}hwGEv5l)rh zfG{!0;-D_q>OHr`r~zB;A(6WU!bn7sG;J9?u5Uvh^k`74(q4WqAw{~~cE}8{%_^`U z0qfa?ZZ#S~Wdv-#cV{3JJY9%EG>DB!tMN3s$}y#OI!0ZmDPYwo0qs1q?7VkTP$D*Z z!GuxPu8uc}1n)g)n|J2Hy+_D_9=jw}4(JseP$LUWIB4ZzhgG2bkBmeB%zAOYsp~3) z@DjOLy;{|bDj*7q1|?Jl4f32zQoY09L)_=ONj$n; z6nLI^$g`!#@i$mj5fd9))ZiJ+mSb7tdf-JKG(xegnb@O`YhpuoR-sbSPF1J?IJKWd zkt;EACgPCkuPkBZ@Z1JR2#Ar*iUbiKbl3RChoa6L6!q8I~i8(G5hP5-6n-&d=8M$|0hu zExjP0k!Dd|{A-}uZXpsuvY4uHwyD4Q>a}xZYADuzw3gg`^20#f?~J67wHB3+WS}oX{2#g%VAw zQ?$M?Mg~!8(U+Hz&!87=8fhBYZkwj@K{WUf(!I}g|>>@!k4-7*BnViaI+Qf~=X z_+{lBH2PQzMxFMqLS#6f44_K(e_JUg0+rROHju7!m2U#R@Co^s?m;rc1Q7?TK`Vw3 zROOqm->m9NLa-rWJClyN7aKl(Or%pcHPU9xv)wj#ciZi*@r_q7z%wqn%k?(^NY=f0YVT(TCMBdZuk6IKnmXe zeggv!uUS2Kz}>Y_Gd0}&pDIVe?<%eU00|r*0B+WLb$K4-_IB40C?Yq$fjZ;$Gb3C2 zWF6=CKiPp9@1&LDkJ{zR7RW3hQFET!;nV_-0TE&^<+Q?lsxhZJ3={{`03?JU0Yv9` z`npx!gyLONuh9GNlabwyozkj8Q3p`SSSgqUJ1FY7TN;iQ4oRs+1V$(A5fZ(1R&_%W z4WiC5B7|+jOpZ;2%@D4gfIwQ~E~e6!HVpPQsz?9;VmA?1GsLkK@{K6kz*#KMq=`sn z+W;Nm6Wtp+JWt(=8HaJGC6#jH4s-=D3ni&aT~({PW+pQ+0t!|Z`0e#5USzmm=l3oF zzIlE1>1K;NAaZ7WebW$ex8t2atAqCGuh%_QZ5JK=2>dGmRbDXEI4Y6c&5=;a@QHWPnwIkHlO&2Ch zc~N&OZu?wKQ4zI_d^9ZkA~TFdq3dYMKeRyxCd>eo^}60{Rz#Taj?jTyJp0#^OLHGy zXP6B176Atp-@Lhc`~Ktg=R4!TVaH9=bP1?2P4hmBfuk&}o!i$I-lbkB_E0NrxMPT> zZUsrly~|SH3>}*BFF6(&N&05@=jh<)f(g*hgdh>c?z;dYghmjNNDTPP4Z6xP6U9b5 zLcyR;6j>)nugzxQakc`AaXMYJPzjO{LJ;#Jz53x7sqW+UKBr<&q;!vlrzJg9Y?E6; zI6vFel><~&L1vXmM)u4b0Wa}Ek4n?@PWWC|jer&7t5;{AK5swYcvWx_FN3{u&;l#* z;1052y!8h4orY4@mQgoo*h(B{B1zBD0%5_yPdzNJM;4Q3*kU7iK2HRpr_)g(?8}rm==c>6uar%JTu4?KErcTW)I9@zCY2 z_<|p_s?ubvS^PkSLCNsv;=va~H?hX2tGYVdtSd+Pz^bOM+H)B?P&r&{rr`AOMQut_iod+nbxayX|hf+XazKp_p6ly$_r}FFoeX%m*Vu zKyha0d|~MYA}%UPm0I&9c}|;gW)(946d=U9a_46&LJH!U2#`!Xoe4EOyG5MjPaDA< zJyX{*oM;^_t;{#&f&@Smk+V(p`qkOCX?Bf>2vX$n8I>Jos+B|o0N&m;%t%eB zD#t|5F(Nug8cE}6`NYf+%M?QJUZyhpDRkmXf9;32VoDsKJ84lOkyE45aE?lZ&T(D2 z`0GfBXfSQm7o)7FFX}XoN#YzFI4kO^UTe_G(bcQ-^}2TKkSR5ZJF~&1==3m_e-s1M zK}NOXZ-e_aV}*rE+DujC=(BBo^~ajlepyxq(bNIEf6`zqCX`Gb671?p5N1Wr#3qT| z{KKXKw2SQ~QE0sGns9r2cYC+pZg*)OJ3sbCkk+2Qo_$lP+C5MH|0U%a4hqJYoK{3s zyOrzErg;=C`%(cYgo4e^n6e(Rgg~Gd=a*NP=OUhnkt5w3Q{+N_hPlP$yv0a_{*3a8 zQLg_fCc7n(4kF&|b`@8k^6Gqj_vZW$pMDBbF%y6QXz+pA0bmG$91V$sPGlwfv_-w4 z?i8*@lVQhMRa6ua9J6iSg0H(ToHyf8hXSq#O>XCAo=CuxX;MAxwi_a_X(~B7Dqb$o zhFG4X$=DHdx2YvDR24-CDhNPaR+gZIeP_I!;i)X54FW+##IslDq^>GvQcxyHoe~lS z#?FF-5KKu0KqF|782|`rx7$fkDJgHH)LVqd;;DUzJf>Hou+EK}eCt>!rvvJn{3a$+ z1tP7P*Q@$Inv1`^4lNBII&U$#MMRlN5eSfp&(6+Xzq)+?ac50$LNYcTX0|a;eUxJ` zW#4;R7rEEc!OlKWJ@91}qeekL^cBeGg?$(seq4!vbfuNBv{q1 zt{f&Ftu$y6En{Tfl;A^fX`oLdrdFq7$1kjDF+i87+ZQoGK`*12W`6B_5|9!6hTw@- z5(HFNXKuZ6jtNA7UdFk3Df1S?gVgKSEuFWRKEK2)UW5bz&Nizzudi-yez|LMnTPUn zi3mQ7U0fhL)7GF{+Uv2fs1xNpVkx=Di1+-r(@9Wv3+?{A!yypt{rm|sXs{){+f-uw7<@x)wkGJoxMS&bC zAfOVS__>Y_aP2*QR=GBBG0@k9Qfc+j1sU)c999!Bjw1nisuI&ZeFoyGA28@imVLNS zOv0oGVd})Yh@fDEvP6k35mgbI5Pa}NSUIM~JO@`*MMNL zCJlRWR;7HonI|_BtEvd*xDJ7dMU)ZGHmkGEiU~o5xq7xT-7k0E;-RgE5s#87x}%3zyEa8?7WJYGK>XuDo=?5$_(0|QjU_Q76P6=PTqe_3YdwR^k@>?XPb6BPSSjU zlb*fK%nS&K5;W83IOlTPJgJ0427K|Nsy5m^SvPx8lB-MV zQDtthXmBq=kMk+*YWqf>2nnv@^Rsp37(gZHvu$B~F`nY&`%*-_h>^{S2on>->#K{a zi|hCAKb4(ls|cMcQl3IvP94kG9zz@3CIeXln)67PNAzg^B8IJ9O^X*4dOj^1*su(x z3wj&c#oi8c8Phv5{&pf%P$IIiQ_(<7D$x{J^+^Oi-`w48o2sg+s;Vo8X+#4+08mte z4>s%#Iw^zmrADH5Uy~U|$q1VNkqOBXR%4Mgfeb_tAcW0&wW=K=Xiy*w5?+d{ctP_P zJ^w$2j?g2~ECMR7sw4XWp#;BPuim`A+}_>Y-iaEhBt=~hbT)>W{xFCuR4~P8p@tUZ z(JBUQFbiM+fdrL#F}?4M34ToadhL#E=bUVcrmSCpO_x5)r53jeLJN8(B1A$L=ZJGm zY@-z-jWsG7j)HE2;9}N8CuXc`S2-p? zCDOS6UV`U*$rXd4W4MnUw=9yG0W^4Eq@aobSCZi+i06-GqF zblt6_sx}ms0CmJfNbc+`;;DSNySqVz^?J2luN;FasHhPi_z;K`lQLlXI)N|c)oW3g zi|od^#6CY(Ebh5^57U7h5UOe-366u`A|jxSx~l7{a<=vr_x~y1ZoRmxo@zk*wmR zHOyEML2A{u3Q5{hN)-CP+mV+gMgYFs-4QzicB^V7XEvk3K8T4qsG0dCgy>(}S+ zK7LdMK#rUESc5pq4>;;qlH^XCUi4}d*c~7pEji+2*h8TRcsVH)iT70;d z^kjy6JRTj(4`BKqmwfLC=r)!vTTR83HpZA^C<+k65d|P*ipp;!>_rICRh0q;FRDtF zR> zh__c~<{?}KPCE=iy|~<5UYx!Ec&lps_A<{1y|*@199JAFZREkI0l2=CXm@_-B3bqD z>im6Hb+n)KDH=J?M4Zc-dzdm!-{y)~l6@A^|x< z!Lainz|66NY7{k8unz#0>{8JNNtA7I3dTbP3Mw(h5fMVlmK{2%R!Az6Sh`!xdJ-0% zq%N8!$y-4TArN7&)wlP^54KHP32-|sE;T%pveGkbrA!ejPhIMvx6rz9?PQuV&?N8VCDwzYf^9I_ zLszqkG=vd16$AhfG>AZiJdmo!JOLA0&kQ}I4~@-pkjC1P73R>W6EqR{8Ht}l(jkYe zS6`;)s)|5%b#@quF+(k^sSk)MDj+bJ!XB>de0|t@Li>6c1OmX36atBCHVI75Rt4&c zSLwyhF>W1Mitzl%0BGWBXDkfe&?2EyLEM(D3DNNhGRme@lyCIddB3 z(HSk&QtWa?1pq<_wh4*IRj#V5o$e%fA{TiPEDulfNsVu?a20?Nm&J}iQi;l1?#8!o zn;a7!Ctsnoq*an$vD)9SI+#yk1;waO8(DRc2*jt76e(!WB@f%8lTZR(0IQ9~v$U)c ztCsZ5>bkzVxG0_zn)_p>XLwFt%DlyB*!5KD1povQB2*3Qy8imBtGm0OcU}dQ4qyLa zKW3l6MtnaLwV$xS)(;U`ix%9@t{zM!(&?n4<|_G<@AfAzi_Jf#VY}|0ciQIrvHzLmvi6}%B zCM$qhARj-_5v0Zgs(C+9RS+pXar7dp!AEt}>~&1)tQCNPqTU6#ya%~x4#VDJ8HU{t zGy7nNF#dj3xwFm6H#;IEVo)kc0{!vHwDvpsEELoyq$@|b|evhNVY9JJ$lVkD7BO39eCCcwvqw7Tg zkDObyk3&oFs#w+1at@-%5rBw9j0j?C(;0STQM-zBm1+ngNXW>m)yhmX1XNT+ij&M4 z3Y3aMu_}OZ+8L3JDKT*-C=mg4DG5|T#de5S4{1milIuf2j+ssT3RX6sQLQL?Ku7_~706BU1Pes*=SQSr=_ zKbFSBKPN*Sd7Z&4UO!h<#33&-R%H~z!Bd5{oh^v>z{uhT%&rR9QBh) zP!JQsxV&1Xl_@A0`nhnY#jU{1NGPBhf@XOl>wl!!F!ju6s-QQJ^Xw?@b*@v}Lc-`u zOjOS#A_F6>DF7%l8R-xbl@t_@rjBqDi@$drv>*!32QSmdCNR?A_b1l*zzf#m_po<- zf)B`KeA6&H z#I>7z5M7NLW>-0Pv%6W<>)=%dR<%1jTREm@NUrhH+l=>>wK(-lM3_iaCHT6o5b@2M z@bS}+jR)IN2w?JLsu+UMfp=OO+$?)(1fpp-#)EIik_fe*5FcFAyQeWtphiuxb*E*b zWqrKoYo>Sz?q7t_@ruxtUwO9uk3*~|#^JlP_)%#Qq6$53Rz$V)j}+6sm@tT997ZYB@KUu(Rmrh+N|M7! zEfydLqg_YPJP(o}f>f?><#@eWtydLd?%6yCJNtagO^15BXXWzI_7fk6hS4A+1kXrmSg~CYu3UU; zYWAc(9o$T&XDck}R~zriv_t?l>-A=}Vnh`sa;o8}jVydI9P}`ly6FA&@#DT^6D7)E zXgFWj-+X;_eYb0xAPUS*B$h#$84jF37&J4q1d9&>8kCWd(i0Zw7sTB--X!RFCPG8e zm}GSNM?QHVGja|3u*@;tg8T6q|KS{8-3kr18E}Vgl9KRVOR|*b-4pODLu>12Tz?wlPqYKHb-l7y{EbZd*+u=@_;AywYM8ayBf z1T@PfWga;q%83+&(W!)0RiAC@Rn6vto}B;VrF)8TV$MO@_k{I<7`*{flmfyf8gYt}yDPpK(2^vkh!y(k8Sa(ch(%L&}CnGM6}DNYU|wsUQjrprWXt zqDrcu?5L`phy*Xzj>dv{@S#iA3kq3+bq(Oi%h&&a?+82;iJQ_6i-U*zDDl>yBA^E1+tk2%OzP!7;`{;LZ z=pP_Rh>~{)eLg}$I$;~ww05>Fjur`UC*)tahWDJe$WhqjcNK;#rAi7`B8YR24{%gO zbrc+Y{|?RbJ1i6Nf)2VA5ptS{yuZ$oHNDaufKY=Uattrb^`R?63)B($KbsyFYDkPn$tG$>R2DpQ*Kby_Q}jpVShQViF+aSvt3!)N!QJ$woB1hpTz!S=#i9bXDBA5!9^&tDa%^Os1_|v zOYx6(fFEQN>%d5>x~l6c0*x`FcOPBQalw;#{+YzoIOS9@`{eGedks};c` zfQrbbj$GP~UIS*&aa!OP=b?}b7iynL)q~!@k1P+5*dcqqQTIch4t=-}xyNwgkInd{ zn^gnGbrMP{wAoGH!fKXCbSl|)g*~@FwLX+O>*Sb-tbp@C(eo3Dy!2nrNS_K4#DrV~ z0u_wN_vkpz)~k#2Ga`gY#)2yHI6Md1idDTlKQXij-KnmAfH`3Qe)^l$cIh?8<_daw zadvZi_u9iO(i(ITKFwqWNBrsx_CWJr|;?Gn`#hGdIISm*VO1>l6`F#*j{YoPdjj zu5#Xc649Up7+`z=Q1AELpSD6CePrg@Bw`{)q;5i^Oz|u;(q>(+S5@U$#F)%c@lhBk z2i~HWb-k1t)My~ttI-c*ibr!5I`OBV>Fy*MjL3{vm**E38$<|R5F8E8t>@LD;l>x!vBVx?l@Y9$YF074P89tyH;TW4 z;v9#H#RmxiCTPu`b5^m`VO(9D-Q3zwj+K0VA@qM-)CBxl%;pB{7=`(S4Iy~)W--EE@%geLZSLaQ09r^bQE~(511>^Mc z88Q#$yxs}jWRD{EfCGtosE_XruA6j6!suwCa?_Jo-iNM4Jz9){nPwYXsufDFTome2 zHV!O(XAYo4>!NTxJDwul&e^z z3L${>tG7o#muKZ>RF&2%e*Nm=o3G!zesy`aSv$vN$H^|(F;|XPtI8;I>O{_tJ}Nn^{1Qb>+9OBw!2$) z^=%W7(4kzNZxqxAUp%HXri6q#vDOwjN>LGPMRG@kbev-i(wjU`>=YA`$jagXP$WUn znUG32_dd`F`V)_YJ>K9BWm86u4Ib5@b;)cgMjF4vdeq*s^;CstJQD`%5VlZ_!wo~% z$sqy&A%@@sGyuRvj^(S@o15G9`;T{y84(49fGo)HzCkwB6B!sW&fGde#E@#%C9Ib2 zjV1z!{I-X>fvAoEhf&21|0^MK1n_62P$Xo@IQMSu{FsFcEq3CxH|mD)k+>aZlHeX{ zLk5FyB4Qt;Vo+?t*rjNH%Qz@ocd6|s6#KB?k{Mi#r5gRhuPlXAVi-v=UNA@_h9 zSzwcOL*sHrg7v2Uyt_jH4T=y&nXsEz&ZG|e1Sp?4;cx&LL=e$AK0jMmRds%`dH>;B zgc`pkMThw2^{dTlg@|G(=@x|+@ofP{D)Iop(mHZeyG^8|9*gNkGb8{I#MEXqv-&H7 zs&eiYs@mkC1P_p8Lt5e3JmwbPFQ9owN<<w-q=!y}(vc^QNnw1x@95&jY3n2>`J7z;i19W}i?%*)wPC>x z>c}RVzDQy&dR?WqwqT?QGyOXo1qOyeDhKF&p0!Kmm4^jwWJvJDh)9ql^h19(+&gxGLcR1 ziNQ)b%qaOdF#0`t(Q@bI-p_n3@*qUuvNw0l(c)-vVM#aVb^sVcs8`k5roKF1z5URD z1nuZblI3%hG7Bp}v2lLv*UxyYFdUDW4V>Z|)+E4SN;HVHx90w6Nd}fK>Hxh81q93T z$IJR%yU)(PpdFveJ^z|~GfESfHg zccceiVr$}vIg?HF)Aa*7bCml390fL-I` z9KUf!s+cqIK4e4O0|==|u0Caz4Q3ZznnXzkdovqSyE~wP0DdIqJ|?ivQf?YEX@o9A zNe_lNwc)aQXiwHc?@eq8of+(LhcVSJ*;_5$YoLipM2Qf9K?PJc>-u-!e06>E^KI}V zN<@l^+Ad~WfHp1xJ;C`ojV2Q9H&Qq|u{`!>P0a9}-zAuze14p2*?}YiWn4UQk?kYS zHDZhh&sfJ}IG7+4WG=_6jnG25=!Ei=uZ$=X)==& z^#dUR=&GW!2u=}72LhZTvy{mo5@HjYRM|oRO&?E^MhAPg&vgWyTBar>H+;j63jtIKQe8@~;J zl;X~kNYQAhTj}XG$#~L&e)$xJ?)=z`K_>EP){FpE1s;7CZ{*n(E!cxW924}~Efow# z%DYyyGdC*GB6C9xp;7&TA`?z;PCO|6&5R=oIy_U$Bgf%@)JV128Z*#(3q=qGVyY_F zG+skYtq5D;uNRzQU}`Z0QMC*JOxKWiyIsxXm_iUFrY;^i;VNy?hAg76%C&?TP~S<@ zItBnkR;y|gpiD0c;8-A{sDh#ze+E2r4hnkV?2tfqy+l4DF@V#qHT5w-MM7#MfOhcP z1#)8~z9^Ls6bj|rUcgw8J&YS5BIwRu%n(A%yh>p1lJk@(wTsRN9@A=@x;qgu&>9ws z$FAb9-dx?@-tHQSb0?z3(}}GMEx zxQy@^Nby_@Y#Yo6WF$E>o>T)#)qg-DQUv0>V^hmpW0#_Hf-vfV5+3X=Ac=Z+e+T!L zmG(vqFfmly=k*cI$g!vj6M}P&fK+uSjjc*Y^8Ljs`J_@$Z1>wCkr2SS3RO3o73{pp ze~b7G5i1`hA~JGu#w6#vgq0OcL_#o?Dg;DiYBRMg$tj|$2+`SuSRVvMqK|Sntal-z z_o2^cNkl{pVz~@PuKf6hx=?fDR&-%lDUx)5TBI+UPYO=gc6u$1MAMyk4svLg?c;(d zrWf*HmkTyW`eP0z-x0v6DIY9yB*dVqSq4(QNO=9~@|R!V(e)0IGWQI`(gY(S6NPlm zhy)toSkTA>gyFtbzLLviDHwMc4Rkhx;q;!C;-z;l2b5*HO^T_&D5*qPgNpMUp2n`E z(c^bVC@6ZG{M!fj{wZarxuSKtMb`Q36APqQhJ}fOA`+X8p&3$~=Qf(Rz+sqkjwMA- z6EutzNZq#CU2M)2A)q*P5!{kg8E0#k?n#$%11h09zO57^4s)6lFCP!7}RD{T-Fi=IokPqgb zr$;Vuv1vOdYKuz6k(;@jP^QWJUMAYvKZ;XkC9kvH9TQ2ATn*8Y$oav%2z6u%wbQ_8 zE6ZIYt+_YGM5%aGR27H-P(Yv^&W8kpYH4LHa>R1OL&8T!>)Dym#8j^838xk%*|}RB zN!E3w1~oV2l$BbtB1`67Pd-5)sx!rEsxe-4;UzA54|TN*5}KVC^~_8_S?No)(C>Rm zJq+wX0J4;S;$d~Uv`{C#2PT=xwV|oPnK3R=EY#H zAdx;LqY2Td<-6{TUzRBs0ouV~L`Fiy$m5u@AM;Pq5~)zJn9OMSlaTxn#(X=mWoUp{ z1WX0-G*2SMh`!=OF+1SF&DlPV*m8(?s z&70S^+n)oVh%&N>ILAm4SZP)$eXlN$@=jWyp_#hY{z$Nu?U~=MeO;_aV<{*KV!Ef? zG+Ma=lmv#%;ZX_`(-2&dwZ~nJd4GZ=%Lu6@-igq4q@p!bg4!#sYLObvNnpUq70SMZy_!sc<&QQX0Wot zXu(kmnA*(eOc6o1C7?dg&FmTBSgxw7Sro+b8M`D=utyv~5lN&iPc=<5NPq*-#$!(GLV!YV5|YX( zo8Yd^u0SpmC;)fPL$-i~h3ZiuiX)1kU%$D0_x{7@+eQJ&Im8fsY1{^>-3{|KpT}S{ zvTVaLh8a4q`3d~-!J6(S=}i%z=E@HR9}ll{#7cMIBsn7`!nXO*X5tZQUYG@h0%QoS zVd;xp(dlex&uUM}pX{kI&NumRkD<#eV3`L1vSSr(8hyEai+&HI?IE|qhYA8nQQEt9 z)CgK7smt|XE3Y|m$qhpD51bwi5hHZEI593$Fd4*LEVG}hZbc=-RkY3V zQ&-kXE-HC05(;t-iRjl%D%$Jrs^k%UQ3PcqCOto2y}CNPy?bva$5pI}Ql@2N+*8xn zM{pG}gakauRSf@eJkaUpD>GsVN4)Y-7VP+|H?KZ?y4~(1_=am2WSpS) z{+s8X-XhyIBwYS=dxt1{8OEc1_FtU61ExvgpmQ2nAoxR{!7R(x>SfU;uEXMh^*Hu z0$i`Ek2l+b5(*bS5`_^7#;GiR`F85h`pur(u49<=Pk9)dsKgYt%0IDS0i-HA(S0KX zM5DXVT=P{0>7s7Rl2j-Dv-wd#j=a}4`ajj{Dkp-Iu;O)F7$Zt|2BP5VW_pfb3I7VD8xuW%0djGQ#y$KYumEMOHsq-<<=dT%ZCp{>_N7=eH=5E2k!RaeqTvE|eD08Ag1RJ8g&veOwbCWHf2Ba#ZSt#9c%PjO3zkBXlevuC4_7wB>l9n$XdS zMei|mv^0qh!qm;6#y zmv;>nJt8*cVIP=@30JEcz~BemOCav!35MiLQ;&Ag;R#JW5o#g3qYs!AdsEIAbrQ6zNNGa?EV8S>95YC`~tF?#NuMq|W? z1`bInis6?~f&fCEhtmX;B||*6g|b+Sa8%hU1rdbk?V#JU>E%=k6luRqmRkh~8x{0H zMZFIKDxj{agBQY1{V-QCXxR+P{Yw_Z%yL+;o`K`Ve2hsY{H%n#Oy;nW>wobY&J_9 zE1Z~%OP2G+d~M8wH?iviOCMy#E{70YrBMa5u`HdfUROKArL((W-xAW56} zA*fc>cDoB9FgYeC5)_1)^_e9eqesjN2@VlNVlD{)cHj|!nb^pm7&s6k3Q_1q#O3I6 z_bB2MPqaR9;#Q_RL@x$?Eu*TjV=gvJOPPXkf>a_PN)R!2)+jWBMC5(QfNEUa4&=0q+atODjufZQOxcnfbjKVIu7vDZ7)lM9@x2`fZ+Rct#;ItpDdST2u^xQ1iR6)q8sw=29 z^7Mcr5Tl4xt|s3wl1C*X+wr4(tNQY(wMJvxV@8NO{0A@0+YL93V;*0J_Atb*sO1#9 zCY1it=vqcg4HGQc_tMT>_Gph$F*w~X%D#j3VrYl}%oq(kdMkr^QZUJLX@1~+tk z3brDKCJ>W8lO*zan7k+xQR?L!x$XO=f3kma-z|F2>eB>GP6?vTb3#Uh7fDFF^yWGP zG!W?f0b(M@7^0uf+VwA`=dG$Pv0=o6nzW=92*~z3C=+liMhHu&yWnN&N%bS{X`K7= zRPMz&$h~)0a2sI8+A4r=dd60jkv5oV=a++EGcX5i{TD!p7ov!63my9 z=F^Tt_5&fRjjQ247KoY6)A?RP=)vuv#Wm%9+Zn6U0@xFexLC2IsvHq1NC|#{G{|}A zTvQhPm=_8=q0hKaZaOw^F%~(2ahMNipm030$#0{vk76dNSa<$~8VXmEt{9I}?${8a zC9McrMb@Kom8qQN88#KaM8(ae5!MU6cY;>%qve!HiVh>8V#M!*s0In%2OozMk;rHV zAq$rDtfdqYsQou7Y7q(BsVDXsXvCriJfL~N#e9e`=#w1@32XNib@;4G?&y-R)d+st zH(++mA^NSD^+oRIBy`#Op>RL`l6%gb%uGr?M7g`$x4>L^D)y=lGw;zHb;j`kfEUli z%p6$62T;PcAO3s|TG8S~mlKP^+$#|Ygu03hz09<(YocA*`RuvqFVa0M!MQ*0>p$jx z%V9%knZL(E^%zltsD>bo4~aMcN&yUO*C)b}tUiYQN2vA1J+Fh~z|xq({)Mi91GYBFg$`385WC}ebLpLdNauM8y|K59IQt6-{uS25S;^$ha)6k1%YX+k?9#syT85OU=ECj{wG zyC<>aV+{R_l|P|5JMFwhnWA;M@;Zx7NfJl*?WmH0qU`0wMv+G1Y74=QAmXK%2$xY6 znj~rwP(doHQ5jiDAPBuW->CSEK+hy{$63ZK0rBFT$9zQa;*rFeJ0$7SroW;{AZ%p@ zL^X(n0HP2CgCRJXK!E^7(ORa4+ayFs>`C$wqPFA|+u*&S-w_Xu?fDdi;d#!E1bZqP z*%WFA`5o!urUR=arG;bs$BT3lvm~uX6@YG7N?sghhmGTT>cSuU@DI} zVQhU8Sz<1!0w%6=$u-A(LXBGpopVN?Q+S}v(D;PRoCVVopsD~N6PbX5>!BSf`9Q}U zx#R$eh)G@Ah@F&Be>44G)N8bSp9X_LM7bi=lQ&Pq*McZDScKL5Ls6{tRNkT_E0v@(WLI@$Kk8&NDDFYMIK@0Up5((|b zL+xAYX+sZbf)AjpPN54bDZNGrcEX^}+jPNm#|~xb(KbR`zZ*rXkJwZu4jOzgeszpB zgNhK4smxJCMcVdI{N6sTa&hY66vU1XT^)TspBV{PXrFxV#Ftuhl}HenofB0N!;r0d$V1_{ z6RaI_;#Bv=-sqC{m7K=&9kpTxK%Vx>LPk&^b5xZ$&c}30yU9I&VG z`kP~Tw)Z<3<7Y-vLPP;k)gU4QBC%=Fi>FFCKMN*?oNMWw3Cq63#^T_tYKJHI=u%bb zcWEpbEN`cX!H z04M|kywA>WeNUJA;^>mY6f5w_P0Bq#Fk+6ezu`x!ofCg8jzF8?iV7k!vjznaum>3N z36C-UJ-I9d*2E@ehzB8te=b#6yYLuLM3fMqm|Ll8z~al(@@%Je4QdZ#Kj=1%MY0dn3T0gxOKfHVX<-@H0o)s8-W z-XbxPodl!m4U+(j7cy^gl4;&&d0!*7EYl%Pe3PiA_a~~LE`i@f1ptG958%CISJ7P} zz(NqPE0sZQ6-9yAIYkLugve*7U6#835Zr(&6_@o9q(32tBX&a*mlU=naV3ibAbPtO zyEg133S-fd5>O_;Dj6e0#eNJT*g_Fi6X*st&leb*EZeFC3DAn&p{uw}K~hVJlFxPn zW6d!>6>Pb|I!%lDn6Dfi@BK@fQO9n*5nznle0lwIFHlvFvLS`RT{L@($>~ZQWzj6P zEF!INw^6D{mDY&8KB2^(lYUnh>?s>Fb+bGYK0ZQ(#iy3=`4#!AOc8aqI8tidDHTkY=)w- zKXKyoXt7V3ero8dAGG41MoDN&gbMD_co=Hu-6x+|TA*L{iz5`7$GXE|wQ4|(C5Xrs zhbAD|nCywqf@YIlI1kA>l8HLNa*NWpb-68!tu_tWYm(@yY|ADEW+n%S&M^~W$;{Oy z>iX^V+`I*1KiDrficMx_JE#C6sv;(65v0RvFpN0n#<+-wvBFSM>Nt^!hj1H|DhZv+ zouZXAgb)xy>MBnatjoDq7y#;tPz6jMBMTyl=~AR%(m7|$vN_P}Ga(Kb_ZFJP{ zU`!AF1RppOVxQWE9Cvx+*6iNIW&M3Jc5Tiv0*IHySc6BvuW_z4hk)FBL+Xbmigm(a zm%7I)?RpuyxgqBqbXqhZs*X7)9!N%*r6=*jztx}~BC*(eqA(GW=VpU}W`jrwQfwV8 znd!=+^GuDROG8=e59TiEGlFRMQVl{9l~(vXnGxw0p-T1IPF$A$3w4Dob7G#cWRL(< zmQrMxY@bP~ZCpda6N+{|zh?a>dO!q>Ln=d)J!+4Sc*Nm)b-v8yf=wzrWsECB* zh$Iy!4_{K9F>Xd<94XXNiL4OiO}#pmS<*?@JNXC(y``SEnyMmNWfe2O?-!F?eA(Wj z3~)q>s3%J`0Qevxx@){8p}7*J29nTze!XDPuxAmlqg2{KPd!-)TRUBGEU&pOLQnNe zJK}3Z#0h_!Sh9m|0mwRKk8P`&TL_MPT9-sE(FGz&pmfdRwLI|Z>MeUW;x~Hf!(`T&D z1Q1ji(FXwp70EpbA_}UE1U9K%bSYY!VnwP{UY?H1TO92YZ?SxlhqaV3HFrJ8GmSRA zdOqXHbBk7IyAV~q2PMqlkxjGW8zBM_a^+;(^wRWs6|cRwPszLo5iIc(U?UXq0b^90 zM`#DB~N?;Kdv*R*-x^I5OGvpjtpLi3SE+EOl(cvV6@-hv6~O70uYRFF0t%zd=WFV zBV-0b0Ts|7AnY8x?^$!#+9l><85YGGLl_=>_avn?#N*Ff)Fu?H)@cq$?BX_)lFU5eKWHa zD+n=2Afy*zKu7Ie0t&s%8dSFgtetVWIIu4vU{+PMkxU6ltO_F9c;EOCRH)+2-BDC1 zA%w8t%4uj*axpYRxlaW)pAGN~nA9E5`RCfJ%uU8dLnp z>@bm$=PPU{Zy*oWj3^#4k%NIKcTW|g{Dr!%nF#H zq&RjrvB1Qqyrfr;a_neg8c0>oHtU)lg5LkZ|Mq$yZ&5xP5rKZG)PhZInr64#HQwh0 z0tFw(Oh4_0Su(*eZ0F8<3xlf0{O;fXPyfT;eSNWB zJ5jl78dt6F?(TvFW?I!NCiG1cLTJkrI2k^dwT|Otl6%gEU_5r1AF{*a^r7x?ou~B{ zlu0jD)i6apdGhg{*_Eobq5{DYQcu<1`k9c>$fSIO_$GWbGia}P}RH(nr=RGTL(VlIQa{9r_FRDgVET6eRQYXo@5w#Jf~W^Tf&>u} z4Iu;K{R?w|hQ)z`1jzW?dNfBoZMZtu3C@$6QJ=$oBLsH;kJ2ujp@ zTF>tLms0y2p=i)Y1U32Oq@x zUqQwCsEjD-Jh#n^F#?ciM%F`bF}E5?13YWnS-lug0aR2$ z)j7w+=ArLyZ>}ycZ*F$q{`3w&|F?hl>h<~gzx%g;|N8a$zyA5VZ@>R>*W6OILMBIu zL>fX4;|`7bmz)Kgs2b{W4_P9X69qmR+to4q;dEay-_aScbB<84*@_m?l~{Ie*i-;7 zDxiy=xJEWOOgj((<4|M~aM0pKmgKhL2eb|&(eUc9$V)`!Kt@ihBhmlEx4C|MEeU&Y zf-hFu8kDh=qXH0HA;be*z>T+-|q*T(Wbi4x;z6oBg@Di5^%FBzXcGnqiutM$mi0Smge`XEc)Nj*cI8 zF@3dT7%wXoT}H_y48|93pFl_nNzq~Snn{kCi5OMYhd`Pgh5>3pO<lJltCnNbmod z--(bkx7)Xt7C*LF*{YLP@)QN{gZCl23XL+5T^gi=0QH1pui4cu*=5Mo9#oWwlZ?zm z^}r@CFUrm;CRmKEf97-={^D?euI$PXp{Ru5?dPhllBq=^5(%ohsw-qvRc3A!DTSw;d1<@=K!u19T?ior_1^p7 zEu*zm)TX!}fp&g|PPGT6M|iTq$+F9`&`OR5p*GEJIfS{JUVxbZ@aR+7!G?-$IMxSw ze|_`aPj8#u_Vv{zF{*@r`#=8f^_#PQ{qtXcdi!35eGoupGIYL*0I5U5OebsySwum@ z)J@QYO?`+m*9r5669#$5u-bqkQY&^M#|#fm(X=4Wpv5qPsvR~>W6Him;@b>RVkTy4 z^?+f24N6(#2hzHIfvgX?zf|#>7x8?_o=1T{?{xV%w6B#UMjOn4Uwrjgdzc$e>2#R-nGz?%tI9kC5RWJtP_yo-$%%g-v>fsU&ECv+CS1kG~4Tngg0!|fxin&o~8u;Pu zJ0SR{zx(EFy^5GC)qnWi>#C;nb^ZRs?a%K%Ztr%YvbIh*u+be-Y*4`=lioPG4yP*n zJllDT(M9N9e|{TAGo3i)a}uYp58rz48=*83=bQsk@4bi+vS_f)Mii@{#EGA(bxt-1 zp(-=Y?bxztY06S3Z`g~nH#>;hoFR|mib!t&F#o=QGNEGvP}6E<_>D;Fab3k^e~AnU z<-LShW~I_YWRAblsmw|AQQuPt>A6r#VXY{E z$$8@M-o2CH|Hps$-TB$t2SKj3cXzMOH&^GI51(!~XZ3eKy}kZ?CnB*%0m{U3FrWiR z$1G0ffB~OU>EuY0U9#$BbVF=X17@-?1lZ3JQl@c73KSAZ5Q9#TBk-Lx-RcKyeXTV8 zSBTl98=*aQKdaGc9NI`^Q^iDWnN+#-P%&$SMKzcSkEh}Zz&RJ&cBuMW2jl6_f%u@_ zhaj5S2088Q57+FM!B6&Enws}Iz`ht>FF%nwL6A>Ycf*4#& zb+_B`s#c{BH``x6Tq9!ToT36k@BsiW&g*~oZ~oz%*O%Y^@XL=szw-fo2%t81$%2d^ zi*Ka-;la8E_wyO2owu0lUL3G1aLU~-&%F+a4-)|0SZvXU7VyeM%w?EDMZ#VxlTV(t zmS5Rs?8r)SGNulT1S%=R$a)z7DB_7}%3%br7>5!?6%gpRN$=+nH+k=OP2`@9qc(|* z+K>-rVe09gS0r+P!*x`IqnB-re2pb~_&=;uUp? zSlps2{L$yS97PtD6Bec(2f@|l=1SPP{;%tOzIxzCM{GI*N{7gnm>EP3I^~=Lf}&p? z0|i3TR?tX$Q&0nc5t~>ox=$l%h}Gq~^wlZDFoG*b4pc>gtDFx5o04dNka)dbt*g%; z8!>&!rr9yOXL6(;-Qt|I+%y%PwMaHp36?8bSv-W$_z;4M0wNMq8l;wDdalEUHWTzs zcggZBg&0U9Swl00(i`l`wz50Us+q`4!CG{vD56qeh4F-&M5n^-Y|aXD#u5=wE?xNs zo2Y;UlZ}-q04CR~{()LL9$Zyt7Iz}Dae72SG8CiKi~ynn#1*J0f(K!A+a`SX<1dZh z{=@ISs*oT_j5h%k^y0j}JYRkF>f-yq{_^c#f03=%)ILE(37*LjatIOctDsHOtX8Yc zXq&`u;tvy*!@j)e=z;1cyNl)cKta5^Kv!5L^>}SNB7nE)rP$gK zBm@OUYODW!e^#yo7S*khrcsXSdTSvngp?<@jX#$ix@sk2oJ?q`01;UatGL(PK$^W@ z5sF9+)ZC&I!0y0iah-{LkO)(2PBR=ZQD_xn*3?|9pHz5`n#_h@kGQ(jOaaxsv@lG>Yx7c zcNZ6{zyA34=U+cH0huax6v#;s1*lif`)1eNAyM`g<;3s2K^Z!UnYp~D)wk%mm+m~{ zBXvX`pw8~!-vt(|#u$Cc4kB`nQg zt`$Hsp$Lbbs2DX*1XTFBmi5{Yw1`Hp(g&pWe$In@y%=+<97jmV3^t;R5EMS% z?ryfh5x%~afG1};{p}T>BBFLx z;B)-zO)pQ>cubkOR}jdQ8w={EORj~+PK}P*%27SkZsru>-@|I zhzb!oN0xDr3Og5eJC!*5jRJ~!qfR|0EsA5~9Aa&rJ-z-ep4$RK(2;8$i3Ol`RqdQH ztW9yg|MogTSRn#M8N^~xRcO37K$IOWN|UHTmAZxCA==?o5}Re+rdNi_EX`xCg4?}R z1cDE}gLDuB4Xb|xVo@pQE%F?-&08q+v9novGX|ehXyT-f>5!SOcRfJ@At{ikfFdyg zh^jQ=et!FrM1S}7o2ufw?N%k!&ViyRibx2da`gJurmpza<@&py-hcRbeRsDduIsuo z@Ejr<+f}bLaopl}mMckB2MPClOeZt7ed4JHuWG`A!Pvt;SwsYkkckNi6qFn@C^i^E zAXH>$Ji~jJqy=`jDi<_!QifrWs=5^7;fQY-(+GBnPf9tgYr+p8?UmP{`}q-jFqC5WPd=LYe9g1*E*Fd=DhpTuI`;4a|zE3+XP4(~~Je(mw0_QmCWPt5ABy`R>8}+wAp4l55veHI%CJ^Jz zP3q+exJTW7g0CEl_qC&{cCr;h^4bv4)Hyu*3_ml&eL4#@DE>->vn9SW0MOLV zLJA=?A$V`IS=s*f=N?o80BBTxx3IKDyDhvIt8sVB{hf?+l-zr4-eON!N9>x$QezC_ z$(TF)+-V&x<++4ldc1k6g;O>jh9On(f&|9uVVEcZ4MzLi6<>m47Scv5f_Ok>c7~^d zF@!WT=U*QPY%l0AXSX08oUT0f@00| z_usrZ-<mJ}lrli0-}KxWq=Mjdz#O=zL?6!cIZ zaP+*zup~A4w}ZV%#11K_h!DFVvE$R)TtEdC(EmSsSK8giv174RcaxM9+b7AJH}hrA znfd>JYnH^3wJ+=fFdtA=tX{Z?B9%B}ofAj4X{y;>RRAt7?nRqr`r+7*wj!!p#g{7t zM>BOKsOmW*0JLp`giM6wg+KzLMFkLu5s6G=y{D&SdIEIqDXg^jvsMrl&D=62MaZ*R zW~wj}zp4UUM~;;~WSH_nUp=12Fu#JD>+7D>Jo4{|Fxl)bfg;hi8LiwL>Sh+D7gcX@ zpF9`amMfKCMWmE0=PI7gEEBNp{YQ>_V}co30hBC@an8n`$=1^H9c`CwAE`j@2l4zD zRY6m=*S^1dd?vzQzWgL2pg!)A46^dpMK5Xq@#>;u`sLH*#cyA4u5a$2pL=3PCNU*5 zra;h`nSv3asQ{yxsR1F30^5BW2tA3Qz-;so|7w9m2@lwYX?7 zlSuNhs5g|qSt|Wa=Z(awUd8Nq&Fpy|{Cm%arZT+4i$KahpljQylx?sC~K zI=;GC{C0hRcmMR-_soHaP0dg}6_pshoT}5zGYOF$(LwohGQ7#3AE9l&@8gfjBS|bO z@aX5(2Qo35VF=v!F{?D`MiL^KwQNMo>s?^xR^M-4mH|KsX;hvk?T1`I`9@O}bRk2q zu4xucla8$)%-Z*@OUx<81`<(o>Ddx35Ybt)qdvrG_wYm>gU(b0eB^@J-3%<#OKy3e z=Phy+!CVv$!{=20*{x2CI7fa5JMh9Xg1n7K50*PsY9Ihn>}ehU=lAO`pRcY~O9Im< z6ao=NQM5FxB`T)Iq=XCrpMSbsEf<$ptN;G(+aK5WF^ZXr##~E*f`S^MpD*l|@Y7`T z9HXFrk^MNz%uf3;w^XH8kM)!Zp4<-`Mr&_45UUCTaBx+764`*&s=8rXn7Q{h9MJhc zzp8h0ZzDN7y#G)uGy1M1D58Cg9!GoyliTWj(3U%= zHZ`V0**^^e0q8kCz}}dVrwB1iZ$VZgPij2X_{(T(*w$8x0dblJKluKY@IOC$6*Uqf zVyZKoOl68U506BI02hmvlCDqEydoeoBML@l<~<59jcW4wYPDP}K3!h?{>Sa@-9wBf zrc42m8Pv?Ez}j;k_PvazQ)|`C19)e+wzrlSZ<5!7beQuH}PuGHotya zt(vdb-M5>^yZa}JKx9M=pg#2JLez8T@$tmAbF3>o!}>W>3ANQyY-4Vgs#|ggy-HAF z0;nn=nrA1$04$nR!_!Iw`Li$!<2TK@jW&C~Px>FL$VkRKSJ&Pc!f#kvl7w%zIr z6%Ha{9}^erUiu&rXIDW6M9|EPoQMJpni(Mk)0okpBp>K*+qHe(w6i^%@f3V)_EQj4 z{!JUNsiAS$KrAG6zkv#$_XiyH{uS@GovJa$b>Al_6Hx*D59`zCeEgz%0MJe(TsVW= z)N2&akaEtGLdF}zGLfmg+&S;Qpo(nyN4)3#2I4-K;ZOY)KmbBsd4WFB2=}0-7lK(FTY;>=YRb3U;pvb z)kPD65kZzk!BIU#NJl@BbF8J0KX^_lUQ)>~)%=U14&dTH<88R{QpL1+keFRP+(0)5 z7(~M@fV-p;>!ZHri%;qD0RXzTA;LcPSXy19hF&7+ngOVQ85qN&;jRrYYak|#0*85y zZ(BNN@}PhFQ#|<4!`T&#<@s;k(LgJO3DXT+p1Rp;QFPslyQr2?7{?=vHvK4L%~Vf3 zZK#+%Sa+n@wQ|$}$eWc6mIxz66Aa9v^T7UiccJaTg+@amQ`v)2aYjTj_D*M_TqxJo zNqMDa{`(eBJycaDPR#?vrs1Y(rWM9O&@=(Fz5FcZfM$k-F~-25z==etDx)FCWaOTw z35JQ^0ArkDcZD2PoWl(aA*e+FC1MU_W|Eg2OxU-WCHy?7ASO`(4n!E%>mCi8_Bmg-g>VEf4a@>M$(AF@52x%yD z09=}=il~S}K72pe5%2xl)G+BVZ*P;<4D91S<1E@UYhSU&+`?+NZI32Ibl??DQNdCD zz5DS^FY>Jt-^EyZ9eY9!fmO9%uOC$!LPA`0tw$qKaXd;9)FL}EKHEkm*DZjyS+4t@ z*?#@Ur{zWa+t+V5H&5%e7$6aFAOKJaB7&&ISx$SrCFV)_-wR?qGR`_vEmd>j^5O&o zAp*A<($s~*-Rqw?!&a&SMuctKu3sV|5W8cMmA6WCTS%Om@?dC^c!`LaG2v*GvOLy+ z6Kkytlmb6jPo2?1W^N8e)5j;>VRs;a{o@#$gttb>_FQ4tZ*f>VB!Mh(njnnz29 zz!ouc*xu;#yJR?j%6Qs7O6q4-#1B84vaj&wxc9Ps6e?7umf@N*Xkn+c;#hL(un4__ z)3q&}IPcl}qk<^Xzpneom$d;AVG{x&0cPe_Dpx^NUCG1L2s!JTc)YYg__^Ttfe5BEz9>U__gK<6OgHKwWI!`(8*bYM9$&#e z+S1^!87;=&52{itI0v{Eh?%LysFGXU<)A4Q#`z-0wo~}6`+Q_&dU*LVF*F{Zl}C>a zZYO?Ni54Y(xT9^wf|nxNIC~Adt_MM)gkpHP#Z~E`$`!YsVxv$LI3!0{Fb@yUul+hI zA*>eNa?ueYf&zl5sir=*np(OYF(VZbkianZLPQtKw)^LoFP|>{>$g819$p@wUiIA(t^^mL4d&&~vYhj&xeC)o9)x1BiKNKjj) zt7za9?c~Lp4xSb^@#vTv5w3RJL*M6>pvW;YIlJ$}?BA-Ynh+onDS(>weZ0PZ6g4Dl z8zR>%Qba?yST16SRqTWq#SEIznQ4qYB3xZ9{=ND2_U`$&uQ&G(&+FKWB2yq{(H;)) zT{=m$FgsU5y5sU3NSTVZy>kbtI?uwgJu&9dAI$ANBO-Uz%)aZhmE|C{QdMSdnr68O zPfyRW7a~Mu~4H`l19|KICYCpr!AOQ|0SdZ95hbyrkcm&V3G!hKO zG}Zc^D&oLq_;wG;#LOtEyFqS~9z@1{6UaW^j3S806kMGS%>aRkUVC|bU5CI#ZD4|I z-J3M@3VC|N3m`-_Q`K15P_dUq+tO$3x^Q#%c>V3+;qfK*J(1*7ul9*P*K)-VT>Nz# z0{{T+tuslxUtDhyZz_9+;jOeK;2*7vLxE8%o)*!})MgU2S?=Zs zl;KCa1=R4)LC}p2Itn5>sxY?cX`iY#VkROc9=o(|>m}?JNgJqvA#$Li2r>c~cL$6E z%?zfMlbA6E14RHrFhnAZKCRIS;Q~F zN}9xJ3c3Zgs^H+QOaa-mpTJGmwTor5T!y~yH;uPyW=1p30ms`>t13Sw6T_Xju_#6Z zV-6cJoxwHXw*7AAg^Up)Gk=6%+IJNyX2)cZNK{1BXDrm9sF&Ad{KA@m^UJtyJ2Bt0 z{SF7~hnSMh8vX93^X>qqrh|K`Qa&j$7Ao+RShcrVy`$PFdE97#X^K#d7Rjd1f0(6i zK^2h5M0;HmGW$%4frx~_>*rVPBNH=)wnZi*91oECeK$2gb9Yr|1FzR>1Y&N0OrwZO z6Zq#Zmy1QS=$iY7=WjO;xz}kkxxl+Cs%c~719S@AdH0ARr`;-wvl)iJcTof=Z<1$q zU2A@8aYKPj#0;65<#KUxu^=|n=rwKwq+5H|9%<_ur(vb9qX&MM>c>w?=(8d z4A!w1(LRbQ7!VSg3!0nEr6D+BZI0zsN59=W0duPP?VW~5`;jO$1ppOwu?kE=Y2?j= zGSgmdU>%JP)%SKbPp@xX&hBkv8nYdV+CeU_rX5?b zoXwE*22-9^s2M~^TMG%n=RXjTlV_TfyMQceXo8vDK0U29e!9F|Et)_iCWvI}9dgRJ zhas}BB_BRuVgoP}69WV!^gmy;;g_E;f4b@x%jWv}?(y-NxnpKgQB9JIs-l|Ot%+;~ zDQO-hTDvAIr*ycZ0IDhbd6tk}0m7u3JWy4|)Qr;bG)yF89lD=Ji#dPzD*g?{W{}X( zr7gW3A^DCK^-sfLWHK|2#)R!6td?!pu|Wi2qQ*c{1VZZjzG;GLBqCKCI7JQf80*?cKxc`h_`!5WpZxkBBZ_WM--nU<~rq;;g4FNA{w5d&OG3`BaYz z?bs~G$g^jYOn?8RM?1F&^Aa6oHkr1BfvIW2a@8)nhKQhga4GMHjf%kz6k&9?OXWQ~ zT;<<{(PG^@v+Khkent}EqHSNEUuf7KfxoMM?evI*jR?GZa-~rWM3S z)UK1w%Z+h(zBIazCB z!PAn-V}27w+|e)_NQYFbZiJUsw*|v2_i-2A%?t=?pkRTxYuTR6XV8n9eD>D-)3gW? zKPp;OC!kp(@;i)Zsxi8?sutbZR9hS?in$GXI;1E$c~j)A(PDEA8JXUCJ$Q5hRC+>) z6+0v`J8;HR_VC`!?pM0PNWKOKh(<7@)*q0Nz+f9GevCxTRuV(4`$0YkD4?jy%pn9- zdFf-6XJ+oaDR1INf=JBFlA=Od)!UwO#uYI3Js_=?ZPzu6MRWb__V)HM#;7_NU@R9_ zAd$U_68Ody_0HwGgP6A&GcW`^&GmSR!_3T7WcVzn;M1gDM36Y?PO1=MXhI0QTy{;< z1a@7SLd{1r3u*eV!oCpo;9In#FX;adHLmie-h=BQc1=(JX6KCCh0jwQT_IVH50C2`z0pFV2~na*^(x zgWbgCBN#IN&s>YslF9bqxZgFTf(KzK)15rH^GL}UJ~_Ih=B9|#pO}M)y!8F^%c}t_ zx`vQ|Gz}GF4Xwiz*LDnrkV?$~08Hdj=jw8Kd9nI-b^rDEKkn|Ii2@>NnUWkEweJUj z&yi&wXaF^0SLe@uvfN8k2xlVnMy6H67IlvAb#RQaX(=#^h)N{nuInzZE`v9dO`Of) zRfSIlmNpn~$Nj1gsIw=-w9l8bA_`MeCqx=#8C6~A{|+-fq6xfc0|E{jJ9e%d;jb1R zUx3*>lp15nFE71JVpQ7Ovg<2p2BKKZR3WKKLZ*U+5Lu!Sk^o_Z5E4Meg@_7P6crJiNL9pw)e1;Xm069{HJUZAPk55R%$-RIA z6-eL&AQ0xu!e<4=008gy@A0LT~suv4>S3ILP<0Bm`DLLvaF4FK%)Nj?Pt*r}7;7Xa9z9H|HZjR63e zC`Tj$K)V27Re@400>HumpsYY5E(E}?0f1SyGDiY{y#)Yvj#!WnKwtoXnL;eg03bL5 z07D)V%>y7z1E4U{zu>7~aD})?0RX_umCct+(lZpemCzb@^6=o|A>zVpu|i=NDG+7} zl4`aK{0#b-!z=TL9Wt0BGO&T{GJWpjryhdijfaIQ&2!o}p04JRKYg3k&Tf zVxhe-O!X z{f;To;xw^bEES6JSc$k$B2CA6xl)ltA<32E66t?3@gJ7`36pmX0IY^jz)rRYwaaY4 ze(nJRiw;=Qb^t(r^DT@T3y}a2XEZW-_W%Hszxj_qD**t_m!#tW0KDiJT&R>6OvVTR z07RgHDzHHZ48atvzz&?j9lXF70$~P3Knx_nJP<+#`N z#-MZ2bTkiLfR>_b(HgWKJ%F~Nr_oF3b#wrIijHG|(J>BYjM-sajE6;FiC7vY#};Gd zST$CUHDeuEH+B^pz@B062qXfFfD`NpUW5?BY=V%GM_5c)L#QR}BeW8_2v-S%gfYS= zB9o|3v?Y2H`NVi)In3rTB8+ej^> zQ=~r95NVuDChL%G$=>7$vVg20myx%S50Foi`^m%Pw-h?Xh~i8Mq9jtJloCocWk2Nv zrJpiFnV_ms&8eQ$2&#xWpIS+6pmtC%Q-`S&GF4Q#^mhymh7E(qNMa}%YZ-ePrx>>xFPTiH1=E+A$W$=bG8>s^ zm=Bn5Rah$aDtr}@$`X}2l~$F0mFKEdRdZE8)p@E5RI61Ft6o-prbbn>P~)iy)E2AN zsU20jsWz_8Qg>31P|s0cqrPALg8E|(vWA65poU1JRAaZs8I2(p#xiB`SVGovRs-uS zYnV-9TeA7=Om+qP8+I>yOjAR1s%ETak!GFdam@h^# z)@rS0t$wXH+Irf)+G6c;?H29p+V6F6oj{!|o%K3xI`?%6x;DB|x`n#ibhIR?(H}Q3Gzd138Ei2)WAMz7W9Vy`X}HnwgyEn!VS)>mv$8&{hQn>w4zwy3R}t;BYlZQm5)6pty=DfLrs+A-|>>;~;Q z_F?uV_HFjh9n2gO9o9Q^JA86v({H5aB!kjoO6 zc9$1ZZKsN-Zl8L~mE{`ly3)1N^`o1+o7}D0ZPeY&J;i;i`%NyJ8_8Y6J?}yE@b_5a zam?eLr<8@mESk|3$_SkmS{wQ>%qC18))9_|&j{ZT zes8AvOzF(F2#DZEY>2oYX&IRp`F#{ADl)1r>QS^)ba8a|EY_^#S^HO&t^Rgqwv=MZThqqEWH8 zxJo>d=ABlR_Bh=;eM9Tw|Ih34~oTE|= zX_mAr*D$vzw@+p(E0Yc6dFE}(8oqt`+R{gE3x4zjX+Sb3_cYE^= zgB=w+-tUy`ytONMS8KgRef4hA?t0j zufM;t32jm~jUGrkaOInTZ`zyfns>EuS}G30LFK_G-==(f<51|K&cocp&EJ`SxAh3? zNO>#LI=^+SEu(FqJ)ynt=!~PC9bO$rzPJB=?=j6w@a-(u02P7 zaQ)#(uUl{HW%tYNS3ItC^iAtK(eKlL`f9+{bJzISE?u8_z3;~C8@FyI-5j_jy7l;W z_U#vU3hqqYU3!mrul&B+{ptt$59)uk{;_4iZQ%G|z+lhASr6|H35TBkl>gI*;nGLU zN7W-nBaM%pA0HbH8olyl&XeJ%vZoWz%6?Y=dFykl=imL}`%BMQ{Mhgd`HRoLu6e2R za__6DuR6yg#~-}Tc|Gx_{H@O0eebyMy5GmWADJlpK>kqk(fVV@r_fLLKIeS?{4e)} z^ZO;zpECde03c&XQcVB=dL;k=fP(-4`Tqa_faw4Lbua(`>RI+y?e7jKeZ#YO-D zYE(%?K~#9!?EUGI?8dbw3a-HcL_`jI;GlDKRKq#dcd)i=*Q_3)f0Xr8+wqQHdf&aVGb?GcyLj*ZTU0I{-&a8JRmtQBp!QYBP2O0^xA1@mt@=|K21H!E-3J*(EQLB6#0js5uDwV6+@hj?qLiuJq0@xT6W&q-T2F^h-*NcX+? zy?;9g@7cM(+#$68+nw-Be%;Xnhn5KBhgOnFj=b|1y0aLUG5v5%9{BW}V(a1=*}^b0 zAwSL_FtdmdNo?cIa=m=t#*S2LVYo+TSfu5(Z8j|llSz=xfBw(^^uPb#en660LVab^xe>d~Cs~c?o_BE%Y znG1_=*4Vzg%)LJ#B5uyY@BaDnhi|SnYb!1S6Zb*HoPX%)w_|aZ_MWDPoO%4=4q|#d z{+5reeR9NAFf;$Uw*z=;wYDQC=h9E~VI^_@#9@5WMZ^hC0HRhrp9eBpFU`!;Io(a9 z5`hStN4PA`n~TeeC|Z=Ds=^>4X1FK2y#3WgMAU8~i;`CB=vT{|>(%;t-9}*9F)@<{ zB7zxtWG1N;&dQp-nz=JHR4Rnn?Z&v%o6CJb$wSz>^-ciHlpV(Nr;W%hfmgB=eUzGG zOd{IaCm`N=ZTRddMyhZXGzp~BpSMo39jfm$luw%a-D)%X1eA7t+&9x@%CSC;t{*ho z=!x6NKW+LOhirqhr^`Qsr~Yiqh3sYkbt9@+EgcwgDK39x`hx`d?SFjo=EdsW>-A)b zIE7Le7AoDo6CbmuA60;>&WI!2+#P_35Q|4=c{Hkj?_R`V=|yJt1N-VPG*l}Rid!FTmXiUvyT}qZ&BgGmddz`4*o9xi#U?WeaFNB zV91XFF5|;8!0oS3QhL${+G%N+NJKpvvownuMCQwGL(DZ11CePXQaMW(Z~pP0{^4vE zK*ALwAX247L`6gyZVVD4cOzx6E~BqD@v2*`H{H7JHk~=8G8hAH-Z2aM8ip_vT>3j` zX347&k-0cfmu&sQ>1}tqUBE zM20XP+r@fJOYlGuXy>BO5VTLrR?PgQsb5ALvWk4YD6&&73Pi>CaFNUom(9GdhtZ$1 z=!}%@o$(8I-NQ~7X6GSSUMys_a*H(a1Jg1WfZ3w@-9JD1@w@BwP25`7Z0h;c!u`c% zUDayQ9y=3%hY7@Xk%Srjw&%a{`;Oz4D;y0Sa-Dzyz`-mjWv}XLakf}dyIyTrxng0J zcG)sX6?i@ib*-t(s3bzfwO1&Kjco9+862un{v$VCl`yU_Ht> zb?nN3Xh`+aZxNl`$1wrxixwD%4g ze_3P${S7!0?s@MY%4CAMECG#Hyv#R-Qq4|HD#uFaRe0G)<9%OYY-J3c`!T;M7M8bG zt++|!@9KRPP25B8{+Oo;$LKc3F86K0r6`}BhxO9h7K0m_SmiHMeSy^xmlZzg+xi&L4kM1t~=q>(s9K){B-`c&>R~sM7H~h7D81QIY!27OW`Wy??`&3Wn zIH*)A^Lgc7zkeT7;jXUh^?Lou$Ima$YqO{bDt&2-DH5BLIbAQ?<+{6Gb*)n*I0zD$ zL|Iwb9m(iZ!f^p2f@yA%F*;jj(|g0K0|2KtR;dq7D9h0-L?Ac?1+x(`kx8me5ebo~ z2Gzs4MZb6hh<1Am@x(RrEk)r|gVb&GC-+T&!oxca4elP`+s6bn8v4n3E}MGU#-Z?! zA$tIb`y8`RIHp-ec`5x8Ph8ZVjzWK7Ihh%2P`P_?e^hESQ&nHycu|H;m&8Tm9YkC; z`cMDzVr- z)B#};c7nTcp!17G?7DX2ps1=a`}q0g)5`^W1i=L&VlJ&=-FC}Ox88I&n{^uzjU`m1 zLU4i!6SKIxnWZ3rC3RBR&Br!snFtO=ks>cjV1%voG5x1o?D3P#A~{zgm=WhL4=39t zIa9H4XyGshl|6i*xB6TrXc>AmGza#_GI!}Z_Wg+>VZexPD`BvGpCcFa(f>RQP^&U~ zn5*spIkrJf{ZjID&?GN$nWqoK9~nM7ZDVsP1rF6So@8d|f7QK@P|4Xjt(Gv~MxYH? z0q)^lzxmze)!WtUpK?}m%B>LPryteK#3ULt8ny})j}@v9iS&P_xr%$&^tXXeJz{4c zuI6t%de~DV!PwX+o-gEXFp&gR7I!m`M5I-?xD4;#ugzMgO$hYla#q#iZNq|1?AlGc zZsW4Eb+lz0y9AsPmAYbP_l}V;zT`e;0NGJ7rCL>*h;qmsNUe+9 z=S{OR3}#|Un9NiWVdjtrL(IeN%QjR_7(>ynOhWo-oN3Sa#oa86jLn2x6hgMzlZ*?K zZbq5AU?*IdAgnH$>ixPMlbHNqpy)x2#jit9;4x=P4Uet-qhFe>5xnip>5lD$-9v*c z&ahm%8KXyfY_;VFTX6Ao-pr~WzrC`KPB8&z=fdKE^mqKxJ^U4h$|u;vA(NPRiyg@6 zUtRa2475-0ZSdibgSTJoVW|Mfv&m&5c0yItVo?#d%bV__k1m@zcik$s^~QbEb=T|7 zI>t>ja{@>tI6*{&+1+545n0|Nq59a=lZ&9Ct;^IGi~CV9PSNO=zpqlJ*uQnWts2bS z9R!9GOKO9=glO(&aImoSse*?P!mS&xK-2QJeJNV;yeE^RyLMUgjKOIBd7Oy@fp#al zar{}?dc$R%9me3!GAxTq4~$|r6b+)Xq*IPWPC}5r^u}9bfMx!4?Beehz$%}g>*~hZ z$iOfpl5?!y73MFmXW@7M{Pe|l*URg8s|mPxD*ew*BYS)(8ht$enlhfD?68af-gjG_ zK)i?1fc{E0z+sfs?bpBSY=+*0jKmEo&)_s)%@R1HRb$;$5@zq;y!-g$ryME|! zUa!`hF1GHFKwPmv2qF@@mPrg95mZ=J%_&B($G%;`sc)SiO(|vA!pKhS^R%TA+lc-c zHh{YuaThJWjO6eDfV_@|O&fdnBm{SNsrF|WJmIj|oz%o~)z) zx&3~{ZXAGJKfwjUs+g7--=Zv)YG+nh?-2ysFE{Tkynx2j^7g<4mowwVc;m!R^suPh zU%Br?H$hqvV}7o(!FpxoCdo0uR>CLz>F+LX-mPB#usL#HnwdQN=+dnN5CX>t6$Ubt z-ra94P>4tm2G72}nE(CEan z<+GU_Oa$p&y%Q1Ol?EVT*vBd{m;`#nFzps_APOK|6*K3b?~}IBln^34_(EgKp78J3 z8xd*#MHw=PF~rGx*xf|LGs=FvcU-{sh|(&g<#Qp~>CO$mj(u#Cf{WP6i#{HM@;UlF z!xRQXR^B_X?Og}>e%xjx+bRq9XOn3lYbwHo=*Gm-qeh3{B?tg93v$%%D$L9_%!^D1 zvLtO(9v`e6*>YvE6+uKC zE*lxK#Ll}eO^m0m0s}GK*)Dq9c5P=4BGi3_irqc+Iouttd)L!_J4Q@19ns=}bTk${ z5*pWh6T|*C!Z4FuJPD(L81Go_6fhY3nnm}?rH4TQ6gzfeM|f`qYAb3gy+t{_ab8z% zR#uLvV{3~{zhX*>GbLA{p-X|SH{?OazO6C-Jz>X<-LKlfMdzNHhM8rxboU+&)x)B; zf=7VPp3Li6{o^-RvD<$UXBVL}Bf!CMI5DxXF!?06V>y^=n8jg_2@CZ}n`djtoREOY zo(`+ZUN}4lY?*y%rufV<(J730TL0G z9D?WI09wYp!wRtO-&d7M+KZ~Ggp(LaV7@NBh_DJ1lbp}ag;@ZSM2myIyVr5zx)EjO zAX=%gaM%awN$p|Dvk=5QdLR)68wsMp;gtkowQf__5;6Pn{qn1qFMs&v^``AAB?kin zHy$b}{g=6$z| zvVZ=`JSYKDk&rNiW9)K@S(GT@5ZNDbJGcObjTmsDNFd=nK*CPF`6!};i5bNZGL#8y z`2dtVJA@kWobdJgmxbJu-SB8pS*S+@c)ltrZm|*};SfiRJ;C7wuJk~OLmHY659L%+ z(pu$6HrqF5kG}UoHP8Em^MjoXG@{48!B-9(kwVjDst}5CnK*_&T$qTI_T_A;2L$r4 zp3JP7Q;(84uF*}N%>MeTdM->NtfDGCoPS(_?S|u`_B^IMt)f&?Q$f%)yvNxNm5I1# z-eBgwx=xO#Da`B#l3B8aGU_3XJn8T`fgLG8fvN@-5pnAVQmjcRlbXq*B9gkp>EUuG zb0$%4*xlGYh(PBqc=KlU!;5$C*Z$^a;~P_fQi$YI4oIY)vasiLJWr8}2&WQ`3~>YH zIgHFi#M9~p3kx$(z!bhqCC8J}|JD;Xd7$@fS>F~#N4bI{+A8(T6YdK{O!F!%+n8b#8X(Dqh20Lv3i_>tBS695$9;@D zFbtMI8Iug;q5MRVWQ>fEQ04P8xmj9_w=^4)Is4?d=ZmxU)sL(4ZD;494q{!$Oh%q; zYNa|F{ernGm6G;E+*QL!$Z<<$5Ecc9RLcG0!(>Wv9)M|JoA5Di;bBV3O(aa1HT#>j zZrdT<9#_fTAwUFjD$L|eBhb4bt{Coq3iB8YVWtF4Aw)X>Lif0}ZL;MGnoC2lp{Oe& zXY;Vv;ju`1qEtkfR5+*-lTe&ON%HyxvSb`pSVWLhCNWK&nC} z=-@8&`A_Xv-@g3u#T(*g#uSwaohXHVecW^2o|=uUN=(XZfc8Uj%tqO7czRfP9P8q( zj3M87xPDM=iUgtJ=?qbTJMexm$$pS**nghYH>>*)@`HTE<=$}YwZ zHEg*kOgk8cVK{E!(>SlIWgDkW8lJX2wmaS^pO#6nEPEjo0D*~<1JQ$_jJEmSCuOv> z(^W4nWO)-e?d=H-GoL+ant3S8Q_nt{YgM~BK~xmv1P2rV5Q)W+pnW*f!|*OjE>c1m zU=lc(3{2pmq@GI7D-GOAP5`9d z+jDl`CdwWXh3y2q%c~dy)ia85 z?G}j@4j>XaOGTNs7a}Anpd&go_KDbrpjA+15eAsuomkW(5g|93nVD6EnQN_!hUcVt zKGZ8jc>wvy^uZX0T12x@!Pw;l2qcoKF8K-QYu_|$Y6fv%p-JZeL5fUHg@l!bf+)py zzabM9kzLFo?{wDESKA&uVY$#Gc=5{vTIeuW{9*IerF{m%Z zFhQDx?g3O@O$68v04&d@ohY+c6fPdicqnh~q%h zJC}cl`yBAMs3UA+t*EF3BUD@sBf*JwA)VRX(k4ph9yUjxDUKF6 z^@mvaz^p!wSpQu&a5}(j_+Z$FH5x_|rYcDj?TE22e!SOxS6D4}+b~IfX%LjCs!x7w6^0<)#u}{_QDC5y>?W z07gYADb;yWlI^J_qy3na2nhw2Wazoff{2Ma-!3bqL=_xLbjc70faBhEo=rGFxq!xu z!@E7T9XW`^$cG+fE?o+9;Hn_#BZ8zec+q7Uod=`G*Chui$N?G$=C)nMiZs-(-fq75 z_TAS%zJIrDYpRKr;BD6?uSAH577H}j(BozwNK;#+hX2O-aQB}>}*_%_|)q~ptFK?db0c(Ef& zR8>0Fq6+Uf-Ill5brpR*s;HTiof{qpxoOH#cB`j6*;{Z~4;#8jWyhqrA6zETRjp@C zH#g>9CQr1*m@*s}PiFs*|NIXcNJFv$0l9V>RqM2)Sq6{ja1V!?-dqvDx@VS6w@24-eYqB=4_%RORqC^6=qCoG*g7oJRdyTeS(LLhQO;60LDL?kg|j(e0w zYA9<&JD8QyCkY24V$Y?jG;^2QH9cfG69y46krOLt?0TYtNP1$)(Ppe{-**QwbR<~F zFpqStff<06_;Mk3!nF3?e|2^{yRmJMG+u!0V*8C6eSaj<>5yCx*-oLk0AiNJMeaoA zUV)L?2K}IJV0O3(yJrsX+{5OSpkhGr_d{CA1Q|007UrVg#n2doP;`0yy8GjwUw!rc z+f{U}f``_-NN^=>By3h22v=I|jj$L5R)VCIvK;I+k0J^rehNt*!PyIQG%@;z=1cBj zocB650Abq~;804kZMDnN%+_$eZpwmr!7gWX9KkbN8W?4nj!MM~ z>~7#~?@RaR;lWs{<1JG5o}PrpkwKbtQBu^TXXmoK={7BwwsOmJ2;-kVz8GR;5lM9u z;q8{yk*eeN7~TGxakL+IdaLUY&iF5J9KN#;dsTdN5q^&A|Jz*8V`j8a+Kiquw&8t`MH?4I}PAq|ENoUO6-C<^cxFZBT1XsP&6&_Cu z_M%btYI}euI30K2LP_nthA_CUt%}Q@SbKanxrBL7dep#!)T4Up?=7)y6pBaSGPjs! z9;00<_;fJ{>j5B|1=%w)T4WgocR5Xc#^7H^dZ=k~Hj11)aJ@zsEI<4b< z*G-Qhz2Nc|q7WrdmxjsE@>KY6aaNx#3hy^P{^cK^&I3f!h%AygJ<^=_0}8A$)AsZb z|0=EXukCnbn185e>6ka|D=?g>1P9w90#9Oj;z6OIzFyO3-@g9Cm#=?%vvPq}N?bF~ zl`CN5eF@jh6TQI^ae@8DcA6RNvg6zub_3v(rA{Yx(SoRIw=`H}7{gQu@2#KkfX~74 zvcrcL>nFmcJo=GA{epHU^#(LH}YOr?N|l`j^Uu`!w8 z56_qn#>mCJ=*wnBYplFAlQV5oNl`PaMC_)3PNky`_|3C9TT6Wd&4)@bC+xrj8LTpw zot9dUW+Xpj?c=nP*X`!!zFd|;t*tZB2aHUVMAW;^#;zNc+;mCipe&A0Dqu(4*w3{5 zW#6KFkp~n3@mSj!9L7Yz`k>Fsg`Uzd{!G6EMMoDChQN^ztE^H@YbMB&twZs@Y>XE? zxI|Pb3+IMs3B=6!yi)di9Do>MN;K^?;=_OUuKyUcIcPE{GI0-E%CIPFQ`-{WRjrpn zuCKaiVQu*b$_sv0%MHd~dFFBF z^}lP0`wov~not=~N_j4vm{>cC6j4>P=$r3eUw`rS)z>dqSCQsoa3NuaD4SVJQG?D6 zk^81GWpua!#`4SEuS2B5r3dl@XtYcZDr2vGDDn5`0;WNAjt=SS6^xiaXMVvn;#tQZ zS+<^wlGHG|F%XrfY5V@45x|1!gh&3&q6%dXpmzs7QD^~r8g>14M)QtFOCR^I#M{VcbUja_6*noIKzU+9`k6 z$0Ni1&*Osg;G+QsBv4Xd7qi&8zjz=2`-pBzl&aQJRd=uRhMG7>05EV|bj=V+aKewG3!%MbUy4*iQoqA;dnNSjN(Szo# z^qJ`Z>*V3DlFN&^%oMCM~!`p0j-eYIIby4doj6P?#h1Ma$RMUXnonWgj9 z5UUL%CU*t$?bR%~)zS{Mm0JgL%iIriR2nFZqkQ7WgshF8+mDU`C*ec4V1#dI_(N4!=w>llk@uzR!fA;m; z7uT_M6L4^@I7IEb)&Z%ixs#i3n7N`lI#eK%q*SRVf>5SYC2zM7uv?b4EbLBY0So?* z6#Zh`JZ|YVq`w+x>=VJulv!t-`eF)G8+_!V(@^M0I>6fP2iq2@kJ@$r`C_SUVhX9y{t6B+JB0nVPFq@qiOtpukW}wi@#|ObKL7q| zb+fUK>#7lgksBNwO98<*KI_&678bByWV{H)6Hk!ylhc{n^19kVYZr|MGIEmo+_k=0wQsK8U7nqfoc3vPFp|VOli<`H_INxV zzviOU-seR`rE4n=MB(N8_2=Kd`Tos%wLu`Ssz8h`ws04b5R{yqjHZp^LK4E0L7Vvn8D<++sRlQO?K|jh*3!@V@kC-!ZTCKmEf~ zAq0t)n#Hc`C}>Su!Hvn5UDveTtX7b)NL~aXW@e)h~&w{MKoS(Ss6MAcm zJ9KD-_i-N<*0CH*e8^*yc zT^l=QS`r@DI+ABP>t8L<1Q2~!n;XR0F?Nl6h~ zkbm5Dgzco%U+Dpq!j9SKiwH4&_2bL`>yO|4`Q?pE z-PDzksUk|)7-DpGRtUKpTy&e_sVqt5z_-xU`Gvj3>5u2W9?U^vD_P9z|M|DiKE0ez zp}0IEa}Lz}3K-dmRl`$??1LjNw6f_~i+M;UfMWUr#RwnwFVUD!jJGg1EC8ZfCC_1S zF&@{qF8JtjA5cs@v5Lw)ENVzQdVCb4)Kl&CH%{GrPa6AQKW#4Ov&yl&xrzp<7hKQ5 z(seK+rkbE+1P2&1Ar0a6a&2Utcg$R=1j-WGVD=O$Wl3*$%KzjCMuds^F#~x#eofV< zDd06(2PZ~!BbKI~gTf}pNcgYcUH|^eH=Ao*gobPteI4pWZ07-OEfj)+$;gqiilPqO z`x`h6&pt+QS_$Fv;al0Q-0BS!tp({qRc}KE`iV?h0tCpw94xcpp#)N-*HhX$` zW`_B^rnq6zNCdKW(@L+!UC!VUkvW=XzTB+eU$4*S4OEE8;Jr{-ikloP=`uA-sB*Ea zaE3fimOUQ7icA7q(QPvBpvY9utGesjRr@~7X3LfS;rHKv{d#$Qvr=v9dZs)haxjO+ zj>uSSX|@l~e+p9l)Ityr7((7_Pm;nh4p1&m3M?t!72XZ>Ig#=TXRC9hH&L8FFvzT9 z)kM3ee@QO$FC>7DC^fUVlciLlzCY*oU#Xt$%fBkB{tLKY)h)k;)8I&UtT@ZHJ&Ys! zL9~WWx**u%Y_VE(Or%6!*8rKB2!hhkme@XNrPj7gda*daUau=P2P7!> zG*-^+?jXR(1*!@l%W_i!gg7w?K(-qBT zVj^0(Z_JH3)Kwt3Xl3#ClGj*~VNNRa**}3;m;mV|Z~2z;{AraK>;Z-DYD?2TDfL~q zv7HMYxCD0>BXSL*l>-*d-BswfA6@+8vsvh8+;E$t`x&xG?E2F3mKVAd;|H))A{>1M zkNkt>7i^7bHbJ+vuRr()PN^D4xE1%*x&=mdB72C5@ak##*?;`_{5Ma}iBJi5n@$Mo zCakHs;DCDvKc*AuW^hxbx~^WnUyE>(@!E3RX>rXHIXn}QP+ttiV-w@?_;r+|b}W0+ zM+z(u_Nw~s-SYqY`)~gI!xd>DF}EdIB#1BvVNT_S$cLQ7C>^nD!ElI?=sqR2?H3)% zc%-niw2idyCm#}M>ctYguV~0|)Me82=FBuVE zkY^MF2i`Mo_e0-@SF`6KFDBsjwm*6jkRqE%FQ~9NPPvyS;1G6)M+&mUvJy2gL7@&ic5E#MH4h}3;r-pn34yh}4irt2U!>oRD zv${Ib9zH18L!vjx zuL65YJcByKgn96gcFNEjFS!iMptuRLZ0%O}a2je2Q{ORMCYN-(MV_%Wns?F$V!|g+ z79X9>RAP;2n&P$w8G>las;g%9>bm{u&HDFWym)!Fo-Y<6 z)Na-y6;m5yBnl~fXA!MJkkIbba3`(fo$k7bz_-gpK-rKSg;Z(6B7V|?v-PD%%+cUN z4#~NXmaQk4kix=BPxCrv7%Ab@T(4VqJZOFYh>ryd zEw+h*+{A~BsnWe6Q0en{Gcf>+&2AHafDu}9} zUF78^p3N%nf6j1Eq8W=Yla^G;kKW?(_;nm2qN;8&)lU*fM~v}{@7{d({rmSf)YKPd zF?Ji(KrBJ#ZENn(Du^hNnZ>rd4qEMX70G56Hn;yZ58hA{&9bA3dPr5A*Qi=&qS4SXAg&r>Rs8C9*UMKIpXon6Z2+%>ri<@LnFH4p0N8q71tKyKNkCd)jPAkqU#$}nNZr7MO1P@^?aivG zQiv9q6&4++RD&wqLDV`oRUqU}hA{y-u}u)b$0@(ZZxWd~V--X>GyvSNu}Dl37-(TRL{|yBwxW#jO9PdjR7s{< z2%Sq+!HkG|4Ek8885$4!pAOt!x!``tY_}d&+7I5BSWpkQEt~~Y8nik9(*kn?yKg>G%vJQj-GLc%gv_R%3HaoBsy>+LT?eRNTspU=3e8rqvLJj}r?fY(*^ z@@oCb<=nj^CRSlbw486I!c-SK&00$k7Cb<5_INxVr|nW>RZTQ!=%d3;*EZE`y}V(v zdR9jd-@Ul`)396OmU+N)+oteOB5Jc@~cdeiMOR6A&!&yUh(5q#;ZtZ6>Q5ba~N_WZ_Nf3v(pmY^m z>QWfV%CU2&OTi*8{8Z*5+_@Qd@)kUD+ZN(^g=pVUb>p!fMcb&3Lm@`3^iR)cQdjdP zQ~(d&Gui`Ku}BY+Es7*b9YYsqXyKc%Niz&!&rkdUnVg zdBRS$N3VSU*IYFEyQj1B#p3y*l6DF1|DX4{JA*G_mOKUOV4KhUWTH7d{WJ4i>K!eb?y4yS}NtH zjuuHu4jDg^TO7|k2A`4MFuu(UjHU`#H>*mtsuZ4EeokN#ClGq3sYl7_$K#hh4CZbc zq?TYYvU%!M{K%NPHTqZ(l55ul8Jq@uaF@mC!#)L z;bQTSsYWlHSLRzgsHeh}(Uuy<)LV?S7Jcq9IFVuO4^t;J2%oFm?>0=p*1aq?_dMko z{&T`kJCvaSa6pg04jfG-pFUeWIh#K@3yRLWj;SV|tJd-18W>xps$pxiT_iIRIa|zM zuQm=4ITIX7tkT`n4)N%2(f0&Xphr@|$Kz)@z(_s=?gU~{4GlQF@948{U;qBgmv63} zL(M|5+YpSB_%uk8^2^EQdumUP9qtZ5i1}!ue|OT-p&)_N-(SYZAA&&1ihJX?Q{VH> zP2ip?oG(p~vx;ujbVU=*MvT1G8+5^<-N;T^~jo6_u=PfbTqbtQ*f9z3iJJ|s+ za;<`D<<%{{{axT&@d|dORk=__$M}ZwI`(1dp3V9B*?fL6uLSMpeP=P$iy(D0>e@EY zgL!MW$ee3gfDc72CXH}54l0Xg{^q9r^vPLtOBh-vc1kTih!dFg7Y}?MkH71Zl(1?= zK#cAn(yDcObG`iH#p;KjZk9JDb;GJ{+q$C(wa^5wpPUEaTmqSPZ2Df7r$gStEU{+v zCln^bVV{A$h1`SMGnk}4KVJcAPf5xLy7p0}2x;L4_%KnXkGB|^nIS~toZ?Rdld{a3 zPz7DDyUso+;GN7qZ&~wc5bslybRa#Xy_z0-^`LS^s^1kSWEfLLZj@1UF?}}M_HRhx=~p{0VkZ>TKnYIGkmwW-A2YlH6ush%?oAZY^huRoCC1}EVI*=o5Tavr;U zQ}=7a0|+VBHh{>5)t%gh70GnMi70g}kxN*4Y%*K+q<_#WB2Y6A+WGxb4Nk-5Jue4( zh1P+82~(P3kz?h`l`)Ao!8NP8;Q6EX};zNT+h^7^G>p3ZiYNm>a>cF{tOOy6CPU1E3RFIw2MM*T&fWraMz&PdZ1Yu$k zBXd@o*W7JzyW|l)Hg?T$b z%y3E(?}y2=S>(*sVJ1OqChri1LhL*U<8-Q@U0X96MA8gT9L6J30PV_h;Imw6ux-ty z55H_^u^d*_M9AP47RumAW-T3Au15{i8D+Td#TO^jF2o`{Z^EWCyL+lJl7IA7qb*N3 z)$88%6EyUhN9a^x%&DL(JYx2TqYk|4aJt7Eb+)s^noi+?ddXGV9?ip~3C={%7tQ6x zteOdtD+?+%^oZ9FPvNHb1|Mb@DOPC7bPs_7<%3P3a0T0K_P25c964#5oJgjA&_X`uJzMx z0Y}ddDI} z0`VBTKwMQpG`xR*J*$L3ki@(ra06iGoHs-8LG|{)Q0t?&cs!1qtKpB8a-xt;L!%)C zX6`HsBS?L-@jw6Y_7C5_dHJq&=UHH+N@=b)XZw%+TMi?`b$U>Xd5c?|TOu8q8tep} z8ERa@ypK)^rS&h38?X&GWafLL56eVk>SVUO^d217bOkt6L1Sx)_Q4Q|$lbi3c;h@- z27~t++qq0JO!EQ&3CP{RlJX=LVSuVyEV`XcvjO+%B=?~-qAdAyW{TPetsUm^w!>KL zaaX*p9fDMqI-ps|R1U86vyUSa6m5-ITdJ|uhm@@nr^$hkh|ri zKG#Nv7~A)W1Ra>pJFUw-d@z}XqAA^jgouO@%bo{zE%GT3!dByUuNcPOwg(?Ff7tdJ zhqzV&guu*z8HqBpxI41ZVMjN(LGlo$zPVQQ+9G)n%B zq>7X2ZYDfm=##VAlk+(-%#DbuWn@~o0+>+S~X4m=6Z9vXw02hNZ3J1TDP-Y7ghn$9@6v2PR8SLY8?h3CUrc8er-w%=#2hZn3*OngGG~J)lkK~&Tmh&owaSDkh5Z`PM*GxtcOX@3|9g3gQ?Ubna%JGB@vUk$c9{*w_Ot{Xyz4r<%BAlEWUo-)lfIa~cB%2qesY zu*1oq5<-K5T4N-7;;|Z3+IIA)*gg2vDc5Z=Vhs?Fz&b8O@us32mGZ{+p`nIsh9_)R z6TR&nVAgc=F%g{we00$~xxA6dc zT!cx4-JK{pwH;!q8pQos5{e6dGxV?@p$a7>XbAcDOeY&B&^pf5I0TJw(;v9Ui|U< zcR#)BqMm7t0bVh8E*;z$wFbaMIP+&X5~v%DWCfG)&17gj3ID#`$j4m8ekF@^o{_yA zd&jKOn-9l)>8i@Q+@5;WKHZC3n;$2>GhIOWv<8pelX)GZ#~4GUmv1{te90UPKRLndw5g}-Lkl3RoWJGG4jX5u$y89oGzo{0*^c9OHD#8LchcUn` zZcagjNSR|tU%hPq^{dT`w~Al z680pzs?q~iNF)#=%oi8k`Wjsf)hybE-J?ehMPCTn+oy(6O0F!Y4lsZmqD)LIMC6v( z;N8icB+;k4JApD)x&xBg@+PF-0CAMwxMTkvD;wH7ZoL@Y#MogN^(GR74EJ9#;u#Lj zM-JtwAlzfUri|#+UoDDW#Sl+S8XJ@H)LFpuk7j2f)b%U~d)FGAjYxHOrfzF{v2c>9 zI5E55av|j_$MjqF$9>xXC%BW42-Q`H&M)3ApI^+nt`pG&u#V=!h)E=t5JKQFN_xyK z{@yc*{f3e`niCll1r^Q)hi&c6S$(x`Kl{@UUwm_Qv+<@9Gs~u@k33GC?D-Hp_mQ^q z4k;n;d-1*<9ipv)-y>HAKG@kl?Q6G%U;%_5-`sqlp~+07pEm{P@;d-Ondj!g8?y!q&WV~|W#Gt(AdjA+m8PmiGIs(IIl1<8B#*hp_bcDri`H3qEvYDf2V7(2QbxLalEK0-;JQ#J>E4efOqwxwZXxuH z*Y}jo_(071ZW+Mb!=GMUfAZ7K|MJ`BtU}jX>j^TeP5{B-l5dEBA?^gE-mqgldKQpA zga^T$36(TXa9Gcy?r;W3w1FcUqI--E(8^jRf@@RP$wY$t-v4gnfKx|>hIjN6-jt!S zTncJTszlfd2Y8~vS11>55dNzWNRYQC9yXsP;dU;cF2 zG@m|MT*V0Q=aJo0gE~*gr3N>gbLBtHa;G9T%p)@s3kxf;Gh%d*MQ0G);V^SIb2BsZ zO$#D2b9clvDCmypU#>RIES$~ji?jO4#k{VB36^F&wkGqaNE?PgKWlu`z~X`dU9i7r zwR?wnrye%8%$Yo~ybofqJiuzPPtAgJ{wR#6^X507d{oB{D^&9{s9m+|SzQa*D6v1X z5Q9Zjhs0u6%V=A&;&uY|O!$&uY-O73=8}rP2VBwMMdSd3y2Xw|rK(PSo1Q6a$LKY^Nl}`^#T@P5F3QraRFUZgn??9>!fO zy=C)1qf`Jlb3>@KetWh0?CTdHd?H$@8zgwwp-?JHJig97O>G);cMx$jxTC6O1Tr&o zisms|+jVBvwz<+{{h*(l0}!e5e~PjQ5qUJ{D0*SW@2~LY?Yh#osYTW6il02IW_4Xx zA)C=*WRG(vA-ju$E`)C@9UhQn-|ALPrV*7n`gmu?;qAd^Z0!jU5e4u5{coPt0TnES zN<>$yHc~sUd2Nw;>UhAIMU+H1Y5k?@`sB%Z8~dIXBSM6vjmAvE(#IT5BD;I~!J*}k$FK9)(!?er zgMmpjK=ti)`|YdiFTQ^L!;AM?Jr&Qvc ztPU3vCkDZzMW?QdokcTmS4($~=H^I((f~yVD3v0}0TE>|bHYtUAvm#nOhaBV#;$7t zF)&L2ab&SbXgh7`%?d%wnTLT%nLo#Fk5C87dOSR~>u~kPL!kj9qTxX&yGiKIG*@#G^ z18_4*YoAh$5)d_DoK7FsV`e*`HM`qaA8P`=SLply`~OxoP@e-jktX=BGOSxHW~uW~!jP;sg z#RyO{c0d^{29vw>Fb=2VABLNnuzE9`NRWuBU?YodFW11Q+wKF=?a>eNo>IzPvOZ6J z1ZEb|*hNc(k8Nv})*blsZ(l}v{@YJ4yY=-NDx#3!?$Nq++gj`H=wdLl^jTsykUQKE zdr~ccz$u4d5UB)a;ye!saApuusX@f#3U`Bb4iiR0Avcm(3>=Aslp_$FIz!v~QdpJW zEZY!FRchYUbvR$lnkI1WvK~!)v8&X#1=;1TDUhubDzjmzHT8K$DUL)vGpqZvGyUC1 zmowV5L?jdv76==1BH^_;kpdLESnOF&L?kRcfSPi)LAvWFlA-r5V{L~`mj37a2+oGi zOW(&om{{!HZG-#a#0LXnWd@0R8U+s`#*w|7g~~)@w7Qlqx@x5qLEaf0Zo~`Gz^t5? zZrI`k7KR+8eSAFr>WWTI#3Y=+i#<356~eN+;R>p?8w+U&vhG&OBGv5OD*o~7cb|X# zcDZH^Ghu@TFd#-mA;~xJz(25`#SaDNL8}UD{bnknXwxj$`DHC?9mw0ny_dI(5QsH(#7=zV4x|)$ETh2MP8uFNKlqf; z;za(-Bil};CJ?-uOOXx>F*l~KkL>G{c1xsP`CZz+@LdBuxI ziD>0*Xqp&1b8G4uIofs=0*i(pUtN9q!}8momN%`CGP4WZkM7L9NY;IVD_pvhd(1y? z)wH-Luj8H(mHK#+Xv^|FB$@xd{OsW-OQi455?dznAR-FNOl&Ly4$F=6byWCfebq*a z9U_=jvfFeIA>DWxz-UZFTChA(P7(TuJ-f~kz`*Q)qhkup!a);+d`tk;|hfJO;iO_OH56rAy`#eP_8R&YHcbFsZHYWJ#Yo=pYcAh@-mL;p_t_! zTo03b&GsLEcky&l6JRmMF^-UNw>TLQrY@tLw>ZUH6o1QG@AN$5&G*}dclu!7wIXom zWc`gmM$A><^YgRUSJ$6hUa)&4R#g#kcxNUpNmHq)kUN1{koZFqQ?fs@hWss+o`|RT zb|XY`CeXYPL#+bGBm_tIP_#6%L|6fLDjP0(J`7I|ps@%Wo6N$uTWBqA}!T9jbzW)qs(Cd$`8 zT>bv*w{PCA))Ao&&hA|Y2y?}3dnFo6TGm|<>Y;6XI?3Rn4Jo5#W9rG0jvMfkEj2#? z%^KrQkNj>Q2u|*9mQ1t|Q3y>|Wo8Du2clVps=ipaw$yI5iCwfL!$(YT-(qsj2^Wu} z3`2ZAWFSMIXW)qpA-KWKJtFO!vACY2b|xZ6VpgXxVBdf;0|0dlR!L|bcG1L$nB^NB z>z3Nqu9vPN%wAWf+E!K7R2qU-K~NKl|~`N}@po6?a`U z0*NRE;Sz|k?}R1Y^`YVxWZhpa&lekVQ*fiF7%E zm5GeN4px{DDgl_AO65%JDz;s>-gI4zW>5*#vm!|%k8?P~4dpEWfpZ8w82{cO!wfq$4RUZJXMGLp55!Tc+NPXg5%>WTwigA0|NHPMEy9bJdO)Eg9RM%A# zq?y$OSCvY&M>6?jGR|p6J-W7%1 zy$*mVPr}g&-lCtFlq6#1L!N%malC!0_tBb|^A@KFgOrJ2?gR-+v!-6%bgNajn5mh& zu!sU?ptiG3@G6MtK=j))6FfG(|Au@+*q zY{1h{HbC6_pETJ(Eb0z{600-0cg)f>S_Q3*LcnT`*tt3NRKS8^a@a{lMjRJ0lcd#5 z^VkE8hf^v-vKw2Z-f{KA+56WKNj@m29|I&!1b}czRg7UyB7c-CW)=bxNQ)eBB6nkE zRt;%!R&BgqM!dVJ>mVYtI@DDNDykx!SdoniJ?h~I%AIFkkGA0!kUMw}DO)g1{<+lSo@cpwL>5~%|Q7_^NpS^=<_ z7)Gh78DL}L{K zk-M!~l!&x<6%|(z4#Oc9rGb{bbQL>9vwqyfi^v$}>{UiTaZkC^0aC(4J5`ipX9Utv zF)?B!_7HTjs9wH(_tE8yLuD`mn;V4Jn^sjrNR>~g2L+Qn9>3Cr1LWkSvg-WvuU`D= z&#xn9XXlrzcGUTF&w%vWVSYAZAz=-`T1e5;v}CQXNQ|K2#jF<|O9 z>Ih@?Z9TvHWiWTTjGyUwad)_hRK27X1(5(Zqm2j)L`W+U6V3zGASMxkYE0#*&b({A z?ci_`Wf3rQBBmu~31z69)l10TO(=T{BI;ru0T-50+KC2=kzA4BLL9Fzb8(+Zz;jAi zssWPcl2<4`8DmmP1hb@R`5{puf{{B3ryPVtJr(Id5_uEdZCMA^suH3Qys0RN8P(|M zY*GEE|J#Kc(FUE}g!!e|+}jNc&zl+1yp3y6lwbsfCpC$bX&L7(Z+1ZAM1Ptg-$!uH zEG&xD)+p*u#aSjbvpp&CGYM0hjfeEG}PDJ8F&Y&O_b4_r=>PSywuMHiZqXKuz z(@=Vk{l!EwZrVSWN&J=GsT`cl2`mC-=IWZ=&k18BRXB&H0}Ta zxv(;!FUDoUGU1WxFi8M&9xxGMCs!pf%%Y{Q16q$9=*i_`QPIu&oAX&yheqW|T)``< z&gUSzzIw;5^Z7-PS!~@y92hE*E_{_9U13ezE!2CY2uQe0S?N@fo0x>l5> z(l39y`SW+Lzy9%NZBkW%;nCtyxjtes?^~KbmKm4!cK}@7-X_UDgohcyK~(iao}Cj5 zV)S9X@idp0F_wc`0Xcb3FTR6D3tIswig!5%;U>_ar!K-wsv($l=4S40KILoW9yjGM zCKejNvgGa-J(a^!dXY>d6Av2Y1>x}6E+70>YBOd3F_7zJxCQs`u@s1^FcAe}^GvcU zjKU!kQ!1DBMX+AXLsRJtCMt|11T0Rx>3pWuCr{^H=b!!Q_4B7so<8%ZPr9c{v|h&g z$?CcVwRO{oRkV(#tpsr}iy92T+B#ukZe~?b<*sW(2pII>Wh_NM`i)S!J9bf>onXzw^e zfxUszalqBBU(xFUaVd4@w#7AD!bJCf-Cs_qIC%?X3fF;#gxD;aB?>^wX#l{?VR$#Q z5E#iJV@z(c4n+zT2ylofIV31E8Iu{Jr|xCu#K>ZHNw=LwU36x4>qp{yLEYpBaz8q| zYe>$^CPaRzi`yc)4&Vu2p=?ESLjdGoYHN+D^^ ziwH}AdlhsxpU>+>y)eAG`SNv~U*XyO=A$#Zd~WBsxVTsV&E|S(w$}NquDNYD74$$> zA*Uo3dzuq>>SObs(&S!maX%`KREXHkep0E*vXkr5&1Is%Ja6><_40htNC@7xAYxW9 zuR9azw5qBdy;$x?Y9D35f3^Oi`1hnIOqjb7VdZ3^_1g677ppJ6eDPxCEY)mY12F5D zpc;+}PTs)~?vcOVSHPgdsNWMh1QQ{Rq)+O5c+_(w3c`^@0e4InhRMVaS*MYByCi=! z^TaGvVB7LU#CWY)=NSf1ndDAJ!jy2(L=mV3{YoynRKY)MK_o5lqJmt5iN zY06VO*CX}GAQ85wH&gl`+>Vp&~*P(V#gGLmI^mF{_!)%=L zmi&^sJHY9Z+*+MgXJ=J4SElx(C-w4b-L>^k8{EWjZu;^3MO8PSJiQE+f?UiaDN}># zI7K#{w~gZ!QQO49e2A;S&dVPtRJr?c2U5-<%;s4>Q$#T+kPwvl{A|A5_+=2YNUX#R zVk6o_t2Ui9K|_UY74y`c!K32RU%FYb+ebPk_MjeOwbsj)Hy{yZ zW*}O}j1X!k+O%EY3fW(hI%2^O5!;;1^oQf>6#GlBKni42$m@<=RO`d?LDTucvx6<~ zc*-~IT?!F#k0MMMhMK9*jkuhA4AW3CiK?;yJSbuJdQwaPYflD?1cephUaFO&rOK6f zKf0a%JYJ%K6JR+fAQ^p|)O}Q?r({9jo6b3b^o|Z9{mfn}i-WnpQ%rr`jaW6wzsex_ z4nfYj`t}OILJlj%+=p2k4D*Jb=BSBaL1|X=*-U8luC8alxqSX+_U*d6jx6t1&AXLe z)qc5H-&}W3E@vNKo{>XhTM;?SPSJC0!S%UC0UOM(?_?oGhH>0#ABh0zfxN|`kLN*9 zA|h8&E2-9c#au_MtA>KUxw?Kj4=tr&hQa8ZS8XRu^Sass*%mJ6@%UBwj2#KPFef2y zpU6n1x|0JznTXAiM&z^bQcuoD)=x`_m|GC`qCli1MBdYmKt#L{Hj&h#ka8Qb0Zf`Z z7t#;XxDSmDLCygaM4CrIMn)!f%wPlV>tnr&ULrbiQSt;@VgYDYRp;}j4m9JrbEQ?h zd|Itu8hcG>VcqNYd}XqVSjW}7cgypOi>H^3*jhw)xn@fas2F4Jy@Ec zfUsL!{SYD2BQ>j2cySVW2I*vnn_2nNZs3poHLLpvY9H|ABGvQzDh2~t*N%#rw_%bx zXBb1%m=bFoNrKY4WjIrTZq5wmC5c#nxw&mCOqRv(@<@v$+9-E-XA%}x(X6J*18*Uc zw-`DZL!d!KLJ5PLK)Ttn2`8=iOo%;T4=v$6C!aRkcXbB0-t&Q#;nUp3 zR{tO7h`qopjjWENY-#8PS<{$0CAXYy40sGCI5~?G2lhtzq6u}7j-0%1f}@R#s(Jbp@0PCsHiIKDa|i&@yH$I$ zmW#7+w&C@=pLAaRb+x3-%kF0JtS3$ZbmwL7cbvQ!|YhP)l%;pf7 z1r92eI(O6#8FyOSBPiG-J@A9`7IzI{rjBIXe7;>ObCk@**(*$n7Wv5>c;TH$LWQ?C z_VLB6^%#?+t8iz&>0CK-mg^I^0mS6{2OA%~#e@5WLjiB%O&Us4DW(PsLf2v5G}f)H zU03t-rR$g9zx>m;uisp4qKQ;_(us&*2k+U3l$cUo{A;<7_?@NB;8 zwC>U)+-jNpOz^+G>C|XdkfMJ!kEwyrhbtK&&lqrWfFK#z%g4GC0LP&2o&Q}**Y$tM zA4ydy0B+=rer`*t@0e@uMHfC38919o+&G`V$2d_hZUs)_jf2SDo$Hl2lz8sFyG#VP zs*=S_o0{RqF0Sql1~d6$CeJRL^(J=4-rGust1uv)#kPx9g||Olor`>OS+_Akr}SRrQZW<_=F}w8q1`W( zQFc8Z5#9vlv*zt`^>i^?dlacaY-X#rW743~XsC!H`tAK_%YTt$(33dSz$jRJK!iXF z;jW7enl)$FYkc;LiXo8|i(r;0=6AedFk!Wx)B@vd!#Ti+=IF6KVX4D5s+N2O>u z4;#pU&M%Vd6RSoa(t|m1iFWa3Ma%~gQI_cL?n#IB$oT^8PM0u`W9+!yca7F|q^o5m za$)n7@eEwHd8803Tel=tEtDatQh_|M4aS!F8-@v!q1@ZH>NA*I@Nh>QdoOuN3Gp+l zbv9FB?>aEo4r4HZJjOck+_5Ai`n^^+4;I%b#2$tnu4&|^Z_7dR@JRNcZk~q2a=Bm@fN2{n~xQg5!@UMt@KkCeTmhN;m z&*Re}AHFz~a#jlENsx6|oj}6JQ0t+H`;z=l&*e_3X^p<#hpqBXSye2&#rQC@gA4;( zZP{%34{bKX{;;bQa zn6pSVBdw`h)86^*+q+nIc=$23;-?>53+|ojZci zywO<`h}d122|^sR3^)iLz0&aXVzFMw&HFBk$*Lyj%U~8U6?o*esiLkG&hOXu?t1mj z%jIuBehO~q^DwVPL1bQ$n}}%U8KiyuANv_{PWBeqiTQ7-)K1e2>E*3<3c3C1lO@>V z)9pJJV__=wx>%SfdK3wZrhb2Y()t&OWpOw)dpIOqBGRH0^4vt&DF(lt;o`@I7%+0-MSL8FMKKj-a z)loN|5l6(VlscjP2sMu&Ez0DkS=w-PJbi8Weddcg+UsEJ4eYucRQ{u_=j)5`fN}J=8%OWqJPX z>&=g^fBfWG{qeKQ`Pt&E2}DNw*rJ%(%y!GlN6;X9ANZ|xzzOO1e$T)Rx4r#m>~R%C zhLNg|l6(eJ64la-DWtBcbh+uCHXPwj%*+wIHfU$cUR9MaJ-Uluz9coJU9hnVmHLkW zfcMMz=BoSb%U9pNxB_WYNsKKKRU*O^9iG{VghW{RREgr-n4QXLWRXnTb`NR#Y4X5Z z!RsjreyV>s?XO22x}+`Xq`T=N_q-!_>S2_0Cho9kF**_7dY&L6*|9LgorvAHelKBK zHXag){SuyuMI4fQ<%4-gLYT>bVJPvMI~|3dA(^@S^6hfg$yw*_&f8n3+M3ys5N1u7 z&Fd;i*Fhw(qU}~Q2?=bjq4v(*y_tpiOy*6qT(@jwaCR^`I}uATA?irrB+daO=Fxm9 z#HsJ&rV9cQ(W|%1|NhzcKfW=o7J*vpRuZbnb=R)yx>gm6IgbUg14^fwx!WjX znU1z3cca78nxvV&;%edM^MGuQ>c9%{rspyNNjIB7^O5w+M9g1_xBKuqL? z3Wb0KOwyxR@&Gu9LCz@4b46{6`}h%kc4FC4^lb?caWWOd;0BFIDM=~A@WZ%FCdMV+ zj;u@nEQLR#2_0c6xkZy91|NJJ6W~Uotkr7ME@oBix*FZn^G~Z#wQ&=ag%J&v&JE7Q z$`)fJCQ|C!&9lpk>+84cHWJrW6+E^Kr=Stc;y_kI5_Zmu8V1=9VIuIm6_(xASFhK< zy@=-@KYM;Yv*l(M&fWbcUVFW2s!Q%j%$bz6YS9u?&|onVk*bzNEL-(Z9B#hxZAlm> znw7ndq;MBbge1Usc=s#DTqR?@iQ#TAGUqCY2$LySJf^@A-L3d}@APoJD$uj0Dxk{`)~PwH{Z(BxR8_Gfz?eg&N|q<`2MF2yatPXy1Ss-9 zITB%w-r@u?;RC@AgvAALGwzrwCWh2Aw0}U?6kx9MVz){mCUec8VIS_(cyRL(tpEXs; zBbe|!G{{Qi!{TPnl0*xCaW=a=o4>#5R&B?sK>`892OpRqNlPwWk2t{%$!fl3S+3)| z)ys=!^X!u+|MXbohtw8-R+js{3?GO5R@%~u0O|CA z?S8x_59AknMm{q$Cz4yi0u%B<9PHwZ@#DV4VyJHKP69I#AgMcsiG0vq^v&;`ksRW) zJm^9)<~Qkwz%8C#EatNy3<8p_2LMncl0kd2m@5P`1;*uhb8%C*wjm}KB{zl}#+Jz- z$i>VM63?DEi?IkBQH2=lYT4QQx83FWVgq~k^1H?5;x`u;O~XQn)<$ckQVxM2VqA$i%49ubm2ML5pNt!@6E4rA64Z5}?RdwO3 zO;^?JnP?O0j%_Ro%RzF5$K!s7!I;z7s1T9GNKDQyXdMm?Z*Tbj`u+FczFc;woB6D5 z*VJo%rUs^aDi-5V)u9aRPT~8T?xJ6jG77W6Gi~3A2&=nxAU*^aDx&VTWe-z!;hyXE zr)UKR-s%SwIfM^GdA&j1ZK&?@updBA_2ZyBQU3?7#VM@!w>nQ5(0f7*f?2I{v6xrt z3`5cq&tPRXI8AS%_7)R}XS3?r<$SqnZ#I#83B*Isi@Ot~hiCAhDSs^#d`;}Ls`i$@ zeScFo_=hm-uD_WrE);U>N-fZewu?UB!H*U42(d^a=z&^9$_uj{4c9MR( z_K0Mojt!TWi{(1bD{VI$Naf&YcC+4udKLmD0)oK8%&q&QPR2tU!Q21@0L!F9BqU;8 z%P-$`fBNC(%kOVon<|8Ed0nX_)I;C*6p^H89Zz|FPmiEKcz)vcZF!<$=~0W6w78Sx z&%@>x_scLQU%|-z7)CF0Ey#MQ+X3WWcK4kg#?Ecyea2=l*JD9Nb#xRgUB?Hc7kjHu zWn*BA>-fZzr0Bqt=w9{=b~X=-nR2gyLYWzmRLBj&4D^gqxn#%5bZU?%=grl1z1}P> z8ml@vv+i!hArBk+^TebOCp1+PyOu!Fy9lcnGcbMr&6|svJl||qH?L;1`q`6t<;1p` zRb~{n_GZd6%3Pr|>Uz+rY`uQW6Cm+M?RblOiS`i@lbNUr3&5!xA>@_#tPVFftBXao zjMkbF@%3_3aizgkiAlVt943`VEB}x^4AB%fx>)nsHemcO^H6eD5wbwa*iD{F~RC^NN4-k#6k9y?y?)`ShdbH}7sz zVlj;SZF!56W2>y1GWgLu^(}CRFT%E8LS`vQF^`E5k-AxI18H4p+r?R>>((IRq}T0+ zh0bdYDo$WRt?G}IArD>0R~GX~xy7k%wAH%(`t|iUKVE(JdKF_>%(-i?;Z!fq+IE$~ z?t~3uW`;S%BP^=40|q%!O#3gjAX_otFit!CilXOt(%khC>woBr?&>i5B~20%B18_D znHhk|M6ev-tEN$|^g!VPcZtxq3gel(w;0o>4^W^zMKtl0X@jE+$|Ax9f~$zCEanY) zC!!*Pj2w5zptsS#*!TZMR7i+8y4680&gP57TvZcZoeQK|nH8n!%9P2vJGsFP@C{h& zI(F@5c{5|FDR}2~sN40mR=Ohn?E810|M0%`>gGm2`|>UIGuXTBhxCsPT*4=C59}rl zEcYP-Iq`6JXPA4+dxSNm$w+BgXY4j_w2g?ZS0NC@iI!crT(4nJRuKF&!kEY7j)~v! z2zyGPm&?toS8xB@AAk7s5AUJ#dZrXtinf{6?^mshxTuSGR`^q4Igw3o*g7VpJ1w@_u1C?mm_nTk6FMi$8J zbt};GBO^P!9`sz?>0Q^lpAav7M1{JzX3^O3tg0^0^l}~mX#N5)XByug7M=G+x!fQM zAYo~()tbm@v$W{c`KGFB7%_1OfdvjTxM<*{H$L=}1QBi!CaujqFbNYA34?pAC6jQ^7_|$K+tNne?M#%0wIrk4XA1YUnz=ak?7E)T zlO=ItISAS2@ctlauSI31gdz3LHk+1wC`lyUkZc=CQh>jGf+JU$c;lxaU7TXsi%>6N zXq7noiKI0b&0{=Po0%>h_iYLeJA*KMr^d_ll{;4z@0i5g-qN_oD@0@t)ez0=x(EU|B8JaW=0n&h6&ad)1J@2wB$2lTPjJ=iVbo2?K#3#6m8Bwi_pO|NV-7 z``j4s7J<)ajW#p5n_Wwc($uc!WUO6VlOi-=1vW!X?DWc&AHEU8)KAh75y69mMTrMZ zq#_tIhpK*awRwIyyK1`_BZJnRy}MpLIh)n9uwJjKB+->KXooowsVW{TRky4&a^#uE z=-COv!U~IPf*6OFSL@HedHu~#SDOupLRR;rJc`uE7`Vste#-vGFLDd-+DqTT?}%`q zqGvO3X5X*lGNAzfkgksqP*A6g`lqL{0H;7$zql4}3#VJFgkQWHg=E@}NOFFBk8K1% z?ie1Pes3nbSw0;lboi0%gQs4c6oA>F zdvTJ(D9IB8P3IzxjQnlELw9EP%A8|rZuU8{6G!T9TI#3Ff!^)bJ=H8b`|ti(d(0=QeM zy0TVl)9>G`{>Rs^zkPY#d8q1242jr!`;lV5_k+3D!SvE8ciM6HaT`qc7QDm2z&JPz z;RoY6;|Drb-#ry!HM1Da{ZwzUb<4uEZ^OG^bNrQQ88I`e55DKnC6(7&y06pe!+NQr zgX!chG4hcKJ^IqD^Yt`B@gQ-1GWw}0iBvQ* zFywquwNAkyXhoQ`y4l#f>kUiA5=7K7PSoSE9Cgx@lIFQMsD!F9u9i`M|K;mHeEsIz z*Q-sJ@PY<1h-aOkttjd)ChV>|?v#h+0}aKYPV${ZoOV6XFW?VOT0+oPF-mR+&12U- zhg}{lVE<3urgGfZ{q70LZy^?X5SOr9`#OE1XD8c06XbFp=Czt9kZmPy+hM_Np(;a( zIw-rlNDx7QfBbCmeiggU-JPH`8Q|D|RfqOj8k|iL4GViu9}gDLhTv>fkOe8TMDVIL z>QJpZUafB4z384jpI<&Fi{H)Z+3q@c(!)8yTNI&(?VjfW{k@7tClW8#OM?cocG2kD ztM^YX&erDUvH{*M*G;9frc#y!DjWOnk5#GLO+zoS&SB&7!LxznyXw3_*E!4Klqpv#6@jlk*vok;uka zG>~<7y?9}EI5T-t-4lg%Pc9epW)^~$% z7Ycv_os+@1q8UdA+8e}gRySY1c=Oet-oAUi@HDYQBrK|`s`t2Y{4;on{r)L~JqaW% zN-l_NrFgzrykB)9)WxoIijb@8n@wlPNG;KQ)L4(lo_$LYVM*d^;I}uMFTQ{EfByc@ zOH&62_6kl!5y5Dbkyq6rggU-?wu1Njnurr2J@?;}dwC*`@YHU}R0G@mNj*mW{@3#% z8PB!=w!4|Rp(M4tYu={+@?ZXs99ZNK8X@RRkuqy zTb$SDwQ$>6M=jSDl--1(iohWA7|jzAFMGNWkb4hT*D4V1Hg{Ugc5wMmKMk_ypW!1w z-quP{!E5FNz=h89+HgR_F?fn?vE@- zGD?-bHKJWvy5e;b*`B&6L+pLCMHoWu`lu-jvjY&#{85RUrIs3w*hPyNZo%Gpj)8ro3-q8msxFpCdEuw&wihl)ffhdWv9mQ;z*c3m`ElV8HW`ug3E zwSM}^`P0j~j{|yDP2DLluTVT^cW|>*^-9 z6m4FGo6cN#742#r&*znpryI(mgPwd^lgTjD-)2LC_vY4{&8n&^gT-jd#Kg`dT3d_~ zWaIe$r<*UnegD&|WowZ|2K?Mz>-eXa0m_r#m0a)E_ZK5?+aJ8Qumq4`@#t;Zq^alb zvbXZ|OBF>ij5Civn|Es!w}uyo-V+|Em*6zYs*V)eTb*znNiyzc2lx7hQ*ym+|2Y^q zkyL~wSWrEiH+8MTAO}ATrltfzqp9SR=a=uUe~JiBNV8F5-XmGFUit%4-uDi2ya{QS zM|Y1MsV?7cDh*E;x?EkI&2K(_I(v2=R?AL;P+c1-kqR*x8@coV+$|{7FN|0ns^qE? zjbJRwXJ_^Mo7Eg>*gKbZt4PEW!eygE?jS&flJ3YD)FcuE`nzKjNw97fl1dfC=FthE zs;<_n?_Mnb^zG`W*Q<@UBuQ|4r^55WIL}?+<-NE42NAgLn-)6F$!!@W=A>4e3BHLS zlPesEx=;Q^#~BHaJs<>1BOqXhF-t1nSj^l*<IuFOp(i&%lQl<;>2@cg3g4xvzcDstj_DeLY?FNI^MKhYo2m>AB-MJPUP5sRZRS zt>>d^8Z+}eiskMd69{O%7#YX5Wb>8K-|Qoy^6w#s6^+((+S2 zb;Qox8hY+Vu3M1bT>tf5vW+|U8}7OS+bfBIVMVes8`7|zZEcBL3rKt46CQl8_J(p> zH9j{p5;-DHn(^7CoI0_ib?goOdEJfRmCD(?ZfX@CxG#{IVJ7pMAGj)BseJPM^4;=< z8*5NluklCI$er|&;#&^k`KM=R&CKJC zuivTGwFnXK<%YTy7<1J0N?4 zUY8?N^eFz`Ah#^$6jX(*+iaw&M5^oM=HI@4`O~ZJ)m7KRg&}|-1SwbpGYb6v`V$WV zX1U*|m=DH&#}#xAR5-A=n2_`^2wY62?9+)jva9b!&pK(|Qf~Ss0>GqTOiVEXke-X0 zPx$QzuR4r@K<=jAnK(E5tDUSXjVbmMcB6Ds*_}U~HtLY>#hsFp?7*1eo;qZ+IxHF$ za)vkv1%rw7jpe)CJsc?7L&=|BE-q%(+ocVC9ittA+XoHX(>y1$vg93^V~d(R5-hEe zIbpd8t5)8;zy9?3nZLMxulnSyzL<$Jkyz{Xln%gqtr+?cpK<@+6-`3TBv1wgb@5uV_=leFV8T+qw;pv$pW}lvjAC$av~+#-t>|ba>POuF4$-{`%=Zk7P#}VP zObG8;UC*0v-UJ|t3um}Ou0^unu19A)G zUV1+#n8x4Cqi~|)RUx>WBsfex|Kat`3v?e{&eog7^?Y`AR###{Eg@V6Z$Z5{$}jIT z01zq2Se%K-gosrMj9}uM^`hb{@G{byRmV(EW|=%SR~$3dG5;OTW*~MU)Z{RxNc#5e z>WgpQe(}xqx~nyqaH@faBzoAzT#Uar8Q*SUU<>y8fhgD$Kf5)aeJ6`?YpTQq^3*M4 z0wXbIS{XEZU*o>R9LDaD*=gk+&=|RAIg;Txk>>WeuL}3LH-~TYXe*h;Q>9pT?g3+O z9KCmM?VH{Iz(@h^ZjPDORnVr^s@6>#)98fcMNdo=_b5prjV(^9LPQ$W;Y#@UqbD!k z-n1TJFzm{kKX5F@EJ!tc154tXW+I|E19i?T5EE+QDy7uat(&SQoxfVeH`mus&z8^E z^X7cbmJ% zm#xpWTPS9=_7u%SrH=lFJKl#vMP^h%y6EdRzPnld;m!%>sS(WyVZ`^jTe~qnq-F+-5h!rAUfU)b80teCmWc=kW=@Jg_j@?YoehB5IcFC= z_&gP+GSapds)Q3DCW1U@STzU?)?1XdL3th zJBwY{8Jt2mt7}hW+$jho5~c(r`KxvegObg_&YMN%xn_#O7L@aPDzQRk=IA!w{`hwF zZ(qLq>O~u&b%ma!OwxOqScrwtSC9L7plz9%V?`C(0kH1kqY4z(pt^R8(cjwYTcdVK z*@CCTJ|)(xe?RudXYgTmVmeTg`hVrL7r+dV3KQT=8av-?)+!;lBYE7}#~a%F6gG0Z z@x%srrWz6^$gmk$m|0`=E*gBYR{PG(gT4)L%o&Fr9Q4lY;=YmNBgxBAos(momXc)n z#0cVeFtVqv#U#W*E11vbAty~^VVYA zy>+q`p6u=J+#-C^Gb*A;-rXJU4E=B4z5ev+yp23>_~MK!BIa4$oRhe>bqizdG_*4f z-l@gfDJn}+L8nx?a+2{Wq7Q^oa;BCtat0C1(oCq-!vj7782kh<_+enEr)dh+ zOXZ$fnR%Dkd^J-MK6nt()zr+*d<*yJa*B+M8{uxIrYa)LeE9G=1nIB6#Lzq-R-RWc zppv*2aZyWzh?=R;H|rZ);qyiFhrfOO<6po0{CO=JDwU?Wt#onc4(hBOz{1-@1HbR2|9lGR$8qjj~X7t@s_q{g2v*S}oq z*)qJlS)85J=PTm&6A`QW4Q!QCi0d0iG|iGHDKUwcG%a^KQc7a>C{LNH;?9<6RVXQ{ z0!^M4wO9xjUvEy9A-Z4Q#vpuetG7!)VnY=g6rQN~uKF0gqKr}mhFXB=o0OVb!?Ipo z+^qlj_lw{D_4?C=I;sFyKs4;1qU~`E+;I*(Lp#eeSVU zjsPH{o|=@LhaI+uL<`w(pu`jyUBj}osI*YTiac3s zv(i@OChh`-EK*8ha?^1A>E`E;U(c3u_QSh>cXlF_DqSH-klI2`NgKZjFegQldr~uD z9+TW{+Sg7y(S0)av?BoLZ*!DEA{Q#%Z_{m6)tl=}4PmuBWm+f3+fDP4Qq}3CQtKk4 zBPc{(cff#5v+R`pqogtka3tR_t*r_T)AddIr{Dkl*PkvwT_#!`YW0|yps1syOAT~|MCh$hs2N1+v_Ocr>G~?(RAE`$;%mg$zg}FbFHYyC^Vb`n05}GbN-=6;#6FufN><_V<7L?aw!<@k%vv6E{RK z(;$r>c+@`7i2#q`Hu}IHyyqR>Vqv#>dQPE2J$XtgYb49@;?0lsaZ0O_B0!2UOSB!} z@GmX;R^~s5T-H=R9DolVxhrqJ$z#|?aJACU~dA~uVR7G*N=+wZFL{6%7(?m*LuNJCu zeSKZIyjh+8J>Hz(`sR0^R+aq2uTOq>cY-9F>kSvZjkdeo$)B1Tpxc}McaIB$o+e!Y zOHHg+D{eON=CZC=R~syY-nw7iHlIvG2tnxKWdJ^gBb;t zXdU$Iq=H4#+|8^eW7dd$+MTVMJP8>Plp2D(d$+i}O}FdKCc0;KnxGrac-&RBwIGUi z)gWe!S5Hrs5RxBn*UNgbQsZVrriH32F5*UmUT%Diupu^ozy9&#%?}^mzB@mSw^x9w z7W<==k}7tMcF&Gm7iv3q!Sq6RX#dnQ!fs4S#5^Ft({=E)TGrQBSMN?%H|yr>O;c5y z+H7Hjz+XSDb{F+LsI3{-g6jr<`uo>^`NJ=N|8g6psysC@t(A4PbSGnqNUE-4Pny3^ zqQygI)1Iq!f!R8vL#i?snyHmgBb)8cui= z!-vPQA{$B1Cq897TCfjI8nUG3m&Eg~li@uwQ3F=1N+gO{a;fUN@uqEGQJ$vMRW%nj zsZp}BK#F)gf4e;W>h9k7rltKd+q*tfb}AgyA4AUcXuyXeZ-9-MSOrmt*6Ph`ju+xtIk>wg zU8{f#3)NLjfBfrDzx~svpFgdmQ-j-DwOTgHo3vJ!WwlVP*Ud(-4~9CBxOhn0b~1uK zWc1xvJNEG?QoGKkuI;z|8fdvH6fz0Jw~c~ro07>BUG~T2VIVoY1hN0~|Ly-dBps_N zpp_wnN(zvzPS4AckdZ%xfMoI_*`CGwGQp7pzV9HdfIwM1H@kiVvo+9^7~G=nrOLxd zN4`}ix9xcjAa?~s;8~r7ENb)S{ty3fe!4VwQp_q#u`vjx%%D8cgUk{j0Z_n&p8aZo z0RQ;Q4RJ!DFd1PM8gEoJPt_2^v7nt|C%Mfw-68F-Z9TZ5j=}uy8sE}v?FS8jWp_4| z`|A`j(Hf?rn<(pujqARgwjM=V%T4^TsgOy)m& zWQxgM2CB3=)>6WjF#*S|gq_zPwgtA@CN?<;s)OEjIpez*G8NyFTrUfy$ggg@aqQ&$ z9>pzdi3&5_7rHp|&|iN$EmOhEt3%X6*xVA-Rw#iPz z(si(0d@Fjhbyaf_6;ZY$-l{l1T~$F$N@vRHE)1ei{)~x96v%k~auMEtIQ{tbx^Y)k zClyHa02`Pa-rYvpekg}{q&x;B0wEOwF@ny>JSZL(KYv+&6gfYsFE?D)`1Seehn11> zc1@-li)yJJ{jzb1tOPw96xR)T~Xb5)7+V zHPkT&MFqe?a_bN3VGQhNI4HJMc(ST~cz^o0pDwCu(KLw)CQxVV=oi^_ElQ11RTbvB zKG>v12x9tmgD*Fmw+r|teOZRHg}wXmp{{Usy^c3Gi`A+LyxCkWg*JNsc8>(;bq=u7ioFG zy+8%i#==6x+@otu&L2OofA{Clzx(@VPta;<7KE-a!jtc#&vLwxXDf*Vn-d3o=N**# z0opP8{#HYigK)zAI(>)jAa;QKO}=bYaS=!-`YioL>=(MyR(m&{I>Wr*21 zs`_NpYzTx(HxYmN@#}y6%h$htyp^P;Dx^0XiUc!3NRLM%9%pHfFBI6V{Cw*5=LTkQ zuss)WRJ543kK0_not>V5u_8jaWNq`Vm3YV9*pjg7isR$%-ehyP$WqGfzW%ttqr(h3 z?s|-aK@l8N0aa~_^E)#0k}W%`$$##5yqb|B$3!n(FbG`}{m88XD1U#*r$|s;RpD$^ zWm~M=dCB)(4g7XVWe{DMtQPoie!>*Z#N9(~WA*#NAE-$Dq*$t|s-d+DEKeu0QLREa z1*({ub-cN4n%j;2;p64c*Z#-9-2VPA>2f2`jaga*WuiAJmlvfkGNCz$b{|t)eUWyT z>bUf6Roq3KPEm@65Gd}OO>MHM%p>c{Zkzb^W_`73l7Iv#-SPC|;zbJ|72%drw$fRt zs#a-}_?I8o|M|CH|MKJI+EKy8T|qSgn4F3G}rT5+t6=zS-;cPf)VVzj`-9BO*J z?0n^}-KZ$;mIsaL^=u&C+h4B_350480bQ~X$S}>2!7%j}G{Acl8DY}O;#ReoMYVhj zw8{EbdsarirlAz}gfB7Mt(tAZw5%OBKnHL1{t+zPnH@s8``KBC z?(XiW@xCY8dik_wKRsh=;HKB@N)8N@o<9HVq6JBX%tX^kd-&S)`A8cj6CO&#Rqbn)iRa=p0@0Unzj3C@u$sT~;LV;*GgtrH}>ybP2k z0>WS$<&8H@YDk#W^=Wm=&2?<9zc#mjzUJ?KzWw7LfBE?HmAIoF#m`?!Bz2nRDdl#z z)BOO0fv$PsB7`I|#;8_FsF<3Ho6}WwapS7>^(J22+}_-7oXk{3r@z3U!M{g+cb^4SujPjSwAjhw3P_*sCaWwMWVg; z*RD&Q&5`ePM!qOOXjpZ(z&O3?7M?Qjf^1!7(@zDD`cZvJ#J0h1x zqC!AaVdXz}f7$=|fB%0??zp>GK|>XarfDCnMtrQ!Aw#m8X*OEW;v?HF^zmbZss>dV zlbQyj+9Itj?c~{Gnqojz2UYgyUO3d5paObOefQ?%{IsUu3WA8bIG7EEgmlrT&kBfv z-$S+tC4`NqP%SrcQwLU}w^zJbd#b#KwF!W!8e4(;`5Dwfc`+{w_Av0F)I=@QeP~b7 zmuQ304QQqsp+%wF3#U*as=0jxN+PbJe!Atw?e)biPZrCid1`JQ1cE2GNN1#YR2MZ; z4Z+M%2-Ls+VKxsWPCm?|iAXd~jD7Rm*Ppcj|7N$kz)6xg_Itf~-IVEOZy zT9@Cb*%QkFl+KH)wu&cZlE%#9=GK&Ip@~B1vNDtOwj_`zP_7O*$jCL`7i<_evyi$v!hp{k}DV_M%vchDuXXm(jjpd62!WRZ90^{Rtq zEydm|v>(^b7(nyG-69m<3l@Myo0#x>cc7{TiG=6boPe|WE-zFuD3W@WSNFz=L9 zBodu@LVjj{K7AWzme74Hz}1OAkJ9SQ1#I*tEpA+IZ@-?NF5bP@%2&3CY$xxZ@+M1RtG6+uG#Jc`WJ*cF5HzOr$DgnM^B;ct@yE+ef|ylQdPAYR zQ#D)OKK$e@vn(y3U;f~-Ul4k77LS+Ev?tePjTw0#P*smWW_Ev4wDo-fOIqoEmDYKR zTOHQJA-g==Jm`_%9ii_hXFL6j06mcf^G~T{?0a77*mt}mU`$?XfR6Q{*geT%GDnjs z!zp2RaAvf=4CoS$gQ?uRo)ASO3E?iz#UiX$7L?+dG}Y{>oSv_P(bu{K_Y4|T{p_rI z|8{kI8zV)Dg5I_)DdhZl`^d%fGhk)7A<@c^Tbv#WSC0;sJT5KKtB7mirq-#cANlqFUCK3R6lJ zs(zj49EbQes8svFRKz`rgsQ4z+yKoF@6Nt_zP?KdQR zeTtRhA^;XX-|#no{ra0fefs$I)~t@63T!2;Lon6kNHGS({&A>du4n6S?!F77Xdxnd zs7%Kfsl1=B26l=3OQ&0YABJvLXf13Hx(s;F_jt9#Z$iF%o;)Rwu@UA{*!KqV9@xJ3 zWrW>t!11Zgt#fK}I*cnx@QAYRfDy#m9>(~mIH>qcq**TPAdRWAr>($X=8M+^P8e#8*6>zP#Vr=|YT0v2wr6OeIt?dD^5( z!>T%Qq%XJEpBg(qL-X^;AAjbDcW3XdkVozGYR}#r4g{3puGyRm5^aj#5}a#Gl1HV>qzJ!jFKM!K%-foB#T!Uw-@J#h0t3 zTCWuA%`Ko%3PeRc(S@d%0}LJwkmOzFF_UO9Iupj-u#WJutC4wN7<&Y8_}-A63muv9 zvwu^}PT<~|Nzdnqp4(jzk(3hMQOLCi#F&T8rRr=TLh-T0;M=gvZts2}bhafv8T8vl zy4V{+^T~u@dUjH;7N#O}n1=RFO)W>hVd%)cZ>YGtp;m}^^XnhZmJ0-P&m+yy%m&{x zRyG`;eD+?<5pSw$!{^>J6cCz?$Jo@hsQK;f)%s>*x>}yBuGaG7g^p`I` zeu-WOCNluzvE_mIkKoQbdF=L?{Gh63`S7d+ z4VVb`M1r;e>c8hs`s_ggV;I54%hzWU^X_9z&tlwR6Te$)WLIIn^T}Qb?KE*eJzY9ea{P3$PVPxu z;1nm4!1-K)07Lp;r?vO->h@p$^_SoL<>S{|udTKi(|Qf4!YD{i7j;!pCFtWu*CU?4 zNA?$oCG`*@o8fs+&f3Fdza?E>11-%zFX` z=LWOxv!LyN`k()oPIo>lScyn5F;ggVlWhVGOZFE6;jRK-&rDrbr*hANO$*}Okro}bjpj6W+Ri8@3xvwd*K zo+m5E)(&b})n&L}oQVQ66Q(N2*Ndyh1I5T_N_S`O=9ZIdP|0r3s@y-U?Pz5eLx9#v zD^FjyOty(H!meOX5>pqwau*a8MO{Rc;t5Qo3xKe6LXv~YATjYW%4H*v`s3G|sIf8z zSg=a9PVOo}Rjke(Z;P%Gk-;l2gaRcXPG@qpN)aG*8cZ0Fd6S;uvTyZwHiVY+=jm7e+}DA`&V;19C#fb&LPz6#;>oN7B^?Gsx^$jG>dsMosa#&?;c*8cZ4)> z3nJGc^S>2pz{kr^YQfiXakYt{RVj!Bk%qS>` zDv$(sQ~P?=oUIm{%_cU@>FQ)*9-Es`)lHPTs+`-A|2_|(7$9|nxI!RjjYdjkW*XP) zHFfplr}!WL`L|y#H|tGI-XG#FR8>rqMNA&hzK+7&bD1P?cT!H~TnUcOpC+4n?~9Db zCORZzuXWN~-)~=ny*(%nOr{K5^(ne(*sNo-iC`P*c6VX03)STOHEcC(ir7*f|BW#X zr3NPA?b zs??Rmm9NrZP@zPZjlz-b{78eJorHCaD*okW^Yg`xLd>I(4kc_hN56+<&O`%^p4=Ou zCueQ7#0HF3FMsprFaMwa{g1y~vWavGR82$4w+_Pt??sEkk&#ahEpWHC`K}+FfK-!R zKaCc59KakRQRT%sLv-KnyWAZG(fuGN^1Ac)iZcIee}ru3u}iclz8ATF!LISMeaCib zgx{n4*ypn2u2lbIRUj0fYcsGPI?J1-JJZp6uW^(Sw$B)|pJy&wwD+AmS{m%~Pxpkj zElhV$ae1;jS%hG{g-GECz+SHH{P;n7YEG8*`!~zYm)mvY0!_OFulV#s7^4O7P&D?g z9o``foj8QI;==;AW6a5yRUqUx#+y%@lZCF=U;bWQ{)b<^Pq#NUuB$36>NC1FzHw=? z;R#cMnshFZbO}Ld#cYFunABuZ>usZ_wfy|)^PA-lC-urbRT|c@36FKB+u9uvRf(xc zWmO1Gv(aGJ5x@EK$AA9qFJCSjt175KV4|YJM3SNzWAZtqerHaG1ENLuC=b-`JtDwx zGzPIR#GqHFo(yo@FIx1H#`7edVc3|Szp6uKQP;i45Nje`)j9$1`*KLE4?jw18xWHJi|f}@nn#b zWfg)1ErMJbAI`Q=^5X4?iXV&nvI@Wc)%oSkX0wSFmY!m_fxGC--ku)cBwFlYZ9UT4 zCKjRA(PKB07&nOy4Hg!+k=GZE$nEWyi?g@q|L%Wy&$yO&u~?jFz&dU!sYr28;-1lb zQAaBdLy^oVpo*uYs;ku^-dwBTFQ2ad{jc6Fu~`~ZOjL}W1~>!H9#@~WKoCV$W8Bos z#pmnvpMU%5H-G+olRPW}Q*x@4878;vAcagsI3PCZfe&}uep_W?g9aLBDNmD!H}uilTF0Q2Zd;g?p=lUSO26nYKs3EM38yD^aplRIl)S3Ka8mC%NwlO4bSH-k<%zF> z(}qeOIluKLgn9vkc#0d6KozRfud=!Lbp7@7*Z1$<{_v|e<7H6CF8UhW*BqDBB z<&Tr73OI#M3pE*qNkrf=#&oh=e7(L67dQXm?J}iU1x?P!d%)uKl&GqvK>-Sq;^&L? zKmYE>-~9P{ohmhr@n#w7P4Wz=bRHoS8Vc?a0YI{>M6x=UKY zkvjueSLh7HAh=h_V-Fm}U4_LVp>*rWDbOM_ftzin&wDzB%>QREJJ*-sp0e1#c7o13 z#Jr#6gb3pc?V3T}tpRrC<~{lZ`mAc|@J?mU6kA+qcG7Zt*$v1if_9MIi&ZJ)L3 zE=t;LK%PAEHbifKyj{}VI|tc4i`kK+xW^Fmbh)T{=YZA@MIVQC`g~uiE-v1jzgeBX zSpgD4@Dim5Pvl$ZnqcTD{d83h1~l&B@P~+qEG5)RRZmDsDrX%j(QnT~h19rkV<%ty z?3XM5>F+=N^)G*ko9M|&M+T%*lbVz^6hTlk6OWC1B$Gl7>h2m&Afzi}^Xc-YVMre5 z7U#WyHjfz`H>g4B(lqJ%`sP3W^PfIl=uNC|n_FOATVOJp(J4$qXJSfC25f`b0X?C6 zKBi+n9S{GJNo6uSb+LbhYsX)5*3Ngw*>$%S$CkM_hJ2H*b%AWU;zT=+Fw|MdU(e@{|-h!_gNZg9CdqeaVVE`KDGs;XJ?q>n@w9uBFDyGJ^(D`9_c2a}uItiIXQVUIt@ z5J}e}p*6q3BC?@IULQ_IGEzv*CUXjRVM>%6*P9fsuW!D5ZBQ?l6>Fub(t?Dg_?mDL zSg6ETYPA4~8xX-DseuVaD{d~XZkF%fEvh;;O;8D@x6LL|f(7jEAteb46>-f|?k++J zW|3=35C#`f)p_sGcU`~09yBw z(Ym@L$nDDZcI5}NYSa5+xJl1rXKYYx17)(qX=9J+i_ZFSm&13On-7D;L=UlLXLT=L zj%icfY*MpvPr~eJubTae%amIGF|nu7g+i8wL0i6%w=+-OeM44%NllzZM(1t?A3aaj z9ix@pzNekVbjPw~&sZC>p}1|bePE>BZS99yk1dKj8LV7M=|&+wy1-(wZe+a?K*heUZ+~poH>GPK>5ff3M zl6F}2uDeQk)b{2cUBB7B#bdq8o#(@y3+yOG!UJ8!y1CR{m*-wg?zYzRaq513l^~P3 zmU4Jy`y_WyerO-a11-`m1Enz!8h0Y3lr5W)Z6`=INsbU| zvRN%{wX7v2v5*n)ZB+Nw1PrJ^;Q)NO(6h7p(hdLNz*|Cc9J_QbSb%+{G-wlt7A6i7FTj zpRd;c^)Fw3^XE?&7bzf%Ky}`CGP`~DKu_JBIcn&rKNFcLDU@-m=CPvDG04@(ghP&# zu^JAI^Uj{lAz;yLwu<5dO?T3V-fY;`XC&{2H~KX{C}pxS8cT+N~-K2j3^tklF(%)6;v_NMt)CY*oY)ZA+ROlP~LVdQzK8imuB20q^C1 zImAR2q%#CRJqd44tBdQ6&u_ItWOlVLuL*DC|P*PRuf{&N$|MJIQe*3Q%S2t2sE5MnYMS{0q z^~V*a4|#mpsWP-(UJNCoAH6klzeMCA+@xLKu#12sLmut;DBHeQ?&%IN(C3=}IStSF zih?3By8HgqA1(I7CpzxJA?>V5>69rYgOUgB62~}~- zil?iS(`6+oS;nJYO)ar&V+#T1X)a<>>6_E#yPM{hFKdWtmaxq`R?YpGl%W^&+fX*K`+E zN{Z_%tCy>j(~D*uEPeTUVQ=1?)WMq=V}xOk51(0x#nVI*Bi*4|nI+M`e!TdXzkL3~ zzka>G@w!?D^`^NIsax(nk2^6B7){td`wrCq7q zKPh(rD1t~Fyp(s2aD(aQ0ab-}loynVLRTwl=;F~+wm%sxkLUj?0Yk?+e7R9E+brsD zVk_Fv8yl2B;)kr=!_ooHQM|i=M0W`$RgjaV)U8-Pj zPnS&m`03h3LRACW#0>-nle>J|UusaizvDEw`E|L-AUe`I%e*F46;(iTxC_0Yc~Uv` zk6&*W7MhRo>hkNm4~w^FVPR$t4>f(mlq>{cQkWpAV!f7)-F}5EKD-arA~m-p4My1k z2_hvXl>kW4q<}*kmw)~7%fI~T=Rf^;(|EP0O?(sANs7S%1w1MNfZkC(-y1<1@C6|vh7oAESsbwaPnXhW0!P{G~QWQpmfQj-R@*| z414l{+2bk<&OqvANMyKx#@0!gS^(~1|MsVm5xrOHzVPS>5Ia@B528yAg zlZb^S^=e~=!rYzaVk*gnx~%m4w0igM{Oi}N*fgQ8%55<)$x~+>&pao1NW^ICZw>`! z2K);tm9PLn+%&BnWJd5vk8nt^>&9;yIgMyGH(wTbbI!BVRkaaS3&BJjrsPJFsNnQu z_4V>=W#Qub=FLg4P>G8Iai{KS$}@IZ2gFfbtogT3U;gVKKK=6PX5C=9ToAEY#{jLZ zUYA}}{#0F={v&o`TYIH^ufPtA-eB~K;%oywCyV#?W?7}V5q<&=jegbb<_%xaqqOT6}9Gsc8G1gomu@FYoS z2KBSJl{2?YT!rhmr>Cm`CB&E{iKl>izFUe{gWEK|5djk+FcV6O-oW(znf|o2=;|IT z5ul2Vi$%DOPtrs4sjX9H{^wiA(1#ukBa_#MWSzZCCI;w}2qv0lC89Ll2g%><#rDB@ zn}Mt(3Ny;dm$k@Ru0LNam+OD{_vhzJzztf%lxWsBUssFO4K!}z=dah5y+2=to2xJN z;%!W~?v0v3DiI~4BW@5p(x4&KUv92{_ve58&7UuS`K$<@BfYr<22uz|0J`fhvqL)8 z_ng0C`S(=>`vg`b0qWGTcggd?_o#f%D+AfmM zemeiQY35dfc-%bJUGo;0IZVLaRndJ?nLF-n4&a#i_@wvw^pQywi(oRLWm2!RF)hs9 z&OK?1S^BIMMz7X1P@Lt?d)g-;qj25VcAYJZsJKt=-Nf_YE~|_IkJh@M@(l8W3ZAVN z%gQP1d32BXZ+a#UKZvTT;MX6{e*XC7(?v3?lSfr?ryUtHh8oU?4ERjW+54^0 z?Xu?KZIyAdGB(>9i)rTxzV3*eVRa8){PKn&ETFQEas9`?|MWL~|HJv4v&EvKdy=Fk z^sfgNAzbFH)4u-Vy ziq8J-TSwpVo#X><-5yQseXWk&yLCGfKlQxDcD9OEdE)U??=7cpFt@l%{yLCh$F}L< z-E;tCNS|4`CPxd?jP9h|?w-x0pMSheXKKEp{;HF}-Zq@e4H}5TOOB0pfS=lIRP5Pf z(@yyKEJG2Fb9aRV)3cLM2bIzdQs#kr)z=;>I-SnR`Ka!d`LBO~4BIE6H^PIz5FpdlxDO0t7QXn7NxRkr5D`xu>+wO8h;n<;2?w)u+ z;r-?iIYaXwy#IOm}_89lEGpAEW(jKBt(HU4(e#e#!D+&Ng5KaZfRmqjJYU zhq<-1!w-Y){7eC3P(`q7C!#pj4dQ^8C(%(;M$2px?Wc43;6(m6e`mMmhBfI9X&iWN z%!`;}QR&&rR8@#vuXS!FuX+Mwe|ip+Kta%7zd!r*<*&g)N`&HAn~!G>sKaP6{LiBp zllwOCBmf-wdADE7lP|(bMN`~Fu3-wRZxd2@w~m{O-~Ve3|Hps-?|${G57)OhZn=P~9ZnUd73LY}dbdQ96c%~1# z8awXKlvX>TNKB>{cDZPbEc5ne?gu>faU7Zr4-aq&+#N+m*=zT4x`N<-rC?u+PzF7L z+_y-Qg+QFGhTtwM)@P->D_a>NbdL6f@3{h^^-U_M)Lum9;k{pQEdmp>zX zxxJ0a6GdQ~D8GDde)rd}|MdHh*Vo=OOeypFgf0r05>n)NGp?e&f8GHu&xdEKrXErpTq1PgM0s&tQ73z2tcQ`y3c`M&E|JgmPpDu52 zMBRd2UGsN;`1s%c@bPaSuf0hDA%sP8i78nyK$=a1k>Gf?8HU0-+7DFvKRh5izTXYq z|H@seyUo1X`dQwiIdO1bVQ>=7kCETA`@PLP#u!9lk@z2Y$7)w(+*e$St?Y6(2~D0- zA~6Y0`|v$JhaW}&w2xpSiITEEozt>oou^_}@6Mu^LRFBGm~!nLta7IsDDL#kABR}s zD`Rr->CjYbxB%L!mV+^GkfN4SN>DROpubtvr;FgtS`qpO&3{;8khg=Viry*9}$uDw9 z8aX7DF3HW-y>V5^Dz|`{ibxU>D4l95Oq9j~qEr`AY0JNVyuJG0{_ubOzxwz!4{E8JPBOEl-x9^RRVD)02CJpp!o>mjOt(J_RoKiUF4!|2JOL5ZQh@J za)#!8I=RCGCg{V%)h?fmfy%=iDm8XOoSFB!>kj1ZF(&~J2%rl))FfX7V&k5uYI#f) zQ1@h-cz`f%LE|B+n%(rANeDGSG}1SXca>ht)|J*$N#=0E=Rj7%0ULhOUz*I&4|Zx< z@G5g-dIyxE+)5zY0iqNk09EK!rOQQCR{@e-zUQym`$qA~f>og*K72U6-h6ISLYZ8G zmoO}9AYa6U_5=C2llArui=>QS_kKEA=Z7wWn{>iW`j7wV&-HTg^QY^p8(64=h0 zzlx#sS+)<&RN8yDMxGjyx}z+e6ahPeTQ_Ne*@tw@W1i{^wo%H2P?3{mwOW}46?yf& ziUaZ7E=zJCr3k1pK=}T{YPm#AF)@|tOHpqdgOBK|^PH`P2c8kn`IN+qrPzk}deeMq z;@5SPRO?l>tgQ+Ol7tDRT+S|#%oX4;^F45m@`>DvW|!QZ&vypd8}i`Uxrg4p7!Lnj z6St!M7q-9TJ*3(gRk4`hVLA5CfSiZ7VMe77OUX-0j4`G3GRZr$$1W$DfEgD$?7^eE z*+W{?y|u}5<)NwyRm!5OR!gfYc#7$}V?!OXsdA5$ksy}~dHZe|Dzy1YfLhN^Qc+%O?~nvgk@A+hahTDWc`0B5fZaKDICt6OwYM{XwS06O`gwPx9)QtBd-O z8K@*H!-nz0`?If?&F8NhI$Wr#(i?nt=WO?CEd^PgYTn{W>zG|coyQ#_*?$QmkES+& z1wuqc%-x^?DpHvODY{cqq$Eu#H`y?uX%43%cDXX#??xS7oIP-Ke?A>#=K%kh?>l5e zWee3kr~j<@=`qn_7o^tlS-1cGp7$Jp6M&`|eK4svdk#ECujroZDr{j*v-AB$Ts|j3 z+kI51uuO%ryVW}OQQCzk?&x6*-IH7-cxp~h7ALE!3MzD{@->;R9{pe@qgCZUJwZc0 z`BfoNP8QYqX}Gy*Zf@OUk|29)qs1__y`uq>1z_@29s6;OgXX}d>sCC+S9kZU6R=}S3Ex`vDD0@A zIuFABMo%m=^Ij=hkNr!u3uo&zKT0lU@I5(1!3>LqE*DlQJfR5K{&#>ujT0+%cTshT zjG_p1`S5mmdCe4W*P8@dhaN+|pNRTGz?r;;eLNrzmE?(Vh(yK!EgE!+U_l@O3Jvb` zot_=)pZXqE~#FY}9?mCMJmdt~r01Yt9|T_BPe&?4fu+Gk+Jk z=J0OHowuTlSLSyt8djOQpm*NtJx~Z(yI_X6}nsWe` zA8|Og(LzK(Gu6c+ENb)QDppx=|9P z`Lq*E_lbW){{Eu`kLQ=_oJ|iQkgyb8h*X*V7}V4(bIr5vkX2UKp{lE@3L%6%7d<&Q zb5U4k`o@2Fh|L^}_JI@@hN2-nf}2o74zJk^of| zq}i;4fysV&Z#Or3brYQkv|6)~6v2rXdKrOyEXMXW^uZk(Vh=dBIM7I@jOVf1w|m-Z zvo-H4zYQHxv+NH&ia117O$3n?N}^|4f9DiHrKpJeVp*q@(#9par)>13k_4(fPrZ<< zGE|j0`)nspGI?JKAK>Y{7Z(UyNg?O{yq#flfXkrGh_`d$jI3_I(NKJGG!wUlEcH4O zGhn#ro&Yuwmzrsg4lgEunc1$wi=?WF2t8${bc(K2VM?(9R5j3D4en9IcHA{*>of!? zou1sFYE=fK+|mB*XhCl!Ti>kI&|UF%n_4rvRvt>(oUNw@GbWh)4po7;Go_@e0At#m ztQM<9U0YDiYXomF?cQ5X-V3`3H)07(9cMd#>l@ z@a1$CI@q;s58*g(|I;zWE zJ4m;vD1=nX^RwmoSuGMh#@3|N3&=aX`TDdznoqp4F^%=W8)lDkrz1N8vb9JqJ#gI; z4a8Rai+i%3fh6(-g)FiJZBq-LrE{4ULC=tLo!NUBQ zSOW}iLZWMNyl^w4vJOE+Qiv&~6y1}v;NehM58rcenuD|cruR+8xqUx(^;&m5U)6DA z8F!@cyZpQI$DR0F9Bw^(Y{iJB7WI^3kvJwhwIj2~mOvy^OerOZ4M@F1d9;q6 zibwk3_YD}BHN+TPmbZ(>DLUwBl!pzHvRm00vqwy~5~iZ)?O&*>Q#{2*g_BiX1qmub zad%Y^>SU1bnkFSBTCfMMcjg?R3H{xhldE@|o4!LLhhP6cbP4o%cDYC3>duJClewAVdhJ3Nyxt3{lXaF;`LY>RMpy5U&N|ymt}Cjgw>szTI!mzYQ=+*dG*LuVRE&^Cu(OjzWza$! zP*;$yy=2>W{&k2n4YU$+Rpb0@v8?UtHVxPDplRGmT0Z8=dk%n=bLlXj5L?^1?ZJ-3 zk(Iktm7Wx)&;S6EJZG)i%`J6JyHi=|5+Hi0!~;uHQNvrHoDn6Jlb{6AC7|s&!GmhKnlW}7Y=P$mQlII)j?;KxJCo5L{W?(? z>^hug!8GJkCVC>7GCZOnifcf|d(E_}f&~pBv#a`!_x&`?54fcxa?XS&eQznS*#^d* zuEs8e>d_bEf%deMKV%3=25j#`%J+`ZKG0p)GOTmgl^gQtsk1zk7SAyiCSi=EdzKdo{S;6l-kxu``x z{*`}i&s(%B0z)=)0YKVN?c@C=B1(rYo79LkZ_n}Ni(Ov0D^fB+s%y{wzm?W>Qq7O` zbZwiNXbJV11vnV2dCo=5ga7iLL4x7{AXes3i$Xa@6+_=gA%G-MiBXKuDsY|5+>`WX z>0?q;Kj3Y}5}>50sw%J!t#Uf)us{;ZU|BsPxs%S2K@31u3q*`o=Zy}a>q3)Mk&Vi5&74a=(z3Pu zb&zm` zE*-=uPsI?ulgk_SRZQIK(NIMarZm~RBl8wrsz-G@Qw=~;id9vo=#>T4v|KJB-=RnM zVMxFcUn#kUqAn5C&dye+XYukTngu6vMFGM+d77V2x)U11)-&D3bodV7FQ}DB(4rBt zyPF9h$CWOCZ|msX`{NJxi$Ii4gO$8gAZ>D*slA!YC?cvO8gBmAPQPa^uOE4vj{K<} zP`e!VgLp_K@k}cU4j%Dpdqt} z+q2cX^QB0#+(&aw$pIwsn4L53yZ==N-lBZ&rTlE#<|SKVi}nGcBbSl=GgcEN_B$_l z_-(UpveLCT6r#{z2q6TuU=}p{xl+71yo&TD;a<2{Kqlv6LbGzpj^ z92Uk7h@d#N9mqS(%w!_cA}JwgQ1I>B6(pLef4?2>*?9{;-YE~NE=h#>q&QjGo3pB} zL61@xpGJu0G5X^dqRODt>lEh`MT-~GU7zSyLj^*es0PjUhYq8x+-VFm2^fjq787ju zrx2ium_nhJ9b>W{D9gBrj9!Fyy3ugRalhw-*mmJP@NTsE=p#2Owppt88Hvvjys(YP zd8;P5TS{wu5KE30*}IxC=63f;Y3wVHZ~AeaGJyZ)@}?tT<;f2Yy~`D# zy9$>JT`epCp1$V+y{>x8HzN5=YI(@VSB1N)AS-|wxLQ>o&X*q7n&)h@a+d<(KGU=P zN#f6t-QUBd@$n-@UtX(Bh7<3McD!rKtjjSciTrjt-0wJyiw_}%d2(EXnW^O&j$lws zN>T&vl3$(eNZ)HQkAcc#a7!Mgm3zMt#luOc!?Q4l>h>A+$l0B*Gkl=gBCBOafXVY{ z_v|}9e^q^Og;C_m=a#V^10?_+^!(Zvfal?EgPO|QHw$45R;A?n--ofD z^ZvOu#Kk3*nN^42WKsRd%IYNiTRWorpYhznhq ztIt`Wb1+VfVZ6K}pw9i;PTudZ`e}_2ib`q!o(Ut*vpTC$L zW}=(E zx^1Vx*i4A|>?PZNwERJV8x*k^%=FB3V08UO8!W7h)B!mF{?`2G{L#U2jD@xBC#N0{lIT}5i z_+t_?cD?UVNiVOilu|dlH;eN>f513UX*dW4qU@$phf3q3A}J$o+P7pN5`@Vh3Kyy) zi}=Gy1zd919~_6N4hJL&)fA&a%`AFD0H~6S@b>Nb+1r!4hNmQI;?jHv<9Wx6J1Y~rm+NKrynul*}n&+i%SldtW0i$@aBo?DBM9XII7 zE6WMMT{bYCfT;~=vM#_dFpTm?A{Y{3DoP|mHH*wUMu*G94T5tMb2F_$Xgk?0Y!PHS zU8vF-&XtegB4YWh?{r7n@qlcuWl}skq*DTI)fIL2D^LCo1NdsO!xCkC93d;_iwJ&pKl{lWT@B8u(0hXT2i~F&1S0oaWXp~ z?C;lf@-e_9EymTphqf9fJ<`=mQx7Njb_jNC-^ShK{m1dNn3$9AGA7w|^9H#4(VpAG z7c3V**|x8k`SFo`6FOCx$zuyXv z>egrH7o8Wjst#mAb(btWNrFx_0SB$Sj1;wVsT`l4*mnSLzl9%Xvg-qEt$d==#-Mh! zj<-dBTLBDFlu6&=9<7VR>WSl6$d3X2-QO~Hc$B5&yA@2(wc`2`fw|wVq{o={Z?0$C z0{56K(L=UVFXE&a-ZjWb{e9c1c;_?7z7`^0oHhWaI^c8_>QK%J$&Twx4vCSR1e=l+Y)yP`2WIbRvs zA7!GOQMip=jO7ZZ9xnq+^@49IP?;`kT~<}lelg|6r53&q0A%WhbO2)b@MjN+Z%*sC zXUiZlc~n(DAOMs9oe&MibEA2dU1gdc&KMO>ZdY3kw*wONN4dQtqwK?fd>gmvpeGl4 zW+kc$@-U}nR&yRp^X_93yBeYQjvSLF(8JgKoyJEkCHJ23V;B#*gczbRCXD^9hne)Q zW_XH4uYUF;yaZ{GdqYwM3FX9I&+|qaY6)PLM7V#}NwXDGdvg`CT!gb_2$sd^wY3YyOxd}F8rN5@W| z9Q~uh9aDYm9c=>4Kc@X4_^^Z6Cu&6s-#dd*7s*5_bjIanbBw}J)g*SlLiyn+LTg^Y3K<1bUnhO5W+)N)B%uGp;Sz%!5}mBdm!(R z*_2@xtSs}EK-NspBS@-RSGEW_a|tflVhOzn!gqs!4DFYn0lQRnYEU&zAKtzRxu7=P zUxQEf=RF4WxZ~@^K9LdN&`t&s9Cz$?`Vd2Uu|haoniRTbM#ph#?UhvS)`FcVhtK@t zu7AkD(_nbM>jidZGHl61rOBdjk)iB`qW_hTKrM|A>`MQSJ(TyXiUaMtQMk^#?!@D) zkU9G4KGx&JyO+-=5SbD@)~UN-ZZ1f*>L;ug3Rc*Sy7cVUbUz$6YNQ zH=`T~B8X;HxLV&-_2T{8#fS5Y^)H)dllk}5ELNAC5U7${qI+X&xrbj~-xcV`Hg~7h zk9}vhXUOx%RR{`Mqaabr8CWUv-#eYn_6cS`iCC!y7({4Dd18Ut8i(2=JH4S^tI(M{ z%a;3E;~U|FJhYD>!`dHrCVEocs-tI{QJRj?00>($ zNl`XdQ0S6C@g(A+-U?Q<4yMxxG#=K;<8jX%C+-YjVb@D^xMGO=HO<@Nd!YP(16Eh-#yo+=EhybXs30`un>Wi(7aQMTKyog_-({5G zkrwDIIC9f_~CDR^g1Z9vRrF4gy?A8gS3L!Sp^Kq_06$)WxJ*bu0_jD3IIyUpE zrJ6~I!$IP~Ey8Z-_;F5+&h*GTafd#xcKw;|M&%yK_)K`>*4Lf=?L#yl=bq*PHO=&m zrn887@WtC*q`BNgVb5Pm&r`@)^YBlRc6?OQQBzGT=qX-xY zQ&}#Mg=v|<*RKNdP3A2+v|(K70FW3{sH&72n7@B}`uXd6^Lf)Gnwh&hy^|{t*i&Ef zWFqXz#0-zft(fOR(MtK>xd1Wa*CvoAB_v771&YLAfCv%+sIi}0ZU5IIyMqxWbob*R z-933}Ukqtx+xfxk2pBV^pZjPMzg^Dmj<$|d8O?9s`GC8>OyVk)IIAEh%dn_Q zFNE^C1IFyU#W$>R=t+pIGz9m>qI&msb$t^*UvESVP$y6r9Hk%nbldXV))uqxUZDDp zd09ZI-3bupo3YWOiIE^RIh9B$7O+>%fJJdTcM^!_XTcaqfBOFTKLmE+N`W{A$1oSrDN7jTmmQLMbXIaTx zrS+_(w5SxAr^i(WDBCnV+=C8ukLWTva1Qq`IrzoV#`5-HoP3XVPp_bz*}69+PcAYR zd!Gc4*Md!j*(H_SA(FChQpcgqY(Qz9v5-f<)j8wkwZA?!F*p|$PL@^&z(JSqOqKQ- z2Dx{`3K&AP6jwmp+-0?}cjxuz3tQi&jU$ARJc)>zDUqJ+nEtlOR2L)qQH0Fav+~!+ z+QUs8U!1K;jCi7$S*90dXd+4OA`=uqsBD@I05df+DbUFoiQJ1Z zaib4@++gdTv;qzTmP=c$0y4A2)Y*I= zO>cSjd5fJ}4w^iPIHby?(L{f9UVXSa`SGVqi=v`Yknt#IdY;?QXJM1#aKa(ggA~Z>c8PM#_ml%0WtKz zk;b8NDg>G zDO+CvVzWy~UK?X7wA;9qkI6)0dW+PR50)Ep3Ug4vNUBAILgni4rm z*ir3{c4ty(jzHajOLr)1AuhHviEWR1^1S*(ss&YKB%wG4J6nQnX>Sfo9F3(Ma$g6K-_-ptCwN8AY`SQ9Bm6OPPk0(p* zpRcIm{t9ER-kq%*ShAqO2IgUF{{Dh1MNY&8A~Cs0X)6T-0IEaB{&8N2|Ax`1UawBk zeH_7_6nkj4(arSS;|ZqJ4I5Hn(l&wf0nK(qGi$}G7BsKSkbY~OjO`~lYvE2J`{j{7 zB-FJ5pyU?r?ujXR7dOA*rg#!aiqa~`^v;w8ums?(!?zaQj#hPRYafl&FWT?vILlcp zb6MHhYFUL88)|?EJf%VF@87(3V##EOzguPnqzz5iJm>`9U6JA+3z zdDgq<VP;IYI|lYjfRZW3l+wsM>pSow3xjg4TPS^n;bZi@6uhMApzz<(!OYNZ`9mqH zJ&zoppDnZFfH0S8nW+3)J3>AgzIpjkk5~kMe_nk&TV7o!RTc3)Ea(ShY7>;~`8Lcb zJsb#&w!xr>m}J`;QrldKQ$o~1)lIA1cdUFp`o1%U6Uah z**%!HJvdgtlW~W`2P0{-QwVb(z#vYDvyh6*j~hj3W&j}8s=E@<&fssSo8GhIFyko= z$z+C(BP&F1Vz(m49U9+;Qi2pO#(M0S6x#vgHP#tHa+|O1Sa7N?Ng2$67b^>N9l5Fg z$Mli3@UWDA8iGn?d~>>BY}^p4;Lbd6?8(($Sp=SPXYo41hPwml>?Hj9!<*~tuYhq( z5`T0gYCo~$aii317m*xS##@p^vl|%4Fj(^o1NT1;hSCun*vS|S{XYp5;zdojbDimw z6Qz@eBcUUeLr-b;+#LCC^X_DS=ig`l17RYyO(jW>bcKnysD4ms7%deqwD zUV|MowI$Gs#|*^8+J8}q3D9hs?66dHrM49EU+>rad?sby0Hm{_&tu-WYrK;M>hnBJ zEc80yWKk{ZkZ&W@99gRC_1)0zcExK+7#t*7oBjI3*_)Ffa0;S7mB`~$`$P=`VVg2b zr?HCmY(i@@HybTRS4hz!(kch2ModY!StsKjlrZ;1IGGr{wNVacBOO#jJMK9FL_TmiIVGg%J={s)|_>L`oBV)5I84LH1Rjp{m%fAP;^o zPR=nA$>TNdeRv)gpylbO)+LFf4CZhbke6OzYzd@v_VxL2DJtjEj(nm;SJ5&;_DD46 z#4b@(#8g*{>ilexQVJmm5leALcei#N_BDnI!4^Q*B0Lk`)XPAmC^QwEt?bu7oZkHF z*W^#-oIabjKii(!id8!y_}Qp-03OwOX|xn3`cRj57P;OjCFuPHsH)S;JV#0-bH}^o zKXqeLqGkTDFA`Fo|6oG?rxsjNjQC4~_hq+o(R(b39QmZsjcTFPJ?>eo%m{j!K7rAd zlAY1C11#>FFCM;}j?pFTRz+clW{<2)Crv3?*7wbX;!LY+H5r-P8(s!76qXnn>*S^Sx5)%PBq1%3Mb2Y)2u@XA`(-|i!!C8uvdL6xuec_iM%Nl zg&ASWcW+l_0;q;3x&PlVvFfUgNe*+Tk;6dJ{O)KWbN2Q3OPLi0(fm6-vpI#H^-DxS zpp4Jv%3WR8ruSp1I8ronEwLnGR8%}gNu*TuQt7MO-oJeVZ|YDr zO(PeJ^@Q&Vj$+7jpnCW=5akRuejQ^Xaf7Cgla zjka@k8M*2b`JSWOY4DA&p%Zl#Yq2X;rRN`1J%Fe@Qd}1oh+}-yI_P)@ina@0n`kQm z5L8ZwckPx|ByKWBRi+48RI!j}yeZNSe6XvaN0mxyKRHCF|5mJ3%KuTa(W%BpG|?2Q zG!+#A)XSU-==o6A!n-ZjI9*gODt6mjuT*1W{g2&e^t9sqq93ya>cQA}w=fSL>K~nfMbZP@K9!L2d=0h4rD*jbUU*+YEa6j_E2r=-t~< zIHBCN#)m=T4l%pOJ7)%2KV-zD)s_M4BUlFxz>{mMeuya$@7v-?GPY?d1CVnEx|cQp zVC98l@s&!dS~0V0T4gP9$as9DYn4A>y8fur1VD0E)#9i-5K>7g<_=Mo5SxIvvv=uL z28`Le2AQAY%C(?EJ02bY`aW!0A&lwltUf!b#bdCliLbB5n4h=c=wrV8h%#8d>YfUG zpWG2omf?r@Cs%*Fpom#bk}DJKRm9(9K&ws5&ZWq=a$gPY60eH(4;525a^qe9P+};D= zPE{55uTl!Td>@lba!<(tn!*&JGAlmL-dPFnB38``(C${2y_=^%an;J{3S_cCCsf>F zXYL+j%&%9vKJMSgu-*(LHFWUp-En6IG^klvVYI~i;uNFpOA}L}SvosiEb5SAdX1&U z&M<&cw0KQVUBz9@Dk_sCx-4q@)rU9BT9iqg!Yrw#bYb$B3`q^Qq5>1feK&1fw(d|R zlex*<_C=33g&xDu1HW)~{ZOtSJU#Xxvb zI2L!d1CfISN{g&RtC^UKfNmrPtw6GHU`!eFGJMij zdE%utpwfC@DVF~)1B2a-1!fNVl3%wPvw4Fg&mwUge#s8j!1(4MhYs}aP+4xSYovpe zjdRm*({OzoH=C54DSB!@%bpwih});@Ubv_BeY2XEl1$w+;&@W;5U%j+syV`Lch#wi zRHB3dAz?cgQ`HXd&hvaG>YkR15CYsignH9N3$J@bp0C{Isa^d7SYoO)(2+br{Z~J{ z{q*UwxlDq}nIT$M78*}4tH{_oS+{{QbTbR2!&Ou|7G~bV?uAO;rHc=fhwF}&PJ857 z?TV3!S!b>As5g945Olic7(d@4q9@3xeK`k5r$Wb?VsRxOmf9^G*Ya`a&&RCUXJ+}e zyOKp(#;%Bnm{1ZWxr5Xwv4NTd(@@!-9>ycL**e>pqATTX>I@Od(L#=N{di?&2kwiDLKK#vfgYq zFJA@3*<($U2FCX6?>BEj&gg% zG2Hh1jKd|k}?=PAmEbI}7T z8upreU6`mrYvRYOrtJ<_I7iS*Bcr|x3y%K%F zJ5@#JRQ~54x8uWyv!B0QUR-SyA$hc*P17I@1*pqJH{?Y)-gJBw5q5%b0%^S*+KzV1 zT4@WHmeDk}`=*H9ujxH5?+%w-eWkg`OwqTmUgs!%>C|d>On_nz04{@mbmqBgGSO84 z%?G+#6GLTY(89JYvgG1fOHy;gWKcr3>c0SBrJUIj@I*ufUiv_tYqe&n!5k+_bEqRx z^0lMaM+6McrJqchpQzirrF{Y!1du%Y@+ z5l}1R`?rgW%XD#_C=yg{)I!`cX!~{na$G`X|5Ys_(=s;080eWZ)A@IhDfPacj0r)L z@;w9DN8cO><%kB@&g6z^AUFcRGFlur32-xn=bB z#;7Wpt@OGkz2xZ&5(@3c)DB7JzRwDyi<8=a@;u_i!KU>LKovnuK!~7R)>tm8ph8bM ztx$s}f5}sO(|L~fV0{%PR-msCc0Bo zN|9!+ibd5M?Bt3w#+doO!^qUurTfG;TZitf6)$;`(NktlbO;yZyG|5HhMibc`5h(g z$_Gl&j{ZD&@MxjK&eWXC+D?~s9kkEwyeNX@3i00xizliu9zqVGNNnPAwR-<%_36{~ z#Z5{{EVEO)y7Mt51Ro)ObXU{s2D0zaax4}J6%IU>XERwm43d&j596*8p8r0+w#(ll zL$^zX1x3!UbCl{Hinfo~g<1+i0-7-;5pkDwN?-(pt4dWu2&x$vp{lz3zD3hO_==*o|x{0@qBqua;R_1L- zzsas>yE3g-jf!eNeAk7A&Xl`|-#{_e1D_4I_gqEpnIYQW>VGRL_AZrOL~S3^irUG1 zX{~j$&6J2bV`fviw?fx25d!8+5V^jMrZ8hwnW=`LfQC?-vglOr+TvhmdC_M{J*PCL z6eD+4_Pf}L-#;XUVyDDm5+@@Qd1)odJZmDGqB31nR(>2Rs;No&kt;O4hFinewi{)y zI_4owZ>ra}@+Q^+Z{MyyUo_Dr(Z#nGJ*MuwPeQA`<0Fse23m!mBBH&;-|G*Ep<>|n z?Yg((Y3{2lh7Jh-#+B+0+%fTKkf^n1$V6>vFa?R?cE?0OV9HoTYFp2Vb|9n^6N5l4 z+ik>@nkI&zbqJx-U>(VmtzzyS+dZ3E^;4RVR+zSMqPl7G**T2wX)+_UWZ5FhUi9&y z!geead7hJ5uB{`p=RwfSih?L9g5aJ^{Ot7f{Cw%$7%G^NBFTf6kn*C^t~=%}2EV;1 z*lIFVJUef(%T;^-k$2l{Dy`t@{b_XobU=&0`=PqH_!9jzn2RJ4dQ7H4pfM#4N`C}A zXCGoSk}JmmvdGej1y3l(19Uo}5?~o$Ze>4Ydw6CK618pMder20Q8rBCo?wsVN%geL zZkvIvyLRcl5(4kn35KA>&Uq}fMkDPQNWq1)h>62Gs4Cm>hC#o|^SYs@b~I6=OWH7{ z6rxy=MOB%Bl0xo8crHrB2C_0FQ;Mppnq5{Z_l<=>Ld7<5o&C`%(+>h*@Ohs}r}ill zHIh2QnF!Ocv)-Re<+vq%)8g70Z4^`1W~)V|fFa1geLZ7g@o@DHx|nK~7d5rhlhwPo z>EqY3ZxwkOmj)?d&$Huf!*z(U*F}4{wEcr;l%ScpPQ0etVg?#|E(_fQSNQf#?b{pe zYS{i1Rz__!yJ^Jao{}as>j;%aZLAG#R*{!?*5q#0w1RtzDOF}UcVY6($Q#=cz9iM0 zCjfqjSw*-jW9omBLTJhPauTLF5h0T|L6=Mva(QB_1wwYRekCFxuVvn1dm~N8)()Jv z*t373#^|m|$dhIL;r-dw_2-+WW1<^HQY*xUr+L5!*v|AAbT<0K?(&~Qp}prq1}2Jl zFF*5m6qenA=l=d}*6D5R>cCBsB#MZ5t13Slu%|n+T0l9qB$3{@JIxeS(p4n{$%fHh z+~cx_g^CcG^>J9n0kdFM@|2SM&TaU8go@eav9rP$C;_zS$FS%gV<1#T@|N4f3W>m=((44Knox#H5y z&Jux|YlAG^4%s-H+s0I?plVSS!L+I>Rn3FqfT+RDgb89$YZ`}Z@*;Nd@?2q_d2s%=}Te;;Sd zw)W2*kW^nlki!ZCol2!-xi0}#JXS%^PU<=+=$@!AwT0o|OQd-8b?NSr6iAjpFo6cX zKRL6Q+-cPhEU(_PmSz(mtHeN}l#hr{T*q41wiF!FCG3wu)5ywA6?^2M8%2 zP@&l@1=(l8i)=YWnkIRqr|2%87%C5@A(*>oMe|J)QxZ>Eo>#ZtcRH@|+VKYA^v)kB z4N`u-RiDpKRy!gtM1$F));g#PsOEt07V~;pC+}-U47LNqL(cI`Ne^a;Y+^K6e*EWe zPJj93@^;;@9MCN;{ETPf=oHg-XO4Kc?L8Uyw}&+O1A}O%mNp%}+pS}(YQ2;YO7G+q z<(l7SR-n6M6Lm7orz73%2gipRXCg`gKai)x;qH0dgCwXzad^pmK~*(q2&e8&dW>m( zdkx5PRWFx|U_uc(Q*u(GCsjvB0U9I<-%Y64HUC=zhK}p2SnF3y^tNUgvTu{|**s zyIwnM&S(bg7sJp)kJ3uC?P+?m-LK{OqLhBB*{m@m7V2~t2Kb_?t12M#^v!zQ>RWv2 z_bbUTYmW5PUzOR}S@r(i$7HCVuLpq4gW)1jGCR}-XDaemLWp%XQf!qq+W76mC*u9l z3JfinXkAjN8bqYnMyYpVaOGZMdIQ0-iBK?vHdYLnu|kGnB*6fRgAC-;I{!rwqC`t! z%+|@|BIw!4Vo?Q8O=dllS-IzBZG%_jZ!yi4zNtoy2~HOF?)~!P#f4Ldkm>06p2OG% z(`GZxe*1btTV9M*&L-0pb9dv|WBb0hv}kXZhlQea_@eNo5p+5Jf$0b5qaECP^3g*Y z6^Fm?4Cz)ox4Qx4g+i3zwkl!~yzt!lusr9Zh!Prig329?fouZU z85*JO_YChpj=ASyxO4`4v3u|%a2&1gxeF-{LP!NqSM_pX3MP**%U5rzFJTVjm2#qH zahs=Rv+R0BBLx2Dyngd$`SD9b1|ai-?inz)rg^aKwBeoC)|6Zir*Ge!OrsnE$==&%Gao$@o!Tps1*WXNGtiVsklL4<6VrBF?CkpiGv zEHa5)E5H#q8zhK@Hb{6*WqS1i38kp<-lJ8@kT?U)6P+#&7V070U7^m{ow|cL4{2Q_ z(ROXnl?6EhQlKzOk}|GXMq4AJmUuJ21~7~JX|J)^o6U$oB+Oa{w}2FUP~@wsdsMC4 zh+U`!i%Q>|Eh~k`CN5;RhD_ZFksH%U{4X{lud*PMz{_^M^ zAE7T*StcslV}aYpUaKgR2SQt6?vk>UxwKFl-J`*sP-IXR!sOnbhe}e-%euAVO(`NO z5>q1zPys{ zn24^<;FcMEKNKkldl5!Ji-k7;&8{YrqnT$UZBglRX^T2g+?i`DA^qjdEIG$D)GGv$ z*-3GHyFKsjYWDu^>G|2!*UKaj@aQ=VU>GFi&IiMG`KuXQmpo!neC)`kWe7tZEFJie zgRdYUAX=*7-i~k;e`Ydfo9x@IUE5HHeJ`5Lg{Pw5kk1FLD_vn_n&vuYPBu5Gn|(--ZG_D zA&aUyKRfBZfzTpDX~-e*Wo0z-I_52A)2?qQk{s!3Ae&Wfzxr@;d-HjnvV+ahn|Zq* zbCOMuW-Owzs<-x=!OrOBF8*0&nQ9LH$=t>_$`zAZ_Clbd=`60k#SGa%rTjw z|NA`9IYD$YQAr1VuVVU+_82cyKA`7WG*X~>xG$-}DvOObDI&Id=LOx$sFBoGP17LD zFWAzw+mpx{DK1|0zZJQYQ7#3hrJg21)$AKZO4~2#Vo8oNsqyan2i@n)HJr|D7X{HF zq$H({voj^yKZn7#w72%gnp*DSXi+ssRfW@4oi=M|juJ>tRRHeEMPDmRz{Khr>g6(#f_UZ-*Qw zOI{i$xuaNeI#D2%VUewOe?~UQy)DWgh|x_lfM>2P+EwJjp%|X$W|@2GLbEhwp=y96 zdKRZD^wf+5(L<;xDY-*oYKz6flh6fG36@uu4i?R357Ju9c4MxtVx9|~HgMzyLm46L zj$L{VK~WmXtXV}l$Tb^+Sk6W=gk{uRc~lFNR`NX$;d=J%h=cBbzeG!K4=qV*PPBMr za=a6gDh4FtNnnuJY}6n^WeqmLAfj|XJ6*gztHd|K+Hy=7v;_&jMYI_DTg+kcuVda~ z);>?#w(9sVpCf;S%6ij?RLUyo&HwO^i{Jd=lghbq?N*X7rMXjtu-u@V5&Y-%8cM^5`dg%Q}SX%^y7MaDc;7+ZqZriK?)Q}~bKw$!4c@Uj|i&gC>X}3czN<5); zg7TIM3kX!;bg*r+mq;t3X;%-U*a~#RtHGce8s9)wL_Nhigu1d&*-P#Wyi)l1z;gZ> zZ)5Ji!Ntw&*VGTz`6zl2+wyS8L}xE4kbJBTpV^i!j06VM;o?Nd+xxcrq~6B1SpD zHa$jrDBCH$1q&2fnWdD{APW(th&{fD-e~>oInzo%1y+h9Q4xWmjbFfEP0~qfxpm{@ zDQ!|V{K$n%d#j~J9d^BO%kM4kWL8yX*YT#VPCN=-mbIOpgvwr`0K#i;Gd|ST;?e6i zr?2XIQj4aUoSqbBj`c`!jz&yDTvAK$WJxyEM}&68l^5IpIPAlB9-$Oyo;7IQ z?x+HxIO%PNA}1N;6Y1SF7?RpECkA&Tvy=?F2o{~5QgVaB(BW7Qk<%alCAaEY?s^6E zhP4)f_xw=*>C6`VHVTqp|T9t!|2Fsn2Hei%6X|6$LyN*(7=T@Uu%gkXL94gb* zs#-1r;BfF|tgA_W;M|JPuOwQ$w3w$;l&Xo1TrQ8FmTFM^iT~ug)Bza@d z&c}knY@w~Wkf56P1LqSS4;Eb0J}L}>Wtgs6!;6d%4c zzjd@2PF+m?^ZE0>R^-_Mh!c!w%jK_sIQe>exoO-9v%uU36fspf(r<37nZZsmS;h*0 zIfL;n5eVGtoW0-EK~Hwy;_{C0H1zODTT%ew(Is_tl9?r2A7j5qfnew?4V~zqDXLd;xhbU}^9|i{Fg*mx{DkYgz!ng?4=_)KM zg?ro2e?f)C>jPqEg*ms%zHf*RKy$tfg*nANA#L8jJ3Ie$^XbbvC3OT+lBe1N4=$T# z`IIAyV-dJi232=|4~0X#FIu^&HzcxN^PY|_d$4IZaQXtqTvl0ifi5T!g$ab zeJ2nzt10k;@u)!s*Lr8EYA?p4~O1e1+Paf&g+QD71(DYQyM zvXtme3(1JMKYI2&RDtgk%DI(1ox01ZUcusKl&!}Mn(j4IZpXk!8X~T0VR&Dl)B|`4(N-WzR{|Af!T@rdcgde|UFt zdwaXiUdVZ+c_fe4e$1I(mbNScWrYq2X-SF2Ky3`^4p~o!+`|XXTXb;Q&i5LCpUynw zN-3RJeJX4;2lFjGj6INIRPB=##d82u0hf zq-4EOh0ifxQ9^S8LtF?YAy9+EL>HCT6(9r@YJ6d9>owLJTl*6&3l8I7-|G5$t|0&m zA*G~{UwwG9TGo~YcQmMle4OqXJe;KtcVnyh&#J0r=l4e;24CEw`48wEhu&n~7aAJ5 z*$)JFeJFF98H&IV9GI9lJj!FimK6lPmAS<;t;3lwH8nHKqu2mJr&H)HmAN}7heOK% z3~JEsQL1EvxM|_rwm}pERV&Y!nVDZezrzTY0^HeJexuZT6|SA|Mligh;IGI&N-4 zz4-8UwYl}n8{g1jjffgo32RX;)|MqfEA59N>7qa4ohFbFAXF2exS-|8kYk3oRH(8> z=fc4LX834q&;_u)i-|Mw2BY(SINyXG94VbwRV^YAu%1efe2&@vRq>FVgS*d^hagd{ z>1=Ku_)KcPr^wscZ7*Ukt$a5*c2e3d9MMwZpo5A}y9;Xj-U1P^9W&&8*OxA3?xvp_ zp>LfcfT{r5F+(y76@tdyRI6IWL$hvDj3Ty2k#j%tEc@iY4jQcK@uR8xsl6dWo94+)Xc(?XG&&>y-D9| z2o%E&Fgx?S4J#^L#pSxbqhr>m2bba8tlLLe}?NXm-;10eWr8;|09p(?`t zwZc9g`n`Blha9c?EBDWIsR5O99J zJbP0E;;}RO&ghd2TQ9q&$vP@+*DmA{@a`SqVe%qR9WAyGN~dRKqO3Fp0BX~7aL4kP zy#r6J1O1$+0b-l!r>*iJOs%Ta zR75=ao$omLlGpPU$XJvXG>9O1OzsL~uUmy?v0sJP!4|az?Ylay9M&^^WNovmSIVQs zkviLt#kqW(h>cM(Uq);_rA=Hd!Vm9OU%uR2-o(mkcBH#DJ1d)fu-~=@ywNdM{Rupx z?*BqK0_vQ7MrP)Tl&n&5pP;pm?DRCb+M_$KfIF@kDhhWma(iv3C(m`|5UWAa8X0Bs zoYN;^_1Jr|>k(`TYIcjBO0=yw>l*3Bxep@nP^nkOCV6zy?){9$-~ZxHy72bR^7`hs zX`1MbAY@V_=>p4htg2>;U^rba7F9qi_v<3?-Z|shu6R$h7}g&zw#XJh`_L?ZWy4GbO|<0pgb z*-xp+GPDiChnxb>P+kl(mFHQ9E$xj0indZK?Nh*RSgZApG!dwXAS;y}oUdXWx2gENW6HgaO5J8Qz>O zET;oPGm}>DpYm*N?}MVn%e>K@K3b0t090PV zUf=NIDnV5anEW3G1`F9|Wh5ng08#e9Lw|a3;E64jwlnnh;KNX|_vJ*3UCwt;zApsK zWlc}71S#8g`|{n z6N8WOTwYX|A*rhc-oHKh^$%~~pP!wq7L{q4O)X~}L=e=fV9RANvlewz4!HB*<_vpP z@=$raK<<)?+UDB6i0g0NjoZzcD-4oip%OyjZ_iIw%c_YR?%<3bD5TS4=npur$9)UG z$5D814~cDD5y)oO*mXSz0b|>q8jqULJg{T*keJb3fI`$jFjQtiNl#44BgMORMc2&J0ti)M0agbslFEZj7x!@?#rW$bi^>Y!Dy)v~&| zZ7wcuE-$YZcCy}FX|=p=L`@fH-kqGdi2DWwZq5~A{tTvDRG)I2s;qk0o;vML%2HLs zZ_dA0!I-k@WM3T{ z-p6{)Wl0E1Pv`)qdc_CACbLEkcZ$swOXKz}arCZs*^&-aAbE7zh`?aA@mKG|^-cBh z>vd%&fQzfBsR`Mn20=>P%+m_)1T-jA5{u@b3_hLVJ_p~{DUP8V(t&4UaYxv?PkJP| z)&#Daxuf)yvuK62DEzSS@$nWpB#J*Q2^g%z-ACDY4j?D>;GQCQ!rJiSKv?cx8#_se zI9>DbZ*EYurffhQscWD+EXLjVfd%&*6rt#Cx{GCybDsZ$?EuQ1fX<0P8ypVfH&fPw5YRfV7@byZboXUmUY zuIaLgH-VuN`SAA5NnJz4-MaNfN;?paI2_~|fGSn&pN0z|nr}h!rk}q@PZMk?Fe?OK zVK$~ASq%=X?C0zrB@07#@7R$hi*%zXfF06Cq0uK75 z*!`cgc);Mnm5FdzrHoD|+Y^tiTdcgK;i~%t3?Pt^^yC{=T`pu%htR1gu|=mQucthCDD?i~}2_ z!Rw&yzap0-T{_Tv&37|qER{hKlt3@AmDl$C;W|cH2Qi~Fj^~~|v;Frer7eRXj)f#f z3uw<|+IEoWJly53+zH+1c?|XiNo4Gq9#agVI$2il&QCsnxxC#dr3`FmAsPV8G>Yy9 zw)n$#OXJ?r>+#Ue#|dDAQE-%Lbtzu5b4BQLkMbYz0q4ZpxO0W71)&S1OTXIkDWS-O z!NFFoP87(>rj(wI=8p%wmHl{U2dj?@*viTFm1yWG44vMjP$VpnB+rHG!1~l%y_hX+ zg4d&G6tbCON#0XAmseF?SzU*>*Eh}O#ig6vQi2*X0U#F{UT_%|S?j#ymTF*^zYFtR zRuPvQz$ODKG&6}ek5)p9S+jWRzlMJ7Q>>ucrMDlohRFm*$T? zhbK<#MTaY|>;3G78T-t)p+cmX>P3CJ3g@S`X~aFT$nA*;b0L!b zg;3b*5U44Aw`}{P$zmVXE;#-zcIgcl2nX3O&sJpgc0hXyjhQTpg8q@s!1_|? zGAfxSOB4i`8GIV}vJFOha$Z%?9X^7}PZp_V0inC>YzQij0P49~Vu%~(Z|I3C#gNFi zpaM`BYV+i5a@bUX7i9hQ+aLyE%BCN~C4YN!3DeV)Rj4df_Ib13#8@>NTmY(eqN19| zG#Gs{YLtJEF#%8qASMvHiIUz(YW>H@S_pXsQ%J(;-lCtOYVjxsKrcZqltaA4kFM}+ zbjLx!V^9RP2A;d<3NEuN2Dp) z_d3sXmJG6_-RqFsHz;S**tuU=gfxoPU0Y46mLmi3!kD0D62DU*saGD$e!#P#>j2Fd z?(a@9-~1Vh6t_d8OknEmt(Q%-K^Y1+AOKb-*4bJCD%5-DK28hJ*Ag(=^grkSSs_@h zmgosUWl}A|Up{}jO|IfOE)-foSvv|r@>Ez0s@?AZR+4f{%K#N9#6$&LRs$CSRm({S zB}vtZO1g^X33QG9C`*<4G z5S;>(kH^+#&!#&u&H2o3pNci7-HW2}^f<0_bZ>Jn2sEW+hIemQ=Wo_AZkn|VOhiRe zi(?n>RcL8)7NfoPbLlq)^xLOU`~x1T*{G%xy;UTV#GO`XZ$R6+;J~IvTD;Eh>tFg%HH(&a z(W@BDO{DL?KQl(Kt<6CH_;Rf|E@wZ$-ZAhuC`7QlP3{EZfAz z%i#h@%bFbRAQXy<9v>}aXhXqi4L6H(-l6$AfR1N}Y6qZ*Ad3@pj#v;8MrTz86Bp;k z^HiIay6btxex9I*QQE>8mUj_QJSAAD)N!(^ym3HP%+n@GEYscn4f8B3-`<5nO=8KX z79>THJT;^ib_}dAYp9*0A3*1ZK~gr|CF!6*2-VLmRyc_bu}NJ)lNU>lCY4+x7brqi zH7!k(RqlG^VX@wHVGAj08*h+26xzd_Lu=gq=hRRu2JKt4&6^BXbW!%u@tkc@!jib{ zutYU2pQsfF14%s6082i16i9Rm47pE}#N+$7r$7DtMK#OTb|VNx20tN|eYe^oH4pmT zk2JEyCU{V7F+3EGiW$T294d_u7K6CEePgq%@n^X+T1*2Q_7XDMrIlqQfsoS#g?esf zP{=rv>u*T_!h(6-%YsND!+y0vAMYk_(^AHo(`>U;?P+185KuFMk1O_5d4(xwtKLnpQI zKbBGQE(=Zr^e0ab^a7^RNx1Y8D--%tFMzCSX17TM|9|%0bWO73xDvEu<~JfUtAHW^ zlA;c(iBzv&dbd0fQ!rH;!2=oaRp4_WpK)9 z)#}j>`a|o8`Dr@3dyZ>ua{bU5@B^cfiK&JjEI1}XP?dP?Lnf!9wbdA{Cqe_-NN`kt z8X0Z%^u+j*2ln-%(3nKELqZRFU?!(r=|LSiowe;}AN~3Q@d5=z1%!)-PD!LjJrG>Z;D>Db5MldLrH;}Q{o|`axM3f9&QnyF0Y}R;I12sxPr66s5qhEjZ<=fr! zUesL-$=y>j(aKJUq_XKf@boP2q6e!U>1(ZJg1VA`AHBeJf2a4AQBE3SyrbQ;=mG_U zgz&=2n2Iq$Y|#es2#1YOTc#M!U-71&HjK|^BJ+E`6vtao$7|#GSa&~SVRXtVL@fG> zB3f5$R8d@UP_O4qn^~$%5Rz^&#N^L_XOt>lg)tvMJEx*A2ZeTqWVkJLn`?CyM?0y` zINZn9Dc93TzYA`(pG)o=t<2<+<9llN6*5tlo_?C95Wx+|ptvx^@QRy?WC~z#7l@0C zpzq770Cj3RYRK8^Zt^lngG^CjMz{=82hG$|#47NZm5m}EsyepO(HLu(g48{x;bROA z;4Y%oEN$>upL{7r8c3m48t%@d#)=!3h~5#(C^PSOPFlrIR`0C=4hdnQO8Mp2H$S}i zDZeFMwM#^aXpAc3Q^(yZ$9q0}52tEW8v`WfP>=CA1AldCjfUhhp!+X<<>!Kr_q9^? z$==P@u4=Ql5szwgY+3CiT1nx;y2YaG#{^)}hBFvU^~e)rz_nJ&u&|s6VHDJg^~G zSGlTQ{2*wZs~A?V!ymoLDMx)7T_T8>WQHsWDWX9ma7br5x#o#hhk!t^38N=Y8Dy9c z8m<)~A}w8MjjhUIigVn9>?Q_5b($m~x=X0r48uN*ADpc2*WnWZ*Q8 zl?4ElM$`orkrqUNsatVrgG;TtDee?i)_e0LChAY0*e|}^zIpd13|PBPz0Ed<=zdpE zpYI`5#6b|x=JZezV5&Q7-w}&c6&3x0*B_s@a&7y6d53^iG|5cD6?mlELZDu;aHFXK zYBzBJKGkMUoAe)yP_3EWDmGqj&_Cr{U_SId*@bKZdzJaH@SqB=3TCuBpJ-kQ2$~ra zy`axoHGT2{V`z6kVjU1dCB>2|3{>$h(om?3wZ-N3>e}DjDW9;IIUhkl9@3%P7Z{&y zW(dh5g;k~%ga?d=lqvDBNEudCiT;uZV4x(8W?0iEYNz}laZ^x+s2g&RB1-qZ<#&^P z2odqJTYq%Xh##a{fJoan>ciaypu@r_QJ3oC?U|GqQbNLWv4R4&T8AGC(1Cl3!@vY_ zb{RyeQDkj9`{t`Jetg-#+o9xL+F174Zp2+Z<1Ea-ouB{>h4%06tbNfSc;7Nt? z-p1Xt3#JbuUB`}FLTWLAi3o$&yf`{kL+i=fprZXKZ;%(63?L@!N@Vr^acJ;zcC=W4 zK?c6XL!0D>bC(dOnhmp@sF)d&Qp62Lp(fR$$Ug_=n-sN0TO(9RRSTp#{d%)e;(D9# zMnoxPDqlg|^-9+11_!G6dl)h=TuxUv_QCph9-mCD%{eg=G-br&H>{76eh`&3cISO~ zs4nn1>SofC(peKU*rcLq+HMjN)=ELmR*f{gsZE3rqOe3_^`gyof2me=F<5_8W|0B(0+%|x@#1buHEyoE>zhrMoNwJFWC!UY1{I1+kTE{M zR}0?U>&q++59ZdM3zH0feT-)Z5o(t?rjNgNuvV~1)?%e1kqROZTmG7cx2 zD&71?jaU!t=`uL?v}=x5l?R_NWm>(3IH?OwR>(BxzNSi@5uFx`)7jfNn$T%M83(DG zC{)ytHi~=$h<_9#m{@J(J7E z*2BcwyGrN6+uB1j37lEsnp|o5yD=eBbG3!&QKtf?kdXwsa9nqZ3BFIM zk5=*2Ejc@$WHnmUq^1h~#2FBw+@q3^q4gAzV~#(bV44_cw_t7~?2sy_oBJM9iv(`8 zvcUZhgaInKC^*htMGFb^kvrAm#9}!uE?_#jDMA&fSrX}YMLy*(3e&KXbb>E7fNIRW z8BBD$?L=O+_0sf6LAbJg{qK^vY;ci!zc;dU7^I} zeF9$MB=E`mGLnj3WHcNLib6n&cnwE%5lm+`^8=?N-Ni-B2{?sCRBkCKMci}0 zD_{Xr*Oi`%xr;IxS-YLaL3v=3v9HuL#YfZtd=!SaRzIJFqhFpcj}|SOl?Wl&SLHke z(-}as(&{dNRH)f7(~gR{&Tc0-D4hhO0i-O!-j`+nfUA{(RM`EU;raO7cp4<`xmxDY zUsu${7s8z@M_^OTQ)yc6g26iQ(+(ISk{Xl-(Xf>0yaWC1?bTH>$-5o?ZhQSd(ktXt zkP)-kQL8 zcmb^w8AOLOMyc?2>7T5ZSjfmp#1Owy`~3qkZ-Z4bf7ZGV6R9wo~Qz{ zF!5d7Rm~(24L22Npm zxEkyYoB%0al+wZ^1n}a8beASn3{}m{Y+`PZ(LXD;v_87v-d?JE*!S>win>C+xhrLz z$|+T6lyjw7_EYo2d~FI%Q+=DV^fRCEhXP7Xl4?m%A$vg;;=QV%eT|&^$tfP(F&xjC zszdtVO*+c}XOU{uLgBoixN~?rMS@M=wk5S(fJEI6y2v)i;yF2?PSprpZSC<0{i4` zQl)cBd@w18Dw543&oFwYQyfqiLLu;wNKjQ`a4fk8bABmfs|V*N4_%@a@N(bNX5V*x za;4)erBEuh8C7UvE^p2wK!b6*(~3h)s;(&RBsfwdKb4s`>8UyrHLs}FVE3iwKBYr4VPYf~ysvOl6Sx8NQYb3EY0_Ggr)*@|e@yuF zO+p^Jj`^wHyK)2zO#Q%pI7jwwI5eA`Ebe{w>{$eqaKS3ETePak%>KJiGSFd4qzzc< zRrZk=jv1k6dCm(u4!Ag;BKUIZz;lnYW$muwURJhPNTv_OYOMgz*pWlaqey8DwW#{4 z`1909GTJibVfrNx)MP!tl&q8di>GDtxdn#K(=gNawaR-UxV-mKoFX1aC7b4$C^AmwG+h#2tyQBU)mz)Kje!v}p zR7_v+ow$r)VlmMZ$0}OpZiI*)MG(cbtjV(!hC8T`C1%%7npw362(e0#WG-2)vb(3E z8V~G!Kk!UnRf8VH;)Vu*s@-pA9N6yzwxv$%qt4J8NM=5vz86wwx6BcBHuR=Q!o*BF zvp$Eql;e`xx{us(fv5VIMl%TsF0#0rsTSUPN#Zx#jcP7sus9v;S^aOMlDPM6enNdJ zpKf@pZ?6RquDIu1=qMq@1yBuDKe!6;0xIIeAbp81<}u*S`tzU2FFxdjuJSV$!U3y@ zsZ$pNr^X2Zwvj7 z6PjvptfOmdBK{^FxNCRs`hGysnRaiNo}!#S<-!<*7- z1-!)qIJ-h!^oyo6)pJj*BY$%NzQv)755RGS0Z*mq>#D2n0Ykm2IO26*O$Bv?U{$ed zh6{tbdnpc4{dC3{DI6y}U;sjOsDQ{@Zs7^ZEtlTY*Ec5R$5KX}+NPIrpOcYd7?|-N z{{cGD@*Lc`Pw#hsN?)zJSfy$iNPRd!FV^bx=q+XUT-2#OrNFDZZ%nPJRi43}bcH0f ztlmJD!9*N|i)+n}wKy?RkQ}8@xa^y?mYPVL#Ei!bT5e7OwCOFnI2Idqu+i0V+ZUNM zY!5)lj;#l+dKe{ihP@O)nix4Qv@s5&v#O&>X*F96sT)TS&s5!VF6PLf56fU24jlG$zc)wJtuB9(lq2kXzf|F){(7<_CE`*xBd z?##~O$T@pO?x^TU9c;?1_4lEMJ@D99YIfX_w4U5jTgZj2{wxe$Ad|Uf{inql1DG7< z<(;-##*`l-_Ztoj1lc%A0^{jmn5nd6+f4(@tq9R4FgUivXmoT^FaN#mreTz|obY2I z6L;^Qu*$bMzuF5uPmXQ2qlfwNBeB^M0xCLju8LRbjW7QJzqIyHLADu$iVAF$+XZZr z@GGDOK}0|#wQYxOve&o$&^>%uTJ7@r>m!aC3rr-W3gNm-A#;g<;ojs$nvYJjtbGDn zrBqiCAsu2zd-N1JX2`Xd2(KiRKJ6OpvvyZg&waE@#p5uFq^L_w_1wr2|0Voo1d%xJ zrM=DE9)KU(O4V3V0B|sAcPZRe)!3>GsH$~DAx-2dVj^)+$LCyZ@#^ze+~*uPL}Iw0 zb;JR_#d%*gl?s?tgXDRSF_c1_LMafWl<1OkX=1-a9HEdOFq%WEz+eqwDyn8?0!fi) z4TwK$&mw6Z^Qfo-rjnEk@9UpK6Xx^R>INIog@auyg^Uq5`@-IR$P4T2QG{N9l`ymv z20IMGQ2srXCrq@wE>Tb)Qm~+eqlxf@1e=(ycEx?F;_39lqgk}aP9DaIN4C;{eOH6K z3lIt*)i79%LN%?ESd~WTYd@VjFeGN}G7Z03GtytqetN-7l4|G)O{xXv z)j_90A;R)l@F4?6Z94)CkwJ|W6l$ph3n(P2RYbwfwyV7a)i4oKEXg>33;3wNDK-gA zLjs+H=cL4BPblK0lp?)HTmYNabwfHZQu{byoh7JE6pwz?olkOz7TSykX6PE8&`FuA zpH9b>vn_tYUI)g>)kC&!VLiLzAu*+hUR&rlcoWKR)yuN8 zr}Gf?aAC*C?v8%o&*VI2%=O5RABGF8Z45Rj?xd+%mz*M{2&d_V*X8md8x5qms%kPu zaSTEv4cjS?9Xc_UWK~5AqAXc~Z5l+d{bzQP9t7xrWHM0i;gJuP1&!$zx;^6VPVGx^ zXV@O-R8UPx?!477?`R|1%e22ZEr_8PfnVMyqHl=6Z>%|Ne%#gb2{_VG19&?Cv_50yH)>Yjls&IHyXq=1y z=V}v&_Adj}1p`D)hd2>{me`XON2^upC!~r7LuE?Yhi{%$JdLquE`1?`pZ0zE7K^{R z_>uC!4@A|=jH}h=7pYSM=AwpM9h?AGb-X0#^bWwx#6*PfcpKh)3-Q<|(80kySjFMY zS}sz{j@pvaDL#yWUJ&Z}w_O7IBO>7sk81pz6BGHkzF3n6R8Rw1=;F&sKO{1 zfcpUi!5C?ydEO0@xk4|K-oW5f04U}dp%w&}PgMbb2uEZBYPw&mXASN8h^bK>B%JyD z0S(8|u|~$~Cm#bQPdrzYWKi){je$Q8hGjUL*6;a1y64dmP=$iR7}G})k%SJ?DXki0oB3Ba-*(MYo4a9h%PJLt5H2el_EILT=HVoLAEgBt(3&)XB_X}y<<5e6_T%rUHAb4QJ ztCu;&D~Sc-3|F+wq6a>zG(hlzpf1eQl~d>{Ad7ZM*t3+nnqqIVmy6+RYt~aGq=(}! zkSVN3G$3N2h<0geNjE${cTbh*8RRrp54Xrov@JvxB-L%Vv1#L#)d0B_EQfl3KdUCy z&!LQHw4ln^Lfg8NW4F+AE}0d-A#)!HF80HLhWN0MB2ii>6s@A{-}7USd~e~{Ff zp14yrb_S=Be3DKethA;Mh7n+z&kP|Jpa5d>{DqS@q9mOzAmNs@PAXIhQ4L%8*`zv? zNgsVKI`zCcqWXSsidleYKeo2^19LTbL620$pcFCo%&8rsxx&4mqJku`*ZS1DHJb=l6Ups)_e~|VAe+g(Lyk6Z( zg>=xy9t}9(rg`9RWsK^j>O3DNwP_%C3ltxL$lO3~kJ) z1ZK}!S=$E+O*Tc753}mwhLQ{lNR8hEMW+^%&qxDJlR#23gFu{;*p%~QBYZyMAGzFl z=zm=Fh=&7?Q_lm47jb&YEJSu^Q|R0uT;0WGwY_;ACq?dTXP#>^@fcx4TPI-_v{@xQ zTp^Isrpj?QvyeI0deX5J^T9?-LstUftWXV+oF)1)(bY*QL0bYBfPLY#t-(FTy%Uec z`<=h~rpc!3Yx|GyU(Q@Y>f`I<-f{Vr{~L6(l|YuA>Nf#T|=6orWd<@5Z;(|WY1 zHmX>*1f{l`gQ%z27b;$eex}(EBL$*hN(nP_V>+cXHF#xkX}CC6T*=R%f%9?R!sA_3 zq>b8+1d?=QcXt-|Tzp(Q9H6$d{ObsT7C^|`3HGDKFeUwnAlkmXeyz%~6(J*oPW7xM zJW-lJRaC5XI>yMs(OA1dZHfafTSaI>G@GUMIEv5;Mx9M)^*;N9tNG@JncDayj zXeh0!rQ(rjFC6#oTFOgtktqm!nreMWWHx6d0%WSzJ8Z#2^HNMdrj=~90q!yp%`8v> zNmHqu>#@Ku!jK7p0E8s9m~WeE&w{o}V}>5uQPamouOJ_vRy^TII#x8sB1X5f8s{Z4^BMC6~T1 zm(pk!6;wJOHz2y1$7_oN&zw^8Xg^f5e~_3_VYpKXSBj$gI>>_WJx6@B-*XlnQSnPz z#DKmb&>*5(Wp)ZNs04}%8bjL$6N0cD;9iQ;;40B9oNBk65-m=D$osvN{r|V@!r%4D zt3xkNREa+9++uN&WzxJ=p52x@VE8)oAKQN*4yuWDiQco$y$-l|9Ym$_K)BFILJA#L zVH8>yp|C*~P^$rqs8L|99PB#Z46Sw0;8!&X1DsySE+x}yQar@Ta{~rGb4x#TMU~Xr zzd@YE#S8mfd}I;VNw2h~`9Rn_<&96!7gH?`9s;L-sIFA&6JU`ygnVB$a-KU3?lpOb zl3>ivy!ILBBE?xmyv_ntlUXt|H8V?!WTJ4P3ybGE>z-CV7%{9e>2%#`XZ?5xw5bKo z1KTx|NBB{6qGq`zD-ft! z8MXuAA{4Lm6`0HgaqE5QFcHRdoFUCU302jZE>zPsDu~7 z=dX{U{2~p&xGGh68MLB!p%(4gmvncL zw2$PugP4X%301pQs)_YDQ#G}u)+I~!^)H`2`|0&}-@SabLxF(1E7#5v3`%kL;u&g| zl*BIghA9&QhtADAn@-33S2Ks36WU7mTB9NllP(O&>tuiGl?T#@HgPK_o%#VMB3sfd9n8WFz(;P|#otYkB1ChMB zzS@{U)*&39zdnX&F?}^*?*%Ns&kJ|C-}U{jN4;iW=3FK&J0*-~Quozxua-`TO5|v%R{~BIRu^)?L4QcbmPK>D6Xy zD!K1V$$_ET$2;y#dTV-nADd*1r0b!y)Pr}*J6e24x-^$qOAl{79r}duz0k(!jHaS5 zn!IxR*v{rDo=;sBZ*NHcHV&*;xio*sQCCJSTN=-^-VJW@*^y0Qt z{_8*d>Yx7Z=70P@fA~*4c?Wy`{MFOzYj?lRuHqtMW)NN5Uo*4I74#ZUeGdDX-#*Fa zkP+z_XZoJe(A0AEA#d=qScxddWp3U+$#1x1+#HUn`<}i>h_0ZhH0>B6puyww;xT@J z3TPtqqvVX~PVy>9Rju<>)sj&Pn~#%1utzN$t`D&Ak*k^u&|ue6ojJtZa; zC_`kW;x0cucn(&3VhZ+JNI^=aC)Y^N6E>3 zGr`sQ-otKuOr$AdW@fM?0=E=k0ud3%=K0Ip-~I6~|NZZO@qhi>fBpSm-~P|P{HT5R z>dozTdzF&qT%f9?__2c010AJiEhnie(`^oM|6{jW^MM00A?x{UX2t{R_6B6{_5n1 z4618!D=ChWfud9eseJt@7~Mn+D0O^Q-RI?VSL%a)tsZlj&ax=kODPgV3-?-4R?#pK zciN@%wSZ)_Yn!n3X57*D2dG`Nl8-;kK||>bk=+)!V?V0GRNBx{++9sAa4DP3+t=^@ z^M{>U|1ZDp|J&bhfBo!NzyIsg|NB4w^7i&N_nOj`0Hxo#=WW-O6;L7{czVviA15Xv zz`#vB?+0BxT0Byh@`Qw7e)M0$0yYNVsv+shHtkb2kSZ~~Zn*ZN6(mJa2lLUEGN@tT znN3Qlqw85G;FmDmv-)$>uvjWYN~nhmc7vFTK}*c{WzY=xUL&QhIoO^S^n z7Cv?tE1lNeQ%b_(J^}I_$5O*7j@Ag(P`DR|*d*c5lOM7-0n9exAEZGVV2{%qn~eL~ zgN9T!2{fVqyYS$jzurfR)bzI-KWJQ|rK)|D;$dhZ6sT#;Givj+VoR6uME5?ADu9rK z0MZ2bTTS6&+qfdVx0td2$0@l)T0D~pIPi?)gHWyNw-8Z?Y1H!Zsaivblv47SU3&fI z6)bH!`@>&ficyoJ2w8hB2XGa+{{E|u`|~YStHkW|F98qx#Acl6 zbQOp&JNr^fu8mL;aW8;2!gV7e9BE1{AE2K2Vptb=ZC?a+R@GD)U|v=+< zqIHcG(+qO}4IXVe&7$cr*)FA&TvVZk)Fpwq1jt_LJ%wf_a5_`kycXMN(VVFw-S)dT zZ?6C7SHJz$*H5;J*Z=J|SHFGsPyhahpZ@1xUcB06wQeWe7AmEvQB@s+vXj2^E|jYY zs%UYCs$k{>H~lKZaW?%`#OCr9wOKh8Eyqd6?kuOKtO{UEF2>J2g(n|)Qg`v-dpyvN za~X<&IlZ4kt>SsA8s@hZdOAmr%`c`B_NLJtgLfkb#HvEXr&En)>0Q+TRNV_p=;Et5 zVrD?fv|e|ob)uG3!#&H3Lx{>%m!-eO0>3cK_DOmvl?$ZR1A&c35-6zwT-&0G@1GPg z#*odXOFAF-e;#0bkZ3b!Ah%Q6RTW63lv3E29D*Ng5b8E~ee@s+IVh(()zxT{%OA3j zH*G`TdHSp-p#eLICP4Gqo*kg7s%k3C@q;{jV@;7Pg+IK${g3Z{>UZ0(zkH%bZg>Cs z&rg5xb@%VT`|i)r-_Wmmx`1ku;Gny!$_5$=>=kscrtTD$LpPxZPX5ccxh~-Sbs4_J zL&}lKD%H{K#M@bqdp()8%EMQm8d1EcDw6iQUJ#latz@rKF$u$$ZcO6KoG2VQ`IbZdF%ZTZ^?eMx&CqsFkfx-AHUgL>(_t(%cuYT`xh^>y^Yy- z*_FJbbjhxZ_ko^Ps%pz;&%Vuz;tn3Bf4(2fA7gRiNMStxR|Tx;=wL9E6;+@-_y+ez zjms~0@2q2ooU=Qf-mLAkZKo22e2C5XM4F5q32QUe*M+cufFKNyt(;b-@W+VUtZ>SfOOs^y1U;>Ft7v^ zX1Y=cBvn5{_IzwaTp*X{`q1KI<6E5YqpM*QRMY~@I?>(Xc>+@>KuCBb6%?U$iR^;} zI(c6%%J6!(q^c0*ltOXNe4F$lA}|GJGrR${1yKrjLDOb>lwy@$@wS=2>Z zXEOr%%-s91(V})kwG{8&cfI${?7m5zw&P=JK5^VX`JwHIy}z2QkBDL7nG-Dyez*rY z<5k_6(vqBe26`P~Sgqg$LT1i+YLWd-4-PLtcP#u8p#!(*<@_+yJv!^%PzEJGy_U*f`Zn|erzIy&ufBmif?yoOjzUo=rSp=Za zG&z9tntRhYJ~=@iAlfnwJSzB*PAB&~vZtzgLmgSk&cq-VhK5)>wT!#ha{yGlcuc1> zspQFPs`LmA(OHs_gt)s@N^ZLmy`%3(5<)6M^ITQO8=jYX(ujK$k46+VFtrDs1=Pf| ziFB4qtOJS*a1~nP^0ju2I_t58AKoaMShmUCVb#hugOOBw` ze>;GVO*0kKUU@hpNtKqvXpzlc6$;Bl5e?a?+kC5fMM=-!=0CrD_Z!8=5&r zME~udzWMdDC%^mikAM2^r#@@;LPkH$9EMX}e=u!%Jd&%;!@Efr=3DSQQGv-bS-7Ui z{g5N)6mS8is_KJEhl+IxQs`bK&`s4$Fcl{sk!>?)aycyUC2eLNy)6}?ILm%JE5N?B z!WjHAM3meeLQg^itL3WdB`!qYv*76Gul>F!={c8O&*DM}(HE*j{;MRNECU923e0^! zHO08SsH#M3>3-;#akiDqDArTU{D=Y0Jit+67kOhQR`1p3br=VzntF)_hxLvW*myyD za*cPnldgCC?)zKC<{!V>n!oLnD%FdD|p6p_A@_rDcnn5-E39WE@T5u51<9m3xz5YZSh=6pGz+A zkT0_;?NSA5LPfHm3_5oI7x8RH ztHhMmvERFk-qXCPLy%4ybV{}m6x&GJc3wi02~LknBW75WdmVzr(ff4|?T`rzJqBXd z%8#Wmd6fo%hESRfR9q)bRhHJfE+PqPP>2uJ(C2Lb5prKFmKQ5oKSonh+@0L*dP1^e zSS*Bx<2zLSay_VhJ5>(iw|kAwL)^D!;N#L$fE2kjH)UimO?$caY&~7 zY9PL85MiUj7+6{>UYp}j$&`}SDy8OK_UEsA;>|z*@{681s8k8a8AVtiH=X_0fBfo; zFS`Hy%ZqQne|OuP>Xn%m&0gF^HrtfTZr8sR)$R6*<6N{de&uA_zI9V>-oISiKW87F z9fHe`ZNRqoF%fx$UQ2yV1JNh^>oUdNp-IBdsSVYRH6yU!TVr6NhDSdnmOfDwUc8zV zYrV5hE!_6t?pV+QrB1`u41#T!HeG_e6Br=+IOWCPc)XDL;561FSkx@=;yIT-dvS3} zQ`+F5Oa=vbo}$B9HFf)&`{)G)P->d`eW+&C9o7zGfE-n?gKq&9HRS{~HKw$a54Tq8 zFLKO7?Kl%trAQ9CN>BXw)?eSg>y%%8`Q#?Sb6<*d-L*n)bH9;dmVf)r_1DjyeEY+@ z-~ZvKAAWq7-vQeskiL{%e+%)nNp$x8ty!uit1i;=^NTrNhH~+Ed<#6HNiBuR&E zcB{v@s&t#AU?~FksQE+Q)<==3L$hbh%bliIgM)n%l@%T<$(Ui##lssz#9cT9jOGtD z$q+@hUDsKi;}sQy`e&HbW5f(#z(`hbMwOhAT$l?B0}v%Eb#Rgsbk2!o1P zO2v1qyga~#5K1|Oh?6>NS>{o3`fRJsdW{ir&*P6#|6FjaSCoz+9re4mfmM+ zkVpCozr3LhA|eoTk-n5Zm*ViMFBPkVg;i--C6H6%gHhK-ldP$W{l2_fJxtdc-wirhA4RN0h<#zvnzvQHMM$ay5H@z`*nMXG%cvV-kQfoWy4SSN-dCnuTu-KJ zAZ*RlUhU;q;e>xRbZ@dtUvd>H7pm5wYbh=w+SY3k(PnwFZ}s(X?f%v9v#2KyDT=p} zB64yk!xPgV^8MgXc$~X9zFT?iY}RAm))TfsP>p%%s*dc63D0j zlvz5MnkrHijD#EL1ut@TyyN!j8(dv$x1-;>YwG&lJJ7rCN|AD3t`e_)dHv+smw)-o zi$DJP#ZRwq{njXrSgzB9U}$yfxhkISDMNgda+XL)8*2rBbqo zvW5yQ&`KvY^yX6bt|0~m-8V9*b|-7@zqP`Mc(M>2nJ$PK3yB2KA%-QyXUg8AExpBw z79gBmFWIHIh!`=1eIGLYfW8bJEn!);GZ<{)ex>`tr%||MdM|{`%wF9R*h@ZJl|U zHu64>GDA&P{gfWfWc$+=z2ZU4CC<*0;r@ePWBR2fm2kGIun{pvibB$GaE~Mx4t>@DK5~stT+;`@-4j&nTsDxApAY!UFOzFI=Nnkx|jjU$l2tK~wXt2tI~rvG+_y zVp6RwLemWxaGE;Yd%%s|g)Od#RF5=_*yw;DAL?VYOxc9Rz0|IvXmK%^Zd@ewJzp39 z?&Zs5`KzZ-H)&ILx1}ib>iT-?-sk*AN;2ChZ^``ZscrxH*I#}0`jdqAUr-@kUe}+n*<6MWpPVLW|F|d%I}doRhH{_ zwKgf5Xi(+(hLUF0Kbybn=~77`y!d9504eS%rIy}ML@5QPbWu@IcAir*_IaBmZ7tub ziT1KHDzUx~PkQ2q_!b{cD0*NbJjbn1LFQE)pH)wmB19cSS`3Iw@m=v;yf}RvGLOzb z4cuBpV(=v)Il<5c5uAQ6#q-of6+n=eeVo1HP`?)y$w|4{azj)1(S1!a_Guv@kyO3>7F|1GH1SFU#2v!hjRHvDzvH{_`(1hS+pnJrGPD!;uFz@Fu=LBBR8gf|tNiwx zXHTzh{`B4RZ@+*3;`Oyi-Xs;e7pJNyG7FHMfQKh2=^3JCiB7diH_w-Bn<7)pJ>mj3$9r zbDCL~uiGXllB#IsIzR-fg+(ARz_e|1SR$?P%h$&V5sWp>P88Er@ z#Tn6pm(IlwaPGy+mGEyl8fpci@k2Xv$yz;z=nkUJQuZ(o5tJh@NuHSH66bOuzc->Ghw# zd;Q(>{Pt~uB_wwiB@;T84Mkk35K0#73h5MuECSp87Q?4?8cer9`}H#0-wz;hLnvQn z{!Sdk#R+L6>k6!>YY#Nj5{5UEH9X{dwe+V0Ysni{Og3e0)-5w0h5(=j@0=}fotCSE zK3aghL_}n}*=$pKDYqnStsDKB&3F0%J^HG8qaHy?7J4qe%f%^P{W3?+sxXwHYljQu5A`zoUmskes^ggZ37PnQY#PS(X9rflh;Yoz0C?$e*GsiKge z0Wf6u7q@+;UtL{wrkx6;pg06M3?0lUB5;->l9Q%i+@vqBo?dU|%bWD)A8vnqb^9*& zNt41PqL+vYO3nx<4r~C4wQ0xYRbxL|`0SxOy+_nM`cc>~ut*=29jd*`M8ObE_5%Vn z5lV9F`%Ee%k^LwMQO#OhnrQiQ%6I_Gb^PuUq{Pr%0iVqJgdS~i83FzUY9d91S1Da} z9r-R=D4&tF_xq|8&4x5nXhe+SETt5BpNlh;Dzr2a;e`ytV+61Ulha2k0^VoJdE{qJ z0Usfr6J@ztiy{>}SUn5JVZ)yOGav#ZOJ(ENPbeohDjmQfxFH>(;}I*Qi1bBX?fA#< zUVQ!R>9d;+NY7bQ2esm^E-;XiS;T4X3IpZqFK%wGubzIn`{TDS|N4XW*-3ZrLs5ot zpYhESM?$GZnDeqN`;RlB9K5g|De$cB*+FYZs)I5}H?t~%EDMkVMW8VE0-+_)#a&C5 z#uyFXBpE7QG?d_h7V&v6CB?ZV6E&E)Vu+AMT9<^*=nlG2DOX+ECKGxkZ+s3I4_jBm zxfNs8zT{Ha=je@#s@2XW{XK0tUIzWLI>3k(rCJ9hcpO;mKI7p)z=+%}kY=Gqo>~WL zFmyJyy8cj(iMo+QC~9hEz^N`f7?UzzO}cyLD0u=htpW(#@x!ZkP=m-9TT7NWNRX8* zq7+f>sC0^ZxE*G)eEr4t=4$)w>6>rAd-dZ_Z*GN|Vx|zY&=GjEig4 z$g+-mtbzHt<;7WqjKQu(gki>Is?oBZj1VeX#N*8bdbdQkj{>)lWcNXTc*K?mmWY>G~;mKnV z!h1j28P@pW7k?lVNz)HjxU`C@FuY@9DA;^1Wn^xTOpZyHS*8WYcvfjRc#l$phpw}g zaXjHV6%cRYhB^RzH9ddz*4^=or%$gp!a{e^up0@kxQi$uFi=p+yD(~dx=ov3T|d3S zw?CxspYLA0dRKZtq1r);z+H;cW=2~r*;T>4l^q^qUFjpNpGPX8R?%p&7wT9m=sV$Z zp;ZvDox78^6>9sGA~4k?BFz2B^aemLP!$!^w0dFt46PFbMia?_y3EGcm@B`VSuT)H zgfwUu_=&LHyIigM^Q<5a485i4YZ5|AE~PlVNG@KF2@!XOB6vWf?uU!Lcc^GwP+ss+ z49DFgwXhEjE!Mts+_VAu7?8oz&}%w@I34;y<69<&%qf-YQG_Di?0#He$r7Er+qW=&^X%&CYWu~_+i$7WK-g!-MM&##F28?phHt_^vuH7*Bw9%t|CBn* zUIZohCsA%d6^5yO-u`5JA0H@9so~IFG`u%vgY;3=a+KD_G#;9S+Hcj7TYoH{W5+3H zblshFr@QA|ZgcNWKnb{ryXTw(F}>)7UOa3J3uRT?<5E9lwniUem0%qdvfLOXRR^1U zQHYtTX$b68LyNYB0tC7EOx1D5v+RJuPkP!zkMXGevPqSajA2G#9WwjAWJ_HUd;a>( zk3YTXiwCgQMd%RFM3o{e;u+$Gtrw>hHMmQ^>#sZf_E%T``@ekkkAJs$_Efr*Rms|0 z(?vaG(0jj;$5>1H-goN-Z(%}}uSC%Sty<+9hH$ZT9t+qUVtg!6GpqV+&VfP{qUEc{ z@gXhIX{{p%;POdCwwq2>cDavg+(4gdk%obvND&f{;>F=AH=SH}`g*69l(|e7{cvsj zr@^76a~Ti%3%tdX550BX2xREp4WCHywi=?1;FBn+$&2KPyVi*&5c@Y|}N zYF_2stEz@XAbtAHv)$q@68e2Jf1=?h7WbqUh8YTW8+2W_Ut!ETQT6xA=CLsyw=M!( zhC>{J5abC@jf5_BT5`#SP`ub>zIgS^o6WPUP1vRt&mtjAr$)7GMRp1}HA{^6k+Xx+ zvH!>4eEs#aufP57<)6QM@%n9c7^A8wV2LJprobgpI>YVa1-W?ZMC_}@41@z*C_+Fk zO|!0RST*O|SyI(fvWS?1o(J#S>ATZrdokV`2bsU&v2c+oOqMD$yB-uvhD!fNaVlmO9hfT-%DxbsmtcP{4hMy#Hrg9& zi{tMie8Q{uB=mk3t)Dzg0|&YrdN7OtQbF>Q=v`dgSqgKZkm1c6?pmKj(zMDX*zZhE zW#EQGM2LHLrB=H=tM(NQiaz%JYeC20B{=&Zf?!^y3 z^t)XtqN=nGLa=nDI8e-TC6Mj+SuX8w@jkb})Hv(jo8lDN`~^6h6iQYTRfE#$6LI}R z>%XX_IDOqq5m&`#v)#SPfT)?OK|Q=Rbrf+CsYXoo({(TLDy5J##k78#uFs@xr)eW{ z9@)mtTEihUMVCx=v%%Qk?2Ka4WRST-a#S7h@&aS6mFqz1-AgH@$goI8W5xFyD(+X| z-6>|i_eTtBwSn;%?ONxjOq9k$J9Y6<`<2igXY`mo`Lrn6oF1W%V7h>6thUxkS5-A=fs~Tp?aC|5F8NoA&dkItT4Qj6RJurUio(UkS%qY3 zZmkJ9nRMOeYWvNTt9LJ6y!-yA9qFYAG(ioLA%&hrH}SB1SrPK_{4L&BDu}%W#*4Sw z8qFK6Xkf$9Hg8k}D3XWPkCzuj8+vPTyhO~W2 z<1{>x%J+cC3HML>rqgYgg#G>e(0_i>V)^^=2oi`#x15U5XeCK!?xheVmq6J^dOENinDI^*!u5$34xVC*P?W4Ay_6!L!UXnu=kLm`!JlroH(ON*;DBV(od8`J9X1z= z=hjx*2~>!(b10r(cUQkj-#puHzJ2lXRsZUB?r;0Fp(T_IVHcH&kJrk5Bht$fKlKr} z?_48G#+Fg*2;ET!H=-O*7>4_xJ~=Clt)$LWK}J<@N8zp7xo39<7?18G3V3~!`ke<+ zuQ*jCdYs;#pHGS>7XqepCyQ8s#eM9xO?{cjxuywBc82BC`C;L9Fwpncgs;qe52ABPUe2;^wfW;x1}IFgUAj7$!Ej%tIH zgl~XKXzEN%ghH^>7E%x=tMJBgT*={w>W_Q3YNN_o`&YV$!Ut5^x^ZK^$T~*-9RF|TmYvHgJC_)nn=q?*~Lt8E@;vS}*KAjd3QvEQd)0jK7 zQ(Qy^D%_Y}b!K4sTW(1$pVXM1%xd+fpF$BY%tiX%-JN2n*77qS>G$K5eyRN|b3J@H z2C&9-NVur?Pgi0;@d)0lHb}Czp-g9JSdn{&F&U4m)qOoSHBPc9jvgMhA#xBvr4IN1loTLii1P1o5ku)Wgf zFK)kk{_fSQUElYrSuH4h?L37%o^iIm$HhODkcxa82(=4bWKT`ENXR4xEXr(H?Ue#I zxB{RBv(RBWweb$(#PSM#yygTWsWVs>rdb{UFQuB< zk8u@xSI;i&#w3|`Nk2EER(epf6v~bnue%rLt}i5=;*dFMi>)7p_Zceo8y)xfoI}Hg zm1onUg{l@|z?T-4%DIT%(=MJOVkuP9MywMsvzOctd&fo6rY374{?k&(5u~{P35RQ= z!{yY0%Bctyor|kL#YIJxS@bsdFJBdv>!(*63u=e~w77yn?zlG7iifanE zyRxI3*|Vp1b+x^@zIy)r?TeRhZ+E@Zq5~f%DdheJ?;mL69!x|Oy2?&CW!R zcYTDF>GUFM4-tbnC`?`2cTYMZ3dUO3tB9*gQZo^y{LS^G4u*=6kHZNx8LGugDZK4- zR2BjY1+SQ9%$A)?*qFSZ$>F`D#p)E~#BJ94Jmdd6iyk%oK}Y`M#D1zoJO*GE`_rA3 zel+Pn@y=m24p$o^|6@*I+V4=!AivW&KTopMZL;=+DhqqxDNG>{F=t^;$@;hbYa$_; zZnhgq>Y<~EW}Adi%ZJh_@ZuCf*KLZI+g%SaOPwg$7iZZd`_)%h*H?CRWk0>_fB5mO zLTb#I=K>e0sHWuw$HvB^Z-l{u=B#TzuA;b_VZ>(#V!?tc!_oi73k9L-vHnywNod%c zrJL*RlP4QXS$Jzmsz$iLB)U!Ek$~~s8Zoux&_111+m#r|kdg^KC>An&7c_M#0VqYn z0Dz>y%0#nhCiE`W3Egm;%MEd@EOb{j(GhX%F%7|;EzXZ=z;HM##gX+jPW&J)A|)R4 ztUoV8?sA`9cDXpi#~rMg?L2(klyyv*qc(>z>;jh3{)oGF)2ayCy<@|nLv3<0VqRVi zOQT2}PL=gZ_X3z|B0XSH^9}3^>d-V2tmf&{)!(vv0t~f})`_b1wg=N?d|^vvh#~pf zx38FI`pHYLhSWtBuWIHjLS4PoXeo@jdGlD-1M1v6cj+|R9Z+SIw>F|g?wCSnIttAkcA<5NevI+>y7>To2zGE z+Vzco|HG?SuXbivYN>b$)jU;r__hdwI4=T~X3I8Dw6NC97=*c(CG5&+bXqHKUNWu% zvM2R{kww)2b7ndjh7k+(`-xl3ezaKghacnLC^lm%5GWk&)m3}t7<$J_)~0hlT%nTU zJm6%Mn{qVQgb3RJBW*sp5+SY9$5#B$0MFUR!Ybw}UDqC)g3Get9f8=96e1EK}?( zR>Qy}72prSuB^p|Gln7+BBBzG!V-|y%eh_d-D&+~ZPqb^4My87Ctdd4_a$f!-k7rG zSEtl6C{xi-PEU?LqUGm=r3X|yYTotv)tfhvD_m_!s<=W$93ln?nTvtGrXJ zg)H-&14rx#?;+35%Id8b*8CY)+F5mpPR^Hs^bH`HZZ>v(ldi9poYPP=rce#im==e+ z2#cpZkZ@PYRq>lN8Gm358i!w+y91ShZYoz@_xd*5UbTgBkpHvoM4?u2lhGdrV4jA| zWTCrz-?Me|BC#q*gVOoebtuO0R2d9W~M21^lf)_z3rYp*?#~0 z<*Qfkytqa`Bxu4Fik5WP5tAv=ouaT4G6WuB6Z3G1EQ3iUhWzGovl&1`??Vk;*QqK; zN#hv;JJzNGbe2+CS`|%6e{y}b+1mAWXC{MNQRMN}b(S6!*b3F19O%wY>mhiDOpyPBoc z(ebt~x$MmBN=-$`Tzz`f%rw`i5M}Q{-eo9cDNy=bfjzn2Y_FbPUD@}~U%q(pw(om) zYiieF-675rr`{oj?fs#}MULjHWymd{GO+6QuO}=o z0c$ARtdOqLl$;Q-?m7Hd;^}(8I#4T;Au8~+xO+ska}YgDGnj2HRqyQ4#1dD7 zTzBeD>ZzOX=kc{b&W_ovDqw^Z_r5QEE>#l-Mgf_}nFnhN|6=pH)%~z%m3+Ujab(PU z*4}n9k{TCUyS6e7HsJAlyi+B#^-rSdq-GX4S_(@kgJseo-10pTGI4eX+K@8Jy6E7y zdvI`la3dcAR;|Lx1SXP$dRRO4Evqc0n3-DVIlt}mn|D2l>#L+lqGiY^=b>#r1#QfD zg%T2uOF~$fb2z{JqI>%ESI@tA{nx)ffALeV+J)H{$FlL%<)M!gD)txcVK`H)9Gl$x ziZR{2b1(N|X2H>m#!)k3!J@KsI?0@K*J&~8hq`Uc7;DCc)ov7>tJd?S~Z`xbr*mXSMRz@$3hi?xSEn zN8{qDR^^H8(PNaWMxax*uooJ;htm=FaRl>OPpK;1s*)v|UCY2T*_m-YXQ@avEWijO zseSO;xGOP6X(RN}FN0*sy^ESzGJEy*Hs;aWjTs=~#XTt7TFtvEYQG7FfWyF45ym|v zlXdRVRimnz@)y6j-fZ;AliQcC-oAc)+xHHH*o96E;P$gDJa)7=^8-04+2KO1>K&K4 zDnL|4HN00@sT4 mj+lYN=|8+^ebnBaGOui_N&g5|29?*RbM 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 B9>o9v diff --git a/portal-common/src/main/webapp/common/image/accordion-plusminus.png b/portal-common/src/main/webapp/common/image/accordion-plusminus.png deleted file mode 100644 index 1fef17828a0d8cdbb8500ff8569916fdf59a74dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmeAS@N?(olHy`uVBq!ia0vp@K&->T1|;`M8@&fok|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XTs&PILn>}1{rLaip4rSM``ViSJD$vtIKgl@P*_=GipMom zsV7rdEHzBrn3F;-uUHo7tL!0s`pwPFo_asrxV^nh7+EA3zDP#eJ}5bo3^b3y)78&q Iol`;+01Xp0GXMYp diff --git a/portal-common/src/main/webapp/common/image/add.png b/portal-common/src/main/webapp/common/image/add.png deleted file mode 100644 index d1f82993869b5e8e22cd1e48fc54e306730244d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1104 zcmbVLOK8+U7>o%{o3vMmjh3-wW$+R2VWYT2X-S(nX zka|$>KG36H#G@eS!Ct(2^yC8%o)kn7)Yi$iTRjvH29kN?`@a8uePaCFfx%;g48t6# zjM+819?IT*{q#HZb;G60QQ|bnB%UU1H$jZy<0b-?(49dw&+qpnrJ47itOiSFIW)xMRrQA3f0&`tzc|9L6ghlb#Hmr z(|opc7L0UsDi9*#f=)OWrFy5xc6D{S&#rkEbRlH6$Zk5-s7?S2CkV)#kn;pZ01D)w zlvh>t3=jn<@Pf!gF$Yy$5_LfUTMtXECH}Ntv&&ny=&8uI2#Ix`Z@1fATjFps!$VEe zG7VA8QA93Xiiq3EMd@%)!A7Z<1ThJ41Tsapi5EzbrJinv5XRN&ws4egC5onu@3=7! zIe`zuEUqp(B{lTNjUCZxeJMtK4W)P?@n}7!hkIn2yMG(XfYclPLK4uTxN|o47D5z} zid|&sAI=YaT^5ysAu5htHWf#LupkxkrlFd0S&~${Tp`P7<+TG&H|K#dcf?R@=I>vLo4wz_Rg3}g`fi)?EsUY%k zJI#u-8LN$wU=jJ{1c#uTT|L;rx~)0_gob8mrqhkOASy<_AS(rE$)-W0-sJlKlQEt; z!)LAWSF7}{X#Zu~?Z&5v?a@IIotK0T#_1t`kq*^L#Ww1lH%-6s?f$NTCj;+;(Yt+X z1M{bwYc6x}&}F7M4c7Os?H>KvcgH+=ykD}Qey6o(wg2kND|^BEt!t$RkA7TnZVa6{ zeAcq=)xYds{b+Dwr>w6RA3neM^!2XNZFTh1+YiFc^6ewc;1kfQ_q`h&jrH#v8zqNh Z_6bbx*YN7>i639G8Lv3w_G9zX%5MsrTTuW2 diff --git a/portal-common/src/main/webapp/common/image/ajax-loading.gif b/portal-common/src/main/webapp/common/image/ajax-loading.gif deleted file mode 100644 index 115f89846f6c96fd07e75e40d28735a7afd725ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29959 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 diff --git a/portal-common/src/main/webapp/common/image/arrow-down-enable.png b/portal-common/src/main/webapp/common/image/arrow-down-enable.png deleted file mode 100644 index dc8ddbe63022be135be2e1586e5b118744e9c48e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1035 zcmaJ=OK1~87~WE~rC8|2+Is1*6}*^z=3$nsHQ6LK;FgjG8VW);yOU;ZcW2$5m~92I z6~sy}f=KaT4+S3xf)_zNh|r6-3hKd&A_^jc_11$BXVWD0U|g7;2jBPo-~Z1)tCJIF z`}>adQ54mm8&BuSJQR%HL*)OdChwAI7-x!j3YBq9b0L*9Pzi#ZrOm-S)QrW8uVI3s zx`A0J;-Y#^(vihz0fzA{hp;IsG3Gm(J`XV{!8y~G>7OrN(!exidOD(Vs-wV)Ilkn= zsild6zBI4L4SMV}Nca*FuprieZ!OrKAwDLFg2Zv4`OzerYm}vYI@^pzb~0VT*pXPaR;w{J zkwNYp%g5vKKtm8h1QGHUZLIkr+Z$~uq@ky~rh`pngFsO$p(>VX;&d+s%W2EnUb9T3 zV63k>EYEO3N-dzO{vT>tZM28;aNqAgg}uU}1KB+EP}SAR#g#{cP>!UyP{YVAAhgh` z;$#J3aIK@I0RpQ%Y2b zr=nRwiHVU+Olfh`NUvJZ#x1U~&y95C2901jByt+M<|SxkU1Whq!jjq9i_lT8$u&BA z5j%2OVulT_^{;Dg9g*G%mhGk`n|9knoAkO%nmVywy-ps)axR@L_#aCC@7-Sy>h-#~ z-6!%Kw+98n8(+S^d%P+f4~MbSbL+ssN9uFExTAnOn{QW+p80Wj zEB0ng2uC4_)GSCi_9d}W`;2|TPQ*h( zEbtc~u`n`$#0CsSpbp&_5eqvDD_c3INyZ!?c)N+oq%q$MO)@AWD}3K zQVgGX0b_GqVIv7FyN@Yol+lncgK?(QVtx<>@qiWM0_3gX^H`YNR zK}^8I)B=gO<3}jb;8+(iJG~Yl7(-}ZgNH%2%o-?>5CetJW^7TCfU5FRPEl297099_ z3nE);M#>>YMe-V$e2{qyoerw&<%utL(qNC$00}}I$9$aSN!S&nd_JFQ$a01uGSSed zR+90f<*9;>BRg~h>JlHMidLHps0LZ2hbef$OxBMkWnu*r5-SiSUQAP(0!{P(P|us8 zBU;Bt@%~ddY7PS|)Nw=xq0JiCSx#LAs1#z0lCVk0&a{fP9-$=akpPq$Dp=WeeTT%+ zl`-BlQN@p_<=eQTYmh1MuIr$(m^BQks3^I7Ns1s;(Jjamv++J@Bwk zr(EZVtIp-7qu>S1vyMaeK6c6>@xVA`_#Co68kgFhbhczZyNgV$+kF zv$17|+2CWJO?$}3`s%`?B6||3q8FRV_xA6DgU6T8?;da80iEk#KGfc$7o55m7-0RK v@9eES|9SylE8jl(dG*}uS7*<>JO(~-Z~3P`zU|-qnZB%wQPtmU-hJ{1g~}`y diff --git a/portal-common/src/main/webapp/common/image/avatar.png b/portal-common/src/main/webapp/common/image/avatar.png deleted file mode 100644 index 2a14b35d609df2c27dbe48e983af072441ddf586..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2016 zcmah~dpJ~iA0Kq1Vq4L>F6$VyvF1Kz#xR%*nKJG%)=G0ZIBMpMnKNeGHf&L>q$Qh@ zdLAT6%N9wY^3KxA7O$e7w?rhidab3KUGJHewm;ry-}9Vve!t)M`FuX#>v_)p;K0pm zO{`2X7|dF}KQ9zrar$SKA^N_cRo_IHPY_=r5(dX18j%vju%)mV1o$#hJQxa!q$x?= zpeF`n^br&;M1+C>rUaJZMS2WgD^s9s493%2s}MMQ~B_n7>3IYjFB*qP z6cWjo%plTf42~O}N2IX1JT7gC%a^MVkz4{UaiPDs#J}Y-xk^xkz{+qK-nG=d-~H;D*tFNJuV)H7b2!7vlt#P%Q^GRfU1gZi2i_?Z4vE7flBr}W(Va}8QQg=? zjxU$tN2Sp?bS@FQ$dP`K?f>NvQ0D}F8$W34k_nv^{r3HkqKEfm4$9HlR-!|!#BK4# zV3x)4dF*iQz01OuKu7kPa$K49G7fOiXT-m#Yaid(XT<2$#y`H!#E`L_B^U$aWk9EG z(mrd;LD9nlPUjk82Ks;KWBx;+i7bs}JuJU@^JdAGDm#lu-syZzTU*;>Tj$@_XD`fu zzVQ96a%D@MWk2kf)*X8~NZiO+wI`idnplwTNH5B#sFBDsVt+Z0e%7?Ar?!;9G5mI1 z`6*}L5pK+-UCut0tI~dTs&H4)Ll3+7c9vcLBCEvNqxO3I4bs_fZ!F|tQZ`mS@Vc=6 zhLQAq_>ilm?Q=`$Tyav7qU=Oh^Qy<|EJW=t*~?F2jVD@uy^HVDJq2pdoJmVbN!h&{ zmdkZxKj#gHL`PfS!bBA?Dsc!S!`msw%hMAHhxyv9YoH_oF@Eyn3~% zbMvP2Z)RsLihFu`e9ZS6+1ZjA42Flt{kwP3Z+K-VWJoo&a6YzRQRS#uZIhwZezzew zR187Tkz>akPw~UfWY@TOU5qerI_j`-*r+qp{k6EQBBI+m%cm02XrADo|MJWH{JiV9 zT|kjruFFJ+!RNtsmLHcyRz8i|Iv&R?HM^V>cFk95;c#dO4qts}^weelD*&OvP4VUS z?bU3cwxXg!#P-tQlBU|aldnGSvV3aWP~F~cHxw}-OzVQba_LWz-!UrA$;qLb*0o%^ zWN3AI+Yz0iN$t7fttD#AI_81G!v4oGv9WeGHXY^9n&it1#?5-;Ty5Aj($?12w{PEC zE^~^|>c+=6c4bnciVv^QS+#jK)CUevPE8e^XliN-&+QPJnVC(m-*#}czhFb!XPs}> zH~*gd@~9hWlsJpN`r$J3p&2do$`=H_Tlq@$$%y{yi@vm-e?KkvLrolZA0f?fHa zd-tsTOu{W&$mNdePk$1`COdqe9f7FT7EK+39`mjVg{aZLZpS}Yyd0)oC!yuJm1}#O z_Vve=udiHT1>p0(5nk9bYu6%aV40i%sKZS&Gc&IWr+ZCH8umOI4xW+OXNiYT=uR~> ztSfCC`H>9e6%KAVBs3jfNciIPls&mGBQo);kl=rvDxsQ21J9mxBqj|K=q29_1q S`WNW`xqRP1UOi_=_J09Ca5*~w diff --git a/portal-common/src/main/webapp/common/image/bg-opacity.png b/portal-common/src/main/webapp/common/image/bg-opacity.png deleted file mode 100644 index 1be54cb028063275df98706c0d76c38836ac60c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 130 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE;=WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2!fo6;Bt(kcwMLDG3P~2@8}Gk`@?Am=;_)5XkJ#D`Q%)LV`me afnlv6!-|87^#_3J89ZJ6T-G@yGywqeOe2y2 diff --git a/portal-common/src/main/webapp/common/image/bg-white-lock.png b/portal-common/src/main/webapp/common/image/bg-white-lock.png deleted file mode 100644 index 159e17543778ea47536e826aaf0ed7d94fd6ad15..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2816 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 diff --git a/portal-common/src/main/webapp/common/image/checkbox-radio/checkbox-init.png b/portal-common/src/main/webapp/common/image/checkbox-radio/checkbox-init.png deleted file mode 100644 index e352cc517b84491160583438a2f334055caee932..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2833 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 diff --git a/portal-common/src/main/webapp/common/image/checkbox-radio/radio-checked-disabled.png b/portal-common/src/main/webapp/common/image/checkbox-radio/radio-checked-disabled.png deleted file mode 100644 index 16eecc57e55cefd80d1e2d01da75eb98f028e448..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2993 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 diff --git a/portal-common/src/main/webapp/common/image/checkbox-radio/radio-checked.png b/portal-common/src/main/webapp/common/image/checkbox-radio/radio-checked.png deleted file mode 100644 index 6c60d128a3e8d85506e16665de93fd05fe30b5fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3235 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 diff --git a/portal-common/src/main/webapp/common/image/checkbox-radio/radio-hover.png b/portal-common/src/main/webapp/common/image/checkbox-radio/radio-hover.png deleted file mode 100644 index 03138ca620bc6ce4f1d83e2d3c709de8b1febf19..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3068 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 diff --git a/portal-common/src/main/webapp/common/image/datatable-row-openclose.png b/portal-common/src/main/webapp/common/image/datatable-row-openclose.png deleted file mode 100644 index 8ec9e9768267a577bad383b2e30ec937917f93f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 299 zcmeAS@N?(olHy`uVBq!ia0vp^58U}fi7AzZCsS>Jiq3kvIEGZ*dNU)M>xcr6t8}5~yL#4lnsXcLrX18{ zhs=NR!obHag^v3ke|{eGBrs&H;>Eiqf4$fk5~gyq-(*q<+tw4eaOd$8+*a#zJm^nc_O`PlR0nN6RW4_ltt6#CoP@KP^MnXL5Xu(#$$*xkI6Xx?8F)*AE tOW|hFziCv`n#QlpB6(9tJGzXKjUjuso3WeGb1|T444$rjF6*2UngH0%Ya9Ro diff --git a/portal-common/src/main/webapp/common/image/delete.png b/portal-common/src/main/webapp/common/image/delete.png deleted file mode 100644 index 737f87975fd4df84dcf48e4f25fc386027350bc1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1100 zcmaJ=OK1~87~V8Bh%Xe>q9RVWT2#zFl5E?oO(ub?Pubvz~|$-LGX%RS`3?dyU}rcF4S#$70j^Rfl0eJaX85ZC1%n1r%AaO@du zq$qc_mP+GvqFq#w&d3giDd;9)Q&eMf!IYI=h(QMSXhw+seD^*LG&MvY5E5L%jKG{0 z8?<28U`I+B>{Ws)-P{Bk3nCHFA(lZwKWf-wAw)0gie&8^vou(Q;NB4Z+f+Ky2_ndX zKwt!~!tnu6A7pre4>a(5fRE$-Eazu=znAxkTu|f%u=LR+nx$sNq|~|;i|j&l4r5bf z*?d0FY$_4&L6;k5@0EEl|nT~kz$psiS%i8W*ZM^Vn8J{+Qn)88rR zW=Yntm&!y6#uj9go3c7Izcx{WC>bYKU7;Sq=Utb zMXkISuB_e?S1s>_FUw_#8P>VizwWtsM4HE0mb#W~N_`Iv((D%L>MOOeA@U*~#HD?y z!hGiE!a}oq$MEP#n5ut!d*Y)EW|uwef4#oqkv{yrHnx?iin*tEuSIS3mE)UYx;rCG zh?Ab})R%hjAzW7(_p_;{4R5H{_bsQ6%&!qD$7eiewww?A_%b_muj;xhy=ufYIX3;c zqVr|-#EYj_*ImwbGcDizw^lY@JN>TTb%DAuw{dFb)rc^bJ$GgA$epUO>TfgMQ`Etn z`_swX>E}=2+)6Ne)_dptD%Z2-M_bOgFJ5}OjB}Z3dEfD9hjcT1_{1*} CqhuQZ diff --git a/portal-common/src/main/webapp/common/image/edit.png b/portal-common/src/main/webapp/common/image/edit.png deleted file mode 100644 index 68d762576d6625362392742284ce372766a64221..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3045 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 diff --git a/portal-common/src/main/webapp/common/image/empty.png b/portal-common/src/main/webapp/common/image/empty.png deleted file mode 100644 index a1d202bc0ec5934d11a67049e013e730f92b72f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2790 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 diff --git a/portal-common/src/main/webapp/common/image/expand_arrow.png b/portal-common/src/main/webapp/common/image/expand_arrow.png deleted file mode 100644 index f8935e1f7f233ed29457868812793f74a1be2d8b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1182 zcmeAS@N?(olHy`uVBq!ia0vp@Ak4uAB#T}@sR2@wC9V-A!TD(=<%vb942~)JNvR5+ zxryniL8*x;m4zo$Z5SAsl`=yjN+NuHtdjF{^%6m9^eS=-fVvqNZ0suv5|gu2OB9k) z(=+pImEP~(ucVNfVyhHx>TBRz;GCL~=}}db8eHWUl3bOYY?-2DZ>L~WVFffGH?<^D zp&~aYuh^=>Rtapb6_5=Q)>l#hD=EpgRf0Gw!Z$#{Ilm}X!Bo#!H`&0@P{GVh&(Orw z%*;?n!N|bSNZ$a6%ybP+tW3?UjLa3FKnZADQA(Oskc%7CE+EfVDWjyMz)D}gyu4hm z+*mKaC|%#s($W%ShLMpjP=#)BWnM{Qg>GK4GRy>*)Z*l#%z~24{5%DaiHS-1r6smX zK$k+ikXryZHm?{OOuzusuShJ=H`Fr#c?qV_*B8Ii++4Wo;*y|LgnO|XTpUtakg6Y) zTAW{6lnjixG-Z%g1y;^Qsfi`|MIrh5Ij~R+$jC3rFV4s>P;d@5Q_u*{%uC5HFV+OB z_w}{%%quQQ%u7!7bg@+enxL1NnPTPSW@c<=Vq)TGVq$1$=xXd}U~cH<=IG{TXlZ0_ z?rZ?l>yn>bnwy$e0@Is<&})iQFDNPG765H_NiE7OOHFYr%Fk5*d)X=zw_A*Gng`XJ zg4->|IQ8lS9itD5Sfq%C2?0|NhzU=&Kn^_Nr{)1udl4{MPY`Li!N9;MgvVK3yUYbM6)bm2zWEG3I)bG&)? zUc4ma_~JYJ^TxxIo!RYdzQ4UQ{rNqYjJ~Gs(2$L7mU|w{Eq~$CyzI^FEq&ZuHZ*Oi zjlQ<-UnZ~L4X^YF7tZ*H`58@W^ER%Z`bi_+S|?OIaM-X^`|>G}=b z`Pb_jcvbfXL>vp&@w|A{%x>*GSAS2b35U+Ns2t_(3Y&K^Z0q~*GwmlYy5GDi{$b&g zX!FVa**TBSZp~e|_U%ij^BbT1yJyJvQTq2={u|xzUb5`0zjIkR>tgH`!y^o$DQ_-F uuI68}|6RPxpSNq1!`iP&KFZJ6IlwS?wui=UbzMnNiQ(z$=d#Wzp$Pz0tD=_x diff --git a/portal-common/src/main/webapp/common/image/firefox_icon.png b/portal-common/src/main/webapp/common/image/firefox_icon.png deleted file mode 100644 index 81470065160671429898a0e3195c7e989b359931..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3759 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 diff --git a/portal-common/src/main/webapp/common/image/hor-menu-search-close-white.png b/portal-common/src/main/webapp/common/image/hor-menu-search-close-white.png deleted file mode 100644 index d5bebfc9fa92d3f7b22d1f49e13b18080b4e1db7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^+#t-s1|(OmDOUqhk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5X5}fnHb2$pvd7O`|{uQukIUoO#9BjEo1O>^>bP0l+XkKu-!yx diff --git a/portal-common/src/main/webapp/common/image/hor-menu-search-close.png b/portal-common/src/main/webapp/common/image/hor-menu-search-close.png deleted file mode 100644 index 6dae950c606a89b11a5c60972e422cb45267cd98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmeAS@N?(olHy`uVBq!ia0vp^+#t-s1|(OmDOUqhk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XTs&PILn>}1Wn^Uh`27EWJ)4un625Z^O9Wh$x&ItrD4^FD z%p@&8+w=a!%spKnEjw!_C#o@Jy6wqRvoh)6OAksCP&mLKuq1Z2Q)Z?x&^!iDS3j3^ HP63(3`I}gvk>t!S%FItK?c-a=(Do0vaqvoUrym7)M;h`;uc~A8O3Slgh04A z3D>SxkuCChjs!?v*aMyI*V_X^hqs758BWt~wILO*h?Sg>_Jl97=5roI-1V-Fwu2RD nml1;~N>GU^c46tkJmW9DhC=qggEkbq(~shxqcY)qgt6UTqoN#b diff --git a/portal-common/src/main/webapp/common/image/hor-menu-search.png b/portal-common/src/main/webapp/common/image/hor-menu-search.png deleted file mode 100644 index 2a72156c82385ae970884e62337703c90e029742..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 299 zcmV+`0o4A9P)o>)O8Jssh|_xH5SUF z%|2vQQce*C8gu2duEJQ8)2=rwU$#3B0i?923f)m@K5b;Rm&no0inQ*X8<>M&{e&KH zM?g0k*@XGj3x(*9Q0wqnc%bAA|ZCw|j@8&G&OdD5WpBY_g?pp|T xtY~ciBRpb9Pg?tQgu0ooE8jw6VfOnHU;u}Y`(zPLDo6kT002ovPDHLkV1f*hdVBx? diff --git a/portal-common/src/main/webapp/common/image/icon-color-close.png b/portal-common/src/main/webapp/common/image/icon-color-close.png deleted file mode 100644 index 9b7dfacce6f9320a2a288775463ea299eaf60e75..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1031 zcmaJ=PiWIn91f^sjMd2mryk^yoy0Z&);4Qgoo&;(I6FpHSYaZ|lGinK$&1O`nob0_ ziA+3?5FJ0Stum)b$&Y@EFSDlIlPzuA?ak6jPms8K~;ztLw0z zq7DEfo5Q*EB}qdjqxu-eGi}1AsQv-ZR<$C;UqV%buu z#FTm&@CG#d3a1R+QeLAPvS)eBl~cU?h-uI3mvHjo8;MRf|z;uuYw?xkSb4Oz>r zm5CIL^;DbX8O~3s4os*24>ipO+Qk{T@Asd=ZnkVgHUnKW>uBWS^4)$YTS_`m#mLDb zG*hqQXaQm57LW~+V_`6ESUM`XRdhNnDVB>>OM{9WqY0le3|-=qq8N(z@?tU);`x-& zC-n6t6RDKIi{X%%NYuG9(q>I);W}5}=L$`^ej}JRi7Z3Mn1lMDgG^9OSTdS=5eA#; z)wp_dFI-bDOU$tTwf=R@^&`?d{<6`uWYcJSXpvrbNK=1aoZKQ0;<_Tov)gauI=GTdA;*Y$J~0mcmGlGLHlv~XQkZosfAr$ zTRF5G_!T{}@TRS2j#;QY`B7<|*uL^yzA^Ob^vmBL?_GOno!VH1mDO*t^Dn4);Lgp1 f8-cF_Z@(X#q^MiLFFTtnOa9YTQX}$OVsh~h$B|0z diff --git a/portal-common/src/main/webapp/common/image/icon-color.png b/portal-common/src/main/webapp/common/image/icon-color.png deleted file mode 100644 index b9666ee98e52467a3cec1a187bbd1163cb5e3cea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1240 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`Gjk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+m=!WZB1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%s|1+P|wiV z#N6CmN5ROz&_Lh7NZ-&%*U;R`*vQJjKmiJrfVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8EkR}&8R-I5=oVMzl_XZ^<`pZ$OmImpPAEg{v+u2}(t{7puX=A(aKG z`a!A1`K3k4z=%sz23b{L$o& z6x?oc!l_pu=oo!av?4__ObD2EKuma|1#;lYJ~a=R){B6NdRf(^-3$zjex5FlAr-fh z{`~)M&peSKR#Dk-mIQk@tCPbYG2b5Xj{O23`3Hx zPF6w$_bN6?4#m}u*A=*q)KB1femL2J=kvnIMcwC{+*T~Q%o5XgR(<)xD)k4O7@qt( zAK>~`MS}0}*MPnG3u}@UrX~OAm%TALvC-D7S>k{4`OHHOfBKFr>C`ngx^Ra{O{S~# z?|Dzopr0LK2G AJpcdz diff --git a/portal-common/src/main/webapp/common/image/icon-img-down.png b/portal-common/src/main/webapp/common/image/icon-img-down.png deleted file mode 100644 index 1b85914d6c825f67b4b167d6dd03e770418d051a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1023 zcmaJ=Pe>F|93C|+L@VlI67d*CO4|9i>x?_NuItX48_go)f(u=ooq4*G&b)Evt-I?* zQ3!*&cIZ?$sffA>26e4d6hQ<*P=TH5;K9JKH|y@&p>5#J`@{Erzwh^ZzjtdgbET`J zr-P!XuJnYW1v42ZPqdT&?#kV_WIBgaIXs1CaY^?el`v5rg0!vAK@I9=W$_gprl>Yx zWpg;EUXu-EGkSnw%C<|`6g3<#ySgzCG04L?%ZbrHwqMY|GGp}gpvtLk5*Dn9We-j* zXR^lfyb(3&_y`y-%S6D2SO;Z$!SUsCjIQd+WE~u{G^j%Ge2hLcl~X4{5_u2|GF-^u zL=K2N!-pf1BwYpq$8#(vu)GlBB{?j}90zJ2O`>_`tgI>HwOC{qqYD_jGRu}qC8iW+ zkT=Kj(P%W#5QGpxg#3zw^>WDZd+Q1c^bOB)v4tEEDC&7s#4(yUJxsxN8?ugHD-$Ug zTh?8cXSg7xI#5;r54G(E+Q%9^^7~I=KU;Ajt3e+XJ%e1_Y;O?Cm6IOSG4iqqE!3+x zSwI;11>}O{)F7C)921rNDq2Q4+;SSW-BV=TpL%!Y88K zP+~}uq6(Li>RbgGMH@P}&NYv?k*3_B5p0)4R-k7sL37+gHmD{nTg|=jP4#MAv$+?c zDVHT?*x*|Ky5{;3>78KNXj-yqv^{i4uY07a*9S(n$b%@Rl|;7uF~4_k5N{LrN7LWq zOtimUc)8hsai+5Q`1$#X>#fgj?tj{jyO)kV{6cBc>fX@VNxg5Q<;?2U&+jSi)Y65K zJ3Bq2`P=uq$2F=naC+rF%9F8~wLj~1MVbHr diff --git a/portal-common/src/main/webapp/common/image/icon-img-up.png b/portal-common/src/main/webapp/common/image/icon-img-up.png deleted file mode 100644 index d90af40050f681b13675439bc2ea4db4d56f69bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 999 zcmaJ=J#5oJ7`!=zzq^gqYY^kQiV>73G{JDFeaM`F`}?``-86cTeiex06$;DURck zdQEG@GaJ*FCfWbz!)G7abd6S8bcJ+i&kQhEvPl~Q-8I*71Dp2l)(2eVxC!7iTeM}| zQ!L^NW{eRc*Jo^wD=tL7X>DK%+IZdZRQ~(xH#~4`m0!&n(D2K+>(urFyt234wDvYE z+2$8+fnuaE0T)vfMDC^+Dv`?fbrrUbk3}BzA#_9K&rG$9Iw+F>gPZ^}7R*DCM*_;u z6$*t}AVCC0D2YhQpn{T>6bQlK<5{%8?kEkdI*7$~D&M8lS46Sb>j}NAK!SA<$+8@4 zNK%F&GU2XA%_!rA>7jy#Lo0B6>JSgaie{T^Q@1uFoQCIB<5bT@8o}`Uxw}crVgey#d!A?5@;e64?7 z^YDoEPP`m7E!&LR9(%0U1J=|j^j>EV;=Znxn$hR>uhY|oiTt;%>H}GjZ%od<{qgcR z0Qm9&;%0>8;_TDA>6z(ds(wAWnc6>cK6xi!F4nHxvAXv0L1OaAv5yZEht*=~_wyIv g=7nmmlvsR};J(&&_OG6#-^EW)uPke?mewBs0j@SSF8}}l diff --git a/portal-common/src/main/webapp/common/image/ideo_default_select.png b/portal-common/src/main/webapp/common/image/ideo_default_select.png deleted file mode 100644 index 50c3a251abe7f49f68cb8be3afafa762264419af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1035 zcmaJ=OK1~87~bNerC8|2+Is1*6}*^z@@qvPfV7>Jq#Mv}SJs1~e=fU@V|M&m%&uV_+ zY+vv3UW%gna^p&Y%!9$`IZXZ^Yw|9chVWPkPofI0X)dHv1}a04v$R=QfSR#*@fA!` z)B#`?OSq(-lXPS;T7Y4E%OPxvN{;%Drq4kP%5c`SW%}py7c?*pnVyQNoa$s?)f``P z;pEapQD2(VMS~ta4U)b@1T2U(;9K*yC;2kn(3QwKIA&?kfZ#cq-ZNEF^B{v<2x1Hu z(z!SX;ylAgqJkit0%4BlST4-+;SeuKk+8&Zp!v}xnrl>~f|6~4f>aiNBhTSRES zRmFT2VdPbj12U5_FlE{Xs(B5xs!BQA!Rgk`5K^wQY#y&UIksCCE<&ek4{g%xE@|p5@M)bqh~=D;D*Ers{_ovi_v`g~ zWV<)QbKFjNyPxB?2iK;#3teBY9@_Zw{q3XG@QG*?JKZ-A_J5#0*GoGYaBK6;%CR#) zj%*39w}!i(99X}XxPCVsdUkEAd+5r>orgV@Z>e(M$=f$}O6er^uDfoYA6^?cx;c=y eU!v)0s(*%>fBIlx`7)Iao@Z`sLV28?S@{E;vP}^H diff --git a/portal-common/src/main/webapp/common/image/import.png b/portal-common/src/main/webapp/common/image/import.png deleted file mode 100644 index 8cfc5256812d357676040024c5649a81fbc29487..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1250 zcmbVMZD<>19KSTCX={Tej@nh`o?RVuxa97VyEHkQHJ9AQ2A3Ms;QDcw+|%Z0?M7L;xXf)!-ifzvO-K-`xho2b|z^#$D*K?HTnhkg*5PEn^+<8y6O{ZRJ7!($vW$?)Q&hED4OYWJ!e6b>0xlTC^V(v+q-er-wHC=dTNV^3+jFlRz44{c-CD&c%g z4z$2Hc6V3g2x4paCoB~wMV=9j(yRt`lo8`3z6mO-!VAKXkd$KKFe^zC%P>h+kOYPf ziL5AcsR-BN*b~bMQCh@msj`DKNJm1 zLXwqemgXdmVT5!vnNHI~NtR~9bebi1u*(058HJ6ZoZ|RTv9ykG1v<;!(#M-((!MPk$YNpD-@d}7tL(mdG35ii_) zx4g-MzdP!1ed+kaSKryU{D`^#18@Dq(S<{UX|I-8?Yz$oKKC|;!Bb1;E_fT?Bo^A1 zzkIE@6zz6jyFnKYt$Th=%yiT*Cw}Ove|quzTjb4ZuDkvD?o0IRm64uDiQ6O?Yiq3J z)=u6y!1nf4JdM+X2Ry!&v!hquTifuUpZbq1tS;UGFEt-J_vHP4|Es>`Dsg$>#jmXL zV#v*Sdmc}$xh~y%+Et16d?)x%xqR2p0_Xn2Wc;?Pw_S?VS-tZhP xzI^dYKXLn5`Oh~$+Bjpf`Bxr1-#2&<;c6#(JL4;-LUrW)bu!YJ_*U}d(m#j3n^yn; diff --git a/portal-common/src/main/webapp/common/image/input-spinner.gif b/portal-common/src/main/webapp/common/image/input-spinner.gif deleted file mode 100644 index 5b33f7e54f4e55b6b8774d86d96895db9af044b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1849 zcma*odr(tX9tZI2z31lM+(&YVk%mZ}5P~KlG2s=WSbGzm0!x7^P##Mnh7t-jP!X0Q zk_SQ}Po-L1tlDK;6l?(>v)e5ZBQx4|Y-Q?nr@Px3?9h(3ZWr3^tj=`TP57gKr87N$ zp2wWee1GRRCwo_xahnw)5cxNPJbCg2L6DV|6`#+yw6v6!mDS$f9-JvFD^n;GQ&UrZ zzh5jCkByB101O60U0q#p_1BM>Cv-vP?&s4@g_((4_1L=L$(a91)0=J91Gas#R{McE znYG^9*0A5YZ>#;~+Wkn(W5B0^yELIYLP!K}mB~<)AM@1&nqekynuaEGqPrzoH|KodRXJy)%+w_fu3nE5>@Bd_b zqC$EQ;{c`T&?EsNO|igL9gC7Ygxv?aQUEXMq?~>wg{EyW;VcJ37CUF#HjrT=KQO_* zS>M9yydXk18D(+QDJ1>r);Lav_uYKp$T?4vr{Q$lTo&pKv^?(>L-)G2*lwH!Ah7k? z7oH<8h-(KTKt5V6$8gF)C7Io&P5=SjTh)=zV=E2EUhQZP##L8S{d%UK>>+y82>+FV+#^BzW7u3F)Bb>=lYQ%%j`F>ASe zo*cw@V#u6T`A2He;70mR(V&iV&-7{qP~=SRf&jm9-T{*ZeZ}$rd0#6c&fLG^xJcf5 z+p<`wJYgW+_s*V{uI$nMB;%8`S_3>PfGOj3Rq}@Cx^+j?rk92fANSFDBYnOqQ>Vdj z)(|$AhP4t&Lb=Gvo2#3Gl%9<=Gv`Mz?Po@P4iLF!x}GUWJICDlFk-hS^Whyh7x~VH z@0vD1>HYD4&e+~yzS*-sFR{9`{QEEZO1zg7>R&7cHts-6j!xHVdA8eI+ZlVzd%`es zJT@$#GX(gvCJ1oJN%yLBK}{V=V;seo;!w|Yte!W1%5qLNFWqvZW>h&IiH+oPT=b@E zPhGzv5=(Un*X>v`>%8h_nj^NdYcE6NHS_ifkCV$*D)Tqrbu`s;<=t<4 zAHNqNV?6(g<1PY-w@#I-WYFViz?9TrkMr)u0g`O`u|>T;k|2sV*YF^punvT;$SuTy{j3Gv)yqD!R_CF>yR)MzmmYS5v+~R zXAdD%ng9?df;wd8GxR#%3O+gz};Vo;)sK%Bj-q>Oq%R7JU-KD?vYu>#2UjaDo z&8$>5xW~?KPD_#XFToU1hIb*VOMidUr6iYiO0N|i-7s`T8!cFT`rN!^1Pt78J93i6 z5HI1wIM$94m{3SLDvISDe6$ZG1;eq_D9RTaaC>=cO{@Bs>$IlPCPJJ$h$)-3vzNUQ6OsN#_zWxey!_9%hxwH2_dEJi=yY|1c7nDm2_Lm!Cof8-R_+9UkS zcBE(o47yE)oMR(Q=dp1a2wTX5KvvGyLqlWTa7V&!A*|w|)ax~1_~aJ0=_Lilg*0iQk7#ZD EAHN$8j{pDw diff --git a/portal-common/src/main/webapp/common/image/integration/License.txt b/portal-common/src/main/webapp/common/image/integration/License.txt deleted file mode 100644 index d1ce787a..00000000 --- a/portal-common/src/main/webapp/common/image/integration/License.txt +++ /dev/null @@ -1,362 +0,0 @@ -THIS LICENSE FILE CONTAINS THE LICENSE APPLICABLE DEPENDING ON THE TYPE OF CONTRIBUTIONS. - -APACHE LICENSE 2 IS APPLICABLE FOR SOURCE CODE, CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL FOR DOCUMENTATION - -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - - -Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - -"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - -"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - -"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - -"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - -"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - -"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - -"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - -"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - -"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - -"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - -2. Grant of Copyright License. - -Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. - -Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - -4. Redistribution. - -You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - -You must give any other recipients of the Work or Derivative Works a copy of this License; and You must cause any modified files to carry prominent notices stating that You changed the files; and You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - -5. Submission of Contributions. - -Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - -6. Trademarks. - -This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. - -Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. - -In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. - -While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS - -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - -Attribution 4.0 International - -https://creativecommons.org/licenses/by/4.0/legalcode - -Creative Commons Corporation ("Creative Commons") is not a law firm and does not provide legal services or legal advice. Distribution of Creative Commons public licenses does not create a lawyer-client or other relationship. Creative Commons makes its licenses and related information available on an "as-is" basis. Creative Commons gives no warranties regarding its licenses, any material licensed under their terms and conditions, or any related information. Creative Commons disclaims all liability for damages resulting from their use to the fullest extent possible. - -Using Creative Commons Public Licenses - -Creative Commons public licenses provide a standard set of terms and conditions that creators and other rights holders may use to share original works of authorship and other material subject to copyright and certain other rights specified in the public license below. The following considerations are for informational purposes only, are not exhaustive, and do not form part of our licenses. - - Considerations for licensors: Our public licenses are - intended for use by those authorized to give the public - permission to use material in ways otherwise restricted by - copyright and certain other rights. Our licenses are - irrevocable. Licensors should read and understand the terms - and conditions of the license they choose before applying it. - Licensors should also secure all rights necessary before - applying our licenses so that the public can reuse the - material as expected. Licensors should clearly mark any - material not subject to the license. This includes other CC- - licensed material, or material used under an exception or - limitation to copyright. More considerations for licensors: - wiki.creativecommons.org/Considerations_for_licensors - Considerations for the public: By using one of our public - licenses, a licensor grants the public permission to use the - licensed material under specified terms and conditions. If - the licensor's permission is not necessary for any reason--for - example, because of any applicable exception or limitation to - copyright--then that use is not regulated by the license. Our - licenses grant only permissions under copyright and certain - other rights that a licensor has authority to grant. Use of - the licensed material may still be restricted for other - reasons, including because others have copyright or other - rights in the material. A licensor may make special requests, - such as asking that all changes be marked or described. - Although not required by our licenses, you are encouraged to - respect those requests where reasonable. More_considerations - for the public: - wiki.creativecommons.org/Considerations_for_licensees -Creative Commons Attribution 4.0 International Public License - -By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions. - - -Section 1 -- Definitions. - - a. Adapted Material means material subject to Copyright and Similar - Rights that is derived from or based upon the Licensed Material - and in which the Licensed Material is translated, altered, - arranged, transformed, or otherwise modified in a manner requiring - permission under the Copyright and Similar Rights held by the - Licensor. For purposes of this Public License, where the Licensed - Material is a musical work, performance, or sound recording, - Adapted Material is always produced where the Licensed Material is - synched in timed relation with a moving image. - b. Adapter's License means the license You apply to Your Copyright - and Similar Rights in Your contributions to Adapted Material in - accordance with the terms and conditions of this Public License. - c. Copyright and Similar Rights means copyright and/or similar rights - closely related to copyright including, without limitation, - performance, broadcast, sound recording, and Sui Generis Database - Rights, without regard to how the rights are labeled or - categorized. For purposes of this Public License, the rights - specified in Section 2(b)(1)-(2) are not Copyright and Similar - Rights. - d. Effective Technological Measures means those measures that, in the - absence of proper authority, may not be circumvented under laws - fulfilling obligations under Article 11 of the WIPO Copyright - Treaty adopted on December 20, 1996, and/or similar international - agreements. - e. Exceptions and Limitations means fair use, fair dealing, and/or - any other exception or limitation to Copyright and Similar Rights - that applies to Your use of the Licensed Material. - f. Licensed Material means the artistic or literary work, database, - or other material to which the Licensor applied this Public - License. - g. Licensed Rights means the rights granted to You subject to the - terms and conditions of this Public License, which are limited to - all Copyright and Similar Rights that apply to Your use of the - Licensed Material and that the Licensor has authority to license. - h. Licensor means the individual(s) or entity(ies) granting rights - under this Public License. - i. Share means to provide material to the public by any means or - process that requires permission under the Licensed Rights, such - as reproduction, public display, public performance, distribution, - dissemination, communication, or importation, and to make material - available to the public including in ways that members of the - public may access the material from a place and at a time - individually chosen by them. - j. Sui Generis Database Rights means rights other than copyright - resulting from Directive 96/9/EC of the European Parliament and of - the Council of 11 March 1996 on the legal protection of databases, - as amended and/or succeeded, as well as other essentially - equivalent rights anywhere in the world. - k. You means the individual or entity exercising the Licensed Rights - under this Public License. Your has a corresponding meaning. - -Section 2 -- Scope. - - a. License grant. - 1. Subject to the terms and conditions of this Public License, - the Licensor hereby grants You a worldwide, royalty-free, - non-sublicensable, non-exclusive, irrevocable license to - exercise the Licensed Rights in the Licensed Material to: - a. reproduce and Share the Licensed Material, in whole or - in part; and - b. produce, reproduce, and Share Adapted Material. - 2. Exceptions and Limitations. For the avoidance of doubt, where - Exceptions and Limitations apply to Your use, this Public - License does not apply, and You do not need to comply with - its terms and conditions. - 3. Term. The term of this Public License is specified in Section - 6(a). - 4. Media and formats; technical modifications allowed. The - Licensor authorizes You to exercise the Licensed Rights in - all media and formats whether now known or hereafter created, - and to make technical modifications necessary to do so. The - Licensor waives and/or agrees not to assert any right or - authority to forbid You from making technical modifications - necessary to exercise the Licensed Rights, including - technical modifications necessary to circumvent Effective - Technological Measures. For purposes of this Public License, - simply making modifications authorized by this Section 2(a) - (4) never produces Adapted Material. - 5. Downstream recipients. - a. Offer from the Licensor -- Licensed Material. Every - recipient of the Licensed Material automatically - receives an offer from the Licensor to exercise the - Licensed Rights under the terms and conditions of this - Public License. - b. No downstream restrictions. You may not offer or impose - any additional or different terms or conditions on, or - apply any Effective Technological Measures to, the - Licensed Material if doing so restricts exercise of the - Licensed Rights by any recipient of the Licensed - Material. - 6. No endorsement. Nothing in this Public License constitutes or - may be construed as permission to assert or imply that You - are, or that Your use of the Licensed Material is, connected - with, or sponsored, endorsed, or granted official status by, - the Licensor or others designated to receive attribution as - provided in Section 3(a)(1)(A)(i). - b. Other rights. - 1. Moral rights, such as the right of integrity, are not - licensed under this Public License, nor are publicity, - privacy, and/or other similar personality rights; however, to - the extent possible, the Licensor waives and/or agrees not to - assert any such rights held by the Licensor to the limited - extent necessary to allow You to exercise the Licensed - Rights, but not otherwise. - 2. Patent and trademark rights are not licensed under this - Public License. - 3. To the extent possible, the Licensor waives any right to - collect royalties from You for the exercise of the Licensed - Rights, whether directly or through a collecting society - under any voluntary or waivable statutory or compulsory - licensing scheme. In all other cases the Licensor expressly - reserves any right to collect such royalties. - -Section 3 -- License Conditions. - -Your exercise of the Licensed Rights is expressly made subject to the following conditions. - - a. Attribution. - 1. If You Share the Licensed Material (including in modified - form), You must: - a. retain the following if it is supplied by the Licensor - with the Licensed Material: - i. identification of the creator(s) of the Licensed - Material and any others designated to receive - attribution, in any reasonable manner requested by - the Licensor (including by pseudonym if - designated); - ii. a copyright notice; - iii. a notice that refers to this Public License; - iv. a notice that refers to the disclaimer of - warranties; - v. a URI or hyperlink to the Licensed Material to the - extent reasonably practicable; - b. indicate if You modified the Licensed Material and - retain an indication of any previous modifications; and - c. indicate the Licensed Material is licensed under this - Public License, and include the text of, or the URI or - hyperlink to, this Public License. - 2. You may satisfy the conditions in Section 3(a)(1) in any - reasonable manner based on the medium, means, and context in - which You Share the Licensed Material. For example, it may be - reasonable to satisfy the conditions by providing a URI or - hyperlink to a resource that includes the required - information. - 3. If requested by the Licensor, You must remove any of the - information required by Section 3(a)(1)(A) to the extent - reasonably practicable. - 4. If You Share Adapted Material You produce, the Adapter's - License You apply must not prevent recipients of the Adapted - Material from complying with this Public License. - -Section 4 -- Sui Generis Database Rights. - -Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material: - - a. for the avoidance of doubt, Section 2(a)(1) grants You the right - to extract, reuse, reproduce, and Share all or a substantial - portion of the contents of the database; - b. if You include all or a substantial portion of the database - contents in a database in which You have Sui Generis Database - Rights, then the database in which You have Sui Generis Database - Rights (but not its individual contents) is Adapted Material; and - c. You must comply with the conditions in Section 3(a) if You Share - all or a substantial portion of the contents of the database. -For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights. - - -Section 5 -- Disclaimer of Warranties and Limitation of Liability. - - a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE - EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS - AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF - ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, - IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, - WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR - PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, - ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT - KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT - ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. - b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE - TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, - NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, - INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, - COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR - USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN - ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR - DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR - IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. - c. The disclaimer of warranties and limitation of liability provided - above shall be interpreted in a manner that, to the extent - possible, most closely approximates an absolute disclaimer and - waiver of all liability. - -Section 6 -- Term and Termination. - - a. This Public License applies for the term of the Copyright and - Similar Rights licensed here. However, if You fail to comply with - this Public License, then Your rights under this Public License - terminate automatically. - b. Where Your right to use the Licensed Material has terminated under - Section 6(a), it reinstates: - 1. automatically as of the date the violation is cured, provided - it is cured within 30 days of Your discovery of the - violation; or - 2. upon express reinstatement by the Licensor. - For the avoidance of doubt, this Section 6(b) does not affect any - right the Licensor may have to seek remedies for Your violations - of this Public License. - c. For the avoidance of doubt, the Licensor may also offer the - Licensed Material under separate terms or conditions or stop - distributing the Licensed Material at any time; however, doing so - will not terminate this Public License. - d. Sections 1, 5, 6, 7, and 8 survive termination of this Public - License. - -Section 7 -- Other Terms and Conditions. - - a. The Licensor shall not be bound by any additional or different - terms or conditions communicated by You unless expressly agreed. - b. Any arrangements, understandings, or agreements regarding the - Licensed Material not stated herein are separate from and - independent of the terms and conditions of this Public License. - -Section 8 -- Interpretation. - - a. For the avoidance of doubt, this Public License does not, and - shall not be interpreted to, reduce, limit, restrict, or impose - conditions on any use of the Licensed Material that could lawfully - be made without permission under this Public License. - b. To the extent possible, if any provision of this Public License is - deemed unenforceable, it shall be automatically reformed to the - minimum extent necessary to make it enforceable. If the provision - cannot be reformed, it shall be severed from this Public License - without affecting the enforceability of the remaining terms and - conditions. - c. No term or condition of this Public License will be waived and no - failure to comply consented to unless expressly agreed to by the - Licensor. - d. Nothing in this Public License constitutes or may be interpreted - as a limitation upon, or waiver of, any privileges and immunities - that apply to the Licensor or You, including from the legal - processes of any jurisdiction or authority. -Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the "Licensor." The text of the Creative Commons public licenses is dedicated to the public domain under the CC0 Public Domain Dedication. Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at creativecommons.org/policies, Creative Commons does not authorize the use of the trademark "Creative Commons" or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses. - -Creative Commons may be contacted at creativecommons.org. \ No newline at end of file diff --git a/portal-common/src/main/webapp/common/image/integration/openo_bg_1.jpg b/portal-common/src/main/webapp/common/image/integration/openo_bg_1.jpg deleted file mode 100644 index db94b166550fb71d58a15ca2411922a35fcaa181..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 152396 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') - .insertBefore( $('li:last', an[i])[0] ) - .bind('click', function (e) { - e.preventDefault(); - oSettings._iDisplayStart = (parseInt($('a', this).text(),10)-1) * oPaging.iLength; - fnDraw( oSettings ); - } ); - } - - // Add / remove disabled classes from the static elements - if ( oPaging.iPage === 0 ) { - $('li:first', an[i]).addClass('disabled'); - } else { - $('li:first', an[i]).removeClass('disabled'); - } - - if ( oPaging.iPage === oPaging.iTotalPages-1 || oPaging.iTotalPages === 0 ) { - $('li:last', an[i]).addClass('disabled'); - } else { - $('li:last', an[i]).removeClass('disabled'); - } - } - } - } -} ); - -/* Bootstrap style full number pagination control */ -$.extend( $.fn.dataTableExt.oPagination, { - "bootstrap_full_number": { - "fnInit": function( oSettings, nPaging, fnDraw ) { - var oLang = oSettings.oLanguage.oPaginate; - var fnClickHandler = function ( e ) { - e.preventDefault(); - if ( oSettings.oApi._fnPageChange(oSettings, e.data.action) ) { - fnDraw( oSettings ); - } - }; - - $(nPaging).append( - '
      ' + - '' + - ''+ - '' + - '' + - '
    ' - ); - var els = $('a', nPaging); - $(els[0]).bind('click.DT', { action: "first" }, fnClickHandler); - $(els[1]).bind( 'click.DT', { action: "previous" }, fnClickHandler ); - $(els[2]).bind('click.DT', { action: "next" }, fnClickHandler); - $(els[3]).bind('click.DT', { action: "last" }, fnClickHandler); - }, - - "fnUpdate": function ( oSettings, fnDraw ) { - var iListLength = 5; - var oPaging = oSettings.oInstance.fnPagingInfo(); - var an = oSettings.aanFeatures.p; - var i, j, sClass, iStart, iEnd, iHalf=Math.floor(iListLength/2); - - if ( oPaging.iTotalPages < iListLength) { - iStart = 1; - iEnd = oPaging.iTotalPages; - } - else if ( oPaging.iPage <= iHalf ) { - iStart = 1; - iEnd = iListLength; - } else if ( oPaging.iPage >= (oPaging.iTotalPages-iHalf) ) { - iStart = oPaging.iTotalPages - iListLength + 1; - iEnd = oPaging.iTotalPages; - } else { - iStart = oPaging.iPage - iHalf + 1; - iEnd = iStart + iListLength - 1; - } - - - - for ( i=0, iLen=an.length ; i'+j+'') - .insertBefore( $('li.next:first', an[i])[0] ) - .bind('click', function (e) { - e.preventDefault(); - oSettings._iDisplayStart = (parseInt($('a', this).text(),10)-1) * oPaging.iLength; - fnDraw( oSettings ); - } ); - } - - // Add / remove disabled classes from the static elements - if ( oPaging.iPage === 0 ) { - $('li.prev', an[i]).addClass('disabled'); - } else { - $('li.prev', an[i]).removeClass('disabled'); - } - - if ( oPaging.iPage === oPaging.iTotalPages-1 || oPaging.iTotalPages === 0 ) { - $('li.next', an[i]).addClass('disabled'); - } else { - $('li.next', an[i]).removeClass('disabled'); - } - } - } - } -} ); - -/* Bootstrap style full number pagination control */ -$.extend( $.fn.dataTableExt.oPagination, { - "bootstrap_extended": { - "fnInit": function( oSettings, nPaging, fnDraw ) { - var oLang = oSettings.oLanguage.oPaginate; - var oPaging = oSettings.oInstance.fnPagingInfo(); - - var fnClickHandler = function ( e ) { - e.preventDefault(); - if ( oSettings.oApi._fnPageChange(oSettings, e.data.action) ) { - fnDraw( oSettings ); - } - }; - - $(nPaging).append( - '
    ' + oLang.sPage + ' ' + - '' + - '' + - ' ' + - oLang.sPageOf + ' ' + - '
    ' - ); - - var els = $('a', nPaging); - - $(els[0]).bind('click.DT', { action: "previous" }, fnClickHandler ); - $(els[1]).bind('click.DT', { action: "next" }, fnClickHandler); - - $('.pagination-panel-input', nPaging).bind('change.DT', function(e) { - var oPaging = oSettings.oInstance.fnPagingInfo(); - e.preventDefault(); - var page = parseInt($(this).val()); - if (page > 0 && page < oPaging.iTotalPages) { - if ( oSettings.oApi._fnPageChange(oSettings, page-1) ) { - fnDraw( oSettings ); - } - } else { - $(this).val(oPaging.iPage + 1); - } - }); - - $('.pagination-panel-input', nPaging).bind('keypress.DT', function(e) { - var oPaging = oSettings.oInstance.fnPagingInfo(); - if (e.which == 13) { - var page = parseInt($(this).val()); - if (page > 0 && page < oSettings.oInstance.fnPagingInfo().iTotalPages) { - if ( oSettings.oApi._fnPageChange(oSettings, page-1) ) { - fnDraw( oSettings ); - } - } else { - $(this).val(oPaging.iPage + 1); - } - e.preventDefault(); - } - }); - }, - - "fnUpdate": function ( oSettings, fnDraw ) { - var iListLength = 5; - var oPaging = oSettings.oInstance.fnPagingInfo(); - var an = oSettings.aanFeatures.p; - var i, j, sClass, iStart, iEnd, iHalf=Math.floor(iListLength/2); - - if ( oPaging.iTotalPages < iListLength) { - iStart = 1; - iEnd = oPaging.iTotalPages; - } - else if ( oPaging.iPage <= iHalf ) { - iStart = 1; - iEnd = iListLength; - } else if ( oPaging.iPage >= (oPaging.iTotalPages-iHalf) ) { - iStart = oPaging.iTotalPages - iListLength + 1; - iEnd = oPaging.iTotalPages; - } else { - iStart = oPaging.iPage - iHalf + 1; - iEnd = iStart + iListLength - 1; - } - - - for ( i=0, iLen=an.length ; i'+j+'') - .insertBefore( $('li.next:first', an[i])[0] ) - .bind('click', function (e) { - e.preventDefault(); - oSettings._iDisplayStart = (parseInt($('a', this).text(),10)-1) * oPaging.iLength; - fnDraw( oSettings ); - } ); - } - - // Add / remove disabled classes from the static elements - if ( oPaging.iPage === 0 ) { - $('a.prev', an[i]).addClass('disabled'); - } else { - $('a.prev', an[i]).removeClass('disabled'); - } - - if ( oPaging.iPage === oPaging.iTotalPages-1 || oPaging.iTotalPages === 0 ) { - $('a.next', an[i]).addClass('disabled'); - } else { - $('a.next', an[i]).removeClass('disabled'); - } - } - } - } -} ); - -/* - * TableTools Bootstrap compatibility - * Required TableTools 2.1+ - */ -if ( $.fn.DataTable.TableTools ) { - // Set the classes that TableTools uses to something suitable for Bootstrap - $.extend( true, $.fn.DataTable.TableTools.classes, { - "container": "btn-group", - "buttons": { - "normal": "btn default", - "disabled": "btn disabled" - }, - "collection": { - "container": "DTTT_dropdown dropdown-menu", - "buttons": { - "normal": "", - "disabled": "disabled" - } - } - } ); - - // Have the collection use a bootstrap compatible dropdown - $.extend( true, $.fn.DataTable.TableTools.DEFAULTS.oTags, { - "collection": { - "container": "ul", - "button": "li", - "liner": "a" - } - } ); -} \ No newline at end of file diff --git a/portal-common/src/main/webapp/common/thirdparty/data-tables/DataTableICT.js b/portal-common/src/main/webapp/common/thirdparty/data-tables/DataTableICT.js deleted file mode 100644 index 27234eff..00000000 --- a/portal-common/src/main/webapp/common/thirdparty/data-tables/DataTableICT.js +++ /dev/null @@ -1,1459 +0,0 @@ -/*** - Wrapper/Helper Class for datagrid based on jQuery Datatable Plugin - ***/ -var DatatableICT = function () { - - var contextData; - var tableOptions; // main options - var dataTable; // datatable object - var table; // actual table jquery object - var tableContainer; // actual table container object - var tableWrapper; // actual table wrapper jquery object - var tableInitialized = false; - var ajaxParams = []; // set filter mode - var columns; - var xsHiddenColumns; - var smHiddenColumns; - var columnMaxLength = 30; - var columnsTooLong; - var hidden_xs_maxWidth = 768; - var hidden_sm_maxWidth = 991; - - var openRowFlag = false; - var rowOverFlag = false; - var rowCheckable = false; - - var aTargetsAll; - var sTotalRecordsSource; - var totalRecords; - var tableHeight; - - var requestType="GET"; - var callbackList = []; - var checkedRowDatas = []; - var currentPageData; - - var includedInXsHiddenColumns = function(columnId){ - for(var i=0;i tr > td:nth-child(1) input[type="checkbox"]:checked', table).size(); - var text = tableOptions.dataTable.oLanguage.sGroupActions; - if (selected > 0) { - $('.table-group-actions > span', tableWrapper).text(text.replace("_TOTAL_", selected)); - } else { - $('.table-group-actions > span', tableWrapper).text(""); - } - } - - var jsonObjectToArray = function(json, columns, iDraw){ - var jsonToDatatable = {aaData:[], sEcho:iDraw, iTotalRecords:0, iTotalDisplayRecords:0 }; - //获取数据的属性 - var dataField; - //性能的情况 - if(json.data){ - dataField = json.data; - } - //告警的情况 - if(json.response && json.response.data){ - dataField = json.response.data; - } - for(var i=0; i"); - } - if(openRowFlag){ - jsonToDatatable.aaData[i].push(""); - } - for(var j=0; j= hidden_xs_maxWidth && $(window).width() < hidden_sm_maxWidth && includedInSmHiddenColumns(columns[j].columnId )){ - /*隐藏pad尺寸需要隐藏的列*/ - }else if($(window).width() < hidden_xs_maxWidth && includedInXsHiddenColumns(columns[j].columnId )){ - /*隐藏手机尺寸需要隐藏的列*/ - }else{ - var currentColumnId = columns[j].columnId; - if(jQuery.inArray(currentColumnId, columnsTooLong) > -1){ - var rawText = ""; - for(var k=0;k columnMaxLength){ - jsonToDatatable.aaData[i].push(rawText.slice(0, columnMaxLength) + '...'); - }else{ - jsonToDatatable.aaData[i].push(resRowObject[currentColumnId]); - } - } else { - jsonToDatatable.aaData[i].push(resRowObject[currentColumnId]); - } - - } - } - } - jsonToDatatable.sEcho++; - //取得总行数 - var totalRow = 0; - if(requestType == "POST"){ //性能的情况单独发请求获得总行数 - totalRow = totalRecords; - }else{ - var totalRecordsSource = eval('json.' + sTotalRecordsSource); - if(totalRecordsSource && totalRecordsSource.length >0){ - totalRow = parseInt(totalRecordsSource); - } - } - if(isNaN(totalRow)){ - alert('All rows counting number got fail!'); - }else{ - jsonToDatatable.iTotalRecords = totalRow; - jsonToDatatable.iTotalDisplayRecords = totalRow; - } - return jsonToDatatable; - } - - var singleAlarmDel = function(divOverlay){ - - //根据浮动框的当前id获取需要删除的行 - var trId = divOverlay.attr('id_tr'); - tr=$('tr#' + trId); - var tds = $(tr).children(); - var tdAlarmId = ""; - if(rowCheckable){ - tdAlarmId = $(tds.eq(2)).text(); - }else{ - tdAlarmId = $(tds.eq(1)).text(); - } - - var data= { - "alarmId":[parseInt(tdAlarmId)] - }; - - var sSource = "/web/rest/web/fm/curalarms?data=" + JSON.stringify(data) + "&_operationType=remove&_dataSource=isc_PageRestDataSource_0&isc_metaDataPrefix=_&isc_dataFormat=json"; - - $.ajax( { - "dataType": 'json', - "type": "DELETE", - "url": sSource, - "data" : null, - "contentType" : 'application/json; charset=utf-8', - "success": function(json) { - if(json.response.status == 0){ - var resRowObject = json.response.data[0]; - //alert('删除成功'); - } - if(json.response.status == -1){ - //alert('删除失败'); - } - }, - "error": function() { - alert('Communication Error!'); - } - } ); - } - - var singleAlarmAckUnAck = function(divOverlay, ackType){ - - //根据浮动框的当前id获取需要确认的行 - var trId = divOverlay.attr('id_tr'); - var tr = $('tr#' + trId); - - //取得隐藏的头部表格的相应行 - var $tableHead = $('div.dataTables_scrollHeadInner > table.dataTable', contextData.wrapperDivContext); - //var trHead = $('tbody > tr:nth-child(' + trId + ')', $tableHead); - var trHead = $('tr#' + trId.replace('body', 'head'), $tableHead); - var tdDivs = $('td > div', trHead); - - var tds = $(tr).children(); - var tdAlarmId = ""; - if(rowCheckable){ - tdAlarmId = $(tds.eq(2)).text(); - }else{ - tdAlarmId = $(tds.eq(1)).text(); - } - - var aoData = - { - "dataSource":"isc_PageRestDataSource_0", - "operationType":"update", - "componentId":"isc_com_zte_ums_aos_fm_view_eventview_table_AlarmTable_0", - "data":{ - "viewType":1, - "state":ackType, - "alarmId":[ - parseInt(tdAlarmId) - ] - }, - "oldValues":null - }; - - var sSource = "/web/rest/web/fm/curalarms?isc_dataFormat=json"; - - $.ajax( { - "dataType": 'json', - "type": "PUT", - "url": sSource, - "contentType": 'application/json; charset=utf-8', - "data": JSON.stringify(aoData), - "success": function(json) { - if(callbackList[1]){ - json = callbackList[1](json); - } - if(json.response.status == 0){ - var resRowObject = json.response.data[0]; - var columnsCopy = $.extend(true, [], columns); - //隐藏列的情况下需要特殊处理 - if($(window).width()>=hidden_xs_maxWidth && $(window).width() -1) { - var rawText = ""; - for(var k=0;k columnMaxLength){ - $(tds.eq(i)).html(rawText.slice(0, columnMaxLength) + '...'); - $(tdDivs.eq(i)).html(rawText.slice(0, columnMaxLength) + '...'); - }else{ - $(tds.eq(i)).html(resRowObject[currentColumnId]); - $(tdDivs.eq(i)).html(resRowObject[currentColumnId]); - } - } else { - $(tds.eq(i)).html(resRowObject[currentColumnId]); - $(tdDivs.eq(i)).html(resRowObject[currentColumnId]); - } - } - //更新缓存中的当前行数据 - for (var t = 0; t < dataTable.datas.length; t++) { - var temp = dataTable.datas[t]; - if (temp.alarmId == resRowObject['alarmId']) { - dataTable.datas[t] = resRowObject; - break; - } - } - } - if(json.response.status == -1){ - $('div#myModalConfirm' + contextData.curentDatableId).modal({ - keyboard: false, - backdrop: 'static' - }); - $('span#alarm_number' + contextData.curentDatableId).html(tdAlarmId); - //国际化信息 - if(ackType==1){ - $('span#aos_fm_alarm_opeater_ack_already').html($.i18n.prop('aos_fm_alarm_opeater_ack_already_ok').replace(/\"/g,"").replace(";", "")); - }else{ - $('span#aos_fm_alarm_opeater_ack_already').html($.i18n.prop('aos_fm_alarm_opeater_ack_already_un').replace(/\"/g,"").replace(";", "")); - } - } - }, - "error": function() { - alert('Communication Error!'); - } - } ); - } - - var addRowOverlap = function(){ - var $tableData = $('table#datatable_ajax' + contextData.curentDatableId); - //取得隐藏的头部表格的相应行 - var $tableHead = $('div.dataTables_scrollHeadInner > table.dataTable', contextData.wrapperDivContext); - var trHeads = $tableHead.find('tr').get(); - $.each( trHeads, function( index, trHead ){ - $(trHead).attr('id', 'headTableTR' + index); - }); - //取得浮动div - var $divOverlay = $('div#divOverlay' + contextData.curentDatableId); - var divScrollHead = $('div.dataTables_scrollHead', contextData.wrapperDivContext); - var divRightPadding = $('div#divRightPadding' + contextData.curentDatableId); - //取表头下边沿位置 - var tableHeadBottomHeight = $(divScrollHead).position().top + $(divScrollHead).height(); - var tableBottom = $tableData.position().top + $tableData.height() + 3; - //取表格右边沿位置 - var tableRightEdgePosition = $(divRightPadding).position().left; - var trs = $tableData.find('tr').get(); - $.each( trs, function( index, tr ){ - var tdEmpty = $('td.dataTables_empty',tr); - if(!tdEmpty || tdEmpty.length ==0 ){ - $(tr).attr('id', 'bodyTableTR' + index + contextData.curentDatableId); - //$divOverlay.attr('id_tr', 'bodyTableTR' + index); - $(tr).one('hover', function(){ - var rowPos = $(tr).position(); - var currentTrTop = rowPos.top; - //var bottomLeft = rowPos.left; - $divOverlay.attr('id_tr', 'bodyTableTR' + index + contextData.curentDatableId); - $divOverlay.css({ - display: 'block', - position: 'absolute', - 'background-color': '#e5e5e5', - //opacity: 0.7, - border: 'solid 0px', - top: currentTrTop + 6, - left: tableRightEdgePosition - 308, - width: 300, - height: 30 - }); - //防止浮动框跳出表格内容区域 - if( $divOverlay.position().top < tableHeadBottomHeight || $divOverlay.position().top + $divOverlay.height() > tableBottom){ - $divOverlay.css('display', 'none'); - } - var buttonConfirm = $('div#buttonConfirm', $divOverlay); - var buttonUnConfirm = $('div#buttonUnConfirm', $divOverlay); - $(buttonConfirm).one('click', function(){ - var buttonRoundedTDsConfirm = $(buttonConfirm).find('td.buttonRounded'); - var buttonRoundedTDsUnConfirm = $(buttonUnConfirm).find('td.buttonRoundedDisabled'); - if(buttonRoundedTDsConfirm && buttonRoundedTDsConfirm.length > 0){ - $.each(buttonRoundedTDsConfirm, function(index, td){ - $(td).removeClass('buttonRounded').addClass('buttonRoundedDisabled'); - }); - $.each(buttonRoundedTDsUnConfirm, function(index, td){ - $(td).removeClass('buttonRoundedDisabled').addClass('buttonRounded'); - }); - $divOverlay.css('display', 'none'); - singleAlarmAckUnAck($divOverlay, 1); - } - }); - $(buttonUnConfirm).one('click', function(){ - var buttonRoundedTDsUnConfirm = $(buttonUnConfirm).find('td.buttonRounded'); - var buttonRoundedTDsConfirm = $(buttonConfirm).find('td.buttonRoundedDisabled'); - if(buttonRoundedTDsUnConfirm && buttonRoundedTDsUnConfirm.length > 0){ - $.each(buttonRoundedTDsUnConfirm, function(index, td){ - $(td).removeClass('buttonRounded').addClass('buttonRoundedDisabled'); - }); - $.each(buttonRoundedTDsConfirm, function(index, td){ - $(td).removeClass('buttonRoundedDisabled').addClass('buttonRounded'); - }); - $divOverlay.css('display', 'none'); - singleAlarmAckUnAck($divOverlay, 2); - } - }); - var buttonDelete = $('div#buttonDelete', $divOverlay); - $(buttonDelete).die().live('click', function(){ - //弹出删除确认对话框 - $('div#myModal' + contextData.curentDatableId).modal({ - keyboard: false, - backdrop: 'static' - }); - $('#delConfirm' + contextData.curentDatableId).die().live('click', function(){ - $divOverlay.css('display', 'none'); - dataTable.fnClose(tr); - $(tr).remove(); - //删除表头表格的相应行 - $('tr#' + $(tr).attr('id').replace('body', 'head'), $tableHead).remove(); - //删除后端数据 - singleAlarmDel($divOverlay); - //刷新表格 - dataTable.fnAdjustColumnSizing(); - }); - }); - //展开行的情况隐藏 - $('td.details > table.detailTable').on('hover', function(){ - $divOverlay.css('display', 'none'); - }); - }); - } - }); - } - - return { - - //main function to initiate the module - init: function (options, columnsDefined, xsHiddenColumnsDefined, smHiddenColumnsDefined) { - - if (!$().dataTable) { - return; - } - - var the = this; - - //记录需要禁掉默认排序的列 - var aTargets = []; - var targetsLength = columnsDefined.length; - if(rowCheckable)targetsLength++; - if(openRowFlag)targetsLength++; - for(var i=0;i<'col-md-4 col-sm-12'<'table-group-actions pull-right'>>r><'table-scrollable't><'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'>r>>", // datatable layout - - "aoColumnDefs" : [{ // define columns sorting options(by default all columns are sortable extept the first checkbox column) - 'bSortable' : false, - 'aTargets' : aTargets - }], - - "bAutoWidth": false, // disable fixed width and enable fluid table - //"bSortCellsTop": true, // make sortable only the first row in thead - "sPaginationType": "bootstrap_extended", // pagination type(bootstrap, bootstrap_full_number or bootstrap_extended) - "bProcessing": true, // enable/disable display message box on record load - "bServerSide": true, // enable/disable server side ajax loading - "sAjaxSource": "", // define ajax source URL - //"sServerMethod": "GET", - - // handle ajax request - "fnServerData": function ( sSource, aoData, fnCallback, oSettings ) { - //for ICT Paging - //var startIndex = aoData[3].value;//"iDisplayStart" - //var pageLength = aoData[4].value;//"iDisplayLength" - var oPaging = oSettings.oInstance.fnPagingInfo(); - //var startIndex = oPaging.iStart; - var pageLength = oPaging.iLength; - var curPageNo = oPaging.iPage + 1; - - for(var k=aoData.length-1;k>=0;k--){ - var flag = -1; - if(aoData[k].name=='pageSize'){ - aoData[k].value=pageLength; - flag++; - } - if(aoData[k].name=='pageNo'){ - aoData[k].value=curPageNo; - flag++ - } - if(flag == 1)break; - } - - if(requestType == "POST"){ - - var postData; - for(var k=aoData.length-1;k>=0;k--){ - if(aoData[k].name=='data'){ - postData = aoData[k].value; - postData.pageSize = pageLength; - postData.pageNo = curPageNo; - break; - } - } - - oSettings.jqXHR = $.ajax( { - "dataType": 'json', - "type": "POST", - "url": sSource, - "data": JSON.stringify(postData), - "contentType": 'application/json; charset=utf-8', - "success": function(res, textStatus, jqXHR) { - if (res.sMessage) { - openoFrameWork.alert({type: (res.sStatus == 'OK' ? 'success' : 'danger'), icon: (res.sStatus == 'OK' ? 'check' : 'warning'), message: res.sMessage, container: tableWrapper, place: 'prepend'}); - } - if ($('.group-checkable', tableContainer).size() === 1) { - $('.group-checkable', tableContainer).attr("checked", false); - $.uniform.update($('.group-checkable', tableContainer)); - } - if (tableOptions.onSuccess) { - tableOptions.onSuccess.call(the); - } - - if(callbackList[1]){ - res = callbackList[1](res); - } - - //转换返回数据给datatable - res = jsonObjectToArray(res, columns, oSettings.iDraw); - - //重绘表格 - fnCallback(res, textStatus, jqXHR); - }, - "error": function() { - if (tableOptions.onError) { - tableOptions.onError.call(the); - } - openoFrameWork.alert({type: 'danger', icon: 'warning', message: tableOptions.dataTable.oLanguage.sAjaxRequestGeneralError, container: tableWrapper, place: 'prepend'}); - $('.dataTables_processing', tableWrapper).remove(); - } - } ); - - } else { - - oSettings.jqXHR = $.ajax( { - "dataType": 'json', - "type": "GET", - "url": sSource, - "data": aoData, - "success": function(res, textStatus, jqXHR) { - if (res.sMessage) { - openoFrameWork.alert({type: (res.sStatus == 'OK' ? 'success' : 'danger'), icon: (res.sStatus == 'OK' ? 'check' : 'warning'), message: res.sMessage, container: tableWrapper, place: 'prepend'}); - } - if ($('.group-checkable', tableContainer).size() === 1) { - $('.group-checkable', tableContainer).attr("checked", false); - $.uniform.update($('.group-checkable', tableContainer)); - } - if (tableOptions.onSuccess) { - tableOptions.onSuccess.call(the); - } - //保存数据在dataTable对象中给行详细信息面板用 - if(res.response){ //告警的情况,返回数据在response属性里 - dataTable.datas = res.response.data; - if(res.response.status < 0){ - alert(res.response.data); - return; - } - } - - //保存当前页原始数据的备份 - currentPageData = $.extend(true, {}, res.response.data);; - - if(callbackList[1]){ - res = callbackList[1](res); - } - - //转换返回数据给datatable - res = jsonObjectToArray(res, columns, oSettings.iDraw); - - //重绘表格 - fnCallback(res, textStatus, jqXHR); - }, - "error": function() { - if (tableOptions.onError) { - tableOptions.onError.call(the); - } - openoFrameWork.alert({type: 'danger', icon: 'warning', message: tableOptions.dataTable.oLanguage.sAjaxRequestGeneralError, container: tableWrapper, place: 'prepend'}); - $('.dataTables_processing', tableWrapper).remove(); - } - } ); - } - - }, - - // pass additional parameter - "fnServerParams": function ( aoData ) { - //here can be added an external ajax request parameters. - //for(var i in ajaxParams) { - for(var i=0; i table.dataTable', tableWrapper); - var tbodyHead = $('tbody', $tableHead); - if(tbodyHead && tbodyHead.length >0){ - $(tbodyHead).remove(); - } - - var $tableBody = $('table#datatable_ajax' + contextData.curentDatableId, tableWrapper); - var trIn = $('thead > tr:nth-child(1)', $tableHead); - var trBodyHead = $('thead > tr:nth-child(1)', $tableBody); - var tds = $(trIn).children(); - var ths = $(trBodyHead).children(); - for(var k=0;k' + tds.eq(k).html() + ''); - } - var bodyRows = $('tbody > tr', $tableBody); - for(var i=0;i' + tds.eq(j).html() + ''); - $(tds.eq(j)).height('0px'); - $(tds.eq(j)).css('padding-top','0px'); - $(tds.eq(j)).css('padding-bottom','0px'); - $(tds.eq(j)).css('border-top-width','0px'); - $(tds.eq(j)).css('border-bottom-width','0px'); - } - $(rowClone).height('0px'); - $tableHead.append($(rowClone).prop("outerHTML")); - } - - $('div.dataTables_scrollBody', tableWrapper).css('width','100%'); - $('div.dataTables_scrollHead', tableWrapper).css('width','98.5%'); - $('div.dataTables_scrollHeadInner', tableWrapper).css('padding-right', 0); - - //添加浮动确认反确认按钮 - if(rowOverFlag){ - addRowOverlap(); - } - - //设置表格本体高度 - $('div.dataTables_scrollBody', tableWrapper).css('height', tableHeight); - } - } - }, options); - - tableOptions = options; - - columns = columnsDefined; - xsHiddenColumns = xsHiddenColumnsDefined; - smHiddenColumns = smHiddenColumnsDefined; - // create table's jquery object - table = $(options.src); - tableContainer = table.parents("div#table-container" + contextData.curentDatableId); - // apply the special class that used to restyle the default datatable - - $.fn.dataTableExt.oStdClasses.sWrapper = $.fn.dataTableExt.oStdClasses.sWrapper + " dataTables_extended_wrapper"; - - // initialize a datatable - dataTable = table.dataTable(options.dataTable); - - tableWrapper = table.parents('div.dataTables_wrapper', tableContainer); - - // modify table per page dropdown input by appliying some classes - $('.dataTables_length select', tableWrapper).addClass("form-control input-xsmall input-sm"); - - // handle group checkboxes check/uncheck - $('.group-checkable', tableContainer).change(function () { - var set = $('tbody > tr > td:nth-child(1) input[type="checkbox"]', table); - var checked = $(this).is(":checked"); - $(set).each(function () { - $(this).attr("checked", checked); - }); - $.uniform.update(set); - countSelectedRecords(); - }); - - // handle row's checkbox click - table.on('change', 'tbody > tr > td:nth-child(1) input[type="checkbox"]', function(){ - countSelectedRecords(); - }); - - //if ($.browser.safari) { - // $('.table-container').css('width','100%'); - //} - //填充表头右边界 - $('div.dataTables_scrollHead', tableContainer).css('display','inline-block'); - //var dataTables_scrollHead_height = $('.dataTables_scrollHead').css( "height" ); - $("div.dataTables_scrollHead", tableContainer).after("
    "); - if($.browser.mozilla){ - $('div#divRightPadding', tableContainer).css('height', '40'); - } - - //隐藏掉某些列 - var $tableHead = $('div.dataTables_scrollHeadInner > table.dataTable', tableWrapper); - var $tableBody = $('table#datatable_ajax' + contextData.curentDatableId, tableWrapper); - - for(var i=0;i tr > th#' + columns[j].columnId, $tableHead).addClass('hidden-xs'); - $('thead > tr > th#' + columns[j].columnId, $tableBody).addClass('hidden-xs'); - break; - } - } - } - - for(var i=0;i tr > th#' + columns[j].columnId, $tableHead).addClass('hidden-sm'); - $('thead > tr > th#' + columns[j].columnId, $tableBody).addClass('hidden-sm'); - break; - } - } - } - },//end init------------------------------------------------------------------------------------ - - getSelectedRowsCount: function() { - return $('tbody > tr > td:nth-child(1) input[type="checkbox"]:checked', table).size(); - }, - - getSelectedRows: function() { - var rows = []; - $('tbody > tr > td:nth-child(1) input[type="checkbox"]:checked', table).each(function(){ - rows.push({rowDataNo: $(this).attr("rowDataNo"), name: $(this).attr("name"), value: $(this).val()}); - }); - - return rows; - }, - - addAjaxParam: function(name, value) { - ajaxParams.push({"name": name, "value": value}); - }, - - clearAjaxParams: function(name, value) { - ajaxParams = []; - }, - - getDataTable: function() { - return dataTable; - }, - - getTableWrapper: function() { - return tableWrapper; - }, - - gettableContainer: function() { - return tableContainer; - }, - - getTable: function() { - return table; - }, - - setOpenRowFlag: function(openRowFlagInput) { - openRowFlag = openRowFlagInput; - }, - - setRowOverFlag: function(rowOverFlagInput) { - rowOverFlag = rowOverFlagInput; - }, - - setRowCheckable: function(rowCheckableInput) { - rowCheckable = rowCheckableInput; - }, - - setColumnsTooLong: function(columnsTooLongInput) { - columnsTooLong = columnsTooLongInput; - }, - - setSTotalRecordsSource: function(sTotalRecordsSourceInput){ - sTotalRecordsSource = sTotalRecordsSourceInput; - }, - - setTotalRecords: function(totalRecordsInput){ - totalRecords = totalRecordsInput; - }, - - setTableHeight: function(tableHeightInput){ - tableHeight = tableHeightInput; - }, - - setCallbackList: function(list){ - if($.isArray(list)){ - callbackList = list; - } - }, - - getCheckedRowDatas:function(){ - checkedRowDatas = []; - $('tbody > tr > td:nth-child(1) input[type="checkbox"]:checked', table).each(function(){ - var rowNoId = $(this).attr("rowDataNo"); - var rowNoIndex = rowNoId.slice(rowNoId.indexOf("_") + 1); - checkedRowDatas.push(currentPageData[parseInt(rowNoIndex)]); - }); - return checkedRowDatas; - }, - - setRequestType: function(requestTypeInput){ - requestType = requestTypeInput; - }, - - setContextData: function(newContextData){ - contextData = newContextData; - }, - - setTotalPage: function(newTotalPage){ - $("#datatable_ajax" + contextData.curentDatableId + "_info").html(tableOptions.dataTable.oLanguage.sInfo.replace("_TOTAL_", newTotalPage + "")); - } - - }; - -}; - -var TableAjaxICT = function () { - - var contextData; - - var initPickers = function () { - //init date pickers - $('.date-picker').datepicker({ - //rtl: App.isRTL(), - autoclose: true - }); - } - - //判断a数组是否包含b数组 - function isContained(largeArray, smallArray){ - if(!(largeArray instanceof Array) || !(smallArray instanceof Array)) - return false; - if(largeArray.length < smallArray.length) - return false; - for(var i = 0; i < smallArray.length; i++){ - var flag = false; - for(j=0;j' + alarmId + ''; - sOut += '' + columns[4].columnTitle + '' + perceivedSeverity + ''; - sOut += '' + columns[9].columnTitle + '' + alarmType + ''; - sOut += '' + columns[3].columnTitle + '' + alarmRaisedTime + ''; - - sOut += '' + columns[5].columnTitle + '' + probableCauseDesc + ''; - sOut += '' + columns[15].columnTitle + '' + alarmChangedTime + ''; - sOut += '' + columns[11].columnTitle + '' + ackState + ''; - - sOut += '' + columns[12].columnTitle + '' + ackTime + ''; - sOut += '' + columns[13].columnTitle + '' + ackUserId + ''; - sOut += '' + columns[14].columnTitle + '' + ackSystemId + ''; - sOut += '' + columns[7].columnTitle + '' + neip + ''; - - sOut += '' + columns[2].columnTitle + '' + moc + ''; - sOut += '' + columns[1].columnTitle + '' + resDisplayName + ''; - - sOut += '' + columns[8].columnTitle + '' + componentname + ''; - sOut += '' + columns[16].columnTitle + '' + position1 + ''; - - sOut += '' + columns[10].columnTitle + '' + specificproblem + ''; - - sOut += '' + columns[6].columnTitle + '' + additionalText + ''; - - sOut += '' + $.i18n.prop('aos_fm_SuggestionSetting_view_DefaultSuggestionGroupTitle').replace(';', '').replace(/\"/g,'') + '' + ''; - - sOut += '' + $.i18n.prop('aos_fm_SuggestionSetting_view_SettingSuggestionGroupTitle').replace(';', '').replace(/\"/g,'') + ''; - - sOut += ''; - - /* - var systemType = 0; - var code = 0; - for (var i = 0; i < oTable.datas.length; i++) { - var temp = oTable.datas[i]; - if (temp.alarmId == oTr['alarmId'].value) { - systemType = temp.systemType; - code = temp.probableCauseCode; - } - }*/ - var data = { - "systemType" : systemType, - "code" : code - }; - var sendData = JSON.stringify(data); - $.ajax({ - "dataType" : 'json', - "type" : "GET", - "url" : "/web/rest/web/fm/Maintenance" + "?" + "data=" + sendData, - "contentType" : 'application/json; charset=utf-8', - "data" : null, - "success" : function (json) { - $('tr').find('td#defaulInfo' + id).text(json.defaulInfo); - $('tr').find('td#customInfo' + id).text(json.customInfo); - var modify = $('#customInfoModify' + id); - modify.on('click', function () { - var span = $('#modifyBtnSpan' + id); - var customInfo = $('tr').find('td#customInfo' + id); - var cancel = $('#cancelDiv' + id); - if (span['0'].className === 'fa fa-pencil-square-o') { - var value = customInfo['0'].textContent; - customInfo['0'].textContent = ''; - customInfo['0'].innerHTML = ''; - span['0'].className = 'fa fa-floppy-o'; - cancel['0'].innerHTML = ''; - $('#cancelBtn' + id).on('click', function () { - customInfo['0'].innerHTML = ''; - customInfo['0'].textContent = value; - cancel['0'].innerHTML = ''; - span['0'].className = 'fa fa-pencil-square-o'; - }); - } else { - var inputValue = $('#customInfoInput' + id)['0'].value; - customInfo['0'].innerHTML = ''; - customInfo['0'].textContent = inputValue; - span['0'].className = 'fa fa-pencil-square-o'; - cancel['0'].innerHTML = ''; - var modifyData = { - "systemType" : systemType, - "code" : code, - "defaulInfo" : json.defaulInfo, - "customInfo" : inputValue - }; - $.ajax({ - "dataType" : 'json', - "type" : "PUT", - "url" : "/web/rest/web/fm/Maintenance", - "contentType" : 'application/json; charset=utf-8', - "data" : JSON.stringify(modifyData), - "error" : function () { - alert('Modify Error!'); - } - }); - } - }); - }, - "error" : function () { - alert('Communication Error!'); - } - }); - - return sOut; - } - - var generateColumns = function(columns, openRowFlag, rowCheckable){ - var $tableData = $('table#datatable_ajax' + contextData.curentDatableId); - var theadTR = $('thead > tr', $tableData); - if(rowCheckable){ - theadTR.append(''); - } - if(openRowFlag){ - theadTR.append('  '); - } - for(var i=0;i' + columns[i].columnTitle + ''); - } - } - - var sortHandling = function(oTable, openRowFlag, rowCheckable){ - var indexSkip = -1; - if(openRowFlag&&rowCheckable){ - indexSkip = 1; - }else if(openRowFlag&&!rowCheckable||!openRowFlag&&rowCheckable){ - indexSkip = 0; - } - var $sortOrder = 0; //排序类型 1表示升序,0表示降序 - var tableWrapper = $('div.dataTables_wrapper', contextData.wrapperDivContext); - var $tableHead = $('div.dataTables_scrollHeadInner > table.dataTable', tableWrapper); - var $tableData = $('table#datatable_ajax' + contextData.curentDatableId); - var clearSort = function(currentTh){ - var ths = $tableHead.find('th').get(); - var tableDataHeadTHs = $tableData.find('th').get(); - $.each( ths, function( index, th ){ - if(index > indexSkip){ - if($(th).text() != currentTh.text()){ - if($(th).is('.sorting_disabled')){ - //do nothing; - }else if($(th).is('.sorting_asc')){ - $(th).removeClass('sorting_asc').addClass('sorting_disabled'); - $(tableDataHeadTHs[index]).removeClass('sorting_asc').addClass('sorting_disabled'); - }else if($(th).is('.sorting_desc')){ - $(th).removeClass('sorting_desc').addClass('sorting_disabled'); - $(tableDataHeadTHs[index]).removeClass('sorting_desc').addClass('sorting_disabled'); - } - } - } - }); - } - - $('th', $tableHead).each(function( column ) - { - if(column>indexSkip){ - //处理三种有可能存在的排序字段,比较方法 - var findSortKey; - if( $(this).is('.sort-title') || $(this).is('.sorting_disabled') ) - { - findSortKey = function( $cell ) - { - var cellText = $cell.text(); - if(isNaN(cellText)){ - return $cell.text().toUpperCase(); - }else{ - return parseFloat(cellText); - } - //return $cell.text().toUpperCase(); - } - } - else if( $(this).is('.sort-date') ) - { - findSortKey = function( $cell ) - { - return Date.parse('1' + $cell.text()); - } - } - else if( $(this).is('.sort-price') ) - { - findSortKey = function( $cell ) - { - var key = parseFloat($cell.text().replace(/^[^\d.]*/, '')) - return isNaN(key) ? 0 : key; - } - } - - //排序 - if( findSortKey ) - { - $(this).click(function() - { - $sortOrder = $sortOrder == 0 ? 1 : 0; - var tableDataHeadTHs = $tableData.find('th').get(); - - if($sortOrder == 1){ - if($(this).is('.sorting_disabled')){ - $(this).removeClass('sorting_disabled').addClass('sorting_asc'); - $(tableDataHeadTHs[column]).removeClass('sorting_disabled').addClass('sorting_asc'); - }else if($(this).is('.sorting_asc')){ - $(this).removeClass('sorting_asc').addClass('sorting_desc'); - $(tableDataHeadTHs[column]).removeClass('sorting_asc').addClass('sorting_desc'); - }else if($(this).is('.sorting_desc')){ - $(this).removeClass('sorting_desc').addClass('sorting_asc'); - $(tableDataHeadTHs[column]).removeClass('sorting_desc').addClass('sorting_asc'); - } - }else{ - if($(this).is('.sorting_disabled')){ - $(this).removeClass('sorting_disabled').addClass('sorting_desc'); - $(tableDataHeadTHs[column]).removeClass('sorting_disabled').addClass('sorting_desc'); - }else if($(this).is('.sorting_asc')){ - $(this).removeClass('sorting_asc').addClass('sorting_desc'); - $(tableDataHeadTHs[column]).removeClass('sorting_asc').addClass('sorting_desc'); - }else if($(this).is('.sorting_desc')){ - $(this).removeClass('sorting_desc').addClass('sorting_asc'); - $(tableDataHeadTHs[column]).removeClass('sorting_desc').addClass('sorting_asc'); - } - } - clearSort($(this)); - - var rows = $tableData.find('tbody > tr').get(); - - $.each( rows, function( index, row ) - { - //先关掉所有行 - if ( oTable.fnIsOpen(row) ) - { - $(row).find('.row-details').click(); - } - }); - - //重新取得所有行,否则排序后表格显示异常 - rows = $tableData.find('tbody > tr').get(); - - $.each( rows, function( index, row ) - { - row.sortKey = findSortKey($(row).children('td').eq(column)); - }); - //排序方法 - rows.sort(function( a, b ) - { - if( $sortOrder == 1 ) - { - //升序 - if(a.sortKey < b.sortKey) return -1; - if(a.sortKey > b.sortKey) return 1; - return 0; - } - else - { - //降序 - if(a.sortKey < b.sortKey) return 1; - if(a.sortKey > b.sortKey) return -1; - return 0; - } - }); - //排序后的对象添加给$table - $.each( rows, function( index, row ) - { - $tableData.children('tbody').append(row); - row.sortKey = null; - }); - }); - } - } - }); - } - - var handleRecords = function(requestDatas, columns, xsHiddenColumns, smHiddenColumns, oLanguage, openRowFlag, rowCheckable, rowOverFlag, requestURL, requestParameters, tableHeight, columnsTooLong, sTotalRecordsSource, callbackList, totalRecords, requestType) { - - /* - jQuery.getJSON('/web/newict/framework/thirdparty/data-tables/app-universal-i18n-datatable-' + lang + '.json', - function(data) { - oLanguage = data; - }); - */ - grid = DatatableICT(); - grid.setCallbackList(callbackList); - grid.setContextData(contextData); - grid.setOpenRowFlag(openRowFlag); - grid.setRowCheckable(rowCheckable); - grid.setRowOverFlag(rowOverFlag); - grid.setColumnsTooLong(columnsTooLong); - grid.setSTotalRecordsSource(sTotalRecordsSource); - grid.setTotalRecords(totalRecords); - grid.setTableHeight(tableHeight); - grid.setRequestType(requestType); - //取得查询条件 -// if(!requestStr || requestStr.length == 0){ -// requestStr = JSON.stringify(requestAllData); -// } - grid.clearAjaxParams(); - if(requestType == "GET"){ - grid.addAjaxParam('data', JSON.stringify(requestDatas)); - }else{ - grid.addAjaxParam('data', requestDatas); - } - //取得其他参数 - for(var i=0;i table.dataTable', tableWrapper); - var ths = $tableHead.find('th').get(); - var $tableData = $('table#datatable_ajax' + contextData.curentDatableId); - var tableDataHeadTHs = $tableData.find('th').get(); - $.each( ths, function( index, th ){ - //clear all sort direction - if($(th).is('.sorting_disabled')){ - //do nothing; - }else if($(th).is('.sorting_asc')){ - $(th).removeClass('sorting_asc').addClass('sorting_disabled'); - $(tableDataHeadTHs[index]).removeClass('sorting_asc').addClass('sorting_disabled'); - }else if($(th).is('.sorting_desc')){ - $(th).removeClass('sorting_desc').addClass('sorting_disabled'); - $(tableDataHeadTHs[index]).removeClass('sorting_desc').addClass('sorting_disabled'); - } - }); - - }, - onError: function(grid) { - // execute some code on network or other general error - }, - dataTable: { - "sDom" : "tr<'row'<'col-md-6 col-sm-12'><'col-md-6 col-sm-12'pli>>", // datatable layout - "oLanguage": oLanguage, - //"bAutoWidth": true, - "sScrollY": tableHeight, - "bScrollCollapse": true, - "sScrollX": "100%", - //"sScrollXInner": "110%", - "aLengthMenu": [ - [20, 50, 100], - [20, 50, 100] // change per page values here - ], - "iDisplayLength": 100, // default record count per page - "bServerSide": true, // server side processing - "sAjaxSource": requestURL // ajax source - } - }, columns, xsHiddenColumns, smHiddenColumns, openRowFlag, rowCheckable); - } - - /* - * Insert a 'details' column to the table - */ - var insertDetails = function (oTable, columns, rowCheckable) { - - var $tableData = $('table#datatable_ajax' + contextData.curentDatableId); - - $tableData.on('click', ' tbody td .row-details', function () { - var nTr = $(this).parents('tr')[0]; - if (oTable.fnIsOpen(nTr)) { - /* This row is already open - close it */ - $(this).addClass("row-details-close").removeClass("row-details-open"); - oTable.fnClose(nTr); - } else { - /* Open this row */ - $(this).addClass("row-details-open").removeClass("row-details-close"); - oTable.fnOpen(nTr, fnFormatDetails(oTable, nTr, columns, rowCheckable), 'details'); - } - }); - } - - return { - - //main function to initiate the module - init: function (requestDatas, lang, configPathPrefix, callbackList, newColumns, totalPage) { - - var oLanguage; - var columns; - var xsHiddenColumns; - var smHiddenColumns; - var columnsAll; - - var openRowFlag = false; - var rowOverFlag = false; - var rowCheckable = false; - var requestURL=""; - var requestAllData; - var requestParameters; - - var tableHeight; - var tableWidth; - - var columnsTooLong; - var sTotalRecordsSource=""; - var totalRecords = 0; - - var requestType = "GET"; - - //取得当前配置及国际化信息 - $.ajax({ - dataType: 'json', - url: configPathPrefix + '-' + lang + '.json', - async: false, - contentType:'application/json; charset=utf-8', - "success": function(data) { - oLanguage = data.language; - columns = data.columns; - if(newColumns){ - columns = newColumns; - } - xsHiddenColumns = data.xsHiddenColumns; - smHiddenColumns = data.smHiddenColumns; - columnsAll = data.columnsAll; - if(newColumns){ - columnsAll = newColumns; - } - openRowFlag = data.openRowFlag == 'true'? true: false; - rowOverFlag = data.rowOverFlag == 'true'? true: false; - rowCheckable = data.rowCheckable == 'true'? true: false; - requestURL = data.requestURL; - //requestAllData = data.requestAllData; - requestParameters = data.requestParameters; - tableHeight = data.tableHeight; - tableWidth = data.tableWidth; - columnsTooLong = data.columnsTooLong; - sTotalRecordsSource = data.sTotalRecordsSource; - if(data.sTotalRecords){ //性能的情况直接指定总行数 - totalRecords = parseInt(data.sTotalRecords); - } - if(totalPage){ //可以从参数指定总行数,适用于单独发请求获得总行数的场景 - totalRecords = totalPage; - } - if(data.requestType){ - requestType = data.requestType; - } - }, - "error" : function (xhr, info) { - alert('Communication Error! Error reason:' + info); - } - }); - - $('div#dataTableWrapperDiv' + contextData.curentDatableId).css('width', tableWidth); - - if(!isContained(xsHiddenColumns, smHiddenColumns) || !isContained(columns, xsHiddenColumns) || !isContained(columnsAll, columns)){ - alert('Columns claim error: (smHiddenColumns <= xsHiddenColumns <= columns <= columnsAll) Please!'); - return; - } - - generateColumns(columns, openRowFlag, rowCheckable); - //initPickers(); - handleRecords(requestDatas, columns, xsHiddenColumns, smHiddenColumns, oLanguage, openRowFlag, rowCheckable, rowOverFlag, requestURL, requestParameters, tableHeight, columnsTooLong, sTotalRecordsSource, callbackList, totalRecords, requestType); - //获得初始化完毕的DataTable对象 - var oTable = grid.getDataTable(); - if(openRowFlag){ - insertDetails(oTable, columnsAll, rowCheckable); - } - sortHandling(oTable, openRowFlag, rowCheckable); - //oTable.fnAdjustColumnSizing(true); - return oTable; - }, - - getDataGrid: function(){ - return grid; - }, - - setContextData: function(newContextData){ - contextData = newContextData; - } - - }; - -}(); - -var addTableElementsId = function(){ - - var outterDivs = $('div.dataTableWrapperDiv'); - var currentId; - - if(outterDivs && outterDivs.length > 0) { - var maxId = -1; - var divIdNo; - $.each(outterDivs, function (index, div) { - var divId = $(div).attr("id"); - divIdNo = divId.substring(20); - if (divIdNo || divIdNo.length > 0){ - if (parseInt(divIdNo) > maxId) { - maxId = parseInt(divIdNo); - } - } - }); - currentId = maxId + 1; - } - - var curentDatableId = "_" + currentId; - - var dataTableWrapperDiv = $('div#dataTableWrapperDiv');//新添加的outterDiv - $(dataTableWrapperDiv).attr("id", "dataTableWrapperDiv" + curentDatableId); - var dataTableWrapperDivContext = dataTableWrapperDiv; - $('div.table-container', dataTableWrapperDiv).attr("id", "table-container" + curentDatableId); - $('table#datatable_ajax', dataTableWrapperDiv).attr("id", "datatable_ajax" + curentDatableId); - $('div#divOverlay', dataTableWrapperDiv).attr("id", "divOverlay" + curentDatableId); - //$('div#buttonConfirm', dataTableWrapperDiv).attr("id", "buttonConfirm" + curentDatableId); - //$('div#buttonUnConfirm', dataTableWrapperDiv).attr("id", "buttonUnConfirm" + curentDatableId); - $('div#myModal', dataTableWrapperDiv).attr("id", "myModal" + curentDatableId); - $('div#myModalConfirm', dataTableWrapperDiv).attr("id", "myModalConfirm" + curentDatableId); - $('span#alarm_number', dataTableWrapperDiv).attr("id", "alarm_number" + curentDatableId); - - return { - "curentDatableId": curentDatableId, - "wrapperDivContext":dataTableWrapperDivContext - } -} - -var DataTableICT = function(requestDatas, tableDivId, tableDivPath, configPathPrefix, callbackList, newColumns, totalPage){ - - /* var requestStr = ""; - if(datas){ - requestStr = JSON.stringify(datas); - } */ - - var lang = getLanguage(); - //lang = 'en-US'; - - /**取得表格组件所需html片段 **/ - /*jQuery('div#' + tableDivId).load(tableDivPath, function() { - var contextData = addTableElementsId(); - TableAjaxICT.setContextData(contextData); - - var lang = getLanguage(); - //lang = 'en-US'; - var oTable = TableAjaxICT.init(requestStr, lang, configPathPrefix); - - //重新调节列宽以适应window resize - $(window).bind('resize', function () { - //oTable.DataTable.models.oSettings.bAjaxDataGet = false; - oTable.fnAdjustColumnSizing(); - } ); - });*/ - - /**同步取得表格组件所需html片段 **/ - $.ajax({ - async : false, - "dataType" : "html", - "type" : "GET", - "url" : tableDivPath, - "data" : null, - "success" : function (html, textStatus, jqXHR) { - $('div#' + tableDivId).html(html); - }, - "error" : function () { - alert("Communication error!"); - } - }); - - var contextData = addTableElementsId(); - TableAjaxICT.setContextData(contextData); - - var oTable = TableAjaxICT.init(requestDatas, lang, configPathPrefix, callbackList, newColumns, totalPage); - - //重新调节列宽以适应window resize - $(window).bind('resize', function () { - //oTable.DataTable.models.oSettings.bAjaxDataGet = false; - oTable.fnAdjustColumnSizing(); - } ); - - return TableAjaxICT.getDataGrid(); -} diff --git a/portal-common/src/main/webapp/common/thirdparty/data-tables/DataTableSmartClient.js b/portal-common/src/main/webapp/common/thirdparty/data-tables/DataTableSmartClient.js deleted file mode 100644 index 4c737734..00000000 --- a/portal-common/src/main/webapp/common/thirdparty/data-tables/DataTableSmartClient.js +++ /dev/null @@ -1,1215 +0,0 @@ -/*** - Wrapper/Helper Class for datagrid based on jQuery Datatable Plugin - ***/ -var DatatableICT = function () { - - var tableOptions; // main options - var dataTable; // datatable object - var table; // actual table jquery object - var tableContainer; // actual table container object - var tableWrapper; // actual table wrapper jquery object - var tableInitialized = false; - var ajaxParams = []; // set filter mode - var columns; - var xsHiddenColumns; - var smHiddenColumns; - var columnMaxLength = 30; - var columnsTooLong; - var hidden_xs_maxWidth = 768; - var hidden_sm_maxWidth = 991; - - var openRowFlag = false; - var rowOverFlag = false; - var rowCheckable = false; - - var aTargetsAll; - var sTotalRecordsSource; - var tableHeight; - - var includedInXsHiddenColumns = function(columnId){ - for(var i=0;i tr > td:nth-child(1) input[type="checkbox"]:checked', table).size(); - var text = tableOptions.dataTable.oLanguage.sGroupActions; - if (selected > 0) { - $('.table-group-actions > span', tableWrapper).text(text.replace("_TOTAL_", selected)); - } else { - $('.table-group-actions > span', tableWrapper).text(""); - } - } - - var jsonObjectToArray = function(json, columns, iDraw){ - var jsonToDatatable = {aaData:[], sEcho:iDraw, iTotalRecords:0, iTotalDisplayRecords:0 }; - for(var i=0; i"); - } - if(openRowFlag){ - jsonToDatatable.aaData[i].push(""); - } - for(var j=0; j= hidden_xs_maxWidth && $(window).width() < hidden_sm_maxWidth && includedInSmHiddenColumns(columns[j].columnId )){ - /*隐藏pad尺寸需要隐藏的列*/ - }else if($(window).width() < hidden_xs_maxWidth && includedInXsHiddenColumns(columns[j].columnId )){ - /*隐藏手机尺寸需要隐藏的列*/ - }else{ - var currentColumnId = columns[j].columnId; - if(jQuery.inArray(currentColumnId, columnsTooLong) > -1){ - var rawText = ""; - for(var k=0;k columnMaxLength){ - jsonToDatatable.aaData[i].push(rawText.slice(0, columnMaxLength) + '...'); - }else{ - jsonToDatatable.aaData[i].push(resRowObject[currentColumnId]); - } - } else { - jsonToDatatable.aaData[i].push(resRowObject[currentColumnId]); - } - - } - } - } - jsonToDatatable.sEcho++; - var totalRow = 0; - var totalRecordsSource = eval('json.' + sTotalRecordsSource); - if(totalRecordsSource && totalRecordsSource.length >0){ - totalRow = parseInt(totalRecordsSource); - } - if(isNaN(totalRow)){ - alert('All rows counting number got fail!'); - }else{ - jsonToDatatable.iTotalRecords = totalRow; - jsonToDatatable.iTotalDisplayRecords = totalRow; - } - return jsonToDatatable; - } - - var singleAlarmDel = function(divOverlay){ - - //根据浮动框的当前id获取需要删除的行 - var trId = divOverlay.attr('id_tr'); - tr=$('tr#' + trId); - var tds = $(tr).children(); - var tdAlarmId = $(tds.eq(2)).text(); - - var data= { - "alarmId":[parseInt(tdAlarmId)] - }; - - var sSource = "/web/rest/web/fm/curalarms?data=" + JSON.stringify(data) + "&_operationType=remove&_dataSource=isc_PageRestDataSource_0&isc_metaDataPrefix=_&isc_dataFormat=json"; - - $.ajax( { - "dataType": 'json', - "type": "DELETE", - "url": sSource, - "data" : null, - "contentType" : 'application/json; charset=utf-8', - "success": function(json) { - if(json.response.status == 0){ - var resRowObject = json.response.data[0]; - //alert('删除成功'); - } - if(json.response.status == -1){ - //alert('删除失败'); - } - }, - "error": function() { - alert('Communication Error!'); - } - } ); - } - - var singleAlarmAckUnAck = function(divOverlay, ackType){ - - //根据浮动框的当前id获取需要确认的行 - var trId = divOverlay.attr('id_tr'); - var tr = $('tr#' + trId); - - //取得隐藏的头部表格的相应行 - var $tableHead = $('div.dataTables_scrollHeadInner > table.dataTable'); - //var trHead = $('tbody > tr:nth-child(' + trId + ')', $tableHead); - var trHead = $('tr#' + trId.replace('body', 'head'), $tableHead); - var tdDivs = $('td > div', trHead); - - var tds = $(tr).children(); - var tdAlarmId = ""; - if(rowCheckable){ - tdAlarmId = $(tds.eq(2)).text(); - }else{ - tdAlarmId = $(tds.eq(1)).text(); - } - - var aoData = - { - "dataSource":"isc_PageRestDataSource_0", - "operationType":"update", - "componentId":"isc_com_zte_ums_aos_fm_view_eventview_table_AlarmTable_0", - "data":{ - "viewType":1, - "state":ackType, - "alarmId":[ - parseInt(tdAlarmId) - ] - }, - "oldValues":null - }; - - var sSource = "/web/rest/web/fm/curalarms?isc_dataFormat=json"; - - $.ajax( { - "dataType": 'json', - "type": "PUT", - "url": sSource, - "contentType": 'application/json; charset=utf-8', - "data": JSON.stringify(aoData), - "success": function(json) { - json = AlarmLabels.transformFieldNames(json); - if(json.response.status == 0){ - var resRowObject = json.response.data[0]; - var columnsCopy = $.extend(true, [], columns); - //隐藏列的情况下需要特殊处理 - if($(window).width()>=hidden_xs_maxWidth && $(window).width() -1) { - var rawText = ""; - for(var k=0;k columnMaxLength){ - $(tds.eq(i)).html(rawText.slice(0, columnMaxLength) + '...'); - $(tdDivs.eq(i)).html(rawText.slice(0, columnMaxLength) + '...'); - }else{ - $(tds.eq(i)).html(resRowObject[currentColumnId]); - $(tdDivs.eq(i)).html(resRowObject[currentColumnId]); - } - } else { - $(tds.eq(i)).html(resRowObject[currentColumnId]); - $(tdDivs.eq(i)).html(resRowObject[currentColumnId]); - } - } - //更新缓存中的当前行数据 - for (var t = 0; t < dataTable.datas.length; t++) { - var temp = dataTable.datas[t]; - if (temp.alarmId == resRowObject['alarmId']) { - dataTable.datas[t] = resRowObject; - break; - } - } - } - if(json.response.status == -1){ - $('div#myModalConfirm').modal({ - keyboard: false, - backdrop: 'static' - }); - $('span#alarm_number').html(tdAlarmId); - //国际化信息 - if(ackType==1){ - $('span#aos_fm_alarm_opeater_ack_already').html($.i18n.prop('aos_fm_alarm_opeater_ack_already_ok')); - }else{ - $('span#aos_fm_alarm_opeater_ack_already').html($.i18n.prop('aos_fm_alarm_opeater_ack_already_un')); - } - } - }, - "error": function() { - alert('Communication Error!'); - } - } ); - } - - var addRowOverlap = function(){ - var $tableData = $('table#datatable_ajax'); - //取得隐藏的头部表格的相应行 - var $tableHead = $('div.dataTables_scrollHeadInner > table.dataTable'); - var trHeads = $tableHead.find('tr').get(); - $.each( trHeads, function( index, trHead ){ - $(trHead).attr('id', 'headTableTR' + index); - }); - //取得浮动div - var $divOverlay = $('div#divOverlay'); - var divScrollHead = $('div.dataTables_scrollHead'); - var divRightPadding = $('div#divRightPadding'); - //取表头下边沿位置 - var tableHeadBottomHeight = $(divScrollHead).position().top + $(divScrollHead).height(); - var tableBottom = $tableData.position().top + $tableData.height(); - //取表格右边沿位置 - var tableRightEdgePosition = $(divRightPadding).position().left; - var trs = $tableData.find('tr').get(); - $.each( trs, function( index, tr ){ - var tdEmpty = $('td.dataTables_empty',tr); - if(!tdEmpty || tdEmpty.length ==0 ){ - $(tr).attr('id', 'bodyTableTR' + index); - //$divOverlay.attr('id_tr', 'bodyTableTR' + index); - $(tr).one('hover', function(){ - var rowPos = $(tr).position(); - var currentTrTop = rowPos.top; - //var bottomLeft = rowPos.left; - $divOverlay.attr('id_tr', 'bodyTableTR' + index); - $divOverlay.css({ - display: 'block', - position: 'absolute', - 'background-color': '#e5e5e5', - //opacity: 0.7, - border: 'solid 0px', - top: currentTrTop + 6, - left: tableRightEdgePosition - 308, - width: 300, - height: 30 - }); - //防止浮动框跳出表格内容区域 - if( $divOverlay.position().top < tableHeadBottomHeight || $divOverlay.position().top + $divOverlay.height() > tableBottom){ - $divOverlay.css('display', 'none'); - } - var buttonConfirm = $('div#buttonConfirm', $divOverlay); - var buttonUnConfirm = $('div#buttonUnConfirm', $divOverlay); - $(buttonConfirm).one('click', function(){ - var buttonRoundedTDsConfirm = $(buttonConfirm).find('td.buttonRounded'); - var buttonRoundedTDsUnConfirm = $(buttonUnConfirm).find('td.buttonRoundedDisabled'); - if(buttonRoundedTDsConfirm && buttonRoundedTDsConfirm.length > 0){ - $.each(buttonRoundedTDsConfirm, function(index, td){ - $(td).removeClass('buttonRounded').addClass('buttonRoundedDisabled'); - }); - $.each(buttonRoundedTDsUnConfirm, function(index, td){ - $(td).removeClass('buttonRoundedDisabled').addClass('buttonRounded'); - }); - $divOverlay.css('display', 'none'); - singleAlarmAckUnAck($divOverlay, 1); - } - }); - $(buttonUnConfirm).one('click', function(){ - var buttonRoundedTDsUnConfirm = $(buttonUnConfirm).find('td.buttonRounded'); - var buttonRoundedTDsConfirm = $(buttonConfirm).find('td.buttonRoundedDisabled'); - if(buttonRoundedTDsUnConfirm && buttonRoundedTDsUnConfirm.length > 0){ - $.each(buttonRoundedTDsUnConfirm, function(index, td){ - $(td).removeClass('buttonRounded').addClass('buttonRoundedDisabled'); - }); - $.each(buttonRoundedTDsConfirm, function(index, td){ - $(td).removeClass('buttonRoundedDisabled').addClass('buttonRounded'); - }); - $divOverlay.css('display', 'none'); - singleAlarmAckUnAck($divOverlay, 2); - } - }); - var buttonDelete = $('div#buttonDelete', $divOverlay); - $(buttonDelete).die().live('click', function(){ - //弹出删除确认对话框 - $('div#myModal').modal({ - keyboard: false, - backdrop: 'static' - }); - $('#delConfirm').die().live('click', function(){ - $divOverlay.css('display', 'none'); - dataTable.fnClose(tr); - $(tr).remove(); - //删除表头表格的相应行 - $('tr#' + $(tr).attr('id').replace('body', 'head'), $tableHead).remove(); - //删除后端数据 - singleAlarmDel($divOverlay); - //刷新表格 - dataTable.fnAdjustColumnSizing(); - }); - }); - //展开行的情况隐藏 - $('td.details > table.detailTable').on('hover', function(){ - $divOverlay.css('display', 'none'); - }); - }); - } - }); - } - - return { - - //main function to initiate the module - init: function (options, columnsDefined, xsHiddenColumnsDefined, smHiddenColumnsDefined) { - - if (!$().dataTable) { - return; - } - - var the = this; - - //记录需要禁掉默认排序的列 - var aTargets = []; - var targetsLength = columnsDefined.length; - if(rowCheckable)targetsLength++; - if(openRowFlag)targetsLength++; - for(var i=0;i<'col-md-4 col-sm-12'<'table-group-actions pull-right'>>r><'table-scrollable't><'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'>r>>", // datatable layout - - "aoColumnDefs" : [{ // define columns sorting options(by default all columns are sortable extept the first checkbox column) - 'bSortable' : false, - 'aTargets' : aTargets - }], - - "bAutoWidth": false, // disable fixed width and enable fluid table - //"bSortCellsTop": true, // make sortable only the first row in thead - "sPaginationType": "bootstrap_extended", // pagination type(bootstrap, bootstrap_full_number or bootstrap_extended) - "bProcessing": true, // enable/disable display message box on record load - "bServerSide": true, // enable/disable server side ajax loading - "sAjaxSource": "", // define ajax source URL - //"sServerMethod": "GET", - - // handle ajax request - "fnServerData": function ( sSource, aoData, fnCallback, oSettings ) { - //for ICT Paging - //var startIndex = aoData[3].value;//"iDisplayStart" - //var pageLength = aoData[4].value;//"iDisplayLength" - var oPaging = oSettings.oInstance.fnPagingInfo(); - //var startIndex = oPaging.iStart; - var pageLength = oPaging.iLength; - var curPageNo = oPaging.iPage + 1; - - for(var k=aoData.length-1;k>=0;k--){ - var flag = -1; - if(aoData[k].name=='pageSize'){ - aoData[k].value=pageLength; - flag++; - } - if(aoData[k].name=='pageNo'){ - aoData[k].value=curPageNo; - flag++ - } - if(flag == 1)break; - } - - oSettings.jqXHR = $.ajax( { - "dataType": 'json', - "type": "GET", - "url": sSource, - "data": aoData, - "success": function(res, textStatus, jqXHR) { - if (res.sMessage) { - openoFrameWork.alert({type: (res.sStatus == 'OK' ? 'success' : 'danger'), icon: (res.sStatus == 'OK' ? 'check' : 'warning'), message: res.sMessage, container: tableWrapper, place: 'prepend'}); - } - if ($('.group-checkable', tableContainer).size() === 1) { - $('.group-checkable', tableContainer).attr("checked", false); - $.uniform.update($('.group-checkable', tableContainer)); - } - if (tableOptions.onSuccess) { - tableOptions.onSuccess.call(the); - } - //保存数据在dataTable对象中给行详细信息面板用 - dataTable.datas = res.response.data; - if(res.response.status < 0){ - alert(res.response.data); - return; - } - - //告警字段值转换 - res = AlarmLabels.transformFieldNames(res); - - res = jsonObjectToArray(res, columns, oSettings.iDraw); - - //重绘表格 - fnCallback(res, textStatus, jqXHR); - }, - "error": function() { - if (tableOptions.onError) { - tableOptions.onError.call(the); - } - openoFrameWork.alert({type: 'danger', icon: 'warning', message: tableOptions.dataTable.oLanguage.sAjaxRequestGeneralError, container: tableWrapper, place: 'prepend'}); - $('.dataTables_processing', tableWrapper).remove(); - } - } ); - - }, - - // pass additional parameter - "fnServerParams": function ( aoData ) { - //here can be added an external ajax request parameters. - //for(var i in ajaxParams) { - for(var i=0; i table.dataTable', tableWrapper); - var tbodyHead = $('tbody', $tableHead); - if(tbodyHead && tbodyHead.length >0){ - $(tbodyHead).remove(); - } - - var $tableBody = $('table#datatable_ajax', tableWrapper); - var trIn = $('thead > tr:nth-child(1)', $tableHead); - var trBodyHead = $('thead > tr:nth-child(1)', $tableBody); - var tds = $(trIn).children(); - var ths = $(trBodyHead).children(); - for(var k=0;k' + tds.eq(k).html() + ''); - } - var bodyRows = $('tbody > tr', $tableBody); - for(var i=0;i' + tds.eq(j).html() + ''); - $(tds.eq(j)).height('0px'); - $(tds.eq(j)).css('padding-top','0px'); - $(tds.eq(j)).css('padding-bottom','0px'); - $(tds.eq(j)).css('border-top-width','0px'); - $(tds.eq(j)).css('border-bottom-width','0px'); - } - $(rowClone).height('0px'); - $tableHead.append($(rowClone).prop("outerHTML")); - } - - $('.dataTables_scrollBody').css('width','100%'); - $('.dataTables_scrollHead').css('width','98.5%'); - $('.dataTables_scrollHeadInner').css('padding-right', 0); - - //添加浮动确认反确认按钮 - if(rowOverFlag){ - addRowOverlap(); - } - - //设置表格本体高度 - $('div.dataTables_scrollBody').css('height', tableHeight); - } - } - }, options); - - tableOptions = options; - - columns = columnsDefined; - xsHiddenColumns = xsHiddenColumnsDefined; - smHiddenColumns = smHiddenColumnsDefined; - // create table's jquery object - table = $(options.src); - tableContainer = table.parents(".table-container"); - // apply the special class that used to restyle the default datatable - - $.fn.dataTableExt.oStdClasses.sWrapper = $.fn.dataTableExt.oStdClasses.sWrapper + " dataTables_extended_wrapper"; - - // initialize a datatable - dataTable = table.dataTable(options.dataTable); - - tableWrapper = table.parents('.dataTables_wrapper'); - - // modify table per page dropdown input by appliying some classes - $('.dataTables_length select', tableWrapper).addClass("form-control input-xsmall input-sm"); - - // handle group checkboxes check/uncheck - $('.group-checkable', tableContainer).change(function () { - var set = $('tbody > tr > td:nth-child(1) input[type="checkbox"]', table); - var checked = $(this).is(":checked"); - $(set).each(function () { - $(this).attr("checked", checked); - }); - $.uniform.update(set); - countSelectedRecords(); - }); - - // handle row's checkbox click - table.on('change', 'tbody > tr > td:nth-child(1) input[type="checkbox"]', function(){ - countSelectedRecords(); - }); - - //填充表头右边界 - $('.dataTables_scrollHead').css('display','inline-block'); - //var dataTables_scrollHead_height = $('.dataTables_scrollHead').css( "height" ); - $(".dataTables_scrollHead").after("
    "); - if($.browser.mozilla){ - $('#divRightPadding').css('height', '40'); - } - - //隐藏掉某些列 - var $tableHead = $('div.dataTables_scrollHeadInner > table.dataTable', tableWrapper); - var $tableBody = $('table#datatable_ajax', tableWrapper); - - for(var i=0;i tr > th#' + columns[j].columnId, $tableHead).addClass('hidden-xs'); - $('thead > tr > th#' + columns[j].columnId, $tableBody).addClass('hidden-xs'); - break; - } - } - } - - for(var i=0;i tr > th#' + columns[j].columnId, $tableHead).addClass('hidden-sm'); - $('thead > tr > th#' + columns[j].columnId, $tableBody).addClass('hidden-sm'); - break; - } - } - } - },//end init------------------------------------------------------------------------------------ - - getSelectedRowsCount: function() { - return $('tbody > tr > td:nth-child(1) input[type="checkbox"]:checked', table).size(); - }, - - getSelectedRows: function() { - var rows = []; - $('tbody > tr > td:nth-child(1) input[type="checkbox"]:checked', table).each(function(){ - rows.push({name: $(this).attr("name"), value: $(this).val()}); - }); - - return rows; - }, - - addAjaxParam: function(name, value) { - ajaxParams.push({"name": name, "value": value}); - }, - - clearAjaxParams: function(name, value) { - ajaxParams = []; - }, - - getDataTable: function() { - return dataTable; - }, - - getTableWrapper: function() { - return tableWrapper; - }, - - gettableContainer: function() { - return tableContainer; - }, - - getTable: function() { - return table; - }, - - setOpenRowFlag: function(openRowFlagInput) { - openRowFlag = openRowFlagInput; - }, - - setRowOverFlag: function(rowOverFlagInput) { - rowOverFlag = rowOverFlagInput; - }, - - setRowCheckable: function(rowCheckableInput) { - rowCheckable = rowCheckableInput; - }, - - setColumnsTooLong: function(columnsTooLongInput) { - columnsTooLong = columnsTooLongInput; - }, - - setSTotalRecordsSource: function(sTotalRecordsSourceInput){ - sTotalRecordsSource = sTotalRecordsSourceInput; - }, - - setTableHeight: function(tableHeightInput){ - tableHeight = tableHeightInput; - } - - }; - -}; - -var TableAjaxICT = function () { - - var initPickers = function () { - //init date pickers - $('.date-picker').datepicker({ - //rtl: App.isRTL(), - autoclose: true - }); - } - - //判断a数组是否包含b数组 - function isContained(largeArray, smallArray){ - if(!(largeArray instanceof Array) || !(smallArray instanceof Array)) - return false; - if(largeArray.length < smallArray.length) - return false; - for(var i = 0; i < smallArray.length; i++){ - var flag = false; - for(j=0;j' + alarmId + ''; - sOut += '' + columns[4].columnTitle + '' + perceivedSeverity + ''; - sOut += '' + columns[9].columnTitle + '' + alarmType + ''; - sOut += '' + columns[3].columnTitle + '' + alarmRaisedTime + ''; - - sOut += '' + columns[5].columnTitle + '' + probableCauseDesc + ''; - sOut += '' + columns[15].columnTitle + '' + alarmChangedTime + ''; - sOut += '' + columns[11].columnTitle + '' + ackState + ''; - - sOut += '' + columns[12].columnTitle + '' + ackTime + ''; - sOut += '' + columns[13].columnTitle + '' + ackUserId + ''; - sOut += '' + columns[14].columnTitle + '' + ackSystemId + ''; - sOut += '' + columns[7].columnTitle + '' + neip + ''; - - sOut += '' + columns[2].columnTitle + '' + moc + ''; - sOut += '' + columns[1].columnTitle + '' + resDisplayName + ''; - - sOut += '' + columns[8].columnTitle + '' + componentname + ''; - sOut += '' + columns[16].columnTitle + '' + position1 + ''; - - sOut += '' + columns[10].columnTitle + '' + specificproblem + ''; - - sOut += '' + columns[6].columnTitle + '' + additionalText + ''; - - sOut += '' + $.i18n.prop('aos_fm_SuggestionSetting_view_DefaultSuggestionGroupTitle').replace(';', '').replace(/\"/g,'') + '' + ''; - - sOut += '' + $.i18n.prop('aos_fm_SuggestionSetting_view_SettingSuggestionGroupTitle').replace(';', '').replace(/\"/g,'') + ''; - - sOut += ''; - - /* - var systemType = 0; - var code = 0; - for (var i = 0; i < oTable.datas.length; i++) { - var temp = oTable.datas[i]; - if (temp.alarmId == oTr['alarmId'].value) { - systemType = temp.systemType; - code = temp.probableCauseCode; - } - }*/ - var data = { - "systemType" : systemType, - "code" : code - }; - var sendData = JSON.stringify(data); - $.ajax({ - "dataType" : 'json', - "type" : "GET", - "url" : "/web/rest/web/fm/Maintenance" + "?" + "data=" + sendData, - "contentType" : 'application/json; charset=utf-8', - "data" : null, - "success" : function (json) { - $('tr').find('td#defaulInfo' + id).text(json.defaulInfo); - $('tr').find('td#customInfo' + id).text(json.customInfo); - var modify = $('#customInfoModify' + id); - modify.on('click', function () { - var span = $('#modifyBtnSpan' + id); - var customInfo = $('tr').find('td#customInfo' + id); - var cancel = $('#cancelDiv' + id); - if (span['0'].className === 'fa fa-pencil-square-o') { - var value = customInfo['0'].textContent; - customInfo['0'].textContent = ''; - customInfo['0'].innerHTML = ''; - span['0'].className = 'fa fa-floppy-o'; - cancel['0'].innerHTML = ''; - $('#cancelBtn' + id).on('click', function () { - customInfo['0'].innerHTML = ''; - customInfo['0'].textContent = value; - cancel['0'].innerHTML = ''; - span['0'].className = 'fa fa-pencil-square-o'; - }); - } else { - var inputValue = $('#customInfoInput' + id)['0'].value; - customInfo['0'].innerHTML = ''; - customInfo['0'].textContent = inputValue; - span['0'].className = 'fa fa-pencil-square-o'; - cancel['0'].innerHTML = ''; - var modifyData = { - "systemType" : systemType, - "code" : code, - "defaulInfo" : json.defaulInfo, - "customInfo" : inputValue - }; - $.ajax({ - "dataType" : 'json', - "type" : "PUT", - "url" : "/web/rest/web/fm/Maintenance", - "contentType" : 'application/json; charset=utf-8', - "data" : JSON.stringify(modifyData), - "error" : function () { - alert('Modify Error!'); - } - }); - } - }); - }, - "error" : function () { - alert('Communication Error!'); - } - }); - - return sOut; - } - - var generateColumns = function(columns, openRowFlag, rowCheckable){ - var $tableData = $('table#datatable_ajax'); - var theadTR = $('thead > tr', $tableData); - if(rowCheckable){ - theadTR.append(''); - } - if(openRowFlag){ - theadTR.append('  '); - } - for(var i=0;i' + columns[i].columnTitle + ''); - } - } - - var sortHandling = function(oTable, openRowFlag, rowCheckable){ - var indexSkip = -1; - if(openRowFlag&&rowCheckable){ - indexSkip = 1; - }else if(openRowFlag&&!rowCheckable||!openRowFlag&&rowCheckable){ - indexSkip = 0; - } - var $sortOrder = 0; //排序类型 1表示升序,0表示降序 - var tableWrapper = $('div#datatable_ajax_wrapper'); - var $tableHead = $('div.dataTables_scrollHeadInner > table.dataTable', tableWrapper); - var $tableData = $('table#datatable_ajax'); - var clearSort = function(currentTh){ - var ths = $tableHead.find('th').get(); - var tableDataHeadTHs = $tableData.find('th').get(); - $.each( ths, function( index, th ){ - if(index > indexSkip){ - if($(th).text() != currentTh.text()){ - if($(th).is('.sorting_disabled')){ - //do nothing; - }else if($(th).is('.sorting_asc')){ - $(th).removeClass('sorting_asc').addClass('sorting_disabled'); - $(tableDataHeadTHs[index]).removeClass('sorting_asc').addClass('sorting_disabled'); - }else if($(th).is('.sorting_desc')){ - $(th).removeClass('sorting_desc').addClass('sorting_disabled'); - $(tableDataHeadTHs[index]).removeClass('sorting_desc').addClass('sorting_disabled'); - } - } - } - }); - } - - $('th', $tableHead).each(function( column ) - { - if(column>indexSkip){ - //处理三种有可能存在的排序字段,比较方法 - var findSortKey; - if( $(this).is('.sort-title') || $(this).is('.sorting_disabled') ) - { - findSortKey = function( $cell ) - { - var cellText = $cell.text(); - if(isNaN(cellText)){ - return $cell.text().toUpperCase(); - }else{ - return parseFloat(cellText); - } - //return $cell.text().toUpperCase(); - } - } - else if( $(this).is('.sort-date') ) - { - findSortKey = function( $cell ) - { - return Date.parse('1' + $cell.text()); - } - } - else if( $(this).is('.sort-price') ) - { - findSortKey = function( $cell ) - { - var key = parseFloat($cell.text().replace(/^[^\d.]*/, '')) - return isNaN(key) ? 0 : key; - } - } - - //排序 - if( findSortKey ) - { - $(this).click(function() - { - $sortOrder = $sortOrder == 0 ? 1 : 0; - var tableDataHeadTHs = $tableData.find('th').get(); - - if($sortOrder == 1){ - if($(this).is('.sorting_disabled')){ - $(this).removeClass('sorting_disabled').addClass('sorting_asc'); - $(tableDataHeadTHs[column]).removeClass('sorting_disabled').addClass('sorting_asc'); - }else if($(this).is('.sorting_asc')){ - $(this).removeClass('sorting_asc').addClass('sorting_desc'); - $(tableDataHeadTHs[column]).removeClass('sorting_asc').addClass('sorting_desc'); - }else if($(this).is('.sorting_desc')){ - $(this).removeClass('sorting_desc').addClass('sorting_asc'); - $(tableDataHeadTHs[column]).removeClass('sorting_desc').addClass('sorting_asc'); - } - }else{ - if($(this).is('.sorting_disabled')){ - $(this).removeClass('sorting_disabled').addClass('sorting_desc'); - $(tableDataHeadTHs[column]).removeClass('sorting_disabled').addClass('sorting_desc'); - }else if($(this).is('.sorting_asc')){ - $(this).removeClass('sorting_asc').addClass('sorting_desc'); - $(tableDataHeadTHs[column]).removeClass('sorting_asc').addClass('sorting_desc'); - }else if($(this).is('.sorting_desc')){ - $(this).removeClass('sorting_desc').addClass('sorting_asc'); - $(tableDataHeadTHs[column]).removeClass('sorting_desc').addClass('sorting_asc'); - } - } - clearSort($(this)); - - var rows = $tableData.find('tbody > tr').get(); - - $.each( rows, function( index, row ) - { - //先关掉所有行 - if ( oTable.fnIsOpen(row) ) - { - $(row).find('.row-details').click(); - } - }); - - //重新取得所有行,否则排序后表格显示异常 - rows = $tableData.find('tbody > tr').get(); - - $.each( rows, function( index, row ) - { - row.sortKey = findSortKey($(row).children('td').eq(column)); - }); - //排序方法 - rows.sort(function( a, b ) - { - if( $sortOrder == 1 ) - { - //升序 - if(a.sortKey < b.sortKey) return -1; - if(a.sortKey > b.sortKey) return 1; - return 0; - } - else - { - //降序 - if(a.sortKey < b.sortKey) return 1; - if(a.sortKey > b.sortKey) return -1; - return 0; - } - }); - //排序后的对象添加给$table - $.each( rows, function( index, row ) - { - $tableData.children('tbody').append(row); - row.sortKey = null; - }); - }); - } - } - }); - } - - var handleRecords = function(requestStr, columns, xsHiddenColumns, smHiddenColumns, oLanguage, openRowFlag, rowCheckable, rowOverFlag, requestURL, requestParameters, tableHeight, columnsTooLong, sTotalRecordsSource) { - - /* - jQuery.getJSON('/web/newict/framework/thirdparty/data-tables/app-universal-i18n-datatable-' + lang + '.json', - function(data) { - oLanguage = data; - }); - */ - grid.setOpenRowFlag(openRowFlag); - grid.setRowCheckable(rowCheckable); - grid.setRowOverFlag(rowOverFlag); - grid.setColumnsTooLong(columnsTooLong); - grid.setSTotalRecordsSource(sTotalRecordsSource); - grid.setTableHeight(tableHeight); - //取得查询条件 -// if(!requestStr || requestStr.length == 0){ -// requestStr = JSON.stringify(requestAllData); -// } - grid.clearAjaxParams(); - grid.addAjaxParam('data', requestStr); - //取得其他参数 - for(var i=0;i table.dataTable', tableWrapper); - var ths = $tableHead.find('th').get(); - var $tableData = $('table#datatable_ajax'); - var tableDataHeadTHs = $tableData.find('th').get(); - $.each( ths, function( index, th ){ - //clear all sort direction - if($(th).is('.sorting_disabled')){ - //do nothing; - }else if($(th).is('.sorting_asc')){ - $(th).removeClass('sorting_asc').addClass('sorting_disabled'); - $(tableDataHeadTHs[index]).removeClass('sorting_asc').addClass('sorting_disabled'); - }else if($(th).is('.sorting_desc')){ - $(th).removeClass('sorting_desc').addClass('sorting_disabled'); - $(tableDataHeadTHs[index]).removeClass('sorting_desc').addClass('sorting_disabled'); - } - }); - - }, - onError: function(grid) { - // execute some code on network or other general error - }, - dataTable: { - "sDom" : "tr<'row'<'col-md-6 col-sm-12'><'col-md-6 col-sm-12'pli>>", // datatable layout - "oLanguage": oLanguage, - //"bAutoWidth": true, - "sScrollY": tableHeight, - "bScrollCollapse": true, - "sScrollX": "100%", - //"sScrollXInner": "110%", - "aLengthMenu": [ - [20, 50, 100], - [20, 50, 100] // change per page values here - ], - "iDisplayLength": 20, // default record count per page - "bServerSide": true, // server side processing - "sAjaxSource": requestURL // ajax source - } - }, columns, xsHiddenColumns, smHiddenColumns, openRowFlag, rowCheckable); - } - - /* - * Insert a 'details' column to the table - */ - var insertDetails = function (oTable, columns, rowCheckable) { - - var $tableData = $('table#datatable_ajax'); - - $tableData.on('click', ' tbody td .row-details', function () { - var nTr = $(this).parents('tr')[0]; - if (oTable.fnIsOpen(nTr)) { - /* This row is already open - close it */ - $(this).addClass("row-details-close").removeClass("row-details-open"); - oTable.fnClose(nTr); - } else { - /* Open this row */ - $(this).addClass("row-details-open").removeClass("row-details-close"); - oTable.fnOpen(nTr, fnFormatDetails(oTable, nTr, columns, rowCheckable), 'details'); - } - }); - } - - return { - - //main function to initiate the module - init: function (requestStr, lang, configPathPrefix) { - - var oLanguage; - var columns; - var xsHiddenColumns; - var smHiddenColumns; - var columnsAll; - - var openRowFlag = false; - var rowOverFlag = false; - var rowCheckable = false; - var requestURL=""; - var requestAllData; - var requestParameters; - - var tableHeight; - var tableWidth; - - var columnsTooLong; - var sTotalRecordsSource=""; - - //取得当前配置及国际化信息 - $.ajax({ - dataType: 'json', - url: configPathPrefix + '-' + lang + '.json', - async: false, - contentType:'application/json; charset=utf-8', - "success": function(data) { - oLanguage = data.language; - columns = data.columns; - xsHiddenColumns = data.xsHiddenColumns; - smHiddenColumns = data.smHiddenColumns; - columnsAll = data.columnsAll; - openRowFlag = data.openRowFlag == 'true'? true: false; - rowOverFlag = data.rowOverFlag == 'true'? true: false; - rowCheckable = data.rowCheckable == 'true'? true: false; - requestURL = data.requestURL; - //requestAllData = data.requestAllData; - requestParameters = data.requestParameters; - tableHeight = data.tableHeight; - tableWidth = data.tableWidth; - columnsTooLong = data.columnsTooLong; - sTotalRecordsSource = data.sTotalRecordsSource; - }, - "error" : function (xhr, info) { - alert('Communication Error! Error reason:' + info); - } - }); - - $('#dataTableWrapperDiv').css('width', tableWidth); - - if(!isContained(xsHiddenColumns, smHiddenColumns) || !isContained(columns, xsHiddenColumns) || !isContained(columnsAll, columns)){ - alert('Columns claim error: (smHiddenColumns <= xsHiddenColumns <= columns <= columnsAll) Please!'); - return; - } - - generateColumns(columns, openRowFlag, rowCheckable); - //initPickers(); - handleRecords(requestStr, columns, xsHiddenColumns, smHiddenColumns, oLanguage, openRowFlag, rowCheckable, rowOverFlag, requestURL, requestParameters, tableHeight, columnsTooLong, sTotalRecordsSource); - //获得初始化完毕的DataTable对象 - var oTable = grid.getDataTable(); - if(openRowFlag){ - insertDetails(oTable, columnsAll, rowCheckable); - } - sortHandling(oTable, openRowFlag, rowCheckable); - //oTable.fnAdjustColumnSizing(true); - return oTable; - } - - }; - -}(); - -var DataTableSmartClient = function(datas, configPathPrefix){ - - var requestStr = ""; - if(datas){ - requestStr = JSON.stringify(datas); - } - - var lang = getLanguage(); - //lang = 'en-US'; - loadi18n_FM(lang); - //requestStr = ""; - var oTable = TableAjaxICT.init(requestStr, lang, configPathPrefix); - - //重新调节列宽以适应window resize - $(window).one('resize', function () { - //oTable.DataTable.models.oSettings.bAjaxDataGet = false; - oTable.fnAdjustColumnSizing(false); - } ); -} diff --git a/portal-common/src/main/webapp/common/thirdparty/data-tables/DataTableSmartClientApp.js b/portal-common/src/main/webapp/common/thirdparty/data-tables/DataTableSmartClientApp.js deleted file mode 100644 index 25cdb5ff..00000000 --- a/portal-common/src/main/webapp/common/thirdparty/data-tables/DataTableSmartClientApp.js +++ /dev/null @@ -1,1312 +0,0 @@ -/*** - Wrapper/Helper Class for datagrid based on jQuery Datatable Plugin - ***/ -var DatatableICT = function () { - - var tableOptions; // main options - var dataTable; // datatable object - var table; // actual table jquery object - var tableContainer; // actual table container object - var tableWrapper; // actual table wrapper jquery object - var tableInitialized = false; - var ajaxParams = []; // set filter mode - var columns; - var xsHiddenColumns; - var smHiddenColumns; - var columnMaxLength = 30; - var columnsTooLong; - var hidden_xs_maxWidth = 768; - var hidden_sm_maxWidth = 991; - - var openRowFlag = false; - var rowOverFlag = false; - var rowCheckable = false; - - var aTargetsAll; - var sTotalRecordsSource; - var tableHeight; - - var callbackList = []; - - var includedInXsHiddenColumns = function(columnId){ - for(var i=0;i tr > td:nth-child(1) input[type="checkbox"]:checked', table).size(); - var text = tableOptions.dataTable.oLanguage.sGroupActions; - if (selected > 0) { - $('.table-group-actions > span', tableWrapper).text(text.replace("_TOTAL_", selected)); - } else { - $('.table-group-actions > span', tableWrapper).text(""); - } - } - - var jsonObjectToArray = function(json, columns, iDraw){ - var jsonToDatatable = {aaData:[], sEcho:iDraw, iTotalRecords:0, iTotalDisplayRecords:0 }; - for(var i=0; i"); - } - if(openRowFlag){ - jsonToDatatable.aaData[i].push(""); - } - for(var j=0; j= hidden_xs_maxWidth && $(window).width() < hidden_sm_maxWidth && includedInSmHiddenColumns(columns[j].columnId )){ - /*隐藏pad尺寸需要隐藏的列*/ - }else if($(window).width() < hidden_xs_maxWidth && includedInXsHiddenColumns(columns[j].columnId )){ - /*隐藏手机尺寸需要隐藏的列*/ - }else{ - var currentColumnId = columns[j].columnId; - if(jQuery.inArray(currentColumnId, columnsTooLong) > -1){ - var rawText = ""; - for(var k=0;k columnMaxLength){ - jsonToDatatable.aaData[i].push(rawText.slice(0, columnMaxLength) + '...'); - }else{ - jsonToDatatable.aaData[i].push(resRowObject[currentColumnId]); - } - } else { - jsonToDatatable.aaData[i].push(resRowObject[currentColumnId]); - } - - } - } - } - jsonToDatatable.sEcho++; - var totalRow = 0; - var totalRecordsSource = eval('json.' + sTotalRecordsSource); - if(totalRecordsSource && totalRecordsSource.length >0){ - totalRow = parseInt(totalRecordsSource); - } - if(isNaN(totalRow)){ - alert('All rows counting number got fail!'); - }else{ - jsonToDatatable.iTotalRecords = totalRow; - jsonToDatatable.iTotalDisplayRecords = totalRow; - } - return jsonToDatatable; - } - - var singleAlarmDel = function(divOverlay){ - - //根据浮动框的当前id获取需要删除的行 - var trId = divOverlay.attr('id_tr'); - tr=$('tr#' + trId); - var tds = $(tr).children(); - var tdAlarmId = ""; - if(rowCheckable){ - tdAlarmId = $(tds.eq(2)).text(); - }else{ - tdAlarmId = $(tds.eq(1)).text(); - } - - var data= { - "alarmId":[parseInt(tdAlarmId)] - }; - - var sSource = "/web/rest/web/fm/curalarms?data=" + JSON.stringify(data) + "&_operationType=remove&_dataSource=isc_PageRestDataSource_0&isc_metaDataPrefix=_&isc_dataFormat=json"; - - $.ajax( { - "dataType": 'json', - "type": "DELETE", - "url": sSource, - "data" : null, - "contentType" : 'application/json; charset=utf-8', - "success": function(json) { - if(json.response.status == 0){ - var resRowObject = json.response.data[0]; - //alert('删除成功'); - } - if(json.response.status == -1){ - //alert('删除失败'); - } - }, - "error": function() { - alert('Communication Error!'); - } - } ); - } - - var singleAlarmAckUnAck = function(divOverlay, ackType){ - - //根据浮动框的当前id获取需要确认的行 - var trId = divOverlay.attr('id_tr'); - var tr = $('tr#' + trId); - - //取得隐藏的头部表格的相应行 - var $tableHead = $('div.dataTables_scrollHeadInner > table.dataTable'); - //var trHead = $('tbody > tr:nth-child(' + trId + ')', $tableHead); - var trHead = $('tr#' + trId.replace('body', 'head'), $tableHead); - var tdDivs = $('td > div', trHead); - - var tds = $(tr).children(); - var tdAlarmId = ""; - if(rowCheckable){ - tdAlarmId = $(tds.eq(2)).text(); - }else{ - tdAlarmId = $(tds.eq(1)).text(); - } - - var aoData = - { - "dataSource":"isc_PageRestDataSource_0", - "operationType":"update", - "componentId":"isc_com_zte_ums_aos_fm_view_eventview_table_AlarmTable_0", - "data":{ - "viewType":1, - "state":ackType, - "alarmId":[ - parseInt(tdAlarmId) - ] - }, - "oldValues":null - }; - - var sSource = "/web/rest/web/fm/curalarms?isc_dataFormat=json"; - - $.ajax( { - "dataType": 'json', - "type": "PUT", - "url": sSource, - "contentType": 'application/json; charset=utf-8', - "data": JSON.stringify(aoData), - "success": function(json) { - /*for(var i=0;i0){ - json = callbackList[i](json); - break; - } - }*/ - //json = AlarmLabels.transformFieldNames(json); - if(callbackList[1]){ - json = callbackList[1](json); - } - if(json.response.status == 0){ - var resRowObject = json.response.data[0]; - var columnsCopy = $.extend(true, [], columns); - //隐藏列的情况下需要特殊处理 - if($(window).width()>=hidden_xs_maxWidth && $(window).width() -1) { - var rawText = ""; - for(var k=0;k columnMaxLength){ - $(tds.eq(i)).html(rawText.slice(0, columnMaxLength) + '...'); - $(tdDivs.eq(i)).html(rawText.slice(0, columnMaxLength) + '...'); - }else{ - $(tds.eq(i)).html(resRowObject[currentColumnId]); - $(tdDivs.eq(i)).html(resRowObject[currentColumnId]); - } - } else { - $(tds.eq(i)).html(resRowObject[currentColumnId]); - $(tdDivs.eq(i)).html(resRowObject[currentColumnId]); - } - } - //更新缓存中的当前行数据 - for (var t = 0; t < dataTable.datas.length; t++) { - var temp = dataTable.datas[t]; - if (temp.alarmId == resRowObject['alarmId']) { - dataTable.datas[t] = resRowObject; - break; - } - } - } - if(json.response.status == -1){ - $('div#myModalConfirm').modal({ - keyboard: false, - backdrop: 'static' - }); - $('span#alarm_number').html(tdAlarmId); - //国际化信息 - if(ackType==1){ - $('span#aos_fm_alarm_opeater_ack_already').html($.i18n.prop('aos_fm_alarm_opeater_ack_already_ok')); - }else{ - $('span#aos_fm_alarm_opeater_ack_already').html($.i18n.prop('aos_fm_alarm_opeater_ack_already_un')); - } - } - //填充单元格颜色 - var divColor = $("div.cellBackgroundColor", tr); - $(divColor).parent().css("background", $(divColor).css("background-color")); - }, - "error": function() { - alert('Communication Error!'); - } - } ); - } - - var addRowOverlap = function(){ - var $tableData = $('table#datatable_ajax'); - //取得隐藏的头部表格的相应行 - var $tableHead = $('div.dataTables_scrollHeadInner > table.dataTable'); - var trHeads = $tableHead.find('tr').get(); - $.each( trHeads, function( index, trHead ){ - $(trHead).attr('id', 'headTableTR' + index); - }); - //取得浮动div - var $divOverlay = $('div#divOverlay'); - var divScrollHead = $('div.dataTables_scrollHead'); - var divRightPadding = $('div#divRightPadding'); - //取表头下边沿位置 - var tableHeadBottomHeight = $(divScrollHead).position().top + $(divScrollHead).height(); - var tableBottom = $tableData.position().top + $tableData.height() + 3; - //取表格右边沿位置 - var tableRightEdgePosition = $(divRightPadding).position().left; - var trs = $tableData.find('tr').get(); - $.each( trs, function( index, tr ){ - var tdEmpty = $('td.dataTables_empty',tr); - if(!tdEmpty || tdEmpty.length ==0 ){ - $(tr).attr('id', 'bodyTableTR' + index); - //$divOverlay.attr('id_tr', 'bodyTableTR' + index); - $(tr).one('hover', function(){ - var rowPos = $(tr).position(); - var currentTrTop = rowPos.top; - //var bottomLeft = rowPos.left; - $divOverlay.attr('id_tr', 'bodyTableTR' + index); - $divOverlay.css({ - display: 'block', - position: 'absolute', - 'background-color': '#e5e5e5', - //opacity: 0.7, - border: 'solid 0px', - top: currentTrTop + 6, - left: tableRightEdgePosition - 308, - width: 300, - height: 30 - }); - //防止浮动框跳出表格内容区域 - if( $divOverlay.position().top < tableHeadBottomHeight || $divOverlay.position().top + $divOverlay.height() > tableBottom){ - $divOverlay.css('display', 'none'); - } - var buttonConfirm = $('div#buttonConfirm', $divOverlay); - var buttonUnConfirm = $('div#buttonUnConfirm', $divOverlay); - //初始化悬浮按钮当前行的确认反确认状态 - if($(tr).find('span.alarmAck') && $(tr).find('span.alarmAck').length >0){ - var spanAck = $(tr).find('span.alarmAck'); - var ackState = $(spanAck).attr('ack_id'); - var buttonTDsConfirm = $(buttonConfirm).find('td'); - var buttonTDsUnConfirm = $(buttonUnConfirm).find('td'); - if(ackState=="2"){ - if(buttonTDsConfirm && buttonTDsConfirm.length > 0 && buttonTDsUnConfirm && buttonTDsUnConfirm.length > 0){ - $.each(buttonTDsConfirm, function(index, td){ - $(td).removeClass('buttonRoundedDisabled').addClass('buttonRounded'); - }); - $.each(buttonTDsUnConfirm, function(index, td){ - $(td).removeClass('buttonRounded').addClass('buttonRoundedDisabled'); - }); - } - }else{ - if(buttonTDsConfirm && buttonTDsConfirm.length > 0 && buttonTDsUnConfirm && buttonTDsUnConfirm.length > 0){ - $.each(buttonTDsConfirm, function(index, td){ - $(td).removeClass('buttonRounded').addClass('buttonRoundedDisabled'); - }); - $.each(buttonTDsUnConfirm, function(index, td){ - $(td).removeClass('buttonRoundedDisabled').addClass('buttonRounded'); - }); - } - } - } - //添加确认反确认点击事件 - $(buttonConfirm).one('click', function(){ - var buttonRoundedTDsConfirm = $(buttonConfirm).find('td.buttonRounded'); - var buttonRoundedTDsUnConfirm = $(buttonUnConfirm).find('td.buttonRoundedDisabled'); - if(buttonRoundedTDsConfirm && buttonRoundedTDsConfirm.length > 0){ - $.each(buttonRoundedTDsConfirm, function(index, td){ - $(td).removeClass('buttonRounded').addClass('buttonRoundedDisabled'); - }); - $.each(buttonRoundedTDsUnConfirm, function(index, td){ - $(td).removeClass('buttonRoundedDisabled').addClass('buttonRounded'); - }); - $divOverlay.css('display', 'none'); - singleAlarmAckUnAck($divOverlay, 1); - } - }); - $(buttonUnConfirm).one('click', function(){ - var buttonRoundedTDsUnConfirm = $(buttonUnConfirm).find('td.buttonRounded'); - var buttonRoundedTDsConfirm = $(buttonConfirm).find('td.buttonRoundedDisabled'); - if(buttonRoundedTDsUnConfirm && buttonRoundedTDsUnConfirm.length > 0){ - $.each(buttonRoundedTDsUnConfirm, function(index, td){ - $(td).removeClass('buttonRounded').addClass('buttonRoundedDisabled'); - }); - $.each(buttonRoundedTDsConfirm, function(index, td){ - $(td).removeClass('buttonRoundedDisabled').addClass('buttonRounded'); - }); - $divOverlay.css('display', 'none'); - singleAlarmAckUnAck($divOverlay, 2); - } - }); - var buttonDelete = $('div#buttonDelete', $divOverlay); - $(buttonDelete).die().live('click', function(){ - $divOverlay.css('display', 'none'); - var trIdToDelete = $divOverlay.attr('id_tr'); - var toDeleteTr=$('tr#' + trIdToDelete); - $("td", toDeleteTr).addClass('dataTableTdSelected'); - //弹出删除确认对话框 - $('div#myModal').modal({ - keyboard: false, - backdrop: 'static' - }); - $('#delConfirm').die().live('click', function(){ - //$divOverlay.css('display', 'none'); - dataTable.fnClose(tr); - //删除后端数据 - singleAlarmDel($divOverlay); - //删除当前行 - $(tr).remove(); - //删除表头表格的相应行 - $('tr#' + $(tr).attr('id').replace('body', 'head'), $tableHead).remove(); - //刷新表格 - //dataTable.fnAdjustColumnSizing(); - }); - $('#myModal').on('hidden.bs.modal', function (e) { - $("td", toDeleteTr).removeClass('dataTableTdSelected'); - }) - }); - //展开行的情况隐藏 - $('td.details > table.detailTable').on('hover', function(){ - $divOverlay.css('display', 'none'); - }); - $('div#myModal').on('hover', function(){ - $divOverlay.css('display', 'none'); - }); - }); - } - }); - } - - return { - - //main function to initiate the module - init: function (options, columnsDefined, xsHiddenColumnsDefined, smHiddenColumnsDefined) { - - if (!$().dataTable) { - return; - } - - var the = this; - - //记录需要禁掉默认排序的列 - var aTargets = []; - var targetsLength = columnsDefined.length; - if(rowCheckable)targetsLength++; - if(openRowFlag)targetsLength++; - for(var i=0;i<'col-md-4 col-sm-12'<'table-group-actions pull-right'>>r><'table-scrollable't><'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'>r>>", // datatable layout - - "aoColumnDefs" : [{ // define columns sorting options(by default all columns are sortable extept the first checkbox column) - 'bSortable' : false, - 'aTargets' : aTargets - }], - - "bAutoWidth": false, // disable fixed width and enable fluid table - //"bSortCellsTop": true, // make sortable only the first row in thead - "sPaginationType": "bootstrap_extended", // pagination type(bootstrap, bootstrap_full_number or bootstrap_extended) - "bProcessing": true, // enable/disable display message box on record load - "bServerSide": true, // enable/disable server side ajax loading - "sAjaxSource": "", // define ajax source URL - //"sServerMethod": "GET", - - // handle ajax request - "fnServerData": function ( sSource, aoData, fnCallback, oSettings ) { - //for ICT Paging - //var startIndex = aoData[3].value;//"iDisplayStart" - //var pageLength = aoData[4].value;//"iDisplayLength" - var oPaging = oSettings.oInstance.fnPagingInfo(); - //var startIndex = oPaging.iStart; - var pageLength = oPaging.iLength; - var curPageNo = oPaging.iPage + 1; - - for(var k=aoData.length-1;k>=0;k--){ - var flag = -1; - if(aoData[k].name=='pageSize'){ - aoData[k].value=pageLength; - flag++; - } - if(aoData[k].name=='pageNo'){ - aoData[k].value=curPageNo; - flag++ - } - if(flag == 1)break; - } - - oSettings.jqXHR = $.ajax( { - "dataType": 'json', - "type": "GET", - "url": sSource, - "data": aoData, - "success": function(res, textStatus, jqXHR) { - if (res.sMessage) { - openoFrameWork.alert({type: (res.sStatus == 'OK' ? 'success' : 'danger'), icon: (res.sStatus == 'OK' ? 'check' : 'warning'), message: res.sMessage, container: tableWrapper, place: 'prepend'}); - } - if ($('.group-checkable', tableContainer).size() === 1) { - $('.group-checkable', tableContainer).attr("checked", false); - $.uniform.update($('.group-checkable', tableContainer)); - } - if (tableOptions.onSuccess) { - tableOptions.onSuccess.call(the); - } - //保存数据在dataTable对象中给行详细信息面板用 - dataTable.datas = res.response.data; - if(res.response.status < 0){ - alert(res.response.data); - return; - } - - //告警字段值转换 - //res = AlarmLabels.transformFieldNames(res); - /*for(var i=0;i0){ - res = callbackList[i](res); - break; - } - }*/ - if(callbackList[1]){ - res = callbackList[1](res); - } - - res = jsonObjectToArray(res, columns, oSettings.iDraw); - - //重绘表格 - fnCallback(res, textStatus, jqXHR); - }, - "error": function() { - if (tableOptions.onError) { - tableOptions.onError.call(the); - } - openoFrameWork.alert({type: 'danger', icon: 'warning', message: tableOptions.dataTable.oLanguage.sAjaxRequestGeneralError, container: tableWrapper, place: 'prepend'}); - $('.dataTables_processing', tableWrapper).remove(); - } - } ); - - }, - - // pass additional parameter - "fnServerParams": function ( aoData ) { - //here can be added an external ajax request parameters. - //for(var i in ajaxParams) { - for(var i=0; i table.dataTable', tableWrapper); - var tbodyHead = $('tbody', $tableHead); - if(tbodyHead && tbodyHead.length >0){ - $(tbodyHead).remove(); - } - - var $tableBody = $('table#datatable_ajax', tableWrapper); - var trIn = $('thead > tr:nth-child(1)', $tableHead); - var trBodyHead = $('thead > tr:nth-child(1)', $tableBody); - var tds = $(trIn).children(); - var ths = $(trBodyHead).children(); - for(var k=0;k' + tds.eq(k).html() + ''); - } - var bodyRows = $('tbody > tr', $tableBody); - for(var i=0;i' + tds.eq(j).html() + ''); - $(tds.eq(j)).height('0px'); - $(tds.eq(j)).css('padding-top','0px'); - $(tds.eq(j)).css('padding-bottom','0px'); - $(tds.eq(j)).css('border-top-width','0px'); - $(tds.eq(j)).css('border-bottom-width','0px'); - } - $(rowClone).height('0px'); - $tableHead.append($(rowClone).prop("outerHTML")); - } - - $('.dataTables_scrollBody').css('width','100%'); - $('.dataTables_scrollHead').css('width','98.5%'); - $('.dataTables_scrollHeadInner').css('padding-right', 0); - - //添加浮动确认反确认按钮 - if(rowOverFlag){ - addRowOverlap(); - } - - //填充单元格颜色 - var divColors = $("div.cellBackgroundColor", $tableBody); - $.each( divColors, function( index, divColor ){ - $(divColor).parent().css("background", $(divColor).css("background-color")); - }); - - //设置表格本体高度 - $('div.dataTables_scrollBody').css('height', tableHeight); - } - } - }, options); - - tableOptions = options; - - columns = columnsDefined; - xsHiddenColumns = xsHiddenColumnsDefined; - smHiddenColumns = smHiddenColumnsDefined; - // create table's jquery object - table = $(options.src); - tableContainer = table.parents(".table-container"); - // apply the special class that used to restyle the default datatable - - $.fn.dataTableExt.oStdClasses.sWrapper = $.fn.dataTableExt.oStdClasses.sWrapper + " dataTables_extended_wrapper"; - - // initialize a datatable - dataTable = table.dataTable(options.dataTable); - - tableWrapper = table.parents('.dataTables_wrapper'); - - // modify table per page dropdown input by appliying some classes - $('.dataTables_length select', tableWrapper).addClass("form-control input-xsmall input-sm"); - - // handle group checkboxes check/uncheck - $('.group-checkable', tableContainer).change(function () { - var set = $('tbody > tr > td:nth-child(1) input[type="checkbox"]', table); - var checked = $(this).is(":checked"); - $(set).each(function () { - $(this).attr("checked", checked); - }); - $.uniform.update(set); - countSelectedRecords(); - }); - - // handle row's checkbox click - table.on('change', 'tbody > tr > td:nth-child(1) input[type="checkbox"]', function(){ - countSelectedRecords(); - }); - - //填充表头右边界 - $('.dataTables_scrollHead').css('display','inline-block'); - //var dataTables_scrollHead_height = $('.dataTables_scrollHead').css( "height" ); - $(".dataTables_scrollHead").after("
    "); - if($.browser.mozilla){ - $('#divRightPadding').css('height', '40'); - } - - //隐藏掉某些列 - var $tableHead = $('div.dataTables_scrollHeadInner > table.dataTable', tableWrapper); - var $tableBody = $('table#datatable_ajax', tableWrapper); - - for(var i=0;i tr > th#' + columns[j].columnId, $tableHead).addClass('hidden-xs'); - $('thead > tr > th#' + columns[j].columnId, $tableBody).addClass('hidden-xs'); - break; - } - } - } - - for(var i=0;i tr > th#' + columns[j].columnId, $tableHead).addClass('hidden-sm'); - $('thead > tr > th#' + columns[j].columnId, $tableBody).addClass('hidden-sm'); - break; - } - } - } - },//end init------------------------------------------------------------------------------------ - - getSelectedRowsCount: function() { - return $('tbody > tr > td:nth-child(1) input[type="checkbox"]:checked', table).size(); - }, - - getSelectedRows: function() { - var rows = []; - $('tbody > tr > td:nth-child(1) input[type="checkbox"]:checked', table).each(function(){ - rows.push({name: $(this).attr("name"), value: $(this).val()}); - }); - - return rows; - }, - - addAjaxParam: function(name, value) { - ajaxParams.push({"name": name, "value": value}); - }, - - clearAjaxParams: function(name, value) { - ajaxParams = []; - }, - - getDataTable: function() { - return dataTable; - }, - - getTableWrapper: function() { - return tableWrapper; - }, - - gettableContainer: function() { - return tableContainer; - }, - - getTable: function() { - return table; - }, - - setOpenRowFlag: function(openRowFlagInput) { - openRowFlag = openRowFlagInput; - }, - - setRowOverFlag: function(rowOverFlagInput) { - rowOverFlag = rowOverFlagInput; - }, - - setRowCheckable: function(rowCheckableInput) { - rowCheckable = rowCheckableInput; - }, - - setColumnsTooLong: function(columnsTooLongInput) { - columnsTooLong = columnsTooLongInput; - }, - - setSTotalRecordsSource: function(sTotalRecordsSourceInput){ - sTotalRecordsSource = sTotalRecordsSourceInput; - }, - - setTableHeight: function(tableHeightInput){ - tableHeight = tableHeightInput; - }, - - setCallbackList: function(list){ - if($.isArray(list)){ - callbackList = list; - } - } - - }; - -}; - -var TableAjaxICT = function () { - - var initPickers = function () { - //init date pickers - $('.date-picker').datepicker({ - //rtl: App.isRTL(), - autoclose: true - }); - } - - //判断a数组是否包含b数组 - function isContained(largeArray, smallArray){ - if(!(largeArray instanceof Array) || !(smallArray instanceof Array)) - return false; - if(largeArray.length < smallArray.length) - return false; - for(var i = 0; i < smallArray.length; i++){ - var flag = false; - for(j=0;j 0){ - detailTableId = "alarmDetailInfo" + detailTables.length; - } - var sOut = ''; - sOut += ''; - sOut += ''; - sOut += ''; - sOut += ''; - - sOut += ''; - sOut += ''; - sOut += ''; - - sOut += ''; - sOut += ''; - sOut += ''; - sOut += ''; - - sOut += ''; - sOut += ''; - - sOut += ''; - sOut += ''; - - sOut += ''; - - sOut += ''; - - sOut += ''; - - sOut += ''; - - sOut += '
    ' + columns[0].columnTitle + '' + alarmId + '' + columns[4].columnTitle + '' + perceivedSeverity + '' + columns[9].columnTitle + '' + alarmType + '' + columns[3].columnTitle + '' + alarmRaisedTime + '
    ' + columns[5].columnTitle + '' + probableCauseDesc + '' + columns[15].columnTitle + '' + alarmChangedTime + '' + columns[11].columnTitle + '' + ackState + '
    ' + columns[12].columnTitle + '' + ackTime + '' + columns[13].columnTitle + '' + ackUserId + '' + columns[14].columnTitle + '' + ackSystemId + '' + columns[7].columnTitle + '' + neip + '
    ' + columns[2].columnTitle + '' + moc + '' + columns[1].columnTitle + '' + resDisplayName + '
    ' + columns[8].columnTitle + '' + componentname + '' + columns[16].columnTitle + '' + position1 + '
    ' + columns[10].columnTitle + '' + specificproblem + '
    ' + columns[6].columnTitle + '' + additionalText + '
    ' + $.i18n.prop('aos_fm_SuggestionSetting_view_DefaultSuggestionGroupTitle').replace(';', '').replace(/\"/g,'') + '' + '
    ' + $.i18n.prop('aos_fm_SuggestionSetting_view_SettingSuggestionGroupTitle').replace(';', '').replace(/\"/g,'') + '
    '; - - /* - var systemType = 0; - var code = 0; - for (var i = 0; i < oTable.datas.length; i++) { - var temp = oTable.datas[i]; - if (temp.alarmId == oTr['alarmId'].value) { - systemType = temp.systemType; - code = temp.probableCauseCode; - } - }*/ - var data = { - "systemType" : systemType, - "code" : code - }; - var sendData = JSON.stringify(data); - $.ajax({ - "dataType" : 'json', - "type" : "GET", - "url" : "/web/rest/web/fm/Maintenance" + "?" + "data=" + sendData, - "contentType" : 'application/json; charset=utf-8', - "data" : null, - "success" : function (json) { - $('tr').find('td#defaulInfo' + id).text(json.defaulInfo); - $('tr').find('td#customInfo' + id).text(json.customInfo); - var modify = $('#customInfoModify' + id); - modify.on('click', function () { - var span = $('#modifyBtnSpan' + id); - var customInfo = $('tr').find('td#customInfo' + id); - var cancel = $('#cancelDiv' + id); - if (span['0'].className === 'fa fa-pencil-square-o') { - var value = customInfo['0'].textContent; - customInfo['0'].textContent = ''; - customInfo['0'].innerHTML = ''; - span['0'].className = 'fa fa-floppy-o'; - cancel['0'].innerHTML = ''; - $('#cancelBtn' + id).on('click', function () { - customInfo['0'].innerHTML = ''; - customInfo['0'].textContent = value; - cancel['0'].innerHTML = ''; - span['0'].className = 'fa fa-pencil-square-o'; - }); - } else { - var inputValue = $('#customInfoInput' + id)['0'].value; - customInfo['0'].innerHTML = ''; - customInfo['0'].textContent = inputValue; - span['0'].className = 'fa fa-pencil-square-o'; - cancel['0'].innerHTML = ''; - var modifyData = { - "systemType" : systemType, - "code" : code, - "defaulInfo" : json.defaulInfo, - "customInfo" : inputValue - }; - $.ajax({ - "dataType" : 'json', - "type" : "PUT", - "url" : "/web/rest/web/fm/Maintenance", - "contentType" : 'application/json; charset=utf-8', - "data" : JSON.stringify(modifyData), - "error" : function () { - alert('Modify Error!'); - } - }); - } - }); - }, - "error" : function () { - alert('Communication Error!'); - } - }); - - return sOut; - } - - var generateColumns = function(columns, openRowFlag, rowCheckable){ - var $tableData = $('table#datatable_ajax'); - var theadTR = $('thead > tr', $tableData); - if(rowCheckable){ - theadTR.append(''); - } - if(openRowFlag){ - theadTR.append('  '); - } - for(var i=0;i' + columns[i].columnTitle + ''); - } - } - - var sortHandling = function(oTable, openRowFlag, rowCheckable){ - var indexSkip = -1; - if(openRowFlag&&rowCheckable){ - indexSkip = 1; - }else if(openRowFlag&&!rowCheckable||!openRowFlag&&rowCheckable){ - indexSkip = 0; - } - var $sortOrder = 0; //排序类型 1表示升序,0表示降序 - var tableWrapper = $('div#datatable_ajax_wrapper'); - var $tableHead = $('div.dataTables_scrollHeadInner > table.dataTable', tableWrapper); - var $tableData = $('table#datatable_ajax'); - var clearSort = function(currentTh){ - var ths = $tableHead.find('th').get(); - var tableDataHeadTHs = $tableData.find('th').get(); - $.each( ths, function( index, th ){ - if(index > indexSkip){ - if($(th).text() != currentTh.text()){ - if($(th).is('.sorting_disabled')){ - //do nothing; - }else if($(th).is('.sorting_asc')){ - $(th).removeClass('sorting_asc').addClass('sorting_disabled'); - $(tableDataHeadTHs[index]).removeClass('sorting_asc').addClass('sorting_disabled'); - }else if($(th).is('.sorting_desc')){ - $(th).removeClass('sorting_desc').addClass('sorting_disabled'); - $(tableDataHeadTHs[index]).removeClass('sorting_desc').addClass('sorting_disabled'); - } - } - } - }); - } - - $('th', $tableHead).each(function( column ) - { - if(column>indexSkip){ - //处理三种有可能存在的排序字段,比较方法 - var findSortKey; - if( $(this).is('.sort-title') || $(this).is('.sorting_disabled') ) - { - findSortKey = function( $cell ) - { - var cellText = $cell.text(); - if(isNaN(cellText)){ - return $cell.text().toUpperCase(); - }else{ - return parseFloat(cellText); - } - //return $cell.text().toUpperCase(); - } - } - else if( $(this).is('.sort-date') ) - { - findSortKey = function( $cell ) - { - return Date.parse('1' + $cell.text()); - } - } - else if( $(this).is('.sort-price') ) - { - findSortKey = function( $cell ) - { - var key = parseFloat($cell.text().replace(/^[^\d.]*/, '')) - return isNaN(key) ? 0 : key; - } - } - - //排序 - if( findSortKey ) - { - $(this).click(function() - { - $sortOrder = $sortOrder == 0 ? 1 : 0; - var tableDataHeadTHs = $tableData.find('th').get(); - - if($sortOrder == 1){ - if($(this).is('.sorting_disabled')){ - $(this).removeClass('sorting_disabled').addClass('sorting_asc'); - $(tableDataHeadTHs[column]).removeClass('sorting_disabled').addClass('sorting_asc'); - }else if($(this).is('.sorting_asc')){ - $(this).removeClass('sorting_asc').addClass('sorting_desc'); - $(tableDataHeadTHs[column]).removeClass('sorting_asc').addClass('sorting_desc'); - }else if($(this).is('.sorting_desc')){ - $(this).removeClass('sorting_desc').addClass('sorting_asc'); - $(tableDataHeadTHs[column]).removeClass('sorting_desc').addClass('sorting_asc'); - } - }else{ - if($(this).is('.sorting_disabled')){ - $(this).removeClass('sorting_disabled').addClass('sorting_desc'); - $(tableDataHeadTHs[column]).removeClass('sorting_disabled').addClass('sorting_desc'); - }else if($(this).is('.sorting_asc')){ - $(this).removeClass('sorting_asc').addClass('sorting_desc'); - $(tableDataHeadTHs[column]).removeClass('sorting_asc').addClass('sorting_desc'); - }else if($(this).is('.sorting_desc')){ - $(this).removeClass('sorting_desc').addClass('sorting_asc'); - $(tableDataHeadTHs[column]).removeClass('sorting_desc').addClass('sorting_asc'); - } - } - clearSort($(this)); - - var rows = $tableData.find('tbody > tr').get(); - - $.each( rows, function( index, row ) - { - //先关掉所有行 - if ( oTable.fnIsOpen(row) ) - { - $(row).find('.row-details').click(); - } - }); - - //重新取得所有行,否则排序后表格显示异常 - rows = $tableData.find('tbody > tr').get(); - - $.each( rows, function( index, row ) - { - row.sortKey = findSortKey($(row).children('td').eq(column)); - }); - //排序方法 - rows.sort(function( a, b ) - { - if( $sortOrder == 1 ) - { - //升序 - if(a.sortKey < b.sortKey) return -1; - if(a.sortKey > b.sortKey) return 1; - return 0; - } - else - { - //降序 - if(a.sortKey < b.sortKey) return 1; - if(a.sortKey > b.sortKey) return -1; - return 0; - } - }); - //排序后的对象添加给$table - $.each( rows, function( index, row ) - { - $tableData.children('tbody').append(row); - row.sortKey = null; - }); - }); - } - } - }); - } - - var handleRecords = function(requestStr, columns, xsHiddenColumns, smHiddenColumns, oLanguage, openRowFlag, rowCheckable, rowOverFlag, requestURL, requestParameters, tableHeight, columnsTooLong, sTotalRecordsSource, callbackList) { - - /* - jQuery.getJSON('/web/newict/framework/thirdparty/data-tables/app-universal-i18n-datatable-' + lang + '.json', - function(data) { - oLanguage = data; - }); - */ - grid.setCallbackList(callbackList); - grid.setOpenRowFlag(openRowFlag); - grid.setRowCheckable(rowCheckable); - grid.setRowOverFlag(rowOverFlag); - grid.setColumnsTooLong(columnsTooLong); - grid.setSTotalRecordsSource(sTotalRecordsSource); - grid.setTableHeight(tableHeight); - //取得查询条件 -// if(!requestStr || requestStr.length == 0){ -// requestStr = JSON.stringify(requestAllData); -// } - grid.clearAjaxParams(); - grid.addAjaxParam('data', requestStr); - //取得其他参数 - for(var i=0;i table.dataTable', tableWrapper); - var ths = $tableHead.find('th').get(); - var $tableData = $('table#datatable_ajax'); - var tableDataHeadTHs = $tableData.find('th').get(); - $.each( ths, function( index, th ){ - //clear all sort direction - if($(th).is('.sorting_disabled')){ - //do nothing; - }else if($(th).is('.sorting_asc')){ - $(th).removeClass('sorting_asc').addClass('sorting_disabled'); - $(tableDataHeadTHs[index]).removeClass('sorting_asc').addClass('sorting_disabled'); - }else if($(th).is('.sorting_desc')){ - $(th).removeClass('sorting_desc').addClass('sorting_disabled'); - $(tableDataHeadTHs[index]).removeClass('sorting_desc').addClass('sorting_disabled'); - } - }); - - }, - onError: function(grid) { - // execute some code on network or other general error - }, - dataTable: { - "sDom" : "tr<'row'<'col-md-6 col-sm-12'><'col-md-6 col-sm-12'pli>>", // datatable layout - "oLanguage": oLanguage, - //"bAutoWidth": true, - "sScrollY": tableHeight, - "bScrollCollapse": true, - "sScrollX": "100%", - //"sScrollXInner": "110%", - "aLengthMenu": [ - [20, 50, 100], - [20, 50, 100] // change per page values here - ], - "iDisplayLength": 20, // default record count per page - "bServerSide": true, // server side processing - "sAjaxSource": requestURL // ajax source - } - }, columns, xsHiddenColumns, smHiddenColumns, openRowFlag, rowCheckable); - } - - /* - * Insert a 'details' column to the table - */ - var insertDetails = function (oTable, columns, rowCheckable) { - - var $tableData = $('table#datatable_ajax'); - - $tableData.on('click', ' tbody td .row-details', function () { - var nTr = $(this).parents('tr')[0]; - if (oTable.fnIsOpen(nTr)) { - /* This row is already open - close it */ - $(this).addClass("row-details-close").removeClass("row-details-open"); - oTable.fnClose(nTr); - } else { - /* Open this row */ - $(this).addClass("row-details-open").removeClass("row-details-close"); - oTable.fnOpen(nTr, fnFormatDetails(oTable, nTr, columns, rowCheckable), 'details'); - //填充单元格颜色 - var divColor = $("div.cellBackgroundColor", $("table#" + detailTableId)); - $(divColor).parent().css("background", $(divColor).css("background-color")); - } - }); - } - - return { - - //main function to initiate the module - init: function (requestStr, lang, configPathPrefix, callbackList) { - - var oLanguage; - var columns; - var xsHiddenColumns; - var smHiddenColumns; - var columnsAll; - - var openRowFlag = false; - var rowOverFlag = false; - var rowCheckable = false; - var requestURL=""; - var requestAllData; - var requestParameters; - - var tableHeight; - var tableWidth; - - var columnsTooLong; - var sTotalRecordsSource=""; - - //取得当前配置及国际化信息 - $.ajax({ - dataType: 'json', - url: configPathPrefix + '-' + lang + '.json', - async: false, - contentType:'application/json; charset=utf-8', - "success": function(data) { - oLanguage = data.language; - columns = data.columns; - xsHiddenColumns = data.xsHiddenColumns; - smHiddenColumns = data.smHiddenColumns; - columnsAll = data.columnsAll; - openRowFlag = data.openRowFlag == 'true'? true: false; - rowOverFlag = data.rowOverFlag == 'true'? true: false; - rowCheckable = data.rowCheckable == 'true'? true: false; - requestURL = data.requestURL; - //requestAllData = data.requestAllData; - requestParameters = data.requestParameters; - tableHeight = data.tableHeight; - tableWidth = data.tableWidth; - columnsTooLong = data.columnsTooLong; - sTotalRecordsSource = data.sTotalRecordsSource; - }, - "error" : function (xhr, info) { - alert('Communication Error! Error reason:' + info); - } - }); - - $('#dataTableWrapperDiv').css('width', tableWidth); - - if(!isContained(xsHiddenColumns, smHiddenColumns) || !isContained(columns, xsHiddenColumns) || !isContained(columnsAll, columns)){ - alert('Columns claim error: (smHiddenColumns <= xsHiddenColumns <= columns <= columnsAll) Please!'); - return; - } - - generateColumns(columns, openRowFlag, rowCheckable); - //initPickers(); - handleRecords(requestStr, columns, xsHiddenColumns, smHiddenColumns, oLanguage, openRowFlag, rowCheckable, rowOverFlag, requestURL, requestParameters, tableHeight, columnsTooLong, sTotalRecordsSource, callbackList); - //获得初始化完毕的DataTable对象 - var oTable = grid.getDataTable(); - if(openRowFlag){ - insertDetails(oTable, columnsAll, rowCheckable); - } - sortHandling(oTable, openRowFlag, rowCheckable); - //oTable.fnAdjustColumnSizing(true); - return oTable; - } - - }; - -}(); - -var DataTableSmartClientApp = function(datas, configPathPrefix, callbackList){ - - var requestStr = ""; - if(datas){ - requestStr = JSON.stringify(datas); - } - - var lang = getLanguage(); - //lang = 'en-US'; - /*for(var i=0;i0){ - callbackList[i](lang); - break; - } - }*/ - if(callbackList && callbackList[0]){ - callbackList[0](lang); - } - //requestStr = ""; - var oTable = TableAjaxICT.init(requestStr, lang, configPathPrefix, callbackList); - - //重新调节列宽以适应window resize - $(window).one('resize', function () { - //oTable.DataTable.models.oSettings.bAjaxDataGet = false; - oTable.fnAdjustColumnSizing(false); - } ); -} diff --git a/portal-common/src/main/webapp/common/thirdparty/data-tables/app-test-i18n-datatable-zh-CN.json b/portal-common/src/main/webapp/common/thirdparty/data-tables/app-test-i18n-datatable-zh-CN.json deleted file mode 100644 index 90996845..00000000 --- a/portal-common/src/main/webapp/common/thirdparty/data-tables/app-test-i18n-datatable-zh-CN.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "language":{ - "sProcessing": "  å¤„理中...", - "sLengthMenu": "|每页 _MENU_ 条结果", - "sZeroRecords": "没有匹配结果", - "sInfo": "|总共找到 _TOTAL_ 条结果", - "sInfoEmpty": "共 0 项", - "sGroupActions": "_TOTAL_ 条结果被选择: ", - "sAjaxRequestGeneralError": "不能完成请求,请检查您的网络连接情况。", - "sEmptyTable": "表中数据为空", - "oPaginate": { - "sPrevious": "前页", - "sNext": "下页", - "sPage": "第", - "sPageOf": "页,总页数:" - } - }, - "columnsAll":[ - {"columnId":"0", "columnTitle":"开始时间"}, - {"columnId":"1", "columnTitle":"结束时间"}, - {"columnId":"2", "columnTitle":"查询粒度"}, - {"columnId":"3", "columnTitle":"网元位置"}, - {"columnId":"4", "columnTitle":"CPU使用率(百分比)"} - ], - "columns":[ - {"columnId":"0", "columnTitle":"开始时间"}, - {"columnId":"1", "columnTitle":"结束时间"}, - {"columnId":"2", "columnTitle":"查询粒度"}, - {"columnId":"3", "columnTitle":"网元位置"}, - {"columnId":"4", "columnTitle":"CPU使用率(百分比)"} - ], - "xsHiddenColumns":[ - ], - "smHiddenColumns":[ - ], - "columnsTooLong":["3"], - - "rowCheckable": "true", - "openRowFlag" : "false", - "rowOverFlag" : "false", - - "tableHeight":"250px", - "tableWidth":"100%", - - "requestType": "POST", - "requestURL": "/web/rest/web-pm/queryPmPageData", - "requestParameters":[ - ], - "sTotalRecordsSource":"response.extData", - "sTotalRecords":"108" -} \ No newline at end of file diff --git a/portal-common/src/main/webapp/common/thirdparty/data-tables/app-universal-i18n-datatable-en-US.json b/portal-common/src/main/webapp/common/thirdparty/data-tables/app-universal-i18n-datatable-en-US.json deleted file mode 100644 index 666f1cda..00000000 --- a/portal-common/src/main/webapp/common/thirdparty/data-tables/app-universal-i18n-datatable-en-US.json +++ /dev/null @@ -1,89 +0,0 @@ -{ - "language":{ - "sProcessing": "  Loading...", - "sLengthMenu": "|View _MENU_ records", - "sInfo": "|Found total _TOTAL_ records", - "sInfoEmpty": "No records found to show", - "sGroupActions": "_TOTAL_ records selected: ", - "sAjaxRequestGeneralError": "Could not complete request. Please check your internet connection", - "sEmptyTable": "No data available in table", - "sZeroRecords": "No matching records found", - "oPaginate": { - "sPrevious": "Prev", - "sNext": "Next", - "sPage": "Page", - "sPageOf": "of" - } - }, - "columnsAll":[ - {"columnId":"alarmId", "columnTitle":"Alarm Id"}, - {"columnId":"resDisplayName", "columnTitle":"NE"}, - {"columnId":"moc", "columnTitle":"NE Type"}, - {"columnId":"alarmRaisedTime", "columnTitle":"Raised Time"}, - {"columnId":"perceivedSeverity", "columnTitle":"Severity"}, - {"columnId":"probableCauseDesc", "columnTitle":"Alarm Code"}, - {"columnId":"additionalText", "columnTitle":"Appendix Text"}, - {"columnId":"neip", "columnTitle":"NE IP"}, - {"columnId":"componentname", "columnTitle":"Location"}, - {"columnId":"alarmType", "columnTitle":"Alarm Type"}, - {"columnId":"specificproblem", "columnTitle":"Specific Problem"}, - {"columnId":"ackState", "columnTitle":"Acknowledged State"}, - {"columnId":"ackTime", "columnTitle":"Acknowledge Time"}, - {"columnId":"ackUserId", "columnTitle":"Acknowledge User"}, - {"columnId":"ackSystemId", "columnTitle":"Acknowledge System"}, - {"columnId":"alarmChangedTime", "columnTitle":"Changed Time"}, - {"columnId":"position1", "columnTitle":"Resource ID"} - ], - "columns":[ - {"columnId":"alarmId", "columnTitle":"Alarm Id"}, - {"columnId":"resDisplayName", "columnTitle":"NE"}, - {"columnId":"moc", "columnTitle":"NE Type"}, - {"columnId":"alarmRaisedTime", "columnTitle":"Raised Time"}, - {"columnId":"perceivedSeverity", "columnTitle":"Severity"}, - {"columnId":"probableCauseDesc", "columnTitle":"Alarm Code"}, - {"columnId":"additionalText", "columnTitle":"Appendix Text"}, - {"columnId":"neip", "columnTitle":"NE IP"}, - {"columnId":"componentname", "columnTitle":"Location"}, - {"columnId":"alarmType", "columnTitle":"Alarm Type"}, - {"columnId":"specificproblem", "columnTitle":"Specific Problem"}, - {"columnId":"ackState", "columnTitle":"Acknowledged State"}, - {"columnId":"ackTime", "columnTitle":"Acknowledge Time"}, - {"columnId":"ackUserId", "columnTitle":"Acknowledge User"}, - {"columnId":"ackSystemId", "columnTitle":"Acknowledge System"}, - {"columnId":"alarmChangedTime", "columnTitle":"Changed Time"}, - {"columnId":"position1", "columnTitle":"Resource ID"} - ], - "xsHiddenColumns":[ - {"columnId":"additionalText", "columnTitle":"Appendix Text"}, - {"columnId":"neip", "columnTitle":"NE IP"}, - {"columnId":"componentname", "columnTitle":"Location"}, - {"columnId":"position1", "columnTitle":"Resource ID"} - ], - "smHiddenColumns":[ - {"columnId":"position1", "columnTitle":"Resource ID"} - ], - "columnsTooLong":["additionalText", "moc", "componentname", "specificproblem", "position1"], - "sTotalRecordsSource":"response.extData", - - "rowCheckable": "true", - "openRowFlag" : "true", - "rowOverFlag" : "true", - - "tableHeight":"520px", - "tableWidth":"100%", - - "requestURL": "/web/rest/web/fm/curalarms", - "requestParameters":[ - {"paraId":"pageSize", "paraValue":"20"}, - {"paraId":"pageNo", "paraValue":"1"}, - {"paraId":"_operationType", "paraValue":"fetch"}, - {"paraId":"_startRow", "paraValue":"0"}, - {"paraId":"_endRow", "paraValue":"75"}, - {"paraId":"_textMatchStyle", "paraValue":"exact"}, - {"paraId":"_componentId", "paraValue":"isc_com_zte_ums_aos_fm_view_eventview_table_AlarmTable_0"}, - {"paraId":"_dataSource", "paraValue":"isc_PageRestDataSource_0"}, - {"paraId":"isc_metaDataPrefix", "paraValue":"_"}, - {"paraId":"isc_dataFormat", "paraValue":"json"} - ], - "sTotalRecordsSource":"response.extData" -} \ No newline at end of file diff --git a/portal-common/src/main/webapp/common/thirdparty/data-tables/app-universal-i18n-datatable-zh-CN.json b/portal-common/src/main/webapp/common/thirdparty/data-tables/app-universal-i18n-datatable-zh-CN.json deleted file mode 100644 index 155ed357..00000000 --- a/portal-common/src/main/webapp/common/thirdparty/data-tables/app-universal-i18n-datatable-zh-CN.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "language":{ - "sProcessing": "  å¤„理中...", - "sLengthMenu": "|每页 _MENU_ 条结果", - "sZeroRecords": "没有匹配结果", - "sInfo": "|总共找到 _TOTAL_ 条结果", - "sInfoEmpty": "共 0 项", - "sGroupActions": "_TOTAL_ 条结果被选择: ", - "sAjaxRequestGeneralError": "不能完成请求,请检查您的网络连接情况。", - "sEmptyTable": "表中数据为空", - "oPaginate": { - "sPrevious": "前页", - "sNext": "下页", - "sPage": "第", - "sPageOf": "页,总页数:" - } - }, - "columnsAll":[ - {"columnId":"alarmId", "columnTitle":"告警编号"}, - {"columnId":"resDisplayName", "columnTitle":"网元"}, - {"columnId":"moc", "columnTitle":"网元类型"}, - {"columnId":"alarmRaisedTime", "columnTitle":"发生时间"}, - {"columnId":"perceivedSeverity", "columnTitle":"级别"}, - {"columnId":"probableCauseDesc", "columnTitle":"告警码"}, - {"columnId":"additionalText", "columnTitle":"附加文本"}, - {"columnId":"neip", "columnTitle":"网元IP"}, - {"columnId":"componentname", "columnTitle":"网元内定位"}, - {"columnId":"alarmType", "columnTitle":"告警类型"}, - {"columnId":"specificproblem", "columnTitle":"告警原因"}, - {"columnId":"ackState", "columnTitle":"确认状态"}, - {"columnId":"ackTime", "columnTitle":"确认时间"}, - {"columnId":"ackUserId", "columnTitle":"确认用户"}, - {"columnId":"ackSystemId", "columnTitle":"确认系统"}, - {"columnId":"alarmChangedTime", "columnTitle":"修改时间"}, - {"columnId":"position1", "columnTitle":"资源ID"} - ], - "columns":[ - {"columnId":"alarmId", "columnTitle":"告警编号"}, - {"columnId":"resDisplayName", "columnTitle":"网元"}, - {"columnId":"moc", "columnTitle":"网元类型"}, - {"columnId":"alarmRaisedTime", "columnTitle":"发生时间"}, - {"columnId":"perceivedSeverity", "columnTitle":"级别"}, - {"columnId":"probableCauseDesc", "columnTitle":"告警码"}, - {"columnId":"additionalText", "columnTitle":"附加文本"}, - {"columnId":"neip", "columnTitle":"网元IP"}, - {"columnId":"componentname", "columnTitle":"网元内定位"}, - {"columnId":"alarmType", "columnTitle":"告警类型"}, - {"columnId":"specificproblem", "columnTitle":"告警原因"}, - {"columnId":"ackState", "columnTitle":"确认状态"}, - {"columnId":"ackTime", "columnTitle":"确认时间"}, - {"columnId":"ackUserId", "columnTitle":"确认用户"}, - {"columnId":"ackSystemId", "columnTitle":"确认系统"}, - {"columnId":"alarmChangedTime", "columnTitle":"修改时间"}, - {"columnId":"position1", "columnTitle":"资源ID"} - ], - "xsHiddenColumns":[ - {"columnId":"additionalText", "columnTitle":"附加文本"}, - {"columnId":"neip", "columnTitle":"网元IP"}, - {"columnId":"componentname", "columnTitle":"网元内定位"}, - {"columnId":"position1", "columnTitle":"资源ID"} - ], - "smHiddenColumns":[ - {"columnId":"position1", "columnTitle":"资源ID"} - ], - "columnsTooLong":["additionalText", "moc", "componentname", "specificproblem", "position1"], - - "rowCheckable": "true", - "openRowFlag" : "true", - "rowOverFlag" : "true", - - "tableHeight":"520px", - "tableWidth":"100%", - - "requestURL": "/web/rest/web/fm/curalarms", - "requestAllData": {"rule":{"ruleId":-1,"name":"当前告警","creator":"admin","createTime":1397439767310,"modifier":"","modifyTime":0,"description":"","state":true,"ruleType":1,"ruleSort":1,"owner":"","attrs":"","ruleData":""}}, - "requestParameters":[ - {"paraId":"pageSize", "paraValue":"20"}, - {"paraId":"pageNo", "paraValue":"1"}, - {"paraId":"_operationType", "paraValue":"fetch"}, - {"paraId":"_startRow", "paraValue":"0"}, - {"paraId":"_endRow", "paraValue":"75"}, - {"paraId":"_textMatchStyle", "paraValue":"exact"}, - {"paraId":"_componentId", "paraValue":"isc_com_zte_ums_aos_fm_view_eventview_table_AlarmTable_0"}, - {"paraId":"_dataSource", "paraValue":"isc_PageRestDataSource_0"}, - {"paraId":"isc_metaDataPrefix", "paraValue":"_"}, - {"paraId":"isc_dataFormat", "paraValue":"json"} - ], - "sTotalRecordsSource":"response.extData" -} - diff --git a/portal-common/src/main/webapp/common/thirdparty/data-tables/dataTable.html b/portal-common/src/main/webapp/common/thirdparty/data-tables/dataTable.html deleted file mode 100644 index d2491d3e..00000000 --- a/portal-common/src/main/webapp/common/thirdparty/data-tables/dataTable.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - - - - - - -
    -
    -
    -
    -
    - - - - - - -
    - - - - - -
    -
    -
    - -
    -
    - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/thirdparty/data-tables/dataTables.bootstrap.css b/portal-common/src/main/webapp/common/thirdparty/data-tables/dataTables.bootstrap.css deleted file mode 100644 index a5a05475..00000000 --- a/portal-common/src/main/webapp/common/thirdparty/data-tables/dataTables.bootstrap.css +++ /dev/null @@ -1,331 +0,0 @@ -div.dataTables_length label { - font-weight: normal; - text-align: left; - white-space: nowrap; -} - -div.dataTables_length select { - height: 28px; - display: inline-block; -} - -div.dataTables_filter { - text-align: right; -} - -div.dataTables_filter label { - font-weight: normal; - white-space: nowrap; - text-align: left; -} - -div.dataTables_filter input { - margin-left: 0.5em; - display: inline-block; -} - -div.dataTables_info { - padding-top: 8px; - white-space: nowrap; -} - -div.dataTables_paginate { - margin: 0; - white-space: nowrap; - text-align: right; -} - -div.dataTables_paginate ul.pagination { - margin: 2px 0; - white-space: nowrap; -} - -@media screen and (max-width: 767px) { - div.dataTables_length, - div.dataTables_filter, - div.dataTables_info, - div.dataTables_paginate { - text-align: center; - } -} - - -table.dataTable td, -table.dataTable th { - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; -} - - -table.dataTable { - clear: both; - margin-top: 6px !important; - margin-bottom: 6px !important; - max-width: none !important; -} - -table.dataTable thead .sorting, -table.dataTable thead .sorting_asc, -table.dataTable thead .sorting_desc, -table.dataTable thead .sorting_asc_disabled, -table.dataTable thead .sorting_desc_disabled { - cursor: pointer; -} - -table.dataTable thead .sorting { background: url('../images/sort_both.png') no-repeat center right; } -table.dataTable thead .sorting_asc { background: url('../images/sort_asc.png') no-repeat center right; } -table.dataTable thead .sorting_desc { background: url('../images/sort_desc.png') no-repeat center right; } - -table.dataTable thead .sorting_asc_disabled { background: url('../images/sort_asc_disabled.png') no-repeat center right; } -table.dataTable thead .sorting_desc_disabled { background: url('../images/sort_desc_disabled.png') no-repeat center right; } - -table.dataTable thead > tr > th { - padding-left: 18px; - padding-right: 18px; -} - -table.dataTable th:active { - outline: none; -} - -/* Scrolling */ -div.dataTables_scrollHead table { - margin-bottom: 0 !important; - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; -} - -div.dataTables_scrollHead table thead tr:last-child th:first-child, -div.dataTables_scrollHead table thead tr:last-child td:first-child { - border-bottom-left-radius: 0 !important; - border-bottom-right-radius: 0 !important; -} - -div.dataTables_scrollBody table { - border-top: none; - margin-top: 0 !important; - margin-bottom: 0 !important; -} - -div.dataTables_scrollBody tbody tr:first-child th, -div.dataTables_scrollBody tbody tr:first-child td { - border-top: none; -} - -div.dataTables_scrollFoot table { - margin-top: 0 !important; - border-top: none; -} - -/* Frustratingly the border-collapse:collapse used by Bootstrap makes the column - width calculations when using scrolling impossible to align columns. We have - to use separate - */ -table.table-bordered.dataTable { - border-collapse: separate !important; -} -table.table-bordered thead th, -table.table-bordered thead td { - border-left-width: 0; - border-top-width: 0; -} -table.table-bordered tbody th, -table.table-bordered tbody td { - border-left-width: 0; - border-bottom-width: 0; -} -table.table-bordered th:last-child, -table.table-bordered td:last-child { - border-right-width: 0; -} -div.dataTables_scrollHead table.table-bordered { - border-bottom-width: 0; -} - - - - -/* - * TableTools styles - */ -.table.dataTable tbody tr.active td, -.table.dataTable tbody tr.active th { - background-color: #08C; - color: white; -} - -.table.dataTable tbody tr.active:hover td, -.table.dataTable tbody tr.active:hover th { - background-color: #0075b0 !important; -} - -.table.dataTable tbody tr.active th > a, -.table.dataTable tbody tr.active td > a { - color: white; -} - -.table-striped.dataTable tbody tr.active:nth-child(odd) td, -.table-striped.dataTable tbody tr.active:nth-child(odd) th { - background-color: #017ebc; -} - -table.DTTT_selectable tbody tr { - cursor: pointer; -} - -div.DTTT .btn:hover { - text-decoration: none !important; -} - -ul.DTTT_dropdown.dropdown-menu { - z-index: 2003; -} - -ul.DTTT_dropdown.dropdown-menu a { - color: #333 !important; /* needed only when demo_page.css is included */ -} - -ul.DTTT_dropdown.dropdown-menu li { - position: relative; -} - -ul.DTTT_dropdown.dropdown-menu li:hover a { - background-color: #0088cc; - color: white !important; -} - -div.DTTT_collection_background { - z-index: 2002; -} - -/* TableTools information display */ -div.DTTT_print_info { - position: fixed; - top: 50%; - left: 50%; - width: 400px; - height: 150px; - margin-left: -200px; - margin-top: -75px; - text-align: center; - color: #333; - padding: 10px 30px; - opacity: 0.95; - - background-color: white; - border: 1px solid rgba(0, 0, 0, 0.2); - border-radius: 6px; - - -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.5); - box-shadow: 0 3px 7px rgba(0, 0, 0, 0.5); -} - -div.DTTT_print_info h6 { - font-weight: normal; - font-size: 28px; - line-height: 28px; - margin: 1em; -} - -div.DTTT_print_info p { - font-size: 14px; - line-height: 20px; -} - -div.dataTables_processing { - position: absolute; - top: 50%; - left: 50%; - width: 100%; - height: 60px; - margin-left: -50%; - margin-top: -25px; - padding-top: 20px; - padding-bottom: 20px; - text-align: center; - font-size: 1.2em; - background-color: white; - background: -webkit-gradient(linear, left top, right top, color-stop(0%, rgba(255,255,255,0)), color-stop(25%, rgba(255,255,255,0.9)), color-stop(75%, rgba(255,255,255,0.9)), color-stop(100%, rgba(255,255,255,0))); - background: -webkit-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%); - background: -moz-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%); - background: -ms-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%); - background: -o-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%); - background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%); -} - - - -/* - * FixedColumns styles - */ -div.DTFC_LeftHeadWrapper table, -div.DTFC_LeftFootWrapper table, -div.DTFC_RightHeadWrapper table, -div.DTFC_RightFootWrapper table, -table.DTFC_Cloned tr.even { - background-color: white; - margin-bottom: 0; -} - -div.DTFC_RightHeadWrapper table , -div.DTFC_LeftHeadWrapper table { - border-bottom: none !important; - margin-bottom: 0 !important; - border-top-right-radius: 0 !important; - border-bottom-left-radius: 0 !important; - border-bottom-right-radius: 0 !important; -} - -div.DTFC_RightHeadWrapper table thead tr:last-child th:first-child, -div.DTFC_RightHeadWrapper table thead tr:last-child td:first-child, -div.DTFC_LeftHeadWrapper table thead tr:last-child th:first-child, -div.DTFC_LeftHeadWrapper table thead tr:last-child td:first-child { - border-bottom-left-radius: 0 !important; - border-bottom-right-radius: 0 !important; -} - -div.DTFC_RightBodyWrapper table, -div.DTFC_LeftBodyWrapper table { - border-top: none; - margin: 0 !important; -} - -div.DTFC_RightBodyWrapper tbody tr:first-child th, -div.DTFC_RightBodyWrapper tbody tr:first-child td, -div.DTFC_LeftBodyWrapper tbody tr:first-child th, -div.DTFC_LeftBodyWrapper tbody tr:first-child td { - border-top: none; -} - -div.DTFC_RightFootWrapper table, -div.DTFC_LeftFootWrapper table { - border-top: none; - margin-top: 0 !important; -} - - -/* - * FixedHeader styles - */ -div.FixedHeader_Cloned table { - margin: 0 !important -} - - - - -div.dataTables_length, div.dataTables_info { - display: inline; -} - -div.dataTables_paginate { - display: inline; - float: right !important; -} - -input.pagination-panel-input { - width: 50px; -} - - diff --git a/portal-common/src/main/webapp/common/thirdparty/data-tables/images/loading-spinner-grey.gif b/portal-common/src/main/webapp/common/thirdparty/data-tables/images/loading-spinner-grey.gif deleted file mode 100644 index 6d614d3da4cc1fe2e7d7327e07319dfc61b1c98d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5203 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 haOA^1D_`VC7fU=jcT diff --git a/portal-common/src/main/webapp/common/thirdparty/data-tables/images/sort_both.png b/portal-common/src/main/webapp/common/thirdparty/data-tables/images/sort_both.png deleted file mode 100644 index 18670406bc01ab2721781822dd6478917745ff54..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1136 zcmaJ>O=#0l98WD1Hz^GK+C=e@fhgE~b#2$Ux^~T`1v5)mw1NlIe}zC z+ge9alrMQeN|SYi`>tC{zIG}!O_oO7k;UC8kBf>8sknx65F`zy2d1H-4fel=trX>@ z^-LCL<%6P%3`TJ=Ov$hao1$9VN|vJbLJV@SM>nJN{L>dS(6uOiBq(#Tm4F5Pz>p2Q zhq^NAP_G)%=(c^JwImV&17Zb~j6Ty5OHq1RS0sD)n5Dro1ouYi-$7;N6i6T&f*`~B zRW8JV5YO;|=5RQ?2M8R`v7Es2f}anI0YT(Au=3Evo2})=wA8uci&#;*fUzaAY_V8m ziU9`MJuDxIL|hF)@DqgJ88op{@|#XmML~j&YU>u(kqKNyC5HxZlqQk>PQkENWld+L zOr&6JNwHX-;oOueKw17j)G$`j4o<^A@%~fT$qZVMO+yC_*eYpUzR7iEi3uAj7}*(w z`YKgS6%a;F0a+l?9R#wX>ZWTi<7HV)nhsV>6(*%9O%xbi*F?TK!383rh#(|*p6}q} zd?z25;!?0(hzA2Li3(Rj>VN@FT;Xbexbdo7cN7eZc$T28pMYAYjSR4yvZz;&C0tc+ zg{xJMrKKvDCBd+6WB+P&<%mp=yImbyVyq56G|9BvWUP^I>ms=lb4e+lDSgg;Us`JO zKB6{wH+j~F#-A4FY3K3qm~Z6m@V6}oQ%8?p-E$dw`#0C$PJfmCV8)v}3>Ydha%`fZ zJk~G*M^A3LGk$Td;R`icF67R~`sBOHv)Hlqlc%$jy~9_oZJcNyWxkbb_O9u#|7hLF z-<-NMLzh3S0YA@8gd1Pt(Df|3@16Y-n=aSvsF@AkI`ioeFg>&H3bXU&vBnE6gIChkL+(Ey+0iB4Z$Eze7t_CX>Hq)$ diff --git a/portal-common/src/main/webapp/common/thirdparty/data-tables/images/sort_desc.png b/portal-common/src/main/webapp/common/thirdparty/data-tables/images/sort_desc.png deleted file mode 100644 index def071ed5afd264a036f6d9e75856366fd6ad153..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1127 zcmbVMOK8+U7*1U&zKRu5sR)h{1;yRWWV^4}ShvZpU2*HWU2!iy(qy)cZ89;Lb+`3m zMbruv!GjkO!3qksP*5)lD)k}=Dp*ht-n@8G5m8XoN!zU+ih_Y;=AZe$?|)|~*Ri8v z(dtDU$2DZy)jV65`|pB!_H}d7Cv0h=sUqzpC0fy3%q0!dg+a#Bx^W(BM*oq=xP{{a zC9_bZ#q2IgCss)FbwX9kVQ7wPX{|b%-is;d!ri7V^Y8E8=YeU+{JuyQW*r6hnC$~D z?i}bS=mWia!r)uCftISo2rNuBP__DOPpZoN6tBeg{;|M=DHYl)^V3chvpJv;7lTL$ z26Y&PAc{gL+#HL=wg3?#C_qs_Vi3iouqZ(YW*(kdbB&UeSJN}Lm?ZN(lsb|iR4SEF zB^)Adw}29fgwG+0L8cM(`faLJgSNN6#-L(PcTI+l@K3y+Xf(g*^61+0|J+O6zN2mb?UNGh6GU@A{1+eF%d@N2(^XdVmhis(y25|iAr;gV=io5OsYy0 zB}Gv|2&GUGrBPB%s*yG^841Ug8a88lRI_zlvuiTDGuXsmv6A9qjS{y&NMEf3ay^6+ zuZK85>5PD^rkl1e`{kLAR>iJ)6dP%mSYRr@k~xQcDE=$%X{_--ITM&Og5Ml}G)wJ> zb)dhUZG9%p4iC23#JFrUCcmwHz{cugMoku~ue-kg{Mj0~%`FeCcz9jAdg}QET-kSG za`+2B_+lRTaeAVz>E`F1pN7h>B=BbGqcz13d%ywZR&4OjkNNrF_U}#EcXDGa@V52B z>JnIW7#s%CHi diff --git a/portal-common/src/main/webapp/common/thirdparty/data-tables/jquery.dataTables-1.9.4.js b/portal-common/src/main/webapp/common/thirdparty/data-tables/jquery.dataTables-1.9.4.js deleted file mode 100644 index f5b29c84..00000000 --- a/portal-common/src/main/webapp/common/thirdparty/data-tables/jquery.dataTables-1.9.4.js +++ /dev/null @@ -1,12101 +0,0 @@ -/** - * @summary DataTables - * @description Paginate, search and sort HTML tables - * @version 1.9.4 - * @file jquery.dataTables.js - * @author Allan Jardine (www.sprymedia.co.uk) - * @contact www.sprymedia.co.uk/contact - * - * @copyright Copyright 2008-2012 Allan Jardine, all rights reserved. - * - * This source file is free software, under either the GPL v2 license or a - * BSD style license, available at: - * http://datatables.net/license_gpl2 - * http://datatables.net/license_bsd - * - * This source file is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details. - * - * For details please refer to: http://www.datatables.net - */ - -/*jslint evil: true, undef: true, browser: true */ -/*globals $, jQuery,define,_fnExternApiFunc,_fnInitialise,_fnInitComplete,_fnLanguageCompat,_fnAddColumn,_fnColumnOptions,_fnAddData,_fnCreateTr,_fnGatherData,_fnBuildHead,_fnDrawHead,_fnDraw,_fnReDraw,_fnAjaxUpdate,_fnAjaxParameters,_fnAjaxUpdateDraw,_fnServerParams,_fnAddOptionsHtml,_fnFeatureHtmlTable,_fnScrollDraw,_fnAdjustColumnSizing,_fnFeatureHtmlFilter,_fnFilterComplete,_fnFilterCustom,_fnFilterColumn,_fnFilter,_fnBuildSearchArray,_fnBuildSearchRow,_fnFilterCreateSearch,_fnDataToSearch,_fnSort,_fnSortAttachListener,_fnSortingClasses,_fnFeatureHtmlPaginate,_fnPageChange,_fnFeatureHtmlInfo,_fnUpdateInfo,_fnFeatureHtmlLength,_fnFeatureHtmlProcessing,_fnProcessingDisplay,_fnVisibleToColumnIndex,_fnColumnIndexToVisible,_fnNodeToDataIndex,_fnVisbleColumns,_fnCalculateEnd,_fnConvertToWidth,_fnCalculateColumnWidths,_fnScrollingWidthAdjust,_fnGetWidestNode,_fnGetMaxLenString,_fnStringToCss,_fnDetectType,_fnSettingsFromNode,_fnGetDataMaster,_fnGetTrNodes,_fnGetTdNodes,_fnEscapeRegex,_fnDeleteIndex,_fnReOrderIndex,_fnColumnOrdering,_fnLog,_fnClearTable,_fnSaveState,_fnLoadState,_fnCreateCookie,_fnReadCookie,_fnDetectHeader,_fnGetUniqueThs,_fnScrollBarWidth,_fnApplyToChildren,_fnMap,_fnGetRowData,_fnGetCellData,_fnSetCellData,_fnGetObjectDataFn,_fnSetObjectDataFn,_fnApplyColumnDefs,_fnBindAction,_fnCallbackReg,_fnCallbackFire,_fnJsonString,_fnRender,_fnNodeToColumnIndex,_fnInfoMacros,_fnBrowserDetect,_fnGetColumns*/ - -(/** @lends */function( window, document, undefined ) { - -(function( factory ) { - "use strict"; - - // Define as an AMD module if possible - if ( typeof define === 'function' && define.amd ) - { - define( ['jquery'], factory ); - } - /* Define using browser globals otherwise - * Prevent multiple instantiations if the script is loaded twice - */ - else if ( jQuery && !jQuery.fn.dataTable ) - { - factory( jQuery ); - } -} -(/** @lends */function( $ ) { - "use strict"; - /** - * DataTables is a plug-in for the jQuery Javascript library. It is a - * highly flexible tool, based upon the foundations of progressive - * enhancement, which will add advanced interaction controls to any - * HTML table. For a full list of features please refer to - * DataTables.net. - * - * Note that the DataTable object is not a global variable but is - * aliased to jQuery.fn.DataTable and jQuery.fn.dataTable through which - * it may be accessed. - * - * @class - * @param {object} [oInit={}] Configuration object for DataTables. Options - * are defined by {@link DataTable.defaults} - * @requires jQuery 1.3+ - * - * @example - * // Basic initialisation - * $(document).ready( function { - * $('#example').dataTable(); - * } ); - * - * @example - * // Initialisation with configuration options - in this case, disable - * // pagination and sorting. - * $(document).ready( function { - * $('#example').dataTable( { - * "bPaginate": false, - * "bSort": false - * } ); - * } ); - */ - var DataTable = function( oInit ) - { - - - /** - * Add a column to the list used for the table with default values - * @param {object} oSettings dataTables settings object - * @param {node} nTh The th element for this column - * @memberof DataTable#oApi - */ - function _fnAddColumn( oSettings, nTh ) - { - var oDefaults = DataTable.defaults.columns; - var iCol = oSettings.aoColumns.length; - var oCol = $.extend( {}, DataTable.models.oColumn, oDefaults, { - "sSortingClass": oSettings.oClasses.sSortable, - "sSortingClassJUI": oSettings.oClasses.sSortJUI, - "nTh": nTh ? nTh : document.createElement('th'), - "sTitle": oDefaults.sTitle ? oDefaults.sTitle : nTh ? nTh.innerHTML : '', - "aDataSort": oDefaults.aDataSort ? oDefaults.aDataSort : [iCol], - "mData": oDefaults.mData ? oDefaults.oDefaults : iCol - } ); - oSettings.aoColumns.push( oCol ); - - /* Add a column specific filter */ - if ( oSettings.aoPreSearchCols[ iCol ] === undefined || oSettings.aoPreSearchCols[ iCol ] === null ) - { - oSettings.aoPreSearchCols[ iCol ] = $.extend( {}, DataTable.models.oSearch ); - } - else - { - var oPre = oSettings.aoPreSearchCols[ iCol ]; - - /* Don't require that the user must specify bRegex, bSmart or bCaseInsensitive */ - if ( oPre.bRegex === undefined ) - { - oPre.bRegex = true; - } - - if ( oPre.bSmart === undefined ) - { - oPre.bSmart = true; - } - - if ( oPre.bCaseInsensitive === undefined ) - { - oPre.bCaseInsensitive = true; - } - } - - /* Use the column options function to initialise classes etc */ - _fnColumnOptions( oSettings, iCol, null ); - } - - - /** - * Apply options for a column - * @param {object} oSettings dataTables settings object - * @param {int} iCol column index to consider - * @param {object} oOptions object with sType, bVisible and bSearchable etc - * @memberof DataTable#oApi - */ - function _fnColumnOptions( oSettings, iCol, oOptions ) - { - var oCol = oSettings.aoColumns[ iCol ]; - - /* User specified column options */ - if ( oOptions !== undefined && oOptions !== null ) - { - /* Backwards compatibility for mDataProp */ - if ( oOptions.mDataProp && !oOptions.mData ) - { - oOptions.mData = oOptions.mDataProp; - } - - if ( oOptions.sType !== undefined ) - { - oCol.sType = oOptions.sType; - oCol._bAutoType = false; - } - - $.extend( oCol, oOptions ); - _fnMap( oCol, oOptions, "sWidth", "sWidthOrig" ); - - /* iDataSort to be applied (backwards compatibility), but aDataSort will take - * priority if defined - */ - if ( oOptions.iDataSort !== undefined ) - { - oCol.aDataSort = [ oOptions.iDataSort ]; - } - _fnMap( oCol, oOptions, "aDataSort" ); - } - - /* Cache the data get and set functions for speed */ - var mRender = oCol.mRender ? _fnGetObjectDataFn( oCol.mRender ) : null; - var mData = _fnGetObjectDataFn( oCol.mData ); - - oCol.fnGetData = function (oData, sSpecific) { - var innerData = mData( oData, sSpecific ); - - if ( oCol.mRender && (sSpecific && sSpecific !== '') ) - { - return mRender( innerData, sSpecific, oData ); - } - return innerData; - }; - oCol.fnSetData = _fnSetObjectDataFn( oCol.mData ); - - /* Feature sorting overrides column specific when off */ - if ( !oSettings.oFeatures.bSort ) - { - oCol.bSortable = false; - } - - /* Check that the class assignment is correct for sorting */ - if ( !oCol.bSortable || - ($.inArray('asc', oCol.asSorting) == -1 && $.inArray('desc', oCol.asSorting) == -1) ) - { - oCol.sSortingClass = oSettings.oClasses.sSortableNone; - oCol.sSortingClassJUI = ""; - } - else if ( $.inArray('asc', oCol.asSorting) == -1 && $.inArray('desc', oCol.asSorting) == -1 ) - { - oCol.sSortingClass = oSettings.oClasses.sSortable; - oCol.sSortingClassJUI = oSettings.oClasses.sSortJUI; - } - else if ( $.inArray('asc', oCol.asSorting) != -1 && $.inArray('desc', oCol.asSorting) == -1 ) - { - oCol.sSortingClass = oSettings.oClasses.sSortableAsc; - oCol.sSortingClassJUI = oSettings.oClasses.sSortJUIAscAllowed; - } - else if ( $.inArray('asc', oCol.asSorting) == -1 && $.inArray('desc', oCol.asSorting) != -1 ) - { - oCol.sSortingClass = oSettings.oClasses.sSortableDesc; - oCol.sSortingClassJUI = oSettings.oClasses.sSortJUIDescAllowed; - } - } - - - /** - * Adjust the table column widths for new data. Note: you would probably want to - * do a redraw after calling this function! - * @param {object} oSettings dataTables settings object - * @memberof DataTable#oApi - */ - function _fnAdjustColumnSizing ( oSettings ) - { - /* Not interested in doing column width calculation if auto-width is disabled */ - if ( oSettings.oFeatures.bAutoWidth === false ) - { - return false; - } - - _fnCalculateColumnWidths( oSettings ); - for ( var i=0 , iLen=oSettings.aoColumns.length ; i
    for filtering data. - *
      - *
    • - * Function input parameters: - *
        - *
      • {*} Data from the column cell to be prepared for filtering
      • - *
      - *
    • - *
    • - * Function return: - *
        - *
      • {string|null} Formatted string that will be used for the filtering.
      • - *
      - * - *
    - * - * Note that as of v1.9, it is typically preferable to use mData to prepare data for - * the different uses that DataTables can put the data to. Specifically mData when - * used as a function will give you a 'type' (sorting, filtering etc) that you can use to - * prepare the data as required for the different types. As such, this method is deprecated. - * @type object - * @default {} - * @deprecated - * - * @example - * $.fn.dataTableExt.ofnSearch['title-numeric'] = function ( sData ) { - * return sData.replace(/\n/g," ").replace( /<.*?>/g, "" ); - * } - */ - "ofnSearch": {}, - - - /** - * Container for all private functions in DataTables so they can be exposed externally - * @type object - * @default {} - */ - "oApi": {}, - - - /** - * Storage for the various classes that DataTables uses - * @type object - * @default {} - */ - "oStdClasses": {}, - - - /** - * Storage for the various classes that DataTables uses - jQuery UI suitable - * @type object - * @default {} - */ - "oJUIClasses": {}, - - - /** - * Pagination plug-in methods - The style and controls of the pagination can significantly - * impact on how the end user interacts with the data in your table, and DataTables allows - * the addition of pagination controls by extending this object, which can then be enabled - * through the sPaginationType initialisation parameter. Each pagination type that - * is added is an object (the property name of which is what sPaginationType refers - * to) that has two properties, both methods that are used by DataTables to update the - * control's state. - *
      - *
    • - * fnInit - Initialisation of the paging controls. Called only during initialisation - * of the table. It is expected that this function will add the required DOM elements - * to the page for the paging controls to work. The element pointer - * 'oSettings.aanFeatures.p' array is provided by DataTables to contain the paging - * controls (note that this is a 2D array to allow for multiple instances of each - * DataTables DOM element). It is suggested that you add the controls to this element - * as children - *
        - *
      • - * Function input parameters: - *
          - *
        • {object} DataTables settings object: see {@link DataTable.models.oSettings}.
        • - *
        • {node} Container into which the pagination controls must be inserted
        • - *
        • {function} Draw callback function - whenever the controls cause a page - * change, this method must be called to redraw the table.
        • - *
        - *
      • - *
      • - * Function return: - *
          - *
        • No return required
        • - *
        - * - *
      - * - *
    • - * fnInit - This function is called whenever the paging status of the table changes and is - * typically used to update classes and/or text of the paging controls to reflex the new - * status. - *
        - *
      • - * Function input parameters: - *
          - *
        • {object} DataTables settings object: see {@link DataTable.models.oSettings}.
        • - *
        • {function} Draw callback function - in case you need to redraw the table again - * or attach new event listeners
        • - *
        - *
      • - *
      • - * Function return: - *
          - *
        • No return required
        • - *
        - * - *
      - * - *
    - * @type object - * @default {} - * - * @example - * $.fn.dataTableExt.oPagination.four_button = { - * "fnInit": function ( oSettings, nPaging, fnCallbackDraw ) { - * nFirst = document.createElement( 'span' ); - * nPrevious = document.createElement( 'span' ); - * nNext = document.createElement( 'span' ); - * nLast = document.createElement( 'span' ); - * - * nFirst.appendChild( document.createTextNode( oSettings.oLanguage.oPaginate.sFirst ) ); - * nPrevious.appendChild( document.createTextNode( oSettings.oLanguage.oPaginate.sPrevious ) ); - * nNext.appendChild( document.createTextNode( oSettings.oLanguage.oPaginate.sNext ) ); - * nLast.appendChild( document.createTextNode( oSettings.oLanguage.oPaginate.sLast ) ); - * - * nFirst.className = "paginate_button first"; - * nPrevious.className = "paginate_button previous"; - * nNext.className="paginate_button next"; - * nLast.className = "paginate_button last"; - * - * nPaging.appendChild( nFirst ); - * nPaging.appendChild( nPrevious ); - * nPaging.appendChild( nNext ); - * nPaging.appendChild( nLast ); - * - * $(nFirst).click( function () { - * oSettings.oApi._fnPageChange( oSettings, "first" ); - * fnCallbackDraw( oSettings ); - * } ); - * - * $(nPrevious).click( function() { - * oSettings.oApi._fnPageChange( oSettings, "previous" ); - * fnCallbackDraw( oSettings ); - * } ); - * - * $(nNext).click( function() { - * oSettings.oApi._fnPageChange( oSettings, "next" ); - * fnCallbackDraw( oSettings ); - * } ); - * - * $(nLast).click( function() { - * oSettings.oApi._fnPageChange( oSettings, "last" ); - * fnCallbackDraw( oSettings ); - * } ); - * - * $(nFirst).bind( 'selectstart', function () { return false; } ); - * $(nPrevious).bind( 'selectstart', function () { return false; } ); - * $(nNext).bind( 'selectstart', function () { return false; } ); - * $(nLast).bind( 'selectstart', function () { return false; } ); - * }, - * - * "fnUpdate": function ( oSettings, fnCallbackDraw ) { - * if ( !oSettings.aanFeatures.p ) { - * return; - * } - * - * // Loop over each instance of the pager - * var an = oSettings.aanFeatures.p; - * for ( var i=0, iLen=an.length ; i - *
  • - * Function input parameters: - *
      - *
    • {*} Data to compare to the second parameter
    • - *
    • {*} Data to compare to the first parameter
    • - *
    - *
  • - *
  • - * Function return: - *
      - *
    • {int} Sorting match: <0 if first parameter should be sorted lower than - * the second parameter, ===0 if the two parameters are equal and >0 if - * the first parameter should be sorted height than the second parameter.
    • - *
    - * - * - * @type object - * @default {} - * - * @example - * // Case-sensitive string sorting, with no pre-formatting method - * $.extend( $.fn.dataTableExt.oSort, { - * "string-case-asc": function(x,y) { - * return ((x < y) ? -1 : ((x > y) ? 1 : 0)); - * }, - * "string-case-desc": function(x,y) { - * return ((x < y) ? 1 : ((x > y) ? -1 : 0)); - * } - * } ); - * - * @example - * // Case-insensitive string sorting, with pre-formatting - * $.extend( $.fn.dataTableExt.oSort, { - * "string-pre": function(x) { - * return x.toLowerCase(); - * }, - * "string-asc": function(x,y) { - * return ((x < y) ? -1 : ((x > y) ? 1 : 0)); - * }, - * "string-desc": function(x,y) { - * return ((x < y) ? 1 : ((x > y) ? -1 : 0)); - * } - * } ); - */ - "oSort": {}, - - - /** - * Version string for plug-ins to check compatibility. Allowed format is - * a.b.c.d.e where: a:int, b:int, c:int, d:string(dev|beta), e:int. d and - * e are optional - * @type string - * @default Version number - */ - "sVersion": DataTable.version, - - - /** - * How should DataTables report an error. Can take the value 'alert' or 'throw' - * @type string - * @default alert - */ - "sErrMode": "alert", - - - /** - * Store information for DataTables to access globally about other instances - * @namespace - * @private - */ - "_oExternConfig": { - /* int:iNextUnique - next unique number for an instance */ - "iNextUnique": 0 - } - }; - - - - - /** - * Template object for the way in which DataTables holds information about - * search information for the global filter and individual column filters. - * @namespace - */ - DataTable.models.oSearch = { - /** - * Flag to indicate if the filtering should be case insensitive or not - * @type boolean - * @default true - */ - "bCaseInsensitive": true, - - /** - * Applied search term - * @type string - * @default Empty string - */ - "sSearch": "", - - /** - * Flag to indicate if the search term should be interpreted as a - * regular expression (true) or not (false) and therefore and special - * regex characters escaped. - * @type boolean - * @default false - */ - "bRegex": false, - - /** - * Flag to indicate if DataTables is to use its smart filtering or not. - * @type boolean - * @default true - */ - "bSmart": true - }; - - - - - /** - * Template object for the way in which DataTables holds information about - * each individual row. This is the object format used for the settings - * aoData array. - * @namespace - */ - DataTable.models.oRow = { - /** - * TR element for the row - * @type node - * @default null - */ - "nTr": null, - - /** - * Data object from the original data source for the row. This is either - * an array if using the traditional form of DataTables, or an object if - * using mData options. The exact type will depend on the passed in - * data from the data source, or will be an array if using DOM a data - * source. - * @type array|object - * @default [] - */ - "_aData": [], - - /** - * Sorting data cache - this array is ostensibly the same length as the - * number of columns (although each index is generated only as it is - * needed), and holds the data that is used for sorting each column in the - * row. We do this cache generation at the start of the sort in order that - * the formatting of the sort data need be done only once for each cell - * per sort. This array should not be read from or written to by anything - * other than the master sorting methods. - * @type array - * @default [] - * @private - */ - "_aSortData": [], - - /** - * Array of TD elements that are cached for hidden rows, so they can be - * reinserted into the table if a column is made visible again (or to act - * as a store if a column is made hidden). Only hidden columns have a - * reference in the array. For non-hidden columns the value is either - * undefined or null. - * @type array nodes - * @default [] - * @private - */ - "_anHidden": [], - - /** - * Cache of the class name that DataTables has applied to the row, so we - * can quickly look at this variable rather than needing to do a DOM check - * on className for the nTr property. - * @type string - * @default Empty string - * @private - */ - "_sRowStripe": "" - }; - - - - /** - * Template object for the column information object in DataTables. This object - * is held in the settings aoColumns array and contains all the information that - * DataTables needs about each individual column. - * - * Note that this object is related to {@link DataTable.defaults.columns} - * but this one is the internal data store for DataTables's cache of columns. - * It should NOT be manipulated outside of DataTables. Any configuration should - * be done through the initialisation options. - * @namespace - */ - DataTable.models.oColumn = { - /** - * A list of the columns that sorting should occur on when this column - * is sorted. That this property is an array allows multi-column sorting - * to be defined for a column (for example first name / last name columns - * would benefit from this). The values are integers pointing to the - * columns to be sorted on (typically it will be a single integer pointing - * at itself, but that doesn't need to be the case). - * @type array - */ - "aDataSort": null, - - /** - * Define the sorting directions that are applied to the column, in sequence - * as the column is repeatedly sorted upon - i.e. the first value is used - * as the sorting direction when the column if first sorted (clicked on). - * Sort it again (click again) and it will move on to the next index. - * Repeat until loop. - * @type array - */ - "asSorting": null, - - /** - * Flag to indicate if the column is searchable, and thus should be included - * in the filtering or not. - * @type boolean - */ - "bSearchable": null, - - /** - * Flag to indicate if the column is sortable or not. - * @type boolean - */ - "bSortable": null, - - /** - * Deprecated When using fnRender, you have two options for what - * to do with the data, and this property serves as the switch. Firstly, you - * can have the sorting and filtering use the rendered value (true - default), - * or you can have the sorting and filtering us the original value (false). - * - * Please note that this option has now been deprecated and will be removed - * in the next version of DataTables. Please use mRender / mData rather than - * fnRender. - * @type boolean - * @deprecated - */ - "bUseRendered": null, - - /** - * Flag to indicate if the column is currently visible in the table or not - * @type boolean - */ - "bVisible": null, - - /** - * Flag to indicate to the type detection method if the automatic type - * detection should be used, or if a column type (sType) has been specified - * @type boolean - * @default true - * @private - */ - "_bAutoType": true, - - /** - * Developer definable function that is called whenever a cell is created (Ajax source, - * etc) or processed for input (DOM source). This can be used as a compliment to mRender - * allowing you to modify the DOM element (add background colour for example) when the - * element is available. - * @type function - * @param {element} nTd The TD node that has been created - * @param {*} sData The Data for the cell - * @param {array|object} oData The data for the whole row - * @param {int} iRow The row index for the aoData data store - * @default null - */ - "fnCreatedCell": null, - - /** - * Function to get data from a cell in a column. You should never - * access data directly through _aData internally in DataTables - always use - * the method attached to this property. It allows mData to function as - * required. This function is automatically assigned by the column - * initialisation method - * @type function - * @param {array|object} oData The data array/object for the array - * (i.e. aoData[]._aData) - * @param {string} sSpecific The specific data type you want to get - - * 'display', 'type' 'filter' 'sort' - * @returns {*} The data for the cell from the given row's data - * @default null - */ - "fnGetData": null, - - /** - * Deprecated Custom display function that will be called for the - * display of each cell in this column. - * - * Please note that this option has now been deprecated and will be removed - * in the next version of DataTables. Please use mRender / mData rather than - * fnRender. - * @type function - * @param {object} o Object with the following parameters: - * @param {int} o.iDataRow The row in aoData - * @param {int} o.iDataColumn The column in question - * @param {array} o.aData The data for the row in question - * @param {object} o.oSettings The settings object for this DataTables instance - * @returns {string} The string you which to use in the display - * @default null - * @deprecated - */ - "fnRender": null, - - /** - * Function to set data for a cell in the column. You should never - * set the data directly to _aData internally in DataTables - always use - * this method. It allows mData to function as required. This function - * is automatically assigned by the column initialisation method - * @type function - * @param {array|object} oData The data array/object for the array - * (i.e. aoData[]._aData) - * @param {*} sValue Value to set - * @default null - */ - "fnSetData": null, - - /** - * Property to read the value for the cells in the column from the data - * source array / object. If null, then the default content is used, if a - * function is given then the return from the function is used. - * @type function|int|string|null - * @default null - */ - "mData": null, - - /** - * Partner property to mData which is used (only when defined) to get - * the data - i.e. it is basically the same as mData, but without the - * 'set' option, and also the data fed to it is the result from mData. - * This is the rendering method to match the data method of mData. - * @type function|int|string|null - * @default null - */ - "mRender": null, - - /** - * Unique header TH/TD element for this column - this is what the sorting - * listener is attached to (if sorting is enabled.) - * @type node - * @default null - */ - "nTh": null, - - /** - * Unique footer TH/TD element for this column (if there is one). Not used - * in DataTables as such, but can be used for plug-ins to reference the - * footer for each column. - * @type node - * @default null - */ - "nTf": null, - - /** - * The class to apply to all TD elements in the table's TBODY for the column - * @type string - * @default null - */ - "sClass": null, - - /** - * When DataTables calculates the column widths to assign to each column, - * it finds the longest string in each column and then constructs a - * temporary table and reads the widths from that. The problem with this - * is that "mmm" is much wider then "iiii", but the latter is a longer - * string - thus the calculation can go wrong (doing it properly and putting - * it into an DOM object and measuring that is horribly(!) slow). Thus as - * a "work around" we provide this option. It will append its value to the - * text that is found to be the longest string for the column - i.e. padding. - * @type string - */ - "sContentPadding": null, - - /** - * Allows a default value to be given for a column's data, and will be used - * whenever a null data source is encountered (this can be because mData - * is set to null, or because the data source itself is null). - * @type string - * @default null - */ - "sDefaultContent": null, - - /** - * Name for the column, allowing reference to the column by name as well as - * by index (needs a lookup to work by name). - * @type string - */ - "sName": null, - - /** - * Custom sorting data type - defines which of the available plug-ins in - * afnSortData the custom sorting will use - if any is defined. - * @type string - * @default std - */ - "sSortDataType": 'std', - - /** - * Class to be applied to the header element when sorting on this column - * @type string - * @default null - */ - "sSortingClass": null, - - /** - * Class to be applied to the header element when sorting on this column - - * when jQuery UI theming is used. - * @type string - * @default null - */ - "sSortingClassJUI": null, - - /** - * Title of the column - what is seen in the TH element (nTh). - * @type string - */ - "sTitle": null, - - /** - * Column sorting and filtering type - * @type string - * @default null - */ - "sType": null, - - /** - * Width of the column - * @type string - * @default null - */ - "sWidth": null, - - /** - * Width of the column when it was first "encountered" - * @type string - * @default null - */ - "sWidthOrig": null - }; - - - - /** - * Initialisation options that can be given to DataTables at initialisation - * time. - * @namespace - */ - DataTable.defaults = { - /** - * An array of data to use for the table, passed in at initialisation which - * will be used in preference to any data which is already in the DOM. This is - * particularly useful for constructing tables purely in Javascript, for - * example with a custom Ajax call. - * @type array - * @default null - * @dtopt Option - * - * @example - * // Using a 2D array data source - * $(document).ready( function () { - * $('#example').dataTable( { - * "aaData": [ - * ['Trident', 'Internet Explorer 4.0', 'Win 95+', 4, 'X'], - * ['Trident', 'Internet Explorer 5.0', 'Win 95+', 5, 'C'], - * ], - * "aoColumns": [ - * { "sTitle": "Engine" }, - * { "sTitle": "Browser" }, - * { "sTitle": "Platform" }, - * { "sTitle": "Version" }, - * { "sTitle": "Grade" } - * ] - * } ); - * } ); - * - * @example - * // Using an array of objects as a data source (mData) - * $(document).ready( function () { - * $('#example').dataTable( { - * "aaData": [ - * { - * "engine": "Trident", - * "browser": "Internet Explorer 4.0", - * "platform": "Win 95+", - * "version": 4, - * "grade": "X" - * }, - * { - * "engine": "Trident", - * "browser": "Internet Explorer 5.0", - * "platform": "Win 95+", - * "version": 5, - * "grade": "C" - * } - * ], - * "aoColumns": [ - * { "sTitle": "Engine", "mData": "engine" }, - * { "sTitle": "Browser", "mData": "browser" }, - * { "sTitle": "Platform", "mData": "platform" }, - * { "sTitle": "Version", "mData": "version" }, - * { "sTitle": "Grade", "mData": "grade" } - * ] - * } ); - * } ); - */ - "aaData": null, - - - /** - * If sorting is enabled, then DataTables will perform a first pass sort on - * initialisation. You can define which column(s) the sort is performed upon, - * and the sorting direction, with this variable. The aaSorting array should - * contain an array for each column to be sorted initially containing the - * column's index and a direction string ('asc' or 'desc'). - * @type array - * @default [[0,'asc']] - * @dtopt Option - * - * @example - * // Sort by 3rd column first, and then 4th column - * $(document).ready( function() { - * $('#example').dataTable( { - * "aaSorting": [[2,'asc'], [3,'desc']] - * } ); - * } ); - * - * // No initial sorting - * $(document).ready( function() { - * $('#example').dataTable( { - * "aaSorting": [] - * } ); - * } ); - */ - "aaSorting": [[0,'asc']], - - - /** - * This parameter is basically identical to the aaSorting parameter, but - * cannot be overridden by user interaction with the table. What this means - * is that you could have a column (visible or hidden) which the sorting will - * always be forced on first - any sorting after that (from the user) will - * then be performed as required. This can be useful for grouping rows - * together. - * @type array - * @default null - * @dtopt Option - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "aaSortingFixed": [[0,'asc']] - * } ); - * } ) - */ - "aaSortingFixed": null, - - - /** - * This parameter allows you to readily specify the entries in the length drop - * down menu that DataTables shows when pagination is enabled. It can be - * either a 1D array of options which will be used for both the displayed - * option and the value, or a 2D array which will use the array in the first - * position as the value, and the array in the second position as the - * displayed options (useful for language strings such as 'All'). - * @type array - * @default [ 10, 25, 50, 100 ] - * @dtopt Option - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "aLengthMenu": [[10, 25, 50, -1], [10, 25, 50, "All"]] - * } ); - * } ); - * - * @example - * // Setting the default display length as well as length menu - * // This is likely to be wanted if you remove the '10' option which - * // is the iDisplayLength default. - * $(document).ready( function() { - * $('#example').dataTable( { - * "iDisplayLength": 25, - * "aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]] - * } ); - * } ); - */ - "aLengthMenu": [ 10, 25, 50, 100 ], - - - /** - * The aoColumns option in the initialisation parameter allows you to define - * details about the way individual columns behave. For a full list of - * column options that can be set, please see - * {@link DataTable.defaults.columns}. Note that if you use aoColumns to - * define your columns, you must have an entry in the array for every single - * column that you have in your table (these can be null if you don't which - * to specify any options). - * @member - */ - "aoColumns": null, - - /** - * Very similar to aoColumns, aoColumnDefs allows you to target a specific - * column, multiple columns, or all columns, using the aTargets property of - * each object in the array. This allows great flexibility when creating - * tables, as the aoColumnDefs arrays can be of any length, targeting the - * columns you specifically want. aoColumnDefs may use any of the column - * options available: {@link DataTable.defaults.columns}, but it _must_ - * have aTargets defined in each object in the array. Values in the aTargets - * array may be: - *
      - *
    • a string - class name will be matched on the TH for the column
    • - *
    • 0 or a positive integer - column index counting from the left
    • - *
    • a negative integer - column index counting from the right
    • - *
    • the string "_all" - all columns (i.e. assign a default)
    • - *
    - * @member - */ - "aoColumnDefs": null, - - - /** - * Basically the same as oSearch, this parameter defines the individual column - * filtering state at initialisation time. The array must be of the same size - * as the number of columns, and each element be an object with the parameters - * "sSearch" and "bEscapeRegex" (the latter is optional). 'null' is also - * accepted and the default will be used. - * @type array - * @default [] - * @dtopt Option - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoSearchCols": [ - * null, - * { "sSearch": "My filter" }, - * null, - * { "sSearch": "^[0-9]", "bEscapeRegex": false } - * ] - * } ); - * } ) - */ - "aoSearchCols": [], - - - /** - * An array of CSS classes that should be applied to displayed rows. This - * array may be of any length, and DataTables will apply each class - * sequentially, looping when required. - * @type array - * @default null Will take the values determined by the oClasses.sStripe* - * options - * @dtopt Option - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "asStripeClasses": [ 'strip1', 'strip2', 'strip3' ] - * } ); - * } ) - */ - "asStripeClasses": null, - - - /** - * Enable or disable automatic column width calculation. This can be disabled - * as an optimisation (it takes some time to calculate the widths) if the - * tables widths are passed in using aoColumns. - * @type boolean - * @default true - * @dtopt Features - * - * @example - * $(document).ready( function () { - * $('#example').dataTable( { - * "bAutoWidth": false - * } ); - * } ); - */ - "bAutoWidth": true, - - - /** - * Deferred rendering can provide DataTables with a huge speed boost when you - * are using an Ajax or JS data source for the table. This option, when set to - * true, will cause DataTables to defer the creation of the table elements for - * each row until they are needed for a draw - saving a significant amount of - * time. - * @type boolean - * @default false - * @dtopt Features - * - * @example - * $(document).ready( function() { - * var oTable = $('#example').dataTable( { - * "sAjaxSource": "sources/arrays.txt", - * "bDeferRender": true - * } ); - * } ); - */ - "bDeferRender": false, - - - /** - * Replace a DataTable which matches the given selector and replace it with - * one which has the properties of the new initialisation object passed. If no - * table matches the selector, then the new DataTable will be constructed as - * per normal. - * @type boolean - * @default false - * @dtopt Options - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "sScrollY": "200px", - * "bPaginate": false - * } ); - * - * // Some time later.... - * $('#example').dataTable( { - * "bFilter": false, - * "bDestroy": true - * } ); - * } ); - */ - "bDestroy": false, - - - /** - * Enable or disable filtering of data. Filtering in DataTables is "smart" in - * that it allows the end user to input multiple words (space separated) and - * will match a row containing those words, even if not in the order that was - * specified (this allow matching across multiple columns). Note that if you - * wish to use filtering in DataTables this must remain 'true' - to remove the - * default filtering input box and retain filtering abilities, please use - * {@link DataTable.defaults.sDom}. - * @type boolean - * @default true - * @dtopt Features - * - * @example - * $(document).ready( function () { - * $('#example').dataTable( { - * "bFilter": false - * } ); - * } ); - */ - "bFilter": true, - - - /** - * Enable or disable the table information display. This shows information - * about the data that is currently visible on the page, including information - * about filtered data if that action is being performed. - * @type boolean - * @default true - * @dtopt Features - * - * @example - * $(document).ready( function () { - * $('#example').dataTable( { - * "bInfo": false - * } ); - * } ); - */ - "bInfo": true, - - - /** - * Enable jQuery UI ThemeRoller support (required as ThemeRoller requires some - * slightly different and additional mark-up from what DataTables has - * traditionally used). - * @type boolean - * @default false - * @dtopt Features - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "bJQueryUI": true - * } ); - * } ); - */ - "bJQueryUI": false, - - - /** - * Allows the end user to select the size of a formatted page from a select - * menu (sizes are 10, 25, 50 and 100). Requires pagination (bPaginate). - * @type boolean - * @default true - * @dtopt Features - * - * @example - * $(document).ready( function () { - * $('#example').dataTable( { - * "bLengthChange": false - * } ); - * } ); - */ - "bLengthChange": true, - - - /** - * Enable or disable pagination. - * @type boolean - * @default true - * @dtopt Features - * - * @example - * $(document).ready( function () { - * $('#example').dataTable( { - * "bPaginate": false - * } ); - * } ); - */ - "bPaginate": true, - - - /** - * Enable or disable the display of a 'processing' indicator when the table is - * being processed (e.g. a sort). This is particularly useful for tables with - * large amounts of data where it can take a noticeable amount of time to sort - * the entries. - * @type boolean - * @default false - * @dtopt Features - * - * @example - * $(document).ready( function () { - * $('#example').dataTable( { - * "bProcessing": true - * } ); - * } ); - */ - "bProcessing": false, - - - /** - * Retrieve the DataTables object for the given selector. Note that if the - * table has already been initialised, this parameter will cause DataTables - * to simply return the object that has already been set up - it will not take - * account of any changes you might have made to the initialisation object - * passed to DataTables (setting this parameter to true is an acknowledgement - * that you understand this). bDestroy can be used to reinitialise a table if - * you need. - * @type boolean - * @default false - * @dtopt Options - * - * @example - * $(document).ready( function() { - * initTable(); - * tableActions(); - * } ); - * - * function initTable () - * { - * return $('#example').dataTable( { - * "sScrollY": "200px", - * "bPaginate": false, - * "bRetrieve": true - * } ); - * } - * - * function tableActions () - * { - * var oTable = initTable(); - * // perform API operations with oTable - * } - */ - "bRetrieve": false, - - - /** - * Indicate if DataTables should be allowed to set the padding / margin - * etc for the scrolling header elements or not. Typically you will want - * this. - * @type boolean - * @default true - * @dtopt Options - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "bScrollAutoCss": false, - * "sScrollY": "200px" - * } ); - * } ); - */ - "bScrollAutoCss": true, - - - /** - * When vertical (y) scrolling is enabled, DataTables will force the height of - * the table's viewport to the given height at all times (useful for layout). - * However, this can look odd when filtering data down to a small data set, - * and the footer is left "floating" further down. This parameter (when - * enabled) will cause DataTables to collapse the table's viewport down when - * the result set will fit within the given Y height. - * @type boolean - * @default false - * @dtopt Options - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "sScrollY": "200", - * "bScrollCollapse": true - * } ); - * } ); - */ - "bScrollCollapse": false, - - - /** - * Enable infinite scrolling for DataTables (to be used in combination with - * sScrollY). Infinite scrolling means that DataTables will continually load - * data as a user scrolls through a table, which is very useful for large - * dataset. This cannot be used with pagination, which is automatically - * disabled. Note - the Scroller extra for DataTables is recommended in - * in preference to this option. - * @type boolean - * @default false - * @dtopt Features - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "bScrollInfinite": true, - * "bScrollCollapse": true, - * "sScrollY": "200px" - * } ); - * } ); - */ - "bScrollInfinite": false, - - - /** - * Configure DataTables to use server-side processing. Note that the - * sAjaxSource parameter must also be given in order to give DataTables a - * source to obtain the required data for each draw. - * @type boolean - * @default false - * @dtopt Features - * @dtopt Server-side - * - * @example - * $(document).ready( function () { - * $('#example').dataTable( { - * "bServerSide": true, - * "sAjaxSource": "xhr.php" - * } ); - * } ); - */ - "bServerSide": false, - - - /** - * Enable or disable sorting of columns. Sorting of individual columns can be - * disabled by the "bSortable" option for each column. - * @type boolean - * @default true - * @dtopt Features - * - * @example - * $(document).ready( function () { - * $('#example').dataTable( { - * "bSort": false - * } ); - * } ); - */ - "bSort": true, - - - /** - * Allows control over whether DataTables should use the top (true) unique - * cell that is found for a single column, or the bottom (false - default). - * This is useful when using complex headers. - * @type boolean - * @default false - * @dtopt Options - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "bSortCellsTop": true - * } ); - * } ); - */ - "bSortCellsTop": false, - - - /** - * Enable or disable the addition of the classes 'sorting_1', 'sorting_2' and - * 'sorting_3' to the columns which are currently being sorted on. This is - * presented as a feature switch as it can increase processing time (while - * classes are removed and added) so for large data sets you might want to - * turn this off. - * @type boolean - * @default true - * @dtopt Features - * - * @example - * $(document).ready( function () { - * $('#example').dataTable( { - * "bSortClasses": false - * } ); - * } ); - */ - "bSortClasses": true, - - - /** - * Enable or disable state saving. When enabled a cookie will be used to save - * table display information such as pagination information, display length, - * filtering and sorting. As such when the end user reloads the page the - * display display will match what thy had previously set up. - * @type boolean - * @default false - * @dtopt Features - * - * @example - * $(document).ready( function () { - * $('#example').dataTable( { - * "bStateSave": true - * } ); - * } ); - */ - "bStateSave": false, - - - /** - * Customise the cookie and / or the parameters being stored when using - * DataTables with state saving enabled. This function is called whenever - * the cookie is modified, and it expects a fully formed cookie string to be - * returned. Note that the data object passed in is a Javascript object which - * must be converted to a string (JSON.stringify for example). - * @type function - * @param {string} sName Name of the cookie defined by DataTables - * @param {object} oData Data to be stored in the cookie - * @param {string} sExpires Cookie expires string - * @param {string} sPath Path of the cookie to set - * @returns {string} Cookie formatted string (which should be encoded by - * using encodeURIComponent()) - * @dtopt Callbacks - * - * @example - * $(document).ready( function () { - * $('#example').dataTable( { - * "fnCookieCallback": function (sName, oData, sExpires, sPath) { - * // Customise oData or sName or whatever else here - * return sName + "="+JSON.stringify(oData)+"; expires=" + sExpires +"; path=" + sPath; - * } - * } ); - * } ); - */ - "fnCookieCallback": null, - - - /** - * This function is called when a TR element is created (and all TD child - * elements have been inserted), or registered if using a DOM source, allowing - * manipulation of the TR element (adding classes etc). - * @type function - * @param {node} nRow "TR" element for the current row - * @param {array} aData Raw data array for this row - * @param {int} iDataIndex The index of this row in aoData - * @dtopt Callbacks - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "fnCreatedRow": function( nRow, aData, iDataIndex ) { - * // Bold the grade for all 'A' grade browsers - * if ( aData[4] == "A" ) - * { - * $('td:eq(4)', nRow).html( 'A' ); - * } - * } - * } ); - * } ); - */ - "fnCreatedRow": null, - - - /** - * This function is called on every 'draw' event, and allows you to - * dynamically modify any aspect you want about the created DOM. - * @type function - * @param {object} oSettings DataTables settings object - * @dtopt Callbacks - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "fnDrawCallback": function( oSettings ) { - * alert( 'DataTables has redrawn the table' ); - * } - * } ); - * } ); - */ - "fnDrawCallback": null, - - - /** - * Identical to fnHeaderCallback() but for the table footer this function - * allows you to modify the table footer on every 'draw' even. - * @type function - * @param {node} nFoot "TR" element for the footer - * @param {array} aData Full table data (as derived from the original HTML) - * @param {int} iStart Index for the current display starting point in the - * display array - * @param {int} iEnd Index for the current display ending point in the - * display array - * @param {array int} aiDisplay Index array to translate the visual position - * to the full data array - * @dtopt Callbacks - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "fnFooterCallback": function( nFoot, aData, iStart, iEnd, aiDisplay ) { - * nFoot.getElementsByTagName('th')[0].innerHTML = "Starting index is "+iStart; - * } - * } ); - * } ) - */ - "fnFooterCallback": null, - - - /** - * When rendering large numbers in the information element for the table - * (i.e. "Showing 1 to 10 of 57 entries") DataTables will render large numbers - * to have a comma separator for the 'thousands' units (e.g. 1 million is - * rendered as "1,000,000") to help readability for the end user. This - * function will override the default method DataTables uses. - * @type function - * @member - * @param {int} iIn number to be formatted - * @returns {string} formatted string for DataTables to show the number - * @dtopt Callbacks - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "fnFormatNumber": function ( iIn ) { - * if ( iIn < 1000 ) { - * return iIn; - * } else { - * var - * s=(iIn+""), - * a=s.split(""), out="", - * iLen=s.length; - * - * for ( var i=0 ; i<iLen ; i++ ) { - * if ( i%3 === 0 && i !== 0 ) { - * out = "'"+out; - * } - * out = a[iLen-i-1]+out; - * } - * } - * return out; - * }; - * } ); - * } ); - */ - "fnFormatNumber": function ( iIn ) { - if ( iIn < 1000 ) - { - // A small optimisation for what is likely to be the majority of use cases - return iIn; - } - - var s=(iIn+""), a=s.split(""), out="", iLen=s.length; - - for ( var i=0 ; iA
    ' ); - * } - * } - * } ); - * } ); - */ - "fnRowCallback": null, - - - /** - * This parameter allows you to override the default function which obtains - * the data from the server ($.getJSON) so something more suitable for your - * application. For example you could use POST data, or pull information from - * a Gears or AIR database. - * @type function - * @member - * @param {string} sSource HTTP source to obtain the data from (sAjaxSource) - * @param {array} aoData A key/value pair object containing the data to send - * to the server - * @param {function} fnCallback to be called on completion of the data get - * process that will draw the data on the page. - * @param {object} oSettings DataTables settings object - * @dtopt Callbacks - * @dtopt Server-side - * - * @example - * // POST data to server - * $(document).ready( function() { - * $('#example').dataTable( { - * "bProcessing": true, - * "bServerSide": true, - * "sAjaxSource": "xhr.php", - * "fnServerData": function ( sSource, aoData, fnCallback, oSettings ) { - * oSettings.jqXHR = $.ajax( { - * "dataType": 'json', - * "type": "POST", - * "url": sSource, - * "data": aoData, - * "success": fnCallback - * } ); - * } - * } ); - * } ); - */ - "fnServerData": function ( sUrl, aoData, fnCallback, oSettings ) { - oSettings.jqXHR = $.ajax( { - "url": sUrl, - "data": aoData, - "success": function (json) { - if ( json.sError ) { - oSettings.oApi._fnLog( oSettings, 0, json.sError ); - } - - $(oSettings.oInstance).trigger('xhr', [oSettings, json]); - fnCallback( json ); - }, - "dataType": "json", - "cache": false, - "type": oSettings.sServerMethod, - "error": function (xhr, error, thrown) { - if ( error == "parsererror" ) { - oSettings.oApi._fnLog( oSettings, 0, "DataTables warning: JSON data from "+ - "server could not be parsed. This is caused by a JSON formatting error." ); - } - } - } ); - }, - - - /** - * It is often useful to send extra data to the server when making an Ajax - * request - for example custom filtering information, and this callback - * function makes it trivial to send extra information to the server. The - * passed in parameter is the data set that has been constructed by - * DataTables, and you can add to this or modify it as you require. - * @type function - * @param {array} aoData Data array (array of objects which are name/value - * pairs) that has been constructed by DataTables and will be sent to the - * server. In the case of Ajax sourced data with server-side processing - * this will be an empty array, for server-side processing there will be a - * significant number of parameters! - * @returns {undefined} Ensure that you modify the aoData array passed in, - * as this is passed by reference. - * @dtopt Callbacks - * @dtopt Server-side - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "bProcessing": true, - * "bServerSide": true, - * "sAjaxSource": "scripts/server_processing.php", - * "fnServerParams": function ( aoData ) { - * aoData.push( { "name": "more_data", "value": "my_value" } ); - * } - * } ); - * } ); - */ - "fnServerParams": null, - - - /** - * Load the table state. With this function you can define from where, and how, the - * state of a table is loaded. By default DataTables will load from its state saving - * cookie, but you might wish to use local storage (HTML5) or a server-side database. - * @type function - * @member - * @param {object} oSettings DataTables settings object - * @return {object} The DataTables state object to be loaded - * @dtopt Callbacks - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "bStateSave": true, - * "fnStateLoad": function (oSettings) { - * var o; - * - * // Send an Ajax request to the server to get the data. Note that - * // this is a synchronous request. - * $.ajax( { - * "url": "/state_load", - * "async": false, - * "dataType": "json", - * "success": function (json) { - * o = json; - * } - * } ); - * - * return o; - * } - * } ); - * } ); - */ - "fnStateLoad": function ( oSettings ) { - var sData = this.oApi._fnReadCookie( oSettings.sCookiePrefix+oSettings.sInstance ); - var oData; - - try { - oData = (typeof $.parseJSON === 'function') ? - $.parseJSON(sData) : eval( '('+sData+')' ); - } catch (e) { - oData = null; - } - - return oData; - }, - - - /** - * Callback which allows modification of the saved state prior to loading that state. - * This callback is called when the table is loading state from the stored data, but - * prior to the settings object being modified by the saved state. Note that for - * plug-in authors, you should use the 'stateLoadParams' event to load parameters for - * a plug-in. - * @type function - * @param {object} oSettings DataTables settings object - * @param {object} oData The state object that is to be loaded - * @dtopt Callbacks - * - * @example - * // Remove a saved filter, so filtering is never loaded - * $(document).ready( function() { - * $('#example').dataTable( { - * "bStateSave": true, - * "fnStateLoadParams": function (oSettings, oData) { - * oData.oSearch.sSearch = ""; - * } - * } ); - * } ); - * - * @example - * // Disallow state loading by returning false - * $(document).ready( function() { - * $('#example').dataTable( { - * "bStateSave": true, - * "fnStateLoadParams": function (oSettings, oData) { - * return false; - * } - * } ); - * } ); - */ - "fnStateLoadParams": null, - - - /** - * Callback that is called when the state has been loaded from the state saving method - * and the DataTables settings object has been modified as a result of the loaded state. - * @type function - * @param {object} oSettings DataTables settings object - * @param {object} oData The state object that was loaded - * @dtopt Callbacks - * - * @example - * // Show an alert with the filtering value that was saved - * $(document).ready( function() { - * $('#example').dataTable( { - * "bStateSave": true, - * "fnStateLoaded": function (oSettings, oData) { - * alert( 'Saved filter was: '+oData.oSearch.sSearch ); - * } - * } ); - * } ); - */ - "fnStateLoaded": null, - - - /** - * Save the table state. This function allows you to define where and how the state - * information for the table is stored - by default it will use a cookie, but you - * might want to use local storage (HTML5) or a server-side database. - * @type function - * @member - * @param {object} oSettings DataTables settings object - * @param {object} oData The state object to be saved - * @dtopt Callbacks - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "bStateSave": true, - * "fnStateSave": function (oSettings, oData) { - * // Send an Ajax request to the server with the state object - * $.ajax( { - * "url": "/state_save", - * "data": oData, - * "dataType": "json", - * "method": "POST" - * "success": function () {} - * } ); - * } - * } ); - * } ); - */ - "fnStateSave": function ( oSettings, oData ) { - this.oApi._fnCreateCookie( - oSettings.sCookiePrefix+oSettings.sInstance, - this.oApi._fnJsonString(oData), - oSettings.iCookieDuration, - oSettings.sCookiePrefix, - oSettings.fnCookieCallback - ); - }, - - - /** - * Callback which allows modification of the state to be saved. Called when the table - * has changed state a new state save is required. This method allows modification of - * the state saving object prior to actually doing the save, including addition or - * other state properties or modification. Note that for plug-in authors, you should - * use the 'stateSaveParams' event to save parameters for a plug-in. - * @type function - * @param {object} oSettings DataTables settings object - * @param {object} oData The state object to be saved - * @dtopt Callbacks - * - * @example - * // Remove a saved filter, so filtering is never saved - * $(document).ready( function() { - * $('#example').dataTable( { - * "bStateSave": true, - * "fnStateSaveParams": function (oSettings, oData) { - * oData.oSearch.sSearch = ""; - * } - * } ); - * } ); - */ - "fnStateSaveParams": null, - - - /** - * Duration of the cookie which is used for storing session information. This - * value is given in seconds. - * @type int - * @default 7200 (2 hours) - * @dtopt Options - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "iCookieDuration": 60*60*24; // 1 day - * } ); - * } ) - */ - "iCookieDuration": 7200, - - - /** - * When enabled DataTables will not make a request to the server for the first - * page draw - rather it will use the data already on the page (no sorting etc - * will be applied to it), thus saving on an XHR at load time. iDeferLoading - * is used to indicate that deferred loading is required, but it is also used - * to tell DataTables how many records there are in the full table (allowing - * the information element and pagination to be displayed correctly). In the case - * where a filtering is applied to the table on initial load, this can be - * indicated by giving the parameter as an array, where the first element is - * the number of records available after filtering and the second element is the - * number of records without filtering (allowing the table information element - * to be shown correctly). - * @type int | array - * @default null - * @dtopt Options - * - * @example - * // 57 records available in the table, no filtering applied - * $(document).ready( function() { - * $('#example').dataTable( { - * "bServerSide": true, - * "sAjaxSource": "scripts/server_processing.php", - * "iDeferLoading": 57 - * } ); - * } ); - * - * @example - * // 57 records after filtering, 100 without filtering (an initial filter applied) - * $(document).ready( function() { - * $('#example').dataTable( { - * "bServerSide": true, - * "sAjaxSource": "scripts/server_processing.php", - * "iDeferLoading": [ 57, 100 ], - * "oSearch": { - * "sSearch": "my_filter" - * } - * } ); - * } ); - */ - "iDeferLoading": null, - - - /** - * Number of rows to display on a single page when using pagination. If - * feature enabled (bLengthChange) then the end user will be able to override - * this to a custom setting using a pop-up menu. - * @type int - * @default 10 - * @dtopt Options - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "iDisplayLength": 50 - * } ); - * } ) - */ - "iDisplayLength": 10, - - - /** - * Define the starting point for data display when using DataTables with - * pagination. Note that this parameter is the number of records, rather than - * the page number, so if you have 10 records per page and want to start on - * the third page, it should be "20". - * @type int - * @default 0 - * @dtopt Options - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "iDisplayStart": 20 - * } ); - * } ) - */ - "iDisplayStart": 0, - - - /** - * The scroll gap is the amount of scrolling that is left to go before - * DataTables will load the next 'page' of data automatically. You typically - * want a gap which is big enough that the scrolling will be smooth for the - * user, while not so large that it will load more data than need. - * @type int - * @default 100 - * @dtopt Options - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "bScrollInfinite": true, - * "bScrollCollapse": true, - * "sScrollY": "200px", - * "iScrollLoadGap": 50 - * } ); - * } ); - */ - "iScrollLoadGap": 100, - - - /** - * By default DataTables allows keyboard navigation of the table (sorting, paging, - * and filtering) by adding a tabindex attribute to the required elements. This - * allows you to tab through the controls and press the enter key to activate them. - * The tabindex is default 0, meaning that the tab follows the flow of the document. - * You can overrule this using this parameter if you wish. Use a value of -1 to - * disable built-in keyboard navigation. - * @type int - * @default 0 - * @dtopt Options - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "iTabIndex": 1 - * } ); - * } ); - */ - "iTabIndex": 0, - - - /** - * All strings that DataTables uses in the user interface that it creates - * are defined in this object, allowing you to modified them individually or - * completely replace them all as required. - * @namespace - */ - "oLanguage": { - /** - * Strings that are used for WAI-ARIA labels and controls only (these are not - * actually visible on the page, but will be read by screenreaders, and thus - * must be internationalised as well). - * @namespace - */ - "oAria": { - /** - * ARIA label that is added to the table headers when the column may be - * sorted ascending by activing the column (click or return when focused). - * Note that the column header is prefixed to this string. - * @type string - * @default : activate to sort column ascending - * @dtopt Language - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "oAria": { - * "sSortAscending": " - click/return to sort ascending" - * } - * } - * } ); - * } ); - */ - "sSortAscending": ": activate to sort column ascending", - - /** - * ARIA label that is added to the table headers when the column may be - * sorted descending by activing the column (click or return when focused). - * Note that the column header is prefixed to this string. - * @type string - * @default : activate to sort column ascending - * @dtopt Language - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "oAria": { - * "sSortDescending": " - click/return to sort descending" - * } - * } - * } ); - * } ); - */ - "sSortDescending": ": activate to sort column descending" - }, - - /** - * Pagination string used by DataTables for the two built-in pagination - * control types ("two_button" and "full_numbers") - * @namespace - */ - "oPaginate": { - /** - * Text to use when using the 'full_numbers' type of pagination for the - * button to take the user to the first page. - * @type string - * @default First - * @dtopt Language - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "oPaginate": { - * "sFirst": "First page" - * } - * } - * } ); - * } ); - */ - "sFirst": "First", - - - /** - * Text to use when using the 'full_numbers' type of pagination for the - * button to take the user to the last page. - * @type string - * @default Last - * @dtopt Language - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "oPaginate": { - * "sLast": "Last page" - * } - * } - * } ); - * } ); - */ - "sLast": "Last", - - - /** - * Text to use for the 'next' pagination button (to take the user to the - * next page). - * @type string - * @default Next - * @dtopt Language - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "oPaginate": { - * "sNext": "Next page" - * } - * } - * } ); - * } ); - */ - "sNext": "Next", - - - /** - * Text to use for the 'previous' pagination button (to take the user to - * the previous page). - * @type string - * @default Previous - * @dtopt Language - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "oPaginate": { - * "sPrevious": "Previous page" - * } - * } - * } ); - * } ); - */ - "sPrevious": "Previous" - }, - - /** - * This string is shown in preference to sZeroRecords when the table is - * empty of data (regardless of filtering). Note that this is an optional - * parameter - if it is not given, the value of sZeroRecords will be used - * instead (either the default or given value). - * @type string - * @default No data available in table - * @dtopt Language - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "sEmptyTable": "No data available in table" - * } - * } ); - * } ); - */ - "sEmptyTable": "No data available in table", - - - /** - * This string gives information to the end user about the information that - * is current on display on the page. The _START_, _END_ and _TOTAL_ - * variables are all dynamically replaced as the table display updates, and - * can be freely moved or removed as the language requirements change. - * @type string - * @default Showing _START_ to _END_ of _TOTAL_ entries - * @dtopt Language - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "sInfo": "Got a total of _TOTAL_ entries to show (_START_ to _END_)" - * } - * } ); - * } ); - */ - "sInfo": "Showing _START_ to _END_ of _TOTAL_ entries", - - - /** - * Display information string for when the table is empty. Typically the - * format of this string should match sInfo. - * @type string - * @default Showing 0 to 0 of 0 entries - * @dtopt Language - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "sInfoEmpty": "No entries to show" - * } - * } ); - * } ); - */ - "sInfoEmpty": "Showing 0 to 0 of 0 entries", - - - /** - * When a user filters the information in a table, this string is appended - * to the information (sInfo) to give an idea of how strong the filtering - * is. The variable _MAX_ is dynamically updated. - * @type string - * @default (filtered from _MAX_ total entries) - * @dtopt Language - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "sInfoFiltered": " - filtering from _MAX_ records" - * } - * } ); - * } ); - */ - "sInfoFiltered": "(filtered from _MAX_ total entries)", - - - /** - * If can be useful to append extra information to the info string at times, - * and this variable does exactly that. This information will be appended to - * the sInfo (sInfoEmpty and sInfoFiltered in whatever combination they are - * being used) at all times. - * @type string - * @default Empty string - * @dtopt Language - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "sInfoPostFix": "All records shown are derived from real information." - * } - * } ); - * } ); - */ - "sInfoPostFix": "", - - - /** - * DataTables has a build in number formatter (fnFormatNumber) which is used - * to format large numbers that are used in the table information. By - * default a comma is used, but this can be trivially changed to any - * character you wish with this parameter. - * @type string - * @default , - * @dtopt Language - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "sInfoThousands": "'" - * } - * } ); - * } ); - */ - "sInfoThousands": ",", - - - /** - * Detail the action that will be taken when the drop down menu for the - * pagination length option is changed. The '_MENU_' variable is replaced - * with a default select list of 10, 25, 50 and 100, and can be replaced - * with a custom select box if required. - * @type string - * @default Show _MENU_ entries - * @dtopt Language - * - * @example - * // Language change only - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "sLengthMenu": "Display _MENU_ records" - * } - * } ); - * } ); - * - * @example - * // Language and options change - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "sLengthMenu": 'Display records' - * } - * } ); - * } ); - */ - "sLengthMenu": "Show _MENU_ entries", - - - /** - * When using Ajax sourced data and during the first draw when DataTables is - * gathering the data, this message is shown in an empty row in the table to - * indicate to the end user the the data is being loaded. Note that this - * parameter is not used when loading data by server-side processing, just - * Ajax sourced data with client-side processing. - * @type string - * @default Loading... - * @dtopt Language - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "sLoadingRecords": "Please wait - loading..." - * } - * } ); - * } ); - */ - "sLoadingRecords": "Loading...", - - - /** - * Text which is displayed when the table is processing a user action - * (usually a sort command or similar). - * @type string - * @default Processing... - * @dtopt Language - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "sProcessing": "DataTables is currently busy" - * } - * } ); - * } ); - */ - "sProcessing": "Processing...", - - - /** - * Details the actions that will be taken when the user types into the - * filtering input text box. The variable "_INPUT_", if used in the string, - * is replaced with the HTML text box for the filtering input allowing - * control over where it appears in the string. If "_INPUT_" is not given - * then the input box is appended to the string automatically. - * @type string - * @default Search: - * @dtopt Language - * - * @example - * // Input text box will be appended at the end automatically - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "sSearch": "Filter records:" - * } - * } ); - * } ); - * - * @example - * // Specify where the filter should appear - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "sSearch": "Apply filter _INPUT_ to table" - * } - * } ); - * } ); - */ - "sSearch": "Search:", - - - /** - * All of the language information can be stored in a file on the - * server-side, which DataTables will look up if this parameter is passed. - * It must store the URL of the language file, which is in a JSON format, - * and the object has the same properties as the oLanguage object in the - * initialiser object (i.e. the above parameters). Please refer to one of - * the example language files to see how this works in action. - * @type string - * @default Empty string - i.e. disabled - * @dtopt Language - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "sUrl": "http://www.sprymedia.co.uk/dataTables/lang.txt" - * } - * } ); - * } ); - */ - "sUrl": "", - - - /** - * Text shown inside the table records when the is no information to be - * displayed after filtering. sEmptyTable is shown when there is simply no - * information in the table at all (regardless of filtering). - * @type string - * @default No matching records found - * @dtopt Language - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "sZeroRecords": "No records to display" - * } - * } ); - * } ); - */ - "sZeroRecords": "No matching records found" - }, - - - /** - * This parameter allows you to have define the global filtering state at - * initialisation time. As an object the "sSearch" parameter must be - * defined, but all other parameters are optional. When "bRegex" is true, - * the search string will be treated as a regular expression, when false - * (default) it will be treated as a straight string. When "bSmart" - * DataTables will use it's smart filtering methods (to word match at - * any point in the data), when false this will not be done. - * @namespace - * @extends DataTable.models.oSearch - * @dtopt Options - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "oSearch": {"sSearch": "Initial search"} - * } ); - * } ) - */ - "oSearch": $.extend( {}, DataTable.models.oSearch ), - - - /** - * By default DataTables will look for the property 'aaData' when obtaining - * data from an Ajax source or for server-side processing - this parameter - * allows that property to be changed. You can use Javascript dotted object - * notation to get a data source for multiple levels of nesting. - * @type string - * @default aaData - * @dtopt Options - * @dtopt Server-side - * - * @example - * // Get data from { "data": [...] } - * $(document).ready( function() { - * var oTable = $('#example').dataTable( { - * "sAjaxSource": "sources/data.txt", - * "sAjaxDataProp": "data" - * } ); - * } ); - * - * @example - * // Get data from { "data": { "inner": [...] } } - * $(document).ready( function() { - * var oTable = $('#example').dataTable( { - * "sAjaxSource": "sources/data.txt", - * "sAjaxDataProp": "data.inner" - * } ); - * } ); - */ - "sAjaxDataProp": "aaData", - - - /** - * You can instruct DataTables to load data from an external source using this - * parameter (use aData if you want to pass data in you already have). Simply - * provide a url a JSON object can be obtained from. This object must include - * the parameter 'aaData' which is the data source for the table. - * @type string - * @default null - * @dtopt Options - * @dtopt Server-side - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "sAjaxSource": "http://www.sprymedia.co.uk/dataTables/json.php" - * } ); - * } ) - */ - "sAjaxSource": null, - - - /** - * This parameter can be used to override the default prefix that DataTables - * assigns to a cookie when state saving is enabled. - * @type string - * @default SpryMedia_DataTables_ - * @dtopt Options - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "sCookiePrefix": "my_datatable_", - * } ); - * } ); - */ - "sCookiePrefix": "SpryMedia_DataTables_", - - - /** - * This initialisation variable allows you to specify exactly where in the - * DOM you want DataTables to inject the various controls it adds to the page - * (for example you might want the pagination controls at the top of the - * table). DIV elements (with or without a custom class) can also be added to - * aid styling. The follow syntax is used: - *
      - *
    • The following options are allowed: - *
        - *
      • 'l' - Length changing
      • 'f' - Filtering input - *
      • 't' - The table!
      • - *
      • 'i' - Information
      • - *
      • 'p' - Pagination
      • - *
      • 'r' - pRocessing
      • - *
      - *
    • - *
    • The following constants are allowed: - *
        - *
      • 'H' - jQueryUI theme "header" classes ('fg-toolbar ui-widget-header ui-corner-tl ui-corner-tr ui-helper-clearfix')
      • - *
      • 'F' - jQueryUI theme "footer" classes ('fg-toolbar ui-widget-header ui-corner-bl ui-corner-br ui-helper-clearfix')
      • - *
      - *
    • - *
    • The following syntax is expected: - *
        - *
      • '<' and '>' - div elements
      • - *
      • '<"class" and '>' - div with a class
      • - *
      • '<"#id" and '>' - div with an ID
      • - *
      - *
    • - *
    • Examples: - *
        - *
      • '<"wrapper"flipt>'
      • - *
      • '<lf<t>ip>'
      • - *
      - *
    • - *
    - * @type string - * @default lfrtip (when bJQueryUI is false) or - * <"H"lfr>t<"F"ip> (when bJQueryUI is true) - * @dtopt Options - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "sDom": '<"top"i>rt<"bottom"flp><"clear">' - * } ); - * } ); - */ - "sDom": "lfrtip", - - - /** - * DataTables features two different built-in pagination interaction methods - * ('two_button' or 'full_numbers') which present different page controls to - * the end user. Further methods can be added using the API (see below). - * @type string - * @default two_button - * @dtopt Options - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "sPaginationType": "full_numbers" - * } ); - * } ) - */ - "sPaginationType": "two_button", - - - /** - * Enable horizontal scrolling. When a table is too wide to fit into a certain - * layout, or you have a large number of columns in the table, you can enable - * x-scrolling to show the table in a viewport, which can be scrolled. This - * property can be any CSS unit, or a number (in which case it will be treated - * as a pixel measurement). - * @type string - * @default blank string - i.e. disabled - * @dtopt Features - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "sScrollX": "100%", - * "bScrollCollapse": true - * } ); - * } ); - */ - "sScrollX": "", - - - /** - * This property can be used to force a DataTable to use more width than it - * might otherwise do when x-scrolling is enabled. For example if you have a - * table which requires to be well spaced, this parameter is useful for - * "over-sizing" the table, and thus forcing scrolling. This property can by - * any CSS unit, or a number (in which case it will be treated as a pixel - * measurement). - * @type string - * @default blank string - i.e. disabled - * @dtopt Options - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "sScrollX": "100%", - * "sScrollXInner": "110%" - * } ); - * } ); - */ - "sScrollXInner": "", - - - /** - * Enable vertical scrolling. Vertical scrolling will constrain the DataTable - * to the given height, and enable scrolling for any data which overflows the - * current viewport. This can be used as an alternative to paging to display - * a lot of data in a small area (although paging and scrolling can both be - * enabled at the same time). This property can be any CSS unit, or a number - * (in which case it will be treated as a pixel measurement). - * @type string - * @default blank string - i.e. disabled - * @dtopt Features - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "sScrollY": "200px", - * "bPaginate": false - * } ); - * } ); - */ - "sScrollY": "", - - - /** - * Set the HTTP method that is used to make the Ajax call for server-side - * processing or Ajax sourced data. - * @type string - * @default GET - * @dtopt Options - * @dtopt Server-side - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "bServerSide": true, - * "sAjaxSource": "scripts/post.php", - * "sServerMethod": "POST" - * } ); - * } ); - */ - "sServerMethod": "GET" - }; - - - - /** - * Column options that can be given to DataTables at initialisation time. - * @namespace - */ - DataTable.defaults.columns = { - /** - * Allows a column's sorting to take multiple columns into account when - * doing a sort. For example first name / last name columns make sense to - * do a multi-column sort over the two columns. - * @type array - * @default null Takes the value of the column index automatically - * @dtopt Columns - * - * @example - * // Using aoColumnDefs - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumnDefs": [ - * { "aDataSort": [ 0, 1 ], "aTargets": [ 0 ] }, - * { "aDataSort": [ 1, 0 ], "aTargets": [ 1 ] }, - * { "aDataSort": [ 2, 3, 4 ], "aTargets": [ 2 ] } - * ] - * } ); - * } ); - * - * @example - * // Using aoColumns - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumns": [ - * { "aDataSort": [ 0, 1 ] }, - * { "aDataSort": [ 1, 0 ] }, - * { "aDataSort": [ 2, 3, 4 ] }, - * null, - * null - * ] - * } ); - * } ); - */ - "aDataSort": null, - - - /** - * You can control the default sorting direction, and even alter the behaviour - * of the sort handler (i.e. only allow ascending sorting etc) using this - * parameter. - * @type array - * @default [ 'asc', 'desc' ] - * @dtopt Columns - * - * @example - * // Using aoColumnDefs - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumnDefs": [ - * { "asSorting": [ "asc" ], "aTargets": [ 1 ] }, - * { "asSorting": [ "desc", "asc", "asc" ], "aTargets": [ 2 ] }, - * { "asSorting": [ "desc" ], "aTargets": [ 3 ] } - * ] - * } ); - * } ); - * - * @example - * // Using aoColumns - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumns": [ - * null, - * { "asSorting": [ "asc" ] }, - * { "asSorting": [ "desc", "asc", "asc" ] }, - * { "asSorting": [ "desc" ] }, - * null - * ] - * } ); - * } ); - */ - "asSorting": [ 'asc', 'desc' ], - - - /** - * Enable or disable filtering on the data in this column. - * @type boolean - * @default true - * @dtopt Columns - * - * @example - * // Using aoColumnDefs - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumnDefs": [ - * { "bSearchable": false, "aTargets": [ 0 ] } - * ] } ); - * } ); - * - * @example - * // Using aoColumns - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumns": [ - * { "bSearchable": false }, - * null, - * null, - * null, - * null - * ] } ); - * } ); - */ - "bSearchable": true, - - - /** - * Enable or disable sorting on this column. - * @type boolean - * @default true - * @dtopt Columns - * - * @example - * // Using aoColumnDefs - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumnDefs": [ - * { "bSortable": false, "aTargets": [ 0 ] } - * ] } ); - * } ); - * - * @example - * // Using aoColumns - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumns": [ - * { "bSortable": false }, - * null, - * null, - * null, - * null - * ] } ); - * } ); - */ - "bSortable": true, - - - /** - * Deprecated When using fnRender() for a column, you may wish - * to use the original data (before rendering) for sorting and filtering - * (the default is to used the rendered data that the user can see). This - * may be useful for dates etc. - * - * Please note that this option has now been deprecated and will be removed - * in the next version of DataTables. Please use mRender / mData rather than - * fnRender. - * @type boolean - * @default true - * @dtopt Columns - * @deprecated - */ - "bUseRendered": true, - - - /** - * Enable or disable the display of this column. - * @type boolean - * @default true - * @dtopt Columns - * - * @example - * // Using aoColumnDefs - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumnDefs": [ - * { "bVisible": false, "aTargets": [ 0 ] } - * ] } ); - * } ); - * - * @example - * // Using aoColumns - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumns": [ - * { "bVisible": false }, - * null, - * null, - * null, - * null - * ] } ); - * } ); - */ - "bVisible": true, - - - /** - * Developer definable function that is called whenever a cell is created (Ajax source, - * etc) or processed for input (DOM source). This can be used as a compliment to mRender - * allowing you to modify the DOM element (add background colour for example) when the - * element is available. - * @type function - * @param {element} nTd The TD node that has been created - * @param {*} sData The Data for the cell - * @param {array|object} oData The data for the whole row - * @param {int} iRow The row index for the aoData data store - * @param {int} iCol The column index for aoColumns - * @dtopt Columns - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumnDefs": [ { - * "aTargets": [3], - * "fnCreatedCell": function (nTd, sData, oData, iRow, iCol) { - * if ( sData == "1.7" ) { - * $(nTd).css('color', 'blue') - * } - * } - * } ] - * }); - * } ); - */ - "fnCreatedCell": null, - - - /** - * Deprecated Custom display function that will be called for the - * display of each cell in this column. - * - * Please note that this option has now been deprecated and will be removed - * in the next version of DataTables. Please use mRender / mData rather than - * fnRender. - * @type function - * @param {object} o Object with the following parameters: - * @param {int} o.iDataRow The row in aoData - * @param {int} o.iDataColumn The column in question - * @param {array} o.aData The data for the row in question - * @param {object} o.oSettings The settings object for this DataTables instance - * @param {object} o.mDataProp The data property used for this column - * @param {*} val The current cell value - * @returns {string} The string you which to use in the display - * @dtopt Columns - * @deprecated - */ - "fnRender": null, - - - /** - * The column index (starting from 0!) that you wish a sort to be performed - * upon when this column is selected for sorting. This can be used for sorting - * on hidden columns for example. - * @type int - * @default -1 Use automatically calculated column index - * @dtopt Columns - * - * @example - * // Using aoColumnDefs - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumnDefs": [ - * { "iDataSort": 1, "aTargets": [ 0 ] } - * ] - * } ); - * } ); - * - * @example - * // Using aoColumns - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumns": [ - * { "iDataSort": 1 }, - * null, - * null, - * null, - * null - * ] - * } ); - * } ); - */ - "iDataSort": -1, - - - /** - * This parameter has been replaced by mData in DataTables to ensure naming - * consistency. mDataProp can still be used, as there is backwards compatibility - * in DataTables for this option, but it is strongly recommended that you use - * mData in preference to mDataProp. - * @name DataTable.defaults.columns.mDataProp - */ - - - /** - * This property can be used to read data from any JSON data source property, - * including deeply nested objects / properties. mData can be given in a - * number of different ways which effect its behaviour: - *
      - *
    • integer - treated as an array index for the data source. This is the - * default that DataTables uses (incrementally increased for each column).
    • - *
    • string - read an object property from the data source. Note that you can - * use Javascript dotted notation to read deep properties / arrays from the - * data source.
    • - *
    • null - the sDefaultContent option will be used for the cell (null - * by default, so you will need to specify the default content you want - - * typically an empty string). This can be useful on generated columns such - * as edit / delete action columns.
    • - *
    • function - the function given will be executed whenever DataTables - * needs to set or get the data for a cell in the column. The function - * takes three parameters: - *
        - *
      • {array|object} The data source for the row
      • - *
      • {string} The type call data requested - this will be 'set' when - * setting data or 'filter', 'display', 'type', 'sort' or undefined when - * gathering data. Note that when undefined is given for the type - * DataTables expects to get the raw data for the object back
      • - *
      • {*} Data to set when the second parameter is 'set'.
      • - *
      - * The return value from the function is not required when 'set' is the type - * of call, but otherwise the return is what will be used for the data - * requested.
    • - *
    - * - * Note that prior to DataTables 1.9.2 mData was called mDataProp. The name change - * reflects the flexibility of this property and is consistent with the naming of - * mRender. If 'mDataProp' is given, then it will still be used by DataTables, as - * it automatically maps the old name to the new if required. - * @type string|int|function|null - * @default null Use automatically calculated column index - * @dtopt Columns - * - * @example - * // Read table data from objects - * $(document).ready( function() { - * var oTable = $('#example').dataTable( { - * "sAjaxSource": "sources/deep.txt", - * "aoColumns": [ - * { "mData": "engine" }, - * { "mData": "browser" }, - * { "mData": "platform.inner" }, - * { "mData": "platform.details.0" }, - * { "mData": "platform.details.1" } - * ] - * } ); - * } ); - * - * @example - * // Using mData as a function to provide different information for - * // sorting, filtering and display. In this case, currency (price) - * $(document).ready( function() { - * var oTable = $('#example').dataTable( { - * "aoColumnDefs": [ { - * "aTargets": [ 0 ], - * "mData": function ( source, type, val ) { - * if (type === 'set') { - * source.price = val; - * // Store the computed dislay and filter values for efficiency - * source.price_display = val=="" ? "" : "$"+numberFormat(val); - * source.price_filter = val=="" ? "" : "$"+numberFormat(val)+" "+val; - * return; - * } - * else if (type === 'display') { - * return source.price_display; - * } - * else if (type === 'filter') { - * return source.price_filter; - * } - * // 'sort', 'type' and undefined all just use the integer - * return source.price; - * } - * } ] - * } ); - * } ); - */ - "mData": null, - - - /** - * This property is the rendering partner to mData and it is suggested that - * when you want to manipulate data for display (including filtering, sorting etc) - * but not altering the underlying data for the table, use this property. mData - * can actually do everything this property can and more, but this parameter is - * easier to use since there is no 'set' option. Like mData is can be given - * in a number of different ways to effect its behaviour, with the addition of - * supporting array syntax for easy outputting of arrays (including arrays of - * objects): - *
      - *
    • integer - treated as an array index for the data source. This is the - * default that DataTables uses (incrementally increased for each column).
    • - *
    • string - read an object property from the data source. Note that you can - * use Javascript dotted notation to read deep properties / arrays from the - * data source and also array brackets to indicate that the data reader should - * loop over the data source array. When characters are given between the array - * brackets, these characters are used to join the data source array together. - * For example: "accounts[, ].name" would result in a comma separated list with - * the 'name' value from the 'accounts' array of objects.
    • - *
    • function - the function given will be executed whenever DataTables - * needs to set or get the data for a cell in the column. The function - * takes three parameters: - *
        - *
      • {array|object} The data source for the row (based on mData)
      • - *
      • {string} The type call data requested - this will be 'filter', 'display', - * 'type' or 'sort'.
      • - *
      • {array|object} The full data source for the row (not based on mData)
      • - *
      - * The return value from the function is what will be used for the data - * requested.
    • - *
    - * @type string|int|function|null - * @default null Use mData - * @dtopt Columns - * - * @example - * // Create a comma separated list from an array of objects - * $(document).ready( function() { - * var oTable = $('#example').dataTable( { - * "sAjaxSource": "sources/deep.txt", - * "aoColumns": [ - * { "mData": "engine" }, - * { "mData": "browser" }, - * { - * "mData": "platform", - * "mRender": "[, ].name" - * } - * ] - * } ); - * } ); - * - * @example - * // Use as a function to create a link from the data source - * $(document).ready( function() { - * var oTable = $('#example').dataTable( { - * "aoColumnDefs": [ - * { - * "aTargets": [ 0 ], - * "mData": "download_link", - * "mRender": function ( data, type, full ) { - * return 'Download'; - * } - * ] - * } ); - * } ); - */ - "mRender": null, - - - /** - * Change the cell type created for the column - either TD cells or TH cells. This - * can be useful as TH cells have semantic meaning in the table body, allowing them - * to act as a header for a row (you may wish to add scope='row' to the TH elements). - * @type string - * @default td - * @dtopt Columns - * - * @example - * // Make the first column use TH cells - * $(document).ready( function() { - * var oTable = $('#example').dataTable( { - * "aoColumnDefs": [ { - * "aTargets": [ 0 ], - * "sCellType": "th" - * } ] - * } ); - * } ); - */ - "sCellType": "td", - - - /** - * Class to give to each cell in this column. - * @type string - * @default Empty string - * @dtopt Columns - * - * @example - * // Using aoColumnDefs - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumnDefs": [ - * { "sClass": "my_class", "aTargets": [ 0 ] } - * ] - * } ); - * } ); - * - * @example - * // Using aoColumns - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumns": [ - * { "sClass": "my_class" }, - * null, - * null, - * null, - * null - * ] - * } ); - * } ); - */ - "sClass": "", - - /** - * When DataTables calculates the column widths to assign to each column, - * it finds the longest string in each column and then constructs a - * temporary table and reads the widths from that. The problem with this - * is that "mmm" is much wider then "iiii", but the latter is a longer - * string - thus the calculation can go wrong (doing it properly and putting - * it into an DOM object and measuring that is horribly(!) slow). Thus as - * a "work around" we provide this option. It will append its value to the - * text that is found to be the longest string for the column - i.e. padding. - * Generally you shouldn't need this, and it is not documented on the - * general DataTables.net documentation - * @type string - * @default Empty string - * @dtopt Columns - * - * @example - * // Using aoColumns - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumns": [ - * null, - * null, - * null, - * { - * "sContentPadding": "mmm" - * } - * ] - * } ); - * } ); - */ - "sContentPadding": "", - - - /** - * Allows a default value to be given for a column's data, and will be used - * whenever a null data source is encountered (this can be because mData - * is set to null, or because the data source itself is null). - * @type string - * @default null - * @dtopt Columns - * - * @example - * // Using aoColumnDefs - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumnDefs": [ - * { - * "mData": null, - * "sDefaultContent": "Edit", - * "aTargets": [ -1 ] - * } - * ] - * } ); - * } ); - * - * @example - * // Using aoColumns - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumns": [ - * null, - * null, - * null, - * { - * "mData": null, - * "sDefaultContent": "Edit" - * } - * ] - * } ); - * } ); - */ - "sDefaultContent": null, - - - /** - * This parameter is only used in DataTables' server-side processing. It can - * be exceptionally useful to know what columns are being displayed on the - * client side, and to map these to database fields. When defined, the names - * also allow DataTables to reorder information from the server if it comes - * back in an unexpected order (i.e. if you switch your columns around on the - * client-side, your server-side code does not also need updating). - * @type string - * @default Empty string - * @dtopt Columns - * - * @example - * // Using aoColumnDefs - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumnDefs": [ - * { "sName": "engine", "aTargets": [ 0 ] }, - * { "sName": "browser", "aTargets": [ 1 ] }, - * { "sName": "platform", "aTargets": [ 2 ] }, - * { "sName": "version", "aTargets": [ 3 ] }, - * { "sName": "grade", "aTargets": [ 4 ] } - * ] - * } ); - * } ); - * - * @example - * // Using aoColumns - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumns": [ - * { "sName": "engine" }, - * { "sName": "browser" }, - * { "sName": "platform" }, - * { "sName": "version" }, - * { "sName": "grade" } - * ] - * } ); - * } ); - */ - "sName": "", - - - /** - * Defines a data source type for the sorting which can be used to read - * real-time information from the table (updating the internally cached - * version) prior to sorting. This allows sorting to occur on user editable - * elements such as form inputs. - * @type string - * @default std - * @dtopt Columns - * - * @example - * // Using aoColumnDefs - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumnDefs": [ - * { "sSortDataType": "dom-text", "aTargets": [ 2, 3 ] }, - * { "sType": "numeric", "aTargets": [ 3 ] }, - * { "sSortDataType": "dom-select", "aTargets": [ 4 ] }, - * { "sSortDataType": "dom-checkbox", "aTargets": [ 5 ] } - * ] - * } ); - * } ); - * - * @example - * // Using aoColumns - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumns": [ - * null, - * null, - * { "sSortDataType": "dom-text" }, - * { "sSortDataType": "dom-text", "sType": "numeric" }, - * { "sSortDataType": "dom-select" }, - * { "sSortDataType": "dom-checkbox" } - * ] - * } ); - * } ); - */ - "sSortDataType": "std", - - - /** - * The title of this column. - * @type string - * @default null Derived from the 'TH' value for this column in the - * original HTML table. - * @dtopt Columns - * - * @example - * // Using aoColumnDefs - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumnDefs": [ - * { "sTitle": "My column title", "aTargets": [ 0 ] } - * ] - * } ); - * } ); - * - * @example - * // Using aoColumns - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumns": [ - * { "sTitle": "My column title" }, - * null, - * null, - * null, - * null - * ] - * } ); - * } ); - */ - "sTitle": null, - - - /** - * The type allows you to specify how the data for this column will be sorted. - * Four types (string, numeric, date and html (which will strip HTML tags - * before sorting)) are currently available. Note that only date formats - * understood by Javascript's Date() object will be accepted as type date. For - * example: "Mar 26, 2008 5:03 PM". May take the values: 'string', 'numeric', - * 'date' or 'html' (by default). Further types can be adding through - * plug-ins. - * @type string - * @default null Auto-detected from raw data - * @dtopt Columns - * - * @example - * // Using aoColumnDefs - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumnDefs": [ - * { "sType": "html", "aTargets": [ 0 ] } - * ] - * } ); - * } ); - * - * @example - * // Using aoColumns - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumns": [ - * { "sType": "html" }, - * null, - * null, - * null, - * null - * ] - * } ); - * } ); - */ - "sType": null, - - - /** - * Defining the width of the column, this parameter may take any CSS value - * (3em, 20px etc). DataTables apples 'smart' widths to columns which have not - * been given a specific width through this interface ensuring that the table - * remains readable. - * @type string - * @default null Automatic - * @dtopt Columns - * - * @example - * // Using aoColumnDefs - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumnDefs": [ - * { "sWidth": "20%", "aTargets": [ 0 ] } - * ] - * } ); - * } ); - * - * @example - * // Using aoColumns - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumns": [ - * { "sWidth": "20%" }, - * null, - * null, - * null, - * null - * ] - * } ); - * } ); - */ - "sWidth": null - }; - - - - /** - * DataTables settings object - this holds all the information needed for a - * given table, including configuration, data and current application of the - * table options. DataTables does not have a single instance for each DataTable - * with the settings attached to that instance, but rather instances of the - * DataTable "class" are created on-the-fly as needed (typically by a - * $().dataTable() call) and the settings object is then applied to that - * instance. - * - * Note that this object is related to {@link DataTable.defaults} but this - * one is the internal data store for DataTables's cache of columns. It should - * NOT be manipulated outside of DataTables. Any configuration should be done - * through the initialisation options. - * @namespace - * @todo Really should attach the settings object to individual instances so we - * don't need to create new instances on each $().dataTable() call (if the - * table already exists). It would also save passing oSettings around and - * into every single function. However, this is a very significant - * architecture change for DataTables and will almost certainly break - * backwards compatibility with older installations. This is something that - * will be done in 2.0. - */ - DataTable.models.oSettings = { - /** - * Primary features of DataTables and their enablement state. - * @namespace - */ - "oFeatures": { - - /** - * Flag to say if DataTables should automatically try to calculate the - * optimum table and columns widths (true) or not (false). - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type boolean - */ - "bAutoWidth": null, - - /** - * Delay the creation of TR and TD elements until they are actually - * needed by a driven page draw. This can give a significant speed - * increase for Ajax source and Javascript source data, but makes no - * difference at all fro DOM and server-side processing tables. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type boolean - */ - "bDeferRender": null, - - /** - * Enable filtering on the table or not. Note that if this is disabled - * then there is no filtering at all on the table, including fnFilter. - * To just remove the filtering input use sDom and remove the 'f' option. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type boolean - */ - "bFilter": null, - - /** - * Table information element (the 'Showing x of y records' div) enable - * flag. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type boolean - */ - "bInfo": null, - - /** - * Present a user control allowing the end user to change the page size - * when pagination is enabled. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type boolean - */ - "bLengthChange": null, - - /** - * Pagination enabled or not. Note that if this is disabled then length - * changing must also be disabled. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type boolean - */ - "bPaginate": null, - - /** - * Processing indicator enable flag whenever DataTables is enacting a - * user request - typically an Ajax request for server-side processing. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type boolean - */ - "bProcessing": null, - - /** - * Server-side processing enabled flag - when enabled DataTables will - * get all data from the server for every draw - there is no filtering, - * sorting or paging done on the client-side. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type boolean - */ - "bServerSide": null, - - /** - * Sorting enablement flag. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type boolean - */ - "bSort": null, - - /** - * Apply a class to the columns which are being sorted to provide a - * visual highlight or not. This can slow things down when enabled since - * there is a lot of DOM interaction. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type boolean - */ - "bSortClasses": null, - - /** - * State saving enablement flag. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type boolean - */ - "bStateSave": null - }, - - - /** - * Scrolling settings for a table. - * @namespace - */ - "oScroll": { - /** - * Indicate if DataTables should be allowed to set the padding / margin - * etc for the scrolling header elements or not. Typically you will want - * this. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type boolean - */ - "bAutoCss": null, - - /** - * When the table is shorter in height than sScrollY, collapse the - * table container down to the height of the table (when true). - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type boolean - */ - "bCollapse": null, - - /** - * Infinite scrolling enablement flag. Now deprecated in favour of - * using the Scroller plug-in. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type boolean - */ - "bInfinite": null, - - /** - * Width of the scrollbar for the web-browser's platform. Calculated - * during table initialisation. - * @type int - * @default 0 - */ - "iBarWidth": 0, - - /** - * Space (in pixels) between the bottom of the scrolling container and - * the bottom of the scrolling viewport before the next page is loaded - * when using infinite scrolling. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type int - */ - "iLoadGap": null, - - /** - * Viewport width for horizontal scrolling. Horizontal scrolling is - * disabled if an empty string. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type string - */ - "sX": null, - - /** - * Width to expand the table to when using x-scrolling. Typically you - * should not need to use this. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type string - * @deprecated - */ - "sXInner": null, - - /** - * Viewport height for vertical scrolling. Vertical scrolling is disabled - * if an empty string. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type string - */ - "sY": null - }, - - /** - * Language information for the table. - * @namespace - * @extends DataTable.defaults.oLanguage - */ - "oLanguage": { - /** - * Information callback function. See - * {@link DataTable.defaults.fnInfoCallback} - * @type function - * @default null - */ - "fnInfoCallback": null - }, - - /** - * Browser support parameters - * @namespace - */ - "oBrowser": { - /** - * Indicate if the browser incorrectly calculates width:100% inside a - * scrolling element (IE6/7) - * @type boolean - * @default false - */ - "bScrollOversize": false - }, - - /** - * Array referencing the nodes which are used for the features. The - * parameters of this object match what is allowed by sDom - i.e. - *
      - *
    • 'l' - Length changing
    • - *
    • 'f' - Filtering input
    • - *
    • 't' - The table!
    • - *
    • 'i' - Information
    • - *
    • 'p' - Pagination
    • - *
    • 'r' - pRocessing
    • - *
    - * @type array - * @default [] - */ - "aanFeatures": [], - - /** - * Store data information - see {@link DataTable.models.oRow} for detailed - * information. - * @type array - * @default [] - */ - "aoData": [], - - /** - * Array of indexes which are in the current display (after filtering etc) - * @type array - * @default [] - */ - "aiDisplay": [], - - /** - * Array of indexes for display - no filtering - * @type array - * @default [] - */ - "aiDisplayMaster": [], - - /** - * Store information about each column that is in use - * @type array - * @default [] - */ - "aoColumns": [], - - /** - * Store information about the table's header - * @type array - * @default [] - */ - "aoHeader": [], - - /** - * Store information about the table's footer - * @type array - * @default [] - */ - "aoFooter": [], - - /** - * Search data array for regular expression searching - * @type array - * @default [] - */ - "asDataSearch": [], - - /** - * Store the applied global search information in case we want to force a - * research or compare the old search to a new one. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @namespace - * @extends DataTable.models.oSearch - */ - "oPreviousSearch": {}, - - /** - * Store the applied search for each column - see - * {@link DataTable.models.oSearch} for the format that is used for the - * filtering information for each column. - * @type array - * @default [] - */ - "aoPreSearchCols": [], - - /** - * Sorting that is applied to the table. Note that the inner arrays are - * used in the following manner: - *
      - *
    • Index 0 - column number
    • - *
    • Index 1 - current sorting direction
    • - *
    • Index 2 - index of asSorting for this column
    • - *
    - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type array - * @todo These inner arrays should really be objects - */ - "aaSorting": null, - - /** - * Sorting that is always applied to the table (i.e. prefixed in front of - * aaSorting). - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type array|null - * @default null - */ - "aaSortingFixed": null, - - /** - * Classes to use for the striping of a table. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type array - * @default [] - */ - "asStripeClasses": null, - - /** - * If restoring a table - we should restore its striping classes as well - * @type array - * @default [] - */ - "asDestroyStripes": [], - - /** - * If restoring a table - we should restore its width - * @type int - * @default 0 - */ - "sDestroyWidth": 0, - - /** - * Callback functions array for every time a row is inserted (i.e. on a draw). - * @type array - * @default [] - */ - "aoRowCallback": [], - - /** - * Callback functions for the header on each draw. - * @type array - * @default [] - */ - "aoHeaderCallback": [], - - /** - * Callback function for the footer on each draw. - * @type array - * @default [] - */ - "aoFooterCallback": [], - - /** - * Array of callback functions for draw callback functions - * @type array - * @default [] - */ - "aoDrawCallback": [], - - /** - * Array of callback functions for row created function - * @type array - * @default [] - */ - "aoRowCreatedCallback": [], - - /** - * Callback functions for just before the table is redrawn. A return of - * false will be used to cancel the draw. - * @type array - * @default [] - */ - "aoPreDrawCallback": [], - - /** - * Callback functions for when the table has been initialised. - * @type array - * @default [] - */ - "aoInitComplete": [], - - - /** - * Callbacks for modifying the settings to be stored for state saving, prior to - * saving state. - * @type array - * @default [] - */ - "aoStateSaveParams": [], - - /** - * Callbacks for modifying the settings that have been stored for state saving - * prior to using the stored values to restore the state. - * @type array - * @default [] - */ - "aoStateLoadParams": [], - - /** - * Callbacks for operating on the settings object once the saved state has been - * loaded - * @type array - * @default [] - */ - "aoStateLoaded": [], - - /** - * Cache the table ID for quick access - * @type string - * @default Empty string - */ - "sTableId": "", - - /** - * The TABLE node for the main table - * @type node - * @default null - */ - "nTable": null, - - /** - * Permanent ref to the thead element - * @type node - * @default null - */ - "nTHead": null, - - /** - * Permanent ref to the tfoot element - if it exists - * @type node - * @default null - */ - "nTFoot": null, - - /** - * Permanent ref to the tbody element - * @type node - * @default null - */ - "nTBody": null, - - /** - * Cache the wrapper node (contains all DataTables controlled elements) - * @type node - * @default null - */ - "nTableWrapper": null, - - /** - * Indicate if when using server-side processing the loading of data - * should be deferred until the second draw. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type boolean - * @default false - */ - "bDeferLoading": false, - - /** - * Indicate if all required information has been read in - * @type boolean - * @default false - */ - "bInitialised": false, - - /** - * Information about open rows. Each object in the array has the parameters - * 'nTr' and 'nParent' - * @type array - * @default [] - */ - "aoOpenRows": [], - - /** - * Dictate the positioning of DataTables' control elements - see - * {@link DataTable.model.oInit.sDom}. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type string - * @default null - */ - "sDom": null, - - /** - * Which type of pagination should be used. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type string - * @default two_button - */ - "sPaginationType": "two_button", - - /** - * The cookie duration (for bStateSave) in seconds. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type int - * @default 0 - */ - "iCookieDuration": 0, - - /** - * The cookie name prefix. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type string - * @default Empty string - */ - "sCookiePrefix": "", - - /** - * Callback function for cookie creation. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type function - * @default null - */ - "fnCookieCallback": null, - - /** - * Array of callback functions for state saving. Each array element is an - * object with the following parameters: - *
      - *
    • function:fn - function to call. Takes two parameters, oSettings - * and the JSON string to save that has been thus far created. Returns - * a JSON string to be inserted into a json object - * (i.e. '"param": [ 0, 1, 2]')
    • - *
    • string:sName - name of callback
    • - *
    - * @type array - * @default [] - */ - "aoStateSave": [], - - /** - * Array of callback functions for state loading. Each array element is an - * object with the following parameters: - *
      - *
    • function:fn - function to call. Takes two parameters, oSettings - * and the object stored. May return false to cancel state loading
    • - *
    • string:sName - name of callback
    • - *
    - * @type array - * @default [] - */ - "aoStateLoad": [], - - /** - * State that was loaded from the cookie. Useful for back reference - * @type object - * @default null - */ - "oLoadedState": null, - - /** - * Source url for AJAX data for the table. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type string - * @default null - */ - "sAjaxSource": null, - - /** - * Property from a given object from which to read the table data from. This - * can be an empty string (when not server-side processing), in which case - * it is assumed an an array is given directly. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type string - */ - "sAjaxDataProp": null, - - /** - * Note if draw should be blocked while getting data - * @type boolean - * @default true - */ - "bAjaxDataGet": true, - - /** - * The last jQuery XHR object that was used for server-side data gathering. - * This can be used for working with the XHR information in one of the - * callbacks - * @type object - * @default null - */ - "jqXHR": null, - - /** - * Function to get the server-side data. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type function - */ - "fnServerData": null, - - /** - * Functions which are called prior to sending an Ajax request so extra - * parameters can easily be sent to the server - * @type array - * @default [] - */ - "aoServerParams": [], - - /** - * Send the XHR HTTP method - GET or POST (could be PUT or DELETE if - * required). - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type string - */ - "sServerMethod": null, - - /** - * Format numbers for display. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type function - */ - "fnFormatNumber": null, - - /** - * List of options that can be used for the user selectable length menu. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type array - * @default [] - */ - "aLengthMenu": null, - - /** - * Counter for the draws that the table does. Also used as a tracker for - * server-side processing - * @type int - * @default 0 - */ - "iDraw": 0, - - /** - * Indicate if a redraw is being done - useful for Ajax - * @type boolean - * @default false - */ - "bDrawing": false, - - /** - * Draw index (iDraw) of the last error when parsing the returned data - * @type int - * @default -1 - */ - "iDrawError": -1, - - /** - * Paging display length - * @type int - * @default 10 - */ - "_iDisplayLength": 10, - - /** - * Paging start point - aiDisplay index - * @type int - * @default 0 - */ - "_iDisplayStart": 0, - - /** - * Paging end point - aiDisplay index. Use fnDisplayEnd rather than - * this property to get the end point - * @type int - * @default 10 - * @private - */ - "_iDisplayEnd": 10, - - /** - * Server-side processing - number of records in the result set - * (i.e. before filtering), Use fnRecordsTotal rather than - * this property to get the value of the number of records, regardless of - * the server-side processing setting. - * @type int - * @default 0 - * @private - */ - "_iRecordsTotal": 0, - - /** - * Server-side processing - number of records in the current display set - * (i.e. after filtering). Use fnRecordsDisplay rather than - * this property to get the value of the number of records, regardless of - * the server-side processing setting. - * @type boolean - * @default 0 - * @private - */ - "_iRecordsDisplay": 0, - - /** - * Flag to indicate if jQuery UI marking and classes should be used. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type boolean - */ - "bJUI": null, - - /** - * The classes to use for the table - * @type object - * @default {} - */ - "oClasses": {}, - - /** - * Flag attached to the settings object so you can check in the draw - * callback if filtering has been done in the draw. Deprecated in favour of - * events. - * @type boolean - * @default false - * @deprecated - */ - "bFiltered": false, - - /** - * Flag attached to the settings object so you can check in the draw - * callback if sorting has been done in the draw. Deprecated in favour of - * events. - * @type boolean - * @default false - * @deprecated - */ - "bSorted": false, - - /** - * Indicate that if multiple rows are in the header and there is more than - * one unique cell per column, if the top one (true) or bottom one (false) - * should be used for sorting / title by DataTables. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type boolean - */ - "bSortCellsTop": null, - - /** - * Initialisation object that is used for the table - * @type object - * @default null - */ - "oInit": null, - - /** - * Destroy callback functions - for plug-ins to attach themselves to the - * destroy so they can clean up markup and events. - * @type array - * @default [] - */ - "aoDestroyCallback": [], - - - /** - * Get the number of records in the current record set, before filtering - * @type function - */ - "fnRecordsTotal": function () - { - if ( this.oFeatures.bServerSide ) { - return parseInt(this._iRecordsTotal, 10); - } else { - return this.aiDisplayMaster.length; - } - }, - - /** - * Get the number of records in the current record set, after filtering - * @type function - */ - "fnRecordsDisplay": function () - { - if ( this.oFeatures.bServerSide ) { - return parseInt(this._iRecordsDisplay, 10); - } else { - return this.aiDisplay.length; - } - }, - - /** - * Set the display end point - aiDisplay index - * @type function - * @todo Should do away with _iDisplayEnd and calculate it on-the-fly here - */ - "fnDisplayEnd": function () - { - if ( this.oFeatures.bServerSide ) { - if ( this.oFeatures.bPaginate === false || this._iDisplayLength == -1 ) { - return this._iDisplayStart+this.aiDisplay.length; - } else { - return Math.min( this._iDisplayStart+this._iDisplayLength, - this._iRecordsDisplay ); - } - } else { - return this._iDisplayEnd; - } - }, - - /** - * The DataTables object for this table - * @type object - * @default null - */ - "oInstance": null, - - /** - * Unique identifier for each instance of the DataTables object. If there - * is an ID on the table node, then it takes that value, otherwise an - * incrementing internal counter is used. - * @type string - * @default null - */ - "sInstance": null, - - /** - * tabindex attribute value that is added to DataTables control elements, allowing - * keyboard navigation of the table and its controls. - */ - "iTabIndex": 0, - - /** - * DIV container for the footer scrolling table if scrolling - */ - "nScrollHead": null, - - /** - * DIV container for the footer scrolling table if scrolling - */ - "nScrollFoot": null - }; - - /** - * Extension object for DataTables that is used to provide all extension options. - * - * Note that the DataTable.ext object is available through - * jQuery.fn.dataTable.ext where it may be accessed and manipulated. It is - * also aliased to jQuery.fn.dataTableExt for historic reasons. - * @namespace - * @extends DataTable.models.ext - */ - DataTable.ext = $.extend( true, {}, DataTable.models.ext ); - - $.extend( DataTable.ext.oStdClasses, { - "sTable": "dataTable", - - /* Two buttons buttons */ - "sPagePrevEnabled": "paginate_enabled_previous", - "sPagePrevDisabled": "paginate_disabled_previous", - "sPageNextEnabled": "paginate_enabled_next", - "sPageNextDisabled": "paginate_disabled_next", - "sPageJUINext": "", - "sPageJUIPrev": "", - - /* Full numbers paging buttons */ - "sPageButton": "paginate_button", - "sPageButtonActive": "paginate_active", - "sPageButtonStaticDisabled": "paginate_button paginate_button_disabled", - "sPageFirst": "first", - "sPagePrevious": "previous", - "sPageNext": "next", - "sPageLast": "last", - - /* Striping classes */ - "sStripeOdd": "odd", - "sStripeEven": "even", - - /* Empty row */ - "sRowEmpty": "dataTables_empty", - - /* Features */ - "sWrapper": "dataTables_wrapper", - "sFilter": "dataTables_filter", - "sInfo": "dataTables_info", - "sPaging": "dataTables_paginate paging_", /* Note that the type is postfixed */ - "sLength": "dataTables_length", - "sProcessing": "dataTables_processing", - - /* Sorting */ - "sSortAsc": "sorting_asc", - "sSortDesc": "sorting_desc", - "sSortable": "sorting", /* Sortable in both directions */ - "sSortableAsc": "sorting_asc_disabled", - "sSortableDesc": "sorting_desc_disabled", - "sSortableNone": "sorting_disabled", - "sSortColumn": "sorting_", /* Note that an int is postfixed for the sorting order */ - "sSortJUIAsc": "", - "sSortJUIDesc": "", - "sSortJUI": "", - "sSortJUIAscAllowed": "", - "sSortJUIDescAllowed": "", - "sSortJUIWrapper": "", - "sSortIcon": "", - - /* Scrolling */ - "sScrollWrapper": "dataTables_scroll", - "sScrollHead": "dataTables_scrollHead", - "sScrollHeadInner": "dataTables_scrollHeadInner", - "sScrollBody": "dataTables_scrollBody", - "sScrollFoot": "dataTables_scrollFoot", - "sScrollFootInner": "dataTables_scrollFootInner", - - /* Misc */ - "sFooterTH": "", - "sJUIHeader": "", - "sJUIFooter": "" - } ); - - - $.extend( DataTable.ext.oJUIClasses, DataTable.ext.oStdClasses, { - /* Two buttons buttons */ - "sPagePrevEnabled": "fg-button ui-button ui-state-default ui-corner-left", - "sPagePrevDisabled": "fg-button ui-button ui-state-default ui-corner-left ui-state-disabled", - "sPageNextEnabled": "fg-button ui-button ui-state-default ui-corner-right", - "sPageNextDisabled": "fg-button ui-button ui-state-default ui-corner-right ui-state-disabled", - "sPageJUINext": "ui-icon ui-icon-circle-arrow-e", - "sPageJUIPrev": "ui-icon ui-icon-circle-arrow-w", - - /* Full numbers paging buttons */ - "sPageButton": "fg-button ui-button ui-state-default", - "sPageButtonActive": "fg-button ui-button ui-state-default ui-state-disabled", - "sPageButtonStaticDisabled": "fg-button ui-button ui-state-default ui-state-disabled", - "sPageFirst": "first ui-corner-tl ui-corner-bl", - "sPageLast": "last ui-corner-tr ui-corner-br", - - /* Features */ - "sPaging": "dataTables_paginate fg-buttonset ui-buttonset fg-buttonset-multi "+ - "ui-buttonset-multi paging_", /* Note that the type is postfixed */ - - /* Sorting */ - "sSortAsc": "ui-state-default", - "sSortDesc": "ui-state-default", - "sSortable": "ui-state-default", - "sSortableAsc": "ui-state-default", - "sSortableDesc": "ui-state-default", - "sSortableNone": "ui-state-default", - "sSortJUIAsc": "css_right ui-icon ui-icon-triangle-1-n", - "sSortJUIDesc": "css_right ui-icon ui-icon-triangle-1-s", - "sSortJUI": "css_right ui-icon ui-icon-carat-2-n-s", - "sSortJUIAscAllowed": "css_right ui-icon ui-icon-carat-1-n", - "sSortJUIDescAllowed": "css_right ui-icon ui-icon-carat-1-s", - "sSortJUIWrapper": "DataTables_sort_wrapper", - "sSortIcon": "DataTables_sort_icon", - - /* Scrolling */ - "sScrollHead": "dataTables_scrollHead ui-state-default", - "sScrollFoot": "dataTables_scrollFoot ui-state-default", - - /* Misc */ - "sFooterTH": "ui-state-default", - "sJUIHeader": "fg-toolbar ui-toolbar ui-widget-header ui-corner-tl ui-corner-tr ui-helper-clearfix", - "sJUIFooter": "fg-toolbar ui-toolbar ui-widget-header ui-corner-bl ui-corner-br ui-helper-clearfix" - } ); - - /* - * Variable: oPagination - * Purpose: - * Scope: jQuery.fn.dataTableExt - */ - $.extend( DataTable.ext.oPagination, { - /* - * Variable: two_button - * Purpose: Standard two button (forward/back) pagination - * Scope: jQuery.fn.dataTableExt.oPagination - */ - "two_button": { - /* - * Function: oPagination.two_button.fnInit - * Purpose: Initialise dom elements required for pagination with forward/back buttons only - * Returns: - - * Inputs: object:oSettings - dataTables settings object - * node:nPaging - the DIV which contains this pagination control - * function:fnCallbackDraw - draw function which must be called on update - */ - "fnInit": function ( oSettings, nPaging, fnCallbackDraw ) - { - var oLang = oSettings.oLanguage.oPaginate; - var oClasses = oSettings.oClasses; - var fnClickHandler = function ( e ) { - if ( oSettings.oApi._fnPageChange( oSettings, e.data.action ) ) - { - fnCallbackDraw( oSettings ); - } - }; - - var sAppend = (!oSettings.bJUI) ? - ''+oLang.sPrevious+''+ - ''+oLang.sNext+'' - : - ''+ - ''; - $(nPaging).append( sAppend ); - - var els = $('a', nPaging); - var nPrevious = els[0], - nNext = els[1]; - - oSettings.oApi._fnBindAction( nPrevious, {action: "previous"}, fnClickHandler ); - oSettings.oApi._fnBindAction( nNext, {action: "next"}, fnClickHandler ); - - /* ID the first elements only */ - if ( !oSettings.aanFeatures.p ) - { - nPaging.id = oSettings.sTableId+'_paginate'; - nPrevious.id = oSettings.sTableId+'_previous'; - nNext.id = oSettings.sTableId+'_next'; - - nPrevious.setAttribute('aria-controls', oSettings.sTableId); - nNext.setAttribute('aria-controls', oSettings.sTableId); - } - }, - - /* - * Function: oPagination.two_button.fnUpdate - * Purpose: Update the two button pagination at the end of the draw - * Returns: - - * Inputs: object:oSettings - dataTables settings object - * function:fnCallbackDraw - draw function to call on page change - */ - "fnUpdate": function ( oSettings, fnCallbackDraw ) - { - if ( !oSettings.aanFeatures.p ) - { - return; - } - - var oClasses = oSettings.oClasses; - var an = oSettings.aanFeatures.p; - var nNode; - - /* Loop over each instance of the pager */ - for ( var i=0, iLen=an.length ; i'+oLang.sFirst+''+ - ''+oLang.sPrevious+''+ - ''+ - ''+oLang.sNext+''+ - ''+oLang.sLast+'' - ); - var els = $('a', nPaging); - var nFirst = els[0], - nPrev = els[1], - nNext = els[2], - nLast = els[3]; - - oSettings.oApi._fnBindAction( nFirst, {action: "first"}, fnClickHandler ); - oSettings.oApi._fnBindAction( nPrev, {action: "previous"}, fnClickHandler ); - oSettings.oApi._fnBindAction( nNext, {action: "next"}, fnClickHandler ); - oSettings.oApi._fnBindAction( nLast, {action: "last"}, fnClickHandler ); - - /* ID the first elements only */ - if ( !oSettings.aanFeatures.p ) - { - nPaging.id = oSettings.sTableId+'_paginate'; - nFirst.id =oSettings.sTableId+'_first'; - nPrev.id =oSettings.sTableId+'_previous'; - nNext.id =oSettings.sTableId+'_next'; - nLast.id =oSettings.sTableId+'_last'; - } - }, - - /* - * Function: oPagination.full_numbers.fnUpdate - * Purpose: Update the list of page buttons shows - * Returns: - - * Inputs: object:oSettings - dataTables settings object - * function:fnCallbackDraw - draw function to call on page change - */ - "fnUpdate": function ( oSettings, fnCallbackDraw ) - { - if ( !oSettings.aanFeatures.p ) - { - return; - } - - var iPageCount = DataTable.ext.oPagination.iFullNumbersShowPages; - var iPageCountHalf = Math.floor(iPageCount / 2); - var iPages = Math.ceil((oSettings.fnRecordsDisplay()) / oSettings._iDisplayLength); - var iCurrentPage = Math.ceil(oSettings._iDisplayStart / oSettings._iDisplayLength) + 1; - var sList = ""; - var iStartButton, iEndButton, i, iLen; - var oClasses = oSettings.oClasses; - var anButtons, anStatic, nPaginateList, nNode; - var an = oSettings.aanFeatures.p; - var fnBind = function (j) { - oSettings.oApi._fnBindAction( this, {"page": j+iStartButton-1}, function(e) { - /* Use the information in the element to jump to the required page */ - oSettings.oApi._fnPageChange( oSettings, e.data.page ); - fnCallbackDraw( oSettings ); - e.preventDefault(); - } ); - }; - - /* Pages calculation */ - if ( oSettings._iDisplayLength === -1 ) - { - iStartButton = 1; - iEndButton = 1; - iCurrentPage = 1; - } - else if (iPages < iPageCount) - { - iStartButton = 1; - iEndButton = iPages; - } - else if (iCurrentPage <= iPageCountHalf) - { - iStartButton = 1; - iEndButton = iPageCount; - } - else if (iCurrentPage >= (iPages - iPageCountHalf)) - { - iStartButton = iPages - iPageCount + 1; - iEndButton = iPages; - } - else - { - iStartButton = iCurrentPage - Math.ceil(iPageCount / 2) + 1; - iEndButton = iStartButton + iPageCount - 1; - } - - - /* Build the dynamic list */ - for ( i=iStartButton ; i<=iEndButton ; i++ ) - { - sList += (iCurrentPage !== i) ? - ''+oSettings.fnFormatNumber(i)+'' : - ''+oSettings.fnFormatNumber(i)+''; - } - - /* Loop over each instance of the pager */ - for ( i=0, iLen=an.length ; i y) ? 1 : 0)); - }, - - "string-desc": function ( x, y ) - { - return ((x < y) ? 1 : ((x > y) ? -1 : 0)); - }, - - - /* - * html sorting (ignore html tags) - */ - "html-pre": function ( a ) - { - return a.replace( /<.*?>/g, "" ).toLowerCase(); - }, - - "html-asc": function ( x, y ) - { - return ((x < y) ? -1 : ((x > y) ? 1 : 0)); - }, - - "html-desc": function ( x, y ) - { - return ((x < y) ? 1 : ((x > y) ? -1 : 0)); - }, - - - /* - * date sorting - */ - "date-pre": function ( a ) - { - var x = Date.parse( a ); - - if ( isNaN(x) || x==="" ) - { - x = Date.parse( "01/01/1970 00:00:00" ); - } - return x; - }, - - "date-asc": function ( x, y ) - { - return x - y; - }, - - "date-desc": function ( x, y ) - { - return y - x; - }, - - - /* - * numerical sorting - */ - "numeric-pre": function ( a ) - { - return (a=="-" || a==="") ? 0 : a*1; - }, - - "numeric-asc": function ( x, y ) - { - return x - y; - }, - - "numeric-desc": function ( x, y ) - { - return y - x; - } - } ); - - - $.extend( DataTable.ext.aTypes, [ - /* - * Function: - - * Purpose: Check to see if a string is numeric - * Returns: string:'numeric' or null - * Inputs: mixed:sText - string to check - */ - function ( sData ) - { - /* Allow zero length strings as a number */ - if ( typeof sData === 'number' ) - { - return 'numeric'; - } - else if ( typeof sData !== 'string' ) - { - return null; - } - - var sValidFirstChars = "0123456789-"; - var sValidChars = "0123456789."; - var Char; - var bDecimal = false; - - /* Check for a valid first char (no period and allow negatives) */ - Char = sData.charAt(0); - if (sValidFirstChars.indexOf(Char) == -1) - { - return null; - } - - /* Check all the other characters are valid */ - for ( var i=1 ; i') != -1 ) - { - return 'html'; - } - return null; - } - ] ); - - - // jQuery aliases - $.fn.DataTable = DataTable; - $.fn.dataTable = DataTable; - $.fn.dataTableSettings = DataTable.settings; - $.fn.dataTableExt = DataTable.ext; - - - // Information about events fired by DataTables - for documentation. - /** - * Draw event, fired whenever the table is redrawn on the page, at the same point as - * fnDrawCallback. This may be useful for binding events or performing calculations when - * the table is altered at all. - * @name DataTable#draw - * @event - * @param {event} e jQuery event object - * @param {object} o DataTables settings object {@link DataTable.models.oSettings} - */ - - /** - * Filter event, fired when the filtering applied to the table (using the build in global - * global filter, or column filters) is altered. - * @name DataTable#filter - * @event - * @param {event} e jQuery event object - * @param {object} o DataTables settings object {@link DataTable.models.oSettings} - */ - - /** - * Page change event, fired when the paging of the table is altered. - * @name DataTable#page - * @event - * @param {event} e jQuery event object - * @param {object} o DataTables settings object {@link DataTable.models.oSettings} - */ - - /** - * Sort event, fired when the sorting applied to the table is altered. - * @name DataTable#sort - * @event - * @param {event} e jQuery event object - * @param {object} o DataTables settings object {@link DataTable.models.oSettings} - */ - - /** - * DataTables initialisation complete event, fired when the table is fully drawn, - * including Ajax data loaded, if Ajax data is required. - * @name DataTable#init - * @event - * @param {event} e jQuery event object - * @param {object} oSettings DataTables settings object - * @param {object} json The JSON object request from the server - only - * present if client-side Ajax sourced data is used
  • - */ - - /** - * State save event, fired when the table has changed state a new state save is required. - * This method allows modification of the state saving object prior to actually doing the - * save, including addition or other state properties (for plug-ins) or modification - * of a DataTables core property. - * @name DataTable#stateSaveParams - * @event - * @param {event} e jQuery event object - * @param {object} oSettings DataTables settings object - * @param {object} json The state information to be saved - */ - - /** - * State load event, fired when the table is loading state from the stored data, but - * prior to the settings object being modified by the saved state - allowing modification - * of the saved state is required or loading of state for a plug-in. - * @name DataTable#stateLoadParams - * @event - * @param {event} e jQuery event object - * @param {object} oSettings DataTables settings object - * @param {object} json The saved state information - */ - - /** - * State loaded event, fired when state has been loaded from stored data and the settings - * object has been modified by the loaded data. - * @name DataTable#stateLoaded - * @event - * @param {event} e jQuery event object - * @param {object} oSettings DataTables settings object - * @param {object} json The saved state information - */ - - /** - * Processing event, fired when DataTables is doing some kind of processing (be it, - * sort, filter or anything else). Can be used to indicate to the end user that - * there is something happening, or that something has finished. - * @name DataTable#processing - * @event - * @param {event} e jQuery event object - * @param {object} oSettings DataTables settings object - * @param {boolean} bShow Flag for if DataTables is doing processing or not - */ - - /** - * Ajax (XHR) event, fired whenever an Ajax request is completed from a request to - * made to the server for new data (note that this trigger is called in fnServerData, - * if you override fnServerData and which to use this event, you need to trigger it in - * you success function). - * @name DataTable#xhr - * @event - * @param {event} e jQuery event object - * @param {object} o DataTables settings object {@link DataTable.models.oSettings} - * @param {object} json JSON returned from the server - */ - - /** - * Destroy event, fired when the DataTable is destroyed by calling fnDestroy or passing - * the bDestroy:true parameter in the initialisation object. This can be used to remove - * bound events, added DOM nodes, etc. - * @name DataTable#destroy - * @event - * @param {event} e jQuery event object - * @param {object} o DataTables settings object {@link DataTable.models.oSettings} - */ -})); - -}(window, document)); - diff --git a/portal-common/src/main/webapp/common/thirdparty/data-tables/jquery.dataTables-1.9.4.min.js b/portal-common/src/main/webapp/common/thirdparty/data-tables/jquery.dataTables-1.9.4.min.js deleted file mode 100644 index c73ad54c..00000000 --- a/portal-common/src/main/webapp/common/thirdparty/data-tables/jquery.dataTables-1.9.4.min.js +++ /dev/null @@ -1,155 +0,0 @@ -/* - * File: jquery.dataTables.min.js - * Version: 1.9.4 - * Author: Allan Jardine (www.sprymedia.co.uk) - * Info: www.datatables.net - * - * Copyright 2008-2012 Allan Jardine, all rights reserved. - * - * This source file is free software, under either the GPL v2 license or a - * BSD style license, available at: - * http://datatables.net/license_gpl2 - * http://datatables.net/license_bsd - * - * This source file is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details. - */ -(function(X,l,n){var L=function(h){var j=function(e){function o(a,b){var c=j.defaults.columns,d=a.aoColumns.length,c=h.extend({},j.models.oColumn,c,{sSortingClass:a.oClasses.sSortable,sSortingClassJUI:a.oClasses.sSortJUI,nTh:b?b:l.createElement("th"),sTitle:c.sTitle?c.sTitle:b?b.innerHTML:"",aDataSort:c.aDataSort?c.aDataSort:[d],mData:c.mData?c.oDefaults:d});a.aoColumns.push(c);if(a.aoPreSearchCols[d]===n||null===a.aoPreSearchCols[d])a.aoPreSearchCols[d]=h.extend({},j.models.oSearch);else if(c=a.aoPreSearchCols[d], -c.bRegex===n&&(c.bRegex=!0),c.bSmart===n&&(c.bSmart=!0),c.bCaseInsensitive===n)c.bCaseInsensitive=!0;m(a,d,null)}function m(a,b,c){var d=a.aoColumns[b];c!==n&&null!==c&&(c.mDataProp&&!c.mData&&(c.mData=c.mDataProp),c.sType!==n&&(d.sType=c.sType,d._bAutoType=!1),h.extend(d,c),p(d,c,"sWidth","sWidthOrig"),c.iDataSort!==n&&(d.aDataSort=[c.iDataSort]),p(d,c,"aDataSort"));var i=d.mRender?Q(d.mRender):null,f=Q(d.mData);d.fnGetData=function(a,b){var c=f(a,b);return d.mRender&&b&&""!==b?i(c,b,a):c};d.fnSetData= -L(d.mData);a.oFeatures.bSort||(d.bSortable=!1);!d.bSortable||-1==h.inArray("asc",d.asSorting)&&-1==h.inArray("desc",d.asSorting)?(d.sSortingClass=a.oClasses.sSortableNone,d.sSortingClassJUI=""):-1==h.inArray("asc",d.asSorting)&&-1==h.inArray("desc",d.asSorting)?(d.sSortingClass=a.oClasses.sSortable,d.sSortingClassJUI=a.oClasses.sSortJUI):-1!=h.inArray("asc",d.asSorting)&&-1==h.inArray("desc",d.asSorting)?(d.sSortingClass=a.oClasses.sSortableAsc,d.sSortingClassJUI=a.oClasses.sSortJUIAscAllowed):-1== -h.inArray("asc",d.asSorting)&&-1!=h.inArray("desc",d.asSorting)&&(d.sSortingClass=a.oClasses.sSortableDesc,d.sSortingClassJUI=a.oClasses.sSortJUIDescAllowed)}function k(a){if(!1===a.oFeatures.bAutoWidth)return!1;da(a);for(var b=0,c=a.aoColumns.length;bj[f])d(a.aoColumns.length+j[f],b[i]);else if("string"===typeof j[f]){e=0;for(w=a.aoColumns.length;eb&&a[d]--; -1!=c&&a.splice(c,1)}function S(a,b,c){var d=a.aoColumns[c];return d.fnRender({iDataRow:b,iDataColumn:c,oSettings:a,aData:a.aoData[b]._aData,mDataProp:d.mData},v(a,b,c,"display"))}function ea(a,b){var c=a.aoData[b],d;if(null===c.nTr){c.nTr=l.createElement("tr");c.nTr._DT_RowIndex=b;c._aData.DT_RowId&&(c.nTr.id=c._aData.DT_RowId);c._aData.DT_RowClass&& -(c.nTr.className=c._aData.DT_RowClass);for(var i=0,f=a.aoColumns.length;i=a.fnRecordsDisplay()?0:a.iInitDisplayStart,a.iInitDisplayStart=-1,y(a));if(a.bDeferLoading)a.bDeferLoading=!1,a.iDraw++;else if(a.oFeatures.bServerSide){if(!a.bDestroying&&!wa(a))return}else a.iDraw++;if(0!==a.aiDisplay.length){var g= -a._iDisplayStart;d=a._iDisplayEnd;a.oFeatures.bServerSide&&(g=0,d=a.aoData.length);for(;g")[0];a.nTable.parentNode.insertBefore(b,a.nTable);a.nTableWrapper=h('
    ')[0];a.nTableReinsertBefore=a.nTable.nextSibling;for(var c=a.nTableWrapper,d=a.sDom.split(""),i,f,g,e,w,o,k,m=0;m")[0];w=d[m+ -1];if("'"==w||'"'==w){o="";for(k=2;d[m+k]!=w;)o+=d[m+k],k++;"H"==o?o=a.oClasses.sJUIHeader:"F"==o&&(o=a.oClasses.sJUIFooter);-1!=o.indexOf(".")?(w=o.split("."),e.id=w[0].substr(1,w[0].length-1),e.className=w[1]):"#"==o.charAt(0)?e.id=o.substr(1,o.length-1):e.className=o;m+=k}c.appendChild(e);c=e}else if(">"==g)c=c.parentNode;else if("l"==g&&a.oFeatures.bPaginate&&a.oFeatures.bLengthChange)i=ya(a),f=1;else if("f"==g&&a.oFeatures.bFilter)i=za(a),f=1;else if("r"==g&&a.oFeatures.bProcessing)i=Aa(a),f= -1;else if("t"==g)i=Ba(a),f=1;else if("i"==g&&a.oFeatures.bInfo)i=Ca(a),f=1;else if("p"==g&&a.oFeatures.bPaginate)i=Da(a),f=1;else if(0!==j.ext.aoFeatures.length){e=j.ext.aoFeatures;k=0;for(w=e.length;k'):""===c?'':c+' ',d=l.createElement("div");d.className=a.oClasses.sFilter;d.innerHTML="";a.aanFeatures.f||(d.id=a.sTableId+"_filter");c=h('input[type="text"]',d);d._DT_Input=c[0];c.val(b.sSearch.replace('"',"""));c.bind("keyup.DT",function(){for(var c=a.aanFeatures.f,d=this.value===""?"":this.value, -g=0,e=c.length;g=b.length)a.aiDisplay.splice(0,a.aiDisplay.length),a.aiDisplay=a.aiDisplayMaster.slice();else if(a.aiDisplay.length==a.aiDisplayMaster.length||i.sSearch.length>b.length||1==c||0!==b.indexOf(i.sSearch)){a.aiDisplay.splice(0, -a.aiDisplay.length);la(a,1);for(b=0;b").html(c).text()); -return c.replace(/[\n\r]/g," ")}function ma(a,b,c,d){if(c)return a=b?a.split(" "):oa(a).split(" "),a="^(?=.*?"+a.join(")(?=.*?")+").*$",RegExp(a,d?"i":"");a=b?a:oa(a);return RegExp(a,d?"i":"")}function Ja(a,b){return"function"===typeof j.ext.ofnSearch[b]?j.ext.ofnSearch[b](a):null===a?"":"html"==b?a.replace(/[\r\n]/g," ").replace(/<.*?>/g,""):"string"===typeof a?a.replace(/[\r\n]/g," "):a}function oa(a){return a.replace(RegExp("(\\/|\\.|\\*|\\+|\\?|\\||\\(|\\)|\\[|\\]|\\{|\\}|\\\\|\\$|\\^|\\-)","g"), -"\\$1")}function Ca(a){var b=l.createElement("div");b.className=a.oClasses.sInfo;a.aanFeatures.i||(a.aoDrawCallback.push({fn:Ka,sName:"information"}),b.id=a.sTableId+"_info");a.nTable.setAttribute("aria-describedby",a.sTableId+"_info");return b}function Ka(a){if(a.oFeatures.bInfo&&0!==a.aanFeatures.i.length){var b=a.oLanguage,c=a._iDisplayStart+1,d=a.fnDisplayEnd(),i=a.fnRecordsTotal(),f=a.fnRecordsDisplay(),g;g=0===f?b.sInfoEmpty:b.sInfo;f!=i&&(g+=" "+b.sInfoFiltered);g+=b.sInfoPostFix;g=ja(a,g); -null!==b.fnInfoCallback&&(g=b.fnInfoCallback.call(a.oInstance,a,c,d,i,f,g));a=a.aanFeatures.i;b=0;for(c=a.length;b",c,d,i=a.aLengthMenu;if(2==i.length&&"object"===typeof i[0]&&"object"===typeof i[1]){c=0;for(d=i[0].length;c'+i[1][c]+""}else{c=0;for(d=i.length;c'+i[c]+""}b+="";i=l.createElement("div");a.aanFeatures.l|| -(i.id=a.sTableId+"_length");i.className=a.oClasses.sLength;i.innerHTML="";h('select option[value="'+a._iDisplayLength+'"]',i).attr("selected",!0);h("select",i).bind("change.DT",function(){var b=h(this).val(),i=a.aanFeatures.l;c=0;for(d=i.length;ca.aiDisplay.length||-1==a._iDisplayLength?a.aiDisplay.length:a._iDisplayStart+a._iDisplayLength}function Da(a){if(a.oScroll.bInfinite)return null;var b=l.createElement("div");b.className=a.oClasses.sPaging+a.sPaginationType;j.ext.oPagination[a.sPaginationType].fnInit(a, -b,function(a){y(a);x(a)});a.aanFeatures.p||a.aoDrawCallback.push({fn:function(a){j.ext.oPagination[a.sPaginationType].fnUpdate(a,function(a){y(a);x(a)})},sName:"pagination"});return b}function qa(a,b){var c=a._iDisplayStart;if("number"===typeof b)a._iDisplayStart=b*a._iDisplayLength,a._iDisplayStart>a.fnRecordsDisplay()&&(a._iDisplayStart=0);else if("first"==b)a._iDisplayStart=0;else if("previous"==b)a._iDisplayStart=0<=a._iDisplayLength?a._iDisplayStart-a._iDisplayLength:0,0>a._iDisplayStart&&(a._iDisplayStart= -0);else if("next"==b)0<=a._iDisplayLength?a._iDisplayStart+a._iDisplayLengthh(a.nTable).height()-a.oScroll.iLoadGap&&a.fnDisplayEnd()d.offsetHeight||"scroll"==h(d).css("overflow-y")))a.nTable.style.width=q(h(a.nTable).outerWidth()-a.oScroll.iBarWidth)}else""!==a.oScroll.sXInner?a.nTable.style.width= -q(a.oScroll.sXInner):i==h(d).width()&&h(d).height()i-a.oScroll.iBarWidth&&(a.nTable.style.width=q(i))):a.nTable.style.width=q(i);i=h(a.nTable).outerWidth();C(s,e);C(function(a){p.push(q(h(a).width()))},e);C(function(a,b){a.style.width=p[b]},g);h(e).height(0);null!==a.nTFoot&&(C(s,j),C(function(a){n.push(q(h(a).width()))},j),C(function(a,b){a.style.width=n[b]},o),h(j).height(0));C(function(a,b){a.innerHTML= -"";a.style.width=p[b]},e);null!==a.nTFoot&&C(function(a,b){a.innerHTML="";a.style.width=n[b]},j);if(h(a.nTable).outerWidth()d.offsetHeight||"scroll"==h(d).css("overflow-y")?i+a.oScroll.iBarWidth:i;if(r&&(d.scrollHeight>d.offsetHeight||"scroll"==h(d).css("overflow-y")))a.nTable.style.width=q(g-a.oScroll.iBarWidth);d.style.width=q(g);a.nScrollHead.style.width=q(g);null!==a.nTFoot&&(a.nScrollFoot.style.width=q(g));""===a.oScroll.sX?D(a,1,"The table cannot fit into the current element which will cause column misalignment. The table has been drawn at its minimum possible width."): -""!==a.oScroll.sXInner&&D(a,1,"The table cannot fit into the current element which will cause column misalignment. Increase the sScrollXInner value or remove it to allow automatic calculation")}else d.style.width=q("100%"),a.nScrollHead.style.width=q("100%"),null!==a.nTFoot&&(a.nScrollFoot.style.width=q("100%"));""===a.oScroll.sY&&r&&(d.style.height=q(a.nTable.offsetHeight+a.oScroll.iBarWidth));""!==a.oScroll.sY&&a.oScroll.bCollapse&&(d.style.height=q(a.oScroll.sY),r=""!==a.oScroll.sX&&a.nTable.offsetWidth> -d.offsetWidth?a.oScroll.iBarWidth:0,a.nTable.offsetHeightd.clientHeight||"scroll"==h(d).css("overflow-y");b.style.paddingRight=c?a.oScroll.iBarWidth+"px":"0px";null!==a.nTFoot&&(R.style.width=q(r),l.style.width=q(r),l.style.paddingRight=c?a.oScroll.iBarWidth+"px":"0px");h(d).scroll();if(a.bSorted||a.bFiltered)d.scrollTop=0}function C(a,b,c){for(var d= -0,i=0,f=b.length,g,e;itd",b));j=N(a,f);for(f=d=0;fc)return null;if(null===a.aoData[c].nTr){var d=l.createElement("td");d.innerHTML=v(a,c,b,"");return d}return J(a,c)[b]}function Pa(a,b){for(var c=-1,d=-1,i=0;i/g,"");e.length>c&&(c=e.length,d=i)}return d}function q(a){if(null===a)return"0px";if("number"==typeof a)return 0>a?"0px":a+"px";var b=a.charCodeAt(a.length-1); -return 48>b||57/g,""),i=q[c].nTh,i.removeAttribute("aria-sort"),i.removeAttribute("aria-label"),q[c].bSortable?0d&&d++;f=RegExp(f+"[123]");var o;b=0;for(c=a.length;b
    ')[0];l.body.appendChild(b);a.oBrowser.bScrollOversize= -100===h("#DT_BrowserTest",b)[0].offsetWidth?!0:!1;l.body.removeChild(b)}function Va(a){return function(){var b=[s(this[j.ext.iApiIndex])].concat(Array.prototype.slice.call(arguments));return j.ext.oApi[a].apply(this,b)}}var U=/\[.*?\]$/,Wa=X.JSON?JSON.stringify:function(a){var b=typeof a;if("object"!==b||null===a)return"string"===b&&(a='"'+a+'"'),a+"";var c,d,e=[],f=h.isArray(a);for(c in a)d=a[c],b=typeof d,"string"===b?d='"'+d+'"':"object"===b&&null!==d&&(d=Wa(d)),e.push((f?"":'"'+c+'":')+d);return(f? -"[":"{")+e+(f?"]":"}")};this.$=function(a,b){var c,d,e=[],f;d=s(this[j.ext.iApiIndex]);var g=d.aoData,o=d.aiDisplay,k=d.aiDisplayMaster;b||(b={});b=h.extend({},{filter:"none",order:"current",page:"all"},b);if("current"==b.page){c=d._iDisplayStart;for(d=d.fnDisplayEnd();c=d.fnRecordsDisplay()&&(d._iDisplayStart-=d._iDisplayLength,0>d._iDisplayStart&&(d._iDisplayStart=0));if(c===n||c)y(d),x(d);return g};this.fnDestroy=function(a){var b=s(this[j.ext.iApiIndex]),c=b.nTableWrapper.parentNode,d=b.nTBody,i,f,a=a===n?!1:a;b.bDestroying=!0;A(b,"aoDestroyCallback","destroy",[b]);if(!a){i=0;for(f=b.aoColumns.length;itr>td."+b.oClasses.sRowEmpty,b.nTable).parent().remove();b.nTable!=b.nTHead.parentNode&&(h(b.nTable).children("thead").remove(),b.nTable.appendChild(b.nTHead));b.nTFoot&&b.nTable!=b.nTFoot.parentNode&&(h(b.nTable).children("tfoot").remove(),b.nTable.appendChild(b.nTFoot));b.nTable.parentNode.removeChild(b.nTable);h(b.nTableWrapper).remove();b.aaSorting=[];b.aaSortingFixed=[];P(b);h(T(b)).removeClass(b.asStripeClasses.join(" "));h("th, td",b.nTHead).removeClass([b.oClasses.sSortable,b.oClasses.sSortableAsc, -b.oClasses.sSortableDesc,b.oClasses.sSortableNone].join(" "));b.bJUI&&(h("th span."+b.oClasses.sSortIcon+", td span."+b.oClasses.sSortIcon,b.nTHead).remove(),h("th, td",b.nTHead).each(function(){var a=h("div."+b.oClasses.sSortJUIWrapper,this),c=a.contents();h(this).append(c);a.remove()}));!a&&b.nTableReinsertBefore?c.insertBefore(b.nTable,b.nTableReinsertBefore):a||c.appendChild(b.nTable);i=0;for(f=b.aoData.length;i=t(d);if(!m)for(e=a;et<"F"ip>')):h.extend(g.oClasses,j.ext.oStdClasses);h(this).addClass(g.oClasses.sTable);if(""!==g.oScroll.sX||""!==g.oScroll.sY)g.oScroll.iBarWidth=Qa();g.iInitDisplayStart===n&&(g.iInitDisplayStart=e.iDisplayStart, -g._iDisplayStart=e.iDisplayStart);e.bStateSave&&(g.oFeatures.bStateSave=!0,Sa(g,e),z(g,"aoDrawCallback",ra,"state_save"));null!==e.iDeferLoading&&(g.bDeferLoading=!0,a=h.isArray(e.iDeferLoading),g._iRecordsDisplay=a?e.iDeferLoading[0]:e.iDeferLoading,g._iRecordsTotal=a?e.iDeferLoading[1]:e.iDeferLoading);null!==e.aaData&&(f=!0);""!==e.oLanguage.sUrl?(g.oLanguage.sUrl=e.oLanguage.sUrl,h.getJSON(g.oLanguage.sUrl,null,function(a){pa(a);h.extend(true,g.oLanguage,e.oLanguage,a);ba(g)}),i=!0):h.extend(!0, -g.oLanguage,e.oLanguage);null===e.asStripeClasses&&(g.asStripeClasses=[g.oClasses.sStripeOdd,g.oClasses.sStripeEven]);b=g.asStripeClasses.length;g.asDestroyStripes=[];if(b){c=!1;d=h(this).children("tbody").children("tr:lt("+b+")");for(a=0;a=g.aoColumns.length&&(g.aaSorting[a][0]=0);var k=g.aoColumns[g.aaSorting[a][0]];g.aaSorting[a][2]===n&&(g.aaSorting[a][2]=0);e.aaSorting===n&&g.saved_aaSorting===n&&(g.aaSorting[a][1]= -k.asSorting[0]);c=0;for(d=k.asSorting.length;c=parseInt(n,10)};j.fnIsDataTable=function(e){for(var h=j.settings,m=0;me)return e;for(var h=e+"",e=h.split(""),j="",h=h.length,k=0;k'+k.sPrevious+''+k.sNext+"":'';h(j).append(k);var l=h("a",j), -k=l[0],l=l[1];e.oApi._fnBindAction(k,{action:"previous"},n);e.oApi._fnBindAction(l,{action:"next"},n);e.aanFeatures.p||(j.id=e.sTableId+"_paginate",k.id=e.sTableId+"_previous",l.id=e.sTableId+"_next",k.setAttribute("aria-controls",e.sTableId),l.setAttribute("aria-controls",e.sTableId))},fnUpdate:function(e){if(e.aanFeatures.p)for(var h=e.oClasses,j=e.aanFeatures.p,k,l=0,n=j.length;l'+k.sFirst+''+k.sPrevious+''+k.sNext+''+k.sLast+"");var t=h("a",j),k=t[0],l=t[1],r=t[2],t=t[3];e.oApi._fnBindAction(k,{action:"first"},n);e.oApi._fnBindAction(l,{action:"previous"},n);e.oApi._fnBindAction(r,{action:"next"},n);e.oApi._fnBindAction(t,{action:"last"},n);e.aanFeatures.p||(j.id=e.sTableId+"_paginate",k.id=e.sTableId+"_first",l.id=e.sTableId+"_previous",r.id=e.sTableId+"_next",t.id=e.sTableId+"_last")}, -fnUpdate:function(e,o){if(e.aanFeatures.p){var m=j.ext.oPagination.iFullNumbersShowPages,k=Math.floor(m/2),l=Math.ceil(e.fnRecordsDisplay()/e._iDisplayLength),n=Math.ceil(e._iDisplayStart/e._iDisplayLength)+1,t="",r,B=e.oClasses,u,M=e.aanFeatures.p,L=function(h){e.oApi._fnBindAction(this,{page:h+r-1},function(h){e.oApi._fnPageChange(e,h.data.page);o(e);h.preventDefault()})};-1===e._iDisplayLength?n=k=r=1:l=l-k?(r=l-m+1,k=l):(r=n-Math.ceil(m/2)+1,k=r+m-1);for(m=r;m<=k;m++)t+= -n!==m?''+e.fnFormatNumber(m)+"":''+e.fnFormatNumber(m)+"";m=0;for(k=M.length;mh?1:0},"string-desc":function(e,h){return eh?-1:0},"html-pre":function(e){return e.replace(/<.*?>/g,"").toLowerCase()},"html-asc":function(e,h){return eh?1:0},"html-desc":function(e,h){return e< -h?1:e>h?-1:0},"date-pre":function(e){e=Date.parse(e);if(isNaN(e)||""===e)e=Date.parse("01/01/1970 00:00:00");return e},"date-asc":function(e,h){return e-h},"date-desc":function(e,h){return h-e},"numeric-pre":function(e){return"-"==e||""===e?0:1*e},"numeric-asc":function(e,h){return e-h},"numeric-desc":function(e,h){return h-e}});h.extend(j.ext.aTypes,[function(e){if("number"===typeof e)return"numeric";if("string"!==typeof e)return null;var h,j=!1;h=e.charAt(0);if(-1=="0123456789-".indexOf(h))return null; -for(var k=1;k")?"html":null}]);h.fn.DataTable=j;h.fn.dataTable=j;h.fn.dataTableSettings=j.settings;h.fn.dataTableExt=j.ext};"function"===typeof define&&define.amd?define(["jquery"],L):jQuery&&!jQuery.fn.dataTable&& -L(jQuery)})(window,document); diff --git a/portal-common/src/main/webapp/common/thirdparty/data-tables/jquery.dataTables.js b/portal-common/src/main/webapp/common/thirdparty/data-tables/jquery.dataTables.js deleted file mode 100644 index 5e2808c2..00000000 --- a/portal-common/src/main/webapp/common/thirdparty/data-tables/jquery.dataTables.js +++ /dev/null @@ -1,15268 +0,0 @@ -/*! DataTables 1.10.11 - * ©2008-2015 SpryMedia Ltd - datatables.net/license - */ - -/** - * @summary DataTables - * @description Paginate, search and order HTML tables - * @version 1.10.11 - * @file jquery.dataTables.js - * @author SpryMedia Ltd (www.sprymedia.co.uk) - * @contact www.sprymedia.co.uk/contact - * @copyright Copyright 2008-2015 SpryMedia Ltd. - * - * This source file is free software, available under the following license: - * MIT license - http://datatables.net/license - * - * This source file is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details. - * - * For details please refer to: http://www.datatables.net - */ - -/*jslint evil: true, undef: true, browser: true */ -/*globals $,require,jQuery,define,_selector_run,_selector_opts,_selector_first,_selector_row_indexes,_ext,_Api,_api_register,_api_registerPlural,_re_new_lines,_re_html,_re_formatted_numeric,_re_escape_regex,_empty,_intVal,_numToDecimal,_isNumber,_isHtml,_htmlNumeric,_pluck,_pluck_order,_range,_stripHtml,_unique,_fnBuildAjax,_fnAjaxUpdate,_fnAjaxParameters,_fnAjaxUpdateDraw,_fnAjaxDataSrc,_fnAddColumn,_fnColumnOptions,_fnAdjustColumnSizing,_fnVisibleToColumnIndex,_fnColumnIndexToVisible,_fnVisbleColumns,_fnGetColumns,_fnColumnTypes,_fnApplyColumnDefs,_fnHungarianMap,_fnCamelToHungarian,_fnLanguageCompat,_fnBrowserDetect,_fnAddData,_fnAddTr,_fnNodeToDataIndex,_fnNodeToColumnIndex,_fnGetCellData,_fnSetCellData,_fnSplitObjNotation,_fnGetObjectDataFn,_fnSetObjectDataFn,_fnGetDataMaster,_fnClearTable,_fnDeleteIndex,_fnInvalidate,_fnGetRowElements,_fnCreateTr,_fnBuildHead,_fnDrawHead,_fnDraw,_fnReDraw,_fnAddOptionsHtml,_fnDetectHeader,_fnGetUniqueThs,_fnFeatureHtmlFilter,_fnFilterComplete,_fnFilterCustom,_fnFilterColumn,_fnFilter,_fnFilterCreateSearch,_fnEscapeRegex,_fnFilterData,_fnFeatureHtmlInfo,_fnUpdateInfo,_fnInfoMacros,_fnInitialise,_fnInitComplete,_fnLengthChange,_fnFeatureHtmlLength,_fnFeatureHtmlPaginate,_fnPageChange,_fnFeatureHtmlProcessing,_fnProcessingDisplay,_fnFeatureHtmlTable,_fnScrollDraw,_fnApplyToChildren,_fnCalculateColumnWidths,_fnThrottle,_fnConvertToWidth,_fnGetWidestNode,_fnGetMaxLenString,_fnStringToCss,_fnSortFlatten,_fnSort,_fnSortAria,_fnSortListener,_fnSortAttachListener,_fnSortingClasses,_fnSortData,_fnSaveState,_fnLoadState,_fnSettingsFromNode,_fnLog,_fnMap,_fnBindAction,_fnCallbackReg,_fnCallbackFire,_fnLengthOverflow,_fnRenderer,_fnDataSource,_fnRowAttributes*/ - -(function( factory ) { - "use strict"; - - if ( typeof define === 'function' && define.amd ) { - // AMD - define( ['jquery'], function ( $ ) { - return factory( $, window, document ); - } ); - } - else if ( typeof exports === 'object' ) { - // CommonJS - module.exports = function (root, $) { - if ( ! root ) { - // CommonJS environments without a window global must pass a - // root. This will give an error otherwise - root = window; - } - - if ( ! $ ) { - $ = typeof window !== 'undefined' ? // jQuery's factory checks for a global window - require('jquery') : - require('jquery')( root ); - } - - return factory( $, root, root.document ); - }; - } - else { - // Browser - factory( jQuery, window, document ); - } -} -(function( $, window, document, undefined ) { - "use strict"; - - /** - * DataTables is a plug-in for the jQuery Javascript library. It is a highly - * flexible tool, based upon the foundations of progressive enhancement, - * which will add advanced interaction controls to any HTML table. For a - * full list of features please refer to - * [DataTables.net](href="http://datatables.net). - * - * Note that the `DataTable` object is not a global variable but is aliased - * to `jQuery.fn.DataTable` and `jQuery.fn.dataTable` through which it may - * be accessed. - * - * @class - * @param {object} [init={}] Configuration object for DataTables. Options - * are defined by {@link DataTable.defaults} - * @requires jQuery 1.7+ - * - * @example - * // Basic initialisation - * $(document).ready( function { - * $('#example').dataTable(); - * } ); - * - * @example - * // Initialisation with configuration options - in this case, disable - * // pagination and sorting. - * $(document).ready( function { - * $('#example').dataTable( { - * "paginate": false, - * "sort": false - * } ); - * } ); - */ - var DataTable; - - - /* - * It is useful to have variables which are scoped locally so only the - * DataTables functions can access them and they don't leak into global space. - * At the same time these functions are often useful over multiple files in the - * core and API, so we list, or at least document, all variables which are used - * by DataTables as private variables here. This also ensures that there is no - * clashing of variable names and that they can easily referenced for reuse. - */ - - - // Defined else where - // _selector_run - // _selector_opts - // _selector_first - // _selector_row_indexes - - var _ext; // DataTable.ext - var _Api; // DataTable.Api - var _api_register; // DataTable.Api.register - var _api_registerPlural; // DataTable.Api.registerPlural - - var _re_dic = {}; - var _re_new_lines = /[\r\n]/g; - var _re_html = /<.*?>/g; - var _re_date_start = /^[\w\+\-]/; - var _re_date_end = /[\w\+\-]$/; - - // Escape regular expression special characters - var _re_escape_regex = new RegExp( '(\\' + [ '/', '.', '*', '+', '?', '|', '(', ')', '[', ']', '{', '}', '\\', '$', '^', '-' ].join('|\\') + ')', 'g' ); - - // http://en.wikipedia.org/wiki/Foreign_exchange_market - // - \u20BD - Russian ruble. - // - \u20a9 - South Korean Won - // - \u20BA - Turkish Lira - // - \u20B9 - Indian Rupee - // - R - Brazil (R$) and South Africa - // - fr - Swiss Franc - // - kr - Swedish krona, Norwegian krone and Danish krone - // - \u2009 is thin space and \u202F is narrow no-break space, both used in many - // standards as thousands separators. - var _re_formatted_numeric = /[',$£€¥%\u2009\u202F\u20BD\u20a9\u20BArfk]/gi; - - - var _empty = function ( d ) { - return !d || d === true || d === '-' ? true : false; - }; - - - var _intVal = function ( s ) { - var integer = parseInt( s, 10 ); - return !isNaN(integer) && isFinite(s) ? integer : null; - }; - - // Convert from a formatted number with characters other than `.` as the - // decimal place, to a Javascript number - var _numToDecimal = function ( num, decimalPoint ) { - // Cache created regular expressions for speed as this function is called often - if ( ! _re_dic[ decimalPoint ] ) { - _re_dic[ decimalPoint ] = new RegExp( _fnEscapeRegex( decimalPoint ), 'g' ); - } - return typeof num === 'string' && decimalPoint !== '.' ? - num.replace( /\./g, '' ).replace( _re_dic[ decimalPoint ], '.' ) : - num; - }; - - - var _isNumber = function ( d, decimalPoint, formatted ) { - var strType = typeof d === 'string'; - - // If empty return immediately so there must be a number if it is a - // formatted string (this stops the string "k", or "kr", etc being detected - // as a formatted number for currency - if ( _empty( d ) ) { - return true; - } - - if ( decimalPoint && strType ) { - d = _numToDecimal( d, decimalPoint ); - } - - if ( formatted && strType ) { - d = d.replace( _re_formatted_numeric, '' ); - } - - return !isNaN( parseFloat(d) ) && isFinite( d ); - }; - - - // A string without HTML in it can be considered to be HTML still - var _isHtml = function ( d ) { - return _empty( d ) || typeof d === 'string'; - }; - - - var _htmlNumeric = function ( d, decimalPoint, formatted ) { - if ( _empty( d ) ) { - return true; - } - - var html = _isHtml( d ); - return ! html ? - null : - _isNumber( _stripHtml( d ), decimalPoint, formatted ) ? - true : - null; - }; - - - var _pluck = function ( a, prop, prop2 ) { - var out = []; - var i=0, ien=a.length; - - // Could have the test in the loop for slightly smaller code, but speed - // is essential here - if ( prop2 !== undefined ) { - for ( ; i') - .css( { - position: 'fixed', - top: 0, - left: 0, - height: 1, - width: 1, - overflow: 'hidden' - } ) - .append( - $('
    ') - .css( { - position: 'absolute', - top: 1, - left: 1, - width: 100, - overflow: 'scroll' - } ) - .append( - $('
    ') - .css( { - width: '100%', - height: 10 - } ) - ) - ) - .appendTo( 'body' ); - - var outer = n.children(); - var inner = outer.children(); - - // Numbers below, in order, are: - // inner.offsetWidth, inner.clientWidth, outer.offsetWidth, outer.clientWidth - // - // IE6 XP: 100 100 100 83 - // IE7 Vista: 100 100 100 83 - // IE 8+ Windows: 83 83 100 83 - // Evergreen Windows: 83 83 100 83 - // Evergreen Mac with scrollbars: 85 85 100 85 - // Evergreen Mac without scrollbars: 100 100 100 100 - - // Get scrollbar width - browser.barWidth = outer[0].offsetWidth - outer[0].clientWidth; - - // IE6/7 will oversize a width 100% element inside a scrolling element, to - // include the width of the scrollbar, while other browsers ensure the inner - // element is contained without forcing scrolling - browser.bScrollOversize = inner[0].offsetWidth === 100 && outer[0].clientWidth !== 100; - - // In rtl text layout, some browsers (most, but not all) will place the - // scrollbar on the left, rather than the right. - browser.bScrollbarLeft = Math.round( inner.offset().left ) !== 1; - - // IE8- don't provide height and width for getBoundingClientRect - browser.bBounding = n[0].getBoundingClientRect().width ? true : false; - - n.remove(); - } - - $.extend( settings.oBrowser, DataTable.__browser ); - settings.oScroll.iBarWidth = DataTable.__browser.barWidth; - } - - - /** - * Array.prototype reduce[Right] method, used for browsers which don't support - * JS 1.6. Done this way to reduce code size, since we iterate either way - * @param {object} settings dataTables settings object - * @memberof DataTable#oApi - */ - function _fnReduce ( that, fn, init, start, end, inc ) - { - var - i = start, - value, - isSet = false; - - if ( init !== undefined ) { - value = init; - isSet = true; - } - - while ( i !== end ) { - if ( ! that.hasOwnProperty(i) ) { - continue; - } - - value = isSet ? - fn( value, that[i], i, that ) : - that[i]; - - isSet = true; - i += inc; - } - - return value; - } - - /** - * Add a column to the list used for the table with default values - * @param {object} oSettings dataTables settings object - * @param {node} nTh The th element for this column - * @memberof DataTable#oApi - */ - function _fnAddColumn( oSettings, nTh ) - { - // Add column to aoColumns array - var oDefaults = DataTable.defaults.column; - var iCol = oSettings.aoColumns.length; - var oCol = $.extend( {}, DataTable.models.oColumn, oDefaults, { - "nTh": nTh ? nTh : document.createElement('th'), - "sTitle": oDefaults.sTitle ? oDefaults.sTitle : nTh ? nTh.innerHTML : '', - "aDataSort": oDefaults.aDataSort ? oDefaults.aDataSort : [iCol], - "mData": oDefaults.mData ? oDefaults.mData : iCol, - idx: iCol - } ); - oSettings.aoColumns.push( oCol ); - - // Add search object for column specific search. Note that the `searchCols[ iCol ]` - // passed into extend can be undefined. This allows the user to give a default - // with only some of the parameters defined, and also not give a default - var searchCols = oSettings.aoPreSearchCols; - searchCols[ iCol ] = $.extend( {}, DataTable.models.oSearch, searchCols[ iCol ] ); - - // Use the default column options function to initialise classes etc - _fnColumnOptions( oSettings, iCol, $(nTh).data() ); - } - - - /** - * Apply options for a column - * @param {object} oSettings dataTables settings object - * @param {int} iCol column index to consider - * @param {object} oOptions object with sType, bVisible and bSearchable etc - * @memberof DataTable#oApi - */ - function _fnColumnOptions( oSettings, iCol, oOptions ) - { - var oCol = oSettings.aoColumns[ iCol ]; - var oClasses = oSettings.oClasses; - var th = $(oCol.nTh); - - // Try to get width information from the DOM. We can't get it from CSS - // as we'd need to parse the CSS stylesheet. `width` option can override - if ( ! oCol.sWidthOrig ) { - // Width attribute - oCol.sWidthOrig = th.attr('width') || null; - - // Style attribute - var t = (th.attr('style') || '').match(/width:\s*(\d+[pxem%]+)/); - if ( t ) { - oCol.sWidthOrig = t[1]; - } - } - - /* User specified column options */ - if ( oOptions !== undefined && oOptions !== null ) - { - // Backwards compatibility - _fnCompatCols( oOptions ); - - // Map camel case parameters to their Hungarian counterparts - _fnCamelToHungarian( DataTable.defaults.column, oOptions ); - - /* Backwards compatibility for mDataProp */ - if ( oOptions.mDataProp !== undefined && !oOptions.mData ) - { - oOptions.mData = oOptions.mDataProp; - } - - if ( oOptions.sType ) - { - oCol._sManualType = oOptions.sType; - } - - // `class` is a reserved word in Javascript, so we need to provide - // the ability to use a valid name for the camel case input - if ( oOptions.className && ! oOptions.sClass ) - { - oOptions.sClass = oOptions.className; - } - - $.extend( oCol, oOptions ); - _fnMap( oCol, oOptions, "sWidth", "sWidthOrig" ); - - /* iDataSort to be applied (backwards compatibility), but aDataSort will take - * priority if defined - */ - if ( oOptions.iDataSort !== undefined ) - { - oCol.aDataSort = [ oOptions.iDataSort ]; - } - _fnMap( oCol, oOptions, "aDataSort" ); - } - - /* Cache the data get and set functions for speed */ - var mDataSrc = oCol.mData; - var mData = _fnGetObjectDataFn( mDataSrc ); - var mRender = oCol.mRender ? _fnGetObjectDataFn( oCol.mRender ) : null; - - var attrTest = function( src ) { - return typeof src === 'string' && src.indexOf('@') !== -1; - }; - oCol._bAttrSrc = $.isPlainObject( mDataSrc ) && ( - attrTest(mDataSrc.sort) || attrTest(mDataSrc.type) || attrTest(mDataSrc.filter) - ); - oCol._setter = null; - - oCol.fnGetData = function (rowData, type, meta) { - var innerData = mData( rowData, type, undefined, meta ); - - return mRender && type ? - mRender( innerData, type, rowData, meta ) : - innerData; - }; - oCol.fnSetData = function ( rowData, val, meta ) { - return _fnSetObjectDataFn( mDataSrc )( rowData, val, meta ); - }; - - // Indicate if DataTables should read DOM data as an object or array - // Used in _fnGetRowElements - if ( typeof mDataSrc !== 'number' ) { - oSettings._rowReadObject = true; - } - - /* Feature sorting overrides column specific when off */ - if ( !oSettings.oFeatures.bSort ) - { - oCol.bSortable = false; - th.addClass( oClasses.sSortableNone ); // Have to add class here as order event isn't called - } - - /* Check that the class assignment is correct for sorting */ - var bAsc = $.inArray('asc', oCol.asSorting) !== -1; - var bDesc = $.inArray('desc', oCol.asSorting) !== -1; - if ( !oCol.bSortable || (!bAsc && !bDesc) ) - { - oCol.sSortingClass = oClasses.sSortableNone; - oCol.sSortingClassJUI = ""; - } - else if ( bAsc && !bDesc ) - { - oCol.sSortingClass = oClasses.sSortableAsc; - oCol.sSortingClassJUI = oClasses.sSortJUIAscAllowed; - } - else if ( !bAsc && bDesc ) - { - oCol.sSortingClass = oClasses.sSortableDesc; - oCol.sSortingClassJUI = oClasses.sSortJUIDescAllowed; - } - else - { - oCol.sSortingClass = oClasses.sSortable; - oCol.sSortingClassJUI = oClasses.sSortJUI; - } - } - - - /** - * Adjust the table column widths for new data. Note: you would probably want to - * do a redraw after calling this function! - * @param {object} settings dataTables settings object - * @memberof DataTable#oApi - */ - function _fnAdjustColumnSizing ( settings ) - { - /* Not interested in doing column width calculation if auto-width is disabled */ - if ( settings.oFeatures.bAutoWidth !== false ) - { - var columns = settings.aoColumns; - - _fnCalculateColumnWidths( settings ); - for ( var i=0 , iLen=columns.length ; i
    -
    - - \ No newline at end of file diff --git a/portal-resmgr/src/main/webapp/resmgr-sdn/site.html b/portal-resmgr/src/main/webapp/resmgr-sdn/site.html deleted file mode 100644 index cbfb1392..00000000 --- a/portal-resmgr/src/main/webapp/resmgr-sdn/site.html +++ /dev/null @@ -1,247 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - -
    - -
    -
    -
    -
    -
    Create
    -
    - - - - -
    -
    -
    - -
    -
    -
    -
    - - - - - - - - - - - - -
    NameTypeTenant NameTenant SiteLocationAction
    -
    -
    -
    -
    - - - -
    -
    -
    -
    -
    -
    -
    -
    -
    - - - - \ No newline at end of file diff --git a/resmgr/pom.xml b/resmgr/pom.xml new file mode 100644 index 00000000..34dc007c --- /dev/null +++ b/resmgr/pom.xml @@ -0,0 +1,43 @@ + + + + + org.openo.client.gui + client-gui + 1.1.0-SNAPSHOT + + + 4.0.0 + resmgr + 1.1.0-SNAPSHOT + war + client-gui/resmgr + + + + + org.apache.maven.plugins + maven-war-plugin + + false + + + + + diff --git a/resmgr/src/main/webapp/resmgr-nfv/conf/License.txt b/resmgr/src/main/webapp/resmgr-nfv/conf/License.txt new file mode 100644 index 00000000..8e698ecb --- /dev/null +++ b/resmgr/src/main/webapp/resmgr-nfv/conf/License.txt @@ -0,0 +1,362 @@ +THIS LICENSE FILE CONTAINS THE LICENSE APPLICABLE DEPENDING ON THE TYPE OF CONTRIBUTIONS. + +APACHE LICENSE 2 IS APPLICABLE FOR SOURCE CODE, CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL FOR DOCUMENTATION + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + + +Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. + +"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. + +2. Grant of Copyright License. + +Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. + +Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. + +You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: + +You must give any other recipients of the Work or Derivative Works a copy of this License; and You must cause any modified files to carry prominent notices stating that You changed the files; and You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. + +5. Submission of Contributions. + +Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. + +6. Trademarks. + +This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. + +Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. + +In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. + +While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +Attribution 4.0 International + +https://creativecommons.org/licenses/by/4.0/legalcode + +Creative Commons Corporation ("Creative Commons") is not a law firm and does not provide legal services or legal advice. Distribution of Creative Commons public licenses does not create a lawyer-client or other relationship. Creative Commons makes its licenses and related information available on an "as-is" basis. Creative Commons gives no warranties regarding its licenses, any material licensed under their terms and conditions, or any related information. Creative Commons disclaims all liability for damages resulting from their use to the fullest extent possible. + +Using Creative Commons Public Licenses + +Creative Commons public licenses provide a standard set of terms and conditions that creators and other rights holders may use to share original works of authorship and other material subject to copyright and certain other rights specified in the public license below. The following considerations are for informational purposes only, are not exhaustive, and do not form part of our licenses. + + Considerations for licensors: Our public licenses are + intended for use by those authorized to give the public + permission to use material in ways otherwise restricted by + copyright and certain other rights. Our licenses are + irrevocable. Licensors should read and understand the terms + and conditions of the license they choose before applying it. + Licensors should also secure all rights necessary before + applying our licenses so that the public can reuse the + material as expected. Licensors should clearly mark any + material not subject to the license. This includes other CC- + licensed material, or material used under an exception or + limitation to copyright. More considerations for licensors: + wiki.creativecommons.org/Considerations_for_licensors + Considerations for the public: By using one of our public + licenses, a licensor grants the public permission to use the + licensed material under specified terms and conditions. If + the licensor's permission is not necessary for any reason--for + example, because of any applicable exception or limitation to + copyright--then that use is not regulated by the license. Our + licenses grant only permissions under copyright and certain + other rights that a licensor has authority to grant. Use of + the licensed material may still be restricted for other + reasons, including because others have copyright or other + rights in the material. A licensor may make special requests, + such as asking that all changes be marked or described. + Although not required by our licenses, you are encouraged to + respect those requests where reasonable. More_considerations + for the public: + wiki.creativecommons.org/Considerations_for_licensees +Creative Commons Attribution 4.0 International Public License + +By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions. + + +Section 1 -- Definitions. + + a. Adapted Material means material subject to Copyright and Similar + Rights that is derived from or based upon the Licensed Material + and in which the Licensed Material is translated, altered, + arranged, transformed, or otherwise modified in a manner requiring + permission under the Copyright and Similar Rights held by the + Licensor. For purposes of this Public License, where the Licensed + Material is a musical work, performance, or sound recording, + Adapted Material is always produced where the Licensed Material is + synched in timed relation with a moving image. + b. Adapter's License means the license You apply to Your Copyright + and Similar Rights in Your contributions to Adapted Material in + accordance with the terms and conditions of this Public License. + c. Copyright and Similar Rights means copyright and/or similar rights + closely related to copyright including, without limitation, + performance, broadcast, sound recording, and Sui Generis Database + Rights, without regard to how the rights are labeled or + categorized. For purposes of this Public License, the rights + specified in Section 2(b)(1)-(2) are not Copyright and Similar + Rights. + d. Effective Technological Measures means those measures that, in the + absence of proper authority, may not be circumvented under laws + fulfilling obligations under Article 11 of the WIPO Copyright + Treaty adopted on December 20, 1996, and/or similar international + agreements. + e. Exceptions and Limitations means fair use, fair dealing, and/or + any other exception or limitation to Copyright and Similar Rights + that applies to Your use of the Licensed Material. + f. Licensed Material means the artistic or literary work, database, + or other material to which the Licensor applied this Public + License. + g. Licensed Rights means the rights granted to You subject to the + terms and conditions of this Public License, which are limited to + all Copyright and Similar Rights that apply to Your use of the + Licensed Material and that the Licensor has authority to license. + h. Licensor means the individual(s) or entity(ies) granting rights + under this Public License. + i. Share means to provide material to the public by any means or + process that requires permission under the Licensed Rights, such + as reproduction, public display, public performance, distribution, + dissemination, communication, or importation, and to make material + available to the public including in ways that members of the + public may access the material from a place and at a time + individually chosen by them. + j. Sui Generis Database Rights means rights other than copyright + resulting from Directive 96/9/EC of the European Parliament and of + the Council of 11 March 1996 on the legal protection of databases, + as amended and/or succeeded, as well as other essentially + equivalent rights anywhere in the world. + k. You means the individual or entity exercising the Licensed Rights + under this Public License. Your has a corresponding meaning. + +Section 2 -- Scope. + + a. License grant. + 1. Subject to the terms and conditions of this Public License, + the Licensor hereby grants You a worldwide, royalty-free, + non-sublicensable, non-exclusive, irrevocable license to + exercise the Licensed Rights in the Licensed Material to: + a. reproduce and Share the Licensed Material, in whole or + in part; and + b. produce, reproduce, and Share Adapted Material. + 2. Exceptions and Limitations. For the avoidance of doubt, where + Exceptions and Limitations apply to Your use, this Public + License does not apply, and You do not need to comply with + its terms and conditions. + 3. Term. The term of this Public License is specified in Section + 6(a). + 4. Media and formats; technical modifications allowed. The + Licensor authorizes You to exercise the Licensed Rights in + all media and formats whether now known or hereafter created, + and to make technical modifications necessary to do so. The + Licensor waives and/or agrees not to assert any right or + authority to forbid You from making technical modifications + necessary to exercise the Licensed Rights, including + technical modifications necessary to circumvent Effective + Technological Measures. For purposes of this Public License, + simply making modifications authorized by this Section 2(a) + (4) never produces Adapted Material. + 5. Downstream recipients. + a. Offer from the Licensor -- Licensed Material. Every + recipient of the Licensed Material automatically + receives an offer from the Licensor to exercise the + Licensed Rights under the terms and conditions of this + Public License. + b. No downstream restrictions. You may not offer or impose + any additional or different terms or conditions on, or + apply any Effective Technological Measures to, the + Licensed Material if doing so restricts exercise of the + Licensed Rights by any recipient of the Licensed + Material. + 6. No endorsement. Nothing in this Public License constitutes or + may be construed as permission to assert or imply that You + are, or that Your use of the Licensed Material is, connected + with, or sponsored, endorsed, or granted official status by, + the Licensor or others designated to receive attribution as + provided in Section 3(a)(1)(A)(i). + b. Other rights. + 1. Moral rights, such as the right of integrity, are not + licensed under this Public License, nor are publicity, + privacy, and/or other similar personality rights; however, to + the extent possible, the Licensor waives and/or agrees not to + assert any such rights held by the Licensor to the limited + extent necessary to allow You to exercise the Licensed + Rights, but not otherwise. + 2. Patent and trademark rights are not licensed under this + Public License. + 3. To the extent possible, the Licensor waives any right to + collect royalties from You for the exercise of the Licensed + Rights, whether directly or through a collecting society + under any voluntary or waivable statutory or compulsory + licensing scheme. In all other cases the Licensor expressly + reserves any right to collect such royalties. + +Section 3 -- License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the following conditions. + + a. Attribution. + 1. If You Share the Licensed Material (including in modified + form), You must: + a. retain the following if it is supplied by the Licensor + with the Licensed Material: + i. identification of the creator(s) of the Licensed + Material and any others designated to receive + attribution, in any reasonable manner requested by + the Licensor (including by pseudonym if + designated); + ii. a copyright notice; + iii. a notice that refers to this Public License; + iv. a notice that refers to the disclaimer of + warranties; + v. a URI or hyperlink to the Licensed Material to the + extent reasonably practicable; + b. indicate if You modified the Licensed Material and + retain an indication of any previous modifications; and + c. indicate the Licensed Material is licensed under this + Public License, and include the text of, or the URI or + hyperlink to, this Public License. + 2. You may satisfy the conditions in Section 3(a)(1) in any + reasonable manner based on the medium, means, and context in + which You Share the Licensed Material. For example, it may be + reasonable to satisfy the conditions by providing a URI or + hyperlink to a resource that includes the required + information. + 3. If requested by the Licensor, You must remove any of the + information required by Section 3(a)(1)(A) to the extent + reasonably practicable. + 4. If You Share Adapted Material You produce, the Adapter's + License You apply must not prevent recipients of the Adapted + Material from complying with this Public License. + +Section 4 -- Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material: + + a. for the avoidance of doubt, Section 2(a)(1) grants You the right + to extract, reuse, reproduce, and Share all or a substantial + portion of the contents of the database; + b. if You include all or a substantial portion of the database + contents in a database in which You have Sui Generis Database + Rights, then the database in which You have Sui Generis Database + Rights (but not its individual contents) is Adapted Material; and + c. You must comply with the conditions in Section 3(a) if You Share + all or a substantial portion of the contents of the database. +For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights. + + +Section 5 -- Disclaimer of Warranties and Limitation of Liability. + + a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE + EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS + AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF + ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, + IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, + WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, + ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT + KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT + ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. + b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE + TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, + NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, + INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, + COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR + USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR + DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR + IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + c. The disclaimer of warranties and limitation of liability provided + above shall be interpreted in a manner that, to the extent + possible, most closely approximates an absolute disclaimer and + waiver of all liability. + +Section 6 -- Term and Termination. + + a. This Public License applies for the term of the Copyright and + Similar Rights licensed here. However, if You fail to comply with + this Public License, then Your rights under this Public License + terminate automatically. + b. Where Your right to use the Licensed Material has terminated under + Section 6(a), it reinstates: + 1. automatically as of the date the violation is cured, provided + it is cured within 30 days of Your discovery of the + violation; or + 2. upon express reinstatement by the Licensor. + For the avoidance of doubt, this Section 6(b) does not affect any + right the Licensor may have to seek remedies for Your violations + of this Public License. + c. For the avoidance of doubt, the Licensor may also offer the + Licensed Material under separate terms or conditions or stop + distributing the Licensed Material at any time; however, doing so + will not terminate this Public License. + d. Sections 1, 5, 6, 7, and 8 survive termination of this Public + License. + +Section 7 -- Other Terms and Conditions. + + a. The Licensor shall not be bound by any additional or different + terms or conditions communicated by You unless expressly agreed. + b. Any arrangements, understandings, or agreements regarding the + Licensed Material not stated herein are separate from and + independent of the terms and conditions of this Public License. + +Section 8 -- Interpretation. + + a. For the avoidance of doubt, this Public License does not, and + shall not be interpreted to, reduce, limit, restrict, or impose + conditions on any use of the Licensed Material that could lawfully + be made without permission under this Public License. + b. To the extent possible, if any provision of this Public License is + deemed unenforceable, it shall be automatically reformed to the + minimum extent necessary to make it enforceable. If the provision + cannot be reformed, it shall be severed from this Public License + without affecting the enforceability of the remaining terms and + conditions. + c. No term or condition of this Public License will be waived and no + failure to comply consented to unless expressly agreed to by the + Licensor. + d. Nothing in this Public License constitutes or may be interpreted + as a limitation upon, or waiver of, any privileges and immunities + that apply to the Licensor or You, including from the legal + processes of any jurisdiction or authority. +Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the "Licensor." The text of the Creative Commons public licenses is dedicated to the public domain under the CC0 Public Domain Dedication. Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at creativecommons.org/policies, Creative Commons does not authorize the use of the trademark "Creative Commons" or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses. + +Creative Commons may be contacted at creativecommons.org. \ No newline at end of file diff --git a/resmgr/src/main/webapp/resmgr-nfv/conf/globalconfig.json b/resmgr/src/main/webapp/resmgr-nfv/conf/globalconfig.json new file mode 100644 index 00000000..20ce9a54 --- /dev/null +++ b/resmgr/src/main/webapp/resmgr-nfv/conf/globalconfig.json @@ -0,0 +1,5 @@ +{ + "url": "http://127.0.0.1", + "port": "8080", + "context_name":"resmgr" +} \ No newline at end of file diff --git a/resmgr/src/main/webapp/resmgr-nfv/css/RMain.css b/resmgr/src/main/webapp/resmgr-nfv/css/RMain.css new file mode 100644 index 00000000..12aa5066 --- /dev/null +++ b/resmgr/src/main/webapp/resmgr-nfv/css/RMain.css @@ -0,0 +1,239 @@ +/* Copyright 2016-2017, Huawei Technologies Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#iemp_layout_container { + padding: 0px; + margin: 1px auto; + width: 100%; + height: 100%; +} + +#iemp_layout_container .three-cols-layout { + width: 100%; + height: 100%; + border-collapse: collapse; + margin-left: 0px; + margin-top: 0px; + margin-right: 0px; + margin-bottom: 0px; +} + +#iemp_layout_container .three-cols-layout { + width: 100%; + height: 100%; + border-collapse: collapse; + margin-left: 0px; + margin-top: 0px; + margin-right: 0px; + margin-bottom: 0px; +} + +#iemp_layout_container .three-cols-column.three-cols-left { + width: 215px; + background-color: #f5f5f5; +} + +.accordion_parent { + position: relative; + width: 220px; + background-color: #f5f5f5; +} + +.openo-accordion-resizable-handle { + z-index: 1 !important; + cursor: e-resize; + width: 7px; + right: -5px; + top: 0; + height: 100%; + position: absolute; + font-size: .1px; + display: block; +} + +.openoAccordian_accordionmenu { + width: 100%; + margin: 0; + padding: 0; + list-style-type: none; + line-height: 17px; +} + +.openoAccordian_accordionmenu li { + min-width: 75px; + margin: 0; + padding: 0; + list-style-type: none; + color: #000; + clear: both; +} + +.openo_accordion_ui-icon-collapse, .openo_accordion_ui-icon-expand { + display: block; + float: left; + margin-bottom: -1px; + border-bottom: 1px solid #e5e5e5; + cursor: pointer; + width: 13px; + padding-top: 26px; +} + +.openo_accordion_ui-icon-expand { + background: url(../images/collapse_arrow.png) right 20px no-repeat; + margin-top: 8px; +} + +.openo_accordion_ui-icon-expand.current { + background: url(../images/expand_arrow.png) right 20px no-repeat; +} + +.openoAccordian_showHideArrow_hide, .openoAccordian_showHideArrow_show { + display: block; + position: absolute; + right: 0; + top: 4px; + width: 18px; + height: 41px; + cursor: pointer; + background-color: #f5f5f5; +} + +.openoAccordian_showHideArrow_hide { + background-image: url(../images/openo.png); + background-position: -7px 0 !important; + border-collapse: separate; + /*box-shadow: inset -1px 0 0 #e5e5e5;*/ +} + +a.header.opened, a.header.closed { + font-size: 16px; + padding-top: 24px; + padding-bottom: 25px; + color: #999999; +} + +.openoAccordian_accordionmenu .closed, .openoAccordian_accordionmenu .opened { + padding-right: 10px; + background-position: 98% 50%; + background-repeat: no-repeat; +} + +.openoAccordian_accordionmenu li a { + padding: 11px 10px 12px; + color: #333333; + margin-right: 1px; + margin-top: -1px; + text-align: left !important; + font-family: "Microsoft Yahei", SimSun, Arial, Tahoma; + font-size: 14px; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + border-top: 1px solid #e5e5e5; + border-bottom: 1px solid #e5e5e5; + /*height: 19px;*/ +} + +.openoAccordian_accordionmenu ul { + margin: 0; + padding: 0; + overflow: hidden; +} + +.openoAccordian_accordionmenu a { + display: block; + text-decoration: none; +} + +a { + color: #428bca; + text-decoration: none; + background: 0 0; +} + +.bar { + height: 834px; + width: 18px; + background: #f8f8f8; + display: none; +} + +.bar span { + width: 13px; + height: 34px; + background-image: url(../images/openo.png); + background-position: -39px 0 !important; + display: block; + /*margin-top: -430px;*/ +} + +#accordionmenuid_ul_0_0_brAppTopMenuID_UL li { + cursor: pointer; +} + +#puer_base_openo { + border: 1px solid #ddd; +} + +.openo_accordion_selected { + margin-left: 0; + margin-right: 0; + background: #fafafa; + border-left: 3px solid #4ac9ff !important; + box-shadow: none; + position: relative; +} + +a:hover { + color: #4ac9ff !important; +} + +.openoAccordian_accordionmenu li.openo_accordion_selected a { + position: relative; + left: -3px; + color: #009ae7; +} + +.openo-accordion-resizable-handle { + z-index: 1 !important; + cursor: e-resize; + width: 7px; + right: -5px; + top: 0; + height: 100%; + position: absolute; + font-size: .1px; + display: block; +} + +#iframeContainer iframe { + width: 100%; + height: 100%; + border: 0; +} + +#accordionContent, #iframeContainer { + margin: 0; + padding: 0; + border: 0; + width: 100%; + height: 100%; +} + +.openoAccordian_showHideArrow_show { + background-image: url(../images/openo.png); + background-position: -39px 0 !important; + box-shadow: inset 1px 0 0 #e5e5e5, inset -1px 0 0 #e5e5e5; +} \ No newline at end of file diff --git a/resmgr/src/main/webapp/resmgr-nfv/css/VMMain.css b/resmgr/src/main/webapp/resmgr-nfv/css/VMMain.css new file mode 100644 index 00000000..048d814a --- /dev/null +++ b/resmgr/src/main/webapp/resmgr-nfv/css/VMMain.css @@ -0,0 +1,758 @@ +/* Copyright 2016-2017, Huawei Technologies Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +body { + font-family: '微软雅黑'; + font-size: 12px; + color: #333; + background: #fafafa; +} + +button { + outline: none; +} + +ul, li { + list-style: none; + padding: 0; + margin: 0; +} + +.titleFont { + font-size: 16px; +} + +.separator-line { + height: 1px; + width: 100%; + border: 1px solid #ddd; + margin: 6px 0 15px 0; +} + +.uploadBtn { + overflow: hidden; +} + +.creat-btn { + padding: 0 14px; + height: 24px; + float: left; + cursor: pointer; + text-decoration: none; + outline: 0; + border: 1px solid #d3d3d3; + text-align: center; + box-shadow: 0 1px 1px rgba(0, 0, 0, .05); + background: #fafafa; + background: -moz-linear-gradient(top, #fff, #fafafa); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #fff), color-stop(100%, #fafafa)); + background: -webkit-linear-gradient(top, #fff, #fafafa); + background: linear-gradient(to bottom, #fff, #fafafa); + border-radius: 6px; + background: #fff url(../images/add.png) no-repeat 5px center; + padding-left: 20px; +} + +.creat-btn:hover { + color: #009ae7; + border: 1px solid #4AC9FF +} + +.creat-btn:active { + color: #000; + border: 1px solid #4AC9FF +} + +/*.creat-btn{ + background: #fff url(../image/add.png) no-repeat 5px center; + border: 1px solid #ddd; + float: left; +} +.creat-btn:hover{ + background: #428bca; + color: #fff; + border:1px solid #428bca; +}*/ +.search { + width: 310px; + height: 30px; + float: right; +} + +.search-text { + width: 250px; + float: left; + margin-right: 6px; +} + +.search-btn { + height: 30px; + background: #fff; + border: 1px solid #ddd; + float: left; +} + +#ict_virtualApplication_table_div { + margin-top: 15px; +} + +.table > thead > tr.active > th { + border: 1px solid #ddd !important; + border-bottom: 0; + background: #f0f0f0; +} + +/*.table tbody tr:hover{ + background: #e6fbe0!important; +}*/ +.table tbody tr:last-child { + border-bottom: 1px solid #ddd; +} + +.table-btn { + border: 1px solid #ccc; + border-radius: 3px; +} + +.delete-btn { + background: url(../image/delete.png) no-repeat; + width: 16px; + height: 16px; + border: none; +} + +.detail-btn { + background: url(../image/openo.png) no-repeat -343px -283px; + width: 16px; + height: 16px; + border: none; +} + +.detail-btn.current { + background-position: -7px -314px; +} + +.detail { + height: 200px; + border: 1px solid #ddd; + margin-top: 60px; +} + +.detail-top ul { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #ddd; + padding-left: 0px; + background: #fafafa; +} + +.detail-top ul li { + float: left; + width: 120px; + text-align: center; + border-right: 1px solid #ddd; + cursor: pointer; +} + +.detail-top ul li.current { + background: #fff; +} + +.vmapp-margin { + margin-bottom: 10px; +} + +.control-label .required { + color: #e02222; + font-size: 12px; + padding-left: 2px; +} + +.form-group .control-label { + font-size: 12px; + font-weight: 400; +} + +legend { + font-size: 12px; + font-weight: bold; +} + +.pageGro { + width: 250px; + float: right; +} + +.pageUp, .pageDown, .pageList, .pageList li { + float: left; + cursor: pointer; +} + +.pageUp, .pageDown { + width: 60px; + height: 30px; + border: 1px solid #ddd; + text-align: center; + line-height: 30px; +} + +.pageList li { + width: 30px; + height: 30px; + border: 1px solid #ddd; + text-align: center; + line-height: 30px; + border-left: none; +} + +.pageList li.active { + background: #428bca; + color: #fff; + border-color: #428bca; +} + +.pageDown { + border-left: none; +} + +.headerLinkP { + padding-top: 17px; +} + +.headerLinkP span { + font-size: 12px; + color: #666; + font-weight: normal !important; +} + +label { + font-weight: normal !important; +} + +table.userform tbody tr td { + display: table-cell; + padding-right: 10px; + padding-top: 10px; + font-size: 12px; + color: #333; +} + +.table th, .table td { + padding-top: 3px !important; + padding-bottom: 3px !important; +} + +.openoBrowseButton_element { + display: table; +} + +.openo { + font-family: "Microsoft Yahei", SimSun, Arial, Tahoma; + font-size: 12px; + color: #000; +} + +.openoBrowseButton_input { + width: 198px; + position: relative; + border: 1px solid #c3c3c3 !important; + height: 26px; + background-color: #f3f3f3; + border-radius: 4px 0 0 4px; + border-right: none; + padding: 0; +} + +.buttonClassDefault, .buttonClassDefault:active { + cursor: pointer; + background-image: url(../images/openo.png); + background-position: -154px -7px !important; +} + +.openoBrowseButton_button { + width: 27px; + border: 0; + float: right; + position: relative; + height: 26px; + right: 0; + top: 0; + border-radius: 0 4px 4px 0; + border-right: 1px solid #c3c3c3; + border-left: none; +} + +.openo .openo-input, .openo.openo-input { + outline: 0; + border: 1px solid #c3c3c3; + box-shadow: 1px 1px #f6f6f6 inset; + background-color: #fff; + height: 26px; +} + +.openoInput_openoDefaultText { + padding: 0 0 0 6px; + border-radius: 4px; + color: #000; + display: inline-block; + outline: 0; + box-shadow: 1px 1px #f6f6f6 inset; + font-size: 12px; + background: #fff; +} + +div.openo-select { + border: 1px solid #c3c3c3; + border-radius: 4px; + background: url(../images/arrow-down-enable.png) right no-repeat #fff; + line-height: 24px; + padding-left: 3px; + display: block; +} + +div.openo-select > input.openo-select-input { + border: none; + outline: 0; + line-height: 21px; + height: 21px; + padding-left: 3px; + border-right: solid 1px #c3c3c3; +} + +.openo .openo-ellipsis, .openo.openo-ellipsis { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} + +a.openoButton_buttonClass, a.openoButton_buttonDisableClass, div.openoButton_buttonClass, div.openoButton_buttonDisableClass { + height: 26px; + float: left; + cursor: pointer; + text-decoration: none; + outline: 0; + border: 1px solid #d3d3d3; + text-align: center; + box-shadow: 0 1px 1px rgba(0, 0, 0, .05); + background: #fafafa; + background: -moz-linear-gradient(top, #fff, #fafafa); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #fff), color-stop(100%, #fafafa)); + background: -webkit-linear-gradient(top, #fff, #fafafa); + background: linear-gradient(to bottom, #fff, #fafafa); + border-radius: 6px; +} + +.openoButton_buttonInnerClass { + padding: 0 19px; + border-radius: 6px; +} + +.openoButton_buttonCenterText { + color: #000; + line-height: 24px; + white-space: nowrap; + width: auto !important; +} + +.userHeader { + clear: left; + overflow: hidden; + margin-bottom: 10px; + padding: 10px 10px 0px 0px; +} + +.openoButton_buttonGroupClass { + display: inline; +} + +.openoButton_buttonGroupClass div.openoButton_buttonClass_parent:first-child { + margin-left: 0; +} + +.openoButton_buttonLeftImg { + margin-right: 5px; +} + +.openoButton_buttonLeftImg, .openoButton_buttonRightImg { + display: inline-block; + vertical-align: top; + width: 16px; + height: 16px; + margin-top: 4px; +} + +.openo-table-pagination-wrapper { + height: 37px; +} + +.openo-pagination { + display: block; + float: left; + overflow: hidden; + padding: 5px 0 0; + margin-top: 8px; +} + +.openoPagination_openoPaginationLengthOptions:not(msie8) { + line-height: 24px; +} + +.openoPagination_openoPaginationLengthOptions { + white-space: normal; + height: 24px; + float: left; + outline: 0; + line-height: 20px; + margin: 0 5px; +} + +.openo-pagination-select { + height: 26px; + line-height: 22px; + text-align: center; + margin-right: -2px; + border: 1px solid #e0e0e0; + border-radius: 5px 0 0 5px; + padding: 1px; +} + +.openoPagination_openoPaginationLengthOptions span { + background-color: #fff !important; +} + +.openo-pagination-theme a, .openo-pagination-theme span { + float: left; + color: #666; + font: 12px Lucida Grande, Verdana, Arial, Helvetica, sans-serif; + line-height: 24px; + font-weight: 400; + text-align: center; + border: 1px solid #e0e0e0; + text-decoration: none !important; + padding: 0 7px; + border-radius: 3px; + background: #fff; +} + +.openo-pagination-selectspan { + background: url(../images/ideo_default_select.png) left no-repeat !important; + float: right !important; + width: 26px; + height: 26px; + cursor: pointer; +} + +.openo-pagination-theme label { + padding-top: 6px; + vertical-align: middle; + margin-right: 20px; + margin-top: -1px; + float: left; + display: inline-block; + height: 20px; + font: 12px Lucida Grande, Verdana, Arial, Helvetica, sans-serif; +} + +.openo-pagination li, .openo-pagination ul { + list-style: none; + padding: 0; + margin: 0; + float: left; +} + +dd, dl, dt, li { + color: #000; +} + +.openo-pagination-theme a, .openo-pagination-theme span.current { + margin: 0 5px 0 0; +} + +.openo .openo-disabled, .openo.openo-disabled { + border-color: #c3c3c3 !important; + color: #666 !important; + opacity: .3; + filter: alpha(opacity=30); +} + +.openo-pagination-theme .prev { + background: 0 0; + float: left; +} + +.openo-pagination-theme .current { + text-decoration: none !important; + float: left; + padding-left: 6px; + height: 24px; + color: #fff; + display: inline; + border-color: #00adf5; + background: #4ad2ff; +} + +.openo-pagination-theme a, .openo-pagination-theme span { + float: left; + color: #666; + font: 12px Lucida Grande, Verdana, Arial, Helvetica, sans-serif; + line-height: 24px; + font-weight: 400; + text-align: center; + border: 1px solid #e0e0e0; + text-decoration: none !important; + padding: 0 7px; + border-radius: 3px; + background: #fff; +} + +.openo-pagination-theme .prev.openo-disabled:before { + background: url(../images/page_left_disabled.png) 50% 45% no-repeat; +} + +.openo-pagination-theme .prev.openo-disabled:before { + background: url(../images/page_left_disabled.png) 50% 45% no-repeat; +} + +.openo-pagination-theme .prev:before { + background: url(../images/page_l.png) 50% 45% no-repeat; +} + +.openo-pagination-theme .next:after, .openo-pagination-theme .prev:before { + display: inline-block; + content: ""; + vertical-align: middle; + width: 10px; + height: 24px; +} + +.openo-pagination-theme .prev:before { + background: url(../images/page_l.png) 50% 45% no-repeat; +} + +.openo-pagination-theme .next:after, .openo-pagination-theme .prev:before { + display: inline-block; + content: ""; + vertical-align: middle; + width: 10px; + height: 24px; +} + +pagination ul { + list-style: none; + padding: 0; + margin: 0; + float: left; +} + +.openo-pagination li, .openo-pagination ul { + list-style: none; + padding: 0; + margin: 0; + float: left; +} + +.openoPagination_gototext { + background: #FFF; + outline: 0; + width: 29px; + float: left; + height: 26px; + line-height: 24px; + border-radius: 4px; + border: 1px solid #c3c3c3; + padding: 0 0 0 5px; + margin: 0; + color: #666; + min-width: 50px; +} + +.openoPagination_gotoimage { + width: 29px; + height: 26px; + line-height: 26px; + background-color: #FFF; + background-image: url(/portal/themes/default/components/openo/images/openo.png); + padding-left: 21px; + float: left; + margin-left: 5px; + border: 1px solid #e0e0e0; + border-radius: 4px; + box-sizing: border-box; + -moz-box-sizing: border-box; + background-position: -184px -181px !important; +} + +.openo-pagination-theme .ellipse { + float: left; + margin-left: -8px; + margin-right: -4px; + background: 0 0; + border: none; + border-radius: 0; + box-shadow: none; + font-weight: 700; + cursor: default; +} + +.openo.openo-disabled { + border-color: #c3c3c3 !important; + color: #666 !important; + opacity: .3; + filter: alpha(opacity=30); +} + +.openo-pagination-theme .prev { + background: 0 0; + float: left; +} + +.openo-pagination-theme .current { + text-decoration: none !important; + float: left; + padding-left: 6px; + height: 26px; + color: #fff; + display: inline; + /*border-color: #00adf5; + background: #4ad2ff;*/ + border: 1px solid #e0e0e0; +} + +.openo-pagination-theme .next:after { + background: url(../images/page_r.png) 50% 45% no-repeat; +} + +.openoButton_buttonGroupClass div.openoButton_buttonClass_parent, .openoButton_buttonRightImg { + margin-left: 5px; +} + +html, body { + height: 99%; + width: 98%; +} + +.cotentBody { + padding: 0px 20px 0px 20px; +} + +div.openoButton_buttonClass:hover { + border: 1px solid #4ac9ff; +} + +div.openoButton_button_default:hover .openoButton_buttonCenterText { + color: #009ae7; +} + +.header_lineimg { + height: 1px; + width: 100%; + margin-top: 17px; +} + +.openo.openo-hide { + display: none; +} + +div.openo-select-popup-container { + position: absolute; + border: 1px solid #4ac9ff; + border-top: none; + border-radius: 0 0 4px 4px; + max-height: 202px; + overflow-y: auto; + background-color: #fff; + z-index: 880; +} + +div.openo-select-popup-container > div.openo-select-item { + display: block; +} + +.openo .openo-ellipsis, .openo.openo-ellipsis { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} + +div.openo-select-popup-container > div.openo-select-item > label { + padding-top: 3px; + padding-bottom: 3px; + line-height: 20px; +} + +.openo .openo-ellipsis, .openo.openo-ellipsis { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} + +.openo-select-item label { + margin-left: 4px; + margin-right: 4px; + white-space: nowrap; +} + +div.openo-select-popup-container > div.openo-select-item.openo-item-selected, div.openo-select-popup-container > div.openo-select-item:hover { + background-color: #f1f1f1; + color: #008fd6; +} + +div.openo-select.openo-focus { + border: 1px solid #4ac9ff; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; + border-bottom-color: #ddd; +} + +.openo-pagination-theme a:hover { + border-color: #4ac9ff; + cursor: pointer; +} + +.SDBtn { + background: #fff; + color: #333; + border: 1px solid #ddd; +} + +.SDBtn:hover { + color: #009ae7; + border: 1px solid #4AC9FF +} + +table tbody tr.even:hover td, table tbody tr.odd:hover td { + background-color: #e6fbe0; +} + +table tr.openoTable_row_selected td { + background: #e8f8fe !important; + border-bottom: 1px solid #e8e8e8 !important; +} + +.modal-body { + padding: 0 !important; +} + +.form-control { + height: 26px !important; +} + +.form-group .control-label { + margin-left: 20px; +} + +.form-horizontal .control-label { + text-align: left; +} \ No newline at end of file diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/css/bootstrap-table.min.css b/resmgr/src/main/webapp/resmgr-nfv/css/bootstrap-table.min.css similarity index 100% rename from openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/css/bootstrap-table.min.css rename to resmgr/src/main/webapp/resmgr-nfv/css/bootstrap-table.min.css diff --git a/resmgr/src/main/webapp/resmgr-nfv/css/bootstrap.min.css b/resmgr/src/main/webapp/resmgr-nfv/css/bootstrap.min.css new file mode 100644 index 00000000..679272d2 --- /dev/null +++ b/resmgr/src/main/webapp/resmgr-nfv/css/bootstrap.min.css @@ -0,0 +1,7 @@ +/*! + * Bootstrap v3.1.1 (http://getbootstrap.com) + * Copyright 2011-2014 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ + +/*! normalize.css v3.0.0 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:0 0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}@media print{*{text-shadow:none!important;color:#000!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff!important}.navbar{display:none}.table td,.table th{background-color:#fff!important}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table-bordered th,.table-bordered td{border:1px solid #ddd!important}}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:before,:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#428bca;text-decoration:none}a:hover,a:focus{color:#2a6496;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:400;line-height:1;color:#999}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:200;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}cite{font-style:normal}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-muted{color:#999}.text-primary{color:#428bca}a.text-primary:hover{color:#3071a9}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#428bca}a.bg-primary:hover{background-color:#3071a9}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#999}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}blockquote:before,blockquote:after{content:""}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;white-space:nowrap;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:0}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:0}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:0}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:0}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:0}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:0}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:0}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:0}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{max-width:100%;background-color:transparent}th{text-align:left}.table{width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5}table col[class*=col-]{position:static;float:none;display:table-column}table td[class*=col-],table th[class*=col-]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}@media (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;overflow-x:scroll;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd;-webkit-overflow-scrolling:touch}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=radio],input[type=checkbox]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=radio]:focus,input[type=checkbox]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee;opacity:1}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}input[type=date]{line-height:34px}.form-group{margin-bottom:15px}.radio,.checkbox{display:block;min-height:20px;margin-top:10px;margin-bottom:10px;padding-left:20px}.radio label,.checkbox label{display:inline;font-weight:400;cursor:pointer}.radio input[type=radio],.radio-inline input[type=radio],.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox]{float:left;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type=radio][disabled],input[type=checkbox][disabled],.radio[disabled],.radio-inline[disabled],.checkbox[disabled],.checkbox-inline[disabled],fieldset[disabled] input[type=radio],fieldset[disabled] input[type=checkbox],fieldset[disabled] .radio,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm,select[multiple].input-sm{height:auto}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg{height:46px;line-height:46px}textarea.input-lg,select[multiple].input-lg{height:auto}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.has-feedback .form-control-feedback{position:absolute;top:25px;right:0;display:block;width:34px;height:34px;line-height:34px;text-align:center}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-success .form-control-feedback{color:#3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.has-error .form-control-feedback{color:#a94442}.form-control-static{margin-bottom:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;vertical-align:middle}.form-inline .radio input[type=radio],.form-inline .checkbox input[type=checkbox]{float:none;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .control-label,.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.form-horizontal .form-control-static{padding-top:7px}@media (min-width:768px){.form-horizontal .control-label{text-align:right}}.form-horizontal .has-feedback .form-control-feedback{top:0;right:15px}.btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus{color:#333;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{color:#333;background-color:#ebebeb;border-color:#adadad}.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{color:#fff;background-color:#3276b1;border-color:#285e8e}.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#428bca;border-color:#357ebd}.btn-primary .badge{color:#428bca;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{color:#fff;background-color:#47a447;border-color:#398439}.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{color:#fff;background-color:#39b3d7;border-color:#269abc}.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{color:#428bca;font-weight:400;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%;padding-left:0;padding-right:0}.btn-block+.btn-block{margin-top:5px}input[type=submit].btn-block,input[type=reset].btn-block,input[type=button].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#262626;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;outline:0;background-color:#428bca}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#999}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:0}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}[data-toggle=buttons]>.btn>input[type=radio],[data-toggle=buttons]>.btn>input[type=checkbox]{display:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=radio],.input-group-addon input[type=checkbox]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#999}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#999;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#428bca}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#428bca}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{max-height:340px;overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px;font-size:18px;line-height:20px;height:50px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}.navbar-nav.navbar-right:last-child{margin-right:-15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin-top:8px;margin-bottom:8px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;vertical-align:middle}.navbar-form .radio input[type=radio],.navbar-form .checkbox input[type=checkbox]{float:none;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}.navbar-form.navbar-right:last-child{margin-right:-15px}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}.navbar-text.navbar-right:last-child{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#e7e7e7;color:#555}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#999}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .navbar-nav>li>a{color:#999}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#080808;color:#fff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover{color:#fff}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.42857143;text-decoration:none;color:#428bca;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{color:#2a6496;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;background-color:#fff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label[href]:hover,.label[href]:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#999}.label-default[href]:hover,.label-default[href]:focus{background-color:gray}.label-primary{background-color:#428bca}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;color:#fff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#999;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#428bca;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.container .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#428bca}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable{padding-right:35px}.alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:40px 40px}.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;background-color:#f5f5f5}a.list-group-item.active,a.list-group-item.active:hover,a.list-group-item.active:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}a.list-group-item.active .list-group-item-heading,a.list-group-item.active:hover .list-group-item-heading,a.list-group-item.active:focus .list-group-item-heading{color:inherit}a.list-group-item.active .list-group-item-text,a.list-group-item.active:hover .list-group-item-text,a.list-group-item.active:focus .list-group-item-text{color:#e1edf7}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px;overflow:hidden}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#ddd}.panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca}.panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#faebcc}.panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#ebccd1}.panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ebccd1}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:auto;overflow-y:scroll;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;-moz-transition:-moz-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5);background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.42857143px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:20px}.modal-footer{margin-top:15px;padding:19px 20px 20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;font-size:12px;line-height:1.4;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;right:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);white-space:normal}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;font-weight:400;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:.5;filter:alpha(opacity=50);font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,.5) 0),color-stop(rgba(0,0,0,.0001) 100%));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,.0001) 0),color-stop(rgba(0,0,0,.5) 100%));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;margin-left:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #fff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#fff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;margin-left:-15px;font-size:30px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important;visibility:hidden!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}th.visible-xs,td.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}th.visible-sm,td.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}th.visible-md,td.visible-md{display:table-cell!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}th.visible-lg,td.visible-lg{display:table-cell!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table}tr.visible-print{display:table-row!important}th.visible-print,td.visible-print{display:table-cell!important}}@media print{.hidden-print{display:none!important}} \ No newline at end of file diff --git a/resmgr/src/main/webapp/resmgr-nfv/css/jquery.dataTables.min.css b/resmgr/src/main/webapp/resmgr-nfv/css/jquery.dataTables.min.css new file mode 100644 index 00000000..781de6bf --- /dev/null +++ b/resmgr/src/main/webapp/resmgr-nfv/css/jquery.dataTables.min.css @@ -0,0 +1 @@ +table.dataTable{width:100%;margin:0 auto;clear:both;border-collapse:separate;border-spacing:0}table.dataTable thead th,table.dataTable tfoot th{font-weight:bold}table.dataTable thead th,table.dataTable thead td{padding:10px 18px;border-bottom:1px solid #111}table.dataTable thead th:active,table.dataTable thead td:active{outline:none}table.dataTable tfoot th,table.dataTable tfoot td{padding:10px 18px 6px 18px;border-top:1px solid #111}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_desc{cursor:pointer;*cursor:hand}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_desc,table.dataTable thead .sorting_asc_disabled,table.dataTable thead .sorting_desc_disabled{background-repeat:no-repeat;background-position:center right}table.dataTable thead .sorting{background-image:url("../images/sort_both.png")}table.dataTable thead .sorting_asc{background-image:url("../images/sort_asc.png")}table.dataTable thead .sorting_desc{background-image:url("../images/sort_desc.png")}table.dataTable thead .sorting_asc_disabled{background-image:url("../images/sort_asc_disabled.png")}table.dataTable thead .sorting_desc_disabled{background-image:url("../images/sort_desc_disabled.png")}table.dataTable tbody tr{background-color:#ffffff}table.dataTable tbody tr.selected{background-color:#B0BED9}table.dataTable tbody th,table.dataTable tbody td{padding:8px 10px}table.dataTable.row-border tbody th,table.dataTable.row-border tbody td,table.dataTable.display tbody th,table.dataTable.display tbody td{border-top:1px solid #ddd}table.dataTable.row-border tbody tr:first-child th,table.dataTable.row-border tbody tr:first-child td,table.dataTable.display tbody tr:first-child th,table.dataTable.display tbody tr:first-child td{border-top:none}table.dataTable.cell-border tbody th,table.dataTable.cell-border tbody td{border-top:1px solid #ddd;border-right:1px solid #ddd}table.dataTable.cell-border tbody tr th:first-child,table.dataTable.cell-border tbody tr td:first-child{border-left:1px solid #ddd}table.dataTable.cell-border tbody tr:first-child th,table.dataTable.cell-border tbody tr:first-child td{border-top:none}table.dataTable.stripe tbody tr.odd,table.dataTable.display tbody tr.odd{background-color:#f9f9f9}table.dataTable.stripe tbody tr.odd.selected,table.dataTable.display tbody tr.odd.selected{background-color:#acbad4}table.dataTable.hover tbody tr:hover,table.dataTable.display tbody tr:hover{background-color:#f6f6f6}table.dataTable.hover tbody tr:hover.selected,table.dataTable.display tbody tr:hover.selected{background-color:#aab7d1}table.dataTable.order-column tbody tr>.sorting_1,table.dataTable.order-column tbody tr>.sorting_2,table.dataTable.order-column tbody tr>.sorting_3,table.dataTable.display tbody tr>.sorting_1,table.dataTable.display tbody tr>.sorting_2,table.dataTable.display tbody tr>.sorting_3{background-color:#fafafa}table.dataTable.order-column tbody tr.selected>.sorting_1,table.dataTable.order-column tbody tr.selected>.sorting_2,table.dataTable.order-column tbody tr.selected>.sorting_3,table.dataTable.display tbody tr.selected>.sorting_1,table.dataTable.display tbody tr.selected>.sorting_2,table.dataTable.display tbody tr.selected>.sorting_3{background-color:#acbad5}table.dataTable.display tbody tr.odd>.sorting_1,table.dataTable.order-column.stripe tbody tr.odd>.sorting_1{background-color:#f1f1f1}table.dataTable.display tbody tr.odd>.sorting_2,table.dataTable.order-column.stripe tbody tr.odd>.sorting_2{background-color:#f3f3f3}table.dataTable.display tbody tr.odd>.sorting_3,table.dataTable.order-column.stripe tbody tr.odd>.sorting_3{background-color:whitesmoke}table.dataTable.display tbody tr.odd.selected>.sorting_1,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_1{background-color:#a6b4cd}table.dataTable.display tbody tr.odd.selected>.sorting_2,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_2{background-color:#a8b5cf}table.dataTable.display tbody tr.odd.selected>.sorting_3,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_3{background-color:#a9b7d1}table.dataTable.display tbody tr.even>.sorting_1,table.dataTable.order-column.stripe tbody tr.even>.sorting_1{background-color:#fafafa}table.dataTable.display tbody tr.even>.sorting_2,table.dataTable.order-column.stripe tbody tr.even>.sorting_2{background-color:#fcfcfc}table.dataTable.display tbody tr.even>.sorting_3,table.dataTable.order-column.stripe tbody tr.even>.sorting_3{background-color:#fefefe}table.dataTable.display tbody tr.even.selected>.sorting_1,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_1{background-color:#acbad5}table.dataTable.display tbody tr.even.selected>.sorting_2,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_2{background-color:#aebcd6}table.dataTable.display tbody tr.even.selected>.sorting_3,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_3{background-color:#afbdd8}table.dataTable.display tbody tr:hover>.sorting_1,table.dataTable.order-column.hover tbody tr:hover>.sorting_1{background-color:#eaeaea}table.dataTable.display tbody tr:hover>.sorting_2,table.dataTable.order-column.hover tbody tr:hover>.sorting_2{background-color:#ececec}table.dataTable.display tbody tr:hover>.sorting_3,table.dataTable.order-column.hover tbody tr:hover>.sorting_3{background-color:#efefef}table.dataTable.display tbody tr:hover.selected>.sorting_1,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_1{background-color:#a2aec7}table.dataTable.display tbody tr:hover.selected>.sorting_2,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_2{background-color:#a3b0c9}table.dataTable.display tbody tr:hover.selected>.sorting_3,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_3{background-color:#a5b2cb}table.dataTable.no-footer{border-bottom:1px solid #111}table.dataTable.nowrap th,table.dataTable.nowrap td{white-space:nowrap}table.dataTable.compact thead th,table.dataTable.compact thead td{padding:4px 17px 4px 4px}table.dataTable.compact tfoot th,table.dataTable.compact tfoot td{padding:4px}table.dataTable.compact tbody th,table.dataTable.compact tbody td{padding:4px}table.dataTable th.dt-left,table.dataTable td.dt-left{text-align:left}table.dataTable th.dt-center,table.dataTable td.dt-center,table.dataTable td.dataTables_empty{text-align:center}table.dataTable th.dt-right,table.dataTable td.dt-right{text-align:right}table.dataTable th.dt-justify,table.dataTable td.dt-justify{text-align:justify}table.dataTable th.dt-nowrap,table.dataTable td.dt-nowrap{white-space:nowrap}table.dataTable thead th.dt-head-left,table.dataTable thead td.dt-head-left,table.dataTable tfoot th.dt-head-left,table.dataTable tfoot td.dt-head-left{text-align:left}table.dataTable thead th.dt-head-center,table.dataTable thead td.dt-head-center,table.dataTable tfoot th.dt-head-center,table.dataTable tfoot td.dt-head-center{text-align:center}table.dataTable thead th.dt-head-right,table.dataTable thead td.dt-head-right,table.dataTable tfoot th.dt-head-right,table.dataTable tfoot td.dt-head-right{text-align:right}table.dataTable thead th.dt-head-justify,table.dataTable thead td.dt-head-justify,table.dataTable tfoot th.dt-head-justify,table.dataTable tfoot td.dt-head-justify{text-align:justify}table.dataTable thead th.dt-head-nowrap,table.dataTable thead td.dt-head-nowrap,table.dataTable tfoot th.dt-head-nowrap,table.dataTable tfoot td.dt-head-nowrap{white-space:nowrap}table.dataTable tbody th.dt-body-left,table.dataTable tbody td.dt-body-left{text-align:left}table.dataTable tbody th.dt-body-center,table.dataTable tbody td.dt-body-center{text-align:center}table.dataTable tbody th.dt-body-right,table.dataTable tbody td.dt-body-right{text-align:right}table.dataTable tbody th.dt-body-justify,table.dataTable tbody td.dt-body-justify{text-align:justify}table.dataTable tbody th.dt-body-nowrap,table.dataTable tbody td.dt-body-nowrap{white-space:nowrap}table.dataTable,table.dataTable th,table.dataTable td{-webkit-box-sizing:content-box;box-sizing:content-box}.dataTables_wrapper{position:relative;clear:both;*zoom:1;zoom:1}.dataTables_wrapper .dataTables_length{float:left}.dataTables_wrapper .dataTables_filter{float:right;text-align:right}.dataTables_wrapper .dataTables_filter input{margin-left:0.5em}.dataTables_wrapper .dataTables_info{clear:both;float:left;padding-top:0.755em}.dataTables_wrapper .dataTables_paginate{float:right;text-align:right;padding-top:0.25em}.dataTables_wrapper .dataTables_paginate .paginate_button{box-sizing:border-box;display:inline-block;min-width:1.5em;padding:0.5em 1em;margin-left:2px;text-align:center;text-decoration:none !important;cursor:pointer;*cursor:hand;color:#333 !important;border:1px solid transparent;border-radius:2px}.dataTables_wrapper .dataTables_paginate .paginate_button.current,.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover{color:#333 !important;border:1px solid #979797;background-color:white;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #fff), color-stop(100%, #dcdcdc));background:-webkit-linear-gradient(top, #fff 0%, #dcdcdc 100%);background:-moz-linear-gradient(top, #fff 0%, #dcdcdc 100%);background:-ms-linear-gradient(top, #fff 0%, #dcdcdc 100%);background:-o-linear-gradient(top, #fff 0%, #dcdcdc 100%);background:linear-gradient(to bottom, #fff 0%, #dcdcdc 100%)}.dataTables_wrapper .dataTables_paginate .paginate_button.disabled,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active{cursor:default;color:#666 !important;border:1px solid transparent;background:transparent;box-shadow:none}.dataTables_wrapper .dataTables_paginate .paginate_button:hover{color:white !important;border:1px solid #111;background-color:#585858;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #585858), color-stop(100%, #111));background:-webkit-linear-gradient(top, #585858 0%, #111 100%);background:-moz-linear-gradient(top, #585858 0%, #111 100%);background:-ms-linear-gradient(top, #585858 0%, #111 100%);background:-o-linear-gradient(top, #585858 0%, #111 100%);background:linear-gradient(to bottom, #585858 0%, #111 100%)}.dataTables_wrapper .dataTables_paginate .paginate_button:active{outline:none;background-color:#2b2b2b;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #2b2b2b), color-stop(100%, #0c0c0c));background:-webkit-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-moz-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-ms-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-o-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:linear-gradient(to bottom, #2b2b2b 0%, #0c0c0c 100%);box-shadow:inset 0 0 3px #111}.dataTables_wrapper .dataTables_paginate .ellipsis{padding:0 1em}.dataTables_wrapper .dataTables_processing{position:absolute;top:50%;left:50%;width:100%;height:40px;margin-left:-50%;margin-top:-25px;padding-top:20px;text-align:center;font-size:1.2em;background-color:white;background:-webkit-gradient(linear, left top, right top, color-stop(0%, rgba(255,255,255,0)), color-stop(25%, rgba(255,255,255,0.9)), color-stop(75%, rgba(255,255,255,0.9)), color-stop(100%, rgba(255,255,255,0)));background:-webkit-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:-moz-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:-ms-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:-o-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%)}.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_filter,.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_processing,.dataTables_wrapper .dataTables_paginate{color:#333}.dataTables_wrapper .dataTables_scroll{clear:both}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody{*margin-top:-1px;-webkit-overflow-scrolling:touch}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody th,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody td{vertical-align:middle}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody th>div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody td>div.dataTables_sizing{height:0;overflow:hidden;margin:0 !important;padding:0 !important}.dataTables_wrapper.no-footer .dataTables_scrollBody{border-bottom:1px solid #111}.dataTables_wrapper.no-footer div.dataTables_scrollHead table,.dataTables_wrapper.no-footer div.dataTables_scrollBody table{border-bottom:none}.dataTables_wrapper:after{visibility:hidden;display:block;content:"";clear:both;height:0}@media screen and (max-width: 767px){.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_paginate{float:none;text-align:center}.dataTables_wrapper .dataTables_paginate{margin-top:0.5em}}@media screen and (max-width: 640px){.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_filter{float:none;text-align:center}.dataTables_wrapper .dataTables_filter{margin-top:0.5em}} diff --git a/resmgr/src/main/webapp/resmgr-nfv/css/resmgr.css b/resmgr/src/main/webapp/resmgr-nfv/css/resmgr.css new file mode 100644 index 00000000..f635263b --- /dev/null +++ b/resmgr/src/main/webapp/resmgr-nfv/css/resmgr.css @@ -0,0 +1,87 @@ +/* Copyright 2016-2017, Huawei Technologies Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +fieldset { + width: 680px; +} + +legend { + margin-left: 8px; +} + +.item { + height: 56px; + line-height: 36px; + margin: 10px; +} + +.item .item-label { + float: left; + width: 80px; + text-align: right; +} + +.item-text { + float: left; + width: 244px; + height: 16px; + padding: 9px 25px 9px 5px; + margin-left: 10px; + border: 1px solid #ccc; + overflow: hidden; +} + +.item-select { + float: left; + height: 34px; + border: 1px solid #ccc; + margin-left: 10px; + font-size: 14px; + padding: 6px 0px; +} + +.item-submit { + margin-left: 88px; +} + +input.error { + border: 1px solid #E6594E; +} + +input.highlight { + border: 1px solid #7abd54; +} + +label.error, label.tip { + float: left; + height: 32px; + line-height: 32px; + font-size: 14px; + text-align: left; + margin-left: 5px; + padding-left: 20px; + color: red; + background: url('error.png') no-repeat left center; +} + +label.tip { + color: #aaa; + background: url('tip.png') no-repeat left center; +} + +label.valid { + background: url('valid.png') no-repeat left center; + width: 32px; +} \ No newline at end of file diff --git a/resmgr/src/main/webapp/resmgr-nfv/datacenter.html b/resmgr/src/main/webapp/resmgr-nfv/datacenter.html new file mode 100644 index 00000000..7c628222 --- /dev/null +++ b/resmgr/src/main/webapp/resmgr-nfv/datacenter.html @@ -0,0 +1,362 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    +
    +
    + + + + + + + + + + +
    IdNameCpuMemoryHardDisk
    +
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    + + + + + + + + + +
    IdNameNetworkIDStatus
    +
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    + + + + + + + + + + + + + +
    IdNameNetworkIDVLanIDphysicalNettypeServiceNamestatus
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    + Create Datacenter +
    +
    + + + + +
    +
    +
    + +
    +
    +
    +
    + + + + + + + + + + + + + + + +
    IdNameStatusCountryLocationServiceNameCpu(Cores)Memory(MB)HardDisk(GB)Action +
    +
    +
    +
    +
    + + +
    +
    +
    + + \ No newline at end of file diff --git a/resmgr/src/main/webapp/resmgr-nfv/html/index.html b/resmgr/src/main/webapp/resmgr-nfv/html/index.html new file mode 100644 index 00000000..73508e09 --- /dev/null +++ b/resmgr/src/main/webapp/resmgr-nfv/html/index.html @@ -0,0 +1,32 @@ + + + + + Test + + + + +Loading... + + + + diff --git a/resmgr/src/main/webapp/resmgr-nfv/images/License.txt b/resmgr/src/main/webapp/resmgr-nfv/images/License.txt new file mode 100644 index 00000000..8e698ecb --- /dev/null +++ b/resmgr/src/main/webapp/resmgr-nfv/images/License.txt @@ -0,0 +1,362 @@ +THIS LICENSE FILE CONTAINS THE LICENSE APPLICABLE DEPENDING ON THE TYPE OF CONTRIBUTIONS. + +APACHE LICENSE 2 IS APPLICABLE FOR SOURCE CODE, CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL FOR DOCUMENTATION + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + + +Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. + +"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. + +2. Grant of Copyright License. + +Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. + +Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. + +You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: + +You must give any other recipients of the Work or Derivative Works a copy of this License; and You must cause any modified files to carry prominent notices stating that You changed the files; and You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. + +5. Submission of Contributions. + +Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. + +6. Trademarks. + +This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. + +Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. + +In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. + +While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +Attribution 4.0 International + +https://creativecommons.org/licenses/by/4.0/legalcode + +Creative Commons Corporation ("Creative Commons") is not a law firm and does not provide legal services or legal advice. Distribution of Creative Commons public licenses does not create a lawyer-client or other relationship. Creative Commons makes its licenses and related information available on an "as-is" basis. Creative Commons gives no warranties regarding its licenses, any material licensed under their terms and conditions, or any related information. Creative Commons disclaims all liability for damages resulting from their use to the fullest extent possible. + +Using Creative Commons Public Licenses + +Creative Commons public licenses provide a standard set of terms and conditions that creators and other rights holders may use to share original works of authorship and other material subject to copyright and certain other rights specified in the public license below. The following considerations are for informational purposes only, are not exhaustive, and do not form part of our licenses. + + Considerations for licensors: Our public licenses are + intended for use by those authorized to give the public + permission to use material in ways otherwise restricted by + copyright and certain other rights. Our licenses are + irrevocable. Licensors should read and understand the terms + and conditions of the license they choose before applying it. + Licensors should also secure all rights necessary before + applying our licenses so that the public can reuse the + material as expected. Licensors should clearly mark any + material not subject to the license. This includes other CC- + licensed material, or material used under an exception or + limitation to copyright. More considerations for licensors: + wiki.creativecommons.org/Considerations_for_licensors + Considerations for the public: By using one of our public + licenses, a licensor grants the public permission to use the + licensed material under specified terms and conditions. If + the licensor's permission is not necessary for any reason--for + example, because of any applicable exception or limitation to + copyright--then that use is not regulated by the license. Our + licenses grant only permissions under copyright and certain + other rights that a licensor has authority to grant. Use of + the licensed material may still be restricted for other + reasons, including because others have copyright or other + rights in the material. A licensor may make special requests, + such as asking that all changes be marked or described. + Although not required by our licenses, you are encouraged to + respect those requests where reasonable. More_considerations + for the public: + wiki.creativecommons.org/Considerations_for_licensees +Creative Commons Attribution 4.0 International Public License + +By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions. + + +Section 1 -- Definitions. + + a. Adapted Material means material subject to Copyright and Similar + Rights that is derived from or based upon the Licensed Material + and in which the Licensed Material is translated, altered, + arranged, transformed, or otherwise modified in a manner requiring + permission under the Copyright and Similar Rights held by the + Licensor. For purposes of this Public License, where the Licensed + Material is a musical work, performance, or sound recording, + Adapted Material is always produced where the Licensed Material is + synched in timed relation with a moving image. + b. Adapter's License means the license You apply to Your Copyright + and Similar Rights in Your contributions to Adapted Material in + accordance with the terms and conditions of this Public License. + c. Copyright and Similar Rights means copyright and/or similar rights + closely related to copyright including, without limitation, + performance, broadcast, sound recording, and Sui Generis Database + Rights, without regard to how the rights are labeled or + categorized. For purposes of this Public License, the rights + specified in Section 2(b)(1)-(2) are not Copyright and Similar + Rights. + d. Effective Technological Measures means those measures that, in the + absence of proper authority, may not be circumvented under laws + fulfilling obligations under Article 11 of the WIPO Copyright + Treaty adopted on December 20, 1996, and/or similar international + agreements. + e. Exceptions and Limitations means fair use, fair dealing, and/or + any other exception or limitation to Copyright and Similar Rights + that applies to Your use of the Licensed Material. + f. Licensed Material means the artistic or literary work, database, + or other material to which the Licensor applied this Public + License. + g. Licensed Rights means the rights granted to You subject to the + terms and conditions of this Public License, which are limited to + all Copyright and Similar Rights that apply to Your use of the + Licensed Material and that the Licensor has authority to license. + h. Licensor means the individual(s) or entity(ies) granting rights + under this Public License. + i. Share means to provide material to the public by any means or + process that requires permission under the Licensed Rights, such + as reproduction, public display, public performance, distribution, + dissemination, communication, or importation, and to make material + available to the public including in ways that members of the + public may access the material from a place and at a time + individually chosen by them. + j. Sui Generis Database Rights means rights other than copyright + resulting from Directive 96/9/EC of the European Parliament and of + the Council of 11 March 1996 on the legal protection of databases, + as amended and/or succeeded, as well as other essentially + equivalent rights anywhere in the world. + k. You means the individual or entity exercising the Licensed Rights + under this Public License. Your has a corresponding meaning. + +Section 2 -- Scope. + + a. License grant. + 1. Subject to the terms and conditions of this Public License, + the Licensor hereby grants You a worldwide, royalty-free, + non-sublicensable, non-exclusive, irrevocable license to + exercise the Licensed Rights in the Licensed Material to: + a. reproduce and Share the Licensed Material, in whole or + in part; and + b. produce, reproduce, and Share Adapted Material. + 2. Exceptions and Limitations. For the avoidance of doubt, where + Exceptions and Limitations apply to Your use, this Public + License does not apply, and You do not need to comply with + its terms and conditions. + 3. Term. The term of this Public License is specified in Section + 6(a). + 4. Media and formats; technical modifications allowed. The + Licensor authorizes You to exercise the Licensed Rights in + all media and formats whether now known or hereafter created, + and to make technical modifications necessary to do so. The + Licensor waives and/or agrees not to assert any right or + authority to forbid You from making technical modifications + necessary to exercise the Licensed Rights, including + technical modifications necessary to circumvent Effective + Technological Measures. For purposes of this Public License, + simply making modifications authorized by this Section 2(a) + (4) never produces Adapted Material. + 5. Downstream recipients. + a. Offer from the Licensor -- Licensed Material. Every + recipient of the Licensed Material automatically + receives an offer from the Licensor to exercise the + Licensed Rights under the terms and conditions of this + Public License. + b. No downstream restrictions. You may not offer or impose + any additional or different terms or conditions on, or + apply any Effective Technological Measures to, the + Licensed Material if doing so restricts exercise of the + Licensed Rights by any recipient of the Licensed + Material. + 6. No endorsement. Nothing in this Public License constitutes or + may be construed as permission to assert or imply that You + are, or that Your use of the Licensed Material is, connected + with, or sponsored, endorsed, or granted official status by, + the Licensor or others designated to receive attribution as + provided in Section 3(a)(1)(A)(i). + b. Other rights. + 1. Moral rights, such as the right of integrity, are not + licensed under this Public License, nor are publicity, + privacy, and/or other similar personality rights; however, to + the extent possible, the Licensor waives and/or agrees not to + assert any such rights held by the Licensor to the limited + extent necessary to allow You to exercise the Licensed + Rights, but not otherwise. + 2. Patent and trademark rights are not licensed under this + Public License. + 3. To the extent possible, the Licensor waives any right to + collect royalties from You for the exercise of the Licensed + Rights, whether directly or through a collecting society + under any voluntary or waivable statutory or compulsory + licensing scheme. In all other cases the Licensor expressly + reserves any right to collect such royalties. + +Section 3 -- License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the following conditions. + + a. Attribution. + 1. If You Share the Licensed Material (including in modified + form), You must: + a. retain the following if it is supplied by the Licensor + with the Licensed Material: + i. identification of the creator(s) of the Licensed + Material and any others designated to receive + attribution, in any reasonable manner requested by + the Licensor (including by pseudonym if + designated); + ii. a copyright notice; + iii. a notice that refers to this Public License; + iv. a notice that refers to the disclaimer of + warranties; + v. a URI or hyperlink to the Licensed Material to the + extent reasonably practicable; + b. indicate if You modified the Licensed Material and + retain an indication of any previous modifications; and + c. indicate the Licensed Material is licensed under this + Public License, and include the text of, or the URI or + hyperlink to, this Public License. + 2. You may satisfy the conditions in Section 3(a)(1) in any + reasonable manner based on the medium, means, and context in + which You Share the Licensed Material. For example, it may be + reasonable to satisfy the conditions by providing a URI or + hyperlink to a resource that includes the required + information. + 3. If requested by the Licensor, You must remove any of the + information required by Section 3(a)(1)(A) to the extent + reasonably practicable. + 4. If You Share Adapted Material You produce, the Adapter's + License You apply must not prevent recipients of the Adapted + Material from complying with this Public License. + +Section 4 -- Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material: + + a. for the avoidance of doubt, Section 2(a)(1) grants You the right + to extract, reuse, reproduce, and Share all or a substantial + portion of the contents of the database; + b. if You include all or a substantial portion of the database + contents in a database in which You have Sui Generis Database + Rights, then the database in which You have Sui Generis Database + Rights (but not its individual contents) is Adapted Material; and + c. You must comply with the conditions in Section 3(a) if You Share + all or a substantial portion of the contents of the database. +For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights. + + +Section 5 -- Disclaimer of Warranties and Limitation of Liability. + + a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE + EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS + AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF + ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, + IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, + WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, + ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT + KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT + ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. + b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE + TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, + NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, + INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, + COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR + USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR + DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR + IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + c. The disclaimer of warranties and limitation of liability provided + above shall be interpreted in a manner that, to the extent + possible, most closely approximates an absolute disclaimer and + waiver of all liability. + +Section 6 -- Term and Termination. + + a. This Public License applies for the term of the Copyright and + Similar Rights licensed here. However, if You fail to comply with + this Public License, then Your rights under this Public License + terminate automatically. + b. Where Your right to use the Licensed Material has terminated under + Section 6(a), it reinstates: + 1. automatically as of the date the violation is cured, provided + it is cured within 30 days of Your discovery of the + violation; or + 2. upon express reinstatement by the Licensor. + For the avoidance of doubt, this Section 6(b) does not affect any + right the Licensor may have to seek remedies for Your violations + of this Public License. + c. For the avoidance of doubt, the Licensor may also offer the + Licensed Material under separate terms or conditions or stop + distributing the Licensed Material at any time; however, doing so + will not terminate this Public License. + d. Sections 1, 5, 6, 7, and 8 survive termination of this Public + License. + +Section 7 -- Other Terms and Conditions. + + a. The Licensor shall not be bound by any additional or different + terms or conditions communicated by You unless expressly agreed. + b. Any arrangements, understandings, or agreements regarding the + Licensed Material not stated herein are separate from and + independent of the terms and conditions of this Public License. + +Section 8 -- Interpretation. + + a. For the avoidance of doubt, this Public License does not, and + shall not be interpreted to, reduce, limit, restrict, or impose + conditions on any use of the Licensed Material that could lawfully + be made without permission under this Public License. + b. To the extent possible, if any provision of this Public License is + deemed unenforceable, it shall be automatically reformed to the + minimum extent necessary to make it enforceable. If the provision + cannot be reformed, it shall be severed from this Public License + without affecting the enforceability of the remaining terms and + conditions. + c. No term or condition of this Public License will be waived and no + failure to comply consented to unless expressly agreed to by the + Licensor. + d. Nothing in this Public License constitutes or may be interpreted + as a limitation upon, or waiver of, any privileges and immunities + that apply to the Licensor or You, including from the legal + processes of any jurisdiction or authority. +Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the "Licensor." The text of the Creative Commons public licenses is dedicated to the public domain under the CC0 Public Domain Dedication. Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at creativecommons.org/policies, Creative Commons does not authorize the use of the trademark "Creative Commons" or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses. + +Creative Commons may be contacted at creativecommons.org. \ No newline at end of file diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/add.png b/resmgr/src/main/webapp/resmgr-nfv/images/add.png similarity index 100% rename from openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/add.png rename to resmgr/src/main/webapp/resmgr-nfv/images/add.png diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/arrow-down-enable.png b/resmgr/src/main/webapp/resmgr-nfv/images/arrow-down-enable.png similarity index 100% rename from openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/arrow-down-enable.png rename to resmgr/src/main/webapp/resmgr-nfv/images/arrow-down-enable.png diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/images/collapse_arrow.png b/resmgr/src/main/webapp/resmgr-nfv/images/collapse_arrow.png similarity index 100% rename from openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/images/collapse_arrow.png rename to resmgr/src/main/webapp/resmgr-nfv/images/collapse_arrow.png diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/delete.png b/resmgr/src/main/webapp/resmgr-nfv/images/delete.png similarity index 100% rename from openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/delete.png rename to resmgr/src/main/webapp/resmgr-nfv/images/delete.png diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/edit.png b/resmgr/src/main/webapp/resmgr-nfv/images/edit.png similarity index 100% rename from openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/edit.png rename to resmgr/src/main/webapp/resmgr-nfv/images/edit.png diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/images/expand_arrow.png b/resmgr/src/main/webapp/resmgr-nfv/images/expand_arrow.png similarity index 100% rename from openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/images/expand_arrow.png rename to resmgr/src/main/webapp/resmgr-nfv/images/expand_arrow.png diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/ideo_default_select.png b/resmgr/src/main/webapp/resmgr-nfv/images/ideo_default_select.png similarity index 100% rename from openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/ideo_default_select.png rename to resmgr/src/main/webapp/resmgr-nfv/images/ideo_default_select.png diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/import.png b/resmgr/src/main/webapp/resmgr-nfv/images/import.png similarity index 100% rename from openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/import.png rename to resmgr/src/main/webapp/resmgr-nfv/images/import.png diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/line.png b/resmgr/src/main/webapp/resmgr-nfv/images/line.png similarity index 100% rename from openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/line.png rename to resmgr/src/main/webapp/resmgr-nfv/images/line.png diff --git a/openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller/images/loading-spinner-grey.gif b/resmgr/src/main/webapp/resmgr-nfv/images/loading-spinner-grey.gif similarity index 100% rename from openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller/images/loading-spinner-grey.gif rename to resmgr/src/main/webapp/resmgr-nfv/images/loading-spinner-grey.gif diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/images/openo.png b/resmgr/src/main/webapp/resmgr-nfv/images/openo.png similarity index 100% rename from openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/images/openo.png rename to resmgr/src/main/webapp/resmgr-nfv/images/openo.png diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/page_l.png b/resmgr/src/main/webapp/resmgr-nfv/images/page_l.png similarity index 100% rename from openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/page_l.png rename to resmgr/src/main/webapp/resmgr-nfv/images/page_l.png diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/page_left_disabled.png b/resmgr/src/main/webapp/resmgr-nfv/images/page_left_disabled.png similarity index 100% rename from openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/page_left_disabled.png rename to resmgr/src/main/webapp/resmgr-nfv/images/page_left_disabled.png diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/page_r.png b/resmgr/src/main/webapp/resmgr-nfv/images/page_r.png similarity index 100% rename from openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/page_r.png rename to resmgr/src/main/webapp/resmgr-nfv/images/page_r.png diff --git a/openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller/images/sort_asc.png b/resmgr/src/main/webapp/resmgr-nfv/images/sort_asc.png similarity index 100% rename from openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller/images/sort_asc.png rename to resmgr/src/main/webapp/resmgr-nfv/images/sort_asc.png diff --git a/openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller/images/sort_both.png b/resmgr/src/main/webapp/resmgr-nfv/images/sort_both.png similarity index 100% rename from openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller/images/sort_both.png rename to resmgr/src/main/webapp/resmgr-nfv/images/sort_both.png diff --git a/openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller/images/sort_desc.png b/resmgr/src/main/webapp/resmgr-nfv/images/sort_desc.png similarity index 100% rename from openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller/images/sort_desc.png rename to resmgr/src/main/webapp/resmgr-nfv/images/sort_desc.png diff --git a/resmgr/src/main/webapp/resmgr-nfv/js/SendMsg.js b/resmgr/src/main/webapp/resmgr-nfv/js/SendMsg.js new file mode 100644 index 00000000..ba8d9ac7 --- /dev/null +++ b/resmgr/src/main/webapp/resmgr-nfv/js/SendMsg.js @@ -0,0 +1,34 @@ +/* Copyright 2016-2017, Huawei Technologies Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +var sendMsg = { + get: "get", + post: "post" +} + +function request(url, requestType, data, success, error, async) { + var setting = { + url: url, + async: async ? async : false, + type: requestType, + dataType: "json", + contentType: 'application/json;charset=UTF-8', + data: data, + success: success, + error: error + } + + $.ajax(setting); + +} \ No newline at end of file diff --git a/resmgr/src/main/webapp/resmgr-nfv/js/bootbox.min.js b/resmgr/src/main/webapp/resmgr-nfv/js/bootbox.min.js new file mode 100644 index 00000000..a7ea24fe --- /dev/null +++ b/resmgr/src/main/webapp/resmgr-nfv/js/bootbox.min.js @@ -0,0 +1,6 @@ +/** + * bootbox.js v4.3.0 + * + * http://bootboxjs.com/license.txt + */ +!function(a,b){"use strict";"function"==typeof define&&define.amd?define(["jquery"],b):"object"==typeof exports?module.exports=b(require("jquery")):a.bootbox=b(a.jQuery)}(this,function a(b,c){"use strict";function d(a){var b=q[o.locale];return b?b[a]:q.en[a]}function e(a,c,d){a.stopPropagation(),a.preventDefault();var e=b.isFunction(d)&&d(a)===!1;e||c.modal("hide")}function f(a){var b,c=0;for(b in a)c++;return c}function g(a,c){var d=0;b.each(a,function(a,b){c(a,b,d++)})}function h(a){var c,d;if("object"!=typeof a)throw new Error("Please supply an object of options");if(!a.message)throw new Error("Please specify a message");return a=b.extend({},o,a),a.buttons||(a.buttons={}),a.backdrop=a.backdrop?"static":!1,c=a.buttons,d=f(c),g(c,function(a,e,f){if(b.isFunction(e)&&(e=c[a]={callback:e}),"object"!==b.type(e))throw new Error("button with key "+a+" must be an object");e.label||(e.label=a),e.className||(e.className=2>=d&&f===d-1?"btn-primary":"btn-default")}),a}function i(a,b){var c=a.length,d={};if(1>c||c>2)throw new Error("Invalid argument length");return 2===c||"string"==typeof a[0]?(d[b[0]]=a[0],d[b[1]]=a[1]):d=a[0],d}function j(a,c,d){return b.extend(!0,{},a,i(c,d))}function k(a,b,c,d){var e={className:"bootbox-"+a,buttons:l.apply(null,b)};return m(j(e,d,c),b)}function l(){for(var a={},b=0,c=arguments.length;c>b;b++){var e=arguments[b],f=e.toLowerCase(),g=e.toUpperCase();a[f]={label:d(g)}}return a}function m(a,b){var d={};return g(b,function(a,b){d[b]=!0}),g(a.buttons,function(a){if(d[a]===c)throw new Error("button key "+a+" is not allowed (options are "+b.join("\n")+")")}),a}var n={dialog:"",header:"",footer:"",closeButton:"",form:"
    ",inputs:{text:"",textarea:"",email:"",select:"",checkbox:"
    ",date:"",time:"",number:"",password:""}},o={locale:"en",backdrop:!0,animate:!0,className:null,closeButton:!0,show:!0,container:"body"},p={};p.alert=function(){var a;if(a=k("alert",["ok"],["message","callback"],arguments),a.callback&&!b.isFunction(a.callback))throw new Error("alert requires callback property to be a function when provided");return a.buttons.ok.callback=a.onEscape=function(){return b.isFunction(a.callback)?a.callback():!0},p.dialog(a)},p.confirm=function(){var a;if(a=k("confirm",["cancel","confirm"],["message","callback"],arguments),a.buttons.cancel.callback=a.onEscape=function(){return a.callback(!1)},a.buttons.confirm.callback=function(){return a.callback(!0)},!b.isFunction(a.callback))throw new Error("confirm requires a callback");return p.dialog(a)},p.prompt=function(){var a,d,e,f,h,i,k;if(f=b(n.form),d={className:"bootbox-prompt",buttons:l("cancel","confirm"),value:"",inputType:"text"},a=m(j(d,arguments,["title","callback"]),["cancel","confirm"]),i=a.show===c?!0:a.show,a.message=f,a.buttons.cancel.callback=a.onEscape=function(){return a.callback(null)},a.buttons.confirm.callback=function(){var c;switch(a.inputType){case"text":case"textarea":case"email":case"select":case"date":case"time":case"number":case"password":c=h.val();break;case"checkbox":var d=h.find("input:checked");c=[],g(d,function(a,d){c.push(b(d).val())})}return a.callback(c)},a.show=!1,!a.title)throw new Error("prompt requires a title");if(!b.isFunction(a.callback))throw new Error("prompt requires a callback");if(!n.inputs[a.inputType])throw new Error("invalid prompt type");switch(h=b(n.inputs[a.inputType]),a.inputType){case"text":case"textarea":case"email":case"date":case"time":case"number":case"password":h.val(a.value);break;case"select":var o={};if(k=a.inputOptions||[],!k.length)throw new Error("prompt with select requires options");g(k,function(a,d){var e=h;if(d.value===c||d.text===c)throw new Error("given options in wrong format");d.group&&(o[d.group]||(o[d.group]=b("").attr("label",d.group)),e=o[d.group]),e.append("")}),g(o,function(a,b){h.append(b)}),h.val(a.value);break;case"checkbox":var q=b.isArray(a.value)?a.value:[a.value];if(k=a.inputOptions||[],!k.length)throw new Error("prompt with checkbox requires options");if(!k[0].value||!k[0].text)throw new Error("given options in wrong format");h=b("
    "),g(k,function(c,d){var e=b(n.inputs[a.inputType]);e.find("input").attr("value",d.value),e.find("label").append(d.text),g(q,function(a,b){b===d.value&&e.find("input").prop("checked",!0)}),h.append(e)})}return a.placeholder&&h.attr("placeholder",a.placeholder),a.pattern&&h.attr("pattern",a.pattern),f.append(h),f.on("submit",function(a){a.preventDefault(),a.stopPropagation(),e.find(".btn-primary").click()}),e=p.dialog(a),e.off("shown.bs.modal"),e.on("shown.bs.modal",function(){h.focus()}),i===!0&&e.modal("show"),e},p.dialog=function(a){a=h(a);var c=b(n.dialog),d=c.find(".modal-dialog"),f=c.find(".modal-body"),i=a.buttons,j="",k={onEscape:a.onEscape};if(g(i,function(a,b){j+="",k[a]=b.callback}),f.find(".bootbox-body").html(a.message),a.animate===!0&&c.addClass("fade"),a.className&&c.addClass(a.className),"large"===a.size&&d.addClass("modal-lg"),"small"===a.size&&d.addClass("modal-sm"),a.title&&f.before(n.header),a.closeButton){var l=b(n.closeButton);a.title?c.find(".modal-header").prepend(l):l.css("margin-top","-10px").prependTo(f)}return a.title&&c.find(".modal-title").html(a.title),j.length&&(f.after(n.footer),c.find(".modal-footer").html(j)),c.on("hidden.bs.modal",function(a){a.target===this&&c.remove()}),c.on("shown.bs.modal",function(){c.find(".btn-primary:first").focus()}),c.on("escape.close.bb",function(a){k.onEscape&&e(a,c,k.onEscape)}),c.on("click",".modal-footer button",function(a){var d=b(this).data("bb-handler");e(a,c,k[d])}),c.on("click",".bootbox-close-button",function(a){e(a,c,k.onEscape)}),c.on("keyup",function(a){27===a.which&&c.trigger("escape.close.bb")}),b(a.container).append(c),c.modal({backdrop:a.backdrop,keyboard:!1,show:!1}),a.show&&c.modal("show"),c},p.setDefaults=function(){var a={};2===arguments.length?a[arguments[0]]=arguments[1]:a=arguments[0],b.extend(o,a)},p.hideAll=function(){return b(".bootbox").modal("hide"),p};var q={br:{OK:"OK",CANCEL:"Cancelar",CONFIRM:"Sim"},cs:{OK:"OK",CANCEL:"Zrušit",CONFIRM:"Potvrdit"},da:{OK:"OK",CANCEL:"Annuller",CONFIRM:"Accepter"},de:{OK:"OK",CANCEL:"Abbrechen",CONFIRM:"Akzeptieren"},el:{OK:"Εντάξει",CANCEL:"Ακύρωση",CONFIRM:"Επιβεβαίωση"},en:{OK:"OK",CANCEL:"Cancel",CONFIRM:"OK"},es:{OK:"OK",CANCEL:"Cancelar",CONFIRM:"Aceptar"},et:{OK:"OK",CANCEL:"Katkesta",CONFIRM:"OK"},fi:{OK:"OK",CANCEL:"Peruuta",CONFIRM:"OK"},fr:{OK:"OK",CANCEL:"Annuler",CONFIRM:"D'accord"},he:{OK:"אישור",CANCEL:"ביטול",CONFIRM:"אישור"},id:{OK:"OK",CANCEL:"Batal",CONFIRM:"OK"},it:{OK:"OK",CANCEL:"Annulla",CONFIRM:"Conferma"},ja:{OK:"OK",CANCEL:"キャンセル",CONFIRM:"確認"},lt:{OK:"Gerai",CANCEL:"Atšaukti",CONFIRM:"Patvirtinti"},lv:{OK:"Labi",CANCEL:"Atcelt",CONFIRM:"Apstiprināt"},nl:{OK:"OK",CANCEL:"Annuleren",CONFIRM:"Accepteren"},no:{OK:"OK",CANCEL:"Avbryt",CONFIRM:"OK"},pl:{OK:"OK",CANCEL:"Anuluj",CONFIRM:"Potwierdź"},pt:{OK:"OK",CANCEL:"Cancelar",CONFIRM:"Confirmar"},ru:{OK:"OK",CANCEL:"Отмена",CONFIRM:"Применить"},sv:{OK:"OK",CANCEL:"Avbryt",CONFIRM:"OK"},tr:{OK:"Tamam",CANCEL:"İptal",CONFIRM:"Onayla"},zh_CN:{OK:"OK",CANCEL:"取消",CONFIRM:"确认"},zh_TW:{OK:"OK",CANCEL:"取消",CONFIRM:"確認"}};return p.init=function(c){return a(c||b)},p}); \ No newline at end of file diff --git a/resmgr/src/main/webapp/resmgr-nfv/js/bootstrap-table.min.js b/resmgr/src/main/webapp/resmgr-nfv/js/bootstrap-table.min.js new file mode 100644 index 00000000..aa8e6854 --- /dev/null +++ b/resmgr/src/main/webapp/resmgr-nfv/js/bootstrap-table.min.js @@ -0,0 +1,8 @@ +/* +* bootstrap-table - v1.11.0 - 2016-07-02 +* https://github.com/wenzhixin/bootstrap-table +* Copyright (c) 2016 zhixin wen +* Licensed MIT License +*/ +!function(a){"use strict";var b=null,c=function(a){var b=arguments,c=!0,d=1;return a=a.replace(/%s/g,function(){var a=b[d++];return"undefined"==typeof a?(c=!1,""):a}),c?a:""},d=function(b,c,d,e){var f="";return a.each(b,function(a,b){return b[c]===e?(f=b[d],!1):!0}),f},e=function(b,c){var d=-1;return a.each(b,function(a,b){return b.field===c?(d=a,!1):!0}),d},f=function(b){var c,d,e,f=0,g=[];for(c=0;cd;d++)g[c][d]=!1;for(c=0;ce;e++)g[c+e][k]=!0;for(e=0;j>e;e++)g[c][k+e]=!0}},g=function(){if(null===b){var c,d,e=a("

    ").addClass("fixed-table-scroll-inner"),f=a("

    ").addClass("fixed-table-scroll-outer");f.append(e),a("body").append(f),c=e[0].offsetWidth,f.css("overflow","scroll"),d=e[0].offsetWidth,c===d&&(d=f[0].clientWidth),f.remove(),b=c-d}return b},h=function(b,d,e,f){var g=d;if("string"==typeof d){var h=d.split(".");h.length>1?(g=window,a.each(h,function(a,b){g=g[b]})):g=window[d]}return"object"==typeof g?g:"function"==typeof g?g.apply(b,e):!g&&"string"==typeof d&&c.apply(this,[d].concat(e))?c.apply(this,[d].concat(e)):f},i=function(b,c,d){var e=Object.getOwnPropertyNames(b),f=Object.getOwnPropertyNames(c),g="";if(d&&e.length!==f.length)return!1;for(var h=0;h-1&&b[g]!==c[g])return!1;return!0},j=function(a){return"string"==typeof a?a.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/`/g,"`"):a},k=function(b){var c=0;return b.children().each(function(){c0||navigator.userAgent.match(/Trident.*rv\:11\./))},o=function(){Object.keys||(Object.keys=function(){var a=Object.prototype.hasOwnProperty,b=!{toString:null}.propertyIsEnumerable("toString"),c=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],d=c.length;return function(e){if("object"!=typeof e&&("function"!=typeof e||null===e))throw new TypeError("Object.keys called on non-object");var f,g,h=[];for(f in e)a.call(e,f)&&h.push(f);if(b)for(g=0;d>g;g++)a.call(e,c[g])&&h.push(c[g]);return h}}())},p=function(b,c){this.options=c,this.$el=a(b),this.$el_=this.$el.clone(),this.timeoutId_=0,this.timeoutFooter_=0,this.init()};p.DEFAULTS={classes:"table table-hover",locale:void 0,height:void 0,undefinedText:"-",sortName:void 0,sortOrder:"asc",sortStable:!1,striped:!1,columns:[[]],data:[],dataField:"rows",method:"get",url:void 0,ajax:void 0,cache:!0,contentType:"application/json",dataType:"json",ajaxOptions:{},queryParams:function(a){return a},queryParamsType:"limit",responseHandler:function(a){return a},pagination:!1,onlyInfoPagination:!1,sidePagination:"client",totalRows:0,pageNumber:1,pageSize:10,pageList:[10,25,50,100],paginationHAlign:"right",paginationVAlign:"bottom",paginationDetailHAlign:"left",paginationPreText:"‹",paginationNextText:"›",search:!1,searchOnEnterKey:!1,strictSearch:!1,searchAlign:"right",selectItemName:"btSelectItem",showHeader:!0,showFooter:!1,showColumns:!1,showPaginationSwitch:!1,showRefresh:!1,showToggle:!1,buttonsAlign:"right",smartDisplay:!0,escape:!1,minimumCountColumns:1,idField:void 0,uniqueId:void 0,cardView:!1,detailView:!1,detailFormatter:function(){return""},trimOnSearch:!0,clickToSelect:!1,singleSelect:!1,toolbar:void 0,toolbarAlign:"left",checkboxHeader:!0,sortable:!0,silentSort:!0,maintainSelected:!1,searchTimeOut:500,searchText:"",iconSize:void 0,buttonsClass:"default",iconsPrefix:"glyphicon",icons:{paginationSwitchDown:"glyphicon-collapse-down icon-chevron-down",paginationSwitchUp:"glyphicon-collapse-up icon-chevron-up",refresh:"glyphicon-refresh icon-refresh",toggle:"glyphicon-list-alt icon-list-alt",columns:"glyphicon-th icon-th",detailOpen:"glyphicon-plus icon-plus",detailClose:"glyphicon-minus icon-minus"},customSearch:a.noop,customSort:a.noop,rowStyle:function(){return{}},rowAttributes:function(){return{}},footerStyle:function(){return{}},onAll:function(){return!1},onClickCell:function(){return!1},onDblClickCell:function(){return!1},onClickRow:function(){return!1},onDblClickRow:function(){return!1},onSort:function(){return!1},onCheck:function(){return!1},onUncheck:function(){return!1},onCheckAll:function(){return!1},onUncheckAll:function(){return!1},onCheckSome:function(){return!1},onUncheckSome:function(){return!1},onLoadSuccess:function(){return!1},onLoadError:function(){return!1},onColumnSwitch:function(){return!1},onPageChange:function(){return!1},onSearch:function(){return!1},onToggle:function(){return!1},onPreBody:function(){return!1},onPostBody:function(){return!1},onPostHeader:function(){return!1},onExpandRow:function(){return!1},onCollapseRow:function(){return!1},onRefreshOptions:function(){return!1},onRefresh:function(){return!1},onResetView:function(){return!1}},p.LOCALES={},p.LOCALES["en-US"]=p.LOCALES.en={formatLoadingMessage:function(){return"Loading, please wait..."},formatRecordsPerPage:function(a){return c("%s rows per page",a)},formatShowingRows:function(a,b,d){return c("Showing %s to %s of %s rows",a,b,d)},formatDetailPagination:function(a){return c("Showing %s rows",a)},formatSearch:function(){return"Search"},formatNoMatches:function(){return"No matching records found"},formatPaginationSwitch:function(){return"Hide/Show pagination"},formatRefresh:function(){return"Refresh"},formatToggle:function(){return"Toggle"},formatColumns:function(){return"Columns"},formatAllRows:function(){return"All"}},a.extend(p.DEFAULTS,p.LOCALES["en-US"]),p.COLUMN_DEFAULTS={radio:!1,checkbox:!1,checkboxEnabled:!0,field:void 0,title:void 0,titleTooltip:void 0,"class":void 0,align:void 0,halign:void 0,falign:void 0,valign:void 0,width:void 0,sortable:!1,order:"asc",visible:!0,switchable:!0,clickToSelect:!0,formatter:void 0,footerFormatter:void 0,events:void 0,sorter:void 0,sortName:void 0,cellStyle:void 0,searchable:!0,searchFormatter:!0,cardVisible:!0},p.EVENTS={"all.bs.table":"onAll","click-cell.bs.table":"onClickCell","dbl-click-cell.bs.table":"onDblClickCell","click-row.bs.table":"onClickRow","dbl-click-row.bs.table":"onDblClickRow","sort.bs.table":"onSort","check.bs.table":"onCheck","uncheck.bs.table":"onUncheck","check-all.bs.table":"onCheckAll","uncheck-all.bs.table":"onUncheckAll","check-some.bs.table":"onCheckSome","uncheck-some.bs.table":"onUncheckSome","load-success.bs.table":"onLoadSuccess","load-error.bs.table":"onLoadError","column-switch.bs.table":"onColumnSwitch","page-change.bs.table":"onPageChange","search.bs.table":"onSearch","toggle.bs.table":"onToggle","pre-body.bs.table":"onPreBody","post-body.bs.table":"onPostBody","post-header.bs.table":"onPostHeader","expand-row.bs.table":"onExpandRow","collapse-row.bs.table":"onCollapseRow","refresh-options.bs.table":"onRefreshOptions","reset-view.bs.table":"onResetView","refresh.bs.table":"onRefresh"},p.prototype.init=function(){this.initLocale(),this.initContainer(),this.initTable(),this.initHeader(),this.initData(),this.initFooter(),this.initToolbar(),this.initPagination(),this.initBody(),this.initSearchText(),this.initServer()},p.prototype.initLocale=function(){if(this.options.locale){var b=this.options.locale.split(/-|_/);b[0].toLowerCase(),b[1]&&b[1].toUpperCase(),a.fn.bootstrapTable.locales[this.options.locale]?a.extend(this.options,a.fn.bootstrapTable.locales[this.options.locale]):a.fn.bootstrapTable.locales[b.join("-")]?a.extend(this.options,a.fn.bootstrapTable.locales[b.join("-")]):a.fn.bootstrapTable.locales[b[0]]&&a.extend(this.options,a.fn.bootstrapTable.locales[b[0]])}},p.prototype.initContainer=function(){this.$container=a(['
    ','
    ',"top"===this.options.paginationVAlign||"both"===this.options.paginationVAlign?'
    ':"",'
    ','
    ','
    ','
    ',this.options.formatLoadingMessage(),"
    ","
    ",'',"bottom"===this.options.paginationVAlign||"both"===this.options.paginationVAlign?'
    ':"","
    ","
    "].join("")),this.$container.insertAfter(this.$el),this.$tableContainer=this.$container.find(".fixed-table-container"),this.$tableHeader=this.$container.find(".fixed-table-header"),this.$tableBody=this.$container.find(".fixed-table-body"),this.$tableLoading=this.$container.find(".fixed-table-loading"),this.$tableFooter=this.$container.find(".fixed-table-footer"),this.$toolbar=this.$container.find(".fixed-table-toolbar"),this.$pagination=this.$container.find(".fixed-table-pagination"),this.$tableBody.append(this.$el),this.$container.after('
    '),this.$el.addClass(this.options.classes),this.options.striped&&this.$el.addClass("table-striped"),-1!==a.inArray("table-no-bordered",this.options.classes.split(" "))&&this.$tableContainer.addClass("table-no-bordered")},p.prototype.initTable=function(){var b=this,c=[],d=[];if(this.$header=this.$el.find(">thead"),this.$header.length||(this.$header=a("").appendTo(this.$el)),this.$header.find("tr").each(function(){var b=[];a(this).find("th").each(function(){"undefined"!=typeof a(this).data("field")&&a(this).data("field",a(this).data("field")+""),b.push(a.extend({},{title:a(this).html(),"class":a(this).attr("class"),titleTooltip:a(this).attr("title"),rowspan:a(this).attr("rowspan")?+a(this).attr("rowspan"):void 0,colspan:a(this).attr("colspan")?+a(this).attr("colspan"):void 0},a(this).data()))}),c.push(b)}),a.isArray(this.options.columns[0])||(this.options.columns=[this.options.columns]),this.options.columns=a.extend(!0,[],c,this.options.columns),this.columns=[],f(this.options.columns),a.each(this.options.columns,function(c,d){a.each(d,function(d,e){e=a.extend({},p.COLUMN_DEFAULTS,e),"undefined"!=typeof e.fieldIndex&&(b.columns[e.fieldIndex]=e),b.options.columns[c][d]=e})}),!this.options.data.length){var e=[];this.$el.find(">tbody>tr").each(function(c){var f={};f._id=a(this).attr("id"),f._class=a(this).attr("class"),f._data=l(a(this).data()),a(this).find(">td").each(function(d){for(var g,h,i=a(this),j=+i.attr("colspan")||1,k=+i.attr("rowspan")||1;e[c]&&e[c][d];d++);for(g=d;d+j>g;g++)for(h=c;c+k>h;h++)e[h]||(e[h]=[]),e[h][g]=!0;var m=b.columns[d].field;f[m]=a(this).html(),f["_"+m+"_id"]=a(this).attr("id"),f["_"+m+"_class"]=a(this).attr("class"),f["_"+m+"_rowspan"]=a(this).attr("rowspan"),f["_"+m+"_colspan"]=a(this).attr("colspan"),f["_"+m+"_title"]=a(this).attr("title"),f["_"+m+"_data"]=l(a(this).data())}),d.push(f)}),this.options.data=d,d.length&&(this.fromHtml=!0)}},p.prototype.initHeader=function(){var b=this,d={},e=[];this.header={fields:[],styles:[],classes:[],formatters:[],events:[],sorters:[],sortNames:[],cellStyles:[],searchables:[]},a.each(this.options.columns,function(f,g){e.push(""),0===f&&!b.options.cardView&&b.options.detailView&&e.push(c('
    ',b.options.columns.length)),a.each(g,function(a,f){var g="",h="",i="",j="",k=c(' class="%s"',f["class"]),l=(b.options.sortOrder||f.order,"px"),m=f.width;if(void 0===f.width||b.options.cardView||"string"==typeof f.width&&-1!==f.width.indexOf("%")&&(l="%"),f.width&&"string"==typeof f.width&&(m=f.width.replace("%","").replace("px","")),h=c("text-align: %s; ",f.halign?f.halign:f.align),i=c("text-align: %s; ",f.align),j=c("vertical-align: %s; ",f.valign),j+=c("width: %s; ",!f.checkbox&&!f.radio||m?m?m+l:void 0:"36px"),"undefined"!=typeof f.fieldIndex){if(b.header.fields[f.fieldIndex]=f.field,b.header.styles[f.fieldIndex]=i+j,b.header.classes[f.fieldIndex]=k,b.header.formatters[f.fieldIndex]=f.formatter,b.header.events[f.fieldIndex]=f.events,b.header.sorters[f.fieldIndex]=f.sorter,b.header.sortNames[f.fieldIndex]=f.sortName,b.header.cellStyles[f.fieldIndex]=f.cellStyle,b.header.searchables[f.fieldIndex]=f.searchable,!f.visible)return;if(b.options.cardView&&!f.cardVisible)return;d[f.field]=f}e.push(""),e.push(c('
    ',b.options.sortable&&f.sortable?"sortable both":"")),g=f.title,f.checkbox&&(!b.options.singleSelect&&b.options.checkboxHeader&&(g=''),b.header.stateField=f.field),f.radio&&(g="",b.header.stateField=f.field,b.options.singleSelect=!0),e.push(g),e.push("
    "),e.push('
    '),e.push("
    "),e.push("")}),e.push("")}),this.$header.html(e.join("")),this.$header.find("th[data-field]").each(function(){a(this).data(d[a(this).data("field")])}),this.$container.off("click",".th-inner").on("click",".th-inner",function(c){var d=a(this);return b.options.detailView&&d.closest(".bootstrap-table")[0]!==b.$container[0]?!1:void(b.options.sortable&&d.parent().data().sortable&&b.onSort(c))}),this.$header.children().children().off("keypress").on("keypress",function(c){if(b.options.sortable&&a(this).data().sortable){var d=c.keyCode||c.which;13==d&&b.onSort(c)}}),a(window).off("resize.bootstrap-table"),!this.options.showHeader||this.options.cardView?(this.$header.hide(),this.$tableHeader.hide(),this.$tableLoading.css("top",0)):(this.$header.show(),this.$tableHeader.show(),this.$tableLoading.css("top",this.$header.outerHeight()+1),this.getCaret(),a(window).on("resize.bootstrap-table",a.proxy(this.resetWidth,this))),this.$selectAll=this.$header.find('[name="btSelectAll"]'),this.$selectAll.off("click").on("click",function(){var c=a(this).prop("checked");b[c?"checkAll":"uncheckAll"](),b.updateSelected()})},p.prototype.initFooter=function(){!this.options.showFooter||this.options.cardView?this.$tableFooter.hide():this.$tableFooter.show()},p.prototype.initData=function(a,b){this.data="append"===b?this.data.concat(a):"prepend"===b?[].concat(a).concat(this.data):a||this.options.data,this.options.data="append"===b?this.options.data.concat(a):"prepend"===b?[].concat(a).concat(this.options.data):this.data,"server"!==this.options.sidePagination&&this.initSort()},p.prototype.initSort=function(){var b=this,c=this.options.sortName,d="desc"===this.options.sortOrder?-1:1,e=a.inArray(this.options.sortName,this.header.fields);return this.options.customSort!==a.noop?void this.options.customSort.apply(this,[this.options.sortName,this.options.sortOrder]):void(-1!==e&&(this.options.sortStable&&a.each(this.data,function(a,b){b.hasOwnProperty("_position")||(b._position=a)}),this.data.sort(function(f,g){b.header.sortNames[e]&&(c=b.header.sortNames[e]);var i=m(f,c,b.options.escape),j=m(g,c,b.options.escape),k=h(b.header,b.header.sorters[e],[i,j]);return void 0!==k?d*k:((void 0===i||null===i)&&(i=""),(void 0===j||null===j)&&(j=""),b.options.sortStable&&i===j&&(i=f._position,j=g._position),a.isNumeric(i)&&a.isNumeric(j)?(i=parseFloat(i),j=parseFloat(j),j>i?-1*d:d):i===j?0:("string"!=typeof i&&(i=i.toString()),-1===i.localeCompare(j)?-1*d:d))})))},p.prototype.onSort=function(b){var c="keypress"===b.type?a(b.currentTarget):a(b.currentTarget).parent(),d=this.$header.find("th").eq(c.index());return this.$header.add(this.$header_).find("span.order").remove(),this.options.sortName===c.data("field")?this.options.sortOrder="asc"===this.options.sortOrder?"desc":"asc":(this.options.sortName=c.data("field"),this.options.sortOrder="asc"===c.data("order")?"desc":"asc"),this.trigger("sort",this.options.sortName,this.options.sortOrder),c.add(d).data("order",this.options.sortOrder),this.getCaret(),"server"===this.options.sidePagination?void this.initServer(this.options.silentSort):(this.initSort(),void this.initBody())},p.prototype.initToolbar=function(){var b,d,e=this,f=[],g=0,i=0;this.$toolbar.find(".bs-bars").children().length&&a("body").append(a(this.options.toolbar)),this.$toolbar.html(""),("string"==typeof this.options.toolbar||"object"==typeof this.options.toolbar)&&a(c('
    ',this.options.toolbarAlign)).appendTo(this.$toolbar).append(a(this.options.toolbar)),f=[c('
    ',this.options.buttonsAlign,this.options.buttonsAlign)],"string"==typeof this.options.icons&&(this.options.icons=h(null,this.options.icons)),this.options.showPaginationSwitch&&f.push(c('"),this.options.showRefresh&&f.push(c('"),this.options.showToggle&&f.push(c('"),this.options.showColumns&&(f.push(c('
    ',this.options.formatColumns()),'",'","
    ")),f.push("
    "),(this.showToolbar||f.length>2)&&this.$toolbar.append(f.join("")),this.options.showPaginationSwitch&&this.$toolbar.find('button[name="paginationSwitch"]').off("click").on("click",a.proxy(this.togglePagination,this)),this.options.showRefresh&&this.$toolbar.find('button[name="refresh"]').off("click").on("click",a.proxy(this.refresh,this)),this.options.showToggle&&this.$toolbar.find('button[name="toggle"]').off("click").on("click",function(){e.toggleView()}),this.options.showColumns&&(b=this.$toolbar.find(".keep-open"),i<=this.options.minimumCountColumns&&b.find("input").prop("disabled",!0),b.find("li").off("click").on("click",function(a){a.stopImmediatePropagation()}),b.find("input").off("click").on("click",function(){var b=a(this);e.toggleColumn(a(this).val(),b.prop("checked"),!1),e.trigger("column-switch",a(this).data("field"),b.prop("checked"))})),this.options.search&&(f=[],f.push('"),this.$toolbar.append(f.join("")),d=this.$toolbar.find(".search input"),d.off("keyup drop").on("keyup drop",function(b){e.options.searchOnEnterKey&&13!==b.keyCode||a.inArray(b.keyCode,[37,38,39,40])>-1||(clearTimeout(g),g=setTimeout(function(){e.onSearch(b)},e.options.searchTimeOut))}),n()&&d.off("mouseup").on("mouseup",function(a){clearTimeout(g),g=setTimeout(function(){e.onSearch(a)},e.options.searchTimeOut)}))},p.prototype.onSearch=function(b){var c=a.trim(a(b.currentTarget).val());this.options.trimOnSearch&&a(b.currentTarget).val()!==c&&a(b.currentTarget).val(c),c!==this.searchText&&(this.searchText=c,this.options.searchText=c,this.options.pageNumber=1,this.initSearch(),this.updatePagination(),this.trigger("search",c))},p.prototype.initSearch=function(){var b=this;if("server"!==this.options.sidePagination){if(this.options.customSearch!==a.noop)return void this.options.customSearch.apply(this,[this.searchText]);var c=this.searchText&&(this.options.escape?j(this.searchText):this.searchText).toLowerCase(),d=a.isEmptyObject(this.filterColumns)?null:this.filterColumns;this.data=d?a.grep(this.options.data,function(b){for(var c in d)if(a.isArray(d[c])&&-1===a.inArray(b[c],d[c])||b[c]!==d[c])return!1;return!0}):this.options.data,this.data=c?a.grep(this.data,function(d,f){for(var g=0;g-1&&(n=!0)}this.totalPages=~~((this.options.totalRows-1)/this.options.pageSize)+1,this.options.totalPages=this.totalPages}if(this.totalPages>0&&this.options.pageNumber>this.totalPages&&(this.options.pageNumber=this.totalPages),this.pageFrom=(this.options.pageNumber-1)*this.options.pageSize+1,this.pageTo=this.options.pageNumber*this.options.pageSize,this.pageTo>this.options.totalRows&&(this.pageTo=this.options.totalRows),m.push('
    ','',this.options.onlyInfoPagination?this.options.formatDetailPagination(this.options.totalRows):this.options.formatShowingRows(this.pageFrom,this.pageTo,this.options.totalRows),""),!this.options.onlyInfoPagination){m.push('');var r=[c('',"top"===this.options.paginationVAlign||"both"===this.options.paginationVAlign?"dropdown":"dropup"),'",'"),m.push(this.options.formatRecordsPerPage(r.join(""))),m.push(""),m.push("
    ",'")}this.$pagination.html(m.join("")),this.options.onlyInfoPagination||(f=this.$pagination.find(".page-list a"),g=this.$pagination.find(".page-first"),h=this.$pagination.find(".page-pre"),i=this.$pagination.find(".page-next"),j=this.$pagination.find(".page-last"),k=this.$pagination.find(".page-number"),this.options.smartDisplay&&(this.totalPages<=1&&this.$pagination.find("div.pagination").hide(),(p.length<2||this.options.totalRows<=p[0])&&this.$pagination.find("span.page-list").hide(),this.$pagination[this.getData().length?"show":"hide"]()),n&&(this.options.pageSize=this.options.formatAllRows()),f.off("click").on("click",a.proxy(this.onPageListChange,this)),g.off("click").on("click",a.proxy(this.onPageFirst,this)),h.off("click").on("click",a.proxy(this.onPagePre,this)),i.off("click").on("click",a.proxy(this.onPageNext,this)),j.off("click").on("click",a.proxy(this.onPageLast,this)),k.off("click").on("click",a.proxy(this.onPageNumber,this)))},p.prototype.updatePagination=function(b){b&&a(b.currentTarget).hasClass("disabled")||(this.options.maintainSelected||this.resetRows(),this.initPagination(),"server"===this.options.sidePagination?this.initServer():this.initBody(),this.trigger("page-change",this.options.pageNumber,this.options.pageSize))},p.prototype.onPageListChange=function(b){var c=a(b.currentTarget);c.parent().addClass("active").siblings().removeClass("active"),this.options.pageSize=c.text().toUpperCase()===this.options.formatAllRows().toUpperCase()?this.options.formatAllRows():+c.text(),this.$toolbar.find(".page-size").text(this.options.pageSize),this.updatePagination(b)},p.prototype.onPageFirst=function(a){this.options.pageNumber=1,this.updatePagination(a)},p.prototype.onPagePre=function(a){this.options.pageNumber-1===0?this.options.pageNumber=this.options.totalPages:this.options.pageNumber--,this.updatePagination(a)},p.prototype.onPageNext=function(a){this.options.pageNumber+1>this.options.totalPages?this.options.pageNumber=1:this.options.pageNumber++,this.updatePagination(a)},p.prototype.onPageLast=function(a){this.options.pageNumber=this.totalPages,this.updatePagination(a)},p.prototype.onPageNumber=function(b){this.options.pageNumber!==+a(b.currentTarget).text()&&(this.options.pageNumber=+a(b.currentTarget).text(),this.updatePagination(b))},p.prototype.initBody=function(b){var f=this,g=[],i=this.getData();this.trigger("pre-body",i),this.$body=this.$el.find(">tbody"),this.$body.length||(this.$body=a("").appendTo(this.$el)),this.options.pagination&&"server"!==this.options.sidePagination||(this.pageFrom=1,this.pageTo=i.length);for(var k=this.pageFrom-1;k"),this.options.cardView&&g.push(c('
    ',this.header.fields.length)),!this.options.cardView&&this.options.detailView&&g.push("",'',c('',this.options.iconsPrefix,this.options.icons.detailOpen),"",""),a.each(this.header.fields,function(b,e){var i="",j=m(n,e,f.options.escape),l="",q={},r="",s=f.header.classes[b],t="",u="",v="",w="",x=f.columns[b];if(!(f.fromHtml&&"undefined"==typeof j||!x.visible||f.options.cardView&&!x.cardVisible)){if(o=c('style="%s"',p.concat(f.header.styles[b]).join("; ")),n["_"+e+"_id"]&&(r=c(' id="%s"',n["_"+e+"_id"])),n["_"+e+"_class"]&&(s=c(' class="%s"',n["_"+e+"_class"])),n["_"+e+"_rowspan"]&&(u=c(' rowspan="%s"',n["_"+e+"_rowspan"])),n["_"+e+"_colspan"]&&(v=c(' colspan="%s"',n["_"+e+"_colspan"])),n["_"+e+"_title"]&&(w=c(' title="%s"',n["_"+e+"_title"])),q=h(f.header,f.header.cellStyles[b],[j,n,k,e],q),q.classes&&(s=c(' class="%s"',q.classes)),q.css){var y=[];for(var z in q.css)y.push(z+": "+q.css[z]);o=c('style="%s"',y.concat(f.header.styles[b]).join("; "))}j=h(x,f.header.formatters[b],[j,n,k],j),n["_"+e+"_data"]&&!a.isEmptyObject(n["_"+e+"_data"])&&a.each(n["_"+e+"_data"],function(a,b){"index"!==a&&(t+=c(' data-%s="%s"',a,b))}),x.checkbox||x.radio?(l=x.checkbox?"checkbox":l,l=x.radio?"radio":l,i=[c(f.options.cardView?'
    ':'',x["class"]||""),"",f.header.formatters[b]&&"string"==typeof j?j:"",f.options.cardView?"
    ":""].join(""),n[f.header.stateField]=j===!0||j&&j.checked):(j="undefined"==typeof j||null===j?f.options.undefinedText:j,i=f.options.cardView?['
    ',f.options.showHeader?c('%s',o,d(f.columns,"field","title",e)):"",c('%s',j),"
    "].join(""):[c("",r,s,o,t,u,v,w),j,""].join(""),f.options.cardView&&f.options.smartDisplay&&""===j&&(i='
    ')),g.push(i)}}),this.options.cardView&&g.push("
    "),g.push("")}g.length||g.push('',c('%s',this.$header.find("th").length,this.options.formatNoMatches()),""),this.$body.html(g.join("")),b||this.scrollTo(0),this.$body.find("> tr[data-index] > td").off("click dblclick").on("click dblclick",function(b){var d=a(this),g=d.parent(),h=f.data[g.data("index")],i=d[0].cellIndex,j=f.getVisibleFields(),k=j[f.options.detailView&&!f.options.cardView?i-1:i],l=f.columns[e(f.columns,k)],n=m(h,k,f.options.escape);if(!d.find(".detail-icon").length&&(f.trigger("click"===b.type?"click-cell":"dbl-click-cell",k,n,h,d),f.trigger("click"===b.type?"click-row":"dbl-click-row",h,g,k), +"click"===b.type&&f.options.clickToSelect&&l.clickToSelect)){var o=g.find(c('[name="%s"]',f.options.selectItemName));o.length&&o[0].click()}}),this.$body.find("> tr[data-index] > td > .detail-icon").off("click").on("click",function(){var b=a(this),d=b.parent().parent(),e=d.data("index"),g=i[e];if(d.next().is("tr.detail-view"))b.find("i").attr("class",c("%s %s",f.options.iconsPrefix,f.options.icons.detailOpen)),d.next().remove(),f.trigger("collapse-row",e,g);else{b.find("i").attr("class",c("%s %s",f.options.iconsPrefix,f.options.icons.detailClose)),d.after(c('',d.find("td").length));var j=d.next().find("td"),k=h(f.options,f.options.detailFormatter,[e,g,j],"");1===j.length&&j.append(k),f.trigger("expand-row",e,g,j)}f.resetView()}),this.$selectItem=this.$body.find(c('[name="%s"]',this.options.selectItemName)),this.$selectItem.off("click").on("click",function(b){b.stopImmediatePropagation();var c=a(this),d=c.prop("checked"),e=f.data[c.data("index")];f.options.maintainSelected&&a(this).is(":radio")&&a.each(f.options.data,function(a,b){b[f.header.stateField]=!1}),e[f.header.stateField]=d,f.options.singleSelect&&(f.$selectItem.not(this).each(function(){f.data[a(this).data("index")][f.header.stateField]=!1}),f.$selectItem.filter(":checked").not(this).prop("checked",!1)),f.updateSelected(),f.trigger(d?"check":"uncheck",e,c)}),a.each(this.header.events,function(b,c){if(c){"string"==typeof c&&(c=h(null,c));var d=f.header.fields[b],e=a.inArray(d,f.getVisibleFields());f.options.detailView&&!f.options.cardView&&(e+=1);for(var g in c)f.$body.find(">tr:not(.no-records-found)").each(function(){var b=a(this),h=b.find(f.options.cardView?".card-view":"td").eq(e),i=g.indexOf(" "),j=g.substring(0,i),k=g.substring(i+1),l=c[g];h.find(k).off(j).on(j,function(a){var c=b.data("index"),e=f.data[c],g=e[d];l.apply(this,[a,g,e,c])})})}}),this.updateSelected(),this.resetView(),this.trigger("post-body",i)},p.prototype.initServer=function(b,c,d){var e,f=this,g={},i={searchText:this.searchText,sortName:this.options.sortName,sortOrder:this.options.sortOrder};this.options.pagination&&(i.pageSize=this.options.pageSize===this.options.formatAllRows()?this.options.totalRows:this.options.pageSize,i.pageNumber=this.options.pageNumber),(d||this.options.url||this.options.ajax)&&("limit"===this.options.queryParamsType&&(i={search:i.searchText,sort:i.sortName,order:i.sortOrder},this.options.pagination&&(i.offset=this.options.pageSize===this.options.formatAllRows()?0:this.options.pageSize*(this.options.pageNumber-1),i.limit=this.options.pageSize===this.options.formatAllRows()?this.options.totalRows:this.options.pageSize)),a.isEmptyObject(this.filterColumnsPartial)||(i.filter=JSON.stringify(this.filterColumnsPartial,null)),g=h(this.options,this.options.queryParams,[i],g),a.extend(g,c||{}),g!==!1&&(b||this.$tableLoading.show(),e=a.extend({},h(null,this.options.ajaxOptions),{type:this.options.method,url:d||this.options.url,data:"application/json"===this.options.contentType&&"post"===this.options.method?JSON.stringify(g):g,cache:this.options.cache,contentType:this.options.contentType,dataType:this.options.dataType,success:function(a){a=h(f.options,f.options.responseHandler,[a],a),f.load(a),f.trigger("load-success",a),b||f.$tableLoading.hide()},error:function(a){f.trigger("load-error",a.status,a),b||f.$tableLoading.hide()}}),this.options.ajax?h(this,this.options.ajax,[e],null):(this._xhr&&4!==this._xhr.readyState&&this._xhr.abort(),this._xhr=a.ajax(e))))},p.prototype.initSearchText=function(){if(this.options.search&&""!==this.options.searchText){var a=this.$toolbar.find(".search input");a.val(this.options.searchText),this.onSearch({currentTarget:a})}},p.prototype.getCaret=function(){var b=this;a.each(this.$header.find("th"),function(c,d){a(d).find(".sortable").removeClass("desc asc").addClass(a(d).data("field")===b.options.sortName?b.options.sortOrder:"both")})},p.prototype.updateSelected=function(){var b=this.$selectItem.filter(":enabled").length&&this.$selectItem.filter(":enabled").length===this.$selectItem.filter(":enabled").filter(":checked").length;this.$selectAll.add(this.$selectAll_).prop("checked",b),this.$selectItem.each(function(){a(this).closest("tr")[a(this).prop("checked")?"addClass":"removeClass"]("selected")})},p.prototype.updateRows=function(){var b=this;this.$selectItem.each(function(){b.data[a(this).data("index")][b.header.stateField]=a(this).prop("checked")})},p.prototype.resetRows=function(){var b=this;a.each(this.data,function(a,c){b.$selectAll.prop("checked",!1),b.$selectItem.prop("checked",!1),b.header.stateField&&(c[b.header.stateField]=!1)})},p.prototype.trigger=function(b){var c=Array.prototype.slice.call(arguments,1);b+=".bs.table",this.options[p.EVENTS[b]].apply(this.options,c),this.$el.trigger(a.Event(b),c),this.options.onAll(b,c),this.$el.trigger(a.Event("all.bs.table"),[b,c])},p.prototype.resetHeader=function(){clearTimeout(this.timeoutId_),this.timeoutId_=setTimeout(a.proxy(this.fitHeader,this),this.$el.is(":hidden")?100:0)},p.prototype.fitHeader=function(){var b,d,e,f,h=this;if(h.$el.is(":hidden"))return void(h.timeoutId_=setTimeout(a.proxy(h.fitHeader,h),100));if(b=this.$tableBody.get(0),d=b.scrollWidth>b.clientWidth&&b.scrollHeight>b.clientHeight+this.$header.outerHeight()?g():0,this.$el.css("margin-top",-this.$header.outerHeight()),e=a(":focus"),e.length>0){var i=e.parents("th");if(i.length>0){var j=i.attr("data-field");if(void 0!==j){var k=this.$header.find("[data-field='"+j+"']");k.length>0&&k.find(":input").addClass("focus-temp")}}}this.$header_=this.$header.clone(!0,!0),this.$selectAll_=this.$header_.find('[name="btSelectAll"]'),this.$tableHeader.css({"margin-right":d}).find("table").css("width",this.$el.outerWidth()).html("").attr("class",this.$el.attr("class")).append(this.$header_),f=a(".focus-temp:visible:eq(0)"),f.length>0&&(f.focus(),this.$header.find(".focus-temp").removeClass("focus-temp")),this.$header.find("th[data-field]").each(function(){h.$header_.find(c('th[data-field="%s"]',a(this).data("field"))).data(a(this).data())});var l=this.getVisibleFields(),m=this.$header_.find("th");this.$body.find(">tr:first-child:not(.no-records-found) > *").each(function(b){var d=a(this),e=b;h.options.detailView&&!h.options.cardView&&(0===b&&h.$header_.find("th.detail").find(".fht-cell").width(d.innerWidth()),e=b-1);var f=h.$header_.find(c('th[data-field="%s"]',l[e]));f.length>1&&(f=a(m[d[0].cellIndex])),f.find(".fht-cell").width(d.innerWidth())}),this.$tableBody.off("scroll").on("scroll",function(){h.$tableHeader.scrollLeft(a(this).scrollLeft()),h.options.showFooter&&!h.options.cardView&&h.$tableFooter.scrollLeft(a(this).scrollLeft())}),h.trigger("post-header")},p.prototype.resetFooter=function(){var b=this,d=b.getData(),e=[];this.options.showFooter&&!this.options.cardView&&(!this.options.cardView&&this.options.detailView&&e.push('
     
    '),a.each(this.columns,function(a,f){var g,i="",j="",k=[],l={},m=c(' class="%s"',f["class"]);if(f.visible&&(!b.options.cardView||f.cardVisible)){if(i=c("text-align: %s; ",f.falign?f.falign:f.align),j=c("vertical-align: %s; ",f.valign),l=h(null,b.options.footerStyle),l&&l.css)for(g in l.css)k.push(g+": "+l.css[g]);e.push(""),e.push('
    '),e.push(h(f,f.footerFormatter,[d]," ")||" "),e.push("
    "),e.push('
    '),e.push("
    "),e.push("")}}),this.$tableFooter.find("tr").html(e.join("")),this.$tableFooter.show(),clearTimeout(this.timeoutFooter_),this.timeoutFooter_=setTimeout(a.proxy(this.fitFooter,this),this.$el.is(":hidden")?100:0))},p.prototype.fitFooter=function(){var b,c,d;return clearTimeout(this.timeoutFooter_),this.$el.is(":hidden")?void(this.timeoutFooter_=setTimeout(a.proxy(this.fitFooter,this),100)):(c=this.$el.css("width"),d=c>this.$tableBody.width()?g():0,this.$tableFooter.css({"margin-right":d}).find("table").css("width",c).attr("class",this.$el.attr("class")),b=this.$tableFooter.find("td"),void this.$body.find(">tr:first-child:not(.no-records-found) > *").each(function(c){var d=a(this);b.eq(c).find(".fht-cell").width(d.innerWidth())}))},p.prototype.toggleColumn=function(a,b,d){if(-1!==a&&(this.columns[a].visible=b,this.initHeader(),this.initSearch(),this.initPagination(),this.initBody(),this.options.showColumns)){var e=this.$toolbar.find(".keep-open input").prop("disabled",!1);d&&e.filter(c('[value="%s"]',a)).prop("checked",b),e.filter(":checked").length<=this.options.minimumCountColumns&&e.filter(":checked").prop("disabled",!0)}},p.prototype.toggleRow=function(a,b,d){-1!==a&&this.$body.find("undefined"!=typeof a?c('tr[data-index="%s"]',a):c('tr[data-uniqueid="%s"]',b))[d?"show":"hide"]()},p.prototype.getVisibleFields=function(){var b=this,c=[];return a.each(this.header.fields,function(a,d){var f=b.columns[e(b.columns,d)];f.visible&&c.push(d)}),c},p.prototype.resetView=function(a){var b=0;if(a&&a.height&&(this.options.height=a.height),this.$selectAll.prop("checked",this.$selectItem.length>0&&this.$selectItem.length===this.$selectItem.filter(":checked").length),this.options.height){var c=k(this.$toolbar),d=k(this.$pagination),e=this.options.height-c-d;this.$tableContainer.css("height",e+"px")}return this.options.cardView?(this.$el.css("margin-top","0"),this.$tableContainer.css("padding-bottom","0"),void this.$tableFooter.hide()):(this.options.showHeader&&this.options.height?(this.$tableHeader.show(),this.resetHeader(),b+=this.$header.outerHeight()):(this.$tableHeader.hide(),this.trigger("post-header")),this.options.showFooter&&(this.resetFooter(),this.options.height&&(b+=this.$tableFooter.outerHeight()+1)),this.getCaret(),this.$tableContainer.css("padding-bottom",b+"px"),void this.trigger("reset-view"))},p.prototype.getData=function(b){return!this.searchText&&a.isEmptyObject(this.filterColumns)&&a.isEmptyObject(this.filterColumnsPartial)?b?this.options.data.slice(this.pageFrom-1,this.pageTo):this.options.data:b?this.data.slice(this.pageFrom-1,this.pageTo):this.data},p.prototype.load=function(b){var c=!1;"server"===this.options.sidePagination?(this.options.totalRows=b.total,c=b.fixedScroll,b=b[this.options.dataField]):a.isArray(b)||(c=b.fixedScroll,b=b.data),this.initData(b),this.initSearch(),this.initPagination(),this.initBody(c)},p.prototype.append=function(a){this.initData(a,"append"),this.initSearch(),this.initPagination(),this.initSort(),this.initBody(!0)},p.prototype.prepend=function(a){this.initData(a,"prepend"),this.initSearch(),this.initPagination(),this.initSort(),this.initBody(!0)},p.prototype.remove=function(b){var c,d,e=this.options.data.length;if(b.hasOwnProperty("field")&&b.hasOwnProperty("values")){for(c=e-1;c>=0;c--)d=this.options.data[c],d.hasOwnProperty(b.field)&&-1!==a.inArray(d[b.field],b.values)&&this.options.data.splice(c,1);e!==this.options.data.length&&(this.initSearch(),this.initPagination(),this.initSort(),this.initBody(!0))}},p.prototype.removeAll=function(){this.options.data.length>0&&(this.options.data.splice(0,this.options.data.length),this.initSearch(),this.initPagination(),this.initBody(!0))},p.prototype.getRowByUniqueId=function(a){var b,c,d,e=this.options.uniqueId,f=this.options.data.length,g=null;for(b=f-1;b>=0;b--){if(c=this.options.data[b],c.hasOwnProperty(e))d=c[e];else{if(!c._data.hasOwnProperty(e))continue;d=c._data[e]}if("string"==typeof d?a=a.toString():"number"==typeof d&&(Number(d)===d&&d%1===0?a=parseInt(a):d===Number(d)&&0!==d&&(a=parseFloat(a))),d===a){g=c;break}}return g},p.prototype.removeByUniqueId=function(a){var b=this.options.data.length,c=this.getRowByUniqueId(a);c&&this.options.data.splice(this.options.data.indexOf(c),1),b!==this.options.data.length&&(this.initSearch(),this.initPagination(),this.initBody(!0))},p.prototype.updateByUniqueId=function(b){var c=this,d=a.isArray(b)?b:[b];a.each(d,function(b,d){var e;d.hasOwnProperty("id")&&d.hasOwnProperty("row")&&(e=a.inArray(c.getRowByUniqueId(d.id),c.options.data),-1!==e&&a.extend(c.options.data[e],d.row))}),this.initSearch(),this.initSort(),this.initBody(!0)},p.prototype.insertRow=function(a){a.hasOwnProperty("index")&&a.hasOwnProperty("row")&&(this.data.splice(a.index,0,a.row),this.initSearch(),this.initPagination(),this.initSort(),this.initBody(!0))},p.prototype.updateRow=function(b){var c=this,d=a.isArray(b)?b:[b];a.each(d,function(b,d){d.hasOwnProperty("index")&&d.hasOwnProperty("row")&&a.extend(c.options.data[d.index],d.row)}),this.initSearch(),this.initSort(),this.initBody(!0)},p.prototype.showRow=function(a){(a.hasOwnProperty("index")||a.hasOwnProperty("uniqueId"))&&this.toggleRow(a.index,a.uniqueId,!0)},p.prototype.hideRow=function(a){(a.hasOwnProperty("index")||a.hasOwnProperty("uniqueId"))&&this.toggleRow(a.index,a.uniqueId,!1)},p.prototype.getRowsHidden=function(b){var c=a(this.$body[0]).children().filter(":hidden"),d=0;if(b)for(;dtr");if(this.options.detailView&&!this.options.cardView&&(g+=1),e=j.eq(f).find(">td").eq(g),!(0>f||0>g||f>=this.data.length)){for(c=f;f+h>c;c++)for(d=g;g+i>d;d++)j.eq(c).find(">td").eq(d).hide();e.attr("rowspan",h).attr("colspan",i).show()}},p.prototype.updateCell=function(a){a.hasOwnProperty("index")&&a.hasOwnProperty("field")&&a.hasOwnProperty("value")&&(this.data[a.index][a.field]=a.value,a.reinit!==!1&&(this.initSort(),this.initBody(!0)))},p.prototype.getOptions=function(){return this.options},p.prototype.getSelections=function(){var b=this;return a.grep(this.options.data,function(a){return a[b.header.stateField]})},p.prototype.getAllSelections=function(){var b=this;return a.grep(this.options.data,function(a){return a[b.header.stateField]})},p.prototype.checkAll=function(){this.checkAll_(!0)},p.prototype.uncheckAll=function(){this.checkAll_(!1)},p.prototype.checkInvert=function(){var b=this,c=b.$selectItem.filter(":enabled"),d=c.filter(":checked");c.each(function(){a(this).prop("checked",!a(this).prop("checked"))}),b.updateRows(),b.updateSelected(),b.trigger("uncheck-some",d),d=b.getSelections(),b.trigger("check-some",d)},p.prototype.checkAll_=function(a){var b;a||(b=this.getSelections()),this.$selectAll.add(this.$selectAll_).prop("checked",a),this.$selectItem.filter(":enabled").prop("checked",a),this.updateRows(),a&&(b=this.getSelections()),this.trigger(a?"check-all":"uncheck-all",b)},p.prototype.check=function(a){this.check_(!0,a)},p.prototype.uncheck=function(a){this.check_(!1,a)},p.prototype.check_=function(a,b){var d=this.$selectItem.filter(c('[data-index="%s"]',b)).prop("checked",a);this.data[b][this.header.stateField]=a,this.updateSelected(),this.trigger(a?"check":"uncheck",this.data[b],d)},p.prototype.checkBy=function(a){this.checkBy_(!0,a)},p.prototype.uncheckBy=function(a){this.checkBy_(!1,a)},p.prototype.checkBy_=function(b,d){if(d.hasOwnProperty("field")&&d.hasOwnProperty("values")){var e=this,f=[];a.each(this.options.data,function(g,h){if(!h.hasOwnProperty(d.field))return!1;if(-1!==a.inArray(h[d.field],d.values)){var i=e.$selectItem.filter(":enabled").filter(c('[data-index="%s"]',g)).prop("checked",b);h[e.header.stateField]=b,f.push(h),e.trigger(b?"check":"uncheck",h,i)}}),this.updateSelected(),this.trigger(b?"check-some":"uncheck-some",f)}},p.prototype.destroy=function(){this.$el.insertBefore(this.$container),a(this.options.toolbar).insertBefore(this.$el),this.$container.next().remove(),this.$container.remove(),this.$el.html(this.$el_.html()).css("margin-top","0").attr("class",this.$el_.attr("class")||"")},p.prototype.showLoading=function(){this.$tableLoading.show()},p.prototype.hideLoading=function(){this.$tableLoading.hide()},p.prototype.togglePagination=function(){this.options.pagination=!this.options.pagination;var a=this.$toolbar.find('button[name="paginationSwitch"] i');this.options.pagination?a.attr("class",this.options.iconsPrefix+" "+this.options.icons.paginationSwitchDown):a.attr("class",this.options.iconsPrefix+" "+this.options.icons.paginationSwitchUp),this.updatePagination()},p.prototype.refresh=function(a){a&&a.url&&(this.options.pageNumber=1),this.initServer(a&&a.silent,a&&a.query,a&&a.url),this.trigger("refresh",a)},p.prototype.resetWidth=function(){this.options.showHeader&&this.options.height&&this.fitHeader(),this.options.showFooter&&this.fitFooter()},p.prototype.showColumn=function(a){this.toggleColumn(e(this.columns,a),!0,!0)},p.prototype.hideColumn=function(a){this.toggleColumn(e(this.columns,a),!1,!0)},p.prototype.getHiddenColumns=function(){return a.grep(this.columns,function(a){return!a.visible})},p.prototype.getVisibleColumns=function(){return a.grep(this.columns,function(a){return a.visible})},p.prototype.toggleAllColumns=function(b){if(a.each(this.columns,function(a){this.columns[a].visible=b}),this.initHeader(),this.initSearch(),this.initPagination(),this.initBody(),this.options.showColumns){var c=this.$toolbar.find(".keep-open input").prop("disabled",!1);c.filter(":checked").length<=this.options.minimumCountColumns&&c.filter(":checked").prop("disabled",!0)}},p.prototype.showAllColumns=function(){this.toggleAllColumns(!0)},p.prototype.hideAllColumns=function(){this.toggleAllColumns(!1)},p.prototype.filterBy=function(b){this.filterColumns=a.isEmptyObject(b)?{}:b,this.options.pageNumber=1,this.initSearch(),this.updatePagination()},p.prototype.scrollTo=function(a){return"string"==typeof a&&(a="bottom"===a?this.$tableBody[0].scrollHeight:0),"number"==typeof a&&this.$tableBody.scrollTop(a),"undefined"==typeof a?this.$tableBody.scrollTop():void 0},p.prototype.getScrollPosition=function(){return this.scrollTo()},p.prototype.selectPage=function(a){a>0&&a<=this.options.totalPages&&(this.options.pageNumber=a,this.updatePagination())},p.prototype.prevPage=function(){this.options.pageNumber>1&&(this.options.pageNumber--,this.updatePagination())},p.prototype.nextPage=function(){this.options.pageNumber tr[data-index="%s"]',b));d.next().is("tr.detail-view")===(a?!1:!0)&&d.find("> td > .detail-icon").click()},p.prototype.expandRow=function(a){this.expandRow_(!0,a)},p.prototype.collapseRow=function(a){this.expandRow_(!1,a)},p.prototype.expandAllRows=function(b){if(b){var d=this.$body.find(c('> tr[data-index="%s"]',0)),e=this,f=null,g=!1,h=-1;if(d.next().is("tr.detail-view")?d.next().next().is("tr.detail-view")||(d.next().find(".detail-icon").click(),g=!0):(d.find("> td > .detail-icon").click(),g=!0),g)try{h=setInterval(function(){f=e.$body.find("tr.detail-view").last().find(".detail-icon"),f.length>0?f.click():clearInterval(h)},1)}catch(i){clearInterval(h)}}else for(var j=this.$body.children(),k=0;kthis.$items.length-1||0>b?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){c.to(b)}):d==b?this.pause().cycle():this.slide(b>d?"next":"prev",a(this.$items[b]))},b.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},b.prototype.next=function(){return this.sliding?void 0:this.slide("next")},b.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},b.prototype.slide=function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,g="next"==b?"left":"right",h="next"==b?"first":"last",i=this;if(!e.length){if(!this.options.wrap)return;e=this.$element.find(".item")[h]()}if(e.hasClass("active"))return this.sliding=!1;var j=a.Event("slide.bs.carousel",{relatedTarget:e[0],direction:g});return this.$element.trigger(j),j.isDefaultPrevented()?void 0:(this.sliding=!0,f&&this.pause(),this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid.bs.carousel",function(){var b=a(i.$indicators.children()[i.getActiveIndex()]);b&&b.addClass("active")})),a.support.transition&&this.$element.hasClass("slide")?(e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),d.one(a.support.transition.end,function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger("slid.bs.carousel")},0)}).emulateTransitionEnd(1e3*d.css("transition-duration").slice(0,-1))):(d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger("slid.bs.carousel")),f&&this.cycle(),this)};var c=a.fn.carousel;a.fn.carousel=function(c){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c),g="string"==typeof c?c:f.slide;e||d.data("bs.carousel",e=new b(this,f)),"number"==typeof c?e.to(c):g?e[g]():f.interval&&e.pause().cycle()})},a.fn.carousel.Constructor=b,a.fn.carousel.noConflict=function(){return a.fn.carousel=c,this},a(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(b){var c,d=a(this),e=a(d.attr("data-target")||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"")),f=a.extend({},e.data(),d.data()),g=d.attr("data-slide-to");g&&(f.interval=!1),e.carousel(f),(g=d.attr("data-slide-to"))&&e.data("bs.carousel").to(g),b.preventDefault()}),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var b=a(this);b.carousel(b.data())})})}(jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.DEFAULTS={toggle:!0},b.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},b.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b=a.Event("show.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.$parent&&this.$parent.find("> .panel > .in");if(c&&c.length){var d=c.data("bs.collapse");if(d&&d.transitioning)return;c.collapse("hide"),d||c.data("bs.collapse",null)}var e=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[e](0),this.transitioning=1;var f=function(){this.$element.removeClass("collapsing").addClass("collapse in")[e]("auto"),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return f.call(this);var g=a.camelCase(["scroll",e].join("-"));this.$element.one(a.support.transition.end,a.proxy(f,this)).emulateTransitionEnd(350)[e](this.$element[0][g])}}},b.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var d=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};return a.support.transition?void this.$element[c](0).one(a.support.transition.end,a.proxy(d,this)).emulateTransitionEnd(350):d.call(this)}}},b.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var c=a.fn.collapse;a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c);!e&&f.toggle&&"show"==c&&(c=!c),e||d.data("bs.collapse",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.collapse.Constructor=b,a.fn.collapse.noConflict=function(){return a.fn.collapse=c,this},a(document).on("click.bs.collapse.data-api","[data-toggle=collapse]",function(b){var c,d=a(this),e=d.attr("data-target")||b.preventDefault()||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,""),f=a(e),g=f.data("bs.collapse"),h=g?"toggle":d.data(),i=d.attr("data-parent"),j=i&&a(i);g&&g.transitioning||(j&&j.find('[data-toggle=collapse][data-parent="'+i+'"]').not(d).addClass("collapsed"),d[f.hasClass("in")?"addClass":"removeClass"]("collapsed")),f.collapse(h)})}(jQuery),+function(a){"use strict";function b(b){a(d).remove(),a(e).each(function(){var d=c(a(this)),e={relatedTarget:this};d.hasClass("open")&&(d.trigger(b=a.Event("hide.bs.dropdown",e)),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dropdown",e))})}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}var d=".dropdown-backdrop",e="[data-toggle=dropdown]",f=function(b){a(b).on("click.bs.dropdown",this.toggle)};f.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(''}),b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),b.prototype.constructor=b,b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content")[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},b.prototype.hasContent=function(){return this.getTitle()||this.getContent()},b.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},b.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var c=a.fn.popover;a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof c&&c;(e||"destroy"!=c)&&(e||d.data("bs.popover",e=new b(this,f)),"string"==typeof c&&e[c]())})},a.fn.popover.Constructor=b,a.fn.popover.noConflict=function(){return a.fn.popover=c,this}}(jQuery),+function(a){"use strict";function b(c,d){var e,f=a.proxy(this.process,this);this.$element=a(a(c).is("body")?window:c),this.$body=a("body"),this.$scrollElement=this.$element.on("scroll.bs.scroll-spy.data-api",f),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||(e=a(c).attr("href"))&&e.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.offsets=a([]),this.targets=a([]),this.activeTarget=null,this.refresh(),this.process()}b.DEFAULTS={offset:10},b.prototype.refresh=function(){var b=this.$element[0]==window?"offset":"position";this.offsets=a([]),this.targets=a([]);{var c=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[b]().top+(!a.isWindow(c.$scrollElement.get(0))&&c.$scrollElement.scrollTop()),e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){c.offsets.push(this[0]),c.targets.push(this[1])})}},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,d=c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(b>=d)return g!=(a=f.last()[0])&&this.activate(a);if(g&&b<=e[0])return g!=(a=f[0])&&this.activate(a);for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,a(this.selector).parentsUntil(this.options.target,".active").removeClass("active");var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")};var c=a.fn.scrollspy;a.fn.scrollspy=function(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=c,this},a(window).on("load",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);b.scrollspy(b.data())})})}(jQuery),+function(a){"use strict";var b=function(b){this.element=a(b)};b.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a")[0],f=a.Event("show.bs.tab",{relatedTarget:e});if(b.trigger(f),!f.isDefaultPrevented()){var g=a(d);this.activate(b.parent("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})}}},b.prototype.activate=function(b,c,d){function e(){f.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),g?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var f=c.find("> .active"),g=d&&a.support.transition&&f.hasClass("fade");g?f.one(a.support.transition.end,e).emulateTransitionEnd(150):e(),f.removeClass("in")};var c=a.fn.tab;a.fn.tab=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new b(this)),"string"==typeof c&&e[c]()})},a.fn.tab.Constructor=b,a.fn.tab.noConflict=function(){return a.fn.tab=c,this},a(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(b){b.preventDefault(),a(this).tab("show")})}(jQuery),+function(a){"use strict";var b=function(c,d){this.options=a.extend({},b.DEFAULTS,d),this.$window=a(window).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(c),this.affixed=this.unpin=this.pinnedOffset=null,this.checkPosition()};b.RESET="affix affix-top affix-bottom",b.DEFAULTS={offset:0},b.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(b.RESET).addClass("affix");var a=this.$window.scrollTop(),c=this.$element.offset();return this.pinnedOffset=c.top-a},b.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},b.prototype.checkPosition=function(){if(this.$element.is(":visible")){var c=a(document).height(),d=this.$window.scrollTop(),e=this.$element.offset(),f=this.options.offset,g=f.top,h=f.bottom;"top"==this.affixed&&(e.top+=d),"object"!=typeof f&&(h=g=f),"function"==typeof g&&(g=f.top(this.$element)),"function"==typeof h&&(h=f.bottom(this.$element));var i=null!=this.unpin&&d+this.unpin<=e.top?!1:null!=h&&e.top+this.$element.height()>=c-h?"bottom":null!=g&&g>=d?"top":!1;if(this.affixed!==i){this.unpin&&this.$element.css("top","");var j="affix"+(i?"-"+i:""),k=a.Event(j+".bs.affix");this.$element.trigger(k),k.isDefaultPrevented()||(this.affixed=i,this.unpin="bottom"==i?this.getPinnedOffset():null,this.$element.removeClass(b.RESET).addClass(j).trigger(a.Event(j.replace("affix","affixed"))),"bottom"==i&&this.$element.offset({top:c-h-this.$element.height()}))}}};var c=a.fn.affix;a.fn.affix=function(c){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof c&&c;e||d.data("bs.affix",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.affix.Constructor=b,a.fn.affix.noConflict=function(){return a.fn.affix=c,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var b=a(this),c=b.data();c.offset=c.offset||{},c.offsetBottom&&(c.offset.bottom=c.offsetBottom),c.offsetTop&&(c.offset.top=c.offsetTop),b.affix(c)})})}(jQuery); \ No newline at end of file diff --git a/resmgr/src/main/webapp/resmgr-nfv/js/chart.min.js b/resmgr/src/main/webapp/resmgr-nfv/js/chart.min.js new file mode 100644 index 00000000..9a39f0fc --- /dev/null +++ b/resmgr/src/main/webapp/resmgr-nfv/js/chart.min.js @@ -0,0 +1,14 @@ +/*! + * Chart.js + * http://chartjs.org/ + * Version: 2.2.2 + * + * Copyright 2016-2017 Nick Downie + * Released under the MIT license + * https://github.com/chartjs/Chart.js/blob/master/LICENSE.md + */ +!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,e.Chart=t()}}(function(){return function t(e,a,i){function n(r,l){if(!a[r]){if(!e[r]){var s="function"==typeof require&&require;if(!l&&s)return s(r,!0);if(o)return o(r,!0);var d=new Error("Cannot find module '"+r+"'");throw d.code="MODULE_NOT_FOUND",d}var u=a[r]={exports:{}};e[r][0].call(u.exports,function(t){var a=e[r][1][t];return n(a?a:t)},u,u.exports,t,e,a,i)}return a[r].exports}for(var o="function"==typeof require&&require,r=0;re||t[3]&&t[3]<1?c(t,e):"rgb("+t[0]+", "+t[1]+", "+t[2]+")"}function c(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"rgba("+t[0]+", "+t[1]+", "+t[2]+", "+e+")"}function h(t,e){if(1>e||t[3]&&t[3]<1)return f(t,e);var a=Math.round(t[0]/255*100),i=Math.round(t[1]/255*100),n=Math.round(t[2]/255*100);return"rgb("+a+"%, "+i+"%, "+n+"%)"}function f(t,e){var a=Math.round(t[0]/255*100),i=Math.round(t[1]/255*100),n=Math.round(t[2]/255*100);return"rgba("+a+"%, "+i+"%, "+n+"%, "+(e||t[3]||1)+")"}function g(t,e){return 1>e||t[3]&&t[3]<1?p(t,e):"hsl("+t[0]+", "+t[1]+"%, "+t[2]+"%)"}function p(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"hsla("+t[0]+", "+t[1]+"%, "+t[2]+"%, "+e+")"}function m(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"hwb("+t[0]+", "+t[1]+"%, "+t[2]+"%"+(void 0!==e&&1!==e?", "+e:"")+")"}function b(t){return k[t.slice(0,3)]}function v(t,e,a){return Math.min(Math.max(e,t),a)}function x(t){var e=t.toString(16).toUpperCase();return e.length<2?"0"+e:e}var y=t(6);e.exports={getRgba:i,getHsla:n,getRgb:r,getHsl:l,getHwb:o,getAlpha:s,hexString:d,rgbString:u,rgbaString:c,percentString:h,percentaString:f,hslString:g,hslaString:p,hwbString:m,keyword:b};var k={};for(var S in y)k[y[S]]=S},{6:6}],3:[function(t,e,a){var i=t(5),n=t(2),o=function(t){if(t instanceof o)return t;if(!(this instanceof o))return new o(t);this.values={rgb:[0,0,0],hsl:[0,0,0],hsv:[0,0,0],hwb:[0,0,0],cmyk:[0,0,0,0],alpha:1};var e;if("string"==typeof t)if(e=n.getRgba(t))this.setValues("rgb",e);else if(e=n.getHsla(t))this.setValues("hsl",e);else{if(!(e=n.getHwb(t)))throw new Error('Unable to parse color from string "'+t+'"');this.setValues("hwb",e)}else if("object"==typeof t)if(e=t,void 0!==e.r||void 0!==e.red)this.setValues("rgb",e);else if(void 0!==e.l||void 0!==e.lightness)this.setValues("hsl",e);else if(void 0!==e.v||void 0!==e.value)this.setValues("hsv",e);else if(void 0!==e.w||void 0!==e.whiteness)this.setValues("hwb",e);else{if(void 0===e.c&&void 0===e.cyan)throw new Error("Unable to parse color from object "+JSON.stringify(t));this.setValues("cmyk",e)}};o.prototype={rgb:function(){return this.setSpace("rgb",arguments)},hsl:function(){return this.setSpace("hsl",arguments)},hsv:function(){return this.setSpace("hsv",arguments)},hwb:function(){return this.setSpace("hwb",arguments)},cmyk:function(){return this.setSpace("cmyk",arguments)},rgbArray:function(){return this.values.rgb},hslArray:function(){return this.values.hsl},hsvArray:function(){return this.values.hsv},hwbArray:function(){var t=this.values;return 1!==t.alpha?t.hwb.concat([t.alpha]):t.hwb},cmykArray:function(){return this.values.cmyk},rgbaArray:function(){var t=this.values;return t.rgb.concat([t.alpha])},hslaArray:function(){var t=this.values;return t.hsl.concat([t.alpha])},alpha:function(t){return void 0===t?this.values.alpha:(this.setValues("alpha",t),this)},red:function(t){return this.setChannel("rgb",0,t)},green:function(t){return this.setChannel("rgb",1,t)},blue:function(t){return this.setChannel("rgb",2,t)},hue:function(t){return t&&(t%=360,t=0>t?360+t:t),this.setChannel("hsl",0,t)},saturation:function(t){return this.setChannel("hsl",1,t)},lightness:function(t){return this.setChannel("hsl",2,t)},saturationv:function(t){return this.setChannel("hsv",1,t)},whiteness:function(t){return this.setChannel("hwb",1,t)},blackness:function(t){return this.setChannel("hwb",2,t)},value:function(t){return this.setChannel("hsv",2,t)},cyan:function(t){return this.setChannel("cmyk",0,t)},magenta:function(t){return this.setChannel("cmyk",1,t)},yellow:function(t){return this.setChannel("cmyk",2,t)},black:function(t){return this.setChannel("cmyk",3,t)},hexString:function(){return n.hexString(this.values.rgb)},rgbString:function(){return n.rgbString(this.values.rgb,this.values.alpha)},rgbaString:function(){return n.rgbaString(this.values.rgb,this.values.alpha)},percentString:function(){return n.percentString(this.values.rgb,this.values.alpha)},hslString:function(){return n.hslString(this.values.hsl,this.values.alpha)},hslaString:function(){return n.hslaString(this.values.hsl,this.values.alpha)},hwbString:function(){return n.hwbString(this.values.hwb,this.values.alpha)},keyword:function(){return n.keyword(this.values.rgb,this.values.alpha)},rgbNumber:function(){var t=this.values.rgb;return t[0]<<16|t[1]<<8|t[2]},luminosity:function(){for(var t=this.values.rgb,e=[],a=0;a=i?i/12.92:Math.pow((i+.055)/1.055,2.4)}return.2126*e[0]+.7152*e[1]+.0722*e[2]},contrast:function(t){var e=this.luminosity(),a=t.luminosity();return e>a?(e+.05)/(a+.05):(a+.05)/(e+.05)},level:function(t){var e=this.contrast(t);return e>=7.1?"AAA":e>=4.5?"AA":""},dark:function(){var t=this.values.rgb,e=(299*t[0]+587*t[1]+114*t[2])/1e3;return 128>e},light:function(){return!this.dark()},negate:function(){for(var t=[],e=0;3>e;e++)t[e]=255-this.values.rgb[e];return this.setValues("rgb",t),this},lighten:function(t){var e=this.values.hsl;return e[2]+=e[2]*t,this.setValues("hsl",e),this},darken:function(t){var e=this.values.hsl;return e[2]-=e[2]*t,this.setValues("hsl",e),this},saturate:function(t){var e=this.values.hsl;return e[1]+=e[1]*t,this.setValues("hsl",e),this},desaturate:function(t){var e=this.values.hsl;return e[1]-=e[1]*t,this.setValues("hsl",e),this},whiten:function(t){var e=this.values.hwb;return e[1]+=e[1]*t,this.setValues("hwb",e),this},blacken:function(t){var e=this.values.hwb;return e[2]+=e[2]*t,this.setValues("hwb",e),this},greyscale:function(){var t=this.values.rgb,e=.3*t[0]+.59*t[1]+.11*t[2];return this.setValues("rgb",[e,e,e]),this},clearer:function(t){var e=this.values.alpha;return this.setValues("alpha",e-e*t),this},opaquer:function(t){var e=this.values.alpha;return this.setValues("alpha",e+e*t),this},rotate:function(t){var e=this.values.hsl,a=(e[0]+t)%360;return e[0]=0>a?360+a:a,this.setValues("hsl",e),this},mix:function(t,e){var a=this,i=t,n=void 0===e?.5:e,o=2*n-1,r=a.alpha()-i.alpha(),l=((o*r===-1?o:(o+r)/(1+o*r))+1)/2,s=1-l;return this.rgb(l*a.red()+s*i.red(),l*a.green()+s*i.green(),l*a.blue()+s*i.blue()).alpha(a.alpha()*n+i.alpha()*(1-n))},toJSON:function(){return this.rgb()},clone:function(){var t,e,a=new o,i=this.values,n=a.values;for(var r in i)i.hasOwnProperty(r)&&(t=i[r],e={}.toString.call(t),"[object Array]"===e?n[r]=t.slice(0):"[object Number]"===e?n[r]=t:console.error("unexpected color value:",t));return a}},o.prototype.spaces={rgb:["red","green","blue"],hsl:["hue","saturation","lightness"],hsv:["hue","saturation","value"],hwb:["hue","whiteness","blackness"],cmyk:["cyan","magenta","yellow","black"]},o.prototype.maxes={rgb:[255,255,255],hsl:[360,100,100],hsv:[360,100,100],hwb:[360,100,100],cmyk:[100,100,100,100]},o.prototype.getValues=function(t){for(var e=this.values,a={},i=0;ie&&(e+=360),i=(l+s)/2,a=s==l?0:.5>=i?d/(s+l):d/(2-s-l),[e,100*a,100*i]}function n(t){var e,a,i,n=t[0],o=t[1],r=t[2],l=Math.min(n,o,r),s=Math.max(n,o,r),d=s-l;return a=0==s?0:d/s*1e3/10,s==l?e=0:n==s?e=(o-r)/d:o==s?e=2+(r-n)/d:r==s&&(e=4+(n-o)/d),e=Math.min(60*e,360),0>e&&(e+=360),i=s/255*1e3/10,[e,a,i]}function o(t){var e=t[0],a=t[1],n=t[2],o=i(t)[0],r=1/255*Math.min(e,Math.min(a,n)),n=1-1/255*Math.max(e,Math.max(a,n));return[o,100*r,100*n]}function l(t){var e,a,i,n,o=t[0]/255,r=t[1]/255,l=t[2]/255;return n=Math.min(1-o,1-r,1-l),e=(1-o-n)/(1-n)||0,a=(1-r-n)/(1-n)||0,i=(1-l-n)/(1-n)||0,[100*e,100*a,100*i,100*n]}function s(t){return G[JSON.stringify(t)]}function d(t){var e=t[0]/255,a=t[1]/255,i=t[2]/255;e=e>.04045?Math.pow((e+.055)/1.055,2.4):e/12.92,a=a>.04045?Math.pow((a+.055)/1.055,2.4):a/12.92,i=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92;var n=.4124*e+.3576*a+.1805*i,o=.2126*e+.7152*a+.0722*i,r=.0193*e+.1192*a+.9505*i;return[100*n,100*o,100*r]}function u(t){var e,a,i,n=d(t),o=n[0],r=n[1],l=n[2];return o/=95.047,r/=100,l/=108.883,o=o>.008856?Math.pow(o,1/3):7.787*o+16/116,r=r>.008856?Math.pow(r,1/3):7.787*r+16/116,l=l>.008856?Math.pow(l,1/3):7.787*l+16/116,e=116*r-16,a=500*(o-r),i=200*(r-l),[e,a,i]}function c(t){return W(u(t))}function h(t){var e,a,i,n,o,r=t[0]/360,l=t[1]/100,s=t[2]/100;if(0==l)return o=255*s,[o,o,o];a=.5>s?s*(1+l):s+l-s*l,e=2*s-a,n=[0,0,0];for(var d=0;3>d;d++)i=r+1/3*-(d-1),0>i&&i++,i>1&&i--,o=1>6*i?e+6*(a-e)*i:1>2*i?a:2>3*i?e+(a-e)*(2/3-i)*6:e,n[d]=255*o;return n}function f(t){var e,a,i=t[0],n=t[1]/100,o=t[2]/100;return 0===o?[0,0,0]:(o*=2,n*=1>=o?o:2-o,a=(o+n)/2,e=2*n/(o+n),[i,100*e,100*a])}function p(t){return o(h(t))}function m(t){return l(h(t))}function v(t){return s(h(t))}function x(t){var e=t[0]/60,a=t[1]/100,i=t[2]/100,n=Math.floor(e)%6,o=e-Math.floor(e),r=255*i*(1-a),l=255*i*(1-a*o),s=255*i*(1-a*(1-o)),i=255*i;switch(n){case 0:return[i,s,r];case 1:return[l,i,r];case 2:return[r,i,s];case 3:return[r,l,i];case 4:return[s,r,i];case 5:return[i,r,l]}}function y(t){var e,a,i=t[0],n=t[1]/100,o=t[2]/100;return a=(2-n)*o,e=n*o,e/=1>=a?a:2-a,e=e||0,a/=2,[i,100*e,100*a]}function k(t){return o(x(t))}function S(t){return l(x(t))}function w(t){return s(x(t))}function C(t){var e,a,i,n,o=t[0]/360,l=t[1]/100,s=t[2]/100,d=l+s;switch(d>1&&(l/=d,s/=d),e=Math.floor(6*o),a=1-s,i=6*o-e,0!=(1&e)&&(i=1-i),n=l+i*(a-l),e){default:case 6:case 0:r=a,g=n,b=l;break;case 1:r=n,g=a,b=l;break;case 2:r=l,g=a,b=n;break;case 3:r=l,g=n,b=a;break;case 4:r=n,g=l,b=a;break;case 5:r=a,g=l,b=n}return[255*r,255*g,255*b]}function M(t){return i(C(t))}function D(t){return n(C(t))}function I(t){return l(C(t))}function A(t){return s(C(t))}function P(t){var e,a,i,n=t[0]/100,o=t[1]/100,r=t[2]/100,l=t[3]/100;return e=1-Math.min(1,n*(1-l)+l),a=1-Math.min(1,o*(1-l)+l),i=1-Math.min(1,r*(1-l)+l),[255*e,255*a,255*i]}function T(t){return i(P(t))}function F(t){return n(P(t))}function R(t){return o(P(t))}function _(t){return s(P(t))}function V(t){var e,a,i,n=t[0]/100,o=t[1]/100,r=t[2]/100;return e=3.2406*n+-1.5372*o+r*-.4986,a=n*-.9689+1.8758*o+.0415*r,i=.0557*n+o*-.204+1.057*r,e=e>.0031308?1.055*Math.pow(e,1/2.4)-.055:e=12.92*e,a=a>.0031308?1.055*Math.pow(a,1/2.4)-.055:a=12.92*a,i=i>.0031308?1.055*Math.pow(i,1/2.4)-.055:i=12.92*i,e=Math.min(Math.max(0,e),1),a=Math.min(Math.max(0,a),1),i=Math.min(Math.max(0,i),1),[255*e,255*a,255*i]}function L(t){var e,a,i,n=t[0],o=t[1],r=t[2];return n/=95.047,o/=100,r/=108.883,n=n>.008856?Math.pow(n,1/3):7.787*n+16/116,o=o>.008856?Math.pow(o,1/3):7.787*o+16/116,r=r>.008856?Math.pow(r,1/3):7.787*r+16/116,e=116*o-16,a=500*(n-o),i=200*(o-r),[e,a,i]}function O(t){return W(L(t))}function B(t){var e,a,i,n,o=t[0],r=t[1],l=t[2];return 8>=o?(a=100*o/903.3,n=7.787*(a/100)+16/116):(a=100*Math.pow((o+16)/116,3),n=Math.pow(a/100,1/3)),e=.008856>=e/95.047?e=95.047*(r/500+n-16/116)/7.787:95.047*Math.pow(r/500+n,3),i=.008859>=i/108.883?i=108.883*(n-l/200-16/116)/7.787:108.883*Math.pow(n-l/200,3),[e,a,i]}function W(t){var e,a,i,n=t[0],o=t[1],r=t[2];return e=Math.atan2(r,o),a=360*e/2/Math.PI,0>a&&(a+=360),i=Math.sqrt(o*o+r*r),[n,i,a]}function z(t){return V(B(t))}function N(t){var e,a,i,n=t[0],o=t[1],r=t[2];return i=r/360*2*Math.PI,e=o*Math.cos(i),a=o*Math.sin(i),[n,e,a]}function H(t){return B(N(t))}function E(t){return z(N(t))}function U(t){return Z[t]}function q(t){return i(U(t))}function j(t){return n(U(t))}function Y(t){return o(U(t))}function K(t){return l(U(t))}function X(t){return u(U(t))}function J(t){return d(U(t))}e.exports={rgb2hsl:i,rgb2hsv:n,rgb2hwb:o,rgb2cmyk:l,rgb2keyword:s,rgb2xyz:d,rgb2lab:u,rgb2lch:c,hsl2rgb:h,hsl2hsv:f,hsl2hwb:p,hsl2cmyk:m,hsl2keyword:v,hsv2rgb:x,hsv2hsl:y,hsv2hwb:k,hsv2cmyk:S,hsv2keyword:w,hwb2rgb:C,hwb2hsl:M,hwb2hsv:D,hwb2cmyk:I,hwb2keyword:A,cmyk2rgb:P,cmyk2hsl:T,cmyk2hsv:F,cmyk2hwb:R,cmyk2keyword:_,keyword2rgb:U,keyword2hsl:q,keyword2hsv:j,keyword2hwb:Y,keyword2cmyk:K,keyword2lab:X,keyword2xyz:J,xyz2rgb:V,xyz2lab:L,xyz2lch:O,lab2xyz:B,lab2rgb:z,lab2lch:W,lch2lab:N,lch2xyz:H,lch2rgb:E};var Z={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},G={};for(var Q in Z)G[JSON.stringify(Z[Q])]=Q},{}],5:[function(t,e,a){var i=t(4),n=function(){return new d};for(var o in i){n[o+"Raw"]=function(t){return function(e){return"number"==typeof e&&(e=Array.prototype.slice.call(arguments)),i[t](e)}}(o);var r=/(\w+)2(\w+)/.exec(o),l=r[1],s=r[2];n[l]=n[l]||{},n[l][s]=n[o]=function(t){return function(e){"number"==typeof e&&(e=Array.prototype.slice.call(arguments));var a=i[t](e);if("string"==typeof a||void 0===a)return a;for(var n=0;nd;d++){var u=l[d],c=r.getDatasetMeta(d);if(c.bar&&c.yAxisID===n.id&&r.isDatasetVisible(d)){var h=Number(u.data[e]);o+=0>s?Math.min(h,0):Math.max(h,0)}}return n.getPixelForValue(o)}return n.getBasePixel()},getRuler:function(t){var e,a=this,i=a.getMeta(),n=a.getScaleForId(i.xAxisID),o=a.getBarCount();e="category"===n.options.type?n.getPixelForTick(t+1)-n.getPixelForTick(t):n.width/n.ticks.length;var r=e*n.options.categoryPercentage,l=(e-e*n.options.categoryPercentage)/2,s=r/o;if(n.ticks.length!==a.chart.data.labels.length){var d=n.ticks.length/a.chart.data.labels.length;s*=d}var u=s*n.options.barPercentage,c=s-s*n.options.barPercentage;return{datasetCount:o,tickWidth:e,categoryWidth:r,categorySpacing:l,fullBarWidth:s,barWidth:u,barSpacing:c}},calculateBarWidth:function(t){var e=this.getScaleForId(this.getMeta().xAxisID);if(e.options.barThickness)return e.options.barThickness;var a=this.getRuler(t);return e.options.stacked?a.categoryWidth:a.barWidth},getBarIndex:function(t){var e,a,i=0;for(a=0;t>a;++a)e=this.chart.getDatasetMeta(a),e.bar&&this.chart.isDatasetVisible(a)&&++i;return i},calculateBarX:function(t,e){var a=this,i=a.getMeta(),n=a.getScaleForId(i.xAxisID),o=a.getBarIndex(e),r=a.getRuler(t),l=n.getPixelForValue(null,t,e,a.chart.isCombo);return l-=a.chart.isCombo?r.tickWidth/2:0,n.options.stacked?l+r.categoryWidth/2+r.categorySpacing:l+r.barWidth/2+r.categorySpacing+r.barWidth*o+r.barSpacing/2+r.barSpacing*o},calculateBarY:function(t,e){var a=this,i=a.getMeta(),n=a.getScaleForId(i.yAxisID),o=Number(a.getDataset().data[t]);if(n.options.stacked){for(var r=0,l=0,s=0;e>s;s++){var d=a.chart.data.datasets[s],u=a.chart.getDatasetMeta(s);if(u.bar&&u.yAxisID===n.id&&a.chart.isDatasetVisible(s)){var c=Number(d.data[t]);0>c?l+=c||0:r+=c||0}}return 0>o?n.getPixelForValue(l+o):n.getPixelForValue(r+o)}return n.getPixelForValue(o)},draw:function(t){var a=this,i=t||1;e.each(a.getMeta().data,function(t,e){var n=a.getDataset().data[e];null===n||void 0===n||isNaN(n)||t.transition(i).draw()},a)},setHoverStyle:function(t){var a=this.chart.data.datasets[t._datasetIndex],i=t._index,n=t.custom||{},o=t._model;o.backgroundColor=n.hoverBackgroundColor?n.hoverBackgroundColor:e.getValueAtIndexOrDefault(a.hoverBackgroundColor,i,e.getHoverColor(o.backgroundColor)),o.borderColor=n.hoverBorderColor?n.hoverBorderColor:e.getValueAtIndexOrDefault(a.hoverBorderColor,i,e.getHoverColor(o.borderColor)),o.borderWidth=n.hoverBorderWidth?n.hoverBorderWidth:e.getValueAtIndexOrDefault(a.hoverBorderWidth,i,o.borderWidth)},removeHoverStyle:function(t){var a=this.chart.data.datasets[t._datasetIndex],i=t._index,n=t.custom||{},o=t._model,r=this.chart.options.elements.rectangle;o.backgroundColor=n.backgroundColor?n.backgroundColor:e.getValueAtIndexOrDefault(a.backgroundColor,i,r.backgroundColor),o.borderColor=n.borderColor?n.borderColor:e.getValueAtIndexOrDefault(a.borderColor,i,r.borderColor),o.borderWidth=n.borderWidth?n.borderWidth:e.getValueAtIndexOrDefault(a.borderWidth,i,r.borderWidth)}}),t.defaults.horizontalBar={hover:{mode:"label"},scales:{xAxes:[{type:"linear",position:"bottom"}],yAxes:[{position:"left",type:"category",categoryPercentage:.8,barPercentage:.9,gridLines:{offsetGridLines:!0}}]},elements:{rectangle:{borderSkipped:"left"}},tooltips:{callbacks:{title:function(t,e){var a="";return t.length>0&&(t[0].yLabel?a=t[0].yLabel:e.labels.length>0&&t[0].indexc;c++)e.lineTo.apply(e,t(c));e.fill(),a.borderWidth&&e.stroke()},inRange:function(t,e){var a=this._view,i=!1;return a&&(i=a.x=a.y-a.height/2&&e<=a.y+a.height/2&&t>=a.x&&t<=a.base:e>=a.y-a.height/2&&e<=a.y+a.height/2&&t>=a.base&&t<=a.x),i}}),t.pivot()},calculateBarBase:function(t,e){var a=this,i=a.getMeta(),n=a.getScaleForId(i.xAxisID),o=0; +if(n.options.stacked){for(var r=a.chart,l=r.data.datasets,s=Number(l[t].data[e]),d=0;t>d;d++){var u=l[d],c=r.getDatasetMeta(d);if(c.bar&&c.xAxisID===n.id&&r.isDatasetVisible(d)){var h=Number(u.data[e]);o+=0>s?Math.min(h,0):Math.max(h,0)}}return n.getPixelForValue(o)}return n.getBasePixel()},getRuler:function(t){var e,a=this,i=a.getMeta(),n=a.getScaleForId(i.yAxisID),o=a.getBarCount();e="category"===n.options.type?n.getPixelForTick(t+1)-n.getPixelForTick(t):n.width/n.ticks.length;var r=e*n.options.categoryPercentage,l=(e-e*n.options.categoryPercentage)/2,s=r/o;if(n.ticks.length!==a.chart.data.labels.length){var d=n.ticks.length/a.chart.data.labels.length;s*=d}var u=s*n.options.barPercentage,c=s-s*n.options.barPercentage;return{datasetCount:o,tickHeight:e,categoryHeight:r,categorySpacing:l,fullBarHeight:s,barHeight:u,barSpacing:c}},calculateBarHeight:function(t){var e=this,a=e.getScaleForId(e.getMeta().yAxisID);if(a.options.barThickness)return a.options.barThickness;var i=e.getRuler(t);return a.options.stacked?i.categoryHeight:i.barHeight},calculateBarX:function(t,e){var a=this,i=a.getMeta(),n=a.getScaleForId(i.xAxisID),o=Number(a.getDataset().data[t]);if(n.options.stacked){for(var r=0,l=0,s=0;e>s;s++){var d=a.chart.data.datasets[s],u=a.chart.getDatasetMeta(s);if(u.bar&&u.xAxisID===n.id&&a.chart.isDatasetVisible(s)){var c=Number(d.data[t]);0>c?l+=c||0:r+=c||0}}return 0>o?n.getPixelForValue(l+o):n.getPixelForValue(r+o)}return n.getPixelForValue(o)},calculateBarY:function(t,e){var a=this,i=a.getMeta(),n=a.getScaleForId(i.yAxisID),o=a.getBarIndex(e),r=a.getRuler(t),l=n.getPixelForValue(null,t,e,a.chart.isCombo);return l-=a.chart.isCombo?r.tickHeight/2:0,n.options.stacked?l+r.categoryHeight/2+r.categorySpacing:l+r.barHeight/2+r.categorySpacing+r.barHeight*o+r.barSpacing/2+r.barSpacing*o}})}},{}],16:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers;t.defaults.bubble={hover:{mode:"single"},scales:{xAxes:[{type:"linear",position:"bottom",id:"x-axis-0"}],yAxes:[{type:"linear",position:"left",id:"y-axis-0"}]},tooltips:{callbacks:{title:function(){return""},label:function(t,e){var a=e.datasets[t.datasetIndex].label||"",i=e.datasets[t.datasetIndex].data[t.index];return a+": ("+i.x+", "+i.y+", "+i.r+")"}}}},t.controllers.bubble=t.DatasetController.extend({dataElementType:t.elements.Point,update:function(t){var a=this,i=a.getMeta(),n=i.data;e.each(n,function(e,i){a.updateElement(e,i,t)})},updateElement:function(a,i,n){var o=this,r=o.getMeta(),l=o.getScaleForId(r.xAxisID),s=o.getScaleForId(r.yAxisID),d=a.custom||{},u=o.getDataset(),c=u.data[i],h=o.chart.options.elements.point,f=o.index;e.extend(a,{_xScale:l,_yScale:s,_datasetIndex:f,_index:i,_model:{x:n?l.getPixelForDecimal(.5):l.getPixelForValue("object"==typeof c?c:NaN,i,f,o.chart.isCombo),y:n?s.getBasePixel():s.getPixelForValue(c,i,f),radius:n?0:d.radius?d.radius:o.getRadius(c),hitRadius:d.hitRadius?d.hitRadius:e.getValueAtIndexOrDefault(u.hitRadius,i,h.hitRadius)}}),t.DatasetController.prototype.removeHoverStyle.call(o,a,h);var g=a._model;g.skip=d.skip?d.skip:isNaN(g.x)||isNaN(g.y),a.pivot()},getRadius:function(t){return t.r||this.chart.options.elements.point.radius},setHoverStyle:function(a){var i=this;t.DatasetController.prototype.setHoverStyle.call(i,a);var n=i.chart.data.datasets[a._datasetIndex],o=a._index,r=a.custom||{},l=a._model;l.radius=r.hoverRadius?r.hoverRadius:e.getValueAtIndexOrDefault(n.hoverRadius,o,i.chart.options.elements.point.hoverRadius)+i.getRadius(n.data[o])},removeHoverStyle:function(e){var a=this;t.DatasetController.prototype.removeHoverStyle.call(a,e,a.chart.options.elements.point);var i=a.chart.data.datasets[e._datasetIndex].data[e._index],n=e.custom||{},o=e._model;o.radius=n.radius?n.radius:a.getRadius(i)}})}},{}],17:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers,a=t.defaults;a.doughnut={animation:{animateRotate:!0,animateScale:!1},aspectRatio:1,hover:{mode:"single"},legendCallback:function(t){var e=[];e.push('
      ');var a=t.data,i=a.datasets,n=a.labels;if(i.length)for(var o=0;o'),n[o]&&e.push(n[o]),e.push("");return e.push("
    "),e.join("")},legend:{labels:{generateLabels:function(t){var a=t.data;return a.labels.length&&a.datasets.length?a.labels.map(function(i,n){var o=t.getDatasetMeta(0),r=a.datasets[0],l=o.data[n],s=l&&l.custom||{},d=e.getValueAtIndexOrDefault,u=t.options.elements.arc,c=s.backgroundColor?s.backgroundColor:d(r.backgroundColor,n,u.backgroundColor),h=s.borderColor?s.borderColor:d(r.borderColor,n,u.borderColor),f=s.borderWidth?s.borderWidth:d(r.borderWidth,n,u.borderWidth);return{text:i,fillStyle:c,strokeStyle:h,lineWidth:f,hidden:isNaN(r.data[n])||o.data[n].hidden,index:n}}):[]}},onClick:function(t,e){var a,i,n,o=e.index,r=this.chart;for(a=0,i=(r.data.datasets||[]).length;i>a;++a)n=r.getDatasetMeta(a),n.data[o].hidden=!n.data[o].hidden;r.update()}},cutoutPercentage:50,rotation:Math.PI*-.5,circumference:2*Math.PI,tooltips:{callbacks:{title:function(){return""},label:function(t,e){return e.labels[t.index]+": "+e.datasets[t.datasetIndex].data[t.index]}}}},a.pie=e.clone(a.doughnut),e.extend(a.pie,{cutoutPercentage:0}),t.controllers.doughnut=t.controllers.pie=t.DatasetController.extend({dataElementType:t.elements.Arc,linkScales:e.noop,getRingIndex:function(t){for(var e=0,a=0;t>a;++a)this.chart.isDatasetVisible(a)&&++e;return e},update:function(t){var a=this,i=a.chart,n=i.chartArea,o=i.options,r=o.elements.arc,l=n.right-n.left-r.borderWidth,s=n.bottom-n.top-r.borderWidth,d=Math.min(l,s),u={x:0,y:0},c=a.getMeta(),h=o.cutoutPercentage,f=o.circumference;if(f<2*Math.PI){var g=o.rotation%(2*Math.PI);g+=2*Math.PI*(g>=Math.PI?-1:g<-Math.PI?1:0);var p=g+f,m={x:Math.cos(g),y:Math.sin(g)},b={x:Math.cos(p),y:Math.sin(p)},v=0>=g&&p>=0||g<=2*Math.PI&&2*Math.PI<=p,x=g<=.5*Math.PI&&.5*Math.PI<=p||g<=2.5*Math.PI&&2.5*Math.PI<=p,y=g<=-Math.PI&&-Math.PI<=p||g<=Math.PI&&Math.PI<=p,k=g<=.5*-Math.PI&&.5*-Math.PI<=p||g<=1.5*Math.PI&&1.5*Math.PI<=p,S=h/100,w={x:y?-1:Math.min(m.x*(m.x<0?1:S),b.x*(b.x<0?1:S)),y:k?-1:Math.min(m.y*(m.y<0?1:S),b.y*(b.y<0?1:S))},C={x:v?1:Math.max(m.x*(m.x>0?1:S),b.x*(b.x>0?1:S)),y:x?1:Math.max(m.y*(m.y>0?1:S),b.y*(b.y>0?1:S))},M={width:.5*(C.x-w.x),height:.5*(C.y-w.y)};d=Math.min(l/M.width,s/M.height),u={x:(C.x+w.x)*-.5,y:(C.y+w.y)*-.5}}i.borderWidth=a.getMaxBorderWidth(c.data),i.outerRadius=Math.max((d-i.borderWidth)/2,0),i.innerRadius=Math.max(h?i.outerRadius/100*h:1,0),i.radiusLength=(i.outerRadius-i.innerRadius)/i.getVisibleDatasetCount(),i.offsetX=u.x*i.outerRadius,i.offsetY=u.y*i.outerRadius,c.total=a.calculateTotal(),a.outerRadius=i.outerRadius-i.radiusLength*a.getRingIndex(a.index),a.innerRadius=a.outerRadius-i.radiusLength,e.each(c.data,function(e,i){a.updateElement(e,i,t)})},updateElement:function(t,a,i){var n=this,o=n.chart,r=o.chartArea,l=o.options,s=l.animation,d=(r.left+r.right)/2,u=(r.top+r.bottom)/2,c=l.rotation,h=l.rotation,f=n.getDataset(),g=i&&s.animateRotate?0:t.hidden?0:n.calculateCircumference(f.data[a])*(l.circumference/(2*Math.PI)),p=i&&s.animateScale?0:n.innerRadius,m=i&&s.animateScale?0:n.outerRadius,b=e.getValueAtIndexOrDefault;e.extend(t,{_datasetIndex:n.index,_index:a,_model:{x:d+o.offsetX,y:u+o.offsetY,startAngle:c,endAngle:h,circumference:g,outerRadius:m,innerRadius:p,label:b(f.label,a,o.data.labels[a])}});var v=t._model;this.removeHoverStyle(t),i&&s.animateRotate||(0===a?v.startAngle=l.rotation:v.startAngle=n.getMeta().data[a-1]._model.endAngle,v.endAngle=v.startAngle+v.circumference),t.pivot()},removeHoverStyle:function(e){t.DatasetController.prototype.removeHoverStyle.call(this,e,this.chart.options.elements.arc)},calculateTotal:function(){var t,a=this.getDataset(),i=this.getMeta(),n=0;return e.each(i.data,function(e,i){t=a.data[i],isNaN(t)||e.hidden||(n+=Math.abs(t))}),n},calculateCircumference:function(t){var e=this.getMeta().total;return e>0&&!isNaN(t)?2*Math.PI*(t/e):0},getMaxBorderWidth:function(t){for(var e,a,i=0,n=this.index,o=t.length,r=0;o>r;r++)e=t[r]._model?t[r]._model.borderWidth:0,a=t[r]._chart?t[r]._chart.config.data.datasets[n].hoverBorderWidth:0,i=e>i?e:i,i=a>i?a:i;return i}})}},{}],18:[function(t,e,a){"use strict";e.exports=function(t){function e(t,e){return a.getValueOrDefault(t.showLine,e.showLines)}var a=t.helpers;t.defaults.line={showLines:!0,spanGaps:!1,hover:{mode:"label"},scales:{xAxes:[{type:"category",id:"x-axis-0"}],yAxes:[{type:"linear",id:"y-axis-0"}]}},t.controllers.line=t.DatasetController.extend({datasetElementType:t.elements.Line,dataElementType:t.elements.Point,addElementAndReset:function(a){var i=this,n=i.chart.options,o=i.getMeta();t.DatasetController.prototype.addElementAndReset.call(i,a),e(i.getDataset(),n)&&0!==o.dataset._model.tension&&i.updateBezierControlPoints()},update:function(t){var i,n,o,r=this,l=r.getMeta(),s=l.dataset,d=l.data||[],u=r.chart.options,c=u.elements.line,h=r.getScaleForId(l.yAxisID),f=r.getDataset(),g=e(f,u);for(g&&(o=s.custom||{},void 0!==f.tension&&void 0===f.lineTension&&(f.lineTension=f.tension),s._scale=h,s._datasetIndex=r.index,s._children=d,s._model={spanGaps:f.spanGaps?f.spanGaps:u.spanGaps,tension:o.tension?o.tension:a.getValueOrDefault(f.lineTension,c.tension),backgroundColor:o.backgroundColor?o.backgroundColor:f.backgroundColor||c.backgroundColor,borderWidth:o.borderWidth?o.borderWidth:f.borderWidth||c.borderWidth,borderColor:o.borderColor?o.borderColor:f.borderColor||c.borderColor,borderCapStyle:o.borderCapStyle?o.borderCapStyle:f.borderCapStyle||c.borderCapStyle,borderDash:o.borderDash?o.borderDash:f.borderDash||c.borderDash,borderDashOffset:o.borderDashOffset?o.borderDashOffset:f.borderDashOffset||c.borderDashOffset,borderJoinStyle:o.borderJoinStyle?o.borderJoinStyle:f.borderJoinStyle||c.borderJoinStyle,fill:o.fill?o.fill:void 0!==f.fill?f.fill:c.fill,steppedLine:o.steppedLine?o.steppedLine:a.getValueOrDefault(f.steppedLine,c.stepped),cubicInterpolationMode:o.cubicInterpolationMode?o.cubicInterpolationMode:a.getValueOrDefault(f.cubicInterpolationMode,c.cubicInterpolationMode),scaleTop:h.top,scaleBottom:h.bottom,scaleZero:h.getBasePixel()},s.pivot()),i=0,n=d.length;n>i;++i)r.updateElement(d[i],i,t);for(g&&0!==s._model.tension&&r.updateBezierControlPoints(),i=0,n=d.length;n>i;++i)d[i].pivot()},getPointBackgroundColor:function(t,e){var i=this.chart.options.elements.point.backgroundColor,n=this.getDataset(),o=t.custom||{};return o.backgroundColor?i=o.backgroundColor:n.pointBackgroundColor?i=a.getValueAtIndexOrDefault(n.pointBackgroundColor,e,i):n.backgroundColor&&(i=n.backgroundColor),i},getPointBorderColor:function(t,e){var i=this.chart.options.elements.point.borderColor,n=this.getDataset(),o=t.custom||{};return o.borderColor?i=o.borderColor:n.pointBorderColor?i=a.getValueAtIndexOrDefault(n.pointBorderColor,e,i):n.borderColor&&(i=n.borderColor),i},getPointBorderWidth:function(t,e){var i=this.chart.options.elements.point.borderWidth,n=this.getDataset(),o=t.custom||{};return o.borderWidth?i=o.borderWidth:n.pointBorderWidth?i=a.getValueAtIndexOrDefault(n.pointBorderWidth,e,i):n.borderWidth&&(i=n.borderWidth),i},updateElement:function(t,e,i){var n,o,r=this,l=r.getMeta(),s=t.custom||{},d=r.getDataset(),u=r.index,c=d.data[e],h=r.getScaleForId(l.yAxisID),f=r.getScaleForId(l.xAxisID),g=r.chart.options.elements.point,p=r.chart.data.labels||[],m=1===p.length||1===d.data.length||r.chart.isCombo;void 0!==d.radius&&void 0===d.pointRadius&&(d.pointRadius=d.radius),void 0!==d.hitRadius&&void 0===d.pointHitRadius&&(d.pointHitRadius=d.hitRadius),n=f.getPixelForValue("object"==typeof c?c:NaN,e,u,m),o=i?h.getBasePixel():r.calculatePointY(c,e,u),t._xScale=f,t._yScale=h,t._datasetIndex=u,t._index=e,t._model={x:n,y:o,skip:s.skip||isNaN(n)||isNaN(o),radius:s.radius||a.getValueAtIndexOrDefault(d.pointRadius,e,g.radius),pointStyle:s.pointStyle||a.getValueAtIndexOrDefault(d.pointStyle,e,g.pointStyle),backgroundColor:r.getPointBackgroundColor(t,e),borderColor:r.getPointBorderColor(t,e),borderWidth:r.getPointBorderWidth(t,e),tension:l.dataset._model?l.dataset._model.tension:0,steppedLine:l.dataset._model?l.dataset._model.steppedLine:!1,hitRadius:s.hitRadius||a.getValueAtIndexOrDefault(d.pointHitRadius,e,g.hitRadius)}},calculatePointY:function(t,e,a){var i,n,o,r=this,l=r.chart,s=r.getMeta(),d=r.getScaleForId(s.yAxisID),u=0,c=0;if(d.options.stacked){for(i=0;a>i;i++)if(n=l.data.datasets[i],o=l.getDatasetMeta(i),"line"===o.type&&o.yAxisID===d.id&&l.isDatasetVisible(i)){var h=Number(d.getRightValue(n.data[e]));0>h?c+=h||0:u+=h||0}var f=Number(d.getRightValue(t));return 0>f?d.getPixelForValue(c+f):d.getPixelForValue(u+f)}return d.getPixelForValue(t)},updateBezierControlPoints:function(){function t(t,e,a){return Math.max(Math.min(t,a),e)}var e=this,i=e.getMeta(),n=e.chart.chartArea,o=i.data||[];i.dataset._model.spanGaps&&(o=o.filter(function(t){return!t._model.skip}));var r,l,s,d,u;if("monotone"==i.dataset._model.cubicInterpolationMode)a.splineCurveMonotone(o);else for(r=0,l=o.length;l>r;++r)s=o[r],d=s._model,u=a.splineCurve(a.previousItem(o,r)._model,d,a.nextItem(o,r)._model,i.dataset._model.tension),d.controlPointPreviousX=u.previous.x,d.controlPointPreviousY=u.previous.y,d.controlPointNextX=u.next.x,d.controlPointNextY=u.next.y;if(e.chart.options.elements.line.capBezierPoints)for(r=0,l=o.length;l>r;++r)d=o[r]._model,d.controlPointPreviousX=t(d.controlPointPreviousX,n.left,n.right),d.controlPointPreviousY=t(d.controlPointPreviousY,n.top,n.bottom),d.controlPointNextX=t(d.controlPointNextX,n.left,n.right),d.controlPointNextY=t(d.controlPointNextY,n.top,n.bottom)},draw:function(t){var a,i,n=this,o=n.getMeta(),r=o.data||[],l=t||1;for(a=0,i=r.length;i>a;++a)r[a].transition(l);for(e(n.getDataset(),n.chart.options)&&o.dataset.transition(l).draw(),a=0,i=r.length;i>a;++a)r[a].draw()},setHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex],i=t._index,n=t.custom||{},o=t._model;o.radius=n.hoverRadius||a.getValueAtIndexOrDefault(e.pointHoverRadius,i,this.chart.options.elements.point.hoverRadius),o.backgroundColor=n.hoverBackgroundColor||a.getValueAtIndexOrDefault(e.pointHoverBackgroundColor,i,a.getHoverColor(o.backgroundColor)),o.borderColor=n.hoverBorderColor||a.getValueAtIndexOrDefault(e.pointHoverBorderColor,i,a.getHoverColor(o.borderColor)),o.borderWidth=n.hoverBorderWidth||a.getValueAtIndexOrDefault(e.pointHoverBorderWidth,i,o.borderWidth)},removeHoverStyle:function(t){var e=this,i=e.chart.data.datasets[t._datasetIndex],n=t._index,o=t.custom||{},r=t._model;void 0!==i.radius&&void 0===i.pointRadius&&(i.pointRadius=i.radius),r.radius=o.radius||a.getValueAtIndexOrDefault(i.pointRadius,n,e.chart.options.elements.point.radius),r.backgroundColor=e.getPointBackgroundColor(t,n),r.borderColor=e.getPointBorderColor(t,n),r.borderWidth=e.getPointBorderWidth(t,n)}})}},{}],19:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers;t.defaults.polarArea={scale:{type:"radialLinear",lineArc:!0,ticks:{beginAtZero:!0}},animation:{animateRotate:!0,animateScale:!0},startAngle:-.5*Math.PI,aspectRatio:1,legendCallback:function(t){var e=[];e.push('
      ');var a=t.data,i=a.datasets,n=a.labels;if(i.length)for(var o=0;o'),n[o]&&e.push(n[o]),e.push("");return e.push("
    "),e.join("")},legend:{labels:{generateLabels:function(t){var a=t.data;return a.labels.length&&a.datasets.length?a.labels.map(function(i,n){var o=t.getDatasetMeta(0),r=a.datasets[0],l=o.data[n],s=l.custom||{},d=e.getValueAtIndexOrDefault,u=t.options.elements.arc,c=s.backgroundColor?s.backgroundColor:d(r.backgroundColor,n,u.backgroundColor),h=s.borderColor?s.borderColor:d(r.borderColor,n,u.borderColor),f=s.borderWidth?s.borderWidth:d(r.borderWidth,n,u.borderWidth);return{text:i,fillStyle:c,strokeStyle:h,lineWidth:f,hidden:isNaN(r.data[n])||o.data[n].hidden,index:n}}):[]}},onClick:function(t,e){var a,i,n,o=e.index,r=this.chart;for(a=0,i=(r.data.datasets||[]).length;i>a;++a)n=r.getDatasetMeta(a),n.data[o].hidden=!n.data[o].hidden;r.update()}},tooltips:{callbacks:{title:function(){return""},label:function(t,e){return e.labels[t.index]+": "+t.yLabel}}}},t.controllers.polarArea=t.DatasetController.extend({dataElementType:t.elements.Arc,linkScales:e.noop,update:function(t){var a=this,i=a.chart,n=i.chartArea,o=a.getMeta(),r=i.options,l=r.elements.arc,s=Math.min(n.right-n.left,n.bottom-n.top);i.outerRadius=Math.max((s-l.borderWidth/2)/2,0),i.innerRadius=Math.max(r.cutoutPercentage?i.outerRadius/100*r.cutoutPercentage:1,0),i.radiusLength=(i.outerRadius-i.innerRadius)/i.getVisibleDatasetCount(),a.outerRadius=i.outerRadius-i.radiusLength*a.index,a.innerRadius=a.outerRadius-i.radiusLength,o.count=a.countVisibleElements(),e.each(o.data,function(e,i){a.updateElement(e,i,t)})},updateElement:function(t,a,i){for(var n=this,o=n.chart,r=n.getDataset(),l=o.options,s=l.animation,d=o.scale,u=e.getValueAtIndexOrDefault,c=o.data.labels,h=n.calculateCircumference(r.data[a]),f=d.xCenter,g=d.yCenter,p=0,m=n.getMeta(),b=0;a>b;++b)isNaN(r.data[b])||m.data[b].hidden||++p;var v=l.startAngle,x=t.hidden?0:d.getDistanceFromCenterForValue(r.data[a]),y=v+h*p,k=y+(t.hidden?0:h),S=s.animateScale?0:d.getDistanceFromCenterForValue(r.data[a]);e.extend(t,{_datasetIndex:n.index,_index:a,_scale:d,_model:{x:f,y:g,innerRadius:0,outerRadius:i?S:x,startAngle:i&&s.animateRotate?v:y,endAngle:i&&s.animateRotate?v:k,label:u(c,a,c[a])}}),n.removeHoverStyle(t),t.pivot()},removeHoverStyle:function(e){t.DatasetController.prototype.removeHoverStyle.call(this,e,this.chart.options.elements.arc)},countVisibleElements:function(){var t=this.getDataset(),a=this.getMeta(),i=0;return e.each(a.data,function(e,a){isNaN(t.data[a])||e.hidden||i++}),i},calculateCircumference:function(t){var e=this.getMeta().count;return e>0&&!isNaN(t)?2*Math.PI/e:0}})}},{}],20:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers;t.defaults.radar={scale:{type:"radialLinear"},elements:{line:{tension:0}}},t.controllers.radar=t.DatasetController.extend({datasetElementType:t.elements.Line,dataElementType:t.elements.Point,linkScales:e.noop,addElementAndReset:function(e){t.DatasetController.prototype.addElementAndReset.call(this,e),this.updateBezierControlPoints()},update:function(t){var a=this,i=a.getMeta(),n=i.dataset,o=i.data,r=n.custom||{},l=a.getDataset(),s=a.chart.options.elements.line,d=a.chart.scale;void 0!==l.tension&&void 0===l.lineTension&&(l.lineTension=l.tension),e.extend(i.dataset,{_datasetIndex:a.index,_children:o,_loop:!0,_model:{tension:r.tension?r.tension:e.getValueOrDefault(l.lineTension,s.tension),backgroundColor:r.backgroundColor?r.backgroundColor:l.backgroundColor||s.backgroundColor,borderWidth:r.borderWidth?r.borderWidth:l.borderWidth||s.borderWidth,borderColor:r.borderColor?r.borderColor:l.borderColor||s.borderColor,fill:r.fill?r.fill:void 0!==l.fill?l.fill:s.fill,borderCapStyle:r.borderCapStyle?r.borderCapStyle:l.borderCapStyle||s.borderCapStyle,borderDash:r.borderDash?r.borderDash:l.borderDash||s.borderDash,borderDashOffset:r.borderDashOffset?r.borderDashOffset:l.borderDashOffset||s.borderDashOffset,borderJoinStyle:r.borderJoinStyle?r.borderJoinStyle:l.borderJoinStyle||s.borderJoinStyle,scaleTop:d.top,scaleBottom:d.bottom,scaleZero:d.getBasePosition()}}),i.dataset.pivot(),e.each(o,function(e,i){a.updateElement(e,i,t)},a),a.updateBezierControlPoints()},updateElement:function(t,a,i){var n=this,o=t.custom||{},r=n.getDataset(),l=n.chart.scale,s=n.chart.options.elements.point,d=l.getPointPositionForValue(a,r.data[a]);e.extend(t,{_datasetIndex:n.index,_index:a,_scale:l,_model:{x:i?l.xCenter:d.x,y:i?l.yCenter:d.y,tension:o.tension?o.tension:e.getValueOrDefault(r.tension,n.chart.options.elements.line.tension),radius:o.radius?o.radius:e.getValueAtIndexOrDefault(r.pointRadius,a,s.radius),backgroundColor:o.backgroundColor?o.backgroundColor:e.getValueAtIndexOrDefault(r.pointBackgroundColor,a,s.backgroundColor),borderColor:o.borderColor?o.borderColor:e.getValueAtIndexOrDefault(r.pointBorderColor,a,s.borderColor),borderWidth:o.borderWidth?o.borderWidth:e.getValueAtIndexOrDefault(r.pointBorderWidth,a,s.borderWidth),pointStyle:o.pointStyle?o.pointStyle:e.getValueAtIndexOrDefault(r.pointStyle,a,s.pointStyle),hitRadius:o.hitRadius?o.hitRadius:e.getValueAtIndexOrDefault(r.hitRadius,a,s.hitRadius)}}),t._model.skip=o.skip?o.skip:isNaN(t._model.x)||isNaN(t._model.y)},updateBezierControlPoints:function(){var t=this.chart.chartArea,a=this.getMeta();e.each(a.data,function(i,n){var o=i._model,r=e.splineCurve(e.previousItem(a.data,n,!0)._model,o,e.nextItem(a.data,n,!0)._model,o.tension);o.controlPointPreviousX=Math.max(Math.min(r.previous.x,t.right),t.left),o.controlPointPreviousY=Math.max(Math.min(r.previous.y,t.bottom),t.top),o.controlPointNextX=Math.max(Math.min(r.next.x,t.right),t.left),o.controlPointNextY=Math.max(Math.min(r.next.y,t.bottom),t.top),i.pivot()})},draw:function(t){var a=this.getMeta(),i=t||1;e.each(a.data,function(t){t.transition(i)}),a.dataset.transition(i).draw(),e.each(a.data,function(t){t.draw()})},setHoverStyle:function(t){var a=this.chart.data.datasets[t._datasetIndex],i=t.custom||{},n=t._index,o=t._model;o.radius=i.hoverRadius?i.hoverRadius:e.getValueAtIndexOrDefault(a.pointHoverRadius,n,this.chart.options.elements.point.hoverRadius),o.backgroundColor=i.hoverBackgroundColor?i.hoverBackgroundColor:e.getValueAtIndexOrDefault(a.pointHoverBackgroundColor,n,e.getHoverColor(o.backgroundColor)),o.borderColor=i.hoverBorderColor?i.hoverBorderColor:e.getValueAtIndexOrDefault(a.pointHoverBorderColor,n,e.getHoverColor(o.borderColor)),o.borderWidth=i.hoverBorderWidth?i.hoverBorderWidth:e.getValueAtIndexOrDefault(a.pointHoverBorderWidth,n,o.borderWidth)},removeHoverStyle:function(t){var a=this.chart.data.datasets[t._datasetIndex],i=t.custom||{},n=t._index,o=t._model,r=this.chart.options.elements.point;o.radius=i.radius?i.radius:e.getValueAtIndexOrDefault(a.radius,n,r.radius),o.backgroundColor=i.backgroundColor?i.backgroundColor:e.getValueAtIndexOrDefault(a.pointBackgroundColor,n,r.backgroundColor),o.borderColor=i.borderColor?i.borderColor:e.getValueAtIndexOrDefault(a.pointBorderColor,n,r.borderColor),o.borderWidth=i.borderWidth?i.borderWidth:e.getValueAtIndexOrDefault(a.pointBorderWidth,n,r.borderWidth)}})}},{}],21:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers;t.defaults.global.animation={duration:1e3,easing:"easeOutQuart",onProgress:e.noop,onComplete:e.noop},t.Animation=t.Element.extend({currentStep:null,numSteps:60,easing:"",render:null,onAnimationProgress:null,onAnimationComplete:null}),t.animationService={frameDuration:17,animations:[],dropFrames:0,request:null,addAnimation:function(t,e,a,i){var n=this;i||(t.animating=!0);for(var o=0;o1&&(a=Math.floor(t.dropFrames),t.dropFrames=t.dropFrames%1);for(var i=0;it.animations[i].animationObject.numSteps&&(t.animations[i].animationObject.currentStep=t.animations[i].animationObject.numSteps),t.animations[i].animationObject.render(t.animations[i].chartInstance,t.animations[i].animationObject),t.animations[i].animationObject.onAnimationProgress&&t.animations[i].animationObject.onAnimationProgress.call&&t.animations[i].animationObject.onAnimationProgress.call(t.animations[i].chartInstance,t.animations[i]),t.animations[i].animationObject.currentStep===t.animations[i].animationObject.numSteps?(t.animations[i].animationObject.onAnimationComplete&&t.animations[i].animationObject.onAnimationComplete.call&&t.animations[i].animationObject.onAnimationComplete.call(t.animations[i].chartInstance,t.animations[i]),t.animations[i].chartInstance.animating=!1,t.animations.splice(i,1)):++i;var n=Date.now(),o=(n-e)/t.frameDuration;t.dropFrames+=o,t.animations.length>0&&t.requestAnimationFrame()}}}},{}],22:[function(t,e,a){"use strict";e.exports=function(t){var e=t.canvasHelpers={};e.drawPoint=function(t,e,a,i,n){var o,r,l,s,d,u;if("object"==typeof e&&(o=e.toString(),"[object HTMLImageElement]"===o||"[object HTMLCanvasElement]"===o))return void t.drawImage(e,i-e.width/2,n-e.height/2);if(!(isNaN(a)||0>=a)){switch(e){default:t.beginPath(),t.arc(i,n,a,0,2*Math.PI),t.closePath(),t.fill();break;case"triangle":t.beginPath(),r=3*a/Math.sqrt(3),d=r*Math.sqrt(3)/2,t.moveTo(i-r/2,n+d/3),t.lineTo(i+r/2,n+d/3),t.lineTo(i,n-2*d/3),t.closePath(),t.fill();break;case"rect":u=1/Math.SQRT2*a,t.beginPath(),t.fillRect(i-u,n-u,2*u,2*u),t.strokeRect(i-u,n-u,2*u,2*u);break;case"rectRot":u=1/Math.SQRT2*a,t.beginPath(),t.moveTo(i-u,n),t.lineTo(i,n+u),t.lineTo(i+u,n),t.lineTo(i,n-u),t.closePath(),t.fill();break;case"cross":t.beginPath(),t.moveTo(i,n+a),t.lineTo(i,n-a),t.moveTo(i-a,n),t.lineTo(i+a,n),t.closePath();break;case"crossRot":t.beginPath(),l=Math.cos(Math.PI/4)*a,s=Math.sin(Math.PI/4)*a,t.moveTo(i-l,n-s),t.lineTo(i+l,n+s),t.moveTo(i-l,n+s),t.lineTo(i+l,n-s),t.closePath();break;case"star":t.beginPath(),t.moveTo(i,n+a),t.lineTo(i,n-a),t.moveTo(i-a,n),t.lineTo(i+a,n),l=Math.cos(Math.PI/4)*a,s=Math.sin(Math.PI/4)*a,t.moveTo(i-l,n-s),t.lineTo(i+l,n+s),t.moveTo(i-l,n+s),t.lineTo(i+l,n-s),t.closePath();break;case"line":t.beginPath(),t.moveTo(i-a,n),t.lineTo(i+a,n),t.closePath();break;case"dash":t.beginPath(),t.moveTo(i,n),t.lineTo(i+a,n),t.closePath()}t.stroke()}}}},{}],23:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers;t.types={},t.instances={},t.controllers={},t.Controller=function(a){return this.chart=a,this.config=a.config,this.options=this.config.options=e.configMerge(t.defaults.global,t.defaults[this.config.type],this.config.options||{}),this.id=e.uid(),Object.defineProperty(this,"data",{get:function(){return this.config.data}}),t.instances[this.id]=this,this.options.responsive&&this.resize(!0),this.initialize(),this},e.extend(t.Controller.prototype,{initialize:function(){var e=this;return t.plugins.notify("beforeInit",[e]),e.bindEvents(),e.ensureScalesHaveIDs(),e.buildOrUpdateControllers(),e.buildScales(),e.updateLayout(),e.resetElements(),e.initToolTip(),e.update(),t.plugins.notify("afterInit",[e]),e},clear:function(){return e.clear(this.chart),this},stop:function(){return t.animationService.cancelAnimation(this),this},resize:function(a){var i=this,n=i.chart,o=n.canvas,r=e.getMaximumWidth(o),l=n.aspectRatio,s=i.options.maintainAspectRatio&&isNaN(l)===!1&&isFinite(l)&&0!==l?r/l:e.getMaximumHeight(o),d=n.width!==r||n.height!==s;if(!d)return i;o.width=n.width=r,o.height=n.height=s,e.retinaScale(n);var u={width:r,height:s};return t.plugins.notify("resize",[i,u]),i.options.onResize&&i.options.onResize(i,u),a||(i.stop(),i.update(i.options.responsiveAnimationDuration)),i},ensureScalesHaveIDs:function(){var t=this.options,a=t.scales||{},i=t.scale;e.each(a.xAxes,function(t,e){t.id=t.id||"x-axis-"+e}),e.each(a.yAxes,function(t,e){t.id=t.id||"y-axis-"+e}),i&&(i.id=i.id||"scale")},buildScales:function(){var a=this,i=a.options,n=a.scales={},o=[];i.scales&&(o=o.concat((i.scales.xAxes||[]).map(function(t){return{options:t,dtype:"category"}}),(i.scales.yAxes||[]).map(function(t){return{options:t,dtype:"linear"}}))),i.scale&&o.push({options:i.scale,dtype:"radialLinear",isDefault:!0}),e.each(o,function(i){var o=i.options,r=e.getValueOrDefault(o.type,i.dtype),l=t.scaleService.getScaleConstructor(r);if(l){var s=new l({id:o.id,options:o,ctx:a.chart.ctx,chart:a});n[s.id]=s,i.isDefault&&(a.scale=s)}}),t.scaleService.addScalesToLayout(this)},updateLayout:function(){t.layoutService.update(this,this.chart.width,this.chart.height)},buildOrUpdateControllers:function(){var a=this,i=[],n=[];if(e.each(a.data.datasets,function(e,o){var r=a.getDatasetMeta(o);r.type||(r.type=e.type||a.config.type),i.push(r.type),r.controller?r.controller.updateIndex(o):(r.controller=new t.controllers[r.type](a,o),n.push(r.controller))},a),i.length>1)for(var o=1;oe;++e)i.getDatasetMeta(e).controller.update();t.plugins.notify("afterDatasetsUpdate",[i])}},render:function(a,i){var n=this;t.plugins.notify("beforeRender",[n]);var o=n.options.animation;if(o&&("undefined"!=typeof a&&0!==a||"undefined"==typeof a&&0!==o.duration)){var r=new t.Animation;r.numSteps=(a||o.duration)/16.66,r.easing=o.easing,r.render=function(t,a){var i=e.easingEffects[a.easing],n=a.currentStep/a.numSteps,o=i(n);t.draw(o,n,a.currentStep)},r.onAnimationProgress=o.onProgress,r.onAnimationComplete=o.onComplete,t.animationService.addAnimation(n,r,a,i)}else n.draw(),o&&o.onComplete&&o.onComplete.call&&o.onComplete.call(n);return n},draw:function(a){var i=this,n=a||1;i.clear(),t.plugins.notify("beforeDraw",[i,n]),e.each(i.boxes,function(t){t.draw(i.chartArea)},i),i.scale&&i.scale.draw(),t.plugins.notify("beforeDatasetsDraw",[i,n]),e.each(i.data.datasets,function(t,e){i.isDatasetVisible(e)&&i.getDatasetMeta(e).controller.draw(a)},i,!0),t.plugins.notify("afterDatasetsDraw",[i,n]),i.tooltip.transition(n).draw(),t.plugins.notify("afterDraw",[i,n])},getElementAtEvent:function(t){var a=this,i=e.getRelativePosition(t,a.chart),n=[];return e.each(a.data.datasets,function(t,o){if(a.isDatasetVisible(o)){var r=a.getDatasetMeta(o);e.each(r.data,function(t){return t.inRange(i.x,i.y)?(n.push(t),n):void 0})}}),n.slice(0,1)},getElementsAtEvent:function(t){var a=this,i=e.getRelativePosition(t,a.chart),n=[],o=function(){if(a.data.datasets)for(var t=0;t0&&(e=this.getDatasetMeta(e[0]._datasetIndex).data), +e},getDatasetMeta:function(t){var e=this,a=e.data.datasets[t];a._meta||(a._meta={});var i=a._meta[e.id];return i||(i=a._meta[e.id]={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null}),i},getVisibleDatasetCount:function(){for(var t=0,e=0,a=this.data.datasets.length;a>e;++e)this.isDatasetVisible(e)&&t++;return t},isDatasetVisible:function(t){var e=this.getDatasetMeta(t);return"boolean"==typeof e.hidden?!e.hidden:!this.data.datasets[t].hidden},generateLegend:function(){return this.options.legendCallback(this)},destroy:function(){var a=this;a.stop(),a.clear(),e.unbindEvents(a,a.events),e.removeResizeListener(a.chart.canvas.parentNode);var i=a.chart.canvas;i.width=a.chart.width,i.height=a.chart.height,void 0!==a.chart.originalDevicePixelRatio&&a.chart.ctx.scale(1/a.chart.originalDevicePixelRatio,1/a.chart.originalDevicePixelRatio),i.style.width=a.chart.originalCanvasStyleWidth,i.style.height=a.chart.originalCanvasStyleHeight,t.plugins.notify("destroy",[a]),delete t.instances[a.id]},toBase64Image:function(){return this.chart.canvas.toDataURL.apply(this.chart.canvas,arguments)},initToolTip:function(){var e=this;e.tooltip=new t.Tooltip({_chart:e.chart,_chartInstance:e,_data:e.data,_options:e.options.tooltips},e)},bindEvents:function(){var t=this;e.bindEvents(t,t.options.events,function(e){t.eventHandler(e)})},updateHoverStyle:function(t,e,a){var i,n,o,r=a?"setHoverStyle":"removeHoverStyle";switch(e){case"single":t=[t[0]];break;case"label":case"dataset":case"x-axis":break;default:return}for(n=0,o=t.length;o>n;++n)i=t[n],i&&this.getDatasetMeta(i._datasetIndex).controller[r](i)},eventHandler:function(t){var a=this,i=a.tooltip,n=a.options||{},o=n.hover,r=n.tooltips;return a.lastActive=a.lastActive||[],a.lastTooltipActive=a.lastTooltipActive||[],"mouseout"===t.type?(a.active=[],a.tooltipActive=[]):(a.active=a.getElementsAtEventForMode(t,o.mode),a.tooltipActive=a.getElementsAtEventForMode(t,r.mode)),o.onHover&&o.onHover.call(a,a.active),("mouseup"===t.type||"click"===t.type)&&(n.onClick&&n.onClick.call(a,t,a.active),a.legend&&a.legend.handleEvent&&a.legend.handleEvent(t)),a.lastActive.length&&a.updateHoverStyle(a.lastActive,o.mode,!1),a.active.length&&o.mode&&a.updateHoverStyle(a.active,o.mode,!0),(r.enabled||r.custom)&&(i.initialize(),i._active=a.tooltipActive,i.update(!0)),i.pivot(),a.animating||e.arrayEquals(a.active,a.lastActive)&&e.arrayEquals(a.tooltipActive,a.lastTooltipActive)||(a.stop(),(r.enabled||r.custom)&&i.update(!0),a.render(o.animationDuration,!0)),a.lastActive=a.active,a.lastTooltipActive=a.tooltipActive,a}})}},{}],24:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers,a=e.noop;t.DatasetController=function(t,e){this.initialize.call(this,t,e)},e.extend(t.DatasetController.prototype,{datasetElementType:null,dataElementType:null,initialize:function(t,e){var a=this;a.chart=t,a.index=e,a.linkScales(),a.addElements()},updateIndex:function(t){this.index=t},linkScales:function(){var t=this,e=t.getMeta(),a=t.getDataset();null===e.xAxisID&&(e.xAxisID=a.xAxisID||t.chart.options.scales.xAxes[0].id),null===e.yAxisID&&(e.yAxisID=a.yAxisID||t.chart.options.scales.yAxes[0].id)},getDataset:function(){return this.chart.data.datasets[this.index]},getMeta:function(){return this.chart.getDatasetMeta(this.index)},getScaleForId:function(t){return this.chart.scales[t]},reset:function(){this.update(!0)},createMetaDataset:function(){var t=this,e=t.datasetElementType;return e&&new e({_chart:t.chart.chart,_datasetIndex:t.index})},createMetaData:function(t){var e=this,a=e.dataElementType;return a&&new a({_chart:e.chart.chart,_datasetIndex:e.index,_index:t})},addElements:function(){var t,e,a=this,i=a.getMeta(),n=a.getDataset().data||[],o=i.data;for(t=0,e=n.length;e>t;++t)o[t]=o[t]||a.createMetaData(i,t);i.dataset=i.dataset||a.createMetaDataset()},addElementAndReset:function(t){var e=this,a=e.createMetaData(t);e.getMeta().data.splice(t,0,a),e.updateElement(a,t,!0)},buildOrUpdateElements:function(){var t=this.getMeta(),e=t.data,a=this.getDataset().data.length,i=e.length;if(i>a)e.splice(a,i-a);else if(a>i)for(var n=i;a>n;++n)this.addElementAndReset(n)},update:a,draw:function(t){var a=t||1;e.each(this.getMeta().data,function(t){t.transition(a).draw()})},removeHoverStyle:function(t,a){var i=this.chart.data.datasets[t._datasetIndex],n=t._index,o=t.custom||{},r=e.getValueAtIndexOrDefault,l=t._model;l.backgroundColor=o.backgroundColor?o.backgroundColor:r(i.backgroundColor,n,a.backgroundColor),l.borderColor=o.borderColor?o.borderColor:r(i.borderColor,n,a.borderColor),l.borderWidth=o.borderWidth?o.borderWidth:r(i.borderWidth,n,a.borderWidth)},setHoverStyle:function(t){var a=this.chart.data.datasets[t._datasetIndex],i=t._index,n=t.custom||{},o=e.getValueAtIndexOrDefault,r=e.getHoverColor,l=t._model;l.backgroundColor=n.hoverBackgroundColor?n.hoverBackgroundColor:o(a.hoverBackgroundColor,i,r(l.backgroundColor)),l.borderColor=n.hoverBorderColor?n.hoverBorderColor:o(a.hoverBorderColor,i,r(l.borderColor)),l.borderWidth=n.hoverBorderWidth?n.hoverBorderWidth:o(a.hoverBorderWidth,i,l.borderWidth)}}),t.DatasetController.extend=e.inherits}},{}],25:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers;t.elements={},t.Element=function(t){e.extend(this,t),this.initialize.apply(this,arguments)},e.extend(t.Element.prototype,{initialize:function(){this.hidden=!1},pivot:function(){var t=this;return t._view||(t._view=e.clone(t._model)),t._start=e.clone(t._view),t},transition:function(t){var a=this;return a._view||(a._view=e.clone(a._model)),1===t?(a._view=a._model,a._start=null,a):(a._start||a.pivot(),e.each(a._model,function(i,n){if("_"===n[0]);else if(a._view.hasOwnProperty(n))if(i===a._view[n]);else if("string"==typeof i)try{var o=e.color(a._model[n]).mix(e.color(a._start[n]),t);a._view[n]=o.rgbString()}catch(r){a._view[n]=i}else if("number"==typeof i){var l=void 0!==a._start[n]&&isNaN(a._start[n])===!1?a._start[n]:0;a._view[n]=(a._model[n]-l)*t+l}else a._view[n]=i;else"number"!=typeof i||isNaN(a._view[n])?a._view[n]=i:a._view[n]=i*t},a),a)},tooltipPosition:function(){return{x:this._model.x,y:this._model.y}},hasValue:function(){return e.isNumber(this._model.x)&&e.isNumber(this._model.y)}}),t.Element.extend=e.inherits}},{}],26:[function(t,e,a){"use strict";var i=t(3);e.exports=function(t){function e(t,e,a){var i;return"string"==typeof t?(i=parseInt(t,10),-1!=t.indexOf("%")&&(i=i/100*e.parentNode[a])):i=t,i}function a(t){return void 0!==t&&null!==t&&"none"!==t}function n(t,i,n){var o=document.defaultView,r=t.parentNode,l=o.getComputedStyle(t)[i],s=o.getComputedStyle(r)[i],d=a(l),u=a(s),c=Number.POSITIVE_INFINITY;return d||u?Math.min(d?e(l,t,n):c,u?e(s,r,n):c):"none"}var o=t.helpers={};o.each=function(t,e,a,i){var n,r;if(o.isArray(t))if(r=t.length,i)for(n=r-1;n>=0;n--)e.call(a,t[n],n);else for(n=0;r>n;n++)e.call(a,t[n],n);else if("object"==typeof t){var l=Object.keys(t);for(r=l.length,n=0;r>n;n++)e.call(a,t[l[n]],l[n])}},o.clone=function(t){var e={};return o.each(t,function(t,a){o.isArray(t)?e[a]=t.slice(0):"object"==typeof t&&null!==t?e[a]=o.clone(t):e[a]=t}),e},o.extend=function(t){for(var e=function(e,a){t[a]=e},a=1,i=arguments.length;i>a;a++)o.each(arguments[a],e);return t},o.configMerge=function(e){var a=o.clone(e);return o.each(Array.prototype.slice.call(arguments,1),function(e){o.each(e,function(e,i){if("scales"===i)a[i]=o.scaleMerge(a.hasOwnProperty(i)?a[i]:{},e);else if("scale"===i)a[i]=o.configMerge(a.hasOwnProperty(i)?a[i]:{},t.scaleService.getScaleDefaults(e.type),e);else if(a.hasOwnProperty(i)&&o.isArray(a[i])&&o.isArray(e)){var n=a[i];o.each(e,function(t,e){e=i[a].length||!i[a][n].type?i[a].push(o.configMerge(l,e)):e.type&&e.type!==i[a][n].type?i[a][n]=o.configMerge(i[a][n],l,e):i[a][n]=o.configMerge(i[a][n],e)}):(i[a]=[],o.each(e,function(e){var n=o.getValueOrDefault(e.type,"xAxes"===a?"category":"linear");i[a].push(o.configMerge(t.scaleService.getScaleDefaults(n),e))})):i.hasOwnProperty(a)&&"object"==typeof i[a]&&null!==i[a]&&"object"==typeof e?i[a]=o.configMerge(i[a],e):i[a]=e}),i},o.getValueAtIndexOrDefault=function(t,e,a){return void 0===t||null===t?a:o.isArray(t)?ea;++a)if(t[a]===e)return a;return-1},o.where=function(t,e){if(o.isArray(t)&&Array.prototype.filter)return t.filter(e);var a=[];return o.each(t,function(t){e(t)&&a.push(t)}),a},o.findIndex=Array.prototype.findIndex?function(t,e,a){return t.findIndex(e,a)}:function(t,e,a){a=void 0===a?t:a;for(var i=0,n=t.length;n>i;++i)if(e.call(a,t[i],i,t))return i;return-1},o.findNextWhere=function(t,e,a){(void 0===a||null===a)&&(a=-1);for(var i=a+1;i=0;i--){var n=t[i];if(e(n))return n}},o.inherits=function(t){var e=this,a=t&&t.hasOwnProperty("constructor")?t.constructor:function(){return e.apply(this,arguments)},i=function(){this.constructor=a};return i.prototype=e.prototype,a.prototype=new i,a.extend=o.inherits,t&&o.extend(a.prototype,t),a.__super__=e.prototype,a},o.noop=function(){},o.uid=function(){var t=0;return function(){return t++}}(),o.isNumber=function(t){return!isNaN(parseFloat(t))&&isFinite(t)},o.almostEquals=function(t,e,a){return Math.abs(t-e)0?1:-1},o.log10=Math.log10?function(t){return Math.log10(t)}:function(t){return Math.log(t)/Math.LN10},o.toRadians=function(t){return t*(Math.PI/180)},o.toDegrees=function(t){return t*(180/Math.PI)},o.getAngleFromPoint=function(t,e){var a=e.x-t.x,i=e.y-t.y,n=Math.sqrt(a*a+i*i),o=Math.atan2(i,a);return o<-.5*Math.PI&&(o+=2*Math.PI),{angle:o,distance:n}},o.aliasPixel=function(t){return t%2===0?0:.5},o.splineCurve=function(t,e,a,i){var n=t.skip?e:t,o=e,r=a.skip?e:a,l=Math.sqrt(Math.pow(o.x-n.x,2)+Math.pow(o.y-n.y,2)),s=Math.sqrt(Math.pow(r.x-o.x,2)+Math.pow(r.y-o.y,2)),d=l/(l+s),u=s/(l+s);d=isNaN(d)?0:d,u=isNaN(u)?0:u;var c=i*d,h=i*u;return{previous:{x:o.x-c*(r.x-n.x),y:o.y-c*(r.y-n.y)},next:{x:o.x+h*(r.x-n.x),y:o.y+h*(r.y-n.y)}}},o.EPSILON=Number.EPSILON||1e-14,o.splineCurveMonotone=function(t){var e,a,i,n,r=(t||[]).map(function(t){return{model:t._model,deltaK:0,mK:0}}),l=r.length;for(e=0;l>e;++e)i=r[e],i.model.skip||(a=e>0?r[e-1]:null,n=l-1>e?r[e+1]:null,n&&!n.model.skip&&(i.deltaK=(n.model.y-i.model.y)/(n.model.x-i.model.x)),!a||a.model.skip?i.mK=i.deltaK:!n||n.model.skip?i.mK=a.deltaK:this.sign(a.deltaK)!=this.sign(i.deltaK)?i.mK=0:i.mK=(a.deltaK+i.deltaK)/2);var s,d,u,c;for(e=0;l-1>e;++e)i=r[e],n=r[e+1],i.model.skip||n.model.skip||(o.almostEquals(i.deltaK,0,this.EPSILON)?i.mK=n.mK=0:(s=i.mK/i.deltaK,d=n.mK/i.deltaK,c=Math.pow(s,2)+Math.pow(d,2),9>=c||(u=3/Math.sqrt(c),i.mK=s*u*i.deltaK,n.mK=d*u*i.deltaK)));var h;for(e=0;l>e;++e)i=r[e],i.model.skip||(a=e>0?r[e-1]:null,n=l-1>e?r[e+1]:null,a&&!a.model.skip&&(h=(i.model.x-a.model.x)/3,i.model.controlPointPreviousX=i.model.x-h,i.model.controlPointPreviousY=i.model.y-h*i.mK),n&&!n.model.skip&&(h=(n.model.x-i.model.x)/3,i.model.controlPointNextX=i.model.x+h,i.model.controlPointNextY=i.model.y+h*i.mK))},o.nextItem=function(t,e,a){return a?e>=t.length-1?t[0]:t[e+1]:e>=t.length-1?t[t.length-1]:t[e+1]},o.previousItem=function(t,e,a){return a?0>=e?t[t.length-1]:t[e-1]:0>=e?t[0]:t[e-1]},o.niceNum=function(t,e){var a,i=Math.floor(o.log10(t)),n=t/Math.pow(10,i);return a=e?1.5>n?1:3>n?2:7>n?5:10:1>=n?1:2>=n?2:5>=n?5:10,a*Math.pow(10,i)};var r=o.easingEffects={linear:function(t){return t},easeInQuad:function(t){return t*t},easeOutQuad:function(t){return-1*t*(t-2)},easeInOutQuad:function(t){return(t/=.5)<1?.5*t*t:-0.5*(--t*(t-2)-1)},easeInCubic:function(t){return t*t*t},easeOutCubic:function(t){return 1*((t=t/1-1)*t*t+1)},easeInOutCubic:function(t){return(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2)},easeInQuart:function(t){return t*t*t*t},easeOutQuart:function(t){return-1*((t=t/1-1)*t*t*t-1)},easeInOutQuart:function(t){return(t/=.5)<1?.5*t*t*t*t:-0.5*((t-=2)*t*t*t-2)},easeInQuint:function(t){return 1*(t/=1)*t*t*t*t},easeOutQuint:function(t){return 1*((t=t/1-1)*t*t*t*t+1)},easeInOutQuint:function(t){return(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)},easeInSine:function(t){return-1*Math.cos(t/1*(Math.PI/2))+1},easeOutSine:function(t){return 1*Math.sin(t/1*(Math.PI/2))},easeInOutSine:function(t){return-0.5*(Math.cos(Math.PI*t/1)-1)},easeInExpo:function(t){return 0===t?1:1*Math.pow(2,10*(t/1-1))},easeOutExpo:function(t){return 1===t?1:1*(-Math.pow(2,-10*t/1)+1)},easeInOutExpo:function(t){return 0===t?0:1===t?1:(t/=.5)<1?.5*Math.pow(2,10*(t-1)):.5*(-Math.pow(2,-10*--t)+2)},easeInCirc:function(t){return t>=1?t:-1*(Math.sqrt(1-(t/=1)*t)-1)},easeOutCirc:function(t){return 1*Math.sqrt(1-(t=t/1-1)*t)},easeInOutCirc:function(t){return(t/=.5)<1?-0.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},easeInElastic:function(t){var e=1.70158,a=0,i=1;return 0===t?0:1===(t/=1)?1:(a||(a=.3),it?-.5*(i*Math.pow(2,10*(t-=1))*Math.sin((1*t-e)*(2*Math.PI)/a)):i*Math.pow(2,-10*(t-=1))*Math.sin((1*t-e)*(2*Math.PI)/a)*.5+1)},easeInBack:function(t){var e=1.70158;return 1*(t/=1)*t*((e+1)*t-e)},easeOutBack:function(t){var e=1.70158;return 1*((t=t/1-1)*t*((e+1)*t+e)+1)},easeInOutBack:function(t){var e=1.70158;return(t/=.5)<1?.5*(t*t*(((e*=1.525)+1)*t-e)):.5*((t-=2)*t*(((e*=1.525)+1)*t+e)+2)},easeInBounce:function(t){return 1-r.easeOutBounce(1-t)},easeOutBounce:function(t){return(t/=1)<1/2.75?1*(7.5625*t*t):2/2.75>t?1*(7.5625*(t-=1.5/2.75)*t+.75):2.5/2.75>t?1*(7.5625*(t-=2.25/2.75)*t+.9375):1*(7.5625*(t-=2.625/2.75)*t+.984375)},easeInOutBounce:function(t){return.5>t?.5*r.easeInBounce(2*t):.5*r.easeOutBounce(2*t-1)+.5}};o.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){return window.setTimeout(t,1e3/60)}}(),o.cancelAnimFrame=function(){return window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||window.oCancelAnimationFrame||window.msCancelAnimationFrame||function(t){return window.clearTimeout(t,1e3/60)}}(),o.getRelativePosition=function(t,e){var a,i,n=t.originalEvent||t,r=t.currentTarget||t.srcElement,l=r.getBoundingClientRect(),s=n.touches;s&&s.length>0?(a=s[0].clientX,i=s[0].clientY):(a=n.clientX,i=n.clientY);var d=parseFloat(o.getStyle(r,"padding-left")),u=parseFloat(o.getStyle(r,"padding-top")),c=parseFloat(o.getStyle(r,"padding-right")),h=parseFloat(o.getStyle(r,"padding-bottom")),f=l.right-l.left-d-c,g=l.bottom-l.top-u-h;return a=Math.round((a-l.left-d)/f*r.width/e.currentDevicePixelRatio),i=Math.round((i-l.top-u)/g*r.height/e.currentDevicePixelRatio),{x:a,y:i}},o.addEvent=function(t,e,a){t.addEventListener?t.addEventListener(e,a):t.attachEvent?t.attachEvent("on"+e,a):t["on"+e]=a},o.removeEvent=function(t,e,a){t.removeEventListener?t.removeEventListener(e,a,!1):t.detachEvent?t.detachEvent("on"+e,a):t["on"+e]=o.noop},o.bindEvents=function(t,e,a){var i=t.events=t.events||{};o.each(e,function(e){i[e]=function(){a.apply(t,arguments)},o.addEvent(t.chart.canvas,e,i[e])})},o.unbindEvents=function(t,e){var a=t.chart.canvas;o.each(e,function(t,e){o.removeEvent(a,e,t)})},o.getConstraintWidth=function(t){return n(t,"max-width","clientWidth")},o.getConstraintHeight=function(t){return n(t,"max-height","clientHeight")},o.getMaximumWidth=function(t){var e=t.parentNode,a=parseInt(o.getStyle(e,"padding-left"))+parseInt(o.getStyle(e,"padding-right")),i=e.clientWidth-a,n=o.getConstraintWidth(t);return isNaN(n)?i:Math.min(i,n)},o.getMaximumHeight=function(t){var e=t.parentNode,a=parseInt(o.getStyle(e,"padding-top"))+parseInt(o.getStyle(e,"padding-bottom")),i=e.clientHeight-a,n=o.getConstraintHeight(t);return isNaN(n)?i:Math.min(i,n)},o.getStyle=function(t,e){return t.currentStyle?t.currentStyle[e]:document.defaultView.getComputedStyle(t,null).getPropertyValue(e)},o.retinaScale=function(t){var e=t.ctx,a=t.canvas,i=a.width,n=a.height,o=t.currentDevicePixelRatio=window.devicePixelRatio||1;1!==o&&(a.height=n*o,a.width=i*o,e.scale(o,o),t.originalDevicePixelRatio=t.originalDevicePixelRatio||o),a.style.width=i+"px",a.style.height=n+"px"},o.clear=function(t){t.ctx.clearRect(0,0,t.width,t.height)},o.fontString=function(t,e,a){return e+" "+t+"px "+a},o.longestText=function(t,e,a,i){i=i||{};var n=i.data=i.data||{},r=i.garbageCollect=i.garbageCollect||[];i.font!==e&&(n=i.data={},r=i.garbageCollect=[],i.font=e),t.font=e;var l=0;o.each(a,function(e){void 0!==e&&null!==e&&o.isArray(e)!==!0?l=o.measureText(t,n,r,l,e):o.isArray(e)&&o.each(e,function(e){void 0===e||null===e||o.isArray(e)||(l=o.measureText(t,n,r,l,e))})});var s=r.length/2;if(s>a.length){for(var d=0;s>d;d++)delete n[r[d]];r.splice(0,s)}return l},o.measureText=function(t,e,a,i,n){var o=e[n];return o||(o=e[n]=t.measureText(n).width,a.push(n)),o>i&&(i=o),i},o.numberOfLabelLines=function(t){var e=1;return o.each(t,function(t){o.isArray(t)&&t.length>e&&(e=t.length)}),e},o.drawRoundedRectangle=function(t,e,a,i,n,o){t.beginPath(),t.moveTo(e+o,a),t.lineTo(e+i-o,a),t.quadraticCurveTo(e+i,a,e+i,a+o),t.lineTo(e+i,a+n-o),t.quadraticCurveTo(e+i,a+n,e+i-o,a+n),t.lineTo(e+o,a+n),t.quadraticCurveTo(e,a+n,e,a+n-o),t.lineTo(e,a+o),t.quadraticCurveTo(e,a,e+o,a),t.closePath()},o.color=function(e){return i?i(e instanceof CanvasGradient?t.defaults.global.defaultColor:e):(console.log("Color.js not found!"),e)},o.addResizeListener=function(t,e){var a=document.createElement("iframe"),i="chartjs-hidden-iframe";a.classlist?a.classlist.add(i):a.setAttribute("class",i),a.tabIndex=-1;var n=a.style;n.width="100%",n.display="block",n.border=0,n.height=0,n.margin=0,n.position="absolute",n.left=0,n.right=0,n.top=0,n.bottom=0,t.insertBefore(a,t.firstChild),(a.contentWindow||a).onresize=function(){e&&e()}},o.removeResizeListener=function(t){var e=t.querySelector(".chartjs-hidden-iframe");e&&e.parentNode.removeChild(e)},o.isArray=Array.isArray?function(t){return Array.isArray(t)}:function(t){return"[object Array]"===Object.prototype.toString.call(t)},o.arrayEquals=function(t,e){var a,i,n,r;if(!t||!e||t.length!=e.length)return!1;for(a=0,i=t.length;i>a;++a)if(n=t[a],r=e[a],n instanceof Array&&r instanceof Array){if(!o.arrayEquals(n,r))return!1}else if(n!=r)return!1;return!0},o.callCallback=function(t,e,a){t&&"function"==typeof t.call&&t.apply(a,e)},o.getHoverColor=function(t){return t instanceof CanvasPattern?t:o.color(t).saturate(.5).darken(.1).rgbString()}}},{3:3}],27:[function(t,e,a){"use strict";e.exports=function(){var t=function(e,a){var i=this,n=t.helpers;return i.config=a||{data:{datasets:[]}},e.length&&e[0].getContext&&(e=e[0]),e.getContext&&(e=e.getContext("2d")),i.ctx=e,i.canvas=e.canvas,e.canvas.style.display=e.canvas.style.display||"block",i.width=e.canvas.width||parseInt(n.getStyle(e.canvas,"width"),10)||n.getMaximumWidth(e.canvas),i.height=e.canvas.height||parseInt(n.getStyle(e.canvas,"height"),10)||n.getMaximumHeight(e.canvas),i.aspectRatio=i.width/i.height,(isNaN(i.aspectRatio)||isFinite(i.aspectRatio)===!1)&&(i.aspectRatio=void 0!==a.aspectRatio?a.aspectRatio:2),i.originalCanvasStyleWidth=e.canvas.style.width,i.originalCanvasStyleHeight=e.canvas.style.height,n.retinaScale(i),i.controller=new t.Controller(i),n.addResizeListener(e.canvas.parentNode,function(){i.controller&&i.controller.config.options.responsive&&i.controller.resize()}),i.controller?i.controller:i};return t.defaults={global:{responsive:!0,responsiveAnimationDuration:0,maintainAspectRatio:!0,events:["mousemove","mouseout","click","touchstart","touchmove"],hover:{onHover:null,mode:"single",animationDuration:400},onClick:null,defaultColor:"rgba(0,0,0,0.1)",defaultFontColor:"#666",defaultFontFamily:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",defaultFontSize:12,defaultFontStyle:"normal",showLines:!0,elements:{},legendCallback:function(t){var e=[];e.push('
      ');for(var a=0;a'),t.data.datasets[a].label&&e.push(t.data.datasets[a].label),e.push("");return e.push("
    "),e.join("")}}},t.Chart=t,t}},{}],28:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers;t.layoutService={defaults:{},addBox:function(t,e){t.boxes||(t.boxes=[]),t.boxes.push(e)},removeBox:function(t,e){t.boxes&&t.boxes.splice(t.boxes.indexOf(e),1)},update:function(t,a,i){function n(t){var e,a=t.isHorizontal();a?(e=t.update(t.options.fullWidth?p:k,y),S-=e.height):(e=t.update(x,v),k-=e.width),w.push({horizontal:a,minSize:e,box:t})}function o(t){var a=e.findNextWhere(w,function(e){return e.box===t});if(a)if(t.isHorizontal()){var i={left:C,right:M,top:0,bottom:0};t.update(t.options.fullWidth?p:k,m/2,i)}else t.update(a.minSize.width,S)}function r(t){var a=e.findNextWhere(w,function(e){return e.box===t}),i={left:0,right:0,top:D,bottom:I};a&&t.update(a.minSize.width,S,i)}function l(t){t.isHorizontal()?(t.left=t.options.fullWidth?s:C,t.right=t.options.fullWidth?a-s:C+k,t.top=F,t.bottom=F+t.height,F=t.bottom):(t.left=T,t.right=T+t.width,t.top=D,t.bottom=D+S,T=t.right)}if(t){var s=0,d=0,u=e.where(t.boxes,function(t){return"left"===t.options.position}),c=e.where(t.boxes,function(t){return"right"===t.options.position}),h=e.where(t.boxes,function(t){return"top"===t.options.position}),f=e.where(t.boxes,function(t){return"bottom"===t.options.position}),g=e.where(t.boxes,function(t){return"chartArea"===t.options.position});h.sort(function(t,e){return(e.options.fullWidth?1:0)-(t.options.fullWidth?1:0)}),f.sort(function(t,e){return(t.options.fullWidth?1:0)-(e.options.fullWidth?1:0)});var p=a-2*s,m=i-2*d,b=p/2,v=m/2,x=(a-b)/(u.length+c.length),y=(i-v)/(h.length+f.length),k=p,S=m,w=[];e.each(u.concat(c,h,f),n);var C=s,M=s,D=d,I=d;e.each(u.concat(c),o),e.each(u,function(t){C+=t.width}),e.each(c,function(t){M+=t.width}),e.each(h.concat(f),o),e.each(h,function(t){D+=t.height}),e.each(f,function(t){I+=t.height}),e.each(u.concat(c),r),C=s,M=s,D=d,I=d,e.each(u,function(t){C+=t.width}),e.each(c,function(t){M+=t.width}),e.each(h,function(t){D+=t.height}),e.each(f,function(t){I+=t.height});var A=i-D-I,P=a-C-M;(P!==k||A!==S)&&(e.each(u,function(t){t.height=A}),e.each(c,function(t){t.height=A}),e.each(h,function(t){t.options.fullWidth||(t.width=P)}),e.each(f,function(t){t.options.fullWidth||(t.width=P)}),S=A,k=P);var T=s,F=d;e.each(u.concat(h),l),T+=k,F+=S,e.each(c,l),e.each(f,l),t.chartArea={left:C,top:D,right:C+k,bottom:D+S},e.each(g,function(e){e.left=t.chartArea.left,e.top=t.chartArea.top,e.right=t.chartArea.right,e.bottom=t.chartArea.bottom,e.update(k,S)})}}}}},{}],29:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers,a=e.noop;t.defaults.global.legend={display:!0,position:"top",fullWidth:!0,reverse:!1,onClick:function(t,e){var a=e.datasetIndex,i=this.chart,n=i.getDatasetMeta(a);n.hidden=null===n.hidden?!i.data.datasets[a].hidden:null,i.update()},labels:{boxWidth:40,padding:10,generateLabels:function(t){var a=t.data;return e.isArray(a.datasets)?a.datasets.map(function(a,i){return{text:a.label,fillStyle:e.isArray(a.backgroundColor)?a.backgroundColor[0]:a.backgroundColor,hidden:!t.isDatasetVisible(i),lineCap:a.borderCapStyle,lineDash:a.borderDash,lineDashOffset:a.borderDashOffset,lineJoin:a.borderJoinStyle,lineWidth:a.borderWidth,strokeStyle:a.borderColor,pointStyle:a.pointStyle,datasetIndex:i}},this):[]}}},t.Legend=t.Element.extend({initialize:function(t){e.extend(this,t),this.legendHitBoxes=[],this.doughnutMode=!1},beforeUpdate:a,update:function(t,e,a){var i=this;return i.beforeUpdate(),i.maxWidth=t,i.maxHeight=e,i.margins=a,i.beforeSetDimensions(),i.setDimensions(),i.afterSetDimensions(),i.beforeBuildLabels(),i.buildLabels(),i.afterBuildLabels(),i.beforeFit(),i.fit(),i.afterFit(),i.afterUpdate(),i.minSize},afterUpdate:a,beforeSetDimensions:a,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:a,beforeBuildLabels:a,buildLabels:function(){var t=this;t.legendItems=t.options.labels.generateLabels.call(t,t.chart),t.options.reverse&&t.legendItems.reverse()},afterBuildLabels:a,beforeFit:a,fit:function(){var a=this,i=a.options,n=i.labels,o=i.display,r=a.ctx,l=t.defaults.global,s=e.getValueOrDefault,d=s(n.fontSize,l.defaultFontSize),u=s(n.fontStyle,l.defaultFontStyle),c=s(n.fontFamily,l.defaultFontFamily),h=e.fontString(d,u,c),f=a.legendHitBoxes=[],g=a.minSize,p=a.isHorizontal();if(p?(g.width=a.maxWidth,g.height=o?10:0):(g.width=o?10:0,g.height=a.maxHeight),o)if(r.font=h,p){var m=a.lineWidths=[0],b=a.legendItems.length?d+n.padding:0;r.textAlign="left",r.textBaseline="top",e.each(a.legendItems,function(t,e){var i=n.usePointStyle?d*Math.sqrt(2):n.boxWidth,o=i+d/2+r.measureText(t.text).width;m[m.length-1]+o+n.padding>=a.width&&(b+=d+n.padding,m[m.length]=a.left),f[e]={left:0,top:0,width:o,height:d},m[m.length-1]+=o+n.padding}),g.height+=b}else{var v=n.padding,x=a.columnWidths=[],y=n.padding,k=0,S=0,w=d+v;e.each(a.legendItems,function(t,e){var a=n.usePointStyle?2*n.boxWidth:n.boxWidth,i=a+d/2+r.measureText(t.text).width;S+w>g.height&&(y+=k+n.padding,x.push(k),k=0,S=0),k=Math.max(k,i),S+=w,f[e]={left:0,top:0,width:i,height:d}}),y+=k,x.push(k),g.width+=y}a.width=g.width,a.height=g.height},afterFit:a,isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},draw:function(){var a=this,i=a.options,n=i.labels,o=t.defaults.global,r=o.elements.line,l=a.width,s=a.lineWidths;if(i.display){var d,u=a.ctx,c=e.getValueOrDefault,h=c(n.fontColor,o.defaultFontColor),f=c(n.fontSize,o.defaultFontSize),g=c(n.fontStyle,o.defaultFontStyle),p=c(n.fontFamily,o.defaultFontFamily),m=e.fontString(f,g,p);u.textAlign="left",u.textBaseline="top",u.lineWidth=.5,u.strokeStyle=h,u.fillStyle=h,u.font=m;var b=n.boxWidth,v=a.legendHitBoxes,x=function(e,a,n){if(!(isNaN(b)||0>=b)){if(u.save(),u.fillStyle=c(n.fillStyle,o.defaultColor),u.lineCap=c(n.lineCap,r.borderCapStyle),u.lineDashOffset=c(n.lineDashOffset,r.borderDashOffset),u.lineJoin=c(n.lineJoin,r.borderJoinStyle),u.lineWidth=c(n.lineWidth,r.borderWidth),u.strokeStyle=c(n.strokeStyle,o.defaultColor),u.setLineDash&&u.setLineDash(c(n.lineDash,r.borderDash)),i.labels&&i.labels.usePointStyle){var l=f*Math.SQRT2/2,s=l/Math.SQRT2,d=e+s,h=a+s;t.canvasHelpers.drawPoint(u,n.pointStyle,l,d,h)}else u.strokeRect(e,a,b,f),u.fillRect(e,a,b,f);u.restore()}},y=function(t,e,a,i){u.fillText(a.text,b+f/2+t,e),a.hidden&&(u.beginPath(),u.lineWidth=2,u.moveTo(b+f/2+t,e+f/2),u.lineTo(b+f/2+t+i,e+f/2),u.stroke())},k=a.isHorizontal();d=k?{x:a.left+(l-s[0])/2,y:a.top+n.padding,line:0}:{x:a.left+n.padding,y:a.top+n.padding,line:0};var S=f+n.padding;e.each(a.legendItems,function(t,e){var i=u.measureText(t.text).width,o=n.usePointStyle?f+f/2+i:b+f/2+i,r=d.x,c=d.y;k?r+o>=l&&(c=d.y+=S,d.line++,r=d.x=a.left+(l-s[d.line])/2):c+S>a.bottom&&(r=d.x=r+a.columnWidths[d.line]+n.padding,c=d.y=a.top,d.line++),x(r,c,t),v[e].left=r,v[e].top=c,y(r,c,t,i),k?d.x+=o+n.padding:d.y+=S})}},handleEvent:function(t){var a=this,i=e.getRelativePosition(t,a.chart.chart),n=i.x,o=i.y,r=a.options;if(n>=a.left&&n<=a.right&&o>=a.top&&o<=a.bottom)for(var l=a.legendHitBoxes,s=0;s=d.left&&n<=d.left+d.width&&o>=d.top&&o<=d.top+d.height){r.onClick&&r.onClick.call(a,t,a.legendItems[s]);break}}}}),t.plugins.register({beforeInit:function(e){var a=e.options,i=a.legend;i&&(e.legend=new t.Legend({ctx:e.chart.ctx,options:i,chart:e}),t.layoutService.addBox(e,e.legend))}})}},{}],30:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers.noop;t.plugins={_plugins:[],register:function(t){var e=this._plugins;[].concat(t).forEach(function(t){-1===e.indexOf(t)&&e.push(t)})},unregister:function(t){var e=this._plugins;[].concat(t).forEach(function(t){var a=e.indexOf(t);-1!==a&&e.splice(a,1)})},clear:function(){this._plugins=[]},count:function(){return this._plugins.length},getAll:function(){return this._plugins},notify:function(t,e){var a,i,n=this._plugins,o=n.length;for(a=0;o>a;++a)if(i=n[a],"function"==typeof i[t]&&i[t].apply(i,e||[])===!1)return!1;return!0}},t.PluginBase=t.Element.extend({beforeInit:e,afterInit:e,beforeUpdate:e,afterUpdate:e,beforeDraw:e,afterDraw:e,destroy:e}),t.pluginService=t.plugins}},{}],31:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers;t.defaults.scale={display:!0,position:"left",gridLines:{display:!0,color:"rgba(0, 0, 0, 0.1)",lineWidth:1,drawBorder:!0,drawOnChartArea:!0,drawTicks:!0,tickMarkLength:10,zeroLineWidth:1,zeroLineColor:"rgba(0,0,0,0.25)",offsetGridLines:!1,borderDash:[],borderDashOffset:0},scaleLabel:{labelString:"",display:!1},ticks:{beginAtZero:!1,minRotation:0,maxRotation:50,mirror:!1,padding:10,reverse:!1,display:!0,autoSkip:!0,autoSkipPadding:0,labelOffset:0,callback:function(t){return e.isArray(t)?t:""+t}}},t.Scale=t.Element.extend({beforeUpdate:function(){e.callCallback(this.options.beforeUpdate,[this])},update:function(t,a,i){var n=this;return n.beforeUpdate(),n.maxWidth=t,n.maxHeight=a,n.margins=e.extend({left:0,right:0,top:0,bottom:0},i),n.beforeSetDimensions(),n.setDimensions(),n.afterSetDimensions(),n.beforeDataLimits(),n.determineDataLimits(),n.afterDataLimits(),n.beforeBuildTicks(),n.buildTicks(),n.afterBuildTicks(),n.beforeTickToLabelConversion(),n.convertTicksToLabels(),n.afterTickToLabelConversion(),n.beforeCalculateTickRotation(),n.calculateTickRotation(),n.afterCalculateTickRotation(),n.beforeFit(),n.fit(),n.afterFit(),n.afterUpdate(),n.minSize},afterUpdate:function(){e.callCallback(this.options.afterUpdate,[this])},beforeSetDimensions:function(){e.callCallback(this.options.beforeSetDimensions,[this])},setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0},afterSetDimensions:function(){e.callCallback(this.options.afterSetDimensions,[this])},beforeDataLimits:function(){e.callCallback(this.options.beforeDataLimits,[this])},determineDataLimits:e.noop,afterDataLimits:function(){e.callCallback(this.options.afterDataLimits,[this])},beforeBuildTicks:function(){e.callCallback(this.options.beforeBuildTicks,[this])},buildTicks:e.noop,afterBuildTicks:function(){e.callCallback(this.options.afterBuildTicks,[this])},beforeTickToLabelConversion:function(){e.callCallback(this.options.beforeTickToLabelConversion,[this])},convertTicksToLabels:function(){var t=this;t.ticks=t.ticks.map(function(e,a,i){ +return t.options.ticks.userCallback?t.options.ticks.userCallback(e,a,i):t.options.ticks.callback(e,a,i)},t)},afterTickToLabelConversion:function(){e.callCallback(this.options.afterTickToLabelConversion,[this])},beforeCalculateTickRotation:function(){e.callCallback(this.options.beforeCalculateTickRotation,[this])},calculateTickRotation:function(){var a=this,i=a.ctx,n=t.defaults.global,o=a.options.ticks,r=e.getValueOrDefault(o.fontSize,n.defaultFontSize),l=e.getValueOrDefault(o.fontStyle,n.defaultFontStyle),s=e.getValueOrDefault(o.fontFamily,n.defaultFontFamily),d=e.fontString(r,l,s);i.font=d;var u,c=i.measureText(a.ticks[0]).width,h=i.measureText(a.ticks[a.ticks.length-1]).width;if(a.labelRotation=o.minRotation||0,a.paddingRight=0,a.paddingLeft=0,a.options.display&&a.isHorizontal()){a.paddingRight=h/2+3,a.paddingLeft=c/2+3,a.longestTextCache||(a.longestTextCache={});for(var f,g,p=e.longestText(i,d,a.ticks,a.longestTextCache),m=p,b=a.getPixelForTick(1)-a.getPixelForTick(0)-6;m>b&&a.labelRotationa.yLabelWidth&&(a.paddingLeft=u+r/2),a.paddingRight=r/2,g*p>a.maxHeight){a.labelRotation--;break}a.labelRotation++,m=f*p}}a.margins&&(a.paddingLeft=Math.max(a.paddingLeft-a.margins.left,0),a.paddingRight=Math.max(a.paddingRight-a.margins.right,0))},afterCalculateTickRotation:function(){e.callCallback(this.options.afterCalculateTickRotation,[this])},beforeFit:function(){e.callCallback(this.options.beforeFit,[this])},fit:function(){var a=this,i=a.minSize={width:0,height:0},n=a.options,o=t.defaults.global,r=n.ticks,l=n.scaleLabel,s=n.gridLines,d=n.display,u=a.isHorizontal(),c=e.getValueOrDefault(r.fontSize,o.defaultFontSize),h=e.getValueOrDefault(r.fontStyle,o.defaultFontStyle),f=e.getValueOrDefault(r.fontFamily,o.defaultFontFamily),g=e.fontString(c,h,f),p=e.getValueOrDefault(l.fontSize,o.defaultFontSize),m=n.gridLines.tickMarkLength;if(u?i.width=a.isFullWidth()?a.maxWidth-a.margins.left-a.margins.right:a.maxWidth:i.width=d&&s.drawTicks?m:0,u?i.height=d&&s.drawTicks?m:0:i.height=a.maxHeight,l.display&&d&&(u?i.height+=1.5*p:i.width+=1.5*p),r.display&&d){a.longestTextCache||(a.longestTextCache={});var b=e.longestText(a.ctx,g,a.ticks,a.longestTextCache),v=e.numberOfLabelLines(a.ticks),x=.5*c;if(u){a.longestLabelWidth=b;var y=Math.sin(e.toRadians(a.labelRotation))*a.longestLabelWidth+c*v+x*v;i.height=Math.min(a.maxHeight,i.height+y),a.ctx.font=g;var k=a.ctx.measureText(a.ticks[0]).width,S=a.ctx.measureText(a.ticks[a.ticks.length-1]).width,w=Math.cos(e.toRadians(a.labelRotation)),C=Math.sin(e.toRadians(a.labelRotation));a.paddingLeft=0!==a.labelRotation?w*k+3:k/2+3,a.paddingRight=0!==a.labelRotation?C*(c/2)+3:S/2+3}else{var M=a.maxWidth-i.width,D=r.mirror;D?b=0:b+=a.options.ticks.padding,M>b?i.width+=b:i.width=a.maxWidth,a.paddingTop=c/2,a.paddingBottom=c/2}}a.margins&&(a.paddingLeft=Math.max(a.paddingLeft-a.margins.left,0),a.paddingTop=Math.max(a.paddingTop-a.margins.top,0),a.paddingRight=Math.max(a.paddingRight-a.margins.right,0),a.paddingBottom=Math.max(a.paddingBottom-a.margins.bottom,0)),a.width=i.width,a.height=i.height},afterFit:function(){e.callCallback(this.options.afterFit,[this])},isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},isFullWidth:function(){return this.options.fullWidth},getRightValue:function(t){return null===t||"undefined"==typeof t?NaN:"number"==typeof t&&isNaN(t)?NaN:"object"==typeof t?t instanceof Date||t.isValid?t:this.getRightValue(this.isHorizontal()?t.x:t.y):t},getLabelForIndex:e.noop,getPixelForValue:e.noop,getValueForPixel:e.noop,getPixelForTick:function(t,e){var a=this;if(a.isHorizontal()){var i=a.width-(a.paddingLeft+a.paddingRight),n=i/Math.max(a.ticks.length-(a.options.gridLines.offsetGridLines?0:1),1),o=n*t+a.paddingLeft;e&&(o+=n/2);var r=a.left+Math.round(o);return r+=a.isFullWidth()?a.margins.left:0}var l=a.height-(a.paddingTop+a.paddingBottom);return a.top+t*(l/(a.ticks.length-1))},getPixelForDecimal:function(t){var e=this;if(e.isHorizontal()){var a=e.width-(e.paddingLeft+e.paddingRight),i=a*t+e.paddingLeft,n=e.left+Math.round(i);return n+=e.isFullWidth()?e.margins.left:0}return e.top+t*e.height},getBasePixel:function(){var t=this,e=t.min,a=t.max;return t.getPixelForValue(t.beginAtZero?0:0>e&&0>a?a:e>0&&a>0?e:0)},draw:function(a){var i=this,n=i.options;if(n.display){var o,r,l=i.ctx,s=t.defaults.global,d=n.ticks,u=n.gridLines,c=n.scaleLabel,h=0!==i.labelRotation,f=d.autoSkip,g=i.isHorizontal();d.maxTicksLimit&&(r=d.maxTicksLimit);var p=e.getValueOrDefault(d.fontColor,s.defaultFontColor),m=e.getValueOrDefault(d.fontSize,s.defaultFontSize),b=e.getValueOrDefault(d.fontStyle,s.defaultFontStyle),v=e.getValueOrDefault(d.fontFamily,s.defaultFontFamily),x=e.fontString(m,b,v),y=u.tickMarkLength,k=e.getValueOrDefault(u.borderDash,s.borderDash),S=e.getValueOrDefault(u.borderDashOffset,s.borderDashOffset),w=e.getValueOrDefault(c.fontColor,s.defaultFontColor),C=e.getValueOrDefault(c.fontSize,s.defaultFontSize),M=e.getValueOrDefault(c.fontStyle,s.defaultFontStyle),D=e.getValueOrDefault(c.fontFamily,s.defaultFontFamily),I=e.fontString(C,M,D),A=e.toRadians(i.labelRotation),P=Math.cos(A),T=i.longestLabelWidth*P;l.fillStyle=p;var F=[];if(g){if(o=!1,h&&(T/=2),(T+d.autoSkipPadding)*i.ticks.length>i.width-(i.paddingLeft+i.paddingRight)&&(o=1+Math.floor((T+d.autoSkipPadding)*i.ticks.length/(i.width-(i.paddingLeft+i.paddingRight)))),r&&i.ticks.length>r)for(;!o||i.ticks.length/(o||1)>r;)o||(o=1),o+=1;f||(o=!1)}var R="right"===n.position?i.left:i.right-y,_="right"===n.position?i.left+y:i.right,V="bottom"===n.position?i.top:i.bottom-y,L="bottom"===n.position?i.top+y:i.bottom;if(e.each(i.ticks,function(t,r){if(void 0!==t&&null!==t){var l=i.ticks.length===r+1,s=o>1&&r%o>0||r%o===0&&r+o>=i.ticks.length;if((!s||l)&&void 0!==t&&null!==t){var c,f;r===("undefined"!=typeof i.zeroLineIndex?i.zeroLineIndex:0)?(c=u.zeroLineWidth,f=u.zeroLineColor):(c=e.getValueAtIndexOrDefault(u.lineWidth,r),f=e.getValueAtIndexOrDefault(u.color,r));var p,m,b,v,x,w,C,M,D,I,P,T="middle";if(g){h||(T="top"===n.position?"bottom":"top"),P=h?"right":"center";var O=i.getPixelForTick(r)+e.aliasPixel(c);D=i.getPixelForTick(r,u.offsetGridLines)+d.labelOffset,I=h?i.top+12:"top"===n.position?i.bottom-y:i.top+y,p=b=x=C=O,m=V,v=L,w=a.top,M=a.bottom}else{"left"===n.position?d.mirror?(D=i.right+d.padding,P="left"):(D=i.right-d.padding,P="right"):d.mirror?(D=i.left-d.padding,P="right"):(D=i.left+d.padding,P="left");var B=i.getPixelForTick(r);B+=e.aliasPixel(c),I=i.getPixelForTick(r,u.offsetGridLines),p=R,b=_,x=a.left,C=a.right,m=v=w=M=B}F.push({tx1:p,ty1:m,tx2:b,ty2:v,x1:x,y1:w,x2:C,y2:M,labelX:D,labelY:I,glWidth:c,glColor:f,glBorderDash:k,glBorderDashOffset:S,rotation:-1*A,label:t,textBaseline:T,textAlign:P})}}}),e.each(F,function(t){if(u.display&&(l.save(),l.lineWidth=t.glWidth,l.strokeStyle=t.glColor,l.setLineDash&&(l.setLineDash(t.glBorderDash),l.lineDashOffset=t.glBorderDashOffset),l.beginPath(),u.drawTicks&&(l.moveTo(t.tx1,t.ty1),l.lineTo(t.tx2,t.ty2)),u.drawOnChartArea&&(l.moveTo(t.x1,t.y1),l.lineTo(t.x2,t.y2)),l.stroke(),l.restore()),d.display){l.save(),l.translate(t.labelX,t.labelY),l.rotate(t.rotation),l.font=x,l.textBaseline=t.textBaseline,l.textAlign=t.textAlign;var a=t.label;if(e.isArray(a))for(var i=0,n=0;ie;++e){var o=t[e];if(o&&o.hasValue()){var r=o.tooltipPosition();i.push(r.x),n.push(r.y)}}var l=0,s=0;for(e=0;e0){var o=t[0];o.xLabel?a=o.xLabel:n>0&&o.indexe;++e)g.push(i(d[e]));l.itemSort&&(g=g.sort(function(t,e){return l.itemSort(t,e,u)})),d.length>1&&n.each(g,function(t){h.push(l.callbacks.labelColor.call(r,t,c))}),n.extend(s,{title:r.getTitle(g,u),beforeBody:r.getBeforeBody(g,u),body:r.getBody(g,u),afterBody:r.getAfterBody(g,u),footer:r.getFooter(g,u),x:Math.round(f.x),y:Math.round(f.y),caretPadding:n.getValueOrDefault(f.padding,2),labelColors:h});var p=r.getTooltipSize(s);r.determineAlignment(p),n.extend(s,r.getBackgroundPoint(s,p))}else r._model.opacity=0;return t&&l.custom&&l.custom.call(r,s),r},getTooltipSize:function(t){var e=this._chart.ctx,a={height:2*t.yPadding,width:0},i=t.body,o=i.reduce(function(t,e){return t+e.before.length+e.lines.length+e.after.length},0);o+=t.beforeBody.length+t.afterBody.length;var r=t.title.length,l=t.footer.length,s=t.titleFontSize,d=t.bodyFontSize,u=t.footerFontSize;a.height+=r*s,a.height+=(r-1)*t.titleSpacing,a.height+=r?t.titleMarginBottom:0,a.height+=o*d,a.height+=o?(o-1)*t.bodySpacing:0,a.height+=l?t.footerMarginTop:0,a.height+=l*u,a.height+=l?(l-1)*t.footerSpacing:0;var c=0,h=function(t){a.width=Math.max(a.width,e.measureText(t).width+c)};return e.font=n.fontString(s,t._titleFontStyle,t._titleFontFamily),n.each(t.title,h),e.font=n.fontString(d,t._bodyFontStyle,t._bodyFontFamily),n.each(t.beforeBody.concat(t.afterBody),h),c=i.length>1?d+2:0,n.each(i,function(t){n.each(t.before,h),n.each(t.lines,h),n.each(t.after,h)}),c=0,e.font=n.fontString(u,t._footerFontStyle,t._footerFontFamily),n.each(t.footer,h),a.width+=2*t.xPadding,a},determineAlignment:function(t){var e=this,a=e._model,i=e._chart,n=e._chartInstance.chartArea;a.yi.height-t.height&&(a.yAlign="bottom");var o,r,l,s,d,u=(n.left+n.right)/2,c=(n.top+n.bottom)/2;"center"===a.yAlign?(o=function(t){return u>=t},r=function(t){return t>u}):(o=function(e){return e<=t.width/2},r=function(e){return e>=i.width-t.width/2}),l=function(e){return e+t.width>i.width},s=function(e){return e-t.width<0},d=function(t){return c>=t?"top":"bottom"},o(a.x)?(a.xAlign="left",l(a.x)&&(a.xAlign="center",a.yAlign=d(a.y))):r(a.x)&&(a.xAlign="right",s(a.x)&&(a.xAlign="center",a.yAlign=d(a.y)))},getBackgroundPoint:function(t,e){var a={x:t.x,y:t.y},i=t.caretSize,n=t.caretPadding,o=t.cornerRadius,r=t.xAlign,l=t.yAlign,s=i+n,d=o+n;return"right"===r?a.x-=e.width:"center"===r&&(a.x-=e.width/2),"top"===l?a.y+=s:"bottom"===l?a.y-=e.height+s:a.y-=e.height/2,"center"===l?"left"===r?a.x+=s:"right"===r&&(a.x-=s):"left"===r?a.x-=d:"right"===r&&(a.x+=d),a},drawCaret:function(t,e,a){var i,o,r,l,s,d,u=this._view,c=this._chart.ctx,h=u.caretSize,f=u.cornerRadius,g=u.xAlign,p=u.yAlign,m=t.x,b=t.y,v=e.width,x=e.height;"center"===p?("left"===g?(i=m,o=i-h,r=i):(i=m+v,o=i+h,r=i),s=b+x/2,l=s-h,d=s+h):("left"===g?(i=m+f,o=i+h,r=o+h):"right"===g?(i=m+v-f,o=i-h,r=o-h):(o=m+v/2,i=o-h,r=o+h),"top"===p?(l=b,s=l-h,d=l):(l=b+x,s=l+h,d=l));var y=n.color(u.backgroundColor);c.fillStyle=y.alpha(a*y.alpha()).rgbString(),c.beginPath(),c.moveTo(i,l),c.lineTo(o,s),c.lineTo(r,d),c.closePath(),c.fill()},drawTitle:function(t,e,a,i){var o=e.title;if(o.length){a.textAlign=e._titleAlign,a.textBaseline="top";var r=e.titleFontSize,l=e.titleSpacing,s=n.color(e.titleFontColor);a.fillStyle=s.alpha(i*s.alpha()).rgbString(),a.font=n.fontString(r,e._titleFontStyle,e._titleFontFamily);var d,u;for(d=0,u=o.length;u>d;++d)a.fillText(o[d],t.x,t.y),t.y+=r+l,d+1===o.length&&(t.y+=e.titleMarginBottom-l)}},drawBody:function(t,e,a,i){var o=e.bodyFontSize,r=e.bodySpacing,l=e.body;a.textAlign=e._bodyAlign,a.textBaseline="top";var s=n.color(e.bodyFontColor),d=s.alpha(i*s.alpha()).rgbString();a.fillStyle=d,a.font=n.fontString(o,e._bodyFontStyle,e._bodyFontFamily);var u=0,c=function(e){a.fillText(e,t.x+u,t.y),t.y+=o+r};n.each(e.beforeBody,c);var h=l.length>1;u=h?o+2:0,n.each(l,function(r,l){n.each(r.before,c),n.each(r.lines,function(r){h&&(a.fillStyle=n.color(e.legendColorBackground).alpha(i).rgbaString(),a.fillRect(t.x,t.y,o,o),a.strokeStyle=n.color(e.labelColors[l].borderColor).alpha(i).rgbaString(),a.strokeRect(t.x,t.y,o,o),a.fillStyle=n.color(e.labelColors[l].backgroundColor).alpha(i).rgbaString(),a.fillRect(t.x+1,t.y+1,o-2,o-2),a.fillStyle=d),c(r)}),n.each(r.after,c)}),u=0,n.each(e.afterBody,c),t.y-=r},drawFooter:function(t,e,a,i){var o=e.footer;if(o.length){t.y+=e.footerMarginTop,a.textAlign=e._footerAlign,a.textBaseline="top";var r=n.color(e.footerFontColor);a.fillStyle=r.alpha(i*r.alpha()).rgbString(),a.font=n.fontString(e.footerFontSize,e._footerFontStyle,e._footerFontFamily),n.each(o,function(i){a.fillText(i,t.x,t.y),t.y+=e.footerFontSize+e.footerSpacing})}},draw:function(){var t=this._chart.ctx,e=this._view;if(0!==e.opacity){var a=this.getTooltipSize(e),i={x:e.x,y:e.y},o=Math.abs(e.opacity<.001)?0:e.opacity;if(this._options.enabled){var r=n.color(e.backgroundColor);t.fillStyle=r.alpha(o*r.alpha()).rgbString(),n.drawRoundedRectangle(t,i.x,i.y,a.width,a.height,e.cornerRadius),t.fill(),this.drawCaret(i,a,o),i.x+=e.xPadding,i.y+=e.yPadding,this.drawTitle(i,e,t,o),this.drawBody(i,e,t,o),this.drawFooter(i,e,t,o)}}}})}},{}],35:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers,a=t.defaults.global;a.elements.arc={backgroundColor:a.defaultColor,borderColor:"#fff",borderWidth:2},t.elements.Arc=t.Element.extend({inLabelRange:function(t){var e=this._view;return e?Math.pow(t-e.x,2)s;)s+=2*Math.PI;for(;o>s;)o-=2*Math.PI;for(;l>o;)o+=2*Math.PI;var d=o>=l&&s>=o,u=r>=i.innerRadius&&r<=i.outerRadius;return d&&u}return!1},tooltipPosition:function(){var t=this._view,e=t.startAngle+(t.endAngle-t.startAngle)/2,a=(t.outerRadius-t.innerRadius)/2+t.innerRadius;return{x:t.x+Math.cos(e)*a,y:t.y+Math.sin(e)*a}},draw:function(){var t=this._chart.ctx,e=this._view,a=e.startAngle,i=e.endAngle;t.beginPath(),t.arc(e.x,e.y,e.outerRadius,a,i),t.arc(e.x,e.y,e.innerRadius,i,a,!0),t.closePath(),t.strokeStyle=e.borderColor,t.lineWidth=e.borderWidth,t.fillStyle=e.backgroundColor,t.fill(),t.lineJoin="bevel",e.borderWidth&&t.stroke()}})}},{}],36:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers,a=t.defaults.global;t.defaults.global.elements.line={tension:.4,backgroundColor:a.defaultColor,borderWidth:3,borderColor:a.defaultColor,borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",capBezierPoints:!0,fill:!0},t.elements.Line=t.Element.extend({draw:function(){function t(t,e){var a=e._view;e._view.steppedLine===!0?(s.lineTo(e._view.x,t._view.y),s.lineTo(e._view.x,e._view.y)):0===e._view.tension?s.lineTo(a.x,a.y):s.bezierCurveTo(t._view.controlPointNextX,t._view.controlPointNextY,a.controlPointPreviousX,a.controlPointPreviousY,a.x,a.y)}var i=this,n=i._view,o=n.spanGaps,r=n.scaleZero,l=i._loop,s=i._chart.ctx;s.save();var d=i._children.slice(),u=-1;l&&d.length&&d.push(d[0]);var c,h,f,g;if(d.length&&n.fill){for(s.beginPath(),c=0;cc;c++)e.lineTo.apply(e,t(c));e.fill(),a.borderWidth&&e.stroke()},height:function(){var t=this._view;return t.base-t.y},inRange:function(t,e){var a=this._view;return a?a.y=a.x-a.width/2&&t<=a.x+a.width/2&&e>=a.y&&e<=a.base:t>=a.x-a.width/2&&t<=a.x+a.width/2&&e>=a.base&&e<=a.y:!1},inLabelRange:function(t){var e=this._view;return e?t>=e.x-e.width/2&&t<=e.x+e.width/2:!1},tooltipPosition:function(){var t=this._view;return{x:t.x,y:t.y}}})}},{}],39:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers,a={position:"bottom"},i=t.Scale.extend({getLabels:function(){var t=this.chart.data;return(this.isHorizontal()?t.xLabels:t.yLabels)||t.labels},determineDataLimits:function(){var t=this,a=t.getLabels();t.minIndex=0,t.maxIndex=a.length-1;var i;void 0!==t.options.ticks.min&&(i=e.indexOf(a,t.options.ticks.min),t.minIndex=-1!==i?i:t.minIndex),void 0!==t.options.ticks.max&&(i=e.indexOf(a,t.options.ticks.max),t.maxIndex=-1!==i?i:t.maxIndex),t.min=a[t.minIndex],t.max=a[t.maxIndex]},buildTicks:function(){var t=this,e=t.getLabels();t.ticks=0===t.minIndex&&t.maxIndex===e.length-1?e:e.slice(t.minIndex,t.maxIndex+1)},getLabelForIndex:function(t){return this.ticks[t]},getPixelForValue:function(t,e,a,i){var n=this,o=Math.max(n.maxIndex+1-n.minIndex-(n.options.gridLines.offsetGridLines?0:1),1);if(void 0!==t&&isNaN(e)){var r=n.getLabels(),l=r.indexOf(t);e=-1!==l?l:e}if(n.isHorizontal()){var s=n.width-(n.paddingLeft+n.paddingRight),d=s/o,u=d*(e-n.minIndex)+n.paddingLeft;return(n.options.gridLines.offsetGridLines&&i||n.maxIndex===n.minIndex&&i)&&(u+=d/2),n.left+Math.round(u)}var c=n.height-(n.paddingTop+n.paddingBottom),h=c/o,f=h*(e-n.minIndex)+n.paddingTop;return n.options.gridLines.offsetGridLines&&i&&(f+=h/2),n.top+Math.round(f)},getPixelForTick:function(t,e){return this.getPixelForValue(this.ticks[t],t+this.minIndex,null,e)},getValueForPixel:function(t){var e,a=this,i=Math.max(a.ticks.length-(a.options.gridLines.offsetGridLines?0:1),1),n=a.isHorizontal(),o=n?a.width-(a.paddingLeft+a.paddingRight):a.height-(a.paddingTop+a.paddingBottom),r=o/i;return t-=n?a.left:a.top,a.options.gridLines.offsetGridLines&&(t-=r/2),t-=n?a.paddingLeft:a.paddingTop,e=0>=t?0:Math.round(t/r)},getBasePixel:function(){return this.bottom}});t.scaleService.registerScaleType("category",i,a)}},{}],40:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers,a={position:"left",ticks:{callback:function(t,a,i){var n=i.length>3?i[2]-i[1]:i[1]-i[0];Math.abs(n)>1&&t!==Math.floor(t)&&(n=t-Math.floor(t));var o=e.log10(Math.abs(n)),r="";if(0!==t){var l=-1*Math.floor(o);l=Math.max(Math.min(l,20),0),r=t.toFixed(l)}else r="0";return r}}},i=t.LinearScaleBase.extend({determineDataLimits:function(){function t(t){return l?t.xAxisID===a.id:t.yAxisID===a.id}var a=this,i=a.options,n=a.chart,o=n.data,r=o.datasets,l=a.isHorizontal();if(a.min=null,a.max=null,i.stacked){var s={},d=!1,u=!1;e.each(r,function(o,r){var l=n.getDatasetMeta(r);void 0===s[l.type]&&(s[l.type]={positiveValues:[],negativeValues:[]});var c=s[l.type].positiveValues,h=s[l.type].negativeValues;n.isDatasetVisible(r)&&t(l)&&e.each(o.data,function(t,e){var n=+a.getRightValue(t);isNaN(n)||l.data[e].hidden||(c[e]=c[e]||0,h[e]=h[e]||0,i.relativePoints?c[e]=100:0>n?(u=!0,h[e]+=n):(d=!0,c[e]+=n))})}),e.each(s,function(t){var i=t.positiveValues.concat(t.negativeValues),n=e.min(i),o=e.max(i);a.min=null===a.min?n:Math.min(a.min,n),a.max=null===a.max?o:Math.max(a.max,o)})}else e.each(r,function(i,o){var r=n.getDatasetMeta(o);n.isDatasetVisible(o)&&t(r)&&e.each(i.data,function(t,e){var i=+a.getRightValue(t);isNaN(i)||r.data[e].hidden||(null===a.min?a.min=i:ia.max&&(a.max=i))})});this.handleTickRangeOptions()},getTickLimit:function(){var a,i=this,n=i.options.ticks;if(i.isHorizontal())a=Math.min(n.maxTicksLimit?n.maxTicksLimit:11,Math.ceil(i.width/50));else{var o=e.getValueOrDefault(n.fontSize,t.defaults.global.defaultFontSize);a=Math.min(n.maxTicksLimit?n.maxTicksLimit:11,Math.ceil(i.height/(2*o)))}return a},handleDirectionalChanges:function(){this.isHorizontal()||this.ticks.reverse()},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},getPixelForValue:function(t){var e,a,i=this,n=i.paddingLeft,o=i.paddingBottom,r=i.start,l=+i.getRightValue(t),s=i.end-r;return i.isHorizontal()?(a=i.width-(n+i.paddingRight),e=i.left+a/s*(l-r),Math.round(e+n)):(a=i.height-(i.paddingTop+o),e=i.bottom-o-a/s*(l-r),Math.round(e))},getValueForPixel:function(t){var e=this,a=e.isHorizontal(),i=e.paddingLeft,n=e.paddingBottom,o=a?e.width-(i+e.paddingRight):e.height-(e.paddingTop+n),r=(a?t-e.left-i:e.bottom-n-t)/o;return e.start+(e.end-e.start)*r},getPixelForTick:function(t){return this.getPixelForValue(this.ticksAsNumbers[t])}});t.scaleService.registerScaleType("linear",i,a)}},{}],41:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers,a=e.noop;t.LinearScaleBase=t.Scale.extend({handleTickRangeOptions:function(){var t=this,a=t.options,i=a.ticks;if(i.beginAtZero){var n=e.sign(t.min),o=e.sign(t.max);0>n&&0>o?t.max=0:n>0&&o>0&&(t.min=0)}void 0!==i.min?t.min=i.min:void 0!==i.suggestedMin&&(t.min=Math.min(t.min,i.suggestedMin)),void 0!==i.max?t.max=i.max:void 0!==i.suggestedMax&&(t.max=Math.max(t.max,i.suggestedMax)),t.min===t.max&&(t.max++,i.beginAtZero||t.min--)},getTickLimit:a,handleDirectionalChanges:a,buildTicks:function(){var t=this,a=t.options,i=t.ticks=[],n=a.ticks,o=e.getValueOrDefault,r=t.getTickLimit();r=Math.max(2,r);var l,s=n.fixedStepSize&&n.fixedStepSize>0||n.stepSize&&n.stepSize>0;if(s)l=o(n.fixedStepSize,n.stepSize);else{var d=e.niceNum(t.max-t.min,!1);l=e.niceNum(d/(r-1),!0)}var u=Math.floor(t.min/l)*l,c=Math.ceil(t.max/l)*l,h=(c-u)/l;h=e.almostEquals(h,Math.round(h),l/1e3)?Math.round(h):Math.ceil(h),i.push(void 0!==n.min?n.min:u);for(var f=1;h>f;++f)i.push(u+f*l);i.push(void 0!==n.max?n.max:c),t.handleDirectionalChanges(),t.max=e.max(i),t.min=e.min(i),n.reverse?(i.reverse(),t.start=t.max,t.end=t.min):(t.start=t.min,t.end=t.max)},convertTicksToLabels:function(){var e=this;e.ticksAsNumbers=e.ticks.slice(),e.zeroLineIndex=e.ticks.indexOf(0),t.Scale.prototype.convertTicksToLabels.call(e)}})}},{}],42:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers,a={position:"left",ticks:{callback:function(t,a,i){var n=t/Math.pow(10,Math.floor(e.log10(t)));return 0===t?"0":1===n||2===n||5===n||0===a||a===i.length-1?t.toExponential():""}}},i=t.Scale.extend({determineDataLimits:function(){function t(t){return d?t.xAxisID===a.id:t.yAxisID===a.id}var a=this,i=a.options,n=i.ticks,o=a.chart,r=o.data,l=r.datasets,s=e.getValueOrDefault,d=a.isHorizontal();if(a.min=null,a.max=null,a.minNotZero=null,i.stacked){var u={};e.each(l,function(n,r){var l=o.getDatasetMeta(r);o.isDatasetVisible(r)&&t(l)&&(void 0===u[l.type]&&(u[l.type]=[]),e.each(n.data,function(t,e){var n=u[l.type],o=+a.getRightValue(t);isNaN(o)||l.data[e].hidden||(n[e]=n[e]||0,i.relativePoints?n[e]=100:n[e]+=o)}))}),e.each(u,function(t){var i=e.min(t),n=e.max(t);a.min=null===a.min?i:Math.min(a.min,i),a.max=null===a.max?n:Math.max(a.max,n)})}else e.each(l,function(i,n){var r=o.getDatasetMeta(n);o.isDatasetVisible(n)&&t(r)&&e.each(i.data,function(t,e){var i=+a.getRightValue(t);isNaN(i)||r.data[e].hidden||(null===a.min?a.min=i:ia.max&&(a.max=i),0!==i&&(null===a.minNotZero||it.max&&(t.max=i))})}}),t.handleTickRangeOptions()},getTickLimit:function(){var t=this.options.ticks,i=e.getValueOrDefault(t.fontSize,a.defaultFontSize);return Math.min(t.maxTicksLimit?t.maxTicksLimit:11,Math.ceil(this.drawingArea/(1.5*i)))},convertTicksToLabels:function(){var e=this;t.LinearScaleBase.prototype.convertTicksToLabels.call(e),e.pointLabels=e.chart.data.labels.map(e.options.pointLabels.callback,e)},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},fit:function(){var t,i,n,o,r,l,s,d,u,c,h,f,g=this.options.pointLabels,p=e.getValueOrDefault(g.fontSize,a.defaultFontSize),m=e.getValueOrDefault(g.fontStyle,a.defaultFontStyle),b=e.getValueOrDefault(g.fontFamily,a.defaultFontFamily),v=e.fontString(p,m,b),x=e.min([this.height/2-p-5,this.width/2]),y=this.width,k=0;for(this.ctx.font=v,i=0;iy&&(y=t.x+o,r=i),t.x-ow?t.x+n>y&&(y=t.x+n,r=i):t.x-ne&&0>a?a:e>0&&a>0?e:0)},draw:function(){var t=this,i=t.options,n=i.gridLines,o=i.ticks,r=i.angleLines,l=i.pointLabels,s=e.getValueOrDefault;if(i.display){var d=t.ctx,u=s(o.fontSize,a.defaultFontSize),c=s(o.fontStyle,a.defaultFontStyle),h=s(o.fontFamily,a.defaultFontFamily),f=e.fontString(u,c,h);if(e.each(t.ticks,function(r,l){if(l>0||i.reverse){var c=t.getDistanceFromCenterForValue(t.ticksAsNumbers[l]),h=t.yCenter-c;if(n.display&&0!==l)if(d.strokeStyle=e.getValueAtIndexOrDefault(n.color,l-1),d.lineWidth=e.getValueAtIndexOrDefault(n.lineWidth,l-1),i.lineArc)d.beginPath(),d.arc(t.xCenter,t.yCenter,c,0,2*Math.PI),d.closePath(),d.stroke();else{d.beginPath();for(var g=0;g=0;x--){if(r.display){var y=t.getPointPosition(x,g);d.beginPath(),d.moveTo(t.xCenter,t.yCenter),d.lineTo(y.x,y.y),d.stroke(),d.closePath()}var k=t.getPointPosition(x,g+5),S=s(l.fontColor,a.defaultFontColor);d.font=v,d.fillStyle=S;var w=t.pointLabels,C=this.getIndexAngle(x)+Math.PI/2,M=360*C/(2*Math.PI)%360;0===M||180===M?d.textAlign="center":180>M?d.textAlign="left":d.textAlign="right",90===M||270===M?d.textBaseline="middle":M>270||90>M?d.textBaseline="bottom":d.textBaseline="top",d.fillText(w[x]?w[x]:"",k.x,k.y)}}}}});t.scaleService.registerScaleType("radialLinear",n,i)}},{}],44:[function(t,e,a){"use strict";var i=t(1);i="function"==typeof i?i:window.moment,e.exports=function(t){var e=t.helpers,a={units:[{name:"millisecond",steps:[1,2,5,10,20,50,100,250,500]},{name:"second",steps:[1,2,5,10,30]},{name:"minute",steps:[1,2,5,10,30]},{name:"hour",steps:[1,2,3,6,12]},{name:"day",steps:[1,2,5]},{name:"week",maxStep:4},{name:"month",maxStep:3},{name:"quarter",maxStep:4},{name:"year",maxStep:!1}]},n={position:"bottom",time:{parser:!1,format:!1,unit:!1,round:!1,displayFormat:!1,isoWeekday:!1,displayFormats:{millisecond:"h:mm:ss.SSS a",second:"h:mm:ss a",minute:"h:mm:ss a",hour:"MMM D, hA",day:"ll",week:"ll",month:"MMM YYYY",quarter:"[Q]Q - YYYY",year:"YYYY"}},ticks:{autoSkip:!1}},o=t.Scale.extend({initialize:function(){if(!i)throw new Error("Chart.js - Moment.js could not be found! You must include it before Chart.js to use the time scale. Download at https://momentjs.com");t.Scale.prototype.initialize.call(this)},getLabelMoment:function(t,e){return"undefined"!=typeof this.labelMoments[t]?this.labelMoments[t][e]:null},getMomentStartOf:function(t){var e=this;return"week"===e.options.time.unit&&e.options.time.isoWeekday!==!1?t.clone().startOf("isoWeek").isoWeekday(e.options.time.isoWeekday):t.clone().startOf(e.tickUnit)},determineDataLimits:function(){var t=this;t.labelMoments=[];var a=[];t.chart.data.labels&&t.chart.data.labels.length>0?(e.each(t.chart.data.labels,function(e){var i=t.parseTime(e);i.isValid()&&(t.options.time.round&&i.startOf(t.options.time.round),a.push(i))},t),t.firstTick=i.min.call(t,a),t.lastTick=i.max.call(t,a)):(t.firstTick=null,t.lastTick=null),e.each(t.chart.data.datasets,function(n,o){var r=[],l=t.chart.isDatasetVisible(o);"object"==typeof n.data[0]&&null!==n.data[0]?e.each(n.data,function(e){var a=t.parseTime(t.getRightValue(e));a.isValid()&&(t.options.time.round&&a.startOf(t.options.time.round),r.push(a),l&&(t.firstTick=null!==t.firstTick?i.min(t.firstTick,a):a,t.lastTick=null!==t.lastTick?i.max(t.lastTick,a):a))},t):r=a,t.labelMoments.push(r)},t),t.options.time.min&&(t.firstTick=t.parseTime(t.options.time.min)),t.options.time.max&&(t.lastTick=t.parseTime(t.options.time.max)),t.firstTick=(t.firstTick||i()).clone(),t.lastTick=(t.lastTick||i()).clone()},buildTicks:function(){var i=this;i.ctx.save();var n=e.getValueOrDefault(i.options.ticks.fontSize,t.defaults.global.defaultFontSize),o=e.getValueOrDefault(i.options.ticks.fontStyle,t.defaults.global.defaultFontStyle),r=e.getValueOrDefault(i.options.ticks.fontFamily,t.defaults.global.defaultFontFamily),l=e.fontString(n,o,r);if(i.ctx.font=l,i.ticks=[],i.unitScale=1,i.scaleSizeInUnits=0,i.options.time.unit)i.tickUnit=i.options.time.unit||"day",i.displayFormat=i.options.time.displayFormats[i.tickUnit],i.scaleSizeInUnits=i.lastTick.diff(i.firstTick,i.tickUnit,!0),i.unitScale=e.getValueOrDefault(i.options.time.unitStepSize,1);else{var s=i.isHorizontal()?i.width-(i.paddingLeft+i.paddingRight):i.height-(i.paddingTop+i.paddingBottom),d=i.tickFormatFunction(i.firstTick,0,[]),u=i.ctx.measureText(d).width,c=Math.cos(e.toRadians(i.options.ticks.maxRotation)),h=Math.sin(e.toRadians(i.options.ticks.maxRotation));u=u*c+n*h;var f=s/u;i.tickUnit="millisecond",i.scaleSizeInUnits=i.lastTick.diff(i.firstTick,i.tickUnit,!0),i.displayFormat=i.options.time.displayFormats[i.tickUnit];for(var g=0,p=a.units[g];g=Math.ceil(i.scaleSizeInUnits/f)){i.unitScale=e.getValueOrDefault(i.options.time.unitStepSize,p.steps[m]);break}break}if(p.maxStep===!1||Math.ceil(i.scaleSizeInUnits/f)k?i.lastTick=i.getMomentStartOf(i.lastTick.add(1,i.tickUnit)):k>=0&&(i.lastTick=y),i.scaleSizeInUnits=i.lastTick.diff(i.firstTick,i.tickUnit,!0)}i.options.time.displayFormat&&(i.displayFormat=i.options.time.displayFormat),i.ticks.push(i.firstTick.clone());for(var S=1;S<=i.scaleSizeInUnits;++S){var w=x.clone().add(S,i.tickUnit);if(i.options.time.max&&w.diff(i.lastTick,i.tickUnit,!0)>=0)break;S%i.unitScale===0&&i.ticks.push(w)}var C=i.ticks[i.ticks.length-1].diff(i.lastTick,i.tickUnit);(0!==C||0===i.scaleSizeInUnits)&&(i.options.time.max?(i.ticks.push(i.lastTick.clone()),i.scaleSizeInUnits=i.lastTick.diff(i.ticks[0],i.tickUnit,!0)):(i.ticks.push(i.lastTick.clone()),i.scaleSizeInUnits=i.lastTick.diff(i.firstTick,i.tickUnit,!0))),i.ctx.restore()},getLabelForIndex:function(t,e){var a=this,i=a.chart.data.labels&&ttotal:" + v.totalCPU; + v.memory = "used:" + v.usedMemory + "
    total:" + v.totalMemory; + v.hardDisk = "used:" + v.usedDisk + "
    total:" + v.totalDisk; + }); + $('#Datacenter_table').bootstrapTable({ + data: jsonobj.datacenters + }); + $('#Datacenter_table').bootstrapTable('refresh'); + hideFirstCol(); + }, + error: function (xhr, ajaxOptions, thrownError) { + bootbox.alert("Error on getting site data : " + xhr.responseText); + } + }); +} +function loadNetWorkData() { + var requestUrl = app_url+"/openoapi/resmgr/v1/networks"; + $.ajax({ + type: "GET", + url: requestUrl, + contentType: "application/json", + success: function (jsonobj) { + $('#network_table').bootstrapTable({ + data: jsonobj.networks + }); + }, + error: function (xhr, ajaxOptions, thrownError) { + bootbox.alert("Error on getting site data : " + xhr.responseText); + } + }); +} +function loadPortData() { + var requestUrl = app_url+"/openoapi/resmgr/v1/ports"; + $.ajax({ + type: "GET", + url: requestUrl, + contentType: "application/json", + success: function (jsonobj) { + $('#port_table').bootstrapTable({ + data: jsonobj.ports + }); + }, + error: function (xhr, ajaxOptions, thrownError) { + bootbox.alert("Error on getting site data : " + xhr.responseText); + } + }); +} +function loadHostData() { + var requestUrl = app_url+"/openoapi/resmgr/v1/hosts"; + $.ajax({ + type: "GET", + url: requestUrl, + contentType: "application/json", + success: function (jsonobj) { + $('#host_table').bootstrapTable({ + data: jsonobj.hosts + }); + }, + error: function (xhr, ajaxOptions, thrownError) { + bootbox.alert("Error on getting site data : " + xhr.responseText); + } + }); +} + + +function fillCountryData() { + + var requestUrl = app_url+"/openoapi/resmgr/v1/locations/country"; + var htmlContent = ""; + $.ajax({ + type: "GET", + url: requestUrl, + contentType: "application/json", + success: function (jsonobj) { + var str = jsonobj.data.replace('[', '').replace(']', '').split(',') + $.each(str, function (n, v) { + htmlContent += ""; + $("#country").html(htmlContent); + + }); + }, + error: function (xhr, ajaxOptions, thrownError) { + bootbox.alert("Error on getting country data : " + xhr.responseText); + } + }); +} + +function fillVimNameData() { + + var requestUrl = app_url+"/openoapi/resmgr/v1/locations/cloudservice"; + var htmlContent = ""; + $.ajax({ + type: "GET", + url: requestUrl, + contentType: "application/json", + success: function (jsonobj) { + var str = jsonobj.data.replace('[', '').replace(']', '').split(',') + $.each(str, function (n, v) { + htmlContent += ""; + $("#vimName").html(htmlContent); + + }); + }, + error: function (xhr, ajaxOptions, thrownError) { + bootbox.alert("Error on getting country data : " + xhr.responseText); + } + }); +} + + +$(function () { + $("#vmAppForm").validate({ + rules: { + country: "required", + location: "required", + lantitude: "required", + longitude: "required" + } + }); + + $('.close,.button-previous').click(function () { + $('#vmAppDialog').removeClass('in').css('display', 'none'); + }); + $('.detail-top ul li').click(function () { + $(this).addClass('current').siblings().removeClass('current'); + }); + $('.basic').click(function () { + $('#flavorTab').css('display', 'none'); + }); + + $('.table tbody tr').click( + function () { + $(this).addClass('openoTable_row_selected').siblings() + .removeClass('openoTable_row_selected'); + }); + $('.table tr:odd').addClass('active'); + $('#false').click(function () { + $('#vmAppForm')[0].reset(); + $('#vmAppDialog').addClass('in').css({ + 'display': 'block' + }); + }); + $('.close,.button-previous').click(function () { + $('#vmAppDialog').removeClass('in').css('display', 'none'); + }); + + $.fn.serializeObject = function () { + var o = {}; + var a = this.serializeArray(); + $.each(a, function () { + if (o[this.name] !== undefined) { + if (!o[this.name].push) { + o[this.name] = [o[this.name]]; + } + o[this.name].push(this.value || ''); + } else { + o[this.name] = this.value || ''; + } + }); + return o; + }; + $('#createDatacenter') + .click( + function () { + + + var formData = JSON.stringify($("#vmAppForm").serializeObject()); + var jsonobj = JSON.parse(formData); + var requestUrl = app_url+"/openoapi/resmgr/v1/datacenters"; + $.ajax({ + type: "POST", + url: requestUrl, + contentType: "application/json", + dataType: "json", + data: formData, + success: function (jsonResp) { + loadDatacenterData(); + bootbox.alert(jsonResp.msg); + $('#vmAppDialog').removeClass('in').css({ + 'display': 'none' + }); + }, + error: function (xhr, ajaxOptions, thrownError) { + bootbox.alert("Error on page : " + xhr.responseText); + } + }); + }); + + $('#country').change(function () { + var country = $(this).children('option:selected').val(); + var requestUrl = app_url+"/openoapi/resmgr/v1/locations/locationbycountry?country=" + country; + + var htmlContent = ""; + $.ajax({ + type: "GET", + url: requestUrl, + contentType: "application/json", + success: function (jsonobj) { + $.each(jsonobj.data, function (n, v) { + htmlContent += ""; + $("#location").html(htmlContent); + + }); + + }, + error: function (xhr, ajaxOptions, thrownError) { + bootbox.alert("Error on getting location data : " + xhr.responseText); + } + }); + + }) + + +}) \ No newline at end of file diff --git a/resmgr/src/main/webapp/resmgr-nfv/js/gconf.js b/resmgr/src/main/webapp/resmgr-nfv/js/gconf.js new file mode 100644 index 00000000..abd1195c --- /dev/null +++ b/resmgr/src/main/webapp/resmgr-nfv/js/gconf.js @@ -0,0 +1,31 @@ +/* Copyright 2016-2017, Huawei Technologies Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +var app_url; +function getUrl(){ + var url=""; + $.ajax({ + url:"./conf/globalconfig.json", + async:false, + dataType:"json", + success:function(jsonData) { + url = jsonData.url + ":" + jsonData.port +"/"+jsonData.context_name; + console.log("url = " + url); + } + }); + return url; +} +app_url = getUrl(); diff --git a/resmgr/src/main/webapp/resmgr-nfv/js/jquery-1.11.2.min.js b/resmgr/src/main/webapp/resmgr-nfv/js/jquery-1.11.2.min.js new file mode 100644 index 00000000..e6a051d0 --- /dev/null +++ b/resmgr/src/main/webapp/resmgr-nfv/js/jquery-1.11.2.min.js @@ -0,0 +1,4 @@ +/*! jQuery v1.11.2 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */ +!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l="1.11.2",m=function(a,b){return new m.fn.init(a,b)},n=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,o=/^-ms-/,p=/-([\da-z])/gi,q=function(a,b){return b.toUpperCase()};m.fn=m.prototype={jquery:l,constructor:m,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&&m.isArray(a)?a:[]):f=a&&m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!m.isArray(a)&&a-parseFloat(a)+1>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&m.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(r(Object(a))?m.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||m.guid++,e):void 0},now:function(){return+new Date},support:k}),m.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function r(a){var b=a.length,c=m.type(a);return"function"===c||m.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var s=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=hb(),z=hb(),A=hb(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N=M.replace("w","w#"),O="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+N+"))|)"+L+"*\\]",P=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+O+")*)|.*)\\)|)",Q=new RegExp(L+"+","g"),R=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),S=new RegExp("^"+L+"*,"+L+"*"),T=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),U=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),V=new RegExp(P),W=new RegExp("^"+N+"$"),X={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+O),PSEUDO:new RegExp("^"+P),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},eb=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(fb){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function gb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],k=b.nodeType,"string"!=typeof a||!a||1!==k&&9!==k&&11!==k)return d;if(!e&&p){if(11!==k&&(f=_.exec(a)))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return H.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName)return H.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=1!==k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+rb(o[l]);w=ab.test(a)&&pb(b.parentNode)||b,x=o.join(",")}if(x)try{return H.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function hb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ib(a){return a[u]=!0,a}function jb(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function kb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function lb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function nb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function ob(a){return ib(function(b){return b=+b,ib(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function pb(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=gb.support={},f=gb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=gb.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=g.documentElement,e=g.defaultView,e&&e!==e.top&&(e.addEventListener?e.addEventListener("unload",eb,!1):e.attachEvent&&e.attachEvent("onunload",eb)),p=!f(g),c.attributes=jb(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=jb(function(a){return a.appendChild(g.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(g.getElementsByClassName),c.getById=jb(function(a){return o.appendChild(a).id=u,!g.getElementsByName||!g.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(g.querySelectorAll))&&(jb(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),jb(function(a){var b=g.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&jb(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",P)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?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)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===g||a.ownerDocument===v&&t(v,a)?-1:b===g||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===g?-1:b===g?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return lb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?lb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},g):n},gb.matches=function(a,b){return gb(a,null,null,b)},gb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return gb(b,n,null,[a]).length>0},gb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},gb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},gb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},gb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=gb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=gb.selectors={cacheLength:50,createPseudo:ib,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===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]||gb.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]&&gb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(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){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=gb.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.replace(Q," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},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){while(p){l=b;while(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){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||gb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ib(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ib(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?ib(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ib(function(a){return function(b){return gb(a,b).length>0}}),contains:ib(function(a){return a=a.replace(cb,db),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ib(function(a){return W.test(a||"")||gb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("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===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.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.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.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"))||"text"===b.toLowerCase())},first:ob(function(){return[0]}),last:ob(function(a,b){return[b-1]}),eq:ob(function(a,b,c){return[0>c?c+b:c]}),even:ob(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:ob(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:ob(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:ob(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function sb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function tb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ub(a,b,c){for(var d=0,e=b.length;e>d;d++)gb(a,b[d],c);return c}function vb(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function wb(a,b,c,d,e,f){return d&&!d[u]&&(d=wb(d)),e&&!e[u]&&(e=wb(e,f)),ib(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ub(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:vb(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=vb(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=vb(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function xb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=sb(function(a){return a===b},h,!0),l=sb(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[sb(tb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return wb(i>1&&tb(m),i>1&&rb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&xb(a.slice(i,e)),f>e&&xb(a=a.slice(e)),f>e&&rb(a))}m.push(c)}return tb(m)}function yb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=F.call(i));s=vb(s)}H.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&gb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?ib(f):f}return h=gb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=xb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,yb(e,d)),f.selector=a}return f},i=gb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&pb(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&rb(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&pb(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=jb(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),jb(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||kb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&jb(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||kb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),jb(function(a){return null==a.getAttribute("disabled")})||kb(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),gb}(a);m.find=s,m.expr=s.selectors,m.expr[":"]=m.expr.pseudos,m.unique=s.uniqueSort,m.text=s.getText,m.isXMLDoc=s.isXML,m.contains=s.contains;var t=m.expr.match.needsContext,u=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/^.[^:#\[\.,]*$/;function w(a,b,c){if(m.isFunction(b))return m.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return m.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(v.test(b))return m.filter(b,a,c);b=m.filter(b,a)}return m.grep(a,function(a){return m.inArray(a,b)>=0!==c})}m.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?m.find.matchesSelector(d,a)?[d]:[]:m.find.matches(a,m.grep(b,function(a){return 1===a.nodeType}))},m.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(m(a).filter(function(){for(b=0;e>b;b++)if(m.contains(d[b],this))return!0}));for(b=0;e>b;b++)m.find(a,d[b],c);return c=this.pushStack(e>1?m.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(w(this,a||[],!1))},not:function(a){return this.pushStack(w(this,a||[],!0))},is:function(a){return!!w(this,"string"==typeof a&&t.test(a)?m(a):a||[],!1).length}});var x,y=a.document,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=m.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||x).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof m?b[0]:b,m.merge(this,m.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:y,!0)),u.test(c[1])&&m.isPlainObject(b))for(c in b)m.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=y.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return x.find(a);this.length=1,this[0]=d}return this.context=y,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):m.isFunction(a)?"undefined"!=typeof x.ready?x.ready(a):a(m):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),m.makeArray(a,this))};A.prototype=m.fn,x=m(y);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};m.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!m(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),m.fn.extend({has:function(a){var b,c=m(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(m.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=t.test(a)||"string"!=typeof a?m(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&m.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?m.unique(f):f)},index:function(a){return a?"string"==typeof a?m.inArray(this[0],m(a)):m.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(m.unique(m.merge(this.get(),m(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}m.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return m.dir(a,"parentNode")},parentsUntil:function(a,b,c){return m.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return m.dir(a,"nextSibling")},prevAll:function(a){return m.dir(a,"previousSibling")},nextUntil:function(a,b,c){return m.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return m.dir(a,"previousSibling",c)},siblings:function(a){return m.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return m.sibling(a.firstChild)},contents:function(a){return m.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:m.merge([],a.childNodes)}},function(a,b){m.fn[a]=function(c,d){var e=m.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=m.filter(d,e)),this.length>1&&(C[a]||(e=m.unique(e)),B.test(a)&&(e=e.reverse())),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return m.each(a.match(E)||[],function(a,c){b[c]=!0}),b}m.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):m.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){m.each(b,function(b,c){var d=m.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&m.each(arguments,function(a,c){var d;while((d=m.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?m.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},m.extend({Deferred:function(a){var b=[["resolve","done",m.Callbacks("once memory"),"resolved"],["reject","fail",m.Callbacks("once memory"),"rejected"],["notify","progress",m.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return m.Deferred(function(c){m.each(b,function(b,f){var g=m.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&m.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?m.extend(a,d):d}},e={};return d.pipe=d.then,m.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=0,c=d.call(arguments),e=c.length,f=1!==e||a&&m.isFunction(a.promise)?e:0,g=1===f?a:m.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&m.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;m.fn.ready=function(a){return m.ready.promise().done(a),this},m.extend({isReady:!1,readyWait:1,holdReady:function(a){a?m.readyWait++:m.ready(!0)},ready:function(a){if(a===!0?!--m.readyWait:!m.isReady){if(!y.body)return setTimeout(m.ready);m.isReady=!0,a!==!0&&--m.readyWait>0||(H.resolveWith(y,[m]),m.fn.triggerHandler&&(m(y).triggerHandler("ready"),m(y).off("ready")))}}});function I(){y.addEventListener?(y.removeEventListener("DOMContentLoaded",J,!1),a.removeEventListener("load",J,!1)):(y.detachEvent("onreadystatechange",J),a.detachEvent("onload",J))}function J(){(y.addEventListener||"load"===event.type||"complete"===y.readyState)&&(I(),m.ready())}m.ready.promise=function(b){if(!H)if(H=m.Deferred(),"complete"===y.readyState)setTimeout(m.ready);else if(y.addEventListener)y.addEventListener("DOMContentLoaded",J,!1),a.addEventListener("load",J,!1);else{y.attachEvent("onreadystatechange",J),a.attachEvent("onload",J);var c=!1;try{c=null==a.frameElement&&y.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!m.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}I(),m.ready()}}()}return H.promise(b)};var K="undefined",L;for(L in m(k))break;k.ownLast="0"!==L,k.inlineBlockNeedsLayout=!1,m(function(){var a,b,c,d;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",k.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(d))}),function(){var a=y.createElement("div");if(null==k.deleteExpando){k.deleteExpando=!0;try{delete a.test}catch(b){k.deleteExpando=!1}}a=null}(),m.acceptData=function(a){var b=m.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var M=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,N=/([A-Z])/g;function O(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(N,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:M.test(c)?m.parseJSON(c):c}catch(e){}m.data(a,b,c)}else c=void 0}return c}function P(a){var b;for(b in a)if(("data"!==b||!m.isEmptyObject(a[b]))&&"toJSON"!==b)return!1; +return!0}function Q(a,b,d,e){if(m.acceptData(a)){var f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=m.extend(j[k],b):j[k].data=m.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[m.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[m.camelCase(b)])):f=g,f}}function R(a,b,c){if(m.acceptData(a)){var d,e,f=a.nodeType,g=f?m.cache:a,h=f?a[m.expando]:m.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){m.isArray(b)?b=b.concat(m.map(b,m.camelCase)):b in d?b=[b]:(b=m.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!P(d):!m.isEmptyObject(d))return}(c||(delete g[h].data,P(g[h])))&&(f?m.cleanData([a],!0):k.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}m.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?m.cache[a[m.expando]]:a[m.expando],!!a&&!P(a)},data:function(a,b,c){return Q(a,b,c)},removeData:function(a,b){return R(a,b)},_data:function(a,b,c){return Q(a,b,c,!0)},_removeData:function(a,b){return R(a,b,!0)}}),m.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=m.data(f),1===f.nodeType&&!m._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=m.camelCase(d.slice(5)),O(f,d,e[d])));m._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){m.data(this,a)}):arguments.length>1?this.each(function(){m.data(this,a,b)}):f?O(f,a,m.data(f,a)):void 0},removeData:function(a){return this.each(function(){m.removeData(this,a)})}}),m.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=m._data(a,b),c&&(!d||m.isArray(c)?d=m._data(a,b,m.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=m.queue(a,b),d=c.length,e=c.shift(),f=m._queueHooks(a,b),g=function(){m.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),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 m._data(a,c)||m._data(a,c,{empty:m.Callbacks("once memory").add(function(){m._removeData(a,b+"queue"),m._removeData(a,c)})})}}),m.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthh;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement("input"),b=y.createElement("div"),c=y.createDocumentFragment();if(b.innerHTML="
    a",k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName("tbody").length,k.htmlSerialize=!!b.getElementsByTagName("link").length,k.html5Clone="<:nav>"!==y.createElement("nav").cloneNode(!0).outerHTML,a.type="checkbox",a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML="",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML="",k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,k.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){k.noCloneEvent=!1}),b.cloneNode(!0).click()),null==k.deleteExpando){k.deleteExpando=!0;try{delete b.test}catch(d){k.deleteExpando=!1}}}(),function(){var b,c,d=y.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(k[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),k[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var X=/^(?:input|select|textarea)$/i,Y=/^key/,Z=/^(?:mouse|pointer|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=/^([^.]*)(?:\.(.+)|)$/;function ab(){return!0}function bb(){return!1}function cb(){try{return y.activeElement}catch(a){}}m.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=m.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof m===K||a&&m.event.triggered===a.type?void 0:m.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(E)||[""],h=b.length;while(h--)f=_.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=m.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=m.event.special[o]||{},l=m.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&m.expr.match.needsContext.test(e),namespace:p.join(".")},i),(n=g[o])||(n=g[o]=[],n.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?n.splice(n.delegateCount++,0,l):n.push(l),m.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m.hasData(a)&&m._data(a);if(r&&(k=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=_.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=m.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,n=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=n.length;while(f--)g=n[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(n.splice(f,1),g.selector&&n.delegateCount--,l.remove&&l.remove.call(a,g));i&&!n.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||m.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)m.event.remove(a,o+b[j],c,d,!0);m.isEmptyObject(k)&&(delete r.handle,m._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,n,o=[d||y],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||y,3!==d.nodeType&&8!==d.nodeType&&!$.test(p+m.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[m.expando]?b:new m.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:m.makeArray(c,[b]),k=m.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!m.isWindow(d)){for(i=k.delegateType||p,$.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||y)&&o.push(l.defaultView||l.parentWindow||a)}n=0;while((h=o[n++])&&!b.isPropagationStopped())b.type=n>1?i:k.bindType||p,f=(m._data(h,"events")||{})[b.type]&&m._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&m.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&m.acceptData(d)&&g&&d[p]&&!m.isWindow(d)){l=d[g],l&&(d[g]=null),m.event.triggered=p;try{d[p]()}catch(r){}m.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=m.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(m._data(this,"events")||{})[a.type]||[],k=m.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=m.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((m.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?m(c,this).index(i)>=0:m.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h]","i"),hb=/^\s+/,ib=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,jb=/<([\w:]+)/,kb=/\s*$/g,rb={option:[1,""],legend:[1,"
    ","
    "],area:[1,"",""],param:[1,"",""],thead:[1,"","
    "],tr:[2,"","
    "],col:[2,"","
    "],td:[3,"","
    "],_default:k.htmlSerialize?[0,"",""]:[1,"X
    ","
    "]},sb=db(y),tb=sb.appendChild(y.createElement("div"));rb.optgroup=rb.option,rb.tbody=rb.tfoot=rb.colgroup=rb.caption=rb.thead,rb.th=rb.td;function ub(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==K?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==K?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||m.nodeName(d,b)?f.push(d):m.merge(f,ub(d,b));return void 0===b||b&&m.nodeName(a,b)?m.merge([a],f):f}function vb(a){W.test(a.type)&&(a.defaultChecked=a.checked)}function wb(a,b){return m.nodeName(a,"table")&&m.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function xb(a){return a.type=(null!==m.find.attr(a,"type"))+"/"+a.type,a}function yb(a){var b=pb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function zb(a,b){for(var c,d=0;null!=(c=a[d]);d++)m._data(c,"globalEval",!b||m._data(b[d],"globalEval"))}function Ab(a,b){if(1===b.nodeType&&m.hasData(a)){var c,d,e,f=m._data(a),g=m._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)m.event.add(b,c,h[c][d])}g.data&&(g.data=m.extend({},g.data))}}function Bb(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!k.noCloneEvent&&b[m.expando]){e=m._data(b);for(d in e.events)m.removeEvent(b,d,e.handle);b.removeAttribute(m.expando)}"script"===c&&b.text!==a.text?(xb(b).text=a.text,yb(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),k.html5Clone&&a.innerHTML&&!m.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&W.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}m.extend({clone:function(a,b,c){var d,e,f,g,h,i=m.contains(a.ownerDocument,a);if(k.html5Clone||m.isXMLDoc(a)||!gb.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(tb.innerHTML=a.outerHTML,tb.removeChild(f=tb.firstChild)),!(k.noCloneEvent&&k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||m.isXMLDoc(a)))for(d=ub(f),h=ub(a),g=0;null!=(e=h[g]);++g)d[g]&&Bb(e,d[g]);if(b)if(c)for(h=h||ub(a),d=d||ub(f),g=0;null!=(e=h[g]);g++)Ab(e,d[g]);else Ab(a,f);return d=ub(f,"script"),d.length>0&&zb(d,!i&&ub(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,l,n=a.length,o=db(b),p=[],q=0;n>q;q++)if(f=a[q],f||0===f)if("object"===m.type(f))m.merge(p,f.nodeType?[f]:f);else if(lb.test(f)){h=h||o.appendChild(b.createElement("div")),i=(jb.exec(f)||["",""])[1].toLowerCase(),l=rb[i]||rb._default,h.innerHTML=l[1]+f.replace(ib,"<$1>")+l[2],e=l[0];while(e--)h=h.lastChild;if(!k.leadingWhitespace&&hb.test(f)&&p.push(b.createTextNode(hb.exec(f)[0])),!k.tbody){f="table"!==i||kb.test(f)?""!==l[1]||kb.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)m.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}m.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),k.appendChecked||m.grep(ub(p,"input"),vb),q=0;while(f=p[q++])if((!d||-1===m.inArray(f,d))&&(g=m.contains(f.ownerDocument,f),h=ub(o.appendChild(f),"script"),g&&zb(h),c)){e=0;while(f=h[e++])ob.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=m.expando,j=m.cache,l=k.deleteExpando,n=m.event.special;null!=(d=a[h]);h++)if((b||m.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)n[e]?m.event.remove(d,e):m.removeEvent(d,e,g.handle);j[f]&&(delete j[f],l?delete d[i]:typeof d.removeAttribute!==K?d.removeAttribute(i):d[i]=null,c.push(f))}}}),m.fn.extend({text:function(a){return V(this,function(a){return void 0===a?m.text(this):this.empty().append((this[0]&&this[0].ownerDocument||y).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?m.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||m.cleanData(ub(c)),c.parentNode&&(b&&m.contains(c.ownerDocument,c)&&zb(ub(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&m.cleanData(ub(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&m.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return m.clone(this,a,b)})},html:function(a){return V(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(fb,""):void 0;if(!("string"!=typeof a||mb.test(a)||!k.htmlSerialize&&gb.test(a)||!k.leadingWhitespace&&hb.test(a)||rb[(jb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(ib,"<$1>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(m.cleanData(ub(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,m.cleanData(ub(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,n=this,o=l-1,p=a[0],q=m.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&nb.test(p))return this.each(function(c){var d=n.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(i=m.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=m.map(ub(i,"script"),xb),f=g.length;l>j;j++)d=i,j!==o&&(d=m.clone(d,!0,!0),f&&m.merge(g,ub(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,m.map(g,yb),j=0;f>j;j++)d=g[j],ob.test(d.type||"")&&!m._data(d,"globalEval")&&m.contains(h,d)&&(d.src?m._evalUrl&&m._evalUrl(d.src):m.globalEval((d.text||d.textContent||d.innerHTML||"").replace(qb,"")));i=c=null}return this}}),m.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){m.fn[a]=function(a){for(var c,d=0,e=[],g=m(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),m(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Cb,Db={};function Eb(b,c){var d,e=m(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:m.css(e[0],"display");return e.detach(),f}function Fb(a){var b=y,c=Db[a];return c||(c=Eb(a,b),"none"!==c&&c||(Cb=(Cb||m(" + + + + +
    + + + + + + + \ No newline at end of file diff --git a/resmgr/src/main/webapp/resmgr-nfv/vim.html b/resmgr/src/main/webapp/resmgr-nfv/vim.html new file mode 100644 index 00000000..d46b801c --- /dev/null +++ b/resmgr/src/main/webapp/resmgr-nfv/vim.html @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    resource using status:
    +
    + +
    + +
    + +
    +
    + +
    + +
    +
    + +
    + +
    + +
    + + \ No newline at end of file diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn.rar b/resmgr/src/main/webapp/resmgr-sdn.rar similarity index 100% rename from openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn.rar rename to resmgr/src/main/webapp/resmgr-sdn.rar diff --git a/resmgr/src/main/webapp/resmgr-sdn/conf/License.txt b/resmgr/src/main/webapp/resmgr-sdn/conf/License.txt new file mode 100644 index 00000000..8e698ecb --- /dev/null +++ b/resmgr/src/main/webapp/resmgr-sdn/conf/License.txt @@ -0,0 +1,362 @@ +THIS LICENSE FILE CONTAINS THE LICENSE APPLICABLE DEPENDING ON THE TYPE OF CONTRIBUTIONS. + +APACHE LICENSE 2 IS APPLICABLE FOR SOURCE CODE, CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL FOR DOCUMENTATION + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + + +Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. + +"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. + +2. Grant of Copyright License. + +Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. + +Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. + +You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: + +You must give any other recipients of the Work or Derivative Works a copy of this License; and You must cause any modified files to carry prominent notices stating that You changed the files; and You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. + +5. Submission of Contributions. + +Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. + +6. Trademarks. + +This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. + +Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. + +In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. + +While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +Attribution 4.0 International + +https://creativecommons.org/licenses/by/4.0/legalcode + +Creative Commons Corporation ("Creative Commons") is not a law firm and does not provide legal services or legal advice. Distribution of Creative Commons public licenses does not create a lawyer-client or other relationship. Creative Commons makes its licenses and related information available on an "as-is" basis. Creative Commons gives no warranties regarding its licenses, any material licensed under their terms and conditions, or any related information. Creative Commons disclaims all liability for damages resulting from their use to the fullest extent possible. + +Using Creative Commons Public Licenses + +Creative Commons public licenses provide a standard set of terms and conditions that creators and other rights holders may use to share original works of authorship and other material subject to copyright and certain other rights specified in the public license below. The following considerations are for informational purposes only, are not exhaustive, and do not form part of our licenses. + + Considerations for licensors: Our public licenses are + intended for use by those authorized to give the public + permission to use material in ways otherwise restricted by + copyright and certain other rights. Our licenses are + irrevocable. Licensors should read and understand the terms + and conditions of the license they choose before applying it. + Licensors should also secure all rights necessary before + applying our licenses so that the public can reuse the + material as expected. Licensors should clearly mark any + material not subject to the license. This includes other CC- + licensed material, or material used under an exception or + limitation to copyright. More considerations for licensors: + wiki.creativecommons.org/Considerations_for_licensors + Considerations for the public: By using one of our public + licenses, a licensor grants the public permission to use the + licensed material under specified terms and conditions. If + the licensor's permission is not necessary for any reason--for + example, because of any applicable exception or limitation to + copyright--then that use is not regulated by the license. Our + licenses grant only permissions under copyright and certain + other rights that a licensor has authority to grant. Use of + the licensed material may still be restricted for other + reasons, including because others have copyright or other + rights in the material. A licensor may make special requests, + such as asking that all changes be marked or described. + Although not required by our licenses, you are encouraged to + respect those requests where reasonable. More_considerations + for the public: + wiki.creativecommons.org/Considerations_for_licensees +Creative Commons Attribution 4.0 International Public License + +By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions. + + +Section 1 -- Definitions. + + a. Adapted Material means material subject to Copyright and Similar + Rights that is derived from or based upon the Licensed Material + and in which the Licensed Material is translated, altered, + arranged, transformed, or otherwise modified in a manner requiring + permission under the Copyright and Similar Rights held by the + Licensor. For purposes of this Public License, where the Licensed + Material is a musical work, performance, or sound recording, + Adapted Material is always produced where the Licensed Material is + synched in timed relation with a moving image. + b. Adapter's License means the license You apply to Your Copyright + and Similar Rights in Your contributions to Adapted Material in + accordance with the terms and conditions of this Public License. + c. Copyright and Similar Rights means copyright and/or similar rights + closely related to copyright including, without limitation, + performance, broadcast, sound recording, and Sui Generis Database + Rights, without regard to how the rights are labeled or + categorized. For purposes of this Public License, the rights + specified in Section 2(b)(1)-(2) are not Copyright and Similar + Rights. + d. Effective Technological Measures means those measures that, in the + absence of proper authority, may not be circumvented under laws + fulfilling obligations under Article 11 of the WIPO Copyright + Treaty adopted on December 20, 1996, and/or similar international + agreements. + e. Exceptions and Limitations means fair use, fair dealing, and/or + any other exception or limitation to Copyright and Similar Rights + that applies to Your use of the Licensed Material. + f. Licensed Material means the artistic or literary work, database, + or other material to which the Licensor applied this Public + License. + g. Licensed Rights means the rights granted to You subject to the + terms and conditions of this Public License, which are limited to + all Copyright and Similar Rights that apply to Your use of the + Licensed Material and that the Licensor has authority to license. + h. Licensor means the individual(s) or entity(ies) granting rights + under this Public License. + i. Share means to provide material to the public by any means or + process that requires permission under the Licensed Rights, such + as reproduction, public display, public performance, distribution, + dissemination, communication, or importation, and to make material + available to the public including in ways that members of the + public may access the material from a place and at a time + individually chosen by them. + j. Sui Generis Database Rights means rights other than copyright + resulting from Directive 96/9/EC of the European Parliament and of + the Council of 11 March 1996 on the legal protection of databases, + as amended and/or succeeded, as well as other essentially + equivalent rights anywhere in the world. + k. You means the individual or entity exercising the Licensed Rights + under this Public License. Your has a corresponding meaning. + +Section 2 -- Scope. + + a. License grant. + 1. Subject to the terms and conditions of this Public License, + the Licensor hereby grants You a worldwide, royalty-free, + non-sublicensable, non-exclusive, irrevocable license to + exercise the Licensed Rights in the Licensed Material to: + a. reproduce and Share the Licensed Material, in whole or + in part; and + b. produce, reproduce, and Share Adapted Material. + 2. Exceptions and Limitations. For the avoidance of doubt, where + Exceptions and Limitations apply to Your use, this Public + License does not apply, and You do not need to comply with + its terms and conditions. + 3. Term. The term of this Public License is specified in Section + 6(a). + 4. Media and formats; technical modifications allowed. The + Licensor authorizes You to exercise the Licensed Rights in + all media and formats whether now known or hereafter created, + and to make technical modifications necessary to do so. The + Licensor waives and/or agrees not to assert any right or + authority to forbid You from making technical modifications + necessary to exercise the Licensed Rights, including + technical modifications necessary to circumvent Effective + Technological Measures. For purposes of this Public License, + simply making modifications authorized by this Section 2(a) + (4) never produces Adapted Material. + 5. Downstream recipients. + a. Offer from the Licensor -- Licensed Material. Every + recipient of the Licensed Material automatically + receives an offer from the Licensor to exercise the + Licensed Rights under the terms and conditions of this + Public License. + b. No downstream restrictions. You may not offer or impose + any additional or different terms or conditions on, or + apply any Effective Technological Measures to, the + Licensed Material if doing so restricts exercise of the + Licensed Rights by any recipient of the Licensed + Material. + 6. No endorsement. Nothing in this Public License constitutes or + may be construed as permission to assert or imply that You + are, or that Your use of the Licensed Material is, connected + with, or sponsored, endorsed, or granted official status by, + the Licensor or others designated to receive attribution as + provided in Section 3(a)(1)(A)(i). + b. Other rights. + 1. Moral rights, such as the right of integrity, are not + licensed under this Public License, nor are publicity, + privacy, and/or other similar personality rights; however, to + the extent possible, the Licensor waives and/or agrees not to + assert any such rights held by the Licensor to the limited + extent necessary to allow You to exercise the Licensed + Rights, but not otherwise. + 2. Patent and trademark rights are not licensed under this + Public License. + 3. To the extent possible, the Licensor waives any right to + collect royalties from You for the exercise of the Licensed + Rights, whether directly or through a collecting society + under any voluntary or waivable statutory or compulsory + licensing scheme. In all other cases the Licensor expressly + reserves any right to collect such royalties. + +Section 3 -- License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the following conditions. + + a. Attribution. + 1. If You Share the Licensed Material (including in modified + form), You must: + a. retain the following if it is supplied by the Licensor + with the Licensed Material: + i. identification of the creator(s) of the Licensed + Material and any others designated to receive + attribution, in any reasonable manner requested by + the Licensor (including by pseudonym if + designated); + ii. a copyright notice; + iii. a notice that refers to this Public License; + iv. a notice that refers to the disclaimer of + warranties; + v. a URI or hyperlink to the Licensed Material to the + extent reasonably practicable; + b. indicate if You modified the Licensed Material and + retain an indication of any previous modifications; and + c. indicate the Licensed Material is licensed under this + Public License, and include the text of, or the URI or + hyperlink to, this Public License. + 2. You may satisfy the conditions in Section 3(a)(1) in any + reasonable manner based on the medium, means, and context in + which You Share the Licensed Material. For example, it may be + reasonable to satisfy the conditions by providing a URI or + hyperlink to a resource that includes the required + information. + 3. If requested by the Licensor, You must remove any of the + information required by Section 3(a)(1)(A) to the extent + reasonably practicable. + 4. If You Share Adapted Material You produce, the Adapter's + License You apply must not prevent recipients of the Adapted + Material from complying with this Public License. + +Section 4 -- Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material: + + a. for the avoidance of doubt, Section 2(a)(1) grants You the right + to extract, reuse, reproduce, and Share all or a substantial + portion of the contents of the database; + b. if You include all or a substantial portion of the database + contents in a database in which You have Sui Generis Database + Rights, then the database in which You have Sui Generis Database + Rights (but not its individual contents) is Adapted Material; and + c. You must comply with the conditions in Section 3(a) if You Share + all or a substantial portion of the contents of the database. +For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights. + + +Section 5 -- Disclaimer of Warranties and Limitation of Liability. + + a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE + EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS + AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF + ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, + IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, + WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, + ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT + KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT + ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. + b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE + TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, + NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, + INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, + COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR + USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR + DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR + IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + c. The disclaimer of warranties and limitation of liability provided + above shall be interpreted in a manner that, to the extent + possible, most closely approximates an absolute disclaimer and + waiver of all liability. + +Section 6 -- Term and Termination. + + a. This Public License applies for the term of the Copyright and + Similar Rights licensed here. However, if You fail to comply with + this Public License, then Your rights under this Public License + terminate automatically. + b. Where Your right to use the Licensed Material has terminated under + Section 6(a), it reinstates: + 1. automatically as of the date the violation is cured, provided + it is cured within 30 days of Your discovery of the + violation; or + 2. upon express reinstatement by the Licensor. + For the avoidance of doubt, this Section 6(b) does not affect any + right the Licensor may have to seek remedies for Your violations + of this Public License. + c. For the avoidance of doubt, the Licensor may also offer the + Licensed Material under separate terms or conditions or stop + distributing the Licensed Material at any time; however, doing so + will not terminate this Public License. + d. Sections 1, 5, 6, 7, and 8 survive termination of this Public + License. + +Section 7 -- Other Terms and Conditions. + + a. The Licensor shall not be bound by any additional or different + terms or conditions communicated by You unless expressly agreed. + b. Any arrangements, understandings, or agreements regarding the + Licensed Material not stated herein are separate from and + independent of the terms and conditions of this Public License. + +Section 8 -- Interpretation. + + a. For the avoidance of doubt, this Public License does not, and + shall not be interpreted to, reduce, limit, restrict, or impose + conditions on any use of the Licensed Material that could lawfully + be made without permission under this Public License. + b. To the extent possible, if any provision of this Public License is + deemed unenforceable, it shall be automatically reformed to the + minimum extent necessary to make it enforceable. If the provision + cannot be reformed, it shall be severed from this Public License + without affecting the enforceability of the remaining terms and + conditions. + c. No term or condition of this Public License will be waived and no + failure to comply consented to unless expressly agreed to by the + Licensor. + d. Nothing in this Public License constitutes or may be interpreted + as a limitation upon, or waiver of, any privileges and immunities + that apply to the Licensor or You, including from the legal + processes of any jurisdiction or authority. +Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the "Licensor." The text of the Creative Commons public licenses is dedicated to the public domain under the CC0 Public Domain Dedication. Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at creativecommons.org/policies, Creative Commons does not authorize the use of the trademark "Creative Commons" or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses. + +Creative Commons may be contacted at creativecommons.org. \ No newline at end of file diff --git a/resmgr/src/main/webapp/resmgr-sdn/conf/dataconfig.json b/resmgr/src/main/webapp/resmgr-sdn/conf/dataconfig.json new file mode 100644 index 00000000..20ce9a54 --- /dev/null +++ b/resmgr/src/main/webapp/resmgr-sdn/conf/dataconfig.json @@ -0,0 +1,5 @@ +{ + "url": "http://127.0.0.1", + "port": "8080", + "context_name":"resmgr" +} \ No newline at end of file diff --git a/resmgr/src/main/webapp/resmgr-sdn/css/RMain.css b/resmgr/src/main/webapp/resmgr-sdn/css/RMain.css new file mode 100644 index 00000000..12aa5066 --- /dev/null +++ b/resmgr/src/main/webapp/resmgr-sdn/css/RMain.css @@ -0,0 +1,239 @@ +/* Copyright 2016-2017, Huawei Technologies Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#iemp_layout_container { + padding: 0px; + margin: 1px auto; + width: 100%; + height: 100%; +} + +#iemp_layout_container .three-cols-layout { + width: 100%; + height: 100%; + border-collapse: collapse; + margin-left: 0px; + margin-top: 0px; + margin-right: 0px; + margin-bottom: 0px; +} + +#iemp_layout_container .three-cols-layout { + width: 100%; + height: 100%; + border-collapse: collapse; + margin-left: 0px; + margin-top: 0px; + margin-right: 0px; + margin-bottom: 0px; +} + +#iemp_layout_container .three-cols-column.three-cols-left { + width: 215px; + background-color: #f5f5f5; +} + +.accordion_parent { + position: relative; + width: 220px; + background-color: #f5f5f5; +} + +.openo-accordion-resizable-handle { + z-index: 1 !important; + cursor: e-resize; + width: 7px; + right: -5px; + top: 0; + height: 100%; + position: absolute; + font-size: .1px; + display: block; +} + +.openoAccordian_accordionmenu { + width: 100%; + margin: 0; + padding: 0; + list-style-type: none; + line-height: 17px; +} + +.openoAccordian_accordionmenu li { + min-width: 75px; + margin: 0; + padding: 0; + list-style-type: none; + color: #000; + clear: both; +} + +.openo_accordion_ui-icon-collapse, .openo_accordion_ui-icon-expand { + display: block; + float: left; + margin-bottom: -1px; + border-bottom: 1px solid #e5e5e5; + cursor: pointer; + width: 13px; + padding-top: 26px; +} + +.openo_accordion_ui-icon-expand { + background: url(../images/collapse_arrow.png) right 20px no-repeat; + margin-top: 8px; +} + +.openo_accordion_ui-icon-expand.current { + background: url(../images/expand_arrow.png) right 20px no-repeat; +} + +.openoAccordian_showHideArrow_hide, .openoAccordian_showHideArrow_show { + display: block; + position: absolute; + right: 0; + top: 4px; + width: 18px; + height: 41px; + cursor: pointer; + background-color: #f5f5f5; +} + +.openoAccordian_showHideArrow_hide { + background-image: url(../images/openo.png); + background-position: -7px 0 !important; + border-collapse: separate; + /*box-shadow: inset -1px 0 0 #e5e5e5;*/ +} + +a.header.opened, a.header.closed { + font-size: 16px; + padding-top: 24px; + padding-bottom: 25px; + color: #999999; +} + +.openoAccordian_accordionmenu .closed, .openoAccordian_accordionmenu .opened { + padding-right: 10px; + background-position: 98% 50%; + background-repeat: no-repeat; +} + +.openoAccordian_accordionmenu li a { + padding: 11px 10px 12px; + color: #333333; + margin-right: 1px; + margin-top: -1px; + text-align: left !important; + font-family: "Microsoft Yahei", SimSun, Arial, Tahoma; + font-size: 14px; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + border-top: 1px solid #e5e5e5; + border-bottom: 1px solid #e5e5e5; + /*height: 19px;*/ +} + +.openoAccordian_accordionmenu ul { + margin: 0; + padding: 0; + overflow: hidden; +} + +.openoAccordian_accordionmenu a { + display: block; + text-decoration: none; +} + +a { + color: #428bca; + text-decoration: none; + background: 0 0; +} + +.bar { + height: 834px; + width: 18px; + background: #f8f8f8; + display: none; +} + +.bar span { + width: 13px; + height: 34px; + background-image: url(../images/openo.png); + background-position: -39px 0 !important; + display: block; + /*margin-top: -430px;*/ +} + +#accordionmenuid_ul_0_0_brAppTopMenuID_UL li { + cursor: pointer; +} + +#puer_base_openo { + border: 1px solid #ddd; +} + +.openo_accordion_selected { + margin-left: 0; + margin-right: 0; + background: #fafafa; + border-left: 3px solid #4ac9ff !important; + box-shadow: none; + position: relative; +} + +a:hover { + color: #4ac9ff !important; +} + +.openoAccordian_accordionmenu li.openo_accordion_selected a { + position: relative; + left: -3px; + color: #009ae7; +} + +.openo-accordion-resizable-handle { + z-index: 1 !important; + cursor: e-resize; + width: 7px; + right: -5px; + top: 0; + height: 100%; + position: absolute; + font-size: .1px; + display: block; +} + +#iframeContainer iframe { + width: 100%; + height: 100%; + border: 0; +} + +#accordionContent, #iframeContainer { + margin: 0; + padding: 0; + border: 0; + width: 100%; + height: 100%; +} + +.openoAccordian_showHideArrow_show { + background-image: url(../images/openo.png); + background-position: -39px 0 !important; + box-shadow: inset 1px 0 0 #e5e5e5, inset -1px 0 0 #e5e5e5; +} \ No newline at end of file diff --git a/resmgr/src/main/webapp/resmgr-sdn/css/VMMain.css b/resmgr/src/main/webapp/resmgr-sdn/css/VMMain.css new file mode 100644 index 00000000..048d814a --- /dev/null +++ b/resmgr/src/main/webapp/resmgr-sdn/css/VMMain.css @@ -0,0 +1,758 @@ +/* Copyright 2016-2017, Huawei Technologies Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +body { + font-family: '微软雅黑'; + font-size: 12px; + color: #333; + background: #fafafa; +} + +button { + outline: none; +} + +ul, li { + list-style: none; + padding: 0; + margin: 0; +} + +.titleFont { + font-size: 16px; +} + +.separator-line { + height: 1px; + width: 100%; + border: 1px solid #ddd; + margin: 6px 0 15px 0; +} + +.uploadBtn { + overflow: hidden; +} + +.creat-btn { + padding: 0 14px; + height: 24px; + float: left; + cursor: pointer; + text-decoration: none; + outline: 0; + border: 1px solid #d3d3d3; + text-align: center; + box-shadow: 0 1px 1px rgba(0, 0, 0, .05); + background: #fafafa; + background: -moz-linear-gradient(top, #fff, #fafafa); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #fff), color-stop(100%, #fafafa)); + background: -webkit-linear-gradient(top, #fff, #fafafa); + background: linear-gradient(to bottom, #fff, #fafafa); + border-radius: 6px; + background: #fff url(../images/add.png) no-repeat 5px center; + padding-left: 20px; +} + +.creat-btn:hover { + color: #009ae7; + border: 1px solid #4AC9FF +} + +.creat-btn:active { + color: #000; + border: 1px solid #4AC9FF +} + +/*.creat-btn{ + background: #fff url(../image/add.png) no-repeat 5px center; + border: 1px solid #ddd; + float: left; +} +.creat-btn:hover{ + background: #428bca; + color: #fff; + border:1px solid #428bca; +}*/ +.search { + width: 310px; + height: 30px; + float: right; +} + +.search-text { + width: 250px; + float: left; + margin-right: 6px; +} + +.search-btn { + height: 30px; + background: #fff; + border: 1px solid #ddd; + float: left; +} + +#ict_virtualApplication_table_div { + margin-top: 15px; +} + +.table > thead > tr.active > th { + border: 1px solid #ddd !important; + border-bottom: 0; + background: #f0f0f0; +} + +/*.table tbody tr:hover{ + background: #e6fbe0!important; +}*/ +.table tbody tr:last-child { + border-bottom: 1px solid #ddd; +} + +.table-btn { + border: 1px solid #ccc; + border-radius: 3px; +} + +.delete-btn { + background: url(../image/delete.png) no-repeat; + width: 16px; + height: 16px; + border: none; +} + +.detail-btn { + background: url(../image/openo.png) no-repeat -343px -283px; + width: 16px; + height: 16px; + border: none; +} + +.detail-btn.current { + background-position: -7px -314px; +} + +.detail { + height: 200px; + border: 1px solid #ddd; + margin-top: 60px; +} + +.detail-top ul { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #ddd; + padding-left: 0px; + background: #fafafa; +} + +.detail-top ul li { + float: left; + width: 120px; + text-align: center; + border-right: 1px solid #ddd; + cursor: pointer; +} + +.detail-top ul li.current { + background: #fff; +} + +.vmapp-margin { + margin-bottom: 10px; +} + +.control-label .required { + color: #e02222; + font-size: 12px; + padding-left: 2px; +} + +.form-group .control-label { + font-size: 12px; + font-weight: 400; +} + +legend { + font-size: 12px; + font-weight: bold; +} + +.pageGro { + width: 250px; + float: right; +} + +.pageUp, .pageDown, .pageList, .pageList li { + float: left; + cursor: pointer; +} + +.pageUp, .pageDown { + width: 60px; + height: 30px; + border: 1px solid #ddd; + text-align: center; + line-height: 30px; +} + +.pageList li { + width: 30px; + height: 30px; + border: 1px solid #ddd; + text-align: center; + line-height: 30px; + border-left: none; +} + +.pageList li.active { + background: #428bca; + color: #fff; + border-color: #428bca; +} + +.pageDown { + border-left: none; +} + +.headerLinkP { + padding-top: 17px; +} + +.headerLinkP span { + font-size: 12px; + color: #666; + font-weight: normal !important; +} + +label { + font-weight: normal !important; +} + +table.userform tbody tr td { + display: table-cell; + padding-right: 10px; + padding-top: 10px; + font-size: 12px; + color: #333; +} + +.table th, .table td { + padding-top: 3px !important; + padding-bottom: 3px !important; +} + +.openoBrowseButton_element { + display: table; +} + +.openo { + font-family: "Microsoft Yahei", SimSun, Arial, Tahoma; + font-size: 12px; + color: #000; +} + +.openoBrowseButton_input { + width: 198px; + position: relative; + border: 1px solid #c3c3c3 !important; + height: 26px; + background-color: #f3f3f3; + border-radius: 4px 0 0 4px; + border-right: none; + padding: 0; +} + +.buttonClassDefault, .buttonClassDefault:active { + cursor: pointer; + background-image: url(../images/openo.png); + background-position: -154px -7px !important; +} + +.openoBrowseButton_button { + width: 27px; + border: 0; + float: right; + position: relative; + height: 26px; + right: 0; + top: 0; + border-radius: 0 4px 4px 0; + border-right: 1px solid #c3c3c3; + border-left: none; +} + +.openo .openo-input, .openo.openo-input { + outline: 0; + border: 1px solid #c3c3c3; + box-shadow: 1px 1px #f6f6f6 inset; + background-color: #fff; + height: 26px; +} + +.openoInput_openoDefaultText { + padding: 0 0 0 6px; + border-radius: 4px; + color: #000; + display: inline-block; + outline: 0; + box-shadow: 1px 1px #f6f6f6 inset; + font-size: 12px; + background: #fff; +} + +div.openo-select { + border: 1px solid #c3c3c3; + border-radius: 4px; + background: url(../images/arrow-down-enable.png) right no-repeat #fff; + line-height: 24px; + padding-left: 3px; + display: block; +} + +div.openo-select > input.openo-select-input { + border: none; + outline: 0; + line-height: 21px; + height: 21px; + padding-left: 3px; + border-right: solid 1px #c3c3c3; +} + +.openo .openo-ellipsis, .openo.openo-ellipsis { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} + +a.openoButton_buttonClass, a.openoButton_buttonDisableClass, div.openoButton_buttonClass, div.openoButton_buttonDisableClass { + height: 26px; + float: left; + cursor: pointer; + text-decoration: none; + outline: 0; + border: 1px solid #d3d3d3; + text-align: center; + box-shadow: 0 1px 1px rgba(0, 0, 0, .05); + background: #fafafa; + background: -moz-linear-gradient(top, #fff, #fafafa); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #fff), color-stop(100%, #fafafa)); + background: -webkit-linear-gradient(top, #fff, #fafafa); + background: linear-gradient(to bottom, #fff, #fafafa); + border-radius: 6px; +} + +.openoButton_buttonInnerClass { + padding: 0 19px; + border-radius: 6px; +} + +.openoButton_buttonCenterText { + color: #000; + line-height: 24px; + white-space: nowrap; + width: auto !important; +} + +.userHeader { + clear: left; + overflow: hidden; + margin-bottom: 10px; + padding: 10px 10px 0px 0px; +} + +.openoButton_buttonGroupClass { + display: inline; +} + +.openoButton_buttonGroupClass div.openoButton_buttonClass_parent:first-child { + margin-left: 0; +} + +.openoButton_buttonLeftImg { + margin-right: 5px; +} + +.openoButton_buttonLeftImg, .openoButton_buttonRightImg { + display: inline-block; + vertical-align: top; + width: 16px; + height: 16px; + margin-top: 4px; +} + +.openo-table-pagination-wrapper { + height: 37px; +} + +.openo-pagination { + display: block; + float: left; + overflow: hidden; + padding: 5px 0 0; + margin-top: 8px; +} + +.openoPagination_openoPaginationLengthOptions:not(msie8) { + line-height: 24px; +} + +.openoPagination_openoPaginationLengthOptions { + white-space: normal; + height: 24px; + float: left; + outline: 0; + line-height: 20px; + margin: 0 5px; +} + +.openo-pagination-select { + height: 26px; + line-height: 22px; + text-align: center; + margin-right: -2px; + border: 1px solid #e0e0e0; + border-radius: 5px 0 0 5px; + padding: 1px; +} + +.openoPagination_openoPaginationLengthOptions span { + background-color: #fff !important; +} + +.openo-pagination-theme a, .openo-pagination-theme span { + float: left; + color: #666; + font: 12px Lucida Grande, Verdana, Arial, Helvetica, sans-serif; + line-height: 24px; + font-weight: 400; + text-align: center; + border: 1px solid #e0e0e0; + text-decoration: none !important; + padding: 0 7px; + border-radius: 3px; + background: #fff; +} + +.openo-pagination-selectspan { + background: url(../images/ideo_default_select.png) left no-repeat !important; + float: right !important; + width: 26px; + height: 26px; + cursor: pointer; +} + +.openo-pagination-theme label { + padding-top: 6px; + vertical-align: middle; + margin-right: 20px; + margin-top: -1px; + float: left; + display: inline-block; + height: 20px; + font: 12px Lucida Grande, Verdana, Arial, Helvetica, sans-serif; +} + +.openo-pagination li, .openo-pagination ul { + list-style: none; + padding: 0; + margin: 0; + float: left; +} + +dd, dl, dt, li { + color: #000; +} + +.openo-pagination-theme a, .openo-pagination-theme span.current { + margin: 0 5px 0 0; +} + +.openo .openo-disabled, .openo.openo-disabled { + border-color: #c3c3c3 !important; + color: #666 !important; + opacity: .3; + filter: alpha(opacity=30); +} + +.openo-pagination-theme .prev { + background: 0 0; + float: left; +} + +.openo-pagination-theme .current { + text-decoration: none !important; + float: left; + padding-left: 6px; + height: 24px; + color: #fff; + display: inline; + border-color: #00adf5; + background: #4ad2ff; +} + +.openo-pagination-theme a, .openo-pagination-theme span { + float: left; + color: #666; + font: 12px Lucida Grande, Verdana, Arial, Helvetica, sans-serif; + line-height: 24px; + font-weight: 400; + text-align: center; + border: 1px solid #e0e0e0; + text-decoration: none !important; + padding: 0 7px; + border-radius: 3px; + background: #fff; +} + +.openo-pagination-theme .prev.openo-disabled:before { + background: url(../images/page_left_disabled.png) 50% 45% no-repeat; +} + +.openo-pagination-theme .prev.openo-disabled:before { + background: url(../images/page_left_disabled.png) 50% 45% no-repeat; +} + +.openo-pagination-theme .prev:before { + background: url(../images/page_l.png) 50% 45% no-repeat; +} + +.openo-pagination-theme .next:after, .openo-pagination-theme .prev:before { + display: inline-block; + content: ""; + vertical-align: middle; + width: 10px; + height: 24px; +} + +.openo-pagination-theme .prev:before { + background: url(../images/page_l.png) 50% 45% no-repeat; +} + +.openo-pagination-theme .next:after, .openo-pagination-theme .prev:before { + display: inline-block; + content: ""; + vertical-align: middle; + width: 10px; + height: 24px; +} + +pagination ul { + list-style: none; + padding: 0; + margin: 0; + float: left; +} + +.openo-pagination li, .openo-pagination ul { + list-style: none; + padding: 0; + margin: 0; + float: left; +} + +.openoPagination_gototext { + background: #FFF; + outline: 0; + width: 29px; + float: left; + height: 26px; + line-height: 24px; + border-radius: 4px; + border: 1px solid #c3c3c3; + padding: 0 0 0 5px; + margin: 0; + color: #666; + min-width: 50px; +} + +.openoPagination_gotoimage { + width: 29px; + height: 26px; + line-height: 26px; + background-color: #FFF; + background-image: url(/portal/themes/default/components/openo/images/openo.png); + padding-left: 21px; + float: left; + margin-left: 5px; + border: 1px solid #e0e0e0; + border-radius: 4px; + box-sizing: border-box; + -moz-box-sizing: border-box; + background-position: -184px -181px !important; +} + +.openo-pagination-theme .ellipse { + float: left; + margin-left: -8px; + margin-right: -4px; + background: 0 0; + border: none; + border-radius: 0; + box-shadow: none; + font-weight: 700; + cursor: default; +} + +.openo.openo-disabled { + border-color: #c3c3c3 !important; + color: #666 !important; + opacity: .3; + filter: alpha(opacity=30); +} + +.openo-pagination-theme .prev { + background: 0 0; + float: left; +} + +.openo-pagination-theme .current { + text-decoration: none !important; + float: left; + padding-left: 6px; + height: 26px; + color: #fff; + display: inline; + /*border-color: #00adf5; + background: #4ad2ff;*/ + border: 1px solid #e0e0e0; +} + +.openo-pagination-theme .next:after { + background: url(../images/page_r.png) 50% 45% no-repeat; +} + +.openoButton_buttonGroupClass div.openoButton_buttonClass_parent, .openoButton_buttonRightImg { + margin-left: 5px; +} + +html, body { + height: 99%; + width: 98%; +} + +.cotentBody { + padding: 0px 20px 0px 20px; +} + +div.openoButton_buttonClass:hover { + border: 1px solid #4ac9ff; +} + +div.openoButton_button_default:hover .openoButton_buttonCenterText { + color: #009ae7; +} + +.header_lineimg { + height: 1px; + width: 100%; + margin-top: 17px; +} + +.openo.openo-hide { + display: none; +} + +div.openo-select-popup-container { + position: absolute; + border: 1px solid #4ac9ff; + border-top: none; + border-radius: 0 0 4px 4px; + max-height: 202px; + overflow-y: auto; + background-color: #fff; + z-index: 880; +} + +div.openo-select-popup-container > div.openo-select-item { + display: block; +} + +.openo .openo-ellipsis, .openo.openo-ellipsis { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} + +div.openo-select-popup-container > div.openo-select-item > label { + padding-top: 3px; + padding-bottom: 3px; + line-height: 20px; +} + +.openo .openo-ellipsis, .openo.openo-ellipsis { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} + +.openo-select-item label { + margin-left: 4px; + margin-right: 4px; + white-space: nowrap; +} + +div.openo-select-popup-container > div.openo-select-item.openo-item-selected, div.openo-select-popup-container > div.openo-select-item:hover { + background-color: #f1f1f1; + color: #008fd6; +} + +div.openo-select.openo-focus { + border: 1px solid #4ac9ff; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; + border-bottom-color: #ddd; +} + +.openo-pagination-theme a:hover { + border-color: #4ac9ff; + cursor: pointer; +} + +.SDBtn { + background: #fff; + color: #333; + border: 1px solid #ddd; +} + +.SDBtn:hover { + color: #009ae7; + border: 1px solid #4AC9FF +} + +table tbody tr.even:hover td, table tbody tr.odd:hover td { + background-color: #e6fbe0; +} + +table tr.openoTable_row_selected td { + background: #e8f8fe !important; + border-bottom: 1px solid #e8e8e8 !important; +} + +.modal-body { + padding: 0 !important; +} + +.form-control { + height: 26px !important; +} + +.form-group .control-label { + margin-left: 20px; +} + +.form-horizontal .control-label { + text-align: left; +} \ No newline at end of file diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/css/bootstrap-table.min.css b/resmgr/src/main/webapp/resmgr-sdn/css/bootstrap-table.min.css similarity index 100% rename from openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/css/bootstrap-table.min.css rename to resmgr/src/main/webapp/resmgr-sdn/css/bootstrap-table.min.css diff --git a/resmgr/src/main/webapp/resmgr-sdn/css/bootstrap.min.css b/resmgr/src/main/webapp/resmgr-sdn/css/bootstrap.min.css new file mode 100644 index 00000000..679272d2 --- /dev/null +++ b/resmgr/src/main/webapp/resmgr-sdn/css/bootstrap.min.css @@ -0,0 +1,7 @@ +/*! + * Bootstrap v3.1.1 (http://getbootstrap.com) + * Copyright 2011-2014 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ + +/*! normalize.css v3.0.0 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:0 0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}@media print{*{text-shadow:none!important;color:#000!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff!important}.navbar{display:none}.table td,.table th{background-color:#fff!important}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table-bordered th,.table-bordered td{border:1px solid #ddd!important}}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:before,:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#428bca;text-decoration:none}a:hover,a:focus{color:#2a6496;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:400;line-height:1;color:#999}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:200;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}cite{font-style:normal}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-muted{color:#999}.text-primary{color:#428bca}a.text-primary:hover{color:#3071a9}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#428bca}a.bg-primary:hover{background-color:#3071a9}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#999}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}blockquote:before,blockquote:after{content:""}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;white-space:nowrap;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:0}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:0}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:0}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:0}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:0}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:0}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:0}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:0}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{max-width:100%;background-color:transparent}th{text-align:left}.table{width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5}table col[class*=col-]{position:static;float:none;display:table-column}table td[class*=col-],table th[class*=col-]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}@media (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;overflow-x:scroll;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd;-webkit-overflow-scrolling:touch}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=radio],input[type=checkbox]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=radio]:focus,input[type=checkbox]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee;opacity:1}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}input[type=date]{line-height:34px}.form-group{margin-bottom:15px}.radio,.checkbox{display:block;min-height:20px;margin-top:10px;margin-bottom:10px;padding-left:20px}.radio label,.checkbox label{display:inline;font-weight:400;cursor:pointer}.radio input[type=radio],.radio-inline input[type=radio],.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox]{float:left;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type=radio][disabled],input[type=checkbox][disabled],.radio[disabled],.radio-inline[disabled],.checkbox[disabled],.checkbox-inline[disabled],fieldset[disabled] input[type=radio],fieldset[disabled] input[type=checkbox],fieldset[disabled] .radio,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm,select[multiple].input-sm{height:auto}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg{height:46px;line-height:46px}textarea.input-lg,select[multiple].input-lg{height:auto}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.has-feedback .form-control-feedback{position:absolute;top:25px;right:0;display:block;width:34px;height:34px;line-height:34px;text-align:center}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-success .form-control-feedback{color:#3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.has-error .form-control-feedback{color:#a94442}.form-control-static{margin-bottom:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;vertical-align:middle}.form-inline .radio input[type=radio],.form-inline .checkbox input[type=checkbox]{float:none;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .control-label,.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.form-horizontal .form-control-static{padding-top:7px}@media (min-width:768px){.form-horizontal .control-label{text-align:right}}.form-horizontal .has-feedback .form-control-feedback{top:0;right:15px}.btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus{color:#333;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{color:#333;background-color:#ebebeb;border-color:#adadad}.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{color:#fff;background-color:#3276b1;border-color:#285e8e}.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#428bca;border-color:#357ebd}.btn-primary .badge{color:#428bca;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{color:#fff;background-color:#47a447;border-color:#398439}.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{color:#fff;background-color:#39b3d7;border-color:#269abc}.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{color:#428bca;font-weight:400;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%;padding-left:0;padding-right:0}.btn-block+.btn-block{margin-top:5px}input[type=submit].btn-block,input[type=reset].btn-block,input[type=button].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#262626;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;outline:0;background-color:#428bca}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#999}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:0}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}[data-toggle=buttons]>.btn>input[type=radio],[data-toggle=buttons]>.btn>input[type=checkbox]{display:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=radio],.input-group-addon input[type=checkbox]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#999}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#999;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#428bca}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#428bca}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{max-height:340px;overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px;font-size:18px;line-height:20px;height:50px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}.navbar-nav.navbar-right:last-child{margin-right:-15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin-top:8px;margin-bottom:8px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;vertical-align:middle}.navbar-form .radio input[type=radio],.navbar-form .checkbox input[type=checkbox]{float:none;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}.navbar-form.navbar-right:last-child{margin-right:-15px}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}.navbar-text.navbar-right:last-child{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#e7e7e7;color:#555}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#999}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .navbar-nav>li>a{color:#999}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#080808;color:#fff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover{color:#fff}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.42857143;text-decoration:none;color:#428bca;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{color:#2a6496;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;background-color:#fff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label[href]:hover,.label[href]:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#999}.label-default[href]:hover,.label-default[href]:focus{background-color:gray}.label-primary{background-color:#428bca}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;color:#fff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#999;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#428bca;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.container .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#428bca}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable{padding-right:35px}.alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:40px 40px}.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;background-color:#f5f5f5}a.list-group-item.active,a.list-group-item.active:hover,a.list-group-item.active:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}a.list-group-item.active .list-group-item-heading,a.list-group-item.active:hover .list-group-item-heading,a.list-group-item.active:focus .list-group-item-heading{color:inherit}a.list-group-item.active .list-group-item-text,a.list-group-item.active:hover .list-group-item-text,a.list-group-item.active:focus .list-group-item-text{color:#e1edf7}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px;overflow:hidden}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#ddd}.panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca}.panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#faebcc}.panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#ebccd1}.panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ebccd1}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:auto;overflow-y:scroll;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;-moz-transition:-moz-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5);background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.42857143px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:20px}.modal-footer{margin-top:15px;padding:19px 20px 20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;font-size:12px;line-height:1.4;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;right:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);white-space:normal}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;font-weight:400;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:.5;filter:alpha(opacity=50);font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,.5) 0),color-stop(rgba(0,0,0,.0001) 100%));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,.0001) 0),color-stop(rgba(0,0,0,.5) 100%));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;margin-left:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #fff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#fff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;margin-left:-15px;font-size:30px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important;visibility:hidden!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}th.visible-xs,td.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}th.visible-sm,td.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}th.visible-md,td.visible-md{display:table-cell!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}th.visible-lg,td.visible-lg{display:table-cell!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table}tr.visible-print{display:table-row!important}th.visible-print,td.visible-print{display:table-cell!important}}@media print{.hidden-print{display:none!important}} \ No newline at end of file diff --git a/resmgr/src/main/webapp/resmgr-sdn/images/License.txt b/resmgr/src/main/webapp/resmgr-sdn/images/License.txt new file mode 100644 index 00000000..8e698ecb --- /dev/null +++ b/resmgr/src/main/webapp/resmgr-sdn/images/License.txt @@ -0,0 +1,362 @@ +THIS LICENSE FILE CONTAINS THE LICENSE APPLICABLE DEPENDING ON THE TYPE OF CONTRIBUTIONS. + +APACHE LICENSE 2 IS APPLICABLE FOR SOURCE CODE, CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL FOR DOCUMENTATION + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + + +Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. + +"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. + +2. Grant of Copyright License. + +Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. + +Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. + +You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: + +You must give any other recipients of the Work or Derivative Works a copy of this License; and You must cause any modified files to carry prominent notices stating that You changed the files; and You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. + +5. Submission of Contributions. + +Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. + +6. Trademarks. + +This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. + +Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. + +In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. + +While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +Attribution 4.0 International + +https://creativecommons.org/licenses/by/4.0/legalcode + +Creative Commons Corporation ("Creative Commons") is not a law firm and does not provide legal services or legal advice. Distribution of Creative Commons public licenses does not create a lawyer-client or other relationship. Creative Commons makes its licenses and related information available on an "as-is" basis. Creative Commons gives no warranties regarding its licenses, any material licensed under their terms and conditions, or any related information. Creative Commons disclaims all liability for damages resulting from their use to the fullest extent possible. + +Using Creative Commons Public Licenses + +Creative Commons public licenses provide a standard set of terms and conditions that creators and other rights holders may use to share original works of authorship and other material subject to copyright and certain other rights specified in the public license below. The following considerations are for informational purposes only, are not exhaustive, and do not form part of our licenses. + + Considerations for licensors: Our public licenses are + intended for use by those authorized to give the public + permission to use material in ways otherwise restricted by + copyright and certain other rights. Our licenses are + irrevocable. Licensors should read and understand the terms + and conditions of the license they choose before applying it. + Licensors should also secure all rights necessary before + applying our licenses so that the public can reuse the + material as expected. Licensors should clearly mark any + material not subject to the license. This includes other CC- + licensed material, or material used under an exception or + limitation to copyright. More considerations for licensors: + wiki.creativecommons.org/Considerations_for_licensors + Considerations for the public: By using one of our public + licenses, a licensor grants the public permission to use the + licensed material under specified terms and conditions. If + the licensor's permission is not necessary for any reason--for + example, because of any applicable exception or limitation to + copyright--then that use is not regulated by the license. Our + licenses grant only permissions under copyright and certain + other rights that a licensor has authority to grant. Use of + the licensed material may still be restricted for other + reasons, including because others have copyright or other + rights in the material. A licensor may make special requests, + such as asking that all changes be marked or described. + Although not required by our licenses, you are encouraged to + respect those requests where reasonable. More_considerations + for the public: + wiki.creativecommons.org/Considerations_for_licensees +Creative Commons Attribution 4.0 International Public License + +By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions. + + +Section 1 -- Definitions. + + a. Adapted Material means material subject to Copyright and Similar + Rights that is derived from or based upon the Licensed Material + and in which the Licensed Material is translated, altered, + arranged, transformed, or otherwise modified in a manner requiring + permission under the Copyright and Similar Rights held by the + Licensor. For purposes of this Public License, where the Licensed + Material is a musical work, performance, or sound recording, + Adapted Material is always produced where the Licensed Material is + synched in timed relation with a moving image. + b. Adapter's License means the license You apply to Your Copyright + and Similar Rights in Your contributions to Adapted Material in + accordance with the terms and conditions of this Public License. + c. Copyright and Similar Rights means copyright and/or similar rights + closely related to copyright including, without limitation, + performance, broadcast, sound recording, and Sui Generis Database + Rights, without regard to how the rights are labeled or + categorized. For purposes of this Public License, the rights + specified in Section 2(b)(1)-(2) are not Copyright and Similar + Rights. + d. Effective Technological Measures means those measures that, in the + absence of proper authority, may not be circumvented under laws + fulfilling obligations under Article 11 of the WIPO Copyright + Treaty adopted on December 20, 1996, and/or similar international + agreements. + e. Exceptions and Limitations means fair use, fair dealing, and/or + any other exception or limitation to Copyright and Similar Rights + that applies to Your use of the Licensed Material. + f. Licensed Material means the artistic or literary work, database, + or other material to which the Licensor applied this Public + License. + g. Licensed Rights means the rights granted to You subject to the + terms and conditions of this Public License, which are limited to + all Copyright and Similar Rights that apply to Your use of the + Licensed Material and that the Licensor has authority to license. + h. Licensor means the individual(s) or entity(ies) granting rights + under this Public License. + i. Share means to provide material to the public by any means or + process that requires permission under the Licensed Rights, such + as reproduction, public display, public performance, distribution, + dissemination, communication, or importation, and to make material + available to the public including in ways that members of the + public may access the material from a place and at a time + individually chosen by them. + j. Sui Generis Database Rights means rights other than copyright + resulting from Directive 96/9/EC of the European Parliament and of + the Council of 11 March 1996 on the legal protection of databases, + as amended and/or succeeded, as well as other essentially + equivalent rights anywhere in the world. + k. You means the individual or entity exercising the Licensed Rights + under this Public License. Your has a corresponding meaning. + +Section 2 -- Scope. + + a. License grant. + 1. Subject to the terms and conditions of this Public License, + the Licensor hereby grants You a worldwide, royalty-free, + non-sublicensable, non-exclusive, irrevocable license to + exercise the Licensed Rights in the Licensed Material to: + a. reproduce and Share the Licensed Material, in whole or + in part; and + b. produce, reproduce, and Share Adapted Material. + 2. Exceptions and Limitations. For the avoidance of doubt, where + Exceptions and Limitations apply to Your use, this Public + License does not apply, and You do not need to comply with + its terms and conditions. + 3. Term. The term of this Public License is specified in Section + 6(a). + 4. Media and formats; technical modifications allowed. The + Licensor authorizes You to exercise the Licensed Rights in + all media and formats whether now known or hereafter created, + and to make technical modifications necessary to do so. The + Licensor waives and/or agrees not to assert any right or + authority to forbid You from making technical modifications + necessary to exercise the Licensed Rights, including + technical modifications necessary to circumvent Effective + Technological Measures. For purposes of this Public License, + simply making modifications authorized by this Section 2(a) + (4) never produces Adapted Material. + 5. Downstream recipients. + a. Offer from the Licensor -- Licensed Material. Every + recipient of the Licensed Material automatically + receives an offer from the Licensor to exercise the + Licensed Rights under the terms and conditions of this + Public License. + b. No downstream restrictions. You may not offer or impose + any additional or different terms or conditions on, or + apply any Effective Technological Measures to, the + Licensed Material if doing so restricts exercise of the + Licensed Rights by any recipient of the Licensed + Material. + 6. No endorsement. Nothing in this Public License constitutes or + may be construed as permission to assert or imply that You + are, or that Your use of the Licensed Material is, connected + with, or sponsored, endorsed, or granted official status by, + the Licensor or others designated to receive attribution as + provided in Section 3(a)(1)(A)(i). + b. Other rights. + 1. Moral rights, such as the right of integrity, are not + licensed under this Public License, nor are publicity, + privacy, and/or other similar personality rights; however, to + the extent possible, the Licensor waives and/or agrees not to + assert any such rights held by the Licensor to the limited + extent necessary to allow You to exercise the Licensed + Rights, but not otherwise. + 2. Patent and trademark rights are not licensed under this + Public License. + 3. To the extent possible, the Licensor waives any right to + collect royalties from You for the exercise of the Licensed + Rights, whether directly or through a collecting society + under any voluntary or waivable statutory or compulsory + licensing scheme. In all other cases the Licensor expressly + reserves any right to collect such royalties. + +Section 3 -- License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the following conditions. + + a. Attribution. + 1. If You Share the Licensed Material (including in modified + form), You must: + a. retain the following if it is supplied by the Licensor + with the Licensed Material: + i. identification of the creator(s) of the Licensed + Material and any others designated to receive + attribution, in any reasonable manner requested by + the Licensor (including by pseudonym if + designated); + ii. a copyright notice; + iii. a notice that refers to this Public License; + iv. a notice that refers to the disclaimer of + warranties; + v. a URI or hyperlink to the Licensed Material to the + extent reasonably practicable; + b. indicate if You modified the Licensed Material and + retain an indication of any previous modifications; and + c. indicate the Licensed Material is licensed under this + Public License, and include the text of, or the URI or + hyperlink to, this Public License. + 2. You may satisfy the conditions in Section 3(a)(1) in any + reasonable manner based on the medium, means, and context in + which You Share the Licensed Material. For example, it may be + reasonable to satisfy the conditions by providing a URI or + hyperlink to a resource that includes the required + information. + 3. If requested by the Licensor, You must remove any of the + information required by Section 3(a)(1)(A) to the extent + reasonably practicable. + 4. If You Share Adapted Material You produce, the Adapter's + License You apply must not prevent recipients of the Adapted + Material from complying with this Public License. + +Section 4 -- Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material: + + a. for the avoidance of doubt, Section 2(a)(1) grants You the right + to extract, reuse, reproduce, and Share all or a substantial + portion of the contents of the database; + b. if You include all or a substantial portion of the database + contents in a database in which You have Sui Generis Database + Rights, then the database in which You have Sui Generis Database + Rights (but not its individual contents) is Adapted Material; and + c. You must comply with the conditions in Section 3(a) if You Share + all or a substantial portion of the contents of the database. +For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights. + + +Section 5 -- Disclaimer of Warranties and Limitation of Liability. + + a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE + EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS + AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF + ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, + IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, + WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, + ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT + KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT + ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. + b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE + TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, + NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, + INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, + COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR + USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR + DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR + IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + c. The disclaimer of warranties and limitation of liability provided + above shall be interpreted in a manner that, to the extent + possible, most closely approximates an absolute disclaimer and + waiver of all liability. + +Section 6 -- Term and Termination. + + a. This Public License applies for the term of the Copyright and + Similar Rights licensed here. However, if You fail to comply with + this Public License, then Your rights under this Public License + terminate automatically. + b. Where Your right to use the Licensed Material has terminated under + Section 6(a), it reinstates: + 1. automatically as of the date the violation is cured, provided + it is cured within 30 days of Your discovery of the + violation; or + 2. upon express reinstatement by the Licensor. + For the avoidance of doubt, this Section 6(b) does not affect any + right the Licensor may have to seek remedies for Your violations + of this Public License. + c. For the avoidance of doubt, the Licensor may also offer the + Licensed Material under separate terms or conditions or stop + distributing the Licensed Material at any time; however, doing so + will not terminate this Public License. + d. Sections 1, 5, 6, 7, and 8 survive termination of this Public + License. + +Section 7 -- Other Terms and Conditions. + + a. The Licensor shall not be bound by any additional or different + terms or conditions communicated by You unless expressly agreed. + b. Any arrangements, understandings, or agreements regarding the + Licensed Material not stated herein are separate from and + independent of the terms and conditions of this Public License. + +Section 8 -- Interpretation. + + a. For the avoidance of doubt, this Public License does not, and + shall not be interpreted to, reduce, limit, restrict, or impose + conditions on any use of the Licensed Material that could lawfully + be made without permission under this Public License. + b. To the extent possible, if any provision of this Public License is + deemed unenforceable, it shall be automatically reformed to the + minimum extent necessary to make it enforceable. If the provision + cannot be reformed, it shall be severed from this Public License + without affecting the enforceability of the remaining terms and + conditions. + c. No term or condition of this Public License will be waived and no + failure to comply consented to unless expressly agreed to by the + Licensor. + d. Nothing in this Public License constitutes or may be interpreted + as a limitation upon, or waiver of, any privileges and immunities + that apply to the Licensor or You, including from the legal + processes of any jurisdiction or authority. +Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the "Licensor." The text of the Creative Commons public licenses is dedicated to the public domain under the CC0 Public Domain Dedication. Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at creativecommons.org/policies, Creative Commons does not authorize the use of the trademark "Creative Commons" or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses. + +Creative Commons may be contacted at creativecommons.org. \ No newline at end of file diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/images/add.png b/resmgr/src/main/webapp/resmgr-sdn/images/add.png similarity index 100% rename from openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/images/add.png rename to resmgr/src/main/webapp/resmgr-sdn/images/add.png diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/images/arrow-down-enable.png b/resmgr/src/main/webapp/resmgr-sdn/images/arrow-down-enable.png similarity index 100% rename from openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/images/arrow-down-enable.png rename to resmgr/src/main/webapp/resmgr-sdn/images/arrow-down-enable.png diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/collapse_arrow.png b/resmgr/src/main/webapp/resmgr-sdn/images/collapse_arrow.png similarity index 100% rename from openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/collapse_arrow.png rename to resmgr/src/main/webapp/resmgr-sdn/images/collapse_arrow.png diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/images/delete.png b/resmgr/src/main/webapp/resmgr-sdn/images/delete.png similarity index 100% rename from openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/images/delete.png rename to resmgr/src/main/webapp/resmgr-sdn/images/delete.png diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/images/edit.png b/resmgr/src/main/webapp/resmgr-sdn/images/edit.png similarity index 100% rename from openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/images/edit.png rename to resmgr/src/main/webapp/resmgr-sdn/images/edit.png diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/expand_arrow.png b/resmgr/src/main/webapp/resmgr-sdn/images/expand_arrow.png similarity index 100% rename from openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/expand_arrow.png rename to resmgr/src/main/webapp/resmgr-sdn/images/expand_arrow.png diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/images/ideo_default_select.png b/resmgr/src/main/webapp/resmgr-sdn/images/ideo_default_select.png similarity index 100% rename from openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/images/ideo_default_select.png rename to resmgr/src/main/webapp/resmgr-sdn/images/ideo_default_select.png diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/images/import.png b/resmgr/src/main/webapp/resmgr-sdn/images/import.png similarity index 100% rename from openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/images/import.png rename to resmgr/src/main/webapp/resmgr-sdn/images/import.png diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/images/line.png b/resmgr/src/main/webapp/resmgr-sdn/images/line.png similarity index 100% rename from openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/images/line.png rename to resmgr/src/main/webapp/resmgr-sdn/images/line.png diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/loading-spinner-grey.gif b/resmgr/src/main/webapp/resmgr-sdn/images/loading-spinner-grey.gif similarity index 100% rename from openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/loading-spinner-grey.gif rename to resmgr/src/main/webapp/resmgr-sdn/images/loading-spinner-grey.gif diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/openo.png b/resmgr/src/main/webapp/resmgr-sdn/images/openo.png similarity index 100% rename from openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/openo.png rename to resmgr/src/main/webapp/resmgr-sdn/images/openo.png diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/images/page_l.png b/resmgr/src/main/webapp/resmgr-sdn/images/page_l.png similarity index 100% rename from openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/images/page_l.png rename to resmgr/src/main/webapp/resmgr-sdn/images/page_l.png diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/images/page_left_disabled.png b/resmgr/src/main/webapp/resmgr-sdn/images/page_left_disabled.png similarity index 100% rename from openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/images/page_left_disabled.png rename to resmgr/src/main/webapp/resmgr-sdn/images/page_left_disabled.png diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/images/page_r.png b/resmgr/src/main/webapp/resmgr-sdn/images/page_r.png similarity index 100% rename from openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/images/page_r.png rename to resmgr/src/main/webapp/resmgr-sdn/images/page_r.png diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/sort_asc.png b/resmgr/src/main/webapp/resmgr-sdn/images/sort_asc.png similarity index 100% rename from openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/sort_asc.png rename to resmgr/src/main/webapp/resmgr-sdn/images/sort_asc.png diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/sort_both.png b/resmgr/src/main/webapp/resmgr-sdn/images/sort_both.png similarity index 100% rename from openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/sort_both.png rename to resmgr/src/main/webapp/resmgr-sdn/images/sort_both.png diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/sort_desc.png b/resmgr/src/main/webapp/resmgr-sdn/images/sort_desc.png similarity index 100% rename from openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/images/sort_desc.png rename to resmgr/src/main/webapp/resmgr-sdn/images/sort_desc.png diff --git a/resmgr/src/main/webapp/resmgr-sdn/js/bootstrap-table-filter-control.min.js b/resmgr/src/main/webapp/resmgr-sdn/js/bootstrap-table-filter-control.min.js new file mode 100644 index 00000000..d321a08e --- /dev/null +++ b/resmgr/src/main/webapp/resmgr-sdn/js/bootstrap-table-filter-control.min.js @@ -0,0 +1,7 @@ +/* + * bootstrap-table - v1.11.0 - 2016-07-02 + * https://github.com/wenzhixin/bootstrap-table + * Copyright (c) 2016 zhixin wen + * Licensed MIT License + */ +!function(a){"use strict";var b=a.fn.bootstrapTable.utils.sprintf,c=a.fn.bootstrapTable.utils.objectKeys,d=function(b,c,d){c=a.trim(c),b=a(b.get(b.length-1)),f(b,c)||b.append(a("").attr("value",c).text(a("
    ").html(d).text()))},e=function(b){var c=b.find("option:gt(0)");c.sort(function(b,c){return b=a(b).text().toLowerCase(),c=a(c).text().toLowerCase(),a.isNumeric(b)&&a.isNumeric(c)&&(b=parseFloat(b),c=parseFloat(c)),b>c?1:c>b?-1:0}),b.find("option:gt(0)").remove(),b.append(c)},f=function(a,b){for(var c=a.get(a.length-1).options,d=0;d0&&e.find(f).each(function(){c=a(this).closest("[data-field]").data("field"),d=a.grep(b.options.valuesFilterControl,function(a){return a.field===c}),d.length>0&&(a(this).val(d[0].value),k(a(this).get(0),d[0].position))})},n=function(){var b=[],c=document.cookie.match(/(?:bs.table.)(\w*)/g);return c?(a.each(c,function(c,d){/./.test(d)&&(d=d.split(".").pop()),-1===a.inArray(d,b)&&b.push(d)}),b):void 0},o=function(b){var c=b.options.data,f=(b.pageTo0},i=b.options.pagination?"server"===b.options.sidePagination?b.pageTo:b.options.totalRows:b.pageTo;a.each(b.header.fields,function(j,k){var l=b.columns[a.fn.bootstrapTable.utils.getFieldIndex(b.columns,k)],m=a(".bootstrap-table-filter-control-"+p(l.field));if(f(l)&&g(l)&&h(m)){0===m.get(m.length-1).options.length&&d(m,"","");for(var n={},o=0;i>o;o++){var q=c[o][k],r=a.fn.bootstrapTable.utils.calculateObjectValue(b.header,b.header.formatters[j],[q,c[o],o],q);n[r]=q}for(var s in n)d(m,n[s],s);e(m)}})},p=function(a){return String(a).replace(/(:|\.|\[|\]|,)/g,"\\$1")},q=function(b,c){var f,g,h=!1,i=0;a.each(b.columns,function(i,j){if(f="hidden",g=[],j.visible){if(j.filterControl){g.push('
    ');var k=j.filterControl.toLowerCase();j.searchable&&b.options.filterTemplate[k]&&(h=!0,f="visible",g.push(b.options.filterTemplate[k](b,j.field,f)))}else g.push('
    ');if(a.each(c.children().children(),function(b,c){return c=a(c),c.data("field")===j.field?(c.find(".fht-cell").append(g.join("")),!1):void 0}),void 0!==j.filterData&&"column"!==j.filterData.toLowerCase()){var l,m,n=t(s,j.filterData.substring(0,j.filterData.indexOf(":")));if(null===n)throw new SyntaxError('Error. You should use any of these allowed filter data methods: var, json, url. Use like this: var: {key: "value"}');l=j.filterData.substring(j.filterData.indexOf(":")+1,j.filterData.length),m=a(".bootstrap-table-filter-control-"+p(j.field)),d(m,"",""),n(l,m);var o,q;switch(n){case"url":a.ajax({url:l,dataType:"json",success:function(a){for(var b in a)d(m,b,a[b]);e(m)}});break;case"var":o=window[l];for(q in o)d(m,q,o[q]);e(m);break;case"jso":o=JSON.parse(l);for(q in o)d(m,q,o[q]);e(m)}}}}),h?(c.off("keyup","input").on("keyup","input",function(a){clearTimeout(i),i=setTimeout(function(){b.onColumnSearch(a)},b.options.searchTimeOut)}),c.off("change","select").on("change","select",function(a){clearTimeout(i),i=setTimeout(function(){b.onColumnSearch(a)},b.options.searchTimeOut)}),c.off("mouseup","input").on("mouseup","input",function(c){var d=a(this),e=d.val();""!==e&&setTimeout(function(){var a=d.val();""===a&&(clearTimeout(i),i=setTimeout(function(){b.onColumnSearch(c)},b.options.searchTimeOut))},1)}),c.find(".date-filter-control").length>0&&a.each(b.columns,function(b,d){void 0!==d.filterControl&&"datepicker"===d.filterControl.toLowerCase()&&c.find(".date-filter-control.bootstrap-table-filter-control-"+d.field).datepicker(d.filterDatepickerOptions).on("changeDate",function(b){a(b.currentTarget).keyup()})})):c.find(".filterControl").hide()},r=function(a){switch(a=void 0===a?"left":a.toLowerCase()){case"left":return"ltr";case"right":return"rtl";case"auto":return"auto";default:return"ltr"}},s={"var":function(a,b){var c=window[a];for(var f in c)d(b,f,c[f]);e(b)},url:function(b,c){a.ajax({url:b,dataType:"json",success:function(a){for(var b in a)d(c,b,a[b]);e(c)}})},json:function(a,b){var c=JSON.parse(a);for(var f in c)d(b,f,c[f]);e(b)}},t=function(a,b){for(var c=Object.keys(a),d=0;d',c,d)},select:function(a,c,d){return b('',c,d,r(a.options.alignmentSelectControlOptions))},datepicker:function(a,c,d){return b('',c,d)}},valuesFilterControl:[]}),a.extend(a.fn.bootstrapTable.COLUMN_DEFAULTS,{filterControl:void 0,filterData:void 0,filterDatepickerOptions:void 0,filterStrictSearch:!1,filterStartsWithSearch:!1}),a.extend(a.fn.bootstrapTable.Constructor.EVENTS,{"column-search.bs.table":"onColumnSearch"}),a.extend(a.fn.bootstrapTable.defaults.icons,{clear:"glyphicon-trash icon-clear"}),a.extend(a.fn.bootstrapTable.locales,{formatClearFilters:function(){return"Clear Filters"}}),a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales);var u=a.fn.bootstrapTable.Constructor,v=u.prototype.init,w=u.prototype.initToolbar,x=u.prototype.initHeader,y=u.prototype.initBody,z=u.prototype.initSearch;u.prototype.init=function(){if(this.options.filterControl){var a=this;Object.keys||c(),this.options.valuesFilterControl=[],this.$el.on("reset-view.bs.table",function(){a.options.height&&(a.$tableHeader.find("select").length>0||a.$tableHeader.find("input").length>0||q(a,a.$tableHeader))}).on("post-header.bs.table",function(){m(a)}).on("post-body.bs.table",function(){a.options.height&&g(a)}).on("column-switch.bs.table",function(){m(a)})}v.apply(this,Array.prototype.slice.apply(arguments))},u.prototype.initToolbar=function(){if(this.showToolbar=this.options.filterControl&&this.options.filterShowClear,w.apply(this,Array.prototype.slice.apply(arguments)),this.options.filterControl&&this.options.filterShowClear){var c=this.$toolbar.find(">.btn-group"),d=c.find(".filter-show-clear");d.length||(d=a(['"].join("")).appendTo(c),d.off("click").on("click",a.proxy(this.clearFilterControl,this)))}},u.prototype.initHeader=function(){x.apply(this,Array.prototype.slice.apply(arguments)),this.options.filterControl&&q(this,this.$header)},u.prototype.initBody=function(){y.apply(this,Array.prototype.slice.apply(arguments)),o(this)},u.prototype.initSearch=function(){if(z.apply(this,Array.prototype.slice.apply(arguments)),"server"!==this.options.sidePagination){var b=this,c=a.isEmptyObject(this.filterColumnsPartial)?null:this.filterColumnsPartial;this.data=c?a.grep(this.data,function(d,e){for(var f in c){var g=b.columns[a.fn.bootstrapTable.utils.getFieldIndex(b.columns,f)],h=c[f].toLowerCase(),i=d[f];if(g&&g.searchFormatter&&(i=a.fn.bootstrapTable.utils.calculateObjectValue(b.header,b.header.formatters[a.inArray(f,b.header.fields)],[i,d,e],i)),g.filterStrictSearch){if(-1===a.inArray(f,b.header.fields)||"string"!=typeof i&&"number"!=typeof i||i.toString().toLowerCase()!==h.toString().toLowerCase())return!1}else if(g.filterStartsWithSearch){if(-1===a.inArray(f,b.header.fields)||"string"!=typeof i&&"number"!=typeof i||0!==(i+"").toLowerCase().indexOf(h))return!1}else if(-1===a.inArray(f,b.header.fields)||"string"!=typeof i&&"number"!=typeof i||-1===(i+"").toLowerCase().indexOf(h))return!1}return!0}):this.data}},u.prototype.initColumnSearch=function(a){if(l(this),a){this.filterColumnsPartial=a,this.updatePagination();for(var b in a)this.trigger("column-search",b,a[b])}},u.prototype.onColumnSearch=function(b){if(!(a.inArray(b.keyCode,[37,38,39,40])>-1)){l(this);var c=a.trim(a(b.currentTarget).val()),d=a(b.currentTarget).closest("[data-field]").data("field");a.isEmptyObject(this.filterColumnsPartial)&&(this.filterColumnsPartial={}),c?this.filterColumnsPartial[d]=c:delete this.filterColumnsPartial[d],this.searchText+="randomText",this.options.pageNumber=1,this.onSearch(b),this.trigger("column-search",d,c)}},u.prototype.clearFilterControl=function(){if(this.options.filterControl&&this.options.filterShowClear){var c=this,d=n(),e=h(c),f=e.closest("table"),g=e.find(i(c)),j=c.$toolbar.find(".search input"),k=0;if(a.each(c.options.valuesFilterControl,function(a,b){b.value=""}),m(c),!(g.length>0))return;if(this.filterColumnsPartial={},a(g[0]).trigger("INPUT"===g[0].tagName?"keyup":"change"),j.length>0&&c.resetSearch(),c.options.sortName!==f.data("sortName")||c.options.sortOrder!==f.data("sortOrder")){var l=e.find(b('[data-field="%s"]',a(g[0]).closest("table").data("sortName")));l.length>0&&(c.onSort(f.data("sortName"),f.data("sortName")),a(l).find(".sortable").trigger("click"))}clearTimeout(k),k=setTimeout(function(){d&&d.length>0&&a.each(d,function(a,b){void 0!==c.deleteCookie&&c.deleteCookie(b)})},c.options.searchTimeOut)}}}(jQuery); \ No newline at end of file diff --git a/resmgr/src/main/webapp/resmgr-sdn/js/bootstrap-table.min.js b/resmgr/src/main/webapp/resmgr-sdn/js/bootstrap-table.min.js new file mode 100644 index 00000000..a939f007 --- /dev/null +++ b/resmgr/src/main/webapp/resmgr-sdn/js/bootstrap-table.min.js @@ -0,0 +1,8 @@ +/* +* bootstrap-table - v1.11.0 - 2016-2017-07-02 +* https://github.com/wenzhixin/bootstrap-table +* Copyright (c) 2016-2017 zhixin wen +* Licensed MIT License +*/ +!function(a){"use strict";var b=null,c=function(a){var b=arguments,c=!0,d=1;return a=a.replace(/%s/g,function(){var a=b[d++];return"undefined"==typeof a?(c=!1,""):a}),c?a:""},d=function(b,c,d,e){var f="";return a.each(b,function(a,b){return b[c]===e?(f=b[d],!1):!0}),f},e=function(b,c){var d=-1;return a.each(b,function(a,b){return b.field===c?(d=a,!1):!0}),d},f=function(b){var c,d,e,f=0,g=[];for(c=0;cd;d++)g[c][d]=!1;for(c=0;ce;e++)g[c+e][k]=!0;for(e=0;j>e;e++)g[c][k+e]=!0}},g=function(){if(null===b){var c,d,e=a("

    ").addClass("fixed-table-scroll-inner"),f=a("

    ").addClass("fixed-table-scroll-outer");f.append(e),a("body").append(f),c=e[0].offsetWidth,f.css("overflow","scroll"),d=e[0].offsetWidth,c===d&&(d=f[0].clientWidth),f.remove(),b=c-d}return b},h=function(b,d,e,f){var g=d;if("string"==typeof d){var h=d.split(".");h.length>1?(g=window,a.each(h,function(a,b){g=g[b]})):g=window[d]}return"object"==typeof g?g:"function"==typeof g?g.apply(b,e):!g&&"string"==typeof d&&c.apply(this,[d].concat(e))?c.apply(this,[d].concat(e)):f},i=function(b,c,d){var e=Object.getOwnPropertyNames(b),f=Object.getOwnPropertyNames(c),g="";if(d&&e.length!==f.length)return!1;for(var h=0;h-1&&b[g]!==c[g])return!1;return!0},j=function(a){return"string"==typeof a?a.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/`/g,"`"):a},k=function(b){var c=0;return b.children().each(function(){c0||navigator.userAgent.match(/Trident.*rv\:11\./))},o=function(){Object.keys||(Object.keys=function(){var a=Object.prototype.hasOwnProperty,b=!{toString:null}.propertyIsEnumerable("toString"),c=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],d=c.length;return function(e){if("object"!=typeof e&&("function"!=typeof e||null===e))throw new TypeError("Object.keys called on non-object");var f,g,h=[];for(f in e)a.call(e,f)&&h.push(f);if(b)for(g=0;d>g;g++)a.call(e,c[g])&&h.push(c[g]);return h}}())},p=function(b,c){this.options=c,this.$el=a(b),this.$el_=this.$el.clone(),this.timeoutId_=0,this.timeoutFooter_=0,this.init()};p.DEFAULTS={classes:"table table-hover",locale:void 0,height:void 0,undefinedText:"-",sortName:void 0,sortOrder:"asc",sortStable:!1,striped:!1,columns:[[]],data:[],dataField:"rows",method:"get",url:void 0,ajax:void 0,cache:!0,contentType:"application/json",dataType:"json",ajaxOptions:{},queryParams:function(a){return a},queryParamsType:"limit",responseHandler:function(a){return a},pagination:!1,onlyInfoPagination:!1,sidePagination:"client",totalRows:0,pageNumber:1,pageSize:10,pageList:[10,25,50,100],paginationHAlign:"right",paginationVAlign:"bottom",paginationDetailHAlign:"left",paginationPreText:"‹",paginationNextText:"›",search:!1,searchOnEnterKey:!1,strictSearch:!1,searchAlign:"right",selectItemName:"btSelectItem",showHeader:!0,showFooter:!1,showColumns:!1,showPaginationSwitch:!1,showRefresh:!1,showToggle:!1,buttonsAlign:"right",smartDisplay:!0,escape:!1,minimumCountColumns:1,idField:void 0,uniqueId:void 0,cardView:!1,detailView:!1,detailFormatter:function(){return""},trimOnSearch:!0,clickToSelect:!1,singleSelect:!1,toolbar:void 0,toolbarAlign:"left",checkboxHeader:!0,sortable:!0,silentSort:!0,maintainSelected:!1,searchTimeOut:500,searchText:"",iconSize:void 0,buttonsClass:"default",iconsPrefix:"glyphicon",icons:{paginationSwitchDown:"glyphicon-collapse-down icon-chevron-down",paginationSwitchUp:"glyphicon-collapse-up icon-chevron-up",refresh:"glyphicon-refresh icon-refresh",toggle:"glyphicon-list-alt icon-list-alt",columns:"glyphicon-th icon-th",detailOpen:"glyphicon-plus icon-plus",detailClose:"glyphicon-minus icon-minus"},customSearch:a.noop,customSort:a.noop,rowStyle:function(){return{}},rowAttributes:function(){return{}},footerStyle:function(){return{}},onAll:function(){return!1},onClickCell:function(){return!1},onDblClickCell:function(){return!1},onClickRow:function(){return!1},onDblClickRow:function(){return!1},onSort:function(){return!1},onCheck:function(){return!1},onUncheck:function(){return!1},onCheckAll:function(){return!1},onUncheckAll:function(){return!1},onCheckSome:function(){return!1},onUncheckSome:function(){return!1},onLoadSuccess:function(){return!1},onLoadError:function(){return!1},onColumnSwitch:function(){return!1},onPageChange:function(){return!1},onSearch:function(){return!1},onToggle:function(){return!1},onPreBody:function(){return!1},onPostBody:function(){return!1},onPostHeader:function(){return!1},onExpandRow:function(){return!1},onCollapseRow:function(){return!1},onRefreshOptions:function(){return!1},onRefresh:function(){return!1},onResetView:function(){return!1}},p.LOCALES={},p.LOCALES["en-US"]=p.LOCALES.en={formatLoadingMessage:function(){return"Loading, please wait..."},formatRecordsPerPage:function(a){return c("%s rows per page",a)},formatShowingRows:function(a,b,d){return c("Showing %s to %s of %s rows",a,b,d)},formatDetailPagination:function(a){return c("Showing %s rows",a)},formatSearch:function(){return"Search"},formatNoMatches:function(){return"No matching records found"},formatPaginationSwitch:function(){return"Hide/Show pagination"},formatRefresh:function(){return"Refresh"},formatToggle:function(){return"Toggle"},formatColumns:function(){return"Columns"},formatAllRows:function(){return"All"}},a.extend(p.DEFAULTS,p.LOCALES["en-US"]),p.COLUMN_DEFAULTS={radio:!1,checkbox:!1,checkboxEnabled:!0,field:void 0,title:void 0,titleTooltip:void 0,"class":void 0,align:void 0,halign:void 0,falign:void 0,valign:void 0,width:void 0,sortable:!1,order:"asc",visible:!0,switchable:!0,clickToSelect:!0,formatter:void 0,footerFormatter:void 0,events:void 0,sorter:void 0,sortName:void 0,cellStyle:void 0,searchable:!0,searchFormatter:!0,cardVisible:!0},p.EVENTS={"all.bs.table":"onAll","click-cell.bs.table":"onClickCell","dbl-click-cell.bs.table":"onDblClickCell","click-row.bs.table":"onClickRow","dbl-click-row.bs.table":"onDblClickRow","sort.bs.table":"onSort","check.bs.table":"onCheck","uncheck.bs.table":"onUncheck","check-all.bs.table":"onCheckAll","uncheck-all.bs.table":"onUncheckAll","check-some.bs.table":"onCheckSome","uncheck-some.bs.table":"onUncheckSome","load-success.bs.table":"onLoadSuccess","load-error.bs.table":"onLoadError","column-switch.bs.table":"onColumnSwitch","page-change.bs.table":"onPageChange","search.bs.table":"onSearch","toggle.bs.table":"onToggle","pre-body.bs.table":"onPreBody","post-body.bs.table":"onPostBody","post-header.bs.table":"onPostHeader","expand-row.bs.table":"onExpandRow","collapse-row.bs.table":"onCollapseRow","refresh-options.bs.table":"onRefreshOptions","reset-view.bs.table":"onResetView","refresh.bs.table":"onRefresh"},p.prototype.init=function(){this.initLocale(),this.initContainer(),this.initTable(),this.initHeader(),this.initData(),this.initFooter(),this.initToolbar(),this.initPagination(),this.initBody(),this.initSearchText(),this.initServer()},p.prototype.initLocale=function(){if(this.options.locale){var b=this.options.locale.split(/-|_/);b[0].toLowerCase(),b[1]&&b[1].toUpperCase(),a.fn.bootstrapTable.locales[this.options.locale]?a.extend(this.options,a.fn.bootstrapTable.locales[this.options.locale]):a.fn.bootstrapTable.locales[b.join("-")]?a.extend(this.options,a.fn.bootstrapTable.locales[b.join("-")]):a.fn.bootstrapTable.locales[b[0]]&&a.extend(this.options,a.fn.bootstrapTable.locales[b[0]])}},p.prototype.initContainer=function(){this.$container=a(['
    ','
    ',"top"===this.options.paginationVAlign||"both"===this.options.paginationVAlign?'
    ':"",'
    ','
    ','
    ','
    ',this.options.formatLoadingMessage(),"
    ","
    ",'',"bottom"===this.options.paginationVAlign||"both"===this.options.paginationVAlign?'
    ':"","
    ","
    "].join("")),this.$container.insertAfter(this.$el),this.$tableContainer=this.$container.find(".fixed-table-container"),this.$tableHeader=this.$container.find(".fixed-table-header"),this.$tableBody=this.$container.find(".fixed-table-body"),this.$tableLoading=this.$container.find(".fixed-table-loading"),this.$tableFooter=this.$container.find(".fixed-table-footer"),this.$toolbar=this.$container.find(".fixed-table-toolbar"),this.$pagination=this.$container.find(".fixed-table-pagination"),this.$tableBody.append(this.$el),this.$container.after('
    '),this.$el.addClass(this.options.classes),this.options.striped&&this.$el.addClass("table-striped"),-1!==a.inArray("table-no-bordered",this.options.classes.split(" "))&&this.$tableContainer.addClass("table-no-bordered")},p.prototype.initTable=function(){var b=this,c=[],d=[];if(this.$header=this.$el.find(">thead"),this.$header.length||(this.$header=a("").appendTo(this.$el)),this.$header.find("tr").each(function(){var b=[];a(this).find("th").each(function(){"undefined"!=typeof a(this).data("field")&&a(this).data("field",a(this).data("field")+""),b.push(a.extend({},{title:a(this).html(),"class":a(this).attr("class"),titleTooltip:a(this).attr("title"),rowspan:a(this).attr("rowspan")?+a(this).attr("rowspan"):void 0,colspan:a(this).attr("colspan")?+a(this).attr("colspan"):void 0},a(this).data()))}),c.push(b)}),a.isArray(this.options.columns[0])||(this.options.columns=[this.options.columns]),this.options.columns=a.extend(!0,[],c,this.options.columns),this.columns=[],f(this.options.columns),a.each(this.options.columns,function(c,d){a.each(d,function(d,e){e=a.extend({},p.COLUMN_DEFAULTS,e),"undefined"!=typeof e.fieldIndex&&(b.columns[e.fieldIndex]=e),b.options.columns[c][d]=e})}),!this.options.data.length){var e=[];this.$el.find(">tbody>tr").each(function(c){var f={};f._id=a(this).attr("id"),f._class=a(this).attr("class"),f._data=l(a(this).data()),a(this).find(">td").each(function(d){for(var g,h,i=a(this),j=+i.attr("colspan")||1,k=+i.attr("rowspan")||1;e[c]&&e[c][d];d++);for(g=d;d+j>g;g++)for(h=c;c+k>h;h++)e[h]||(e[h]=[]),e[h][g]=!0;var m=b.columns[d].field;f[m]=a(this).html(),f["_"+m+"_id"]=a(this).attr("id"),f["_"+m+"_class"]=a(this).attr("class"),f["_"+m+"_rowspan"]=a(this).attr("rowspan"),f["_"+m+"_colspan"]=a(this).attr("colspan"),f["_"+m+"_title"]=a(this).attr("title"),f["_"+m+"_data"]=l(a(this).data())}),d.push(f)}),this.options.data=d,d.length&&(this.fromHtml=!0)}},p.prototype.initHeader=function(){var b=this,d={},e=[];this.header={fields:[],styles:[],classes:[],formatters:[],events:[],sorters:[],sortNames:[],cellStyles:[],searchables:[]},a.each(this.options.columns,function(f,g){e.push(""),0===f&&!b.options.cardView&&b.options.detailView&&e.push(c('
    ',b.options.columns.length)),a.each(g,function(a,f){var g="",h="",i="",j="",k=c(' class="%s"',f["class"]),l=(b.options.sortOrder||f.order,"px"),m=f.width;if(void 0===f.width||b.options.cardView||"string"==typeof f.width&&-1!==f.width.indexOf("%")&&(l="%"),f.width&&"string"==typeof f.width&&(m=f.width.replace("%","").replace("px","")),h=c("text-align: %s; ",f.halign?f.halign:f.align),i=c("text-align: %s; ",f.align),j=c("vertical-align: %s; ",f.valign),j+=c("width: %s; ",!f.checkbox&&!f.radio||m?m?m+l:void 0:"36px"),"undefined"!=typeof f.fieldIndex){if(b.header.fields[f.fieldIndex]=f.field,b.header.styles[f.fieldIndex]=i+j,b.header.classes[f.fieldIndex]=k,b.header.formatters[f.fieldIndex]=f.formatter,b.header.events[f.fieldIndex]=f.events,b.header.sorters[f.fieldIndex]=f.sorter,b.header.sortNames[f.fieldIndex]=f.sortName,b.header.cellStyles[f.fieldIndex]=f.cellStyle,b.header.searchables[f.fieldIndex]=f.searchable,!f.visible)return;if(b.options.cardView&&!f.cardVisible)return;d[f.field]=f}e.push(""),e.push(c('
    ',b.options.sortable&&f.sortable?"sortable both":"")),g=f.title,f.checkbox&&(!b.options.singleSelect&&b.options.checkboxHeader&&(g=''),b.header.stateField=f.field),f.radio&&(g="",b.header.stateField=f.field,b.options.singleSelect=!0),e.push(g),e.push("
    "),e.push('
    '),e.push("
    "),e.push("")}),e.push("")}),this.$header.html(e.join("")),this.$header.find("th[data-field]").each(function(){a(this).data(d[a(this).data("field")])}),this.$container.off("click",".th-inner").on("click",".th-inner",function(c){var d=a(this);return b.options.detailView&&d.closest(".bootstrap-table")[0]!==b.$container[0]?!1:void(b.options.sortable&&d.parent().data().sortable&&b.onSort(c))}),this.$header.children().children().off("keypress").on("keypress",function(c){if(b.options.sortable&&a(this).data().sortable){var d=c.keyCode||c.which;13==d&&b.onSort(c)}}),a(window).off("resize.bootstrap-table"),!this.options.showHeader||this.options.cardView?(this.$header.hide(),this.$tableHeader.hide(),this.$tableLoading.css("top",0)):(this.$header.show(),this.$tableHeader.show(),this.$tableLoading.css("top",this.$header.outerHeight()+1),this.getCaret(),a(window).on("resize.bootstrap-table",a.proxy(this.resetWidth,this))),this.$selectAll=this.$header.find('[name="btSelectAll"]'),this.$selectAll.off("click").on("click",function(){var c=a(this).prop("checked");b[c?"checkAll":"uncheckAll"](),b.updateSelected()})},p.prototype.initFooter=function(){!this.options.showFooter||this.options.cardView?this.$tableFooter.hide():this.$tableFooter.show()},p.prototype.initData=function(a,b){this.data="append"===b?this.data.concat(a):"prepend"===b?[].concat(a).concat(this.data):a||this.options.data,this.options.data="append"===b?this.options.data.concat(a):"prepend"===b?[].concat(a).concat(this.options.data):this.data,"server"!==this.options.sidePagination&&this.initSort()},p.prototype.initSort=function(){var b=this,c=this.options.sortName,d="desc"===this.options.sortOrder?-1:1,e=a.inArray(this.options.sortName,this.header.fields);return this.options.customSort!==a.noop?void this.options.customSort.apply(this,[this.options.sortName,this.options.sortOrder]):void(-1!==e&&(this.options.sortStable&&a.each(this.data,function(a,b){b.hasOwnProperty("_position")||(b._position=a)}),this.data.sort(function(f,g){b.header.sortNames[e]&&(c=b.header.sortNames[e]);var i=m(f,c,b.options.escape),j=m(g,c,b.options.escape),k=h(b.header,b.header.sorters[e],[i,j]);return void 0!==k?d*k:((void 0===i||null===i)&&(i=""),(void 0===j||null===j)&&(j=""),b.options.sortStable&&i===j&&(i=f._position,j=g._position),a.isNumeric(i)&&a.isNumeric(j)?(i=parseFloat(i),j=parseFloat(j),j>i?-1*d:d):i===j?0:("string"!=typeof i&&(i=i.toString()),-1===i.localeCompare(j)?-1*d:d))})))},p.prototype.onSort=function(b){var c="keypress"===b.type?a(b.currentTarget):a(b.currentTarget).parent(),d=this.$header.find("th").eq(c.index());return this.$header.add(this.$header_).find("span.order").remove(),this.options.sortName===c.data("field")?this.options.sortOrder="asc"===this.options.sortOrder?"desc":"asc":(this.options.sortName=c.data("field"),this.options.sortOrder="asc"===c.data("order")?"desc":"asc"),this.trigger("sort",this.options.sortName,this.options.sortOrder),c.add(d).data("order",this.options.sortOrder),this.getCaret(),"server"===this.options.sidePagination?void this.initServer(this.options.silentSort):(this.initSort(),void this.initBody())},p.prototype.initToolbar=function(){var b,d,e=this,f=[],g=0,i=0;this.$toolbar.find(".bs-bars").children().length&&a("body").append(a(this.options.toolbar)),this.$toolbar.html(""),("string"==typeof this.options.toolbar||"object"==typeof this.options.toolbar)&&a(c('
    ',this.options.toolbarAlign)).appendTo(this.$toolbar).append(a(this.options.toolbar)),f=[c('
    ',this.options.buttonsAlign,this.options.buttonsAlign)],"string"==typeof this.options.icons&&(this.options.icons=h(null,this.options.icons)),this.options.showPaginationSwitch&&f.push(c('"),this.options.showRefresh&&f.push(c('"),this.options.showToggle&&f.push(c('"),this.options.showColumns&&(f.push(c('
    ',this.options.formatColumns()),'",'","
    ")),f.push("
    "),(this.showToolbar||f.length>2)&&this.$toolbar.append(f.join("")),this.options.showPaginationSwitch&&this.$toolbar.find('button[name="paginationSwitch"]').off("click").on("click",a.proxy(this.togglePagination,this)),this.options.showRefresh&&this.$toolbar.find('button[name="refresh"]').off("click").on("click",a.proxy(this.refresh,this)),this.options.showToggle&&this.$toolbar.find('button[name="toggle"]').off("click").on("click",function(){e.toggleView()}),this.options.showColumns&&(b=this.$toolbar.find(".keep-open"),i<=this.options.minimumCountColumns&&b.find("input").prop("disabled",!0),b.find("li").off("click").on("click",function(a){a.stopImmediatePropagation()}),b.find("input").off("click").on("click",function(){var b=a(this);e.toggleColumn(a(this).val(),b.prop("checked"),!1),e.trigger("column-switch",a(this).data("field"),b.prop("checked"))})),this.options.search&&(f=[],f.push('"),this.$toolbar.append(f.join("")),d=this.$toolbar.find(".search input"),d.off("keyup drop").on("keyup drop",function(b){e.options.searchOnEnterKey&&13!==b.keyCode||a.inArray(b.keyCode,[37,38,39,40])>-1||(clearTimeout(g),g=setTimeout(function(){e.onSearch(b)},e.options.searchTimeOut))}),n()&&d.off("mouseup").on("mouseup",function(a){clearTimeout(g),g=setTimeout(function(){e.onSearch(a)},e.options.searchTimeOut)}))},p.prototype.onSearch=function(b){var c=a.trim(a(b.currentTarget).val());this.options.trimOnSearch&&a(b.currentTarget).val()!==c&&a(b.currentTarget).val(c),c!==this.searchText&&(this.searchText=c,this.options.searchText=c,this.options.pageNumber=1,this.initSearch(),this.updatePagination(),this.trigger("search",c))},p.prototype.initSearch=function(){var b=this;if("server"!==this.options.sidePagination){if(this.options.customSearch!==a.noop)return void this.options.customSearch.apply(this,[this.searchText]);var c=this.searchText&&(this.options.escape?j(this.searchText):this.searchText).toLowerCase(),d=a.isEmptyObject(this.filterColumns)?null:this.filterColumns;this.data=d?a.grep(this.options.data,function(b){for(var c in d)if(a.isArray(d[c])&&-1===a.inArray(b[c],d[c])||b[c]!==d[c])return!1;return!0}):this.options.data,this.data=c?a.grep(this.data,function(d,f){for(var g=0;g-1&&(n=!0)}this.totalPages=~~((this.options.totalRows-1)/this.options.pageSize)+1,this.options.totalPages=this.totalPages}if(this.totalPages>0&&this.options.pageNumber>this.totalPages&&(this.options.pageNumber=this.totalPages),this.pageFrom=(this.options.pageNumber-1)*this.options.pageSize+1,this.pageTo=this.options.pageNumber*this.options.pageSize,this.pageTo>this.options.totalRows&&(this.pageTo=this.options.totalRows),m.push('
    ','',this.options.onlyInfoPagination?this.options.formatDetailPagination(this.options.totalRows):this.options.formatShowingRows(this.pageFrom,this.pageTo,this.options.totalRows),""),!this.options.onlyInfoPagination){m.push('');var r=[c('',"top"===this.options.paginationVAlign||"both"===this.options.paginationVAlign?"dropdown":"dropup"),'",'"),m.push(this.options.formatRecordsPerPage(r.join(""))),m.push(""),m.push("
    ",'")}this.$pagination.html(m.join("")),this.options.onlyInfoPagination||(f=this.$pagination.find(".page-list a"),g=this.$pagination.find(".page-first"),h=this.$pagination.find(".page-pre"),i=this.$pagination.find(".page-next"),j=this.$pagination.find(".page-last"),k=this.$pagination.find(".page-number"),this.options.smartDisplay&&(this.totalPages<=1&&this.$pagination.find("div.pagination").hide(),(p.length<2||this.options.totalRows<=p[0])&&this.$pagination.find("span.page-list").hide(),this.$pagination[this.getData().length?"show":"hide"]()),n&&(this.options.pageSize=this.options.formatAllRows()),f.off("click").on("click",a.proxy(this.onPageListChange,this)),g.off("click").on("click",a.proxy(this.onPageFirst,this)),h.off("click").on("click",a.proxy(this.onPagePre,this)),i.off("click").on("click",a.proxy(this.onPageNext,this)),j.off("click").on("click",a.proxy(this.onPageLast,this)),k.off("click").on("click",a.proxy(this.onPageNumber,this)))},p.prototype.updatePagination=function(b){b&&a(b.currentTarget).hasClass("disabled")||(this.options.maintainSelected||this.resetRows(),this.initPagination(),"server"===this.options.sidePagination?this.initServer():this.initBody(),this.trigger("page-change",this.options.pageNumber,this.options.pageSize))},p.prototype.onPageListChange=function(b){var c=a(b.currentTarget);c.parent().addClass("active").siblings().removeClass("active"),this.options.pageSize=c.text().toUpperCase()===this.options.formatAllRows().toUpperCase()?this.options.formatAllRows():+c.text(),this.$toolbar.find(".page-size").text(this.options.pageSize),this.updatePagination(b)},p.prototype.onPageFirst=function(a){this.options.pageNumber=1,this.updatePagination(a)},p.prototype.onPagePre=function(a){this.options.pageNumber-1===0?this.options.pageNumber=this.options.totalPages:this.options.pageNumber--,this.updatePagination(a)},p.prototype.onPageNext=function(a){this.options.pageNumber+1>this.options.totalPages?this.options.pageNumber=1:this.options.pageNumber++,this.updatePagination(a)},p.prototype.onPageLast=function(a){this.options.pageNumber=this.totalPages,this.updatePagination(a)},p.prototype.onPageNumber=function(b){this.options.pageNumber!==+a(b.currentTarget).text()&&(this.options.pageNumber=+a(b.currentTarget).text(),this.updatePagination(b))},p.prototype.initBody=function(b){var f=this,g=[],i=this.getData();this.trigger("pre-body",i),this.$body=this.$el.find(">tbody"),this.$body.length||(this.$body=a("").appendTo(this.$el)),this.options.pagination&&"server"!==this.options.sidePagination||(this.pageFrom=1,this.pageTo=i.length);for(var k=this.pageFrom-1;k"),this.options.cardView&&g.push(c('
    ',this.header.fields.length)),!this.options.cardView&&this.options.detailView&&g.push("",'',c('',this.options.iconsPrefix,this.options.icons.detailOpen),"",""),a.each(this.header.fields,function(b,e){var i="",j=m(n,e,f.options.escape),l="",q={},r="",s=f.header.classes[b],t="",u="",v="",w="",x=f.columns[b];if(!(f.fromHtml&&"undefined"==typeof j||!x.visible||f.options.cardView&&!x.cardVisible)){if(o=c('style="%s"',p.concat(f.header.styles[b]).join("; ")),n["_"+e+"_id"]&&(r=c(' id="%s"',n["_"+e+"_id"])),n["_"+e+"_class"]&&(s=c(' class="%s"',n["_"+e+"_class"])),n["_"+e+"_rowspan"]&&(u=c(' rowspan="%s"',n["_"+e+"_rowspan"])),n["_"+e+"_colspan"]&&(v=c(' colspan="%s"',n["_"+e+"_colspan"])),n["_"+e+"_title"]&&(w=c(' title="%s"',n["_"+e+"_title"])),q=h(f.header,f.header.cellStyles[b],[j,n,k,e],q),q.classes&&(s=c(' class="%s"',q.classes)),q.css){var y=[];for(var z in q.css)y.push(z+": "+q.css[z]);o=c('style="%s"',y.concat(f.header.styles[b]).join("; "))}j=h(x,f.header.formatters[b],[j,n,k],j),n["_"+e+"_data"]&&!a.isEmptyObject(n["_"+e+"_data"])&&a.each(n["_"+e+"_data"],function(a,b){"index"!==a&&(t+=c(' data-%s="%s"',a,b))}),x.checkbox||x.radio?(l=x.checkbox?"checkbox":l,l=x.radio?"radio":l,i=[c(f.options.cardView?'
    ':'',x["class"]||""),"",f.header.formatters[b]&&"string"==typeof j?j:"",f.options.cardView?"
    ":""].join(""),n[f.header.stateField]=j===!0||j&&j.checked):(j="undefined"==typeof j||null===j?f.options.undefinedText:j,i=f.options.cardView?['
    ',f.options.showHeader?c('%s',o,d(f.columns,"field","title",e)):"",c('%s',j),"
    "].join(""):[c("",r,s,o,t,u,v,w),j,""].join(""),f.options.cardView&&f.options.smartDisplay&&""===j&&(i='
    ')),g.push(i)}}),this.options.cardView&&g.push("
    "),g.push("")}g.length||g.push('',c('%s',this.$header.find("th").length,this.options.formatNoMatches()),""),this.$body.html(g.join("")),b||this.scrollTo(0),this.$body.find("> tr[data-index] > td").off("click dblclick").on("click dblclick",function(b){var d=a(this),g=d.parent(),h=f.data[g.data("index")],i=d[0].cellIndex,j=f.getVisibleFields(),k=j[f.options.detailView&&!f.options.cardView?i-1:i],l=f.columns[e(f.columns,k)],n=m(h,k,f.options.escape);if(!d.find(".detail-icon").length&&(f.trigger("click"===b.type?"click-cell":"dbl-click-cell",k,n,h,d),f.trigger("click"===b.type?"click-row":"dbl-click-row",h,g,k), +"click"===b.type&&f.options.clickToSelect&&l.clickToSelect)){var o=g.find(c('[name="%s"]',f.options.selectItemName));o.length&&o[0].click()}}),this.$body.find("> tr[data-index] > td > .detail-icon").off("click").on("click",function(){var b=a(this),d=b.parent().parent(),e=d.data("index"),g=i[e];if(d.next().is("tr.detail-view"))b.find("i").attr("class",c("%s %s",f.options.iconsPrefix,f.options.icons.detailOpen)),d.next().remove(),f.trigger("collapse-row",e,g);else{b.find("i").attr("class",c("%s %s",f.options.iconsPrefix,f.options.icons.detailClose)),d.after(c('',d.find("td").length));var j=d.next().find("td"),k=h(f.options,f.options.detailFormatter,[e,g,j],"");1===j.length&&j.append(k),f.trigger("expand-row",e,g,j)}f.resetView()}),this.$selectItem=this.$body.find(c('[name="%s"]',this.options.selectItemName)),this.$selectItem.off("click").on("click",function(b){b.stopImmediatePropagation();var c=a(this),d=c.prop("checked"),e=f.data[c.data("index")];f.options.maintainSelected&&a(this).is(":radio")&&a.each(f.options.data,function(a,b){b[f.header.stateField]=!1}),e[f.header.stateField]=d,f.options.singleSelect&&(f.$selectItem.not(this).each(function(){f.data[a(this).data("index")][f.header.stateField]=!1}),f.$selectItem.filter(":checked").not(this).prop("checked",!1)),f.updateSelected(),f.trigger(d?"check":"uncheck",e,c)}),a.each(this.header.events,function(b,c){if(c){"string"==typeof c&&(c=h(null,c));var d=f.header.fields[b],e=a.inArray(d,f.getVisibleFields());f.options.detailView&&!f.options.cardView&&(e+=1);for(var g in c)f.$body.find(">tr:not(.no-records-found)").each(function(){var b=a(this),h=b.find(f.options.cardView?".card-view":"td").eq(e),i=g.indexOf(" "),j=g.substring(0,i),k=g.substring(i+1),l=c[g];h.find(k).off(j).on(j,function(a){var c=b.data("index"),e=f.data[c],g=e[d];l.apply(this,[a,g,e,c])})})}}),this.updateSelected(),this.resetView(),this.trigger("post-body",i)},p.prototype.initServer=function(b,c,d){var e,f=this,g={},i={searchText:this.searchText,sortName:this.options.sortName,sortOrder:this.options.sortOrder};this.options.pagination&&(i.pageSize=this.options.pageSize===this.options.formatAllRows()?this.options.totalRows:this.options.pageSize,i.pageNumber=this.options.pageNumber),(d||this.options.url||this.options.ajax)&&("limit"===this.options.queryParamsType&&(i={search:i.searchText,sort:i.sortName,order:i.sortOrder},this.options.pagination&&(i.offset=this.options.pageSize===this.options.formatAllRows()?0:this.options.pageSize*(this.options.pageNumber-1),i.limit=this.options.pageSize===this.options.formatAllRows()?this.options.totalRows:this.options.pageSize)),a.isEmptyObject(this.filterColumnsPartial)||(i.filter=JSON.stringify(this.filterColumnsPartial,null)),g=h(this.options,this.options.queryParams,[i],g),a.extend(g,c||{}),g!==!1&&(b||this.$tableLoading.show(),e=a.extend({},h(null,this.options.ajaxOptions),{type:this.options.method,url:d||this.options.url,data:"application/json"===this.options.contentType&&"post"===this.options.method?JSON.stringify(g):g,cache:this.options.cache,contentType:this.options.contentType,dataType:this.options.dataType,success:function(a){a=h(f.options,f.options.responseHandler,[a],a),f.load(a),f.trigger("load-success",a),b||f.$tableLoading.hide()},error:function(a){f.trigger("load-error",a.status,a),b||f.$tableLoading.hide()}}),this.options.ajax?h(this,this.options.ajax,[e],null):(this._xhr&&4!==this._xhr.readyState&&this._xhr.abort(),this._xhr=a.ajax(e))))},p.prototype.initSearchText=function(){if(this.options.search&&""!==this.options.searchText){var a=this.$toolbar.find(".search input");a.val(this.options.searchText),this.onSearch({currentTarget:a})}},p.prototype.getCaret=function(){var b=this;a.each(this.$header.find("th"),function(c,d){a(d).find(".sortable").removeClass("desc asc").addClass(a(d).data("field")===b.options.sortName?b.options.sortOrder:"both")})},p.prototype.updateSelected=function(){var b=this.$selectItem.filter(":enabled").length&&this.$selectItem.filter(":enabled").length===this.$selectItem.filter(":enabled").filter(":checked").length;this.$selectAll.add(this.$selectAll_).prop("checked",b),this.$selectItem.each(function(){a(this).closest("tr")[a(this).prop("checked")?"addClass":"removeClass"]("selected")})},p.prototype.updateRows=function(){var b=this;this.$selectItem.each(function(){b.data[a(this).data("index")][b.header.stateField]=a(this).prop("checked")})},p.prototype.resetRows=function(){var b=this;a.each(this.data,function(a,c){b.$selectAll.prop("checked",!1),b.$selectItem.prop("checked",!1),b.header.stateField&&(c[b.header.stateField]=!1)})},p.prototype.trigger=function(b){var c=Array.prototype.slice.call(arguments,1);b+=".bs.table",this.options[p.EVENTS[b]].apply(this.options,c),this.$el.trigger(a.Event(b),c),this.options.onAll(b,c),this.$el.trigger(a.Event("all.bs.table"),[b,c])},p.prototype.resetHeader=function(){clearTimeout(this.timeoutId_),this.timeoutId_=setTimeout(a.proxy(this.fitHeader,this),this.$el.is(":hidden")?100:0)},p.prototype.fitHeader=function(){var b,d,e,f,h=this;if(h.$el.is(":hidden"))return void(h.timeoutId_=setTimeout(a.proxy(h.fitHeader,h),100));if(b=this.$tableBody.get(0),d=b.scrollWidth>b.clientWidth&&b.scrollHeight>b.clientHeight+this.$header.outerHeight()?g():0,this.$el.css("margin-top",-this.$header.outerHeight()),e=a(":focus"),e.length>0){var i=e.parents("th");if(i.length>0){var j=i.attr("data-field");if(void 0!==j){var k=this.$header.find("[data-field='"+j+"']");k.length>0&&k.find(":input").addClass("focus-temp")}}}this.$header_=this.$header.clone(!0,!0),this.$selectAll_=this.$header_.find('[name="btSelectAll"]'),this.$tableHeader.css({"margin-right":d}).find("table").css("width",this.$el.outerWidth()).html("").attr("class",this.$el.attr("class")).append(this.$header_),f=a(".focus-temp:visible:eq(0)"),f.length>0&&(f.focus(),this.$header.find(".focus-temp").removeClass("focus-temp")),this.$header.find("th[data-field]").each(function(){h.$header_.find(c('th[data-field="%s"]',a(this).data("field"))).data(a(this).data())});var l=this.getVisibleFields(),m=this.$header_.find("th");this.$body.find(">tr:first-child:not(.no-records-found) > *").each(function(b){var d=a(this),e=b;h.options.detailView&&!h.options.cardView&&(0===b&&h.$header_.find("th.detail").find(".fht-cell").width(d.innerWidth()),e=b-1);var f=h.$header_.find(c('th[data-field="%s"]',l[e]));f.length>1&&(f=a(m[d[0].cellIndex])),f.find(".fht-cell").width(d.innerWidth())}),this.$tableBody.off("scroll").on("scroll",function(){h.$tableHeader.scrollLeft(a(this).scrollLeft()),h.options.showFooter&&!h.options.cardView&&h.$tableFooter.scrollLeft(a(this).scrollLeft())}),h.trigger("post-header")},p.prototype.resetFooter=function(){var b=this,d=b.getData(),e=[];this.options.showFooter&&!this.options.cardView&&(!this.options.cardView&&this.options.detailView&&e.push('
     
    '),a.each(this.columns,function(a,f){var g,i="",j="",k=[],l={},m=c(' class="%s"',f["class"]);if(f.visible&&(!b.options.cardView||f.cardVisible)){if(i=c("text-align: %s; ",f.falign?f.falign:f.align),j=c("vertical-align: %s; ",f.valign),l=h(null,b.options.footerStyle),l&&l.css)for(g in l.css)k.push(g+": "+l.css[g]);e.push(""),e.push('
    '),e.push(h(f,f.footerFormatter,[d]," ")||" "),e.push("
    "),e.push('
    '),e.push("
    "),e.push("")}}),this.$tableFooter.find("tr").html(e.join("")),this.$tableFooter.show(),clearTimeout(this.timeoutFooter_),this.timeoutFooter_=setTimeout(a.proxy(this.fitFooter,this),this.$el.is(":hidden")?100:0))},p.prototype.fitFooter=function(){var b,c,d;return clearTimeout(this.timeoutFooter_),this.$el.is(":hidden")?void(this.timeoutFooter_=setTimeout(a.proxy(this.fitFooter,this),100)):(c=this.$el.css("width"),d=c>this.$tableBody.width()?g():0,this.$tableFooter.css({"margin-right":d}).find("table").css("width",c).attr("class",this.$el.attr("class")),b=this.$tableFooter.find("td"),void this.$body.find(">tr:first-child:not(.no-records-found) > *").each(function(c){var d=a(this);b.eq(c).find(".fht-cell").width(d.innerWidth())}))},p.prototype.toggleColumn=function(a,b,d){if(-1!==a&&(this.columns[a].visible=b,this.initHeader(),this.initSearch(),this.initPagination(),this.initBody(),this.options.showColumns)){var e=this.$toolbar.find(".keep-open input").prop("disabled",!1);d&&e.filter(c('[value="%s"]',a)).prop("checked",b),e.filter(":checked").length<=this.options.minimumCountColumns&&e.filter(":checked").prop("disabled",!0)}},p.prototype.toggleRow=function(a,b,d){-1!==a&&this.$body.find("undefined"!=typeof a?c('tr[data-index="%s"]',a):c('tr[data-uniqueid="%s"]',b))[d?"show":"hide"]()},p.prototype.getVisibleFields=function(){var b=this,c=[];return a.each(this.header.fields,function(a,d){var f=b.columns[e(b.columns,d)];f.visible&&c.push(d)}),c},p.prototype.resetView=function(a){var b=0;if(a&&a.height&&(this.options.height=a.height),this.$selectAll.prop("checked",this.$selectItem.length>0&&this.$selectItem.length===this.$selectItem.filter(":checked").length),this.options.height){var c=k(this.$toolbar),d=k(this.$pagination),e=this.options.height-c-d;this.$tableContainer.css("height",e+"px")}return this.options.cardView?(this.$el.css("margin-top","0"),this.$tableContainer.css("padding-bottom","0"),void this.$tableFooter.hide()):(this.options.showHeader&&this.options.height?(this.$tableHeader.show(),this.resetHeader(),b+=this.$header.outerHeight()):(this.$tableHeader.hide(),this.trigger("post-header")),this.options.showFooter&&(this.resetFooter(),this.options.height&&(b+=this.$tableFooter.outerHeight()+1)),this.getCaret(),this.$tableContainer.css("padding-bottom",b+"px"),void this.trigger("reset-view"))},p.prototype.getData=function(b){return!this.searchText&&a.isEmptyObject(this.filterColumns)&&a.isEmptyObject(this.filterColumnsPartial)?b?this.options.data.slice(this.pageFrom-1,this.pageTo):this.options.data:b?this.data.slice(this.pageFrom-1,this.pageTo):this.data},p.prototype.load=function(b){var c=!1;"server"===this.options.sidePagination?(this.options.totalRows=b.total,c=b.fixedScroll,b=b[this.options.dataField]):a.isArray(b)||(c=b.fixedScroll,b=b.data),this.initData(b),this.initSearch(),this.initPagination(),this.initBody(c)},p.prototype.append=function(a){this.initData(a,"append"),this.initSearch(),this.initPagination(),this.initSort(),this.initBody(!0)},p.prototype.prepend=function(a){this.initData(a,"prepend"),this.initSearch(),this.initPagination(),this.initSort(),this.initBody(!0)},p.prototype.remove=function(b){var c,d,e=this.options.data.length;if(b.hasOwnProperty("field")&&b.hasOwnProperty("values")){for(c=e-1;c>=0;c--)d=this.options.data[c],d.hasOwnProperty(b.field)&&-1!==a.inArray(d[b.field],b.values)&&this.options.data.splice(c,1);e!==this.options.data.length&&(this.initSearch(),this.initPagination(),this.initSort(),this.initBody(!0))}},p.prototype.removeAll=function(){this.options.data.length>0&&(this.options.data.splice(0,this.options.data.length),this.initSearch(),this.initPagination(),this.initBody(!0))},p.prototype.getRowByUniqueId=function(a){var b,c,d,e=this.options.uniqueId,f=this.options.data.length,g=null;for(b=f-1;b>=0;b--){if(c=this.options.data[b],c.hasOwnProperty(e))d=c[e];else{if(!c._data.hasOwnProperty(e))continue;d=c._data[e]}if("string"==typeof d?a=a.toString():"number"==typeof d&&(Number(d)===d&&d%1===0?a=parseInt(a):d===Number(d)&&0!==d&&(a=parseFloat(a))),d===a){g=c;break}}return g},p.prototype.removeByUniqueId=function(a){var b=this.options.data.length,c=this.getRowByUniqueId(a);c&&this.options.data.splice(this.options.data.indexOf(c),1),b!==this.options.data.length&&(this.initSearch(),this.initPagination(),this.initBody(!0))},p.prototype.updateByUniqueId=function(b){var c=this,d=a.isArray(b)?b:[b];a.each(d,function(b,d){var e;d.hasOwnProperty("id")&&d.hasOwnProperty("row")&&(e=a.inArray(c.getRowByUniqueId(d.id),c.options.data),-1!==e&&a.extend(c.options.data[e],d.row))}),this.initSearch(),this.initSort(),this.initBody(!0)},p.prototype.insertRow=function(a){a.hasOwnProperty("index")&&a.hasOwnProperty("row")&&(this.data.splice(a.index,0,a.row),this.initSearch(),this.initPagination(),this.initSort(),this.initBody(!0))},p.prototype.updateRow=function(b){var c=this,d=a.isArray(b)?b:[b];a.each(d,function(b,d){d.hasOwnProperty("index")&&d.hasOwnProperty("row")&&a.extend(c.options.data[d.index],d.row)}),this.initSearch(),this.initSort(),this.initBody(!0)},p.prototype.showRow=function(a){(a.hasOwnProperty("index")||a.hasOwnProperty("uniqueId"))&&this.toggleRow(a.index,a.uniqueId,!0)},p.prototype.hideRow=function(a){(a.hasOwnProperty("index")||a.hasOwnProperty("uniqueId"))&&this.toggleRow(a.index,a.uniqueId,!1)},p.prototype.getRowsHidden=function(b){var c=a(this.$body[0]).children().filter(":hidden"),d=0;if(b)for(;dtr");if(this.options.detailView&&!this.options.cardView&&(g+=1),e=j.eq(f).find(">td").eq(g),!(0>f||0>g||f>=this.data.length)){for(c=f;f+h>c;c++)for(d=g;g+i>d;d++)j.eq(c).find(">td").eq(d).hide();e.attr("rowspan",h).attr("colspan",i).show()}},p.prototype.updateCell=function(a){a.hasOwnProperty("index")&&a.hasOwnProperty("field")&&a.hasOwnProperty("value")&&(this.data[a.index][a.field]=a.value,a.reinit!==!1&&(this.initSort(),this.initBody(!0)))},p.prototype.getOptions=function(){return this.options},p.prototype.getSelections=function(){var b=this;return a.grep(this.options.data,function(a){return a[b.header.stateField]})},p.prototype.getAllSelections=function(){var b=this;return a.grep(this.options.data,function(a){return a[b.header.stateField]})},p.prototype.checkAll=function(){this.checkAll_(!0)},p.prototype.uncheckAll=function(){this.checkAll_(!1)},p.prototype.checkInvert=function(){var b=this,c=b.$selectItem.filter(":enabled"),d=c.filter(":checked");c.each(function(){a(this).prop("checked",!a(this).prop("checked"))}),b.updateRows(),b.updateSelected(),b.trigger("uncheck-some",d),d=b.getSelections(),b.trigger("check-some",d)},p.prototype.checkAll_=function(a){var b;a||(b=this.getSelections()),this.$selectAll.add(this.$selectAll_).prop("checked",a),this.$selectItem.filter(":enabled").prop("checked",a),this.updateRows(),a&&(b=this.getSelections()),this.trigger(a?"check-all":"uncheck-all",b)},p.prototype.check=function(a){this.check_(!0,a)},p.prototype.uncheck=function(a){this.check_(!1,a)},p.prototype.check_=function(a,b){var d=this.$selectItem.filter(c('[data-index="%s"]',b)).prop("checked",a);this.data[b][this.header.stateField]=a,this.updateSelected(),this.trigger(a?"check":"uncheck",this.data[b],d)},p.prototype.checkBy=function(a){this.checkBy_(!0,a)},p.prototype.uncheckBy=function(a){this.checkBy_(!1,a)},p.prototype.checkBy_=function(b,d){if(d.hasOwnProperty("field")&&d.hasOwnProperty("values")){var e=this,f=[];a.each(this.options.data,function(g,h){if(!h.hasOwnProperty(d.field))return!1;if(-1!==a.inArray(h[d.field],d.values)){var i=e.$selectItem.filter(":enabled").filter(c('[data-index="%s"]',g)).prop("checked",b);h[e.header.stateField]=b,f.push(h),e.trigger(b?"check":"uncheck",h,i)}}),this.updateSelected(),this.trigger(b?"check-some":"uncheck-some",f)}},p.prototype.destroy=function(){this.$el.insertBefore(this.$container),a(this.options.toolbar).insertBefore(this.$el),this.$container.next().remove(),this.$container.remove(),this.$el.html(this.$el_.html()).css("margin-top","0").attr("class",this.$el_.attr("class")||"")},p.prototype.showLoading=function(){this.$tableLoading.show()},p.prototype.hideLoading=function(){this.$tableLoading.hide()},p.prototype.togglePagination=function(){this.options.pagination=!this.options.pagination;var a=this.$toolbar.find('button[name="paginationSwitch"] i');this.options.pagination?a.attr("class",this.options.iconsPrefix+" "+this.options.icons.paginationSwitchDown):a.attr("class",this.options.iconsPrefix+" "+this.options.icons.paginationSwitchUp),this.updatePagination()},p.prototype.refresh=function(a){a&&a.url&&(this.options.pageNumber=1),this.initServer(a&&a.silent,a&&a.query,a&&a.url),this.trigger("refresh",a)},p.prototype.resetWidth=function(){this.options.showHeader&&this.options.height&&this.fitHeader(),this.options.showFooter&&this.fitFooter()},p.prototype.showColumn=function(a){this.toggleColumn(e(this.columns,a),!0,!0)},p.prototype.hideColumn=function(a){this.toggleColumn(e(this.columns,a),!1,!0)},p.prototype.getHiddenColumns=function(){return a.grep(this.columns,function(a){return!a.visible})},p.prototype.getVisibleColumns=function(){return a.grep(this.columns,function(a){return a.visible})},p.prototype.toggleAllColumns=function(b){if(a.each(this.columns,function(a){this.columns[a].visible=b}),this.initHeader(),this.initSearch(),this.initPagination(),this.initBody(),this.options.showColumns){var c=this.$toolbar.find(".keep-open input").prop("disabled",!1);c.filter(":checked").length<=this.options.minimumCountColumns&&c.filter(":checked").prop("disabled",!0)}},p.prototype.showAllColumns=function(){this.toggleAllColumns(!0)},p.prototype.hideAllColumns=function(){this.toggleAllColumns(!1)},p.prototype.filterBy=function(b){this.filterColumns=a.isEmptyObject(b)?{}:b,this.options.pageNumber=1,this.initSearch(),this.updatePagination()},p.prototype.scrollTo=function(a){return"string"==typeof a&&(a="bottom"===a?this.$tableBody[0].scrollHeight:0),"number"==typeof a&&this.$tableBody.scrollTop(a),"undefined"==typeof a?this.$tableBody.scrollTop():void 0},p.prototype.getScrollPosition=function(){return this.scrollTo()},p.prototype.selectPage=function(a){a>0&&a<=this.options.totalPages&&(this.options.pageNumber=a,this.updatePagination())},p.prototype.prevPage=function(){this.options.pageNumber>1&&(this.options.pageNumber--,this.updatePagination())},p.prototype.nextPage=function(){this.options.pageNumber tr[data-index="%s"]',b));d.next().is("tr.detail-view")===(a?!1:!0)&&d.find("> td > .detail-icon").click()},p.prototype.expandRow=function(a){this.expandRow_(!0,a)},p.prototype.collapseRow=function(a){this.expandRow_(!1,a)},p.prototype.expandAllRows=function(b){if(b){var d=this.$body.find(c('> tr[data-index="%s"]',0)),e=this,f=null,g=!1,h=-1;if(d.next().is("tr.detail-view")?d.next().next().is("tr.detail-view")||(d.next().find(".detail-icon").click(),g=!0):(d.find("> td > .detail-icon").click(),g=!0),g)try{h=setInterval(function(){f=e.$body.find("tr.detail-view").last().find(".detail-icon"),f.length>0?f.click():clearInterval(h)},1)}catch(i){clearInterval(h)}}else for(var j=this.$body.children(),k=0;kthis.$items.length-1||0>b?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){c.to(b)}):d==b?this.pause().cycle():this.slide(b>d?"next":"prev",a(this.$items[b]))},b.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},b.prototype.next=function(){return this.sliding?void 0:this.slide("next")},b.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},b.prototype.slide=function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,g="next"==b?"left":"right",h="next"==b?"first":"last",i=this;if(!e.length){if(!this.options.wrap)return;e=this.$element.find(".item")[h]()}if(e.hasClass("active"))return this.sliding=!1;var j=a.Event("slide.bs.carousel",{relatedTarget:e[0],direction:g});return this.$element.trigger(j),j.isDefaultPrevented()?void 0:(this.sliding=!0,f&&this.pause(),this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid.bs.carousel",function(){var b=a(i.$indicators.children()[i.getActiveIndex()]);b&&b.addClass("active")})),a.support.transition&&this.$element.hasClass("slide")?(e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),d.one(a.support.transition.end,function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger("slid.bs.carousel")},0)}).emulateTransitionEnd(1e3*d.css("transition-duration").slice(0,-1))):(d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger("slid.bs.carousel")),f&&this.cycle(),this)};var c=a.fn.carousel;a.fn.carousel=function(c){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c),g="string"==typeof c?c:f.slide;e||d.data("bs.carousel",e=new b(this,f)),"number"==typeof c?e.to(c):g?e[g]():f.interval&&e.pause().cycle()})},a.fn.carousel.Constructor=b,a.fn.carousel.noConflict=function(){return a.fn.carousel=c,this},a(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(b){var c,d=a(this),e=a(d.attr("data-target")||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"")),f=a.extend({},e.data(),d.data()),g=d.attr("data-slide-to");g&&(f.interval=!1),e.carousel(f),(g=d.attr("data-slide-to"))&&e.data("bs.carousel").to(g),b.preventDefault()}),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var b=a(this);b.carousel(b.data())})})}(jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.DEFAULTS={toggle:!0},b.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},b.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b=a.Event("show.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.$parent&&this.$parent.find("> .panel > .in");if(c&&c.length){var d=c.data("bs.collapse");if(d&&d.transitioning)return;c.collapse("hide"),d||c.data("bs.collapse",null)}var e=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[e](0),this.transitioning=1;var f=function(){this.$element.removeClass("collapsing").addClass("collapse in")[e]("auto"),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return f.call(this);var g=a.camelCase(["scroll",e].join("-"));this.$element.one(a.support.transition.end,a.proxy(f,this)).emulateTransitionEnd(350)[e](this.$element[0][g])}}},b.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var d=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};return a.support.transition?void this.$element[c](0).one(a.support.transition.end,a.proxy(d,this)).emulateTransitionEnd(350):d.call(this)}}},b.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var c=a.fn.collapse;a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c);!e&&f.toggle&&"show"==c&&(c=!c),e||d.data("bs.collapse",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.collapse.Constructor=b,a.fn.collapse.noConflict=function(){return a.fn.collapse=c,this},a(document).on("click.bs.collapse.data-api","[data-toggle=collapse]",function(b){var c,d=a(this),e=d.attr("data-target")||b.preventDefault()||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,""),f=a(e),g=f.data("bs.collapse"),h=g?"toggle":d.data(),i=d.attr("data-parent"),j=i&&a(i);g&&g.transitioning||(j&&j.find('[data-toggle=collapse][data-parent="'+i+'"]').not(d).addClass("collapsed"),d[f.hasClass("in")?"addClass":"removeClass"]("collapsed")),f.collapse(h)})}(jQuery),+function(a){"use strict";function b(b){a(d).remove(),a(e).each(function(){var d=c(a(this)),e={relatedTarget:this};d.hasClass("open")&&(d.trigger(b=a.Event("hide.bs.dropdown",e)),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dropdown",e))})}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}var d=".dropdown-backdrop",e="[data-toggle=dropdown]",f=function(b){a(b).on("click.bs.dropdown",this.toggle)};f.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(''}),b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),b.prototype.constructor=b,b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content")[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},b.prototype.hasContent=function(){return this.getTitle()||this.getContent()},b.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},b.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var c=a.fn.popover;a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof c&&c;(e||"destroy"!=c)&&(e||d.data("bs.popover",e=new b(this,f)),"string"==typeof c&&e[c]())})},a.fn.popover.Constructor=b,a.fn.popover.noConflict=function(){return a.fn.popover=c,this}}(jQuery),+function(a){"use strict";function b(c,d){var e,f=a.proxy(this.process,this);this.$element=a(a(c).is("body")?window:c),this.$body=a("body"),this.$scrollElement=this.$element.on("scroll.bs.scroll-spy.data-api",f),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||(e=a(c).attr("href"))&&e.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.offsets=a([]),this.targets=a([]),this.activeTarget=null,this.refresh(),this.process()}b.DEFAULTS={offset:10},b.prototype.refresh=function(){var b=this.$element[0]==window?"offset":"position";this.offsets=a([]),this.targets=a([]);{var c=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[b]().top+(!a.isWindow(c.$scrollElement.get(0))&&c.$scrollElement.scrollTop()),e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){c.offsets.push(this[0]),c.targets.push(this[1])})}},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,d=c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(b>=d)return g!=(a=f.last()[0])&&this.activate(a);if(g&&b<=e[0])return g!=(a=f[0])&&this.activate(a);for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,a(this.selector).parentsUntil(this.options.target,".active").removeClass("active");var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")};var c=a.fn.scrollspy;a.fn.scrollspy=function(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=c,this},a(window).on("load",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);b.scrollspy(b.data())})})}(jQuery),+function(a){"use strict";var b=function(b){this.element=a(b)};b.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a")[0],f=a.Event("show.bs.tab",{relatedTarget:e});if(b.trigger(f),!f.isDefaultPrevented()){var g=a(d);this.activate(b.parent("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})}}},b.prototype.activate=function(b,c,d){function e(){f.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),g?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var f=c.find("> .active"),g=d&&a.support.transition&&f.hasClass("fade");g?f.one(a.support.transition.end,e).emulateTransitionEnd(150):e(),f.removeClass("in")};var c=a.fn.tab;a.fn.tab=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new b(this)),"string"==typeof c&&e[c]()})},a.fn.tab.Constructor=b,a.fn.tab.noConflict=function(){return a.fn.tab=c,this},a(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(b){b.preventDefault(),a(this).tab("show")})}(jQuery),+function(a){"use strict";var b=function(c,d){this.options=a.extend({},b.DEFAULTS,d),this.$window=a(window).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(c),this.affixed=this.unpin=this.pinnedOffset=null,this.checkPosition()};b.RESET="affix affix-top affix-bottom",b.DEFAULTS={offset:0},b.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(b.RESET).addClass("affix");var a=this.$window.scrollTop(),c=this.$element.offset();return this.pinnedOffset=c.top-a},b.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},b.prototype.checkPosition=function(){if(this.$element.is(":visible")){var c=a(document).height(),d=this.$window.scrollTop(),e=this.$element.offset(),f=this.options.offset,g=f.top,h=f.bottom;"top"==this.affixed&&(e.top+=d),"object"!=typeof f&&(h=g=f),"function"==typeof g&&(g=f.top(this.$element)),"function"==typeof h&&(h=f.bottom(this.$element));var i=null!=this.unpin&&d+this.unpin<=e.top?!1:null!=h&&e.top+this.$element.height()>=c-h?"bottom":null!=g&&g>=d?"top":!1;if(this.affixed!==i){this.unpin&&this.$element.css("top","");var j="affix"+(i?"-"+i:""),k=a.Event(j+".bs.affix");this.$element.trigger(k),k.isDefaultPrevented()||(this.affixed=i,this.unpin="bottom"==i?this.getPinnedOffset():null,this.$element.removeClass(b.RESET).addClass(j).trigger(a.Event(j.replace("affix","affixed"))),"bottom"==i&&this.$element.offset({top:c-h-this.$element.height()}))}}};var c=a.fn.affix;a.fn.affix=function(c){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof c&&c;e||d.data("bs.affix",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.affix.Constructor=b,a.fn.affix.noConflict=function(){return a.fn.affix=c,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var b=a(this),c=b.data();c.offset=c.offset||{},c.offsetBottom&&(c.offset.bottom=c.offsetBottom),c.offsetTop&&(c.offset.top=c.offsetTop),b.affix(c)})})}(jQuery); \ No newline at end of file diff --git a/resmgr/src/main/webapp/resmgr-sdn/js/brs.js b/resmgr/src/main/webapp/resmgr-sdn/js/brs.js new file mode 100644 index 00000000..f0d33b0f --- /dev/null +++ b/resmgr/src/main/webapp/resmgr-sdn/js/brs.js @@ -0,0 +1,393 @@ +/* Copyright 2016-2017, Huawei Technologies Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +$('.siteDeleteImg').click(function () { + var data = $(this).parent().parent().parent().find('td:last').find('div:last').html(); + alert(data); + var jsonObj = JSON.parse(data); + for (var i = 0; i < jsonObj.length; i++) { + var obj = jsonObj[i]; + var rowData = [obj.tpName, obj.peName, obj.vlanId, obj.siteCidr, obj.ip]; + $('#underlayTpDataTable').DataTable(); + $('#underlayTpDataTable').dataTable().fnAddData(rowData); + } +}); + + + +function deleteSite(objectId) { + var requestUrl = "/openoapi/sdnobrs/v1/sites/" + objectId; + $ + .ajax({ + type: "DELETE", + url: requestUrl, + contentType: "application/json", + success: function (jsonobj) { + $('#site').bootstrapTable('remove', { + field: 'id', + values: [objectId] + }); + alert("Delete Site successfull !!!"); + }, + error: function (xhr, ajaxOptions, thrownError) { + alert("Error on deleting site: " + xhr.responseText); + } + }); +} +function deleteLink(objectId) { + var requestUrl = "/openoapi/sdnobrs/v1/topological-links/" + objectId; + $ + .ajax({ + type: "DELETE", + url: requestUrl, + contentType: "application/json", + success: function (jsonobj) { + $('#link').bootstrapTable('remove', { + field: 'id', + values: [objectId] + }); + alert("Delete Link successfull !!!"); + }, + error: function (xhr, ajaxOptions, thrownError) { + alert("Error on deleting link : " + xhr.responseText); + } + }); +} + +function deleteNe(objectId) { + var requestUrl = "/openoapi/sdnobrs/v1/managed-elements/" + objectId; + $ + .ajax({ + type: "DELETE", + url: requestUrl, + contentType: "application/json", + success: function (jsonobj) { + $('#ne').bootstrapTable('remove', { + field: 'id', + values: [objectId] + }); + alert("Delete NE successfull !!!"); + }, + error: function (xhr, ajaxOptions, thrownError) { + alert("Error on deleting ne : " + xhr.responseText); + } + }); +} + +function deletePort(objectId) { + var requestUrl = "/openoapi/sdnobrs/v1/logical-termination-points/" + objectId; + $ + .ajax({ + type: "DELETE", + url: requestUrl, + contentType: "application/json", + success: function (jsonobj) { + $('#port').bootstrapTable('remove', { + field: 'id', + values: [objectId] + }); + alert("Delete Port successfull !!!"); + }, + error: function (xhr, ajaxOptions, thrownError) { + alert("Error on deleting port : " + xhr.responseText); + } + }); +} +function loadSiteData() { + var requestUrl = "/openoapi/sdnobrs/v1/sites"; + $ + .ajax({ + type: "GET", + url: requestUrl, + contentType: "application/json", + success: function (jsonobj) { + $('#site').bootstrapTable({ + data: jsonobj.sites + }); + }, + error: function (xhr, ajaxOptions, thrownError) { + alert("Error on getting site data : " + xhr.responseText); + } + }); +} +function loadLinkData() { + var requestUrl = "/openoapi/sdnobrs/v1/topological-links"; + $ + .ajax({ + type: "GET", + url: requestUrl, + contentType: "application/json", + success: function (jsonobj) { + $('#link').bootstrapTable({ + data: jsonobj.topologicalLinks + }); + }, + error: function (xhr, ajaxOptions, thrownError) { + alert("Error on getting link data : " + xhr.responseText); + } + }); +} +function loadNeData() { + + var requestUrl = "/openoapi/sdnobrs/v1/managed-elements"; + $ + .ajax({ + type: "GET", + url: requestUrl, + contentType: "application/json", + success: function (jsonobj) { + + var nedata = jsonobj.managedElements; + var neMap = []; + neMap = loadControllerData(); + /*$.each(nedata,function(k,v){ + nedata[k]; + })*/; + + $('#ne').bootstrapTable({ + data: nedata + }); + $('#ne').bootstrapTable('refresh'); + + }, + error: function (xhr, ajaxOptions, thrownError) { + alert("Error on getting ne data : " + xhr.responseText); + } + }); +} +function loadPortData() { + var requestUrl = "/openoapi/sdnobrs/v1/logical-termination-points"; + $ + .ajax({ + type: "GET", + url: requestUrl, + contentType: "application/json", + success: function (jsonobj) { + $('#port').bootstrapTable({ + data: jsonobj.logicalTerminationPoints + }); + }, + error: function (xhr, ajaxOptions, thrownError) { + alert("Error on getting port data : " + xhr.responseText); + } + }); +} +function loadControllerData() { + var neMap = []; + var requestUrl = "/openoapi/extsys/v1/sdncontrollers"; + $.ajax({ + type: "GET", + async: false, + url: requestUrl, + contentType: "application/json", + success: function (jsonobj) { + + neMap = fillSelect(jsonobj); + + }, + error: function (xhr, ajaxOptions, thrownError) { + alert("Error on getting controller data : " + xhr.responseText); + } + }); + return neMap; +} +function fillSelect(str){ + var json; + if(typeof str === 'object'){ + json = str; + } + else{ + json = eval('(' + str + ')'); + } + var seleObj = $('#controller') + seleObj.find("option").remove(); + var neMap = []; + for(var i=0;i < json.length;i++){ + seleObj.append(''); + neMap[json[i].sdnControllerId] = json[i].name; + } + return neMap; +} +$(function () { + $('.creat-btn').click(function () { + $('#vmAppDialog').addClass('in').css({'display': 'block'}); + + }); + $('.close,.button-previous').click(function () { + $('#vmAppDialog').removeClass('in').css('display', 'none'); + }); + $('.detail-top ul li').click(function () { + $(this).addClass('current').siblings().removeClass('current'); + }); + $('.para').click(function () { + if ($('#serviceTemplateName').val() == '') { + alert('Please choose the service templet!'); + $('#flavorTab').css('display', 'none'); + } else { + $('#flavorTab').css('display', 'block'); + } + $('#basicTab').css('display', 'block'); + }); + $('.basic').click(function () { + $('#flavorTab').css('display', 'none'); + }); + + $('.table tbody tr').click(function () { + $(this).addClass('openoTable_row_selected').siblings().removeClass('openoTable_row_selected'); + }); + $('.table tr:odd').addClass('active'); + $('#false').click(function () { + loadControllerData(); + $('#vmAppDialog').addClass('in').css({'display': 'block'}); + }); + $('.close,.button-previous').click(function () { + $('#vmAppDialog').removeClass('in').css('display', 'none'); + }); + $('#filterTpLogicalType').click(function () { + $('#filterTpLogicalType_select_popupcontainer').toggleClass('openo-hide'); + $('#filterTpLogicalType').toggleClass('openo-focus'); + var oLeft = $('#open_base_tpL_td6').offset().left; + var oTop = $('#open_base_tpL_td6').offset().top; + var oHeight = $('#open_base_tpL_td6').height(); + $('#filterTpLogicalType_select_popupcontainer').css({'left': oLeft, 'top': oTop + oHeight + 10}); + }); + $('div.openo-select-popup-container>div.openo-select-item>label').click(function () { + var Lvalue = $(this).html(); + $('#filterTpLogicalType_select_input').attr('value', Lvalue); + $('#filterTpLogicalType_select_popupcontainer').addClass('openo-hide'); + $('#filterTpLogicalType').removeClass('openo-focus'); + }); + $.fn.serializeObject = function () { + var o = {}; + var a = this.serializeArray(); + $.each(a, function () { + if (o[this.name] !== undefined) { + if (!o[this.name].push) { + o[this.name] = [o[this.name]]; + } + o[this.name].push(this.value || ''); + } else { + o[this.name] = this.value || ''; + } + }); + return o; + }; + $('#createSite').click(function () { + var formData = JSON.stringify($("#vmAppForm").serializeObject()); + var jsonobj = JSON.parse(formData); + var newJson = {"site": jsonobj}; + formData = JSON.stringify(newJson); + var requestUrl = "/openoapi/sdnobrs/v1/sites"; + $ + .ajax({ + type: "POST", + url: requestUrl, + contentType: "application/json", + dataType: "json", + data: formData, + success: function (jsonResp) { + alert("Site saved successfully!!!"); + jsonobj["id"] = jsonResp.site.id; + $('#site').bootstrapTable("append", jsonobj); + $('#vmAppDialog').removeClass('in').css('display', 'none'); + }, + error: function (xhr, ajaxOptions, thrownError) { + alert("Error on page : " + xhr.responseText); + } + }); + }); + + $('#createNe').click(function () { + var formData = JSON.stringify($("#neForm").serializeObject()); + var jsonobj = JSON.parse(formData); + var controllerIDs = [] ; + controllerIDs[0]= jsonobj.controller; + jsonobj.controllerID = controllerIDs; + var newJson = {"managedElement": jsonobj}; + formData = JSON.stringify(newJson); + var requestUrl = "/openoapi/sdnobrs/v1/managed-elements"; + $ + .ajax({ + type: "POST", + url: requestUrl, + contentType: "application/json", + dataType: "json", + data: formData, + success: function (jsonResp) { + alert("NE saved successfully!!!"); + jsonobj["id"] = jsonResp.managedElement.id; + $('#ne').bootstrapTable("append", jsonobj); + $('#vmAppDialog').removeClass('in').css('display', 'none'); + + }, + error: function (xhr, ajaxOptions, thrownError) { + alert("Error on page : " + xhr.responseText); + } + }); + }); + + $('#createPort').click(function () { + var formData = JSON.stringify($("#portForm").serializeObject()); + var jsonobj = JSON.parse(formData); + var newJson = {"logicalTerminationPoint": jsonobj}; + formData = JSON.stringify(newJson); + var requestUrl = "/openoapi/sdnobrs/v1/logical-termination-points"; + $ + .ajax({ + type: "POST", + url: requestUrl, + contentType: "application/json", + dataType: "json", + data: formData, + success: function (jsonResp) { + alert("Port saved successfully!!!"); + + jsonobj["id"] = jsonResp.logicalTerminationPoint.id; + $('#port').bootstrapTable("append", jsonobj); + $('#vmAppDialog').removeClass('in').css('display', 'none'); + + }, + error: function (xhr, ajaxOptions, thrownError) { + alert("Error on page : " + xhr.responseText); + } + }); + }); + + $('#createLink').click(function () { + var formData = JSON.stringify($("#linkForm").serializeObject()); + var jsonobj = JSON.parse(formData); + var newJson = {"topologicalLink": jsonobj}; + formData = JSON.stringify(newJson); + var requestUrl = "/openoapi/sdnobrs/v1/topological-links"; + $ + .ajax({ + type: "POST", + url: requestUrl, + contentType: "application/json", + dataType: "json", + data: formData, + success: function (jsonResp) { + alert("Link saved successfully!!!"); + jsonobj["id"] = jsonResp.topologicalLink.id; + $('#link').bootstrapTable("append", jsonobj); + $('#vmAppDialog').removeClass('in').css('display', 'none'); + + }, + error: function (xhr, ajaxOptions, thrownError) { + alert("Error on page : " + xhr.responseText); + } + }); + }); + +}) \ No newline at end of file diff --git a/resmgr/src/main/webapp/resmgr-sdn/js/jquery-1.11.2.min.js b/resmgr/src/main/webapp/resmgr-sdn/js/jquery-1.11.2.min.js new file mode 100644 index 00000000..e6a051d0 --- /dev/null +++ b/resmgr/src/main/webapp/resmgr-sdn/js/jquery-1.11.2.min.js @@ -0,0 +1,4 @@ +/*! jQuery v1.11.2 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */ +!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l="1.11.2",m=function(a,b){return new m.fn.init(a,b)},n=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,o=/^-ms-/,p=/-([\da-z])/gi,q=function(a,b){return b.toUpperCase()};m.fn=m.prototype={jquery:l,constructor:m,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&&m.isArray(a)?a:[]):f=a&&m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!m.isArray(a)&&a-parseFloat(a)+1>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&m.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(r(Object(a))?m.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||m.guid++,e):void 0},now:function(){return+new Date},support:k}),m.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function r(a){var b=a.length,c=m.type(a);return"function"===c||m.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var s=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=hb(),z=hb(),A=hb(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N=M.replace("w","w#"),O="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+N+"))|)"+L+"*\\]",P=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+O+")*)|.*)\\)|)",Q=new RegExp(L+"+","g"),R=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),S=new RegExp("^"+L+"*,"+L+"*"),T=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),U=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),V=new RegExp(P),W=new RegExp("^"+N+"$"),X={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+O),PSEUDO:new RegExp("^"+P),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},eb=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(fb){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function gb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],k=b.nodeType,"string"!=typeof a||!a||1!==k&&9!==k&&11!==k)return d;if(!e&&p){if(11!==k&&(f=_.exec(a)))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return H.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName)return H.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=1!==k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+rb(o[l]);w=ab.test(a)&&pb(b.parentNode)||b,x=o.join(",")}if(x)try{return H.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function hb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ib(a){return a[u]=!0,a}function jb(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function kb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function lb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function nb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function ob(a){return ib(function(b){return b=+b,ib(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function pb(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=gb.support={},f=gb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=gb.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=g.documentElement,e=g.defaultView,e&&e!==e.top&&(e.addEventListener?e.addEventListener("unload",eb,!1):e.attachEvent&&e.attachEvent("onunload",eb)),p=!f(g),c.attributes=jb(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=jb(function(a){return a.appendChild(g.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(g.getElementsByClassName),c.getById=jb(function(a){return o.appendChild(a).id=u,!g.getElementsByName||!g.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(g.querySelectorAll))&&(jb(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),jb(function(a){var b=g.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&jb(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",P)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?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)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===g||a.ownerDocument===v&&t(v,a)?-1:b===g||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===g?-1:b===g?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return lb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?lb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},g):n},gb.matches=function(a,b){return gb(a,null,null,b)},gb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return gb(b,n,null,[a]).length>0},gb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},gb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},gb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},gb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=gb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=gb.selectors={cacheLength:50,createPseudo:ib,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===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]||gb.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]&&gb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(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){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=gb.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.replace(Q," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},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){while(p){l=b;while(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){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||gb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ib(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ib(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?ib(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ib(function(a){return function(b){return gb(a,b).length>0}}),contains:ib(function(a){return a=a.replace(cb,db),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ib(function(a){return W.test(a||"")||gb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("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===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.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.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.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"))||"text"===b.toLowerCase())},first:ob(function(){return[0]}),last:ob(function(a,b){return[b-1]}),eq:ob(function(a,b,c){return[0>c?c+b:c]}),even:ob(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:ob(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:ob(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:ob(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function sb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function tb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ub(a,b,c){for(var d=0,e=b.length;e>d;d++)gb(a,b[d],c);return c}function vb(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function wb(a,b,c,d,e,f){return d&&!d[u]&&(d=wb(d)),e&&!e[u]&&(e=wb(e,f)),ib(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ub(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:vb(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=vb(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=vb(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function xb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=sb(function(a){return a===b},h,!0),l=sb(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[sb(tb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return wb(i>1&&tb(m),i>1&&rb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&xb(a.slice(i,e)),f>e&&xb(a=a.slice(e)),f>e&&rb(a))}m.push(c)}return tb(m)}function yb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=F.call(i));s=vb(s)}H.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&gb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?ib(f):f}return h=gb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=xb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,yb(e,d)),f.selector=a}return f},i=gb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&pb(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&rb(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&pb(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=jb(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),jb(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||kb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&jb(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||kb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),jb(function(a){return null==a.getAttribute("disabled")})||kb(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),gb}(a);m.find=s,m.expr=s.selectors,m.expr[":"]=m.expr.pseudos,m.unique=s.uniqueSort,m.text=s.getText,m.isXMLDoc=s.isXML,m.contains=s.contains;var t=m.expr.match.needsContext,u=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/^.[^:#\[\.,]*$/;function w(a,b,c){if(m.isFunction(b))return m.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return m.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(v.test(b))return m.filter(b,a,c);b=m.filter(b,a)}return m.grep(a,function(a){return m.inArray(a,b)>=0!==c})}m.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?m.find.matchesSelector(d,a)?[d]:[]:m.find.matches(a,m.grep(b,function(a){return 1===a.nodeType}))},m.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(m(a).filter(function(){for(b=0;e>b;b++)if(m.contains(d[b],this))return!0}));for(b=0;e>b;b++)m.find(a,d[b],c);return c=this.pushStack(e>1?m.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(w(this,a||[],!1))},not:function(a){return this.pushStack(w(this,a||[],!0))},is:function(a){return!!w(this,"string"==typeof a&&t.test(a)?m(a):a||[],!1).length}});var x,y=a.document,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=m.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||x).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof m?b[0]:b,m.merge(this,m.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:y,!0)),u.test(c[1])&&m.isPlainObject(b))for(c in b)m.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=y.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return x.find(a);this.length=1,this[0]=d}return this.context=y,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):m.isFunction(a)?"undefined"!=typeof x.ready?x.ready(a):a(m):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),m.makeArray(a,this))};A.prototype=m.fn,x=m(y);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};m.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!m(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),m.fn.extend({has:function(a){var b,c=m(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(m.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=t.test(a)||"string"!=typeof a?m(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&m.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?m.unique(f):f)},index:function(a){return a?"string"==typeof a?m.inArray(this[0],m(a)):m.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(m.unique(m.merge(this.get(),m(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}m.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return m.dir(a,"parentNode")},parentsUntil:function(a,b,c){return m.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return m.dir(a,"nextSibling")},prevAll:function(a){return m.dir(a,"previousSibling")},nextUntil:function(a,b,c){return m.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return m.dir(a,"previousSibling",c)},siblings:function(a){return m.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return m.sibling(a.firstChild)},contents:function(a){return m.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:m.merge([],a.childNodes)}},function(a,b){m.fn[a]=function(c,d){var e=m.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=m.filter(d,e)),this.length>1&&(C[a]||(e=m.unique(e)),B.test(a)&&(e=e.reverse())),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return m.each(a.match(E)||[],function(a,c){b[c]=!0}),b}m.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):m.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){m.each(b,function(b,c){var d=m.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&m.each(arguments,function(a,c){var d;while((d=m.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?m.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},m.extend({Deferred:function(a){var b=[["resolve","done",m.Callbacks("once memory"),"resolved"],["reject","fail",m.Callbacks("once memory"),"rejected"],["notify","progress",m.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return m.Deferred(function(c){m.each(b,function(b,f){var g=m.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&m.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?m.extend(a,d):d}},e={};return d.pipe=d.then,m.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=0,c=d.call(arguments),e=c.length,f=1!==e||a&&m.isFunction(a.promise)?e:0,g=1===f?a:m.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&m.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;m.fn.ready=function(a){return m.ready.promise().done(a),this},m.extend({isReady:!1,readyWait:1,holdReady:function(a){a?m.readyWait++:m.ready(!0)},ready:function(a){if(a===!0?!--m.readyWait:!m.isReady){if(!y.body)return setTimeout(m.ready);m.isReady=!0,a!==!0&&--m.readyWait>0||(H.resolveWith(y,[m]),m.fn.triggerHandler&&(m(y).triggerHandler("ready"),m(y).off("ready")))}}});function I(){y.addEventListener?(y.removeEventListener("DOMContentLoaded",J,!1),a.removeEventListener("load",J,!1)):(y.detachEvent("onreadystatechange",J),a.detachEvent("onload",J))}function J(){(y.addEventListener||"load"===event.type||"complete"===y.readyState)&&(I(),m.ready())}m.ready.promise=function(b){if(!H)if(H=m.Deferred(),"complete"===y.readyState)setTimeout(m.ready);else if(y.addEventListener)y.addEventListener("DOMContentLoaded",J,!1),a.addEventListener("load",J,!1);else{y.attachEvent("onreadystatechange",J),a.attachEvent("onload",J);var c=!1;try{c=null==a.frameElement&&y.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!m.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}I(),m.ready()}}()}return H.promise(b)};var K="undefined",L;for(L in m(k))break;k.ownLast="0"!==L,k.inlineBlockNeedsLayout=!1,m(function(){var a,b,c,d;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",k.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(d))}),function(){var a=y.createElement("div");if(null==k.deleteExpando){k.deleteExpando=!0;try{delete a.test}catch(b){k.deleteExpando=!1}}a=null}(),m.acceptData=function(a){var b=m.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var M=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,N=/([A-Z])/g;function O(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(N,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:M.test(c)?m.parseJSON(c):c}catch(e){}m.data(a,b,c)}else c=void 0}return c}function P(a){var b;for(b in a)if(("data"!==b||!m.isEmptyObject(a[b]))&&"toJSON"!==b)return!1; +return!0}function Q(a,b,d,e){if(m.acceptData(a)){var f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=m.extend(j[k],b):j[k].data=m.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[m.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[m.camelCase(b)])):f=g,f}}function R(a,b,c){if(m.acceptData(a)){var d,e,f=a.nodeType,g=f?m.cache:a,h=f?a[m.expando]:m.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){m.isArray(b)?b=b.concat(m.map(b,m.camelCase)):b in d?b=[b]:(b=m.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!P(d):!m.isEmptyObject(d))return}(c||(delete g[h].data,P(g[h])))&&(f?m.cleanData([a],!0):k.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}m.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?m.cache[a[m.expando]]:a[m.expando],!!a&&!P(a)},data:function(a,b,c){return Q(a,b,c)},removeData:function(a,b){return R(a,b)},_data:function(a,b,c){return Q(a,b,c,!0)},_removeData:function(a,b){return R(a,b,!0)}}),m.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=m.data(f),1===f.nodeType&&!m._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=m.camelCase(d.slice(5)),O(f,d,e[d])));m._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){m.data(this,a)}):arguments.length>1?this.each(function(){m.data(this,a,b)}):f?O(f,a,m.data(f,a)):void 0},removeData:function(a){return this.each(function(){m.removeData(this,a)})}}),m.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=m._data(a,b),c&&(!d||m.isArray(c)?d=m._data(a,b,m.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=m.queue(a,b),d=c.length,e=c.shift(),f=m._queueHooks(a,b),g=function(){m.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),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 m._data(a,c)||m._data(a,c,{empty:m.Callbacks("once memory").add(function(){m._removeData(a,b+"queue"),m._removeData(a,c)})})}}),m.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthh;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement("input"),b=y.createElement("div"),c=y.createDocumentFragment();if(b.innerHTML="
    a",k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName("tbody").length,k.htmlSerialize=!!b.getElementsByTagName("link").length,k.html5Clone="<:nav>"!==y.createElement("nav").cloneNode(!0).outerHTML,a.type="checkbox",a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML="",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML="",k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,k.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){k.noCloneEvent=!1}),b.cloneNode(!0).click()),null==k.deleteExpando){k.deleteExpando=!0;try{delete b.test}catch(d){k.deleteExpando=!1}}}(),function(){var b,c,d=y.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(k[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),k[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var X=/^(?:input|select|textarea)$/i,Y=/^key/,Z=/^(?:mouse|pointer|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=/^([^.]*)(?:\.(.+)|)$/;function ab(){return!0}function bb(){return!1}function cb(){try{return y.activeElement}catch(a){}}m.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=m.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof m===K||a&&m.event.triggered===a.type?void 0:m.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(E)||[""],h=b.length;while(h--)f=_.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=m.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=m.event.special[o]||{},l=m.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&m.expr.match.needsContext.test(e),namespace:p.join(".")},i),(n=g[o])||(n=g[o]=[],n.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?n.splice(n.delegateCount++,0,l):n.push(l),m.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m.hasData(a)&&m._data(a);if(r&&(k=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=_.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=m.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,n=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=n.length;while(f--)g=n[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(n.splice(f,1),g.selector&&n.delegateCount--,l.remove&&l.remove.call(a,g));i&&!n.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||m.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)m.event.remove(a,o+b[j],c,d,!0);m.isEmptyObject(k)&&(delete r.handle,m._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,n,o=[d||y],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||y,3!==d.nodeType&&8!==d.nodeType&&!$.test(p+m.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[m.expando]?b:new m.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:m.makeArray(c,[b]),k=m.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!m.isWindow(d)){for(i=k.delegateType||p,$.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||y)&&o.push(l.defaultView||l.parentWindow||a)}n=0;while((h=o[n++])&&!b.isPropagationStopped())b.type=n>1?i:k.bindType||p,f=(m._data(h,"events")||{})[b.type]&&m._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&m.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&m.acceptData(d)&&g&&d[p]&&!m.isWindow(d)){l=d[g],l&&(d[g]=null),m.event.triggered=p;try{d[p]()}catch(r){}m.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=m.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(m._data(this,"events")||{})[a.type]||[],k=m.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=m.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((m.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?m(c,this).index(i)>=0:m.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h]","i"),hb=/^\s+/,ib=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,jb=/<([\w:]+)/,kb=/\s*$/g,rb={option:[1,""],legend:[1,"
    ","
    "],area:[1,"",""],param:[1,"",""],thead:[1,"","
    "],tr:[2,"","
    "],col:[2,"","
    "],td:[3,"","
    "],_default:k.htmlSerialize?[0,"",""]:[1,"X
    ","
    "]},sb=db(y),tb=sb.appendChild(y.createElement("div"));rb.optgroup=rb.option,rb.tbody=rb.tfoot=rb.colgroup=rb.caption=rb.thead,rb.th=rb.td;function ub(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==K?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==K?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||m.nodeName(d,b)?f.push(d):m.merge(f,ub(d,b));return void 0===b||b&&m.nodeName(a,b)?m.merge([a],f):f}function vb(a){W.test(a.type)&&(a.defaultChecked=a.checked)}function wb(a,b){return m.nodeName(a,"table")&&m.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function xb(a){return a.type=(null!==m.find.attr(a,"type"))+"/"+a.type,a}function yb(a){var b=pb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function zb(a,b){for(var c,d=0;null!=(c=a[d]);d++)m._data(c,"globalEval",!b||m._data(b[d],"globalEval"))}function Ab(a,b){if(1===b.nodeType&&m.hasData(a)){var c,d,e,f=m._data(a),g=m._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)m.event.add(b,c,h[c][d])}g.data&&(g.data=m.extend({},g.data))}}function Bb(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!k.noCloneEvent&&b[m.expando]){e=m._data(b);for(d in e.events)m.removeEvent(b,d,e.handle);b.removeAttribute(m.expando)}"script"===c&&b.text!==a.text?(xb(b).text=a.text,yb(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),k.html5Clone&&a.innerHTML&&!m.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&W.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}m.extend({clone:function(a,b,c){var d,e,f,g,h,i=m.contains(a.ownerDocument,a);if(k.html5Clone||m.isXMLDoc(a)||!gb.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(tb.innerHTML=a.outerHTML,tb.removeChild(f=tb.firstChild)),!(k.noCloneEvent&&k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||m.isXMLDoc(a)))for(d=ub(f),h=ub(a),g=0;null!=(e=h[g]);++g)d[g]&&Bb(e,d[g]);if(b)if(c)for(h=h||ub(a),d=d||ub(f),g=0;null!=(e=h[g]);g++)Ab(e,d[g]);else Ab(a,f);return d=ub(f,"script"),d.length>0&&zb(d,!i&&ub(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,l,n=a.length,o=db(b),p=[],q=0;n>q;q++)if(f=a[q],f||0===f)if("object"===m.type(f))m.merge(p,f.nodeType?[f]:f);else if(lb.test(f)){h=h||o.appendChild(b.createElement("div")),i=(jb.exec(f)||["",""])[1].toLowerCase(),l=rb[i]||rb._default,h.innerHTML=l[1]+f.replace(ib,"<$1>")+l[2],e=l[0];while(e--)h=h.lastChild;if(!k.leadingWhitespace&&hb.test(f)&&p.push(b.createTextNode(hb.exec(f)[0])),!k.tbody){f="table"!==i||kb.test(f)?""!==l[1]||kb.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)m.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}m.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),k.appendChecked||m.grep(ub(p,"input"),vb),q=0;while(f=p[q++])if((!d||-1===m.inArray(f,d))&&(g=m.contains(f.ownerDocument,f),h=ub(o.appendChild(f),"script"),g&&zb(h),c)){e=0;while(f=h[e++])ob.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=m.expando,j=m.cache,l=k.deleteExpando,n=m.event.special;null!=(d=a[h]);h++)if((b||m.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)n[e]?m.event.remove(d,e):m.removeEvent(d,e,g.handle);j[f]&&(delete j[f],l?delete d[i]:typeof d.removeAttribute!==K?d.removeAttribute(i):d[i]=null,c.push(f))}}}),m.fn.extend({text:function(a){return V(this,function(a){return void 0===a?m.text(this):this.empty().append((this[0]&&this[0].ownerDocument||y).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?m.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||m.cleanData(ub(c)),c.parentNode&&(b&&m.contains(c.ownerDocument,c)&&zb(ub(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&m.cleanData(ub(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&m.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return m.clone(this,a,b)})},html:function(a){return V(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(fb,""):void 0;if(!("string"!=typeof a||mb.test(a)||!k.htmlSerialize&&gb.test(a)||!k.leadingWhitespace&&hb.test(a)||rb[(jb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(ib,"<$1>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(m.cleanData(ub(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,m.cleanData(ub(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,n=this,o=l-1,p=a[0],q=m.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&nb.test(p))return this.each(function(c){var d=n.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(i=m.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=m.map(ub(i,"script"),xb),f=g.length;l>j;j++)d=i,j!==o&&(d=m.clone(d,!0,!0),f&&m.merge(g,ub(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,m.map(g,yb),j=0;f>j;j++)d=g[j],ob.test(d.type||"")&&!m._data(d,"globalEval")&&m.contains(h,d)&&(d.src?m._evalUrl&&m._evalUrl(d.src):m.globalEval((d.text||d.textContent||d.innerHTML||"").replace(qb,"")));i=c=null}return this}}),m.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){m.fn[a]=function(a){for(var c,d=0,e=[],g=m(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),m(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Cb,Db={};function Eb(b,c){var d,e=m(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:m.css(e[0],"display");return e.detach(),f}function Fb(a){var b=y,c=Db[a];return c||(c=Eb(a,b),"none"!==c&&c||(Cb=(Cb||m(" + + + + +
    + +
    + + + + + \ No newline at end of file diff --git a/resmgr/src/main/webapp/resmgr-sdn/site.html b/resmgr/src/main/webapp/resmgr-sdn/site.html new file mode 100644 index 00000000..3cb49918 --- /dev/null +++ b/resmgr/src/main/webapp/resmgr-sdn/site.html @@ -0,0 +1,247 @@ + + + + + + + + + + + + + + + + + + + + + + +
    + +
    +
    +
    +
    +
    Create
    +
    + + + + +
    +
    +
    + +
    +
    +
    +
    + + + + + + + + + + + + +
    NameTypeTenant NameTenant SiteLocationAction
    +
    +
    +
    +
    + + + +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + + \ No newline at end of file -- 2.16.6
  • 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

    0pwb;rs@+tSUy42NxjWC{HhH@+id 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%0D!PWPR!c@_Sw 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 X?P&u(%tLFZ{94je<$d0Jzt8+1{=?zv diff --git a/portal-common/src/main/webapp/common/image/integration/openo_bg_2.jpg b/portal-common/src/main/webapp/common/image/integration/openo_bg_2.jpg deleted file mode 100644 index 4a7b0722b6ea6835386b15566792b8bed3322b28..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 143465 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 diff --git a/portal-common/src/main/webapp/common/image/integration/openo_bg_3.jpg b/portal-common/src/main/webapp/common/image/integration/openo_bg_3.jpg deleted file mode 100644 index f2949dfe3045a79a0c95ccb3f19b123b29b9b1ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 155899 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≥4^KWOeG>kZ|5@vE>lf!Q_h%z#XJ;oNal}*FNOFbHvo9b?D1dii%5%Va25JQsUxLcsUsvyo`*Tv^a9j{qP_Den&}&iAhLGERd93 zfRmJz#KAX79KVY6|4ak3oshH$M1cx1C}jvOjlxKyW`}_7f}OpDS_7yQ1m*>}0KxEu z0luh!ppdYLC{_&h_m?OLjhTPB0740%FlYg^psV6>fEmG zo`kX2_8K{*8TGlBdLO1r z6+mbb77{c@NLWr>C;%vkQI-)jNYBE-6kPPYHD#zu8;#wOP4dDA#~Dql3Bd#is~dOS z21JxB3bCV@#M60SN%+qcXnZ4K_8ugTLHd-2)<8EkTD>0Z3aGXo|9HT$f~%Zb_|m;& zyOw%3)3wDa8{@b@B=3|oVdZT*wflJwS8=tp2-z=OTclzmpAn8QonvJmHmO!Sx9DD7 ze;?AYqm|iJb?v(27b@Y@?5&b< zwQ<5Q==c1Ssm5)#?RFb`MN{^C_Shg%ez*7+5AU~u6>lBol{m7u8gbifQmemIuD6)sE)%OF_3a?J6{<(O+h7KlyBXfYtHl(FehJqpR*PRgW*V+vau+ zyj}PfANefG(Ng!!r0NN;MO~PPtSPsM^y?y{&f^+yS5~+6>@Gej`=E|^=Ff|mUg^ih z5%0Q0M%~BD-{PY@be~pa)a$%BwkzIB zv4r3y5wXN2ZqPd;tJ0$SW6r+4s7u!@4@q{%I#t*ga61(T9hQ`vi>$+~w_fsKXZLRT zy<~2)@Lr7#!Jemw_Jy;DUr4o7oMKir*)h4Zy^jXp5%*82^;_NfGxXsvCU>GXe{Owb z_p#zeee{`yz9DyZHhU-dRjJn|{_*V2=JT(PQCQhdiP?R$((Ds8UMKFkFFQ7M@`ki( z&Scn$bItCCk7l9m?`EOnbqgKc?o?eVxa6p|GIGcwuJ&P{2^$ZJjhAjMsgKhZRn2*0 z^kP`$RW|V?gLBYU%4-f9lhj(D*;E%88#G+#v z%y{>N_~--}w}7!Uh#VL1MT?4xKuS0=(c=@M-DzO}?12PBmxr3}>-dEUSB9|BU*Cf# zq@qnkJadi)aasZ+BA&rS8UgP`kw??2F)sXWjPB8}3l88NXc1hJ z6dli;CmSL~&|<$ncy5k!{rW(PWs<%cvzP@qW9H030!7ehw_Ui-S+_$D} zg2Ok@4V}*y2;dU{SwfIM$TLJqDI_X^W)<}SrVzQ-#xnnrXA|+yayGFc-V|oMy^3c9 zfA!XB6&%6OC&va`t%F-Yt_8udQPIAkbTGMKO#;kho_&(=3r|3k zO;mh*RAfXHbMssk@%c9}3E$;Q%;$T;7~FR+#O7ZB+P-GP(t(-e)4+#Hfj}XUDTGEO zM;&=5IoB!pS(7#=ZxTozETK!0l8b+Q#=J(JMUgwWp^#Myz-9Qt&WQzBum}YJWCNE2 zv|`gH@FoJ>0SF8()Lc%{uLWOo43K;PgMQ61MsnblKUWKB69zN^1PVdGMEjQu^Avvl zFE2pW|C@IRFGS$B=j9M>1%?U!=J*DK@pHHlQdS;*#MprwpL+Naf?;uCE07R@QlNN< z4sC>J&}MKq1bK6!15)3v@ABY!Ut#sHCB7^0HSe3EfS3spum*#*sSqtHff*9_H#rTC zhXGkcA;XLN>k0yye_Mf&&DWL6C&TmWLPUln6c@n=rpNh2xWJ->`k@~|Rf2>yhT z2S?lQ`V!t88aXNe0s+BD?|Y?ilCb z?dmeGuteswe<&;(8Wo#j9l_W<&nYSX;2q|(0Rx0X_^2^RiYC%yiw zNdRSz{f@cP{Pu0uetiL|KyFb?nAf85QPE)QjiZ0Bp|BA^mHi`EoQ9~rf8>iHL59C& zBNC+vcLc#f4D^~QB+cI;rI9pnbC6Ovc80lvi>1P-TD2AV5q@Q7=pJAk*VWgj7q@Q7=pJAk*VWgj7q`yaseuj~d zNY>9V($6r`&oI*eoiGv~*;x*-8w9;UPWgh9dDc(}6a@fOI-~?n{Dp#aJot-4QUD-^ zWd55HN)QS1f=ob3K6WHk2$B#=JTi#MaP+hX;RAlYHPaS`G#`M!e?qGmkPBJcdwq|1 zLH4nZ%zp(!zXxRDQV0l2UyXtBDe$}&oG}1_lGX4N{{jvFJES__5(3@Y$Nhkv0(xS< z4=OL`H|?*=RM!9NpSqLGEMiG_iw(%hvCdW#L&WZ`LRKi3y{TBZEm`QIc%y{OpDE5LbZ zbGQuy16@!;H*O0vJ}6n28K*Mef-N`(9?L*tbxLrHAP$ufze*WU${#{xw5#jahX0jY zk&*DYkkWDSc8Q?!f5qE47_wdANsj|ZgoEjJiF9VX%6#>Z;IDO~0ced3AS8GNJ%Szy zip7DsA%5*Ddj2zkuT_2^?(1u0LgzaG)AR4e=Vu-+2nK9n8x@=Y_vvW6O4-=l+LUBx zV5Vw>L92B-s*;4d&}OGUMWdz&T{N4roP>!3eQ1Ff+F?FtIh) zx3f04GbR$vObkf&Cg%DEB%&#pW8!>We*7RP;{RE{A;A`#qGBV10LvMXL7V9-!lLP$ zm6g7Z-NJ>wIVgCGBiWl|%h*hh1La7j#jF6)6ryD;M1)>oGBB1|Mg%J_}@DHM;^Fs73kpIIMBk&66&!z(- z4g^`Z%*l)wJ!UQy!B9e0tVK{T9IIZX92b;G4^f`WWc6k@O9TBokwjwV}C@v8}m@{lAPn zApvM9po)x0Bmvky|uL+$Tl`NF)$Nn?BL|rU3T^SZus-}CkK9V z;3o%ua^NQiesbXdM;!R(r_-6hB2EHc_;(*fSOH9c|3L&A4ZcIf2%y1d2FS^ML2wC) zfbaT*g+;_fkqdl)hg{3Kn;1`;_ zC%>}!>cG<(Epx|pj4gYAt!lY;_t{?r3nyw=3ag;H_4>W>5Bv`(FoJ^MqYeQP3?}mH zHyqZ29)Mz@nDi`zqPi*E#ap8)Hh523?6je(5ow2PwwGFQ@YycmxZB1&+ntNNkATlb z?yImxQxak##C?OxAjJQHtgbE{TGQzNpmF2C%9Lc}8+&?zolss9Jx@Y05x#OGZ~p=~Cmd zjlYP?9+CN-gvFx`(bq+>1c%8%e3>O>i>IdhRxD?m7A|YbptA7(t5v_J(r(aN#6z=H zpStW97OF8jbu?waH+e}>-}R*q4y%=Tm*l;=*w=FhK21}mwX*tfv8p$v7DnTj6f>V| zoLSC1TogokYOVNQPGDDy;YmZu&?wIx`x@WYZq?CEwGSkOU@ztvqc~SCpO9*_yltoT zfl0t-xwXY#zUAacN&Fl`O={s%M>+_12+!ehQQm08+zh1TgQ1LejN#X_ID>d*?n)Ya z$n0f5nz0tE$ZEqU^2_ph@PGBO?I7VMp1XdDJdG1U8LC4lw){39wdj0y^8Dn?5mr6y z#||zh3={4Z$n)6Ov&|Jm%S?>BGAt=x|6w4M?^^snF*=G1r7$eqg~H%cxxPN_F?{-K z6eybr7Y?jGPDx2~dxERqDx?{UcDuYASMpp(@Oj7nY!R-gz{e0ZLd2Cr`+H_@PKKme zywcH3^;#u5Em%=hIPgZJfk-J#vsUgDz|v5&6qNwDZ?e#R2p zy5vw5=~97jgT1!1&_{8?fN-pZ#1z3|ebo~;spVP8tp36O4><3 zdW+YnF@!c9xgr`YzfSwZ{tfBjckP50?1;SW^qRQE@0`5%kvsWXE_)xBW%z3G!mYL^ zSNC*0!TW0g`8tPX+wNE^eNI5&#g)R#y<%RohQF77R9#EX7aDUfVzvKIzjK-U>{r)ZwC$+B)zmhYI4?}cl;(etiSzCcV{^6*!yZrX0n8!ziSyT$N50-g&s9v4bHbN$GZT_5XV ztZ0w3Xy67kB5Lf?!JQn!>1)rb+r3{42PWaBr!J{iIeeNXu?J{1h~93)N8$Zn{ISKn z>e+j2pl9Uf8`ybm@z!g(NLrqHn&b>l%yv~<^*O<)p_`5Ym5zhV=0O$AtH-;#xE{Ex z$p<@TaDsnc{W4wU)gT-e+00cnrxKS4dD1I+;b#=bwOEr*X5^t%T1`Lg7jepEcCS~2 z&v7|cn%n0XUqYTGd0{FlJ?!2R9!H}a+t|H(L;ICX!G~>!y2oP`8E&(XrM6RY^%n{h z+2n$K$P^bvRi-T6jXiMG(dnj^r-{UALrF0TjJkY>x&Goj~f89j1Ag~@T!6zPJ>4< zen5Yp9J@LOkeA@V4d~xW8A{=?(_TbtCsT&>32zP;RX>k$Fq(yCZ%=M=ck|G#)Vj2z zxWV{OnH)_=)AaP_=C zYI7#j-ksu|^X&RD-zPhIy8E1($>V@ru5ZfjLlyTLo{gYugt4{zwdKtVi-vP28wC!) z+Qfs^2o+ToJttD`TW?6f*Oe9$a=*Y=yt(296ici!|AfX6Ev;i85D|w=#YA^?ov%Xxi#zjjJ%)ux~*{_Vyd( zwC+p33p|#)I!T*-aKBzH7U{H1;sXzN@QH&8$|b^4d)nJ`cPFj9)%a4(ldC@UW9^Kw zQP!R7uiQfRMh@@n(Y+G+MWtC|P(FlCYs+)qarGg&|28r5KVZodC#GD)*2OYFIn!fT}gxGIOCqJl-8c@Gi>@k z`MUeOW1;fA-9Bw6rr}vdrgr;tu-Izu%q>nft6}2>d_s65VSFyL!JpE~<8TNtf8~Ht zLg7+tz^WXCtNY}$tBL%UylI?Dc=2%j*a=|C!wVhUNKj_-lDCV77^p1t=K}#XrJ~R zN*yKb?c{I<`3Tz@w{ml7DP1}f0K zFrOz7zQAmmuLD|o#A>3_YGS$TYa;*$K}X$Sv9x5q>CEmUQWJr}@2wE3ujcYGh?HFR z%Z8okX2mA%dgiJ+&zpf3`zgaSl-Zu=$M1G-yc_Uta_r=;nFF=iR)4tA(pU)-Uxo=z zthdX$vG~RQp9}3Q?JNRa@hTf;$OD3VDECjKbvA^u_c@-f)Wa2py_G`=A2GM;E|5~a zGtR57SJ>jqtG!zhAzJo2fA2rj4nhfD-Il0m|F!|&cqX`!ecfY#SxX_bF zmsu%Q8Wj$vJl5e1T{bXFeE90)OXrD&OGtkEmafscen@x7&8huxvfoO)zg&$?HbFC5 z{Z2o2$>fHCGEa58Xu9Cx1n6eg>k*Vklc}f^+g^*iXJwk(uyEz&ygOM|@`e3PnS^@m zPN&HXs(O12sm^C&j8(h;OxW5Du2ZZe&Oqsk<^#pK#R(6thx#;BG(=+( zWE*Q!aA4-`<=#sN?kqk&&6c?mL^=mK7S?&bmlD)W$9p!Jp_QmW4M3?2bGW8zL-w(M@&B zUcZYgWsUHKitblwX`&B{ts(D(XBpV@NB3wX-j^PbsN9~c<$XZgD!RG|TT#2*bOJJIPr87!qaLv3g)5amI5tEvO58W=-h%l`Y8@^70rq6y}= z;yPa${&owmdU(BlZ33thxc0wn-*A!nJZd2Y`-F8 z+nOhL`17<=af3;@K)st5&?V_3vT8A5ldM5MP_ramk9#D9#}UTiH>A=Ui`^s0yl|Ft zD~%OCf?dK9Xkzu)`j%^k%X*J&_0F8C+vqQT=eS>ki}!Bd4t!XB=e6n{Tx=8=h_4(%;a)BcPzePAOKTx2v<|;HOG!pj*KV+Bxe?fS zXBPQ=kmikHDAd0>~?e}2w zjHP{jj*mQ3&ZvZ8Mt2v8*5p*DJKcO;OPzFzFW0>5PQJak{;WaW zhXvQTPgR*pzA3(sUS{m^yBKb_MsnyE1#-s@Lki7Ra_rLwFhP{!$`X|B`jucjB)_dt+Z_rqr7BNoS(7Z$Cmtm=1n zo5LOfiQZXAeBAWO9Nw9pQ(E6~skMLgvOtWf@5-^{N&%4*t>53B^F9N3e9{m{qtmx%ENr9oA=Sze8d3#Iez zTvH&QI^RZz9Nb8)3*|oOZ_YkIh=K=&n8|!PJYV<~bp)JIe!bK02=Xsz?9vs(#wmN)H7 zJAYj2pk|qUkQ1$Jv)({)0Y|4msEyY+qT@$M^MSl(^g8~OPC*f5sp4$H70U(fstQYl{Yh5VCF;ss+yBKO%DZFB22UeSvMgViZ z?|GIGJ(0RqNoK6SF-3Z-gWzp@mDucBnNRG&w_^K8YJ zZe@TCax&;(j0Rh2e{~*}^-84?&B&oi8R>^btWnS*#Vc&VO#7A->Msy{8#UEZw6gXD zwDAt>x{EFHIlZ>;#ntj(Wv4qDt;Bjoz2+!+Uf;AnkMrW*3+t7;Braht+U$J2)GXcM_{@RI>#GdB ztGuW;-w9(y%8NIN+lG5uZ_l~kmLrqh?ajzt})J#eAjuDUv47Za>&K!#LJ9;esoV2 zt0$9y0rxt%2Q&lhmgF%P?}nEd68-o@fupH3PPw-0s83Zoqm@>WIKbXJ#TBgGO1Xm9 zJ@Afe6>hdC18+)z0_ad02N*Jj1|BVjll9)0Zz1n&`4I=h_VGOFaJ2% z=ahoCvA^dX!Vnlh1@N=0%&PCb;|9Efg>!5V%~#wLIOe`bT4;G4e(cTNvTA1rN@e$Q z1#J#Yr2H!Es5D83Chd@sN&|vk?fyHqL2GWd1(4?kd*6Wzc30B^jBA{lLu`z0WT;0k? zta<>>`Fx~tgiZi01lH(!_2#m3lOs6Y8WXe14VNOoPzo>1-g!=ofAiVIn#wvHn)s*9 zR=0PaVV?r3UIx^WoUeXTQhaYTCCA=J7Odh)0d->aaoO4%I3w#NJ@~Tc*fdAnJEf1j z-1EPiN#@qNko#hs(|OiYT(QST?;O7Ft(&S@cuC#9cY;+yJIjcCcwRg`SSdz>XFS#E zyj)B+og>?ts8z<@TjuTtZzqgs`yh${EB(#M{7Tuz_Jf4yo_!1!_KW@T7^lt{J8JRS z47#?DQBl?4=kuP8&DA|Gf!)($qbMO4uk@0&(=jKulQ1e02F~bMK|??N>T91*IcXSJieiA0=^mUpDy*psyPeA692OVp2FEZx_+lhLoAC z{8ab2Fl**%iTR;|R#QDI!-Ga8OA94)rY=#{d~PZob-9)1=$;!2WKIi8G+PS<=X4TnT0Y3{Av$U zOKix7#@MEW>A!kuo|3&K8^!&4HnF<5gR_?uPba6zr^_k#GipMGJG54w$VrK0X|?k5 z*sSK6{bW*_QROpMk6(=`FqLWbt<7a;(QlNVThMBv`tjj7FYvZzdD~Wzw1DLzMa_wuayrTdI zXs;t3YSae0B_YO{4WI+FLg3vaq}17&74XgvYNXIO8ZWpG;kbquL_0kV{PNSD!s5>@uZ@Fy$)eUsYDVRT0}P^v%?hw~;<1<=W@UvjKJ9;KCiSpxk0bOovjce?ut6sh ze0lZvUPNnpZ_htV02skO1RIH4CJy2u&nd+SY>`PA7L0!1MOIALQ;aV14fDk)mAXdP zg&y|=P~TrP1cz~fK@>I&``ubCSJ>e1bBwFo&)?;daUYdoi2z=tmuo)kXrFfKW{HFY zJ_1vq0@tunfqa+CI1}USS6l#8HWc-q66&GPBTEf}ZOPfk-K6ugD%s9>uAh~O5} zk?r|41R@$p;PrkE;nt@ZJCinEQELwl7(fZ-Gu8LNbPup?`*C`TF-}t-z3}0jF?{r@ zDed$@EXJ>Tvd($7f5O>GmI>UFQwzP<9^R>tFx)PDXk!U(A2qy1G3g!G<4#Ka(Y-p; zQbSz?yQF7n*MB7~KCBw=Y_0gN>*BJ=ia!&5Z+mW$m+Y(9eM6bhH3Uw3!5<1!&4tyZ=!lno%A)I zYLU~Qer*#@b$@yVC8c?+EMWRjo{8hx3T4;jTgoN5u8IYvJ9|>b&WdQn7F**qng_Ac>c&#Gv5O9= z>6FSeHEjPRT55t@5&CPg{I)tuQPs+xrVf+(Au)OE>-!CEgkDd=so@oBMwL&ue;LRX zq=&gn17o=XK#3*~Q{uUdi+i5Ivr>oP0suCwmbGGcA6@mAZ$-nJgM_oqY+GIpuf{8k z#}R4tI5ihNa^mzQwlqOXDHD! z%C1dh2-I*Tdhq3SAZoS)1gWE3&s5=VnH6m!3`}>zeuF>Z%yBHR!tS2|QZ*O&1OrlU zMuKChFs1WL`#it@7rO0m&o#w5xcBS%_yjwBwiN(?-*TxmqVMd@@#}VLSDc#!Kx1|gqslS(#`qhy z*Ch7M)%-!T5dDWc^6Y=zU)!Qy@$4E=eb9OL0jiN2DS~l7Sph4d>qMM6AcPb6=+HZQ zrbXO5Wyxnw;i+!zoCs6iRi&**CZi~sypfx`cI%l(4gBK2ONq37YauJ>hI2l}@Dz@W zX6wXS*9A2DmcO0uy2u181h?`MK}k6QOv>Kw1m$-(g)19JD= zkGdb!X04zt&seHfpQ6L?CEH1U`Rtk+96)xgCS$3mFVIsyn|U}BVr(9v2DHM^Nx>W6 z0UdAq`&sPUHHjvNb!DLJgLvtd5^Mv(>}Iy5)I{exTl{-!{GBq=wAx`aZ0F&MGDezH zkIp8|brK<`e{(QW-Ffxqq0#KXEyWq&DbpqM4kgluc5Jb%c4?@ zQ%>f7cP`1%ZwoppU_XlTl|nM$L^cCZkU@Yj6=TWg{MlL3jm-GK!e!Qi4e zNcat``PY1y4*2Z=YHt7!a1fA>=>Z=BtZo{JMmE8M353iKC=;-;f)c>sp>f{Bax(w| z5_1{^$T-|QqH}z`(5JgVGyv3V;QC7rz|stN!53?vHXaDYQHygruh}MaanEig0-%H4 zS4XjWQZD4vl!uf3^PskKIIDU$M1J5})sGePucMYxwpFEP-w8W$rm(7CR<9Et6TG#b z*60vS*zV`$d}ev%)@UH(0sdrQM>9J7imH#p8dI&BmkGkKK8SiixB(-QVDS7Af5UNs z!GU;vu%6&YRsj!y_XIN=K9T`6-*yG5w66$Q*o|)5xU?DQrP*8KFU(?!#tWYmcBtDZcRh;S?D+6N z2sz2;+5U{PyP83ybrx!;`LYaSc_z4t#^nni7rQzVH1+FZUnC9U8Z8t%D@ItwHF}p8 ziiT_m#Ci>)WdATI3G;HDFf`DlsMpJ7s@}_BWbC6LAr!zQ;Qay5thoUM{s~7deK}g- zXqxEbeVmS*b&Iz-EKA%l3lR?=H#;`9*C*BqT1NYJH}*qJuq09zmI9D zp1P})wXl|KKjP+E6PZfezP)L$(<{MrJJpP- zlBI2ddmGoOba|xsaE!R>0vk^gu>sdq4qc5e7bWdIsdHYTrLcA^`Qai1gO>cGg0A5$ z!#TJSaleoyBPpV%@}4_Jw$7k3cAm6(^Hfvo3!Ppv*g7r&!?=yuDZUcY3YTb6{$y5A${rQOcT6$m+9_+}t}vdQ1$n%im3 z!9$qO`X$-t7uhe8*?zl5HfQ2}pz>|C^_AJFpQh?UX|=AeJ~y1tBOK^*qdX#8rYy?? z|DWDP^ol*iz=C@Hi(7PjN>iK?zwBI*erA-uXW?D+9?ro(E;_vsdK-3f=cDY#GrF#- zp}&)JjZ~sA{rHD1L;Vj@Sdpa9M9;I$McaIKofw#fPQ*Cfy5KhWmh02ss2Ok_fh^y^ z?#+@%u;hX12Aac-FklAHHb=(+>WPZ*1p0ym1C;O<2s8^2d0?1V;A24e{vcue3xZy9 zV9bt!Y?GiatLX-8H*AH)9{d8G05A#=>HDq|SYo1%9t1Wd4K#$Joc&omBc*&4kx&-1hU*0L%U^$ zZAf2VbxpfE#%J%#G_}a+vjJ4v<-C3z2=XTB_?+Nd1wO|(!0VuLX6l&jbs?A*aSu23 z{G#ff2$&{dQoZM{2iSvDCSfE6#FyKNlm;`{eS(!VaDTurVm<)|B0~k?Uw*UjS%=mN zm^U(T20S$|*MJoRQ~^8#2-jfKrU%w2pdQTkZ+Nv2pc=9G`;h4b4i3yQx$+Y|9Idbp zxk7-EN&s*170|vQz6{&;l_uz_h(Q0#oMB~7aC z8EZ$~sk}*6URRyxgM}qDM&nG4k*n25FxMTL{yBKv(MByXZI*(YRz(6=vi2Zh7&yNq z+a6p`0$0Kp9~tT(9x94oEmyYndgb#hQ)7X&PS29d`Dh1@6HxT=A+ZYMzU>yg!|x_m zFWt30!z>0@aYO%*X`JMG%fa9E_Qfit|7B0OkE--p6aMnI<6BQ8R-6zb`qy3FwB2t< zZ1(-d`%QLlde-u;)+zbXItTFo0JnUxb5XnghudNnAMnc^$L;+r?=$+I@2ZW^!Iy?$ z_byiTtRV}^y@lQ{5f?v{eIWdG*N!C|&4`vj>4P_@;+~BqjoQv>&s|L_E4hrw7@M(a zdA+`Av$A^5lLLvLQ)!2Py*#aYLpPt%Rit-L^FFG1JVo-aWvPLMi6g^#vbxQ8!^tbf zk9ftj?v_w~MSWqh{j{iPM%iyBzrB*nqi0vwH9o|?S1Eed!B-8 zymwFejP6m<$3^}+>z{bt&M$3kE~Hbz#0g)w2{b2IyYd$%)CgnHkY3O zZvG3uav*E27*`Ecl45 zjq?g%;lY{mD`){k#uN@uz~=g4MG&%prE?s(LUXQ6sn9evtQp`wij%Ac*a<2>!7nsd z6Q*CTC`Df}CPcQsL)%Rlo%>*v22PIvr3c4C8cn&{cdeEL+Wcxp=_@DjQfb^Feb3fr zAl5!dST^@PU*-|+8UxG*4)(#86HMn(nK3XTGGdg0d1%70j)JI42`uX{n>@$&!*o`{ zz8zv{0ec136GksccvK%3fX)71uKnP!1JJ-gn*${Z7zBV|Soy&-Hw`gjork)t#E6uQPz20e&HAUTjpl?)!itge5K>6kXSq3NfXn2NF2~~j6SO&Be&3dYv9SW zq@@~HB#7!=^38s?D>$E4EnV9)ak*{Vz}XHKg)71~`@GKPa4F=M$y7=sBy~Ck>J+iT z@~w?wvDYfFHSqR&nPm>DlRW+PN)p9yU0oZ@w{1G0GJsX87>>3#x}ol780vvNoZ(Ll zbcRf+ikIIgns!GpY@fT!=Pq3>N4}N9N~W=g*Pa+pN>qxkXe1FJoig)lthJ*T8kc|O zS`sN&Sr7Wswp&3dQN2g*0f4$RaS#{<#YgqaOqZ}GSv4BC+p`d5=b}TSHEX-vNe!!? z``q!xdmm1Tr$k@OA@baYuiOvx)N;mxl?X35!aXiwui>S|DzqZ59LDJoW=GCK+!PRQ zfYJe26iBR{F>5_Xv%(i3fAIQPFN|A+q~{(v1WX-?4a5&@$H+fd+ELgAABq8yf*!vz zu(p7Jzvlv7!vOvU00H6FXhrAA^|b6^un2t$I9jNV=8_|9SKtba0bv2Qn;TgBJ_Xz( zY?dOBnc`y{!h;xUIId9=Ui^$!-VOz+t-ulhMU3tmaTV@q;2I@}BnsDZ5Fs_m73_>K z{t5(IoJ{5F@-pk3x5cd00GU4drFz0Gon_}TP_aE7=)6OXcs)=lVS?o^sTI)xuX+Wb zM*Cs>m;{s|U`2fa?XWB`n8I0{+L&~`iGFNN4G|0v5q(JxfeOZ??N%G%4WF^30a>Dg zf3WKE_ihF7Cu==d5;j)mS#X|w2VgaKE-w5*Z%$ZpfKI^8HhlRstuH17RscZx0YhiD_t~x!`R_seg%as3pP+#wMDR}c2HgyF%1s=^ z0#6hiwFb??`jT%%A;wgV3}3G`%IAZidgbSpUdNmd{~7L-Wg{11Z|}j|d}w+4nat*v z)E4>2alUb$(djO96&1QoGr3v6NWlA@S#_zV8dGvqP?YU+O!63}ALSt1aKcPeY^^{a zyT2QR2;zw!{-{G&`=wty0R44x;6#qt-P^V*6lU0Oj)K0GMdhEHCJ$8M%6}8BW=Ua3 zMb>Xrpis4cT^?hkcXg~pOX=my9oeEws`5r=MoFRFDIi`Xa5A$!T9cCOw9?*zwxhv| zygiHM!nl4}{`4L~C;5yqbhCGxT&?2Z7<(_JqnXbgh9=&pyR2J?-_&?u=0=FqWpdL?x!8vn zLL+!Y${e|6br67M> z4IQwMm%h3Gh@`Xi^fOko;w;1=w61-8*-5afM%ellS0hPqlVGRXS})g3&GJ1;-aARG z8h}fB_

    #+auP(^@v?BlH2`Cyfmizu*kWc=5s#xC? z@nc>)y<)ZD?#B7YDqLWf)epEJVEqH1ygM28KEQba;N5_O9uMcN0Dc~_9Rk|{K7Y{- z8_>Y(-iZ_jHUhjKBa3VTUReNTNZ3k*GeA4=O8vH#g15j+dI)T8;K{ep>ifd^OR-r2 ztZ5h>1nLpEFMV#XFayy5UXd_}1Ceh6_}sPtz`OZn-P>o1PE-1TE$stfR@i!Po@|7@ zgo|A5i{+X~pLr95IJ0GNo1k~#Gx)=*(?h{dE1kg9V&VP@@&PenF;SSA-~fu#0|u+! zeJEXQOOQ`@Fe6C^1}9qpSlOW&4%c>9aINC*#Nrae^B);@KC4U|8j3!D$Pi! zr3f>$v~Hz#MI>^c&y2=Uq+R1qp^I9VMU51SBwE+OOfxR)GAJPvYTIwQL?KLcA))P} zZQK2y=cB&g-~aXMW!L!3=ks~a^PKaX^FHr$9?vB)^Z_O1400pju2WyAAnpX;6_zbDzDnB$FzdMN~MKf%8 zZ@%U~ITKj=+Ed!TCGXA+5!Jml?r&MB^xHYxN>)|(sPCxc|Du}je7js*UhbCqNzM;# z0XnYs-MbEFQD3WNwJ1L_Z%FwJpm^ZZSXyA}hHdes_m7S{D6Dd#U95NouiFU3oRpTN z;RX`tiOuA1>KB?sbo+FJVnW{P4}|)p(q?*jQ#IXfn0X8tG=#S9(c?9%v2|Gt9i zkweEyb#>hmjoA`A(odbg*{Y+jzmM6n)|otDDtYlQtAM1{&E(r3uWj*fmc3%#kRy(L=u6o!{6mvUYL`KB{z8ntfU*^JcnL_Asn_ zC&ut%Mg-%nP$ zT^?YV`LAm2O{(F1I-6}a9JR$rS|@`_E57o9^E_OUK2pZiXI?-5h<_qsg1vA5g>3b= zmsfOd+`ju@D|YEZX4!hq{%4VDeUr-VUfJazcdh^Rc^|p!-ktsxPCeNQlpWSj9TNj% zO^0HCzY<+nD|Bn!t$0cTJ0TgoILmhY6)k`MTT@G}cqH95{=JB@b;;wV%}k&r8EJ|8 z1aD!FM1BHHFTezdwS-o;25d_JL!w#NheeKz#Zs`nd5XOb=ZE1`rC39cX>lrUHl$EM z0%=WH;5hQp1nvmYDhH9jK?PtLArnA?^eR$fU`2uX02`J0CDLD_FT>YST;nkS(bh-* z6#SBkTr{9kF

    30!0;Sx(yma7TjqUQZcZ(Aamfpffh&4vg@3Y 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

    suD* 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 diff --git a/portal-common/src/main/webapp/common/image/integration/openo_logo_black.png b/portal-common/src/main/webapp/common/image/integration/openo_logo_black.png deleted file mode 100644 index f320af35582c1c8efb6440e42ce62692148f53c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27249 zcmY(rcRbtO`#;`AQ6sk6vu3HP5<7Ni?LFIAwKug}w1T!G6s?$z>aZ!b+ltyjs;F5r z_6kC*@9VzX`~CU-{=viJb#ktAo#*vD=en-vD~U!1Iy6-5ROil}qk-ybnw&d#ap~N- z^Bff9z<;0$W#PcDt3g^;L8iX0L812pT+Tt9ePJ%VQ1AP0E+#Jbox}XQT$Ik8^I(K( zLd+hHt>s+KV$z!W9Z`kEVFMV;N&G$PIH~VGjQU4>;UY z!4Tm$VB#=K5w(yO>2zq^b zEx7EvjOm0}^UFzeYc_q=&_8Ar+fb)Rz3P_T173EJVeDAOG z{#m2ZKw^mSW%XQpR(0;vyPdZBsbRCiRnDi6vVOEMN^=O+GJR{|{1*MF{jWm+bF7Lc z&WpB!Or~sEcCJYejyH!giTHdBrlXC>y( zhimky?xQAsT!ai~R{!6#J8q((>fPl}(urStLec}e75=x9-LwEjbQ2}|m|GNQianf9 zOxtthT`h+UPsf&Q-b?+vPa;dhpg`&PsB@SmVF!mV4AM+6(YkiTo+a;UGViLn1jAqJ z$tLYgB*S|QO7QQ_Q-ud4AEpNOC{}7Bk$P}a zBcyfnB{HtD)!F}lQ+5e0O2Wff;fJ8aw$VOyP~oYp<_SHV| znZefl*O-H$Hgwi!QqEBqoRu;B{{zNz;l;BrJ$4yzmr*L?GdayDeyyCp^FWHT7@goG z8PFb-Dfqw7wRe;bRqGvB?>&plEUwgqGrf9q`cg?Jiat5+zhNU)kM1r0sxP)^8e?V5OAml zmgf;FIc)L01brdmf?1((oO#QjP(n!ct^e&fGi>8gmLr`sE1}oWEfK*cKBTQnvPbL+ zNl^c1xUzz@suJo%v}vt_fzMx)IwFtCn1|fB{NDe$wId@?c)sb%e58`Y+X_9TJHLz}TF7~PP1&D1y>KM)=bXmy|*ULf8^Wjb8%O_JUCj2bogEVA@besK(2q2 z7X6>ygc!Qk`)gozG_aSg<~ft5whig^dFS#pzPH|NgFr^TLHl+TjaF|?sle>kOJhvd zQ`3*$P16|TbCUjGlq%dLu|CUJGQ%i4A(Qp>0g4RdD4-IDX!T^_E2m9h{N{k4x8tnt z6!N<=%b>}X##5V>sbZKBgw+@RDjhgyh0=}m>7n)qvQt32dOT>C$JBC?d2&d54{?B02J5o)stV{5d^JXQq}u7U!w*GCM8v|#napuMB* zoiV}8U4C7XX?oEA1|k_MzaKhxhGhye6Ye5*I(QcXt@jwjR%qd*FwkDi+``ZQ9;P6( zfAtKWOAv*M;9K{yGypHvPRTMZ(p9^lQ#P_qh76)Lrx3X zBn6?rNDQ!(D?oMRv~^AA#-r#Sp<+5bT(=lmsGc+zJ!w3CxgcXIQziGLZRYI(9wn#{ z&y?^ZxZp?HO8HJk>HJlpe<2_UmJXt8=p3d6xAFv>+9A`6tt8iFDW>Bb4xWbnn4WNcntY)u+oBrVb)r%5`^Upqskc~VB5;)d zVxu76Qv`p)i!T?3fXV3ze2YX#Z;T$*p+Uc2@OlIhtm5c$vB~Rcr#9+|AHU=af8tBH zOTY=qI=;_m+Q`Q2;k~J6lpoVHaYDM`8oH#khriPP141P_U-%Vj^Cjb#=KJ@qhH88t zSNkrNDP*U6c$JbQe;&hvse}8jg&fV!ev93lj`D;(k=B~@F1Ic|1*m)b;V*fpU=)vF zl!#!|HDCWfabPsylzK&R{@AAT@IqW>4ybQ=M=4N)#?A1qJ~3!r4sB|#*;%fJ^4Y3l zGQFtTPr_GK#GJohek<#po5oOH{5!f-ByT-`*&A=f?gkV04vaBKWZguFY6nbI=n$(->ufI*i;rAxYt*j1m}_!ET%`8wiwFoGatGP|g4sq+p0TBF+= zvD1Lq8Q-d6osCTXX*pQk!da!lU3E(9Jej8k4Ta!*(p^!9sil; zPzsUfTiR3~7{6Na46_3h=fg)ayezQaxUR|wJ2h--a=5ucaZy<`?p>>encsu%2wy|J zQ5yni&kjzqf|Kr&v+SO`6vcn3S@k2$Uv}A@`xSRF;FM|p`2NL=l%)bLM%n~!kuhSj zWsJ08aLB4$jlKEHP0A*v%%6Kpc#6W7ONFNlnkRFYpy3LFQ8xrn$S&$PSVgZpB6cmU zT>e`%Papdlf?$9k)X`Yoc7TT&!VlLj!Rs%>R48DQ+%`k^WuH??%hM2?Ed-ZrZTdeeUNLP1HYxm2Ti^@7-wKc+6?nRQBs<*1Bxmx7u9*_1 z!Xo8aZ6j8Ap^|eZ!!coDnnP_Ul$l%MA@N8?xO~`ph(=k83)wQTNvIXQKH4*;@t0dq z>d<~^yi1eRW-KtuPgfCy^9X`o4rXGo^bDbYY;F#7*a|Co(V^LU#_EanRr5-CSS}6# z?*ste)!`d_%d))7DQY;L8~OQ`>I05X^3QV2lm8H@_?2+ysW8>fLpFgfFy>emUN5<7 z^Uvvg2n7+`wyNYl&Nza)4lUF%cnF471Jio1 z(f-$1I5XK~76JQ_7oVbrb;Loj_6Pzuf-q8a#*=ZE-=u}wg{@sb6H zMwr-5UZ!>_KRjcs`nB$g2WyHy+cEzb&yX?fsUbq zwq|Hd{$X5bzSPpdZYbJyD3Z3-&IuT)f!&Nn0cnzgMcF+N!P})>E6&y6q4&Wejc2IM zN$iz`SQB%XLmxZFGw}0=of4xXZt9kKmOrVfd<(yta=f)HnQst)_5?iwIhw=m| z8owWL`d`F}GGAXWkEv4v|a_-siwPSHP|MwqTx+SJRH4KvMP@rMkC|`ay(7-bJ46 zDwC&e3kKz{OwV$SL=MuWu|?j`r}4^p%}albSz04!m)+KaeZG3IFn@{LmLi~qDxl2T zmv`YIS2TLt3Fr}f7 zc$c&Jmap?I3kx62$#WT4dKW9Y&!4s(PNw)&xWMR!>Q}tw&Qa43{VV$+ zcjIqSfJ^giBn>x>Q8z`KCPW07-^#_Eg|JG3y{Kcs^2m zzDZ{OIM6}iwO)9qqjlxQku=6&67o_Wfl>YIBi7hcp?>N=MzPnm&V9-Q4$zNVf%h+@ zX!R=ko`VqEBRVAO#;2UV`02ZOCcHa22X18#Xi3g|t|D)rn^qmL^EN^Kt3G4oMl0YM zR=;1ee`35w$RTjx$&za7m$`SbDB_?Vb|E)Vyyp^dI~l+))Z2VEh#!IjqQPU7m+~aK_JZ0u%2E3$qqw{3e8WG|eiaQW4lPx$#i( zE65~V{+U+MFX#hYWd#>3jb3A7(>Pv;_`POM<&z;0zEFa#m@0G%7n8UTi zj^&+OecfHQ+*D-Mj8?*<$$we)DP}A#w{t2`y5@xW`MjM(@o@jQfQ>kmVIhhmiHDvj zbRbi~`uA=cN7b;T+{&P8EA%_i^LCBB0ad8-*Y&F_RE`bX4;&xd%~Xk7ZJgM6 z8em)WiD}ZzYw%Z-=I3W^Gj@u>Yw&OPctHmHRYo!?KWQO(@I2+c4Bd*W0aLf86rbi7 zhw#XIiC#L16n6mK&R$mwvtE7~`1Zwg=eS0|@1U@N>XrHD)MRlvjAm}N2T@bpMPw0R zR^_krdEpKCv20(@^YpEpQvKSfga;Bn-u|P_pxr%qDYs#FCdWwW;lrOu!#dmMUQ=B4 zhGGAQ6PO5-Gntag5eQcFaxbLO$sug}tCUzzvUu7;Tk%i%nZ5L9C68x};BGe!M!B%X zdbAtS!u(XN^cX}OtVyhcr zGTF%tR2s1D3cc%$Th=FVMOj2(rc%x1hkzF$QOhwR_%5w4o8z`kG5Bi4t^pz_;)05L z3)8YzasH~*{B4TEtDpT8e=jh@uWU!qJfAANrVc+_08*Sh(`=L|AMMOu1Zba*cTJpk z?dYLJr}R7V4(0+QKV1*k5awC?TLX?FQYu@)F5tjabIX`6u``n?Po1P29;@3wT zlZ(}zM16x^uaDU($UTOKe(fRCW11DP`AVsq;zUbT{aaO~5JG=Bc+LAxK`lKY9D=9CKt>=W~nh`sfL?2gqHg&B*zIRqE##C0)-OssjK87Q?yB^4>>E|QKe1)LTv!=s%W|^C(*+yKhX9|DP zcP*V51mY;{+N}7ZY*}+rAdl|h3A{=0aC8~8=K~6+cMLNz$sIjdAGu<2-M*7i@5Koj z57kuGYwJ}QoYc0^e)+p)MrORV80L#JA2$Sk_+#9fGrrSg>d1F_BYmj$0cR5J&uhpA zCAY+U4$bE5CG)!R^*3){Ts(q=;q8+;75L>s`3|G zy#U6oBe7)S=5gnS-!U>jg?E0NJvZ@l;vwb5ji}vvz|o-~n2NgOv@=@BIZ8z{DtP)n z-KXY?pFfrA=O3aTkq=twk~l<{WmhWX;i(X()0Glbc%9;;=$f`L6JaVwe|@_yVk0=h zq*e{eB9O#+(DG@8nM9ZaS9;|#p`R!Rk!Git#u7B%t&rRqB4`GIYl+V?uiq;Vth zxzGBq7|kYPcBexS*m~j#a3AvAqW;JbsE9evu<-UdQ0R*2O}Qf2>@xS(O==AQWgYLz zp%P(U9vMv|cyiG&{CSTxJLY#&{DW>7FAEca5OKVo>jKdIom-c(^;QC23&p*QxnS%_ zZtPo9_fA~YsG01SzL!U<5Mt5mJ zyE_;1UcSp_E436`-w- zv#q)Xf86>b+j(J#V=bt72<8qF_Z#QBs0<m9#k&Qu?YS(Ek~l?k~g z0_n&0v0mwt8>v^D&8@fJP%dYrI7qNMAi*}nW zzs)ywpF9HF#5%()udqP8;UrJDobjC~U6N=C{X83T>H_kVLa?zp5 zTnLEv(eoJdfFI5w$t+uA(W(=rX9K~_APlViMi#^2+^fe5gX!C z;yFE2gm`*@Ck^UZn_rS2O-pJGYmE@|zuoUzfGWqeO}s%8)>g+t!zf{r4DV477OEbh zr$;|8|LQrSjd<5VR$2yI;MGanwFS~-2u{X|9rFcVu;EtC22Wf#_U}BTsv*9HE@ruv zv83v5eB{2EFkKw%8(z~>@@b_09A<*h<*#g1oZO5@nms*`@|C63P=cvKla$z2Q><9} zb9$PWWU5x?CpoCd_f%@z+9rgzZ}H@$aoqN~0Op|sx86GMD`nw5D$-=7K#H@L-ci>@ z=wi)H`@=69^Th1ev(|puG%RtbeK%3kF95m%`UrY|P5FDp#M=jtKAW_Rv}@pwG;r+! zNU5W4{bvs34j3;C5lI%2RmjV=UC(s&uIsHuek^01M|;uZ+ZJ4kRC`}3L|^m;Q)=8AU4wK68cZ@uxsO+Rp2mV@ zYC8^|z700ddPKrvsIkBgf(wSwx(+k(&ht!%4!_yq_>+m9Y`2=_W3eWA5@k-dB z&Xd87{K4hBo(@qO9j*r@&$o8?51Vce>@;kdhi}HAlM^n60vWcnEmy@jmpOA0Ss+j# zO)E9Ro61yszkl`Vb%Ms%grZI{IxJggn3Q^CXcTOTu;%x$hicz&FHB!`F-K|{Wc}_) zH#Gs@?c4PA-ep}FzIq z*v;l$7KX20K(@U4BpkM#!Sa;8u;3?IRkXD8iEL-Xiqh=@qY4LYix;|PN2TRW^XK%l zFpQ0DqRi{#GurlCO9oKi$D1<48oPH{I$aen0C7Kry>aa6%Wc1JU5l3r* z@T@(CAPC?T!)L3e6vaJ*QNJtpE$oTMaP8xu(rH0~>Zgr8Iia84?Hrou=_f_MmOJTF zW}t^3{>nUd=!*Ngt57fe$#=YRHSNk`FMRyr?xSg8=FRE)+aC?4v~RIshYs1my(cOE z(VJ~N(r7KeL@?$sfYZ&M8S`Tc7w?oxqfd@CyR% zM+dKffX|`$J6t@37M#pY`#NIt(S=)R+pb`Z-K2Sa9l@q=XIvS%&S%d@Vs)JT==J|R=xh658eTIe(- z^h_=~RMdwvKGsCr0((vrm)w$Dq*s$)a&KBmH(Xzrr2HU749f~sqRP9v--kwQKeiXR zX#NtoJwUaJ9WMGlMH&7CA}+XoLV$N6&&>QVDDMJ)Ps0)#HT7v4QO!x4(5Z7xyYjo| zM)hF#In?Vg;lb2}~W!Wg~JQw!qXD`ZfymfI_ zXxMLVq-5{Q*)pMK1`{hDiEG}GmRIsB@s?*o-t=&$e9Y>2kLTC=J~8Ram5k=2Va)Zn zGK8^Uv~9$`?`)|^c`#GKI;Ss$?jXvg{V230+gy0l{}xM7Pi^8+>JQ+Ak*l^SGqb4} zsbbC64#@SBR!w@Bd_Yw=MOzsCSYl#X7oSoHDec_TIape(ry$U6*RB zJku$=xQ*DwZ+n6h8nX>>hELJr4#rv=TCBtxx~K)A)+)_JmUQMdMvY0H&t>n~+t!%e8N``C{@&G9HyI^a_(! zG^P-3w|z-p(C#5s)hVOcK`3ysI2!1yn@-IsS&$;;=B<{Bv~F9)@Sg-PMJR#nM-!LA zO2oAmiB>O2GzQGS#*Q$?SfF~_sE(DA`+z!w49R&TzPB9j?wISdI^<^L`lm2i4@+A> zS=%OgJi~syEUu<>;f4}3Sd`qV6^B%U=;W{J- z&MQrQ+00R>!cjPNo3h7I@O9Xh)tRVpa$_a1?fy|e{;4=kwG#9j+l)&H+esY9WEPE` z@u<3WzoX{}Lgw5y*=6Y%@1tR!>}D|Ou#OiGHD>_@^Jqq0(mc5UCn4o^NkV=>gWT4jfGY*$hi__R5Yu#u2;MkUSKqn2}Tz)AP>?IN$YOt(kR&P3E#OV%;YPI0Np)6U)S3&Ru$U1JJ1WX zj(3tP?ns57kQd+f8lTxO_Aix9a#4kq9qyN^I-D&o;X8zF%MbkpCoe;J9!I=j<7fC$ zrGeNjL+k>TYcK0p=X~8CFG2G>0e}leGQOF8UBQ$HFc}B()Uc*Fob-G1R?$xZ#QYD2{k+!NJkp+p1cJ=AqA1z)CqZ`Bp@ zonykH!j%S=U*jA$kq;ZQjw&}Or0X<#`=4aR06872YZZ2#C8cl$GQ?A6EOTTDCjtG( zY8pYj32?61s9|-q2}E|Zz0l$D)G_o|-mLSOH2>YVB7v zoZmGTU2f+4r>9#|jsXR&$of6-u(46BBpFaQ9$pQI=AMtFoL6$Ly%~%4#e_cZ4Bc^; zK)$%SAv&yUslan$rColswf`+ju_c8N{i<2{W>eHF3H(+2qbX%}SPO$x_Nyf}8NL-d zwV~G7cm0pv<-O{py9f@2U=`J{?M<>ml>0U8i_!Agjb(TYRjg#cVk>vRsV;Tnwg%Rb zf6kFd#-B+`zxdzF5y1_3Cx~(vI>Xbq4<+ zW#!73Lbh7g9~9uB95yxVKfr6=8cVw$s>la-JwKCB@J z#&|Q8_WHx`5aPv{VtW^dM=TlTFSQA9l^#L}syC&!kSbZF*&q>!Td| zM@=aOk5AHGuWNk0_Z%o&NXbu%3RmBPURanQmtso^v3U-B;@GIMGT-8Yg{T~yq^3(c zU=y?tvb&4mvi+2=j|68}23pwDO;S2nsi*Os*4UTQI8RDAeKp1u??B5nuXI_i zMGlZge4KcarO!i@?YS83=(2s9)3Z*SFopj*)HbnDu+9a`3iSblQ;N}XKJZ*GA0gE# zT&$R{`%HMY{kF2+oxyGwN(L^WC|SX%3xdsNMd-T6=+MV#nO{OsrZb?>2{tQYNkFxF z%7V|{pcAId#FuCM4yYb>Z9Pb6;Q4sj-WTG?+0WJ8^D&2!`jQe$D@X?2Ss@`FAYU*s zTC!$C2HL~(uK4E_(@GmI$Mg#{`z{Sdam_b1j-6bJgSbvSWCe?K=(wUb}+-DSR&>Dg}w>{V0DRoteFq}QK36nPg}A-$^cS;_asg}*~R zqy}{dESK#TVVaMu@d>vzcP$%%enjreg=0hHDM&EtakstQbuDd*)Oj6=%7(k`A^b8S z4nip-o)eQ$XxSz=96hVU)h3a$OYhy>$u@Q%2%`O&Fn$|d0=n6we zV(qrL36lWZi{ZGk(Ea^(_O+26LVuSrJ)IA>?TIW`RSQQ|3wk8~h`VvSHrH6FFD_k? zZ^7+;<7JC&o7YNUHfjvECUhT*`rym|2Sht59nnZHHU?|kY0iq4Zr|3=7pIbEK z*{%yit205x&Q-S(xdHn5{dTBkch$_*o0ZORTtLqX*(zX>X8lGR=TE!wNXO3FUaCRn zYpf)#SE4rmaO_?JXa7r3CeRG)@f=o|ar|th`TfXuUVC;?pzL{tL^fXFHKhBKUC%9h zT>fR{-$b$`;-+1mxv=3a>fQPZfy7x4=i%-?O{cd*ntR%J(mw0=J(a9;16p_fo%NZS z(|{(Y=x&uVjzr3KGfU4D)q_z&RT+^}lzZO4M#NdFZ=^A$_Hi-2b#>LBK@>)qHAKc- z)AWVrJ=?6ivZX9%^nCYsXY<)Q90Z-%PX+7Gj{cW4li-Y5bu`xB=LCWnG$%lB@34#2pT0ZSZkny8VOWvw? z$zk(`e7T4@C`JSBiSG2%>qFoRMu3{dN0zIT4AOM=5;MmA63l{9t*J}OzGR7Jkty*g zR`1ECnHU6txoPM{H|JrvX&i8-UroNTOivilx26_M1cm8lv{#(;Fl0IiunQ1#VI7r9`Hn(#5>wH+^nD`JhQl^f=gc z;?4T=CBm-R36kt49{AjT&1bHADhjI6tqwNFgAt}UoQ$jZq{VKboa))EZGUTx>=j)2 zJg-L;n=U^xWUhXMXpk6v%Qw%|a(Kx};II42M-3=;k?SXw@xfQ(^%T zcwj@^-^}#ZE`-xW;_J`d!n69z%8nfu8Dd)u;!cvBJg_8nB-8ezwb_T8W)5^wFR`ly zje;+)YS47L!^_0x?WnzDI09Po%oW8J1sseTQp<4>ED?j0e3a@E&9zET*V~mh@306A zo&!vb!8Z|>vQ&J`UMUUP_u)J>ikyJ?tOxdTW6HGX8ti95p~xn9{nnoBSl#CzPlJ_M zOq~NVBl>Ltq`vQBIempGST`1+3yx8}uB_45ge9Om$ zo#feiySv{LV}InBdu^e^XHEQNtv7Vxt?*s;gir#JfG~ zBYM-@M3mn+fGpWi`Ye4YIChectBCcaKelXSV!h(Ho!xStdgJh`+M}QGf!Dl>`7UCKkT6yKS?xV_at6tHk?W}n*?w)e`(xUES z?`_H9pf@)tx4G5L1(=YhN`faaT?Kt4MicM`8la^889%E*V!`;jwOrK1(vt&~B3)7E zvC-5XqbWu+T@shhQ3qx(-;;NVLFO}KfRY{~?-I0m=(SSQNlDU9)h(g%u4cUHXhfL} zPV3ueFe0cZJIURq)H=3H%ft1$W=PUE*#WWzhJ??IZz8{*o*5DM#6tPT=3#nFI**Z7 z%c4G|Vzm)AK)G51?hvFEILNnGyvruv6cr5kfiq}(Ci6jsqrXydMKnTCCr#5oKqEw$ z%$|PFjEX0s-$^G@N5np)w9+}Y=`zc_pr!`%xVO&Q{cZY-&~Qq@6NoN}*8KV0y{%s0 zcA*Re8g<6C#K+uvWG8h~gzYyfE}Qk?Z=Z7=ipNLfqMKMxGFC3xOWnFUD_MCt2jRr9 zb#wtJD@2zEUJI=Zx^t7xmKo>w21#S*(~m99mg{xd4C`G}m$0aM+$lePe4L!^pA~^i zmC|o8sfDJ#SBz(a;#k#j)3NA}?33rAG1SOtu7n0g*@?00R<@~VT1{hjC&S&`%<4-{ zu4pQVY6x9;h)=X<8bvtEDmgSjldDBn+|ck#B`WoqFl2ozL=-vi#q!bLt21!0Rad{? z>W!bN@$_hNt{qBBYcXHv`Q!$oJBfB}$2=W4_36VXw!^5$TMKtz^RnM|4%jh>7q)-; z+2jCuV7-dgW*y}+5Ky6J$)VyF;`lt7Tev)@bN$0E(7LynuU{Hxg8Iv&egdsI79Hl@ zOZiXoljq#Ou0T4a0Wytok=A_DITfAzk0T7*hx<4(fMGt7aSt75ZXbG$UZVpN1C|-1 zf%kr<(%)jQP9#dVK5%jjFOB|(>~j7gJJ)Y$B_94$hS>=C=Ld3$3#zQp)XP%Ie*Gkd zn7OvI7+UMr%Q0y_h?FV4_xW*_LRjS#;X+pX<%Xs86rrWVhN!hp2G7Q@Q;I>Z?I5#$ zNnvU2awsyx+#XX;Rrf14Kc|DTp7o@$W|vxMwKAzb+pTIB`BY!<3Eekm3xV5}2k^&2 z%ELt?BsH9(ygj$DzNw*fxuvRN-Pa%rBHhEVJf^EJgPUe%h1G}0he{&4Wk%n=Jx@Cm z5Rc1^sw6#1aZ~lVlb%i&*vdZ`TlRA+&k`St+O$4bj87!=PgL zoHbga%{#pj5y8-wz76?0K=ttUNkmCVX>W09otk( zQrq|()&i4BRp-uI$vU}(b{+P}ef?_EVR^?Rr18y%lBF-e%Ic-mi8oZo3V(a=VNR?A5pqEUTEvbo-vZx7uBWf32%;2Ho@x`;g+>EK z0{8+R(IvawXP_%Jtb$w-1Aqo@eh2;5Ww`sULMS3#b&WA_D5EN=omILws;gu3?494; zUAySws}5M8WeUg?ub6waoU23@=^{08?Kn?E4V?Mi^?0-+9dwf#>Shz_y>J{|WAhWML9GG)hNI*Hs{r3+yKf_zKLmrp9z zu8rF)sc)rYlbI<$4p$_(e+$9TQJp&63I5Oqleq<>SmqL|W2XBi-;^VmhW_VubTOW)w662lsK*D1D$h^tf}+Qy*_{230m1+}k|52OmElcmf4$)IBZ zrPF#dMSu!*Knr_-&wTw@v2KUq1EQPeW*D<)tSg+>U1+aJtB}n8ikBCH-sJl1vT{W3 z2c2Gs=}nBigyFZTz;)0Y#zF^6GXti~sMDfS>wxcRgftTw&*y*!w;+JEnts(9DfsK3 zJPr_QX?Wirr}L<#Ba3r${n@p;5fpaQ>b3vedCfN>^T(Gvfm(ZDy8y4puyRqtbGmZ&Sivp#t<6Mieb7Zd7XIHvC_uRzn9QbwD!0d+96;wk|J=4f@?DPT z(a#3Acx&zbC+{L-F;TP02F?Le&XnxhSi>i%lsHtKMfJ&MGk#%BSr{t5Jnc5zeUjIc zMsk+tv}nRzYN^ZnLL>%6rbsbO<29A7!Fwiaw4s|1p4QIg%9@vi0gcHIEov{~;4}zg z*iHrUw{-1#x;-(S5lDUxq)xS~KYd@I-Y`f#(kaLfJgpCr$lzCA8dSLj_Mi**%u(^u zJ^d07>Mk>;S6*@lpcDD^<+hn;5^llMgeg~}uoUG;4bCgFz`Be^81#M-!F*$@jWM0Y zd2avKCi6~9LwAbQgW(DEmI4jDx!;u66+4gcpA0;P1~>e|PY*!6o8iafviC(JKhjR? z=q1!$sqJylem3Zn`r;a(l`JH)W_fVu1_Y(z7^D~8W|+?3Q<{oN3L|GPOF^UEqTo-x z0)IYdZgdK_-hM0!xTnj2GsEE{kSlDe6!(~B7hPq{6hkaROq|)*E5p@oXHIW(sJHMb z%AE;mN?|BE4<(NCmI_*pZjN4b0z)PguEBr20QzmwtQPX07avI+nn)_I0I@bDKB*jaBS1D_WN~(5M{%!c5aV5 zW4rk_#;OdHs5^R`j4{^lWUBggKN_zBT2c}AlFAZIP`cLfE!{9BM(gHh2N*HDfbz$E z@7!JX&_d%p$xL_LMd>b4@aKs9Y0Ju3%ZW{-iej~e4+kI@@dXg`gPVs>OWP-^183IW zg{+GA(AHUIUxEcQ0gKOVhkr~TmZbvT`onyg5gN{j+<}nk#|etUxEI6Vfi%J)AswAn zvlrh;+^%VEVY2R*pLFhM=ld1oQo&>`J+D{9@ig{pNr^&O3eX?}-}+5lcQIz?-aZ$U z>x@Es!N%C|c^piQT`!8jhN94r*sn&s#RfU0-evA{_uWD2660!>ic?QeXO{!84%{%k z`Jxf-%3ofpAAfNpqd5dmLW+CRzTs{usl&n3*_!RC%1f3jyScEcV{Jg^^OSaIUR0>- zMcaM4jp=H)v*IhN3+!U?AV5e7>O3r$pn(NI9bZ|ChZX{nqXzgvN%j)*ltJ($8_)q| z1}w{J5Rx%`3!3lqSvMwIvi^M$4RNXGFd{t=CY_7qf1~DWURkP3y)RMN$kg=%@{BSe zJ#DG=vh}5SHrmwp;R4Bg;4MpYC?G_5?ce@MuIdIwVjL>d6r0$N$aHAzaIKCicRez? z@epc})1-)!G$hwImBDPq6VaWd7|=Tt z77f^FebmR$Q`A*Y9FF-@Ackk;{<6Cs3x7iUJr8iq`GBeSRZa7(8RV7u=rby44A6(w zDMG7KLR-%vvENFbvVU5Ih9r#BzY6AHZuAQ2cnS35LqsMTPc$$L7%|K=-(>OJnVfm` zi4H|6W0zQ8x1_e$XKRjI#ZS<%Pv-zUeAiGak~Q5-?Xr4kIrP*i`G{#y(Ll9=CobbF|OV2dg0|09qXnykjTNj@30@#(stF5nwT{x^yP3=bJf-= zbFy`SG3gxaIaAn;h37w1xB}WjE~AgfcV^?R0OHJFrrcbG_@GxzuWir@2porC1s zXu*p{Z1~1RCT}oN5BCB$Fe{*h*>)kCr@T=BL^;c8KV0Bosa?NX z{UY7I^H2vtNT_Vi4GbODPqn)~xSv#g+1^%@Uq#69PLjw{JX@MxS7h6Gnlu!}_Le31 zntj;&PmI9ztY-HIopthD$^%W*``?@G&R^FhYL~V$n0?f#??Kt-7fmC#xacJ)Jq0ox zfNsqA$O80)ZTh;~yMNyrd5PE^;ayhASlXOOe8AQ|eK)0c9r-dX(=}9HQ8(32G-06$ zc(Xta@5C6(YOzHuygb=1R&Z4>Vjz?AwEd38L_6a5r;;mzzs6nRo3azF2RofVR_|eq z#9RAqW1nhQUFQ&PF^e(!{5(rw5@l}1xKpINsadmDl+UPshj+P^^ik|AZqvm44IS^Y z6olJ0VEGe;tjEa5RlkP3M{V44)wO*a?*NJLTpnm`RwVQU#k5>c3ma$U#n%a`VaZ_g zcZcYlK75FjZQSD+gD1|;rl5EYmN|FVU73QmG4Ha>W3$u- zj6{~S5;CnA{b&^u$)r8*w?=A!ZdT8T1nZd@q;f8Dir!4w)npl$9#nv!)Tmb*bUU0F z0#_`Bmk&pUwHVw!B`v13EA49E#WJ*2a7do)w&hvp%ssVoJdJ&DW@P}XTL(hn)z=&l zj7pDgU9?we22*Umk?s%FBeq3=W@RgHdJk`E^2O-YJ35(+->$0%ev&OzupYZK*aE1_ z6_|D{#ea$D^L;y$#%(9v*{IuJYn8pO{O0xw)GWZte4(+>wzVL*IEBaDWO;7~mdpdd zi2iv7Pt2<3qpXytS*>)^a&147i%ig_ccA45eQ--5GQvn# z<+92>E5nB-wcq+OfbThAz@Unyj0Uf%b>cNTi5*qdRmj=yZGqe$=HkyuGk_ zxOl_d9L$i0xhsXdi6V+gT1;E=`vc2-u3 z#gVCF8}Ik$ z{d&LN@AvEddOe@dBN&&cMd5>f7eS9zJV9mt>_)4rxu@hD%zO ztf>npD(5NEjw&6xq1}50fDjkp0-%o_-j^rkl(-r3hv=qb5QcUy>b&-B=5mPpw@;_{ zl49hS(#59qDyo90p~BU$yF;$qcO4Nv`cv@*xXzSht~I@nKI@$6f=$4I@ zM%B|Lc^S(oXWL}L{himaWK_Yu`v+B)pO%<)xQu07b8gOzkq#+LY`)%{-(3y`x!SJs z6ONu|*a**R-x$_r-nL@iCh;%(8;{zmn5)r|@67FX8$8R4C!v&M`{Oxh^1F8^RvJlH zer@(nPJNdD?xKxZXtkPA@JP*()}k}i!rchr*L^D>A;@;d)oo#39bDU%YdB5gISCH$ z?njhK;QOZc&Uwxn&SWk=N($}|HtvZ=nZM0TX`L#!cr$tfBRyQ(rFO<*w?%yharC?> zK4Gr>D&UJtlQ_6qqZc)+N=PtaKc+@C%t3G6R>IXYiWhuN?QiT9Fv_Eea@;sGI$3q+ z(x%ojZ>0%nncgL>!KNF7(C8wcz^kM)dm0xe)#D7@Hs0yM)*Co+8h)4DP zfOqKoY3hneimb=x4*(IpAPnEH+`OG%mzD6s=FPi`up8-KrG-B zeOi+s9)>WdZy5S2bvna!&%q&q(ZsRK`5DYxdn$aB@9#sDRZ&oN83Z=rB1q%JeT*nl z3@c&^FCs-1J{!tZ@E8V#nc%WTbq@2qheQyd8}8{RZut+qEx%peV8C`DGb@x8!`@P(>QDw{o7WA~DajI*`#}q$ zj#YOkmyMH{on?O|fz2PtFRVQx47U!=c>CO`{gxpgxGIf{+w318*t{}WMoV0R>t z{TsdPEUu@II@E^hC_9RSyJwd|3P96Ya55fs^qUGV&fdBEA(K0uU!tw#FLS$9Xfisw zh?akeFT-%qj~nN}3QNL9i*8=b5Jr4f5Z`=#>-=WpB3v5kqs@a0Etr*PkC6CiC-RVz z2w1ZTF=~8p&Iy0J;m1tJ<+@Pb=*Fz%@5ylvzJJ3z_{Q(7+mghKPn+yL*U7C#gH>WpdW87^qt4j03E|S^V$`DUwh&Z>_T)?UG{)F-1Jxr$B(>JIB3hgjM z@mlCiv~w{PqhA%T08vzI+TfQu{%IY~=M0ccuoa$WFhsNo#m;T9Y&~x8VB5;LIT9~5 z4m5Fn@wbL^ zKogGCuWOlXDpKJiXp1ZZlNwapX^IV^NyZx5BXkm0|IiBRE=9Rtuej6dIwG`_!>ZK{ zO?EhCh~V;Ug@c+y3m*HQVdl%$%SN{!69KdSgkk?&$QGnK@U7Z9Z9(!*o&{Kiay=URNkoX6My&6TzJwgJ*BPEPR6Y>hzDmT6w`EbeaJ;m^T=z3*5?m#MUjotEv+@sIHP>Fcq z15bm!v+~AO&$Yg+W-4#<`G1-+dHhJw)s(jhXJ?_o;8$SOK@e2@qNZ~$ZGJr@O3B<( zwvLDR({W@wC(B}>0W)!A^UV2r&^{(d?w8FqJ~u-Pr;9>xZlQw`q5Z{zT|~3ldTI=r zs5PLNRgKjg^w%0ZVlb=%Gjog~ziU4zK-}ghn$K$ZHT2krBm|`R2W!!h8Fq~&Y%Icx z@Qj8~22da5H0_`+pf7aQ4qU4Lmh*b}Y&nNBSkYbMYfr7b8K3g&99BHim-l%i@6!`_ zfeQ`Q#zH=H3&iK&lNK6xWADumDc#QMCiV9ZfV3G#^P8G+1<#8MmiJ?lx$Y%yIa#Oq z+F~8Qz?T)|CkvB4JUGa-Dr~)b7?`g^Cos?Sns)QP*FIo0f5PlC%fl?^^+?(_@fy*7nrb?5kJhJ+k-xCeuEHOC`Ec#0fbftZuEG ze*V^34Z>Ouv(`)TCFiC3hkwkZY^oa;)e)R9LF2*O$%hg`@P^DtShO&D|5^U63bCc> zJ*JDSg~(P0u+4CzvTDTtM(kM_4BN^ zRMf}*a3sR5-bGqm0>G~ROiaBVzMh)|DFNGn@&{=DJh`@nwmwukFd(=Pk`yIfKl0zXvaNL8jI^$~%$7#(Y=H1edvfX68ZZe5`0+3fnE=!{o*w)(ktc(Ei zZp%k`cv|gvAB;v7I4dnjE?d0R8dTjqoE+59<}GEiP^?9kXk$94-%mQjTwnX;x<`Km z&TS|}{!GoT5t@{-svUvo^h*vUEwENMXMSEK^&^O5o^})lLW}&>tLm5E-hYs|WoM>3 zw+aIBzCLTck{npt^`AKXCdVJk%es$h>iGnS55P7fK*wqXGbnzQ2 z2Kn7P$2G+MF8{jOC~q;g#}0r!9>JL2#17m~E#}V4my;pGCtMr6yjgm2j<_ zd{F(XKP6cu5G-9LZ=A9~WT_rT-J#eOD9PYKjl`$4>3GeW4A@z~E(v+-S2%u8+&Z5f zeB`N_E5J10Fr9Osozx6U?}(Gi2rg+Co(ueMFYU6Yzsh{kC$uPE8I&|LE1`M$k2r%! zlq#2?-I8}9Tr9e+n)tazU3&3Hu+;l#57sB8&UDjS@uTR}m{4z?gr#1_WDPN3-IbJT zMILX5Ie>u9{i^;jmMyxOKar%HNYdvgrZ%I`YsIL5t0(=RatS`IEDO)@58q;jY?I$6 zZ)q9qjg+!Z&VFbr=U=vKWa3m{Oa5i_v1V}s+T8}k+gNH|u(c)bw54C_+3Eo_95ykY z2`>dr)GF6vDV5XpNJU%sK9c*X1BQri4X2bH&nb_QxMPbgRD^#%seH}xn~YG0`9b;cS3MgAvE=}j@sMqAj)A`QuhAYyEx)6 zTCZoNswqH)ZJSexqF*@*$8xhz(e~m6O#%z~(cB28@q*p4;W$92Rj? z0f^Tdm@#dP=uGZ%yGv^ga@QXH_`54^lukg%OHJw>s0B+39RwLPrgXSV7&_7#u3s>A z-G#tT=p0bT?42o$Q)#DI#*n+1NxK_0)oj64WGCg;Gv0@$O6;m7d0FA=F%O&3-8Opn zdH4Lq-*w)pHgd4`T&0W;p;rEUY_N0=>Sthfyo+Yk8azncvPj&@Pwr{Z*Dp7+(r|2| z+%iAnaunmcF)AHdA-Z*VPPU3hb{+Bkf@e#3Mt>V5`$84`7M5N>=hEzlt%*yCTWL?5 zwBx>O##9U0-+#Iu7G%NRHO*x1D5H6?iJ! zqhEE`ve0{To!dU?h>t&?nORENkG$7r;2xR|80UqU$Lt2*JbpAELwr);*I4O>De?ZV z!mn{%9h6xF|F0XT?qm{@w>jQh7>9UA8|P;tZ;X>P-~v$lr!rhSz@ z^8G-$#k`E2Y5%>GY3sKc6cw(SmD44`1U-6J_usmRbt{NxP|8aHeGE(6YD1p0-~%kV z7kAcn0&x3IZH+XN?C?5)9O&TU)?4}aE%|fBN>P#>Z6_#?%dFmLV)0=}rf?*m^EseJ zXDWOg!Z;fQnJYaPng60Ir{(;rV`|qKE=l1C5y6&U|-}iej%Z1=?VF)Va zb#-t}*51hZ<;1QD_4=}+f8DucQ^EO8i>_J$@sf%?uNx?=7;Am``Hf!5fe{L6DXltk z$4!oD4LUws#pQ2Ij_CPnP)^QDX-*&*_=OIF#pP&prc@&~@$si8puGh@NlW%>#fcr!p8SB>xE#zLA`@IMf^b?d<75&pScXS^n&f$z z%e01{yw#t-CKnjfLSOod8^@bnw0;zTo1}j4fnT^}@LST-Ioa3svXs2hn*dA87X0r% zn~2tXJL4>)%+4n*&#T`#+ofAkS7Q`sqI>yt-u%EXCV?fW*5G2|n%a{e{yKX_noA`rTx=Cq8|8uY~;A{iBD(w>f3hR5{OHul^z5 zRy(p@eA6Q|eD~`)JJOoJ!r5YUj3YDiyZJ7(2p^+B!X} zJn#?PK^6ldOsXigxVkD2WIbFgyxmc^=OR;nJ!w?WjReWIE9br03^~Z2D!#uCP#S>$ z?pE~Vj}8M*=*9MC>2?ZFWe3H-L?$d|+PRoP$Ba=CHacJ3Y{$t|efra{wo3~*QdI1s zI*2r?r2ncQI98XYYYrcwSBIGT0jwzif5!7hH~DfRsa6~$KAe>d@w}y*2ekMVnk(nL zueh3pz_qN3Q8Zl7QiMHBtjK)xYKY~Gq-)#BVB9-wTSXDyX3F%{0tV}8rvanh*Zl}* zr-78edcI3i4#i}0)3$b3?WqNRbE6rhdT*?yw;m*O`+w$QWyb}gK(R`IfQZiE`*{(J zyiM-3K+RMCq$}5J;>FUo4*tOOi8w^?NOtnxCpJb$=-0hXKmt>05AhIV8-^E$7hT0% z9)*}!_t1Qqe`0Z&khhX%#pd0@;EiMQe!oA_=e-^{bW`SsvgQMHN;ofvA=67Zd5MPn z!fbyYNI+!i4o5JPm=r?yw+n&b!_?F%F_N5&p2V->B2OR@>z#0#oI%NTU zC}`oxD0>7b!nHavfrAWgj~aX(yZQ}^JwT~LRsneB*OvqPv^4p&8#LS7=g#D&Lvi%!OnAIFf7_z50?*7O2G z?}X6I$)Sj|##QGf;~Pa6=qXY<(@FQEWqF(r&$Ne_3U(mFbC9b^8Qkwx+GFBs{gO#6 z-DC!OqciD?n6;DNgEi8v%&uAFG9CXz7z#r94#`g&LNBG7GLyyx2)FnN&(-21nUm|1 zrP3U-)}92PHkkPkEv&^Bv-bi-Ei#pkCt|oG`||i~>s&+&)gew38RzXHzO=^& z0$HcFCEqPhnPzlH6e@oH2`PhHNZ*2Mk}?fBaJK*sRD$D;+%2r0=k4E zRu*)rd4TEJN;czNb)dq*SR=Lh+)ry*;aNqxAWmB~l%4RU;LZ z6f50wS_PiK(tf60@RjI;@11@gqm_3zA11m1i6%_P40(|e<(9+7NCfk4WP8L3(K#Dc z;mBm$Y8iJW3EonK-$F0M6en&rByP& zQylvE(J&@WWtZ32vKXb+E3ZcV=`)dy`^T8D=EX^-%Pm*d4S()emE?)u9yJzNiEiEc zmGm5aA<`aW0~JGT#IAh4&^F2TjTk8Dd?7MKJTgQwa;pE@4LX6e#ACrYkmPZmUb%ba zJWF8(B9c$AND6-1t#QgrR@jQJY4N_&MOZ4^xC;5yIKch~JP*L5$;+CI~4Y~&{f3-gp>dkifDw{3Azw_1fC$QkUt z-NvupYxtAWcSZeJ*Jsf*U6mH)-7uv!{QQoh{_tK(Z5%%Syx@6HItY`?9KnCFGGt6jWeZ-f~H_MSogZ01;f^AAyOMltjtF|#-fcPMq<|q@6RJG?d2Yr^@ z6#F3+#s~Jof68*-%ldM4a;>&a_wp5PQ4gWmTdx1 zfEipTNdZ(>Q_9GTe|^WF0eye)<5Qxj#S2HJ1ow9}cRdOUnV)}xmPB93`Sh(}8b;?G z$}}GmCm?k@y~NAf3^xbV%~ZqqTo|0$Jh=bKfw8muiVp@K)^uRc1@{-0FwTZ4^^ghS z5&J+kPg*VpsVYER<0sMw-{`>k{L}mr139cIKt%r?3<8!8Yi02yzkW##*Y&{d_J&=x zv&xPqm0J%Y{NJu#i$TU$tPugR%ILSg(>l0<9zQvk%c2l$b71F|0P&UGYV&L3RrM+d zY;9=o6pquI_f-V}KrU?fi8fqd26RTBR=*Ff)PYkS=M9f-R=}jUuF0W2Dat=s;jI;U zHc(Q+0Yn-Y73=;-=SkJN)<+pEv|5;5Z4B)V3|@Y?0~B0A4Q2Yx&x*D1J{CUCf3m~Q z_L?B$gat^yqah>h$p`In*8LwI@#b>bj=#jhPup89RW91N^V%+o>KGJ%n+`~>`Da! zXE<>Er*U{&HXc3gB`u{C@Y5oOT&}04M;CO9Zg2CHnEMKWRwueP(38bq_&u*y@mrpcIDhV> zh0JL_wc94o#QtOZ(0%#4^-Xsxwp+J#VonHgr3yys8ykg%)BSmLLy{>r+(3X%Fiveg z|0CO(`X<$;Yb)ztOD|Cu^JnAU?30CvuZFya(8QdFJCnidCMK9qaxVKS*^vce){O5R z;6E2Qa;9s9$2f_Xgt3q;rQB`7qs8TRaziYMm4#?-qlBepA?}M{UzLB(X@=ep_^o5p ze}XD60upVraA|2hS4IX-s9><`BYcsMCt1;Bm(u$n`x29|7ch-PCA^}?b{oe=R}?G3 zMhIhWmVvilm@`K13S;rvO06v?gT1fALLFv9-e%KMQOPrGxy^=jR+H>1M+HD*df}wt zSW^FZoU{iL#X@Ke_U@Pyy$4^Sc$9^PtSKRaXDOm@yez}uf&M4q(A;1~Dyr;y928as zL%tGGLR`T*%3wuBuuRyyeJk}cd~Qt%#u6;VUKXNTj1Lu6scqhvJht!+%%xM`^9vER zF)zMwjo2lOZQVQRsPbCo$nYy=Dv~_wrP4`%$z&?1$JH(u|41J7t{Vk{d-790Dk@)G zP(z2h6E0l_f8FVD%>-gyE6*nx=lrn1XRMcyJ6%VUtB5TL-HIv1VpZS)=NvyuIB6(4 zweUNIx}kVnRIwZ)SiEg4;%wY3E@|cqb&kUZs%iBG71d(%OGiy;7uhwI)FR);3JNe;-IFeN? zNMdqRQH{>^FYvr13Bp>8XG09%UK)|X@|pPlN>XaYj|O9va$hSQd5^k39se*FT24X! z(Pv#?U|Dbz?%`V{%$Xp~jgb9@NJPF?Flpk{-afp7i;8NPe}L8IV8{)#7cxs3zAIIy zCXc%uP|M8b(+))bmhL1*r{8I<u@I{sw%YACNw5?BMX``XrK9rNQ&d#y?2F{E*7bomwIw1LNY)Z^@BJg$ z3?+yPEHvz@2v(Bo*wea1v2cPi71fqyUb>S8ytCq+i;K&`$gGQ;$cV3cR}H5>@J|CI z-Ys}U2}3KgV>%wPV$VW=^!X0Ob&%a>DU^2dSvT+#9YI0^N1_-=ifluthjKEFZHCg( z{n=(Gj}aAYd^na&kBKFi~YYoV>wIt6W2-JY$tETl1Rv_U`6GGageuNE{;7|bs*h< zx?VBM$bBu-+M!Se&q(jjY87`1b?y8G<}bgU{QTH6%T|hUvkn@;Eo(o1{Af18TNQ2t zEYoaGB-w_AkUpuA5R40PdYfglHObxQ@l^BVLCmSf6!7aLXtu>UEjXoik&lBgdaJlZx(zKhqXA)Qs~{z0h?VP=%V@DT2-2!9~$7e9)h_WD7jyM`9&v9x`T{= z(wdekrq^x)WuDQ$7Q6#{CDBFZV<85MVvm+Fz|9PUl&qy;5(Od)zmL;NhoSKR%?C|6ljeNvjg3GSKhxK8` z9iD4%E9Y82ro!wx2NPEG^jPMJ{qP^`|DAJkaF9o6f29nYK!z_!FBaSZHoFW9Ex1NU zMRoF^Sbra58(f#!H|E-CsyZR+)?5Z%gT9i+53lX*z@~FIZglb#7G5^L=Z$-#s4`sv zM?ybryzVQ33&29PIN*~DUGJ`%ItV7v=Z3bPpSASU_^y5 z_%s=a@DRFjb&`WfMa4gmztYw$4V+VT-$qWof`LgBNlo?aMsyAxNqJ2smmhlq43IJV z9BHh+jq+RSoDU4_@h5p26)?SS7<{G-M0`kHPUPvv%<+cKyg1+onv&etpeLE%Z}ey4 z9=thAX>KQ%bbu8|=UW=|nj?0zl4W7&+QIG4x}1P&_Ku!N@;7=CRHgUt!}K_{Xnv)r z)04*Ew4kb*pf3M^$nt{bkdGnJI^+ZsNV04_(V<9p12mo3PBz6V{cYOvwYkab^-MA8 zTybfr3;wN}W1em`INEe(DU5Es$K$V9=Lc`%G7ntd&^Je2JDz|xm6+dQHYVe<^-aQG6}x>=31C~ON=WAm`&fJ- zNCb<>{ku~|fVB?#^-^zo#4;tkt=4?PCvT?+?Mb7uKFH^jL^C^>Y-y zG~jPwB%XQZ#(9v88z|1B*3?+iEmk7l0BHvnTxs&&Bw&aBz2IAPzKeAQe|)}DJm^U@?4Ua^ zse%1!9yv-71z5|3H)!T0k4mN3FOv+uG#ST7vQ$*h>c2zje?F+c0t*fBxgQ{U>>|ya z@AKMv3!AeK3L?p}=2!hyRsT-#P>;Xc5m>#SBFX6E!GP9n`y$CuR)P-;!T1VrRN#^% zr%(@748jRG4KU4Duum~B@`Dw9JoI32EcnrrhFA#@6nF!;Dt6E9E9EP}U=CA~2Jue+ z|3I;KI<@IZ>%y3R(+tQ%!@n(M4|RW%ayqPxBqv7(wk7`?ipzDN(M;Bj-SoM4_1`)% z3uM@Di`@h-NwO}q)(HLUMVEXzcGFlFJQH}r+8(!V=+cTLyQ2Oj4scL^`1c{ds*oH? zPJ(dkrlU{~M{uFyUq@)P>D=wRs0dCyk#49-;!#`8-=0Ua^Aj9h)e<>d)n!9HoGA*u zCy&h^Ku)!3hxXq|g1L2Ww*T3#be+pj?d1)`Z2tY0L(t=+YlZHwW_GG7vF@%@=^F;+ q$|}v?<86v|a^Mr-FVFH&_%oH#*QoK^jrumnuNdl@>ActaFZ_QaHc^rQ diff --git a/portal-common/src/main/webapp/common/image/integration/openo_logo_pantone.png b/portal-common/src/main/webapp/common/image/integration/openo_logo_pantone.png deleted file mode 100644 index 141350427ae9f2fb14d1b54783e1ed133e961558..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27702 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 diff --git a/portal-common/src/main/webapp/common/image/integration/openo_logo_white.png b/portal-common/src/main/webapp/common/image/integration/openo_logo_white.png deleted file mode 100644 index 7adc4ac35288807f911922422790d46547b465c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26677 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 boZ_aL@S0T9LRoz|{>D((M5kQq@2LL)H5|3Y diff --git a/portal-common/src/main/webapp/common/image/line.png b/portal-common/src/main/webapp/common/image/line.png deleted file mode 100644 index 9d340a8d541becb7a68d06e8d3c26b4c32c40b7d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 139 zcmeAS@N?(olHy`uVBq!ia0y~yU=aYa89CU1Wcq^GyC6<+kh>GZx^prwfgF}}M_)$< zhK>E)e-c@Ne9i)o$YKTtzQZ8Qcszea3Q$nN)5S3)!u{<*Mn(n(4km@)^(XVUE?_^f e1!Nq^+M&7MmKHR_?6a|J{9q(J=h#u&vc*C^KAq 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 LWgH$$$#~^|IWJQ1 diff --git a/portal-common/src/main/webapp/common/image/mainpage/License.txt b/portal-common/src/main/webapp/common/image/mainpage/License.txt deleted file mode 100644 index d1ce787a..00000000 --- a/portal-common/src/main/webapp/common/image/mainpage/License.txt +++ /dev/null @@ -1,362 +0,0 @@ -THIS LICENSE FILE CONTAINS THE LICENSE APPLICABLE DEPENDING ON THE TYPE OF CONTRIBUTIONS. - -APACHE LICENSE 2 IS APPLICABLE FOR SOURCE CODE, CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL FOR DOCUMENTATION - -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - - -Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - -"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - -"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - -"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - -"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - -"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - -"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - -"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - -"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - -"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - -"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - -2. Grant of Copyright License. - -Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. - -Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - -4. Redistribution. - -You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - -You must give any other recipients of the Work or Derivative Works a copy of this License; and You must cause any modified files to carry prominent notices stating that You changed the files; and You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - -5. Submission of Contributions. - -Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - -6. Trademarks. - -This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. - -Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. - -In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. - -While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS - -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - -Attribution 4.0 International - -https://creativecommons.org/licenses/by/4.0/legalcode - -Creative Commons Corporation ("Creative Commons") is not a law firm and does not provide legal services or legal advice. Distribution of Creative Commons public licenses does not create a lawyer-client or other relationship. Creative Commons makes its licenses and related information available on an "as-is" basis. Creative Commons gives no warranties regarding its licenses, any material licensed under their terms and conditions, or any related information. Creative Commons disclaims all liability for damages resulting from their use to the fullest extent possible. - -Using Creative Commons Public Licenses - -Creative Commons public licenses provide a standard set of terms and conditions that creators and other rights holders may use to share original works of authorship and other material subject to copyright and certain other rights specified in the public license below. The following considerations are for informational purposes only, are not exhaustive, and do not form part of our licenses. - - Considerations for licensors: Our public licenses are - intended for use by those authorized to give the public - permission to use material in ways otherwise restricted by - copyright and certain other rights. Our licenses are - irrevocable. Licensors should read and understand the terms - and conditions of the license they choose before applying it. - Licensors should also secure all rights necessary before - applying our licenses so that the public can reuse the - material as expected. Licensors should clearly mark any - material not subject to the license. This includes other CC- - licensed material, or material used under an exception or - limitation to copyright. More considerations for licensors: - wiki.creativecommons.org/Considerations_for_licensors - Considerations for the public: By using one of our public - licenses, a licensor grants the public permission to use the - licensed material under specified terms and conditions. If - the licensor's permission is not necessary for any reason--for - example, because of any applicable exception or limitation to - copyright--then that use is not regulated by the license. Our - licenses grant only permissions under copyright and certain - other rights that a licensor has authority to grant. Use of - the licensed material may still be restricted for other - reasons, including because others have copyright or other - rights in the material. A licensor may make special requests, - such as asking that all changes be marked or described. - Although not required by our licenses, you are encouraged to - respect those requests where reasonable. More_considerations - for the public: - wiki.creativecommons.org/Considerations_for_licensees -Creative Commons Attribution 4.0 International Public License - -By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions. - - -Section 1 -- Definitions. - - a. Adapted Material means material subject to Copyright and Similar - Rights that is derived from or based upon the Licensed Material - and in which the Licensed Material is translated, altered, - arranged, transformed, or otherwise modified in a manner requiring - permission under the Copyright and Similar Rights held by the - Licensor. For purposes of this Public License, where the Licensed - Material is a musical work, performance, or sound recording, - Adapted Material is always produced where the Licensed Material is - synched in timed relation with a moving image. - b. Adapter's License means the license You apply to Your Copyright - and Similar Rights in Your contributions to Adapted Material in - accordance with the terms and conditions of this Public License. - c. Copyright and Similar Rights means copyright and/or similar rights - closely related to copyright including, without limitation, - performance, broadcast, sound recording, and Sui Generis Database - Rights, without regard to how the rights are labeled or - categorized. For purposes of this Public License, the rights - specified in Section 2(b)(1)-(2) are not Copyright and Similar - Rights. - d. Effective Technological Measures means those measures that, in the - absence of proper authority, may not be circumvented under laws - fulfilling obligations under Article 11 of the WIPO Copyright - Treaty adopted on December 20, 1996, and/or similar international - agreements. - e. Exceptions and Limitations means fair use, fair dealing, and/or - any other exception or limitation to Copyright and Similar Rights - that applies to Your use of the Licensed Material. - f. Licensed Material means the artistic or literary work, database, - or other material to which the Licensor applied this Public - License. - g. Licensed Rights means the rights granted to You subject to the - terms and conditions of this Public License, which are limited to - all Copyright and Similar Rights that apply to Your use of the - Licensed Material and that the Licensor has authority to license. - h. Licensor means the individual(s) or entity(ies) granting rights - under this Public License. - i. Share means to provide material to the public by any means or - process that requires permission under the Licensed Rights, such - as reproduction, public display, public performance, distribution, - dissemination, communication, or importation, and to make material - available to the public including in ways that members of the - public may access the material from a place and at a time - individually chosen by them. - j. Sui Generis Database Rights means rights other than copyright - resulting from Directive 96/9/EC of the European Parliament and of - the Council of 11 March 1996 on the legal protection of databases, - as amended and/or succeeded, as well as other essentially - equivalent rights anywhere in the world. - k. You means the individual or entity exercising the Licensed Rights - under this Public License. Your has a corresponding meaning. - -Section 2 -- Scope. - - a. License grant. - 1. Subject to the terms and conditions of this Public License, - the Licensor hereby grants You a worldwide, royalty-free, - non-sublicensable, non-exclusive, irrevocable license to - exercise the Licensed Rights in the Licensed Material to: - a. reproduce and Share the Licensed Material, in whole or - in part; and - b. produce, reproduce, and Share Adapted Material. - 2. Exceptions and Limitations. For the avoidance of doubt, where - Exceptions and Limitations apply to Your use, this Public - License does not apply, and You do not need to comply with - its terms and conditions. - 3. Term. The term of this Public License is specified in Section - 6(a). - 4. Media and formats; technical modifications allowed. The - Licensor authorizes You to exercise the Licensed Rights in - all media and formats whether now known or hereafter created, - and to make technical modifications necessary to do so. The - Licensor waives and/or agrees not to assert any right or - authority to forbid You from making technical modifications - necessary to exercise the Licensed Rights, including - technical modifications necessary to circumvent Effective - Technological Measures. For purposes of this Public License, - simply making modifications authorized by this Section 2(a) - (4) never produces Adapted Material. - 5. Downstream recipients. - a. Offer from the Licensor -- Licensed Material. Every - recipient of the Licensed Material automatically - receives an offer from the Licensor to exercise the - Licensed Rights under the terms and conditions of this - Public License. - b. No downstream restrictions. You may not offer or impose - any additional or different terms or conditions on, or - apply any Effective Technological Measures to, the - Licensed Material if doing so restricts exercise of the - Licensed Rights by any recipient of the Licensed - Material. - 6. No endorsement. Nothing in this Public License constitutes or - may be construed as permission to assert or imply that You - are, or that Your use of the Licensed Material is, connected - with, or sponsored, endorsed, or granted official status by, - the Licensor or others designated to receive attribution as - provided in Section 3(a)(1)(A)(i). - b. Other rights. - 1. Moral rights, such as the right of integrity, are not - licensed under this Public License, nor are publicity, - privacy, and/or other similar personality rights; however, to - the extent possible, the Licensor waives and/or agrees not to - assert any such rights held by the Licensor to the limited - extent necessary to allow You to exercise the Licensed - Rights, but not otherwise. - 2. Patent and trademark rights are not licensed under this - Public License. - 3. To the extent possible, the Licensor waives any right to - collect royalties from You for the exercise of the Licensed - Rights, whether directly or through a collecting society - under any voluntary or waivable statutory or compulsory - licensing scheme. In all other cases the Licensor expressly - reserves any right to collect such royalties. - -Section 3 -- License Conditions. - -Your exercise of the Licensed Rights is expressly made subject to the following conditions. - - a. Attribution. - 1. If You Share the Licensed Material (including in modified - form), You must: - a. retain the following if it is supplied by the Licensor - with the Licensed Material: - i. identification of the creator(s) of the Licensed - Material and any others designated to receive - attribution, in any reasonable manner requested by - the Licensor (including by pseudonym if - designated); - ii. a copyright notice; - iii. a notice that refers to this Public License; - iv. a notice that refers to the disclaimer of - warranties; - v. a URI or hyperlink to the Licensed Material to the - extent reasonably practicable; - b. indicate if You modified the Licensed Material and - retain an indication of any previous modifications; and - c. indicate the Licensed Material is licensed under this - Public License, and include the text of, or the URI or - hyperlink to, this Public License. - 2. You may satisfy the conditions in Section 3(a)(1) in any - reasonable manner based on the medium, means, and context in - which You Share the Licensed Material. For example, it may be - reasonable to satisfy the conditions by providing a URI or - hyperlink to a resource that includes the required - information. - 3. If requested by the Licensor, You must remove any of the - information required by Section 3(a)(1)(A) to the extent - reasonably practicable. - 4. If You Share Adapted Material You produce, the Adapter's - License You apply must not prevent recipients of the Adapted - Material from complying with this Public License. - -Section 4 -- Sui Generis Database Rights. - -Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material: - - a. for the avoidance of doubt, Section 2(a)(1) grants You the right - to extract, reuse, reproduce, and Share all or a substantial - portion of the contents of the database; - b. if You include all or a substantial portion of the database - contents in a database in which You have Sui Generis Database - Rights, then the database in which You have Sui Generis Database - Rights (but not its individual contents) is Adapted Material; and - c. You must comply with the conditions in Section 3(a) if You Share - all or a substantial portion of the contents of the database. -For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights. - - -Section 5 -- Disclaimer of Warranties and Limitation of Liability. - - a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE - EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS - AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF - ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, - IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, - WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR - PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, - ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT - KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT - ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. - b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE - TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, - NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, - INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, - COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR - USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN - ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR - DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR - IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. - c. The disclaimer of warranties and limitation of liability provided - above shall be interpreted in a manner that, to the extent - possible, most closely approximates an absolute disclaimer and - waiver of all liability. - -Section 6 -- Term and Termination. - - a. This Public License applies for the term of the Copyright and - Similar Rights licensed here. However, if You fail to comply with - this Public License, then Your rights under this Public License - terminate automatically. - b. Where Your right to use the Licensed Material has terminated under - Section 6(a), it reinstates: - 1. automatically as of the date the violation is cured, provided - it is cured within 30 days of Your discovery of the - violation; or - 2. upon express reinstatement by the Licensor. - For the avoidance of doubt, this Section 6(b) does not affect any - right the Licensor may have to seek remedies for Your violations - of this Public License. - c. For the avoidance of doubt, the Licensor may also offer the - Licensed Material under separate terms or conditions or stop - distributing the Licensed Material at any time; however, doing so - will not terminate this Public License. - d. Sections 1, 5, 6, 7, and 8 survive termination of this Public - License. - -Section 7 -- Other Terms and Conditions. - - a. The Licensor shall not be bound by any additional or different - terms or conditions communicated by You unless expressly agreed. - b. Any arrangements, understandings, or agreements regarding the - Licensed Material not stated herein are separate from and - independent of the terms and conditions of this Public License. - -Section 8 -- Interpretation. - - a. For the avoidance of doubt, this Public License does not, and - shall not be interpreted to, reduce, limit, restrict, or impose - conditions on any use of the Licensed Material that could lawfully - be made without permission under this Public License. - b. To the extent possible, if any provision of this Public License is - deemed unenforceable, it shall be automatically reformed to the - minimum extent necessary to make it enforceable. If the provision - cannot be reformed, it shall be severed from this Public License - without affecting the enforceability of the remaining terms and - conditions. - c. No term or condition of this Public License will be waived and no - failure to comply consented to unless expressly agreed to by the - Licensor. - d. Nothing in this Public License constitutes or may be interpreted - as a limitation upon, or waiver of, any privileges and immunities - that apply to the Licensor or You, including from the legal - processes of any jurisdiction or authority. -Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the "Licensor." The text of the Creative Commons public licenses is dedicated to the public domain under the CC0 Public Domain Dedication. Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at creativecommons.org/policies, Creative Commons does not authorize the use of the trademark "Creative Commons" or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses. - -Creative Commons may be contacted at creativecommons.org. \ No newline at end of file diff --git a/portal-common/src/main/webapp/common/image/mainpage/icon/1.png b/portal-common/src/main/webapp/common/image/mainpage/icon/1.png deleted file mode 100644 index 59ba9a6343e0838ced017a3ffa91ed41733fc0bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4053 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 Ts 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 ZRtCP}Hfv=&;&|}K46Yhqsf9bl{0B~DS-$`P diff --git a/portal-common/src/main/webapp/common/image/mainpage/icon/3.png b/portal-common/src/main/webapp/common/image/mainpage/icon/3.png deleted file mode 100644 index 318efa6b8c11061b7a5d3f90eac232420987f676..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3948 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 diff --git a/portal-common/src/main/webapp/common/image/mainpage/icon/4.png b/portal-common/src/main/webapp/common/image/mainpage/icon/4.png deleted file mode 100644 index b8de07abb0ea178263af88032de67d1fb557356e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3927 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 diff --git a/portal-common/src/main/webapp/common/image/mainpage/icon/5.png b/portal-common/src/main/webapp/common/image/mainpage/icon/5.png deleted file mode 100644 index ae36671e6b4d880e3168e6e631174f511a089aed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3185 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 CqBaWv diff --git a/portal-common/src/main/webapp/common/image/mainpage/logo.png b/portal-common/src/main/webapp/common/image/mainpage/logo.png deleted file mode 100644 index f0acf46d97cc58d5d5abd1816d56627b704692d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16103 zcmW+-1yodD6Myv5NK1G8$pr+YK^m5nR8YDlq;o|?>F!3PTac1aq@+Q*K^g?4`@4R7 z#64$O_T6{y%=}_z!?ZM%@NuYcAPB-&QI^*M&voEO28Id#|2$+O37)WBl#O0P5H88T z9~3A(lM;e(5Ozt^QW&5+M9A@Tt+TiiyzJ@i=TorKsleT=5^kG@tUDw*;! zIs?&0|92aVE(khA^YIRJua>?+sd9!;A(shW7UG_j`?t+nYz7cR9JI_tyorkvs{{4& zKJ6uidMTl5-OrXdP$C35`uNK+L8bW6-ieA71~grgFi!zZ=hKwHpePh5jYEkARi*`c zsrN>Q8@1y*lv^&t#EafhiGnoxBA|qdY{h^)qYYyTWnMzaG&$}8h(Qz;dO}Ash{m9f zmdiiZzFhLcG$Y3}zDL zO*Hi(JP4w?9Q}4DDjmDI@q1;%deiaXq$~f<;n0~$it%Xa?rS6}Iz*%~d@%cBeSH$m zr3aW8sm)kUPkzc-pJ5p=V|py(9+=G;_kDW=e6>$MM&KX zt~f781fGH4-p%z(c{yk6DQBum$XW}9VBo>pL~m*;DryBhiZ0ce8H;kckBrKgMu1CU^wOp z$pjwrL{j0#K}0q}0zT&ul+b<|Bg2IP4W<;VLD1JN%IC$26zbhD2$Iiz^Ix?r7T!0~ z@(zN`Z?s=KC{WEXRlGYv3@l#tNw5syHamDf1NQ7D$Z|*=4G; z?Z!IwE&hhpBFh<4;u>NJV>RQi`#OI&kcxGESXIZ)XVEE0BvyT7CB2URDMvsqEw@yA zuq68ztn`Cejz{RKQ9Cq~lkZ0yc$`L^Agu@~ObDWr^~ zj5%y!ZEtSBJ@LZB55<4mqioLc(BYxq!y?LthkR-3g&5;0X}wSRrv#|eY*GnRo%Ia= zJNwU{Ebb?9l30>{Qee_%=~KPedeRdppp1YF%y}XPvd-I*3BhU9)`ncqUVIh;ayi$d3n&N1CT*(!RpF zBCtYa)_1mT)_mV>pL~CJ_Q1m>OD2mu>r~81?A!ypS-4rd`Capz$MBBSxW%r|HumYy zQ-bYZJdLN4(Zm-qjlr%0|UL> z^X1d!eS6W5Co&zf&Dv(Z&fP@4`=pTBr5Yg|(UUxz?B9=(j7UB&Pt}*w_t8JqpDI_G ze7?)Q>ojTLs6}m%ftMkc(f_5mBBSDmXNJ=f=_+Xq=NRXy?yFh&-pwA)Uiu#9{^K*V zGuAVwvtil+8e-Z>ad&ZlH+PQ#Pe+%py9Fykoh3g?I=2mMsBQ9IXB|JHC{&B>CrsC6=&zWr5ll)G-b3dLfxAyzJ6qAy)x*FO>lj@d2&GF57 z-&WYhv?STa95@-67Kn9|eJy^~e;aerzT)$j{73`iCCWFHb(GdORBt|`IiS&_r=fqs zdV~>$(Spf`Cq*WQhmCJU@0Q@)LGhRR(n4_FhC6+f>?bUX%$WL$e}GM$Zt_8N=rC-F zDA2j^Qhj^i3+%(PlH-R)db@{d6qf;{oc{@w^6qHY>AJhRpL0)^|2Dd|X^lRLDT!79XYNdeJKcEy>@IjCYy}ZTV68 z+BFT0suJ-VS^7z5q6^{yPp)i3H5EO&1+g`CxP0Os#y2q^BlP7b7t4odTxWP5CuSyQ ze$>IYORnRZ;&0$+(6r{_O2Gf^v*GlUI^q4#^WV&uuaD=*9N(#reyr1})FL2P=PTy& zen$DsyHUAS+4z^>lJ(urB{Oa?xqoYHwN_*G=jldoqoZY}c7+yl<_KL1FJ8EbPP3)A z-Qie3zioeQ@~zgYp^n~Pd!PBg(K>I(K7D$^6>K1sRFc@&|EluDxXFUdEXh*uz&>T- znSRiJ6iF}2UCN6qFRB$AH&zWaUQGC(`Z&$bE~+;C+}~B+E!cfkes0uWrP^vQJ24V^ zh+jc{6tzzM!bx?}J@gQ;UYdx2@fkUf8!0D^8KfwzzROZyp?Hhp$jY?jcUD+{ypZu`S z6b^Rn-JKohtJ>RZv7K~;qv({yT-Gy?&a)Z&>0b3N#{Us~mtFtHzEtS%x2Cm~H`F=b zIk=P-)Nl&hRrcW;6KnS<=lSTAE1B1Nuod|+i`JA@sjcBY@BqGM;nDLb#vnU4i$n70 z@^^5;T9IW@c9w>;>3)LP6(2nq54y7Nn0P&PF~w_=2~#6ZP@T; z`VjXrVz|B1r{vh}psb`ytcSUW{_BvBG#n4>9LE}O5Qco*=8pn;yo!0T_l|@g{ zh~~M}rvKdy-+9RKHS1W8AYhve7RovZ2=ZlxAmm#Jy1WO^+Yscz4?#OGAxJD0f+(Eh zUvw!#kPxYgyzEo&*}VWC|ECIH?n_$E;{RxPO%DAePp-!9WrKZyy=5XyF@qF-t!#7r z^ka_hb@udOCXk}-!Jwc)*H#*hbDc&{GSQc1h-JXWR_V=NY;j&{4Gb!H)!2k?mFVN# zopO9RuPL^mcb;8(HCdv&nJGqL7MT~(ymc-2)PTZ$^gJxJpQm_NjB+fq&~CcLi*F$P z5$;nxjPPcDJ{FZ=(^lVa-`--0|C$o2xD`Zx`^T(w4T$=`yUVHa;RPhaE7CrOwCzyDagKlE%-d(bRw4n z=Z87mdo_%GIZlbr&Y2J~u4QC|{ZT0fGrds!Fix4}<$R-SwOMCq#1$$8F}kZP4z_PM zFD@!gl09Jjb=Pt<#qlK2f;0R-2q_0~pdzy&EeI-sUZO$K&n22Z;XpW$kVCrXVf)=~ z`&pKR&)*0%ECTubQ4Z0pAufV^Ee>?&)>HC%&p9XBtG4`nR7^ZdDCl}_>E++weH0TB zUFQ5|-_eUJD>0+jc&}R9+V1GFws@~{NCaScOb{g+WS~nrfoqY;)bA#gran3K>({S} zXAQ6X)YR0Fh1-pVb}GMXf;lzSMwMZX5gfJmwML|J9WlhbIG6T_cqxE2V>1Uf^#Rqcv z-2L_pL^7qNwJ=6JmoLybgo?y9P);>f;<%5RkST;ai%MxhgB202TOu4`4bf5*=-KD9?e%c zu(7uG%n)^5C8Xeee)0LqdxBeX3vPyxRfr+r1&aqo?mZTa@fQWOf!e_m5__`po<7hG zoPog?=Ot6$n+w<3ZFe!-bk8xNeQ;(Lc+lFHg**+Y=mD9mph+|KuaU5VLU=d#@bMQH zQT5idS%(ZZjZD$~S%<1DVf$ajr+#O9kM~_f`I}P4FhF34t)jdnhUO!PcFraYUeMm( z91jPz*iV#xBqJjmeaXM&*0NxVo`I@anJ7xv@XFEHg*SSou`L88f4 zmoB2uvz1wPGBs=n+m~LH+ZmHIrC2uGP~^50e>8qWl#T{Tqe4A4IRRf>k2eO}z1N~d zO5xoa;rW@|{k~w=9z(ew!Zg?!lCeKn;ieACbQkWrsi6PcI%+u%9Eh}&pDxn%KOYS| zDBgs)IbtC39nlrG+}1{ScXzU;^zF&1$fCD}pO24EBm$Y#%bLMEh`Q>GC@n>m z$@r)?}ZE|vQ0=SOh1vqp%ZZ5910I3)Hs;W3KaBIXQ7TVW*j9&e$ixv%j zB6O76&!17Cmq)8zBMr_kz%{SV52R_JOg%k4b`b1TO~U6i9-RElAu^;2%RY47QPfxt zljUzfpnq$6z1bFoylcaFWKt@b)zpB3?4evT)zMkK?tgLTcHhs}?k}HgB_hWm&dl8T z25$YK2_dLr-iL18W$xR;y%^aZ%-{}VbrGf6uUzw%AV9;!L!K`M(F+I)zA3c(h))B} zV?Zu@(=`DT6BDI#`x^-A{)h`@wuEID(dE|j#kX*aZX|aV^M~r@ z_PP6OEj|o=LW2~>Ps|`&fwZvdrf3$G{hY_qYFNkz*4RD#11XRe76lF3bZM2z8x_Iq zwMLlSR;sImISw@@6!?(`miHObvUb9fgIOAVSxo4pj2Rc&kF4Bfy}Z0^0;gDX4eCpA z&5WaGB%DddK*%IsMOwdoC>;q8HRPT|`Qh0@JO4^#L) zR=<4mmsUC_-D0$S#8J6LEr&k#Z^DY@5s+I8~d zftWFDa$^NgVAJ?*hB7a~bxp0?oC5-G)gePo_kMyg)p!<4NnfF9$1l!vm4UE445)f} zAWhJVE8Hy-(q8w;#zHo5hVNLAo?YJ-6{@ERxORr(KX~71wpHB>)&?M@BNzksA7;d= zv#nh1R?#QN#T~&Bl zrL}c%K1T;Xo^3iNsY27kP$N93+F`0P3T!jJAl@1ll4Hd{0L?g_rMI^i`N(0i18m=Y zeFaT_3g5wD5K|oT0ka|={B4^1eECB`YyZP;YG)c{6_q&Uo?=pkmBKBXUjPA(ht-!N4U)&h5X7F}-g7lxk&!#*zjdl7x)h!t!V! z<#NNCe6~2{MgTMs@aX2}mF7^d;8KtE=hOB-&AS^_FWT?)B5R_FREgV85)(=PRk4>{ z;bah04G=?H5j|J7Cx*T%-)7W@#bU1AhgVM>LrTD3&6bHr#2nM<=(o$fCuB+INiXZP7CTIJhwDgp(^<->A zo+&OqJ|5L_fY@?%8^#FI9*`YQ-NKGy?T>e-gP!l+y`ylHOvj{)!2;N6;y+sXA-@sq z$X$=$LF-iUt}m{Fwk)K~5F(UbXf~MssM`0`zHu#Dd@ShxddZ9EI-Uh%C`UR+O{_Kz zuNen27NUBmlEC&YkyE!V%_sB?ARpphe?s>5908JO52JKATA=iH@%Bo5F3+L%@fKrS2{)KFBjI zpZbc2G@AZt>!NB_9X}Bb&nG8Qx!V9_fks_LWm~a>hEdq|A>?k9%qS>GqF-T*@gx-Q zGH^Pt!nF*9zk80TYyS9T6eZkzF9e&U&~fprkD97#xFffT5W+%FkC8Y`MuLtH6S=tI zdwsTF2C_CV)C`Y7iNE{EkQ-B@h~#cf`fiQdYZS%^>Z?YU7)HaQFPC~MKchoWG;QaA zl@!3z4zTxQ-r1T7R!x;&2a9KU0PT180v|qnxKM=15dK(KC*)YGYD;O6RcLpyMt=|E zP3gymZU;_{jg9j``79w-u!3Z&qaKAM^sx*L4!$d^YNL|6+WP2u%1Iva?Jc1c41gZ( zfH|qc8x|DX2SnYQbH)J1`!5-$PE1L#n|q7rXuq~W&*nJPdeybEo={m94>X+dp{0tq6_iQndcHbg0{o?qL+o-mn zy}teJHwH!6;|~+E2o_>F4UOmvz*mdVIt-yLLP$!010`ex+hoeCua-ua^pi=<4@$I7 ze&(yw-A%wmJ1pTSCR6nT0|SwOPu?3xx~_-fQ~%`eeh7{1>p1m+J^s2|*}^7y`8#3r zIj;c>LXWKZSGNKyzWD{1j^B!_D4l4^T@X(Z0cIq=LdWM zW~`)BQGaMctFAA@q@+_(}756`cod+b&)vF#rEKn?}^z!}cu*J^q*w{%Ay zN=Q!t^guUd3@WlLjP(OENiHgMR$OY#sY2{RGbKCBZm*45!(cZ;PDuvvkiVwq1uoQy z!Vqy|iVw{J;;u)E;ho(sQ227(@y|&p0G^507u2>OG+q>Z`m~S?>Uqb(dC|u2-y^&! zxS@Ct%?PH9;;@3Sv^ zrfLrtjH^KXGCN%UMtJ4lmKWGAJ$`U5Xj(-fb$g=QL3v+;rW>CBPmRr)@J{vH+1U{$ zrKHe*r|b`*H_}cF2VASrr`5D&>A*%%P;mR^#^12j_t94KU0X?c0msjo$FDcMkB^UM zlv(~}UP_gg>OT?^l1Nf#8}=L%(J?VuSOUSBBW^pwuo*_ePB-q+`tuj>AO~fX;#;+3 zZlA@?>CE^EPN%*^kBai$ekF+CeMrK5Jo9RTo{>*dXQt)!0__lIz zaYX<^zyS*4KiT+3W?96#Eh8ht%W1mW%vvB#A`(tsaXv1@^A!{;D*z^(;D*YV4vKCA zrT<>vfo||TB?v3BF zmk6udJEiHlf`WoA5KKWHEepd@G>`wT*a}ez+?$%3-lYw1?#3k~BpjSy>jKqrd3Sr= z8BHs`S6Vum(Vs2p=h@J+#<@51*@jP+=)a>Sm8hsFad2P4{<@D%rr!DeY1*XA8BPIz zZ2~03&;I^n{_YIEbEEM5M2VZjPG$+Zn8Abd#gwvnvOR8gb+XOxG%I9S{Zh7YYL`doJ`lXJ1qydi<=eT) z%_g7Y4HKJ&x!d$YAE=|yj;ir_WuD8*AsYleH84=JGSVjwli$jFPe*n2gG5sT!wE}< zF9H*v>SS%bKSjE9x4D1CCGu;g7}#OLpS90pGcp`J|Hz2a=qK}u6PM%%*6u$wlVKqa4a|#C^pC-5h`%}FrjSS%m_8Fls<6oTS+T>uT-ISXs$oFfa zXTM5xwTz9$k_)#9O8dc1YV0FZC1+}zyQrI=yV45z}^tc{Wb zj=VFUfqOj%ub)Evr?sa~LmyUqAFXcU;^O+*r*DM!tnED^luXvSK z``gd&WDBmUo%j^0?tBMTI+G=gyzxE%^M6iGC+XYqGl@&d*rOZ3%6k!~*n+}7KGV95S__s3n#4;;A`cr?1Ke4hgKb=J5r zKR^GU)R(+jjo_n`^w@c-%YGdd=k?EY36uX`#DVkT`E!Z5=~eO12@!zpabJ(;+_}3f zG<)>OPV+$PPCf@?Meu$yXW@qZUno@;P+=H%kS1#Iea9vq@j zhvm`Bpqn-N7x$N&IYFE-ITzrLovp5}zS(GQu3USIMHuQNoN==CF~-#9^UT;lyNIx` zFrVpH?_m&4!QWmIZ8t}MHFe(B47wUei2=-KqLA#HWWd$QL+R_8Vg1kCet#<(7XK5@ zNDuy&d$LnjrJs_Nq~Iw0jF^$M6&O{u_|CzyR#sMw(QCf|k^KA{5R{)@Eerd^XG7u# zH1{d(H&)I7L&^&62*UF#Ymk`qlD>6hj0L|pH+Q?bx*jI?5tmd|d1;X*DGXTDv8c?B z6x0++1uI4f?GH`SZbG!+4SkQ6yGFM=xaJ?yJlNoUq{p;HSfR;H#_Z4 zRz%_B;~S0(B_<^3o`Fpwxa!jk95a)6PeALNHM}`DGcrPihQxMRiIo!%xY{n-OyPSG zcmk?Q)Tr&#WUGf&hBd*>fGuDdRmZ(2`j0{QCbf_Ceu3qrFM)k!YxE;gL|5_m?{Z~f zxKk4o*aYvN7=v*7<}JZ%m>kXc5jYhz5nVb!x?Hy`{PD+qx%MxnGhQ`wUZ*=$Zoj;R zp`(t1Y8mwRY|i=p_Z5C%x>P09%yz~0RX{y=U2%`1?`hU zP*TORhDMWPp`+e7W-~~coRoB0#nu{&+8cqux1O6%6|1p}pj>-yD?YQJ0aBhoUr)~t zFzx8f%uJfy)N<3-<}2Xa@rirvB!aRyxbCJM*nXd1GuIa2w+4!S3=LqM=(5W7Gmg&{ z6+^pSpJU|$H$~;~&ig;4yvn%3QO@0O z@EQ2zoLLF!>9c&&((TW*wMP|(8hD<45dx=w{sVA-OKnnG&z7uCN_H{@6=Qumqhu?- z8l?A!w3Id`;;Ti!1K>daqi_p=%h9HmS5!pR*VVCjXH%4xl{rXVEWb7Rm!?n0b*yuM zJiZu~y54)8z3FFUG60+fCk?iQ?+B3vcQV8{ElYc$UA66KKD_;+i_b75R&KmbT{{sK z%#V!szH0bPPTlwn1nvoV%+JpgFmP~kVq>AcDIT=O1=b?3q-3jq2NFe>=Pf%>TmnD& z)pe5BCxM~i+;V$1SLG&3Lzj?9cf66|{E8m%!R&;D@jSkvY)R@@uU=^|g%BGV8S%dF z97P!cN(dL&A42^eGO~a$!h^Q>N84}y_PbbEeB`(KNosJg*eXfR$RKgO_n8c@ zbBm^j^{Jkdx~3)}B2B<5xG9qXwnKk^(NpRzG1UB=mmD%?Q7QfZI%LT|{sm>icmwRO zfTX14VDk>}Kx~$8E|1?chX{q|Tc#IUL0a(c>2uEF=y+0A~4?yL51&vIt z%EJuw^%a3L1q&Xz08!zE{I2Xqp@LA>&ydnRvX!*!{1at((DuxFK z2HZ6>ga-qfBFjpDLP$Yz@i`^!M5Eyz5Z)Ex`7qCxRt3_o&lWw=QU54#;OkpKn<06* zyjU6S#ASCe<`%C5DbOovlT2Vk*e@C4(@8XL0{M!$xxRi0R`VGWF6IayIQBOmD^Lj- z5UXK;xv8kA#IA`Zap%AzUB}jrmOrVb5D2v_k|}7%&`U4kKsrFQbgmsW4h$Q$cA%d1Ax-TLJt<_F;Cd$yHv4F4Re|NcwLToS|LR9*c^i#QJj#L8o5XU;m#yn6H z?2u$zoSd9DgCa}w$8J3`$yTu}eScg;n`a!qs2@Ai2b^e|05&v3n4NrK35GC9;Vr3zezFm#U|%5e(Ko7Ddm6Rq9%}*$Qd3kP7{5x z0zkDLgkjmhX{%|K-^M`N)XDx_LvOwg3)g@DF@f0gH#Nootv()@JpS0 z5T*DD5P72EV`3=esa^#_P3^TSO^O4Gr6?sHn_W5xTc+m9_drT6G=%lHWW8$H|DsJ7 zv&rPVS!2cDFl^FYJxJ9Hws2Q*;Vj7YqJ@*WIS6q}A zTD(L&FGGv;F9EkQ;R4q4qSZ9G^e1RZ9!OH!` z)|USKXbd5QE@(@&y$%UviW@Pnp#-~c;1v=(C!unFu(VXZ+Z;k={k)iywxG2A2mRm( z$KeVm_T8_aTFd}mY=u-#RX|@80Lw}xm|e0JtC5}_**<_KAf*UermwE9;6D+WqBTLTuC9f8CO{3T%a04eMMNk7 z5Rw@QXH)hYJ{+ztvD`Va6I0ZVNGdHB@Anf-lzc{n&YZrsgI9OMywz^(Wt z#Pi3k=@2Br^|KR16R_gG^GC|f#)IxAFwsW!%Jf_BzvJ@Vbi^hCvGwQV#JvF{q$V^J z6U8F)>qfeRjtQ^9d)AZXZ*O^Ej7eKVt|n6$vP2<_PeSLX!tUlv?b7$$#ZKR#VQm=g z&5yp`9O?o$hbDvD-PmRQ83Xus@6-D+-hQ(LHdSIi2eaZwGK+c3hB+(}5nu5$(B7kp zXHj93d2}EyM<{V969$5~zn1AC+5^S{STMtIhDenyP(!y*@?uG0=ygDwZzma;mMr_2 z(u=yhd=D=!DGAd98pSXk5>5cedkch}xV#k5(J*$+>_`_H_Jljt?;TKG=V9BkY=gHuXCI_h)d6eRlhIuzN)zY}= z#1TLejq&--B0tjfz)h>XiaqKX{(JKvf(Md`UlUyiCpZ(Z`Xj9MEhc{RijET~onezx zQ@9Y(0U*&Lucb>%OF>oRQy$Q8jdYbD4y)rfX?7pM7nwi2FSnlutos?f+q~h`!Zg6} z=Mh~cfU3+`e^x+YAdTsH;x+GzB?xrb8*;M;kzM9YavUfSqk=XQkj7)61tZ?ejsJ1f zwia0COe#78#9{8$T4dzpg+wtHzpOvAD&K_CL@9QGGxq++-D7~oK=*n1qLcp4rQk(- zU~EcCiqncXgG&5w7g2MF2oDjH z&P06f+bSg(^hSn3+rS`&NCD0pZZ4xYk(_gXv&o#yZS?J^t~VD) z+oTFdiEeV8Qa*Pl+M(=E|Nu&lX8OKIiH#)ueL3 zE?~j2<=|1Dx||7YjbmL>G9A6s%*x$QlxrkF#A;RozbgFU00aS9@TbpKXja1Qw=(r( z3`>0nqIPRJetrtLqVqt$2)`Nj=lIms;{LR`8o&j2j>| zKCo+Ke&EMre!!(N|Ei(qHZTYdSsK$w$g0G%M6VHBS`h*8{nDyRhUi(s5lKojO`^&qP`YZQV?$7>Yn27RfD?k~hC6LGz^Z1WAqARkK z&ec}@imh?s4|jSY)-(5g7a=OLuu{vz%IDfLfPQd8%5QPEOHP2Sc*h*~!4kF3%or{v zXJe#)3pi>t$c24A^xtCGJQE;XiFNe!Kz6~qYe0|F6%-iOhNZykswq&A>OXyA^~YxD z`QkX^whEk-tF1ov9Eq~s<}52C6v&t(-2M`PM78yJA)+cF8p36u0%Qb}f}DKg`@6mL zD_~)xuDBSo=;WCM341VonQ=4*)n)-mt3zHpuF1Zmc+i-m^b2D_jLVsrm~8!NIk@{b zXe8qC<*6_TGs)9my1V~xUs?PO$EJl`5Qr!j(87j+_X8xH2mJ?D|KjFKE?|$~fIbOx z2zqUkdi++se`Bnax;P-oxt~5Mfd1@PdM(h-32KbJ&@L+}!A?p}?xqZlLtz-Ibu2F_ zDOrDmMd$shFP^n3F)3-{IV!U%&`|3ZF_K>{v;F?e7?_wK#IrQCNI!9kh@^ni^yFtv zlmLBm2D%vPtFNw*L7`o<__rkU>2yMRDVoThHDbg#c5U;AC95Z}5l?e;Za5xiQ&ZEe zy9r+hjhTP$rDv#F=xZ7gO2|#6v1oC6+K?~Y+yrRA0shGHU0)nI4t5%XqPj0%x*y0* zKrVQYDoXA*0nXUUUC)NOtOU@9(VsePqg;~@wsg2PlUJgu4wmqA_=qO(MB7O97RMsVOXY_XOB&J)qc7yHmR; zH+P#CTPrK0$rRwq+P~}|(NMTlzw7gI;B81EEXG^FXb%~|`!!MpJxYtW@K<}270-l+ zk0pf=y9CfJhHP(XRh0pe+-bq{hjJXi@6{#k3jX@_s~M0tgq{3~0}*&ocxkCB$l}_z zHq(Z=ePIFDba#^~FyRyx*q+l#*#hrgfOkvo?C$!=63LM&JiOJ-+x1nmw=d-p7jKEF z+`Xh+lcHS92jut}Q``qFQaz2I*(gYTfxD$0S}qC{F>&#XWUCo$Xd!H8G{MS<@Uevf z3RHxW8=7iS{&?E4wA5Emk4FY}`u5A3hE%eZUU)tgtg|Sr#smfV)MV+$2^{!Gu3KnD=Y9^mv zh*rxjVjgK>shg}aUYBBJ^l&yBN%Emw@yU&~3V z@J>A-kj{c8g(Zv?F3<&yWSFH2nO8hk`6f&vw^aULPK7`_(8-jZQLxpwL1M&t=9ORCRj>eCA!afCA^h_ybDlQc^90Hg?h zWD-FXUR;V3o-dlmbJj`^kv@3dg_4_j_*6~(`)mWoi9!a5{n$b4k9~Of#Nuq41s0Oq z=tso;!9eJA@T(&sMW!)T*4z>i9-jZ85HQfGJMe@HPVpDBSfvRa3W0a?03ip43f9K6 zG&YL?WRQVsNdEMcG!Q?BW!7iRQ! z*caq*pw_`qG$|pL5F$_u6_ZC`b)OKh2Xs`u-eFMgv4rz<4u-(CyiOIytd0_kx|%<8 ze=U{vX0SYm=<@fLXOX|~v~}9CA!FcP5GfhO9}W_?eGF;fw_|3zeL^Bj&LkJd9$ebW z?cYN)k#%_-B~&H*w<$?Tohgg*mP%5IJxVY+3PMTM5F6=5%S(5Rl67-NW5Hw?L?%NF zz%F?U0I|q=AoU1>dcjcIMR|RF61&-uq7rqL)kq%$rI-L3#aK5L`I`?YNVU4IE&r^# zIoUs1EcfpbGGRowBBge-Adj{{TkWrIkp``l^WxVzFc^2u{i5xrJ(=g(8JJ5@lZ9y) zIJth0_+}9gMF-nn*6Js+o z=%wsdrxs0;kbapSdBS=jtn(y9eNBU8F|zirR}|ki-pKSXSz@!X)K7}}-_#zq;X^ou z1Oj8d>AMbv(E{q$Dr3q+#JFW>NI6t{b3)*(s;3uTcbV730|$dGBsQmxSswF0Yzkr` zdp6T3$1}|7!M-lOZ4#z)!H#dSSEVJDR8flXZo^3-1gOwX`+z}Qp%F^(2ZH9t@jr`h zvRYOeh(oo`6_@pY^K|hnDR6eTA8bS!ITn`xO{hyeG)ntk5M6UAh}A_MV2?}<#l;R_ z(QSV@ejD}jzsVnHsolewoyL!D$ptI6tlP-c9)C)xO)rUBx~zCUFohiRj&0JOWNqGCUlYjWZbGHT5m5CPtS3Do389BX+)K|6!VnB(d~kvk-`7a{ z)oq=d)Ew8xR#hCi?F9ZQsC`S%?w=*~P!`F~Y17-<+A3qBqBKnH)+em1)+%TBvw?N# z>2dt`UofDF-@w-42_c?1IB>CLtM9or@gIeJYrmaq|Cagq_3XI23E;|?5I;3!jnYAc z8=D~vmbdLt)%xWC432@x3Q0gg*$Ue)SUXM;x9BNw;b|e1W!30T))30)Z2EWEwFaak z_mP(D;`T3%COd1(GY0JYEU85_kwXaa-va|1&1Zj zC@ucIxExCTil2rl6x~baS@zd7$c5UFfTYK~CLNgmd&Zy<_Xf;`{|6ekj=~x5^NWeF zZ{TOxr2a9BBp2<7dwb+7FLZoL{#=8=z(8Nng!-`Q^ZKQzu*{rMphO4}nEy)^_u_pH zZZfy@KW_=TR3ST^YxL^5eSXJje(%jJFR`^eLTEk|-u8e|Xl(XuYA?fKHuJxS9$`=DC=XDuEE z21d2(n&OBDE$E;5>4WK9nQ`(`utshpyxSKC$Aoz@0 z;5+RF0x&8AlVgMc<7fz!FduIbv0nvn!Sm`<%N0zl)}d8fL#-zDf>eQ{-)$VwPJ*gu4S)Kx#Jz-t zgoLJP!RPn5;u$@P^j?PGT^N1V{AW(5x4c(@C}KEHi$!e^B$YG#Z-)6Dn3PZU0-Z|- z(1~g*FD?By<|~y$D1<;WnUWo^BOso&{Kn7Xf?4OY6e>4YCa4Hz<7w45uhmH(gTClG zFj)xOkB7w9f!pZDLRB}C z^Qa<*{Pslw7jgg5Fpez*X_Ib);fhEDaISwBKR#Bn(8yg$Vz{#Ejim`43v>-izddF7$ zsGV$OM6ICB-N_GQv=oiRqj2kW@5;4^3|YkZ4W^$HW`-F1-Ke@7H-Q`6eSi2~IupzY zrnZ6M6S|cCu5VL*8T=4OFhei+W(DYWj(FeQTy}#Q$YjuO5dzv37cAObl%|j}bYOmD+v@h4j6%nodVU` zJ!crqSL_RQ^2=zGc2kz67nYQk{tRYdVUAP&3M?`mFiKEXR+ivlBC;w@q@YcT82?ac z*SYVEUedE72O&s#(YGk89B=vBW#t#TQ~b!rh|1to zO~Dd^bd@X5?N0EH7g%2&Cr{y7miKLZ*U+5Lu!Sk^o_Z5E4Meg@_7P6crJiNL9pw)e1;Xm069{HJUZAPk55R%$-RIA z6-eL&AQ0xu!e<4=008gy@A0LT~suv4>S3ILP<0Bm`DLLvaF4FK%)Nj?Pt*r}7;7Xa9z9H|HZjR63e zC`Tj$K)V27Re@400>HumpsYY5E(E}?0f1SyGDiY{y#)Yvj#!WnKwtoXnL;eg03bL5 z07D)V%>y7z1E4U{zu>7~aD})?0RX_umCct+(lZpemCzb@^6=o|A>zVpu|i=NDG+7} zl4`aK{0#b-!z=TL9Wt0BGO&T{GJWpjryhdijfaIQ&2!o}p04JRKYg3k&Tf zVxhe-O!X z{f;To;xw^bEES6JSc$k$B2CA6xl)ltA<32E66t?3@gJ7`36pmX0IY^jz)rRYwaaY4 ze(nJRiw;=Qb^t(r^DT@T3y}a2XEZW-_W%Hszxj_qD**t_m!#tW0KDiJT&R>6OvVTR z07RgHDzHHZ48atvzz&?j9lXF70$~P3Knx_nJP<+#`N z#-MZ2bTkiLfR>_b(HgWKJ%F~Nr_oF3b#wrIijHG|(J>BYjM-sajE6;FiC7vY#};Gd zST$CUHDeuEH+B^pz@B062qXfFfD`NpUW5?BY=V%GM_5c)L#QR}BeW8_2v-S%gfYS= zB9o|3v?Y2H`NVi)In3rTB8+ej^> zQ=~r95NVuDChL%G$=>7$vVg20myx%S50Foi`^m%Pw-h?Xh~i8Mq9jtJloCocWk2Nv zrJpiFnV_ms&8eQ$2&#xWpIS+6pmtC%Q-`S&GF4Q#^mhymh7E(qNMa}%YZ-ePrx>>xFPTiH1=E+A$W$=bG8>s^ zm=Bn5Rah$aDtr}@$`X}2l~$F0mFKEdRdZE8)p@E5RI61Ft6o-prbbn>P~)iy)E2AN zsU20jsWz_8Qg>31P|s0cqrPALg8E|(vWA65poU1JRAaZs8I2(p#xiB`SVGovRs-uS zYnV-9TeA7=Om+qP8+I>yOjAR1s%ETak!GFdam@h^# z)@rS0t$wXH+Irf)+G6c;?H29p+V6F6oj{!|o%K3xI`?%6x;DB|x`n#ibhIR?(H}Q3Gzd138Ei2)WAMz7W9Vy`X}HnwgyEn!VS)>mv$8&{hQn>w4zwy3R}t;BYlZQm5)6pty=DfLrs+A-|>>;~;Q z_F?uV_HFjh9n2gO9o9Q^JA86v({H5aB!kjoO6 zc9$1ZZKsN-Zl8L~mE{`ly3)1N^`o1+o7}D0ZPeY&J;i;i`%NyJ8_8Y6J?}yE@b_5a zam?eLr<8@mESk|3$_SkmS{wQ>%qC18))9_|&j{ZT zes8AvOzF(F2#DZEY>2oYX&IRp`F#{ADl)1r>QS^)ba8a|EY_^#S^HO&t^Rgqwv=MZThqqEWH8 zxJo>d=ABlR_Bh=;eM9Tw|Ih34~oTE|= zX_mAr*D$vzw@+p(E0Yc6dFE}(8oqt`+R{gE3x4zjX+Sb3_cYE^= zgB=w+-tUy`ytONMS8KgRef4hA?t0j zufM;t32jm~jUGrkaOInTZ`zyfns>EuS}G30LFK_G-==(f<51|K&cocp&EJ`SxAh3? zNO>#LI=^+SEu(FqJ)ynt=!~PC9bO$rzPJB=?=j6w@a-(u02P7 zaQ)#(uUl{HW%tYNS3ItC^iAtK(eKlL`f9+{bJzISE?u8_z3;~C8@FyI-5j_jy7l;W z_U#vU3hqqYU3!mrul&B+{ptt$59)uk{;_4iZQ%G|z+lhASr6|H35TBkl>gI*;nGLU zN7W-nBaM%pA0HbH8olyl&XeJ%vZoWz%6?Y=dFykl=imL}`%BMQ{Mhgd`HRoLu6e2R za__6DuR6yg#~-}Tc|Gx_{H@O0eebyMy5GmWADJlpK>kqk(fVV@r_fLLKIeS?{4e)} z^ZO;zpECde03c&XQcVB=dL;k=fP(-4`Tqa_faw4Lbua(`>RI+y?e7jKeZ#YO-E zvhqnpK~#9!wEcO&Wz}&XidNOy=X^uYO(PKVC_o@I07638k~~P3g|Kv;#E$3Tdc4tO z=ic1pB{9OtvaJaagT*8{WID zs8zLU?Q_1b8#@m>F?4^!IcM)(tLj(30YCr16DR=if06-8B0Ym^1000pQ5rA0` z0TBU7KtvD_fPesi5D*ZNKp0R^e;Oi4`3V4k2!IFz$$u;$gCGb3iU1N403ql<`duP| zAV{dMPCyWl07L-%D*=g6%4-%Pw7>B$0KoDp{7(cC?T4U9LW04!4SonBB7z72fPEu1 z-zEOrX1-Tnupj^kvgk)yUI+k|pQ`^S{6_r~A`}*T3;Ol?3iR6n5tv0k3Mqf0AHInF z9K`Z}_1{520Q6-Dm)9@w|HpqsB#W?=mqmo*l;m&yJ5lcnBo+}7v^yvM-tsBypWB@+ z<#qxQApa{s0m=HY0|-DO0ss~ksaFIMSucq_CM+WQ90>wQ*88hmCPBbN$SmbI0uW*@ z*Pz@^`bm)e3jLtU!w7`3nQRjHT_^R0*ii_67PZfFQ`8j*q?s=SADf0ET~sjQ2ephpI3gn zJzM(Wmv;&P$RhRD^53f;3y84)HvkBV_%jMDCFCHc%_RsJ?T3~5P%MW_0|+X#Ewt| zvS_g`)wMpPSRT}H&sc@G3dIaadUMuSZbwJ+RBM?Ndzi_q^RO<|7hmpmL}n)aYC^w7 zynxzCA+o_~pcUNi1Vj+4=K9mhZwp6GxIfB0__|A+_+GUx*+goFU)i$l9Y0$EsJupqDq2vF&?5Nd5gvHKY9Z|qh?&RK6svCaWe zD}`9g2Ud;&Ku-~=t&?9AX0UH9eIS+xP`I3>WRJfdAy_Vo-sJJo1_ETMZJAzd0TGb$ z9NJUh9idi#d(()3;U*NldW81A?Big2zR(UhyJFgW0wS>JVGULc{2S`QLx=+9=#tn` zmRqkppmyYy|Ixcak0~tG1py%m076FqK%jLVp`0(JtHsgLLs=D)5U*;ZlQV)sE{>jYx z)aj4X`<0n(&MTLNh075xLg6fz_CM?4;caypHBj$Czg3_-2BK%MPgL>z&<_ELyo%Xp zDB6k>}#6jJGo7ZeaG zjSI49mswg0LKFr-J$1^}*E*tiVWPyqekTwR0b~drtbQgU-o5I_OV%aCPf8zJs1K6P zE$wMregKqX&#I(8p<<=YIxVJhOS8=`S}Y_^U{s1jsTLW4tP^6aElBxSgk3ogNyG%Z%!6L5f;(Q2Z-fYOKsY8bYO!#1SBbRQ;!g0;UoxzYz-!1)6)7Fgowl132s3T_943uYA&>tYQ{?^M0W`jz-_d)@7c)E`4<$D#pViXb* z6af;ErK$G z&e{wjWELsFjoxzl$3hAdK^+pY!Z;`m#%v>iBM9XrLB)#;5UoxYroi^;`YXgM-bHGkDC@7QESw8@o z4q(T260MSBxCC{I@i$+f7`^$qHfVZUD5#<*nB7JRPyn;t0OhAhEshkHQ2}t0q(`BY z-^g|~La*whPXsE<>{kB`P@wFwq&6uImROS}rTg@jyg8(sAx%dTfdXS14qRTEAY!gV zasY~IN1&gaB#@2*G+GC41kux=)F9F3maRj#pGK%Xyp(Pl5e;vsFm5UpA8bv737Xqi z?+S_|YN*}iv(_HALJd-ZY_aP`sGvf4?`WqZkd$L-leJr|?^tjyeZR6nl?&@Kk$J#n znFd%K*TXQri2xBmyM!snwACOE!-o{;q(E`t&l;D>Lc))-HBeoc&YnLQfQXIoX{>c8 z!sB%*ECIM_UmD}LM6mM` zY|&jWF4nfW4le*$xd6bvSeSV%^%2g%1P($u3ShlLIDV+WxxTh_pb|sdBnv0}AUSDIcY5ELWtVD`fk;iw_MNH@@Qr484(i^i?CBi>{F7k`1M6@!cq$f5d>nRU1srs!_;+< z)Yf~j^0&#RG!Xj9mot@F!qDsoP^j-s3u14hYp{v zgzVYNwZSaiw*kNQ+oiO>pkRph^l0-_?K{1%(NCoy8w`$%Ls?g&w@(O_nczPOJ3HoV z9|(1uMFfUZ)SrXlv#Zq>K{xfbtSERq0;IARAuaS&-gzKKAYf&DRR9#xZ~?+35O_vf zj};rhvZV=w20A1Ts0T9D_HYAWS6dhbwb8&WXuAwV`v6%1Fg=ecZg714Slgqz;Wp|C z5<<@6tTJ?f4V!CRDTIdR)C1ILD$d-rR?Al|k=qo8hDuSB+MsVtHW|Vf4Y5%`fQ2hz zss-<5mgs_LpcgpUK}5q}XR~(f2g8!zXhKBuW(ER-t{ZFtz56o;7_)Z0S-|NfgY_w) zH)6sfi3mklSOgtr&#YtvNcuc7r<9nv!nUEg>6t5-BjsNN83FsuC>rrN3@7*SW{bC@PTI~RwB}l*!e0T0l-gyAl$M4_SP~#4$XOcZf|8?I`(LHU zNL)-3mH9ysh|76wAV}?s%l09YpBzK)kdIi#|+B$+GcF#7IttwTd4L&QkM2Z=bQ~C+TNfdE}H}Zik1kR3dp< z_Yc}|!G`WW_|P2efx^q?GBHxXN^2c7R>K_F`pE3>=8@KdTkA;JvqdP-kEI4YF}}+D zBblmHhNT7++vZKpRmwrF8s zBss5Nc?z}|M{mRda~THxs5U~BAPX}H5`}9~J}y0m4ds`};ZZcg?>0ip1^cSFE?{%a z>rv-`lQ*mi!{oU7z`8_;7+UO;CESWs?kOp-sj|^Q>Ex_ulFwDKfk;S3>4RSBgG%7h zA6Is~fPg}(NGUTtOWV;{l_LTX;xZxoDT)vpsLJ6h6y?{Wc$FT8RQAYslGtf7Rh2xD12k1$Kwuo`~SmzfjHvkEZx?b6(((bA& z`~+SG%W@Tw>Y{_N+1>au#i5(_(L}(Y50W|MNm>+zZS+?4kTC;s zNnt>+_F^J&({2<_*Wi%x191)-+;kZrO$~H0N#s$%oQBwu8OI2QsB-181ZsyE)s^M@Lyc^c)&&wF>t05B?EPejY;A} zi^wWwfLsnzMLhLp6l0eQ0*v$^1mV(>BXf52(}+YE@K6!s%f@33or=Z<4`A_47uq|P zD4k>0aUP|zp@9lr(y5#VdovrPYm;BOV@PZSv2ABzcSPb47sw3jjELI7NDEW8R4S7} z6=ek)qd!7o^OiIKGFZq!xMK_Xq9{`sD?4*`wIc?U+fGS<2s78Fv(#e~$&?<&uv%;$ zxWXtUEO(?qA^O{;t7Hl*2mnF~aw}m3%5ssyRs#%|)>p}hk%NR_*m`Lf69EEb_A9P6 z3P}v`LV|>aOe$eThRB87tuPq^VS$bv57Pe~xg1Wc3II69;R^twDk#wHDLM9uNQsQS z3snBMLJhGf7D^&%Hvt5g6uzGoTb3yjh$s;SNCC*VYqis;x21jop|%w+&%p+=D1)2b zfi34!KZkNNp}%LpYkeP%#-+tbYiV8*VnB_Yf9u;V6vIOWfVmNFVBn|X4An;FQ3<7K z#U-egioVX2xDd-0_*yW$^k(d}k8Wm&9=-sA!J4yD;HBYwl^V@r6q359DTlg*R<}F= zgkc})To343lsi!_gWW(y&49=vS(LX>in}0m%0m@kkqn~ZH7QiQ_#3gZHw7}Y*3MFH z%QCzOT3CWd&Gym2qHzeto)(P)Oy$H+aaLA&^EY*d{x~c zn)p^yQTZ8M763Hu{RD)J=%(^U9RZ5y1tlfpCHjeD$Pzh+I>32keKG0r!{8WcRsR_? z!m6O*4_+|}M+FG6Gmdvh6-5vXO>|*^*={^JKUB~7O4vgpB{Kpej>_K|oe?A%ivv^G(13*-J4WpSdw6+|4;U|bRk!~IEFp!vN}W$0LGaSd+)L)%`Kg{3hy zMM!1T*-1im-&X0mV(7OkIb0K5SC`gfMD_?u$^%tCW%AT!C z33p<+)Uk%Z<&pX>5Sdw&dy9x=Q>raInRW!2ZS=!-t8UY?_M{>>xJjZcyR6iZX0^n1 zTMJ@j4_#cB>c=41&V)&r$+y%_X2j4C5TGQ4%u;j+Mk8?EI8ou55CI73a0cFfmnYHs zcmrDu9V!5|K)bW5;7L+ZXH}7CwGD)&&~YIEb|xWXav-ZAMVCj6RT5ZxC#^{3Y$vgG zzld)~12@-BY12}AUq!VdGa?~lrD6*ZsY#2Dl1_{nLfZ!KBDQ^Wq*!RPL+%3;^@q4o z$&(8FHK0VZU=CYkz{X{vQt#1~0#aE$#xM?C@<8Et%9pnzdUv)W9v2O^urtmGV?t4A z`f53nSIo?QQU>h37R>}iqQNsZ=l4ZU;w*PFs^snDRA&VVQ|8dEX24i53J+Idds$8g zP$KNR2~f`!L}T0NaVYN>7R0E1u0WB`e^RBYE(xx$ z&Nh=&9zz5znq0Xz7#NFsjA1wGD5Xiy>+91)E2}Fj)5)Yqlu_4FmnhNVc$`^&=aYZ_ zxxc#k@^8ENfBV4S-Lq{x?Q>}v5mA*g&{!|n!iMyzN36?L#cHTw^T|B%b09_8W~@@+ zE3s;5yJ0I^82D$*xNMjULc5_?3lc(1Kn!IePi561mBMRSH6gOk5caCj`(dN`yUm9; z)Kwl*cCW74BIlQ|f?&GFBxA4_T_3wbQE5X|Kd&e)Kwk)UMPOOiCRRWT_E0c2GI|bG zNTjwisk&C7N;*?TS-8rDvGERZh!p`v$T8y51{-L|Cdv|T`r`AT6I>Biz|iLijLGYo zY^RIOg=-yOZ}fxhZBqe_NCt6|GPV+Ty8*C%JC{;kuA8q0oM_k-P^q#86{Hj+ENn`c za}~<6zJZ${lr6w{Dx5fW$Xq~uQ|abL0-_^}iEM{5E1CtWcpe39Dh7R(NT!4!B$4|N zF1LPGTsT`YgyxMDfkI`ONhC&6mC6m~X%^jcDo2o+S(I(nY!M8LC_5;9YP0eh!l7h0 zBn2yliggG}qu^5MJXVfl)#5XIxmPxNB4otcq z?tSiwC%O?*qVdAwdY|`x{o%#Q+SjhT@yi#T`@VO-QKlJ9M{Zg^-H~Daghg1gE~&(d zQQQTIxe?U;w!PZo6chwbMb1MyTL=inx@=vY#AY?r zRy-AMpH$j1AR$mv>MmpiA`o_QSG?!7dy{NFexW5t1Rbn=<~CxuH6{*Cn`|hqc`LQe z8$3hx%V(fJr$Zy0gZUKb=i)`8Q1lEKvU5OHl0Z7mRg@H?%+ebvXhrV6w)XorxQ>u7 ziuLYEG(a{a9DG5Gh^_FC$i4owyFt;@%|8KP&KPhv{g!6wQ<$>?8*nO|7$pq>&gH@) zl>$F#YC-0a(Derf8kM~aEJwL{$ta5eXUKf>mP>(osUq`MqtX0?NP&W*SxO$6WU`qS zREiUvh(Jd~SV(Vm7^KkP*RdHb*lIm$uB(#Qk4Z7MV(@${Uz(W#C1Jv< z7exZe0t{TBgMtYZDvEM`G7DkjP^0!zeuW$u7X}eV-7m3Z=Hlb#l&6Go%o5uZCZxWU zR!W4aORMYs0}p=dj(Z+`^0^ngE*-aL$GK;nwtM@sLQEavJ*oTLo%gN1^x~9y?tr^A zl72E>S?{O+{g3|q)#sdc_UXq=r@gu$G9p#BTifgEU<9l@04m%+Frx@^U(QJFkFIVK z#EeAf3ihI2kJMb>$*K7PvmFuz87-c466SlgMe%_Z$#B{s5>dPw2@ASaRZkGT8PRq2 zpmsFUbi{&eu2VriWh4@Dl1OmLqtbF0Db49mXUiE^Y)h~es~Lve8emwPXYgj_!Wrg^&ITEf zJqim~q*|0oV1vausf98GhR#YG8mA1u88*?nVoM@)oSH&+wmE7eECu1kip5Lh6jyiz zIA`BNOXy*xMS*OQ5?&tqkX?*_3MIpl->4omHYh3(TmWAb=3G^}z?B+}YDb|Q4`y+G zp?BLlc5!k1!Qh~fjGSi&cLCn($4fS>m5n7co2;cH>NDJQ>w`Dl_8=pjdD<(#^Q_Zg zGClO%fv4|%=o|YFOsCUC(1Rq#JzKXvzyHNVFy#rtcwsbx@n}8g#~*s|Pp`W6gYW;J zI#PiJpa_w3=?X;`P5v$l>=ptgL$DmNU8?(PRdrJM8w^|hDuzm=Dh#aUrz)CdsAn#1 z9Eo*t=ma@)VKN{w?D~QNLro$L0oJRDf*`D-P%~N(^Kz*Mb`rP%HKMZ!Y6B&#*jy2oPhLKAcJs``B_zr1q~0rE{eA{3)q3Gz!n|JBxu2{0AOxRj$8 z%m~)X56-avToV*7XX!-H?Ti)G9ZEUCcg3ZqC^e=|A%<}jJ`>KOx3g|dPHU`t0K0gV zF^mw*j-(~V)-D?fnGLY;lIY(ZX2kNl7}%g!UnLts6q~IU%b?j0hHKFnXegqa16{PX zS;NmnWFzQfvr0T5)rYOh(e&@dd6v&mJ3s>+=)4$FcR2Ql{{$=s)FDWs48lc z$>EG=cNDP?lK?ZYjv9$@G#Wkl$g`jM(j5m^rWarMs*{e{{;h93@zu}XI9)xwb;s7- zC+s=>taEqn+P-c3(r96{w7huJpWXPmPkwfNvVy%ZWL)faE-f6MuC4ZmZo2l`H@*2a zZ@>J!$=bxpJ{X-k3M)>VUvjq$i7o;|l7Dz024fvK$IeCY#S+a}KS8eHHV6^53lhxg zW?Ez=?#$(iC1~Uz;B*6sjgg(rRqbyNERxt&4@6Hx;EoKPm9a3W} zAG|<9o3Bvm%%-k90Cf{zzF*K;4+7Xy{M>(u8oRq-=rn%|1hQEbo~L-4Ln}0e~Fp zx%{eWeVmBE=YO*wFnK!La6ol`;%aPTd;xNyG5YG>T>&8=45f7F^W=ENxJ#=OzWPgF z{o1{IFM0jhC+*((=w09Z>|fllbLaNgU2@Ku=bf_Sm>t+rHnS>1950M^?cQ1P#m?3s zGCboM%1<`x zGJ#}+S<}yc@E=m;bV%8=J3q3B6Uo%571h>u6rp}p~9s!L%LX`-}L=}32VX>Ks5@|Y?GOI@_0PVr@|~Bze*NkFH~sky z;}LwGmIpSG zEgA)2-W?^4p+w<#di<7a{n)A$`c&+`O9n9CJw`na&+V_nd@b zeJsToEE)!dmQ7F!PEz_?#ZPpZ6WP6k-Du>NL_b=O7|7+I02d?#=^{1*kUxSpsR+iK z1Vg**@Jt-%g4nYLn~CW-Ao8ZA(#<6xH{ytmAhQyFsyCtUOag|j`;ijQCG+-<1MFf} zx)yh!0x>aUPUDP!yYl_AvVJNa0-IWm2~_>gz$k#ZtgJ(Esb=U=(nS=3QI;x25wwM( zI2eiuFe1vF36O2Bj3tZ+nF}==j1)k|Hez>0mwIm*!&T+isJmRSoVV!WOGH5(gKVi9 zqm-V0VdW41^!j6t*?sw|PQC5(H@)=yi{JY{ecL&&J5vzWCjHuUYWC~WB~puW9VNEy z+IryN;qSTZ!uub1%U^%`x(;*B>j+GkI5Wt~O<%b7g4dmO(d*CPX^+9gxAfNm7iC~y z)m2$vb$oS;X0yCd5JAdPl#tZ&0udqF!+5)9)&N+o92-00$`-Ckco5yjO{GW!w`EP}j zb#vl*m0AW^oT%^Tz3G_TsL)P6K`1uPb-QJ&HL+n+>bMJyU8A0Lzy8}b~bh(B3C z5+!$x!kTlcKzgx)az2Ttjfu;*!=hUtc+Tr>!ZqHs8h~irm#T6KOs5SNj=S{y!L>iS z>Zaq5KmLM~U-^YU`tz=nAO2t7cg`EmUZ3`B>r~7+7KbRcu2K6M4|C0<n$7 z9G^^y5{6u#+a>hyq&iS>S01eI!f$}so$J?VzJdUukmxWWL7(nr2g@X?jO2aE>vl7d1Bn5#@xPuQg*BBH8`nDdwL9Sf1t==!U3UBU0-LdNlp@>}uNo;dX;s z{1R%)Z!K-GDU>cCYMo)v&wQY!f~Dfc2a)2Z;?CS95!~CZo<$Y*N?6ptob)+!iRUIN zzORG@bLfS878WJIiCZvh31aZwX5pEZ9>s8EDo40+4E&}->dzU(?J|gvFRKX`V_m~iw|Fwkju3lR9I5LSv zf08$6WsMhbbJ>V&0|s8csmWVq15OGZ3qs}A|WL6k*MbxfVSra z%(91qtlgG@_dt}!mJ&gRdMQ0CfWIO{*ik|V*4>foPN=`#k{&8O!`vq%A>s@K9R36X z22*uHXqQlNpu+vE-y7{iTRX$zy&{1K%$~m;ns{OC0ya~YHD&u$n&C85pGs2NGCW_71 z*4mA8K$xigDZ4>*CTHcMVM&=0_jPLQ=mbQd7sYlV zRGFH6$b_ZOMJs9qfC(`nq_S?QZnlKVZIl3PNLwohlRIh;?h1v{um@cwHulYw)TT?7 z5qf`EENk)m-T=34!hG6;Ip|?-z(kq~4(vv~1M=Xy z&GD8w<$i;-Ps<_QSo7)Iju7808=y3P`DFt>jQ=ltjI7d2?2V~J+0m7P?-7m?QDeqZ z!x$1#N7P}lOjfi(#H~x~B$H5^7!VfWS_6tdaHFU|L>P_ILytXs*If_4{nGRA`r=nk zKl7E}e#NEhlS!YmTSHMJ_Yx3JB#{@}EsVQSH(6a5;Zx2&`BkqyC*^J%?U3~;uN{QG z7r>P8`6r(E+-Gj;`!e4Y?3slNfFvRDu(*?xsVLRr0tI8lcRdlYIlRlFnyMzqrJinS zC!UX0+$vCn-FV%*39 zG{?ea5)?C9tv}M{HGkz$lZ9QQjkUKAjw7yAG21->)E6zbtWHTBRL>?CT}pA| z4pi<4c$<%DWx0YFCKNh-Xq$SBKNcj|hln7%Ih|K|DE{rj3CCctLPVKHe#yJGH`;a zmW?1zglJ!(H}Hx(J3fE~HUU;Cq>V&Y$h0eE;F=>5%$rLG$Atm_;gC__4x~^o$_U4H z+p~EdDL0PDKY0KU0?dM+|BD-!UpVmeO}F<4_rL4!y{#|EvpDKpK03cx6wzA*ku;|9 z()iGeDM8pkW+bE~qg^f`|)A=r6s=E>ug)ULKh4 z#C{4(dJhVEm2vP!Ezkf7R97J!jvox+38B?3?2Jm^h%WDXOIa_2tr8K<-%3E(Z$9(Z zB>y=ZaE+0uc8}2jtG1JD1|8;RJfJ9n4B66cpi-`G@nR&UP2W{y^sb;Cq%g~bMkr3RZp<^h~t zX-JzdIbpznBpMjtL`sm_zpymscSv(if;sf_h7<}iGi7rd0m>Gck@Q_#a)Ke$v1i9# zbPI|^q<5W9*CL=nJk!ja^@kSa7P)FUoG(RJ!A#)g2`iITa{;R1K2Vpw`RG%7Z@+i^ z)YG^8=RY}a%Tm%ugsKs13i9YS;1K=1!IT!aEUvAr31Hvn(_eGO3Fn@+v}fnmgOS}ui>O8fz_9u`>SiNUtR49fw_dn#YJld#^_<^wcb3i1ih<`I_`Q{ni`!m3jnBj zFN^dBm$MdsJ01vyEW_RNhIFe5%>&f*<8IXyo9Bc?R>uW+#(ctk#}qw=jxZr6fDuuL zl#Gf77Nm}ZR9tb@W($nDV3#0{!sb4pQw2hC@Ff#WQVBdG^Ham%I}%U;LIg-Z_o07? zmF``~^3K3my)#mzRfc}PK6qfzdEuFm8`+Zyc~kUl3a*4Mbx5WC#s+087DduX>W2`j zFZ~2(yyl0AKLe&pQ>$Yod3;NNuuM0F4J@NQEJn7yyJZH19iydW!-6ysk()U? zgcn#th|uH^MJ+IH4oOEQ=Uj2T;9%7`{O5lVh1{3h(TTLm<#86GLq{bViwCqdm$b7j zHUmMO3|QQl!5Ne1_eiIJlry-$Y?ud;XA+2ik*=VHemtS23lj;`4+Qd($NWEMA(HQiv!z` zup*oXn9fOb*qE0*e={ur&Hk`DcU$)$&G9A1@2+GVQ|>uZR=A~9J!7SY`l>8Ya+cC5 z2P=tzaXvO4^Z+f)8hprPQ@uMjWp6`MLmA+IH38I-=$4tjd2Pqo9=dXI13F_M(%`^_ zJbK6sBGRjRa2TKiJe-%SjjD6T+1^&xPS9LKo!yZXD=3jbjEEiK$S~FpsiR_T+6yB< z7q$kDWhJD9m?*U(V2tSmCf_V%l~GF1?LTu^0}{G zb>oXq>>E)UjYpJfGK4hiV$pKY5hS9;#qo5#FZmJ-XIywTjYnr*a_;ihT??>P`l*zB z6U^%`e&L!gJ^jqVZj@TZl2YKCR!DOvAckp$aJ&dvNN|T~D1d_?Uo?SBXy@zV3rnhS ztNpQ=fEhw&z#z#x+O0rU*aOXC-WBpK-$G>o@2wg(uOSJJ6Vnr5)F$kq- zuw_v+jg&Gn$v3VuEhzw`U-(`{ z!LhA`RI%rs5;Dt_84*)p&5BW#$jlN-?0p@R!yFekFo=lIjk??J`sTHt`3v0tB=S1s z$-$MU*H&Iyeev+Kk393pgOBcedVfF7-DtG1v^ZWECp|qp{sy)BD6=a)@%3-5uT4+C z@U&^qoO%21?T_5^=$_+`S)cYVJ@w+GKbWOYI8yEU!2^eIY5N7QIWypRABFaS%8Q4{dxmJNU=fUwUmGOZ1SzCe zFaXX~NcdDt*ygv)4))@^a`dH?0jC2eI-3E|A>TR$NSI9lYC>_%TtnyxARE^1qzEdx zN8uSMwzpo%)PT8i1Wc+5mM4Oa_3BQ@9V9Whh1V%1&&RZKA*7>K(-~to4 zUtpw7B&T($iptxUB73zpUcVs36j{1BO~+Op{cB+&SF4F>|5^XD6# z&W%yyTp_EfOSpQ3x#^Y1Y$~Aa5I77 z##JayB1dsBdgx@;1CZuU2xNhK?!0d|jkR%fj;F!qUQcaWootiBLeg(P(LT;qZ$GHOE{Ss7vQw zbnXMU-2aB}y7Z}Ud~5pr`l0Fb+^qpEBO<}%hA({iqKnRZ^{Y=kJkt>3lURyZ?-;_!<28Ml`ebrz7(uRp=AE&^SYB78s)jx znuVQ%S|3FkN~@(6*F@vYDB)a@#^lN(7L7fq@eTl})>Xxt9Kn?VXbx1$$>DIP6-!;I zYSO9~lVX$Kp-X8BfzP5Oicw(gV~7BO1h|?>f+rT)XT*$x>VWK$ea|%TcHXj;k;0r+ zfm$xkkPUn`Q^9Q>mzSvkm&)#dkeOB`RK*w2qziDoweZoXXi^L93gL|VO<@8M_KY(ED|_lk# zyEeRX(0H4pvsXhh#$eCkN4*R=OqIDI!Qdftj^ZXUf< zRgm?>qePO%{rc+H@4owiuT94^?owJ9jh44AZ{4|L+m5Z1{eu+BP3aU{^`&C#SN#Q`2bo# zrN8}&^eItcy&z&1)=6DSG8lSu0U;o^sL;xos=O5K=o2&RzFf&`#T3jgHy0L=ftZBR z*0P9)sOliA6PmR(7&efRlIni8hz)gr7*T?Quv2t+ifoYRt?s&yG-^ztJ8)p-yony4 z#v-L61QD#jZ2A2Jkn3usK>Jvu%XPMZjs=h?RsVetQ43T`^Cj0cE>^g}?mT-@ln4>j zR-jyC^HeWv8x3r&mQ#(Ex4L>@W0#82THU+^Ow4A{rGre~jZ1D(w-?ccv_$Z#VXUU{ zxM@YI<~!jl1*0i;OXg{V$&6s0%u>cpLaLixtF4KY{Azj!*m9<4aSXfo9xP?AgDX=| zu-XGitd?_FoG(Z0Q%~Ye4#FWH95?xKk?Y=!+c+mAH}Y8Am|N_zpeTZsS|Zfhs)#BC z1ks~46=2Mo%Hbk=mPCMrNuakq5Ep~^3XWw}BM2vrDMw^WlnRnQNq`K%EUCk%pWVN@ z|In`W35)F5vXxkHamTjfkJ)j`D|eo7?3UwpEo@ot#-mA}4<9~!=!F+wdg0)~7hZbl zxdVq@c=6!={m*^t$?5u3`ivtSjYoWVx@Elh;-LfEj@`NQnBCiUZryY2?(JI^AHD10 zH-7h}-?;PZYfrq?PgiociX#y2I_&Sd<&Hbv{Mxr%cJBIQq8SPdkS&cf2lvN>l!c4q zu?UM$z%(>C*R<9)@gNWo+cJa0#VYQyNR}*ASj{Nd?DmU|g?K)><8>hORb~Q>wA%>+ zh0|>ak?@?92BlFVK$a5Zsg|x1y9~7a94o&X4+%gFY}m30>xd{84gpSEDgHS@W3K2k zS)8^Qq|<5lsgOox>RAX(-SOHxNR~3}+w;KN$Hp%?AhQ-+R~C7RC=oGpCC0h=)BFa_ zPv&a-EAti_vrXVEl>b0Ia_j;L`x6? z5-g-ZF-$xu63>>xlXEazwag7+)sQf#zkv)~rp<>!U>?K@SU1leEoq!-6yaGz(-@rS zlU(eJ+;+F61h+}w;9(AEM!UsN+Ni;9*kO7QK||oA#y6{I;F&$wH zLp;QwC#q+C%rlFT*X|Kx9GlS8L+crXv$(QEzLsq8cXAY)h$b9)4j%?1pO-ei8D?~z z3>!OP4A_(Ipy}6=fR))IvMAs;S2=_`?AYx|FOdM-M*=Sx^!FMkb zWlQ9lDq`E|%$8Oo_{_eSwjFy+;`EC1&$;}^-?iuD<8UZhIFTD8D^Di9Q|Kd|$fBcF2ztJs^ zVR4jr3&3=`w!(QGGo=n5x$mAYUw7B{UhyW$lfnxGNQ7C0kcyvSbycppsWwcC7%(DG z`%X1mWZfZ2=`J0c)t;SfYp>6Ox;gq2Rg!9;X8n{$d};iNV2biRh{kBq9yN#L_P1 z0)mAsJ}DEozKF~w>=#s7zshHbfB;P!R0iS99@r-U*k{@I;`+tkdHD->Kk};ApK;=O zryV}HDr=MA)mJUcJ57bIAhK}JKqM?v=(TrA3!^k%+;QBV?XNucB#U!Fga>YU;O48p z{JlT=&Rf26*BAfvFY@8Fq!KR{WRbjb{a@YihKtWR;rLyB?)9T#OKqe9aVU@jSlEPG z(eMBn1+Zc=Ql$FmO?P9-M93wNHS$VPCA5i%q_}*Da8}W=hdqbK5(|FFL68jX&}%!) zVt=FQ^FpK{f-{~%@kY|+Z2^URO7_wvA?F9p0=t~kxpe9fr453RG_bz zN4}Vcp`@bLbq^m5UL%3DUr6eL>OWrMV&@RlO5lzvlRy&Dh^S!#9cjL9wI$McdC!l1 znC-jqsG7vNjB!Opf+yt6xL(Bl1qOt8W@1Q?fJ(ES0}FeE)qv$5YC1-Tc&wgjMX_1r zpe5{Dss@AHgh(38g+`fH(`?)X&8}ofNg705!=|AT^E_2>v&}Hbe9GgItN74DXT!z7 z%)hX&`=hhhz-~nb9~Yn~*V~z(Kt!XCKw=+SHm(AYkh)42FVjQREb2d5q_=1nw=S)%O=_ro5EVq3S2+|a*Fq|tQUHni%#+D^XNR=7$mGUuLi&A^nZ=Iv=h8S>nb zN)jYWyLES_6PfUZumsa2G{x0WP72ji+uYKN(YH#aX^?n=I`L4zcQNSEFhoX|yQ!+*?x5Zt0uf`^D~+AcM6&2mv^dB8`zR6E+9uBsx7K}{=W zs9fv~zImSZ6Mc{$d_@fLv-M^**{B|A0o=!cw3MxcKFEHB-C&Of#8fV(G3J&Igae^W zE#%m0@DZ>=d{y+TKdp&D8Y(_prfmzq&p(4_YquQvs^RQuFlU|$owYQS8*rBbZtWF4 zsvK#z*v=A({xgIma-Cm6ZlE?wo{1-6_I1M}|ON5R_ zA{fD@2_h#~(&)idjHuP&1XOJaWH37hCtehDF|)jZN?t~wmR%23EFU(R$&B9v#DLD% zNmx=aV);(RLtheNmnadKKe%j;eq*EN03;m`YvNw*KUj{4p}#!+H>2ir7SlCsEf)ls zBavgalFTyVB$_%&6Nu?@o9det-ed86VD>pss&SJ55~gDPAW`+AOA0Km#s&RQzZ8k= zhxUNMszxgwAa&Icv8!TKANv=PV1wLz>=KFW0k<83(bbKleZo_h3|H(Yk% z$*(<+(;{W;)*03_GNgnrKK(T&2;Q2Rqa-@S8J4|NT27-Yrh zFO;&~@%{`6RH&v#3j$)MD{4bVG-rgF?M|ayvCypReap;7P};0;A4zq-(F=$R!&yjo zehTDVg-XrFsOKIIf0rG%=68WkC-*QWYv7tav5CY08e8H@W^APgFiboha$nKbX|dC< z$dG?3-j`T5E}DIBa7vuF8ITS5Cwdwm-JJ9?+*+jll;fc~=-;D~GvapYOsGS>nf(@5 zpqW>~QETaDSKf&^!7&xv)nfhb=9k%RBSWyH4=dB2S!6Pqfi#Q_gAPZ$7NMq=~ zcGGP)-*o?IR1$BvxG#ce;3SAUA8BWhYzdZ#bmq`MB=DxV1|g}Z0a=0Z@}z&8#ZAd5 zX6$*Nq(_2o6tY;PnM3m`f3=yy(1FU2;BmDKSw7SzDv25K_N# z;B(hp_uRe}B5mo-U*3`&%=irqL=vcNwb=GhTrpG@zlE*_ES!Z!AW=$cauRWvGKll6 zKc%047OF1A=SG-7lKnd~OJO&=_E1qTcMWMme5m!E9iYeYwH3DqbqgG~%jZv5H@3r5^z;-1&%iIX*}2vRC3c%#XECRoRNO1-pF?#&P^jlPAh zTPpR2M#eGl78cP$3+K)7mjTuX#MlOe=PnthEuTiP48POH&1 zq4*Y1*vpr+6K~&$QX)!4vF7%z_OWBmJtFthX*WvLk<(YZ66!WAC}wCEEy0`tTYQSt zAIeHM5Mm-sh}`oDXPtlykA3~|@eeVDS^-&#kvLYZ#{v<4ij&7N$owrGusNN*%5Zhjhn#HGj|#rOjp_`C~Tn~23)3I zY>KtnBS_O{)Ns16P!vQV@&Llwp09dy5UN!cLGU^)Eu&3%*x(^$elJ~DupE`(^Arc) zq6jbaS&s@eGtKf7mC;t5gR$;*5j_4%k1R01O{5x;qYcQcIaP&c(ekaq72#5eb#v8+ z8(`_uOwt?f&sr%ZR330RGLOWAn9E)WK@8y~m@T-3W3}O*dKb%r16yOqHLBZ$C62Wp ziEHaUS+-o+2CtWBfCwSnr)B048WaE zr{mE$XApsuIs)A@rGivQleuaEumuek^XNgl<;$K?vaqnAAS6p@(kRjKmZg)=J@ww( zAMDqs=bV4$IhS6T5l1wlEHYhD%^^%yum7v-AARh(QP+`&FIGz?taKC+a)(HBp>nfM z7HK0LAUYEBOj<0oc~WNAFVF%|uGR8Eu)4Pvx`dToh8lWOa3wdo4f#J!NM4+e1zV8R z)=NO7{3TCAR$ZlM1NhR?@}PxmW$8&2fHMGsv#imTK^FZHamliI(6QWgO}^AG?(DkJ zZa7u-U6zr8Fm8=(3$cNEs+w@Zz`z5Cys=?phYj6m@C?hQG`Mq?DAJw`GcM~9(=F|}9)&~}&x-!HWGrL=e`aS&uvB$#v~f{~9BeEaeGApH zI9%@|Eq)Yj-Um)VEo4~bqw{B`=IA@xGX6L4H5UtFmH?_EKsLFdg!xlM;yT`Kk5nd3 z_0T6Da5J+AME!aWe~HAvm~RK*0Ds!Py*0#XHPiUi1&yFc9q&wd`f1vIMii>OP^E z2nMDenDvv^F?9kcg$NN4xmbi2`Uepc+Q}BO+9epOC^4_}+6vPn3aHoxrNT!NUxwen zNk`mDo)yhp7C%v>Mrsj7DP@E;Ww6&Obmn*@>99hc2@x*@gk0Gopl@XH`ZE(Y0Rsg# zk@?WW>~rbt(RL(kMr3LF!U}#3wupbrt}U<+q_tu_A|i{0l_zsnp>YC{s^FBF38F49 z0^VY_3n+yPAUKamCjf)+1lf34X@i$cYF1Q8y33P_FZmQlC4@erGd0;~4zD`Q4fQ1U z$oWlKh7x9#7~Z`>Nj?IeKC?fmPaRp{Nm%TIGZ0FlNeOJQg%FU-25@U@l{sg{TR{>L zTJlRVu=Gl5f$mBrcH7}ZsV3aFJK>xe5hQ1axMux80{B_d-C8Tvs-mjWTO+Gy5q7c& zK+bv3iO23aZr6i%Jjhv2J@?dCecKz>K~fq41Fx=P&m=hF_1mt$<<7ev?sQQmtjhb? zuJ)XvN#{Uw$v34*Vbe3a_FWrFj~HZ^?~1f03T`qS;UlT?6pSXTGo3+^>sO=hc{fdH zVrq2=PtlyA9UCVfcjxjJt=de-R8I`Y3AL%^5nmYJ*@0%dN-IoQEOa><^e5KY}*D*iUjnWbHx}F0X)`#FMfBj>Q+-7E*Co z6A0X(Amefs1g5B9Oe8W)?|>_OoIb#W4jfs1jM;H<}*ck(=XVpC09SeLX8DX z(9jdZ2xCVhvzT3Y91Y6`%!q?72PeRejQ3_vM*g^(#{g-7Z*rEBWuyo~LY(Hzgd9Mc zNM!cLOS{FA-@=6}ihv|ie{qcr#u1T;1dBb1g7ui-+>2iI=!1`~9bQ`;cW?fl%eEeW z3}WhV0W!#Bs&Dqt^UwU%XTE%BrFYQZ{A0yAYf=P{E{bsvpSliJpXD;CC^-*FK!}n* zn`YKpqlMe8RN*W}O(2;m2pFJYM}!bkr(S)QjjFw43M(U#>d)#2IF*Y?(yA$CQ7%LG6;(>?}GMYM@&I+);n6bE<|d#(^P4#K)}+fx<@p3rHPHLw7c>x#*4 z)`FIc91SJKNvzQ5kE$-ClC{EQA%fL}9;3A({f%%`Y*e`*N3RSziWWUurqm-mAb7FT z$_$f9l;Ue5!N#1?h(Qsg5ezKknV&c$hPYa+D4T*z-z1u1DvCiQDuq{$9;Pt_?+`32 zxS4hEs37l#9=^${`H1JiERa9*yg>_#4+*CdMiK}Hc-ZQ^XeQYx(Cmsu{*<}T3U?F= zx@GvNkzx7BZJUY&n7~q2N~GtU_Zz~ZDs9bS2v4psvQeE0UCrbie*w$_(@8$zRVQb_ zXCHowK+byA$rrx;;vSKpOPO%JhdvX+NTv_me&=nsK9EKox81JHYyv#wQ*7&|_=&`c zy9y5qm{-sYtQJUYT30WWyut0E+0FKTT@F=1CkE+K*G{R}u9>h67pp0B7}JY3_=n8x zvO1+JQw8DzJLE5b>+i%#CW=ZBKtf5ajNX#uq|`n&?lG>Dy>t?&3N)b_u!$zcER96j ziiCt(m=}XtgQ}EmLY3}Tpk5sMR*UtbF@p(%{8icz2%NQ^+_Xxd>)Ku4vuP_XM_1%) zWRN>ENtAlYT|wIZN+1<6xFj(UB$xqS-CW?gxV`++8Ia2Plz)kPmM=C!v2 zO|FVSVO?69EIlc+j7YPb!15a%&rouc+8=76>4l5EGxMaM)P$G08d)czm`h$Xny+?L z(oTnN8l_LMAZJq=OGI@;B95J?7TJ!h92=`e5R=XUWVRM=j-=oop@xdo zV<4~w>VqQ{(VBr9qrLUL?kKCh!36Ej9Ak*Q~gfX6sd zJhHrGNL4_!=(!xd#6GT1#ZSFWMW6xDIO3QQ*y!j>uNL>m*o+VVzH}ZlXJOqMU|_h% zc!QxuPqo)?4k51CcUj~)>gd(qPKf%!qIvd^AEhqz@-)kE6*waI{)=iQ1ZXREEkbQ} z*IdbuqYJXRo)c#e*dvRHf=|CCtCXR?o(dBFL95zG#TwOge-w8=WZoEwN|uje=!wW< z8#}^|C|S00mxzEgxzUdd2&c$KZ&!hM24$kKv}2$4=p7-3Tux1AWPqIcRj)nkna7`b zasNTi`J~fc`RdEwFx74^v-G|Cr;d~Cec-_xuDeU=hEgoBktk(_NIi{^%1bA=@C92) z3K)^2=+BF8Ua2fO7Y28MYf1;nmR)6yIh9zOa4WWcRbn~!YSp4~6Z*PrkdVUkAY@f1 z`hjTZ3i)k>uKWi`1U4yg7~;SPIb}@>DiHuqN-;7GnT^q6n`p6{r|QfAQTR>GHaEpS49Z~)S?b5okV8ABCb~kI?9@_G=^xn*64Yipm%J7^U!W~WY zxDETmWks+!KbnSpAjg=?Sw-Av3pxxT+GLCBQV|S-5g4lVbjWXX%OY-EtXetJKwcfn zQlhEIblPLjeP%F2{|)o%!oN|4n0*wIJ~MO#gf8ar+yniQ1km?+&&kJb*}diAyB|&| z3Bsk{^`_Bi6JT{ECxj7Ehm=4%GA0}|p@zk4e6F~c(t!N$E=p8*EPhVa>s9eT-y~zu z?}SmJV1Lw72s~tnq+x%@J+eq4SC!oY4_hZ}R=Q9!Cm<>hn|D@r2CWIm5yKc~+qEil zKZ*uhTFJi5BgL>Bk@yyzl$_UCe^6~y*%AZ_X@oVWBQlqp9XxmhMcpM}LsStr%&cv- z@x4|2q3eE61Pv^7-DeiHeON@RKosloJ+Q}#K3)U1dtA*0XhJ*Rxj`I*h`u4xztI8| z=iEYr!Kb{W0dqML*o7HqkgrHuaC>nacK>`u!Ms)7$&i>||4^7r4ob#z? zop}CbukV>t>L`Ou)?s~0ED8E&_dfE)&)ou$R8?OmE>Zk}4eYD_4#07UDLhCnSU4B; zeDeX~0G(@$r=@xbLmT7-t)!?JhedHl;nYDg?J$8xRUnHQ&?}qUP3_320#=Y59WQLh8qX0|iRE4|I@;jU26$21|TnX6YBdgBq8vqb4c{(Gh8da}5aREH@Bm z74{o#7>5UF?exvGOhSWg1PK8I)t*UZ&bEX_H~&EMrwZaAf4rPl6ojjK16s+$x;ZFg zvB7}V0kyb*h<=&JCU`-iLG5%hW$W+~EL8>D`aY~!OOy0B-L2&XhcCYbct zbHYTjddu~>~!&$rk`7MD62!CuNI;uiyfAQA)xC7ueQEP zhQRP}9HDA#LOzMF7tz^%CGHf(jzB6WUSr1TkDFQ(d&XW@sH46>a!Y_hMhZ}>sIEtg zDfyB-6dG4%5QKg|F4ZCMd=Vif)G-S@aI*#%Rg^OUc2t+|2F?x(b9APzfoC9PyEEu( z+`^~U=;#oFRW20;{5AR=aZcPqOCs2K)F*-g1RXHh5a{FlJv$X~&Q^0~X;*9L{G_*7 zL9m4~pc*hYJGLqb;CR#lAP=ye5b5nj2Av&MdT;^r(?C$0c#4uA5H5}a1DUJ0N1i+~ zbf9fRFnlJiQ5zv_A{NkAz+D#yaunyX93{Xq$R7xWX3k|Q3w-OWOVz30;>&;EE6zRO z$z;#&qspN$_}Q$ut$?J2BCMjwWN2MP$BV9~71P-kx#+8V$ZAL;0-TwWwL6B}Qc!p3 zBj5LVY5SJrPkrUXcR#Yw;bf9eJNx9b-}u@rKq;l1C^PiE)^Ow}1L|**1Vaw43?D7B20T@RUSwwK5>Xf5gqDG_*C;L{z{00qaN4&X zeR8@oO#}<$bm=?ZG~T&ggu8BxJy0(&>4}hV^0mLd?Vfw~j=C<`tX2zIb+p!(%251t zs|$kN9u(ciiNJi5bXdtbv&mDdoFOxFp{$u&<#d3QZ6BqZoUHj zuR?lyYo=1r!IC&gs)(hzMF&2gXq0hd6UI;_JW@j?ekt2mR>n-7LLFinaI-gxO`ZX6 zWKcoMQ|!B$@plUDY+n-C+mgiwtl@5#+`(8>Ky;XJ|qg+i>LvXBp%nhaAOOrp|`)%ZiF( zFzJ6eg0G=ljCC2uC5daFz9B4tPj6ha)O)D@|2t+jsKE-a4L_U*gtFTVWZ zUEg@%hI{(e$#^`Hc0F9|yb)%AW9!hRP6=-O4GoAP=D1Y-?sCp2ocT)Z(&G<)i#qD3 z{h8;VdHS0!>{*Bs0*(X|3uPvN)&0+X{+jC!txQz2L5+wkf|*?11n<05#gJ(0iQjF>tnL zNoh_sh3JD08$=MyS?9{kU*hcW;7nDV`NXRH&?A4!qtXa}-24`?VF)*mv|l4`IO#;* zDaSKo&})`N5yx8zt52G{Ge|@&YEYN;zdZly%{maz_@o1iyqtK>*u#Oe_L9*UZ(uVm z^SJ%9+csaLmAo-FR}-^sff-*g4ld)>2q_Vw&}2G&Zr@#3ed#Oz*=_|-AVF{-P%q&?TXBaJwPdWRf`@i-eXUPnUi`}K)b2)9> z$|4;Rwv>Mag$_U#cEdWFO9HF@eU8v99Z*^ackA$u9S*_7-041+=y_C#tMhIz{89u zFKp0YK_k>hd%GAY7?rgfrgp)Zeb``)7z9)Cj2Mi+;yU%Adp!Wmw&Z2i&hf!66|4y5 z+x_WGe51^+@u04pv4*U=jH zVUVXhS{S>Bj&pJ>9}Y5$4(KeBGoO9o881Bh!lCD0!i4>FdiMEeo^sLo)9EB3NzX|V zu~6m_P+oiK3x9F_^ZO4|B1J)wfz^;!S2Ac6Ac)@X?)oB)UH}`1pLWNr@jk+)RjdSR zP>bNQwhzvB4YOZ`K#Cf9Y?Drhs>AV(f<|buMQ0>q>j&ml!)?c*wiAu$S%A&pWL|tO zym*KiDT!1Y8xRaOAb1sc1Z6%s z+hT4^sk_ODaS$I6(6_83?TaNfW*$XY1!r=to9rqMWYx*_JL&( zEUyjk)&sVBZ=osmrFt0*mO6;dc2KY!1GN^4`Jub5PN08?!&&p+2o7EB8w1?oBB24w zahAP@GiG6Pvza$Ee?Mwi+?oQ1Wunyyz`S-Kve|~Uey;JD6TQ3z#$jlPKZ1k}Wl#XJ z^oQ414z8|0x%a6<`wy%?v+v$(Zv4vs{Z~)j`7rgousBL7Sr;HKu~D!Us+CRovD3Bn zG)lQVrmTRqvu_e&N|*=|Vj`JL`|YpTxog+9$L`y!puv{q@uly0GjCnUgp`u>(?v?0 zCm=H7e(wX{xZ#GoiMk?CR3BPq0O-hXDNGjXhQUa(!@+kh;1rCcWkeuQ#lk z3nr|jAQNyF`ig=uS{%VL=_|xkqd3tx(^_(?^-u*F5QrdII)#KMUch&o(w31LeKWM~ zb24>tngL(AB-=--h_tSFCCF|B(l7m^e}ooVs;7jdU=)Tzq9co-TLQ0}xo+-0=QQ@V zXBV7RzQ7D2drn}obEt9PR@=6vfvg!1q>7n{M618}D+jh|0b(uHX;_ zBqe(K`GeP7{rSoMeZo0URt~**_|Tz4{o2~<{+FKo=2Oo;zHi#|XgnG%E_9<&*L8$M zUDDy42|3`TDi(j_&PM?FvXtWI@fD6(4>A8)=?wC!{x zLc~p@|4c4sY)4{$tDAt!fWYms%!4!ZTjhlkML#3W&1yPFdrAdj%BTb+qRd@!{q1B* z5om>Z5Ilc2IopCZ9R?vjZbc7+=Fh?|gOiD0Myall=4V$iUk8!QJ4x#aWELt?p@s}m z3cfuCB8`Dm*le^S&!$He+v*4i@=-JgGtw}W{}EPY!@Rso>unDfk->q?-hj+|!Lfg! z*{%D`0aEmPq!ol&guLq~di<&VPd&YFy!zZC^5K4M8Aju2T3BCLIJ~^{-1bKw{`ws^ z-muWJLbe!?%cC|`}XCfr3FkKB^ob`M+>9zsO!3}OQ{=C*L9Q0wCiY;Mv}Bd zmb<>-4=lh$)&h(KQRKAqPrLiZdtZ3+x!tF|Vs&k@xOMT8cV2e&9rwaSP$*4d%i{9E zew9WGW09x7`OufYbo&qf(05KUvt+Y7t>SBenjm3%(PG%!Rc323bYpS&uB=OZS4=IV zUjTA^kOLoCuNPYa93e#OaJ0dbgHyQ^$&H~$EE$VFqv#B&h%F5=HN=2TW>J#-2JUq= zO}9)+Mmj9)Cbox`S#&I8vz~V_y_RQ!u4MX&A65e&w{{IRPuVW!U=^upM_Mh`RM^lY zmOidM9!iD8qZ^Pzx9jnNO2aZC1A2WVOZydnklY5|gk;UktJN!}K#4F^pq$;YEz49YZ~FQoAmnHe00$5= zo-pQt?qZC%oHY?jc>>vg?A(|L+332u6pRS?28hU0uBZT*4K2)Iib1(~JiNnTrBU44E8JAk(HbI(2c;KS=( z!ju*lyQPJZvZuSn@pxfjJQ{atoW^NkX|%8~e){2O78jQfO(%<67Zw*5N8|B$abaP3 zG+tO3k4I^gXp|_W(P-3lDJ3G19mi}x{`lRG-u>tauR56-6XB(AdHrqYoblZ4_b)9h z<@J7H%eEC>>qQ79<%2hW@y0j3<-(Is-YwGtHwgk{!9>DLh`H#M!=QqN(Bj~@`KFc_ z2sPvGIoH-t21X5lgc?SH2w7OQ{;o+;wxGJ3bV!TIM^%Ve5c^YGi2az`kFzCFNNVAl)0brgXK@dp7fZe!haYPxin{cCk!ihsJ z)QMj_psX?TG-n-YM?|Fk?+oZ6uwiJ3>jtD~A}S|UW=2xqg8JuHXF&mh!jAC7OZ~2K zM+*xyMp}|?&$jKy?%cY#v>@Zr_?R8L&N}(Hb57fJ(y_}sw{_zY5;059ESx2azQH{0 z`)OXEO!{f=r&C^=eBr-->Dc3sIq6j=uN*pb_|T!%we{&_y1qV{9A2HQtmM9*^!@6= zmBY`kPy5{WS^A!ZA%h%Rf9mmvbBBao8jbtObi893vIx_(U+vd=fL^8v$Kxc^+pfR$ zO_#s!Rc9Z^J(n(oidw3ern{?lHpiVMQV!BP0P}V8s|&P+9F{?%ZXPDxEtzffs9L7zPicR+$Wf zNRnBrvGs#!;Xc(f9ig%A(~{L?VM5gL)*A{UL?rFU=eS9rkFzMiYFKZKp0L)7(OgG1 z71crCH4&E-jYrwi(9!$0BhE zsp=6G1U5h6fvl!w@1U7a6?-xXj?Dm34(f{lM+w9|3`#IlvD{S0D~C4>wXbH5ScbTH z?QY2O2nd=CMKN*|G?LAc?z#LX1uh$ZgP@_GEuHf@RQ9bIgalZe6)=1mgEM2c%kffv z#QncbY!dYr>T}D?gw>@QLAcC4Fru`3=dRKEf!)XLT3j4=+m=td=)6-dIe+;TyJ?hI zgmYe>PR+)vxJe=c6UoAOc?)f$ZCVyOO1FIe&T}q0|AM!?dODf*dTywVOJ?bF=DzRq zWNq57PuABaYisNM`uf`1%4Bu=&{w~4=-K@zop;L0+S=;j$?Dqb3*)r%X4BNbwyG|-koE12wv)kmebhN*lR z1XCTXfQ(qX!Jb0vCN<9bGD2ZlwP<<&BPFr;KirPOkph^9qP3M%p(YA>A9DHMuj zN%m1+Ty4EcQ6vw7w&g0gtg~c42_v#7tH&xp!bnOJa_D=nS zQ4A&qDBj71G8a~s$^eHNbUk1UdUtCn2lc1AsbGlG!WmtLLzy%3B5TCBp0!mFX&%9K zF+5}XIL~v*dGE;0x)iKw2)!VCY_65zMj2k79}HNcfPvP4wOS0MwCW0qLFH<$%sbE-s?I#;q=qLa?M}Aj-hA5wZ+pW97o0MkOf_rG z$2|n-0CV6*krc6yfXvyv8Oo<53nJpdCb`vZ5+d7`N{G2F2vTgCz0W~`VY5IjzfD4` zr#u-3DZY{gAOgb1+qDe2A+|8k!-`%Nfh0UuY(^YXtnN^O+f>Yk+|S=0cmV|H2nw7c zWo3$$n6b(8gW9rzW5f_BB7?_~BY|kR$ikVtdzfh?!Rw%zcwuXf7PzsJ+$)s? z#SNBAFEIfQq>KZGL88pbMH0X!?!Zx?Vs@g2Ix<5PDaN){)Z!mSgtVYp-c~RH2b`6o zS#)f$0v%#{xB+?|ez&vx=jJNjZX3z?0!$ikVsaU%0e zVByrdGzmZ!&b_VjL0Dumfn!fO7CL&1TiN7U9sQQppjt6ti=vT9gqX z%+DB=d4iuvI2o`hN%Afrni|FuRlJ?VzGl zB&YOgv7G+bFSraxC@4C92VF>yIm>m;0PXqcbml&B4_} zD4fQl-FuGN3QJpH)FF<92&Q-6`qlgIdu%iwDSNWsic;wo4$BoaVLgl0H?Jt_Qu$j1 zV}<#Xh1Dzt3?ZmwDmL%Us56(g-KJL4pp`v`Fi#0I155A3;$R_~@`!ydn^(`4bw)r{ z!329OC&s%`2gj&!i+QrwR&7umYc~^J6?CIJ@0h8`jFa5UHKmA+5yDL5`|xK+6ZeKH z5_C--pj^s`OW9AW7M#qv>q_NM*Z zXsaG@i%(~7mQ@~zq+&IZrU0wLnT0dgQ+6;Rw}BMFK;E4yF;6mrj21@IYyu1jYi6ic z;A(2Zz)Dj_#4P#Lb5DEr$>-J%t?Do5zCZoKv${Q7*H>2nWc#kI+n2U2u8)v&hd2gU zd12qRpSx{+O%iFR#h}PZc-X{$Cl|#$yAs1cWJ1wH5u0ZmgUp>;*)O;GA?`^*jnA5( zTD#bC-`A2@BHSeAng-oa!Ku}T&_uTNeuzVZct36fx=v68$!B0c#6n9U@q~l+#3JBo z*{?r6rQ~-5)o9aU|AbKywef@GeyO%3LsxN2d~Qk8w#k6D!@_&HCe_pZ%V91#XH`yeUH?S&(oXw6Vdv4a12W_6p7A5gl%PM8kRIHTv|o zFI`~6be@;7Bi)p9x*^@Wm1NWxH#n@DQW26@+;IS79k*o`7Tug=HQiPrqIV%S#y4{$ zk-3L@G*9(w)ZUZ1Sb|D*gDAGb;kYOqW<*$9n*hRSaiQElqI^@C=HeldnVHK4q~a8q z5()z5US4t1anQlDd!Oz)BE-zR?UzV`f=4zB?7D0RDb?OK$yz(fF@V1nsAx8HHk zy^nOG5t;Bkn_@F_cA=RcAH#ey!^PZXnv2TJ=}p1{+1gmK0Qkns0c#Leyw(PB3=Nv% z>fXa=i(9Yd5Mp&$1gv2wF$Syg(XR^i%1K~U6JW~*0@GX9It(Dddafrb>oE;RwzL^r^$fzZB(S8;Y%6 zS2?{JeG*CyKaJFjnOKYR{e%F>49t*=w82&pcFCIHL4jTll>w_)TG!IzSI(T7L(**h z0?q#M0Cs9SvzRJXV%6%zF9MlxPPkw|+te(n{C%z>7Q@7w5ujz2Y&?x}xcN}pCM(|Z z0hXPK6K_r_M-2w?xpNFGHdcp-SEi7F9FEn9{my4G8@|!n;i?o}0B71Y#jL5~5-f$< zKjUJ0RJ%Jtx1bt^Je0X4xT%Eb0;z~=%jYf(X7t8c7)6lTd5!Tykhq4NLr&2R4r4^g zj#6pz8U#T!*qzow9Nq(4B|#qp-C$N9CCE32158aO1dKEQ*df(cCN+!5DTRu{&j(WukoBq1im zQHQB4Inn;m{rI#zDRo3L=Tpx)_1P!(tsPv^U&+(_iZf2we)b86R#p)(CEU4t`?!Zu zk4f^V=Mm=zZoTiGyB->iMpe>+bzxSiA&m`D*{9dFjR4fOxf+U-$MH}N05w6%zGJC# zbg8^$1z23JxYT}*N$l-iR3@i^52WVO1W2>4C>8rwv#RnKvbgmf4jd~Z>9F2$l*pY1 z>l9&7e#js%TPyc@21+3(4PlNf(?8RVQf9#=3{Bl_o+NB6r3`?;0eBtumUY27XX`U- z1=Rr5)t9xz&_El6EWSa2XyXa!sFc605EE)vpJBt`bu$)`2I`D%e7La~N;Zlcohg!G zhzz@Gr{_~6#}7NRI?xv)B?eYy+bxJhfZQ;^#xI7K#DUW?FKU?aZYZ~}l0f>H}J-}WSiE=Ubd3&*$;`-%=$F+zcXolg98I3%N@*=xIN zoX>rFfsKD6y)Xi4{+SP&31~Jiqpmt_<6oG9B8WIySsRbiXw-o~N*F0wy>J$GDpb4- zy#R=G2*P~qiO15Yd+y2oqtxkzURYQ-<4qSHoUUnl!Sc=>%j1QGDTu%*rNlfr_`;Vy z|JN&PQ$6akJB9)PLJlVx1a)PJIH`z}ex6*#*+f<| zKhcvfw9wX=ws#kLlChlKVI>$M}w%ZI? zG+ST-L2XX|W1WTG>xJoN&4tX_Sb5N{%)?9|z#1DitR?nhfF}fMpJK@Dms`YX*UBe1 zgYQBht6V(~{0$$J*YdV`#Av!}a@ZQ~y zNVumPno5o9l)B9y_T)AHxD-D2uub;`4)dv-0pSq~^nAtqFg<5pYEnDK4SfV#jG~pK zwhN+}mA5?tjdCP2_c_55*<6rN6W#$!=nat zKSPCqr3|B2DIFB$@-Y1K5sO>(c$;vtr<)B#h!-mu$La~|@t?&$mKw#$4^1`tv zAN$w?d%I+(b?#5S@VxYjo$G7sgw%DT9mnh#Phm7g5*Zk@4DxnN4il5p0ir^ z|K+2#00Izz9P9%DG+T}w=P%m@s7|)kOFWRYgR6Hdwwf(SgGc~?E+wu^5{#@o)Rz*@ zV~nmT7UbM?Ef`=!jH@zDnMb#hLJRv9;|`)VUsS`l&}B^IEa}FMb!NCwrV(tUv(PDH z$lnOaXKO4Y5#4|qnENv4X3Jvr=yYs+`Prxx;2B```V9ss#Of?ah;6olarOn;;01#) zn~iPYO|w+*Sm>e+h>mA}7=Vs`c8S+pRDD>C51oF~`qZSQCW-(x1<)HAsz&U!S5VQQi`*8*os=QT4vO{|5pHKHzk{jz zVGHp3%IeaVMbm}G`%gD)mbJ?uj4aYKPYVic{1)L;&N^}b-Y0o&f~01+qS@3e^R9L*@iifRrjeWr@j4$A8>qmRbc88_Q&R2wu?;ZNBPSu% z7-e*G`KU?}4d)brTt-7^(rRY>dFx^rU-sh2v(jbg`Ux?^IzS?VFNZpe%prlIzHAvx z$!JSErhgVBEQ6-ja#I|U9eA(E! z&n>b_TOGPX@t~$q9m@8WSu#TtifU5ZnspL_1_dR&l=5HVnazbaS%pARcRmO2emP{4 zn%%lda#Z{5RSroA&y^tJo0rhtx|n(fR{+9@EUOm^ZAn6cfy-(lCrlg)ES*KOxW<~) z)rujoAH<|D?w>4X6{JZg5D-{jSzA~hX;+!8iDsW+L47TQU#Q*P^8=3=YqC-5{5BbETIdHmrll zzYGr~HDQ=_Z38V9Z4y5e+57~PW^rdb+eioZeSie-R~&R4R25ULRlnbPO&45RaIW9( zzI+YLCeA4O8`&#tQs`&V?YJr32!gSd7aNl`UVo)Q`VZ7u)dg}T@hc=z2sE-FJ==$; zl*b$fC1-%eeTN4utm?tx30JoruHnR#s7vY4>V&$~=N?64z{mmC3Wv%(nTB<-T9VgR zr=#(rPxtC-l0{hY4GTuVLVqqpI8m^y5W%JKu2&xW=>2;~MSupJ^YLe#wEgUp53d~7 zHe&0pty{K?mwHMWJH`aK_R{lT{=%)R>wQ!cb%*J1nxka=6cZ@88NV|jTrZUKlsk)x9A#+Y*^L_=KX6y3nx{AQTB&u6z>Z~A9 z=x2yU=JhE+X5H{N{%6B@lnuW@1~%DqMs2&xsch%U>U^eSEfGqs!dB+SG`i+jrMccC zn1n|$P5mkg0cnL0ZEIssO$+|ym2%#+eZ{M*kVY`L1Xfnn90?41NVKkz#S$~ZHd&yJ z0|m{dC7bEWkm?bgRSY)2Z=Ub#RKANN6;jth7Q~Eza%3e~9I9aGPCn${&DA5!EN_Nz zyP5*d%m+0m)+F*lzwVjWHJL%*O>s#@)U07_x0lI2^K3MRHiBIwXbzf`1G`&t;WlYs zoQexMU?Q6Kc{Cp7^^74FfQ^+BOAduWu29R3wI$4x)ybCa%S4n}dP5{g&uM`yEJkHf zr9Rb32MK|o*hidt-YL&K{%pTCRrM@0kH@1k-gx1mJk`3X9azXJ80K5re`qideJ2bRpw;z5W=1n}_G_x79SNDm4MR-1G#+t3bFL4# zD04!zY8G)RjojW*rVcA1L|8>hg&&xxW@8N|0*6za${;1&SPTvmE~3OrVNXyXrsn+w zdb2bequE9Ok^bQ$Wsl?0A>f`W>Dz#|cEEsYEgSyOXedzO#-f83@jM`5X%~xNE|V-$ z#dYOKX5sA5sstiYNIb0cmZrYg$wzH_&bMkz8m)G9z2{f;Rm3o(?!-yhtC73FsuCUJ-B0^c_A zer3uoY;oOxFhqYPIhqflE=~myDNpnI%KDb=%b7U~Fe`x)0gwgP``l;A%xwF%a&8G` z1qtm}=RO~M%5gpCeNR1~66tNz=l-5 zidow)Eqz0+%#}rn27uzGKt=gQsfa;JXmhG30-F*XlC3xA#e0iW?S}ie&_Y7{w?iU$ zFa(64y__%KI113k!i~A53^m)iKpd(n%Bs-8z+)&buqE6sI%i3pn~k5R0C&h>v>PxL zP|7(&M1EgLu(hfv%5(dk`;$-o(H(c(TC%95HhtG$_odrzza>ya(9f0FVb@MVun^m0 z5VN>!vP_^lF$jZH#1wq<94$m5LmkUv$z)-{z)=L$wps)}^+$hn?X_P7Pc*k_<1^P> z^XJ!GGkZC2zwOpf{qY~ItgJ+4g);hJ=HS=={Mbi7^0AM8{Rn+$7l4;mMm8s+n8b-mnPd%w9t*tJ=~#3%fitcUU*ozFCnr0-15y-mA9 zWAp+5eBTxC{?C8#2bF>mgs}(%2-V*R5aRRC?|b0>`&U+0hDI{dUJd~fx$pk_9(!zW z+5c5H@k%9f*GA(UJ7O-gxXZ8q+ONL%Jy%o{3jhFk?6JK+@}K#R#sLXxc~m=_w92W3TMhH8pQFX zFMjcnhadXG|MIElUp(~SLyw+!{`s1i%iddo%u%<6B4J8j^>T!E>xD3|yby73ImNyp zgq2_kD>4?H6)Ls_I85GTzh0(ZYTo{el)+PdTkg90)gYj$(;aG?`nf5*BG*0H$ zg$$HM*PGPkz-&PdxPW+WOQDMKjCkZ+h+eLRUHnk?lLT zEsw_I9#D9UX@qd_`KP}8rCW1xaOHR=nhZx&&}5R9ayp9o996JMEj>5+al)UQGSy?Xn&5S52-7pn;QRLRCE3OBM9}9sfN5%522GEO! zN0$|pfGq=>X52Qo(U)yNj^lyKx=i#q+9b zDT873(KZ{)GT8+3KoO0az%KCCtPzboV+~ahE{!cS=gc`v&c!BDe|`(K0RS90@B#pw zamJY+{=f%TR#tHEQO|sRvP&<1Z13KAn3c)>?dval&iU{0&=Uw_$_uO@NyzKk-?Yrs5 z8-DyJe`+r9RSS1}vwZFD`)>NmZEut1*l(JlYH?EC3)XP&(E%oA7FR`rK2ERJ^U zSYGNeF(M&}5Kq4Lm9IVe$TKNXOl%?*+68|mqXvSAa28UUgC-=aW##$ zDjzsJzT^xouBT9M$ozu&ov`a9=AhHHo0+?wa)@xa%BuuQds~%F8U!>tqnNA#+Ytdn zTx3gIs#b3m2XAE~?o9;lacp;0QLa1AA)e7@7)tP~l4zV|*5B}t{>eXi_~D2C?CPs) z+=ReJ$Zr`BF>nf<%~I7pE%DAxc?Kl5C=0-d)8p*gBeHi3PuzZpI-3i?+ur^i0PwZ1 zel^01x7~Kj8E2dc0Jq+HOI?it+Sw&-LWG=_S8 zx8Xzt#Cz_(3ra8}1vPqc9Q8e?|8OOC*)UwsQYkWYN-0^YR(-Y1xMIRcATZ~>6Dwe<|Ju)IVC zSS?SM9$_q=vs*$w(P%AMgdFN&VTNhXTXt^UzH{4C4?i{PNVBj+WW2a=>c!{3I9+$$ z+RoiO785OG;>-!413tL#nVWC8lc5n_NwnWZpM+{l9ySWKiH#wf3>(@{8!V_V$1~X3Jd#=3lj5E&s^&nW? zr~delf9!{Uc*mCIcfIo+pZJa6c>J-w{;?lkIsD-d{)12cr{4#FU;nj#@yj3jz=uEh z{^y>1uI((#@%EW({_Mjad_MqOf8BK-{^0vR^nriysZafJe3tg@+xJ_a_{}Tc_0HYf zxBSG9{_yYp$KP35S*dLQ0icBlfahQE8UVQd`s+M+6A`Yy>Z&W>``#G;!jFCQBM;nv|KN%H-T(MIAN%M> zOb>^@^@-p7m%sYY0pJfl`JaC2gYWTN=0p=gYoLMXCx`E!3*mveHQE+gSQzzv z2BOu~NuSwnMQQL(REjicpbxY3nORuxJr+Tv=_IFd*NwaK0sxs6$q{84YDjt(H{@b} zevKywgw!)ndlrOOo__ojk37XW7cyn$>11-!YhFb=xAxOsAFRct#qHadMw2}5F=a{2 zD2H$V${kNVbs(jr@q}nIw6yYO&x;VO1W>b-Eq-JJMlZJdHD#y`;sGjwOv;3*$q&$4 z@cZHfu)*lu!P7kehMVNJBOwqXAOfE?iic5bz)h4WjU2+?jp&Zkw~Oj(R~8lR5@^N@ zv&AZ2E-zeQ^Iax3JJcC^L3Cp;3r2Nl8c>9#0?VzH;-Gu4eUck{8;Vl>QtS#u>g^yH zGuThN5;z3I#YIHGRLzOZF!$x<<$w08zxwdQ5B=dMKe-7Ze&z7tU-;Rd`MLl3rv>2O z|IY7T^2SR){wp7O?|ZIzeD9;-e8egr2$>8O-LBNs88&hF&>wqj?>oQiJ3js^AGzd> zm;U?T`CS0`hrjfpU-;So`S9Vx+!AZWqGu3c&z?P3e&2hqzUog8A6@|fBzgR?#~yz8 zp^Gnma1_oRRGY!{wq?^xyos+mTT9tQ3t6dK; zHGfh!$prk~E8cVUr?0x@D_?o*+ukOEcinZDw%cc%aRva~`L(ZIa>*M7@Uh4D-gM&) z|LPOJ6>p5Uz5P4>m-l~Q&z?Q{GG70Ni{5wTyZ`#;n@>6ARGf*U){F7sU;5?y@4x@* zPha(8KmHSc_XmFvhn<1NaRHoi>S@3A+yC}MAAJ8K4?pz3|C4`u&bj9niX`Io*IoPZ zkA3t5AO59}e(ay=kN&xz|AlY6?9%sL`R;E#y!V)6_9)PxKlDHU;U9eUp8HNd`IPdI zum}KIT(cH$!^1I+`gYG)<4vF4InmzRp}M8)MA2pPaD5N653ON$GVd3kxE?|bf9 z686mc>r7e>i7=OARUZ-^2c>68gz9s$c4%c`aomkkiSuRWO<*e885@X$DT$`KQOjH+ z5XrprxLpg2_#ktBcME8 zx%v9rFMsRnckfurIiu$Q*RU?}@~tqluuw7a5t@mmhlT+rK|!OKNmXGOXfE-#Nkq~% z)mAaeVa>u(7-!UUuDKR6kO9IF;FGdkE6k;0njw|;8}gbxM?D;5)i#5Jz_0{-8+eZc zZ-65S2%`oE2ff{fD!Lh==8;=_ZjqW|lR)u}xjCPwK1j%;7#Mg2S)5dvv7d4@;3qld zC7KMQ2y%wZ&=P$8bi#TohIl3mf+#ltvwZyH{~Q25@f*J}4-gha{P?eY3;)& zfAIbfI;nJddHEOr!3O}~D}VjhZl|O__MiQWUp@KcQ)<4CYQ6)8u6Bk|;E|biZAL_z zatQ+7ag$bX5wf3?G%UHL#%s5|WpT7VS*L|@p61D9qUk_W=B$xyh=~wFc&S?1I2NEU ztRq@Gyt=f!L|qbL^KLB@5WLem7lX%khb8$&ixRj2qHI(y~dBZS2!fHc(gM%PH3zpAkmGRY^|S#;~y# zhk+duq4qXl1}hQ8ykRV*R@&$L`zw7yuD

    ENn* zRc2PcM$O`6fz0K!5Zz~1qa_58)q|^Bwk`reHu9R504^Lywg{?n10*alp#u85pcny3 z*>FyBKKaa(o`34Vp@S<*wFeRId2!qFaj!e;(E4G71OSrr((=N#rGb*QvRu}p7{LKY3jk75 zBL+?O5oYm>*}4S@8lpjntt*m>Cn!~SHkW)4bpOWDDfp-Xw$7e#8jpCs=zP694m~bs z_mQy)Wv7VLvgf*L*~}MZgPex}TI9|iRaE87cty0$V^&Jenio(BeD*4l6p#4vx~dI; zi^PP5Z6I@`yp%+g_Tx9* zc*A3l?Y;lL`yPJyq1V6RBK^vXFMcBc+;h)80CM$JSAFQizud4&03Um7?-lQQ=Vg~( z{O|t1|MupaZqyz;9=Y6_fDc@aX<%O-j@dzO((E?o>{q?2K|*cfe&UJ81%{zruApQ0 zkO`VEDE65?v4yx^5kl-zVX1O)mMjisY=+-Cb7syONg~z7mq8X6Mk!J15{O`*Q&I^f zBEU5Bw3nVa3uICCthXsO{ASv7pZV~MhnKc3>YAAWdaedRw#pMkNJM6`SZ;5Tf>D&9 zAw&^ILSQ-egk!Ly1J51+#9Wx_A|j{0{({M9to{TbkW#l}*Um9x>Lme>kUHSU9(?e= zdml}dR2J>@v_ctb?>7d|>XHav%#FQecdwkOW>lLHdpx-;O$(zoLeJGsuAC04#xzfP z^NFSEkLIq5Ww(5#&`Tmc4y`?1iL^mTUa%sm{y8it|HV&r?_@8epL?!W)O>V*p^052Up z2moiCc_t!iv&ciklWOiML5Vu}bZ6_@BM(1x-g)Q6uX|ztegN=Qa`9<%}~to!+Pp9P@KxAdNCcw=X+nc@qx@%*O4gjpI90q`M&OOhBGgS3Rl>%7R1n#n3TQIFS z%tWNrCcqroYK)9bwRDO^O#k1tC14u{Z5?hW> zQOe{jfRKA$IkbA>))UPi7m^Vjom*YPeTvV76A(2w8BwBeRjC%TuyyejC+vReo8Nln z87E+Inu-Pk>(A;E zi43ic#E?R1$a07?Y(g^fj~t0-frwn>OlZXs-7HTA4SV!5E66+DZbz5}gr$i^#=2__w~ttKvpz z8)ZujH2Y-}fZ9oh`1p3h*`w0N}^?&(mm%Zh3KgI#z)KgCbfLm_) z3f6pZ5P(1ZZ~qklPCfM$Ze61eA3oHOEX$Zyn;Z8CrCC@zTEC6`$!LP^Iwtf5d zUH$2+uKd3D&c8pf#ui?B=^Fvy)?045`KB8$d&}htbBoBHJ$o*D%jJLg2cNw8=9|5y z`(69k-o1}J{LnA{gZIxK5@hN{8l)135A)!`gW;!1xS3{hU)z5e;62~>-bWsOc;9o+ z#Yg?i*Iy3+XPkAmwsK^hEgE+arPAaZ4XvSCO|-f7P)fPbkF_I8U=_R$mcUSv@ucE% z9XAOV#$88Am`6m@waK_kql5&I2w6S9@}$u}c(4#~pV(0DSFhUqgVyhYy>*qRg^}5a6=6 zTz>VZuTq$MWo1PJyx(xq#h1P1@{fJ=BiCK`CH?$YR#yJuhd&4aKl#%?Gk-FZ+Q)8L zUcU0Z@4NcbSAFvLfA71#`yKIV{I2hQ$0H9v^y|O&t6tpwpXDvf0H9(VeKEiFiQjB+ zksx@*05$G8_E-S;@^#nhO|rVW+IYLnfG`lyQtdx}>ZgB3Ih2PFAJ$)X-L+rRHS)z5 zUp(;s4g}KXY1jEW5oO^)0#iLO47&B#-~qlJ)q9zXOO6)R1zdr4!yk+|`yYW_`NXvjm4FHMC;yN31GNubk z1~z|~Y3`3Z<+#JEYlrr~qz+b@r5B#`{VA_IH*eoEoleUZl40w%?F%qom|*Iq6Hb^{ zUwG!`FW)YViBKE%+0{!}anDAhl~JO0*gT@azEGp9MQeJ+&3!r(zsjhr1CNUd9{|>0 zQtaOtn1MYh3TnG)%>{`6J<>Jz{9wzs`) zlM80x9=!YAS3L6YLjdpw1H|>8Z~yjhSD@y7-~V?8s?k$VIqk=P@~1xe`@eU^yWaWX z55E7~E_>70zIul@{sYb|hDx$$&z_(7$)CFV(^tLcd%x$R*Ijtc)t~lAhLVwpRfJua zMefDO{Oxaj>qma&<5z$Bs*_*&ieLKB2j2azcfRk+D=vG><^S$K{9k%h&n`$y{Ji)e zZfVBt_I&QxTA&6gDiO`l(b_~Id6uOn*9agBi*T1{aiKeOcrxm`$;z5Ur*f$Wsce)i z3V;BUwaIkakCzwqq!5=E0nUoFb%Vt$ir?3@tWL-YMu>!@Tc7Q_wr$_=AouJVFV%2-?ZykCP}D-#D!384GT_sU)yF?zrut zZ+!Fb{ooIJl#2e8#~<5!^UXJ%dB$09xcK6TrXj+$U;NS?cijHiV~?J4%4ru}bkVoJ z?d>q^Q{l14_I~cK{_38)?|SoPZ~1#a@Pp8nu)*j2nQQ*+wp(x6zJ15{yz6_FTJF8@ zwO{<=t+(EC;J^zPyyn8Uyyf!vxASXwq58mc&pr3WFMJ*VuDtTfrR8OBdsbIhuetiu z0C4G>-#ma#^!@+&HP_sF>sJ8al1ncA-Yc$9xy@U{$#LDa*FN*i(?9Toe}CYCbo`1n>zVG|qd+aM-5!)|YDgq$farrLTOWyd#x4->6mbPqRW5Qc=+?#$H9%m z+;N`F#u5?5={i&paBA)@6AH1oG(NO7_27rXk3b^J{86$QgD_A+mdv3EAPWz1ZnLKp zmGnp8@LOhz_$H;-iI4I(tI#3!;$?hS^SMM%D=ZDNZh5#(l=g>M(7B1eVlDI)^!yZL zOELq9n3orO7d~{Jk3Ms9q)U&{5;sV#qQ#v@ey~WIA8cVs8USPx z8>*R0)xy{9Q(VC`kUD6;kU0xrN2Gbx`q-;%J%!achkAi+f=^Zi#sk;g4YkPdiuILS zR0Gg>A^o?{{Pp_&mFc5TpZ@AozU}XP`@xr1yxQ89$izgX${lbUYXrnDJ$mOuU;FZ1 z@BO(eAz|h$g4uPqP~Z_o(j{Ps&M)A)ms680VFm{12vSGSJo@Z)e|FRN{p7o7Vccg; z3z05$D+dpK_MiWsI}T2k78Y3mvtXhpAAjA#Lrib+szN~bho-%qNrMOwLp05E4;oN%@+ zNfw5}^Z?JxL!9F#rhk}_K$NL1nT`8Yv&>D!FScPp5rM7C-F-LT^3=WeK6b}F&ph~^uue10Z4g&g0Ow(wgra848W3@I>}Ey z`pDPr{6hr-G+wxEfDzlQU`V!9;g^gNn!tE4bSvy0D^56MA(_f zNM0f&L15NphD0Wh@gpdhuN3YE>Gs^}7dBSHE?<>kt~z{rX#;_K`*TA56*(G=d+1r% zgqFb2=L&F!l0Fl`KBF)asH`ou8ir=sYzBk~ae?7B(c+o~2;-xERzwoizwVJ@g@7Vw zybWAcuo2xKvEi;_Z0Ra^71)1b>(<~kJjXt){coIiEpX#wS&m$nUj{lh_!enk$4c6k z%>c9kgBu6!^z2?mW?wKjGT~qdCzbwXtiU!KdYGd|P^CN2it+qZW_G8P>bO@Gq~Vsr z)~};1;5AKNL`1U2m!hyp2F}1-oX}}ZX_S(djD<1fwN*HL`1yOj`PaYq=U@NaZT-r6 zH|mIL$}7|rJIs1#A3ShqVQ~z}P#w)+ws`1NEtW_G`;wD@fXHfs9IWJ2>7x&ydVY&b6CNr=oc?Pbz43-`>YzV?Du1t^MfyDV;7-nz6ro&rs!>oH}?D~E2q@%Gi# zsbD!2v*rtlV0fbAZJ>%RHt*AtdSU=n872J~u8XLs{0kOLqSi4+$0^v6xPfq(EHy?W zR39_Bt)06yW>R&ZZpITIT?yWoi1YHvVhJ<19;_TJ#TW*=mjMad)}x3BiVGQVhO=a# zCNFYO?xX2Iy&_~hLhwyxX?v;G*$_*BCOxq9OG3ApMFJy+lV79IK8P!WLa60n@8op@ z)pbl=+{kwGZ7hSqEFtJzJit=JLd{vY-Okml1tg;f6qi@yvq?EE>iI?xm24X}(V7pr zVPpF@B@4}%N#R^sL6kJj6N??KHef*Sk407l=JxL{Ix@MoMDe}de=H?_EPj$~sj8(? zYnxhP))clD-#`{JfO%r7F2-#2Y67~`%xl2wU|_Kz7z>0nNs%2PEYfqav=V^PX#C=f z2M(?r7U}!vU-^(@xq9THEt!UtEau^jpUqPJn+);_C+c5?n=NY zA-oz!03s+vx^x9C5L8&6=t+i7p{e{NkXN2@;?qw&n^O)Fs7{JPBHYx@1;+NR(oQDH}ywc&MT> zp3qVa_CXqfB^Uq_>V6ZaSKX4xSTwr3jOP1lJ_F)k26nc%M$~+b5QR|~{1TVKfOVm2 z8(kdqI0O`iPU+eaSenWl{bHj@$ z(8@L?E2s{Y%vbgSF}uetRlsel)KOL%c{V~NYL}fbLa6UmSk$Ce)+oS&w3m6xfgk}& zfGu1rq1W)mh;Th8kP4HZxf;Q`JGTc{xEpQ-aOQ*KpjKQ1G_bj-^J;QE$p`zTdEXUL z$k`=1LThs$lf^a$;^TdZGKXV;vnf!aZapNM>=Z zd{L@G-Ihs^(D~ycGgh}oWGdZlXPIr@<)FKCIBCP@TEg}b4aG?PykIjpRl(e$?COS^2Riyal8W$wr2#&`V-`(XAkHJ zln4cJ+ViL*0m(!nI29qHE?MGf(Ie$4$S6@q#HH_0K{Td>0FZzf;FwqL+PZb=*}c!c z`s7!vuTQk|Ab?TVo%iO~KJvL6bIyi=NLpCjdhDLV`}VI&FM5F~~r*TjqT9L`KgY0SwY=AM0~5SO=Tg!lRGM ztt|C07eN51LqQ>HvbZp#o9RUjb?5V3)(nh(%u1}*_DWG8N1F6(FIH+KnNMJWrC zf@_hBGfUL0wq=OK z!bxof%k>g7(WaS2llvpuYqtL8(Z`>C;lQ(f|57)~hu7DZVAM?(7A8C3@KZ=KdSVNH zeUS;VTTDw^Mhgqe3!|dLBM~I&<=~V1_dl`so||tNAm05ReEpJ2Md^Wy8_5 z=i(bcG#;fcjZ)VoBR452Qf z;bxL0A`plKK_5h}eDv~V%xZnfT{F+=02*v$BgFz?PGi5pe}>jKD!ov`zNJPL2-l9f zVAfuKpO%H?TCc{is!Hul2h_>17b?Y6 zS2s9>=Wwu`94s&gq^_AxN|@Pl%CHsRl0U1n>{PcB6{zG~HasMl`jur;u4%|R#!+pr zNLkNRGh6`roV7bM)_`Q@o(Px`ag;|R$js~O!hOmkTODNvkty@a%3)x}AZH0?=gvX5qe1UFwiD$=y494R0qvjr&0YPC%=Dp30;5d{q(v zrj$yXg^=XA7rNEegg`h&mmeFgyuk*ID{;Hz(TMAJVwVje=-TK^V7aCtJED>Z!$w5ronZ)u$k(w6 zgGxXOF%HFEWC8u9kqa0aQ{3&4M13jaX(59!CYeRGqTj9z4ilNF;3d;Qjopl%u_1)w zw!Ryl>oQj`U5q_#!yV7{Sm%6a<%XZo#)KMWBH+=Hx1;!V=4cTi(zHT3{1yku25L_# z8|Hez#HoS{d?o{5Xb}yI;6f);&od2I20?@jLV!iRDFtkic2k4`uRi;f<4-(k{N%#u z@XF57xXairc3XFBS>CxNj~8g`*6k-Bzw_kdb{)5C+xBfhNJLXjl*pMyR$n;um1}Ok z^j&YWQ*E^n z)%HEgGX5XR{yg5Y?7Hg&*IN6Wd+!@#j>tiosmzpQrDQ3EE!jf0<)Nx57xD<$;O?d{ z&;=hTC@4b}W$2Ha28yo!^ao>_20kvz218X-G`Kw*7Y3J&2U(V^AuXj+%6X2+jEwOO z_nx!&TK&gbd+)W+y)RM@=_6%Eym;^4bI;j(?X`Zt?+>%FR!7<%IjjB^aENqOj(Was z360BVbrr_hNRMl-j8075G}2Q?005vPB=!--u2)d=cLm{2f(WZ#T{0EA(th)xtkJDx zp?Ar&a542zysG&O;?{)%YQ|c|t}pbSGzx+h9*%&N`xRDq7L^e?ZKe5}0Yi?(YZX9E z$xx3k=nmm+5<`g+s)?&5Izs%5Eh~Cv=3$NNDQfz*JaLVosk-i@nPHyfN_$GeR^@(T zzoke3umK}BkxVcRIn*aGSadNIV{)#ECY^NjoI<}FNxc|giy#{2-<%Nnk>2o5wOv^n zDaQT-O>bnEk8WG8K^mN5!SlRD5VY}Hq>&YarW4m%5+&GzrVboYDTe(}rRx_9YJn9q`X&8wJ90Z(x4najIpci-_< z@22g!s;q4)Kc94p$N|;sCNby#4XteC(^f>RtK% zWrW7y*ry979@2h#}OA*vX&G^NCZJQ*eV87WGSF>A&T=qZqRr7@@I6 zS=3l2tg^b&f<=eG%x4*=QKWo=XGRZ@c74m*+3oU}&*6_<4>WTTrSU^eg~B*x(&k~H zOgYyZnyoboHFr>``D|+JwA28+W{Yc^1~@T5HdDuvW@0@P%u19zU9NxEHe*g^iYKBq z)Mb6;PQYBH=*n(ylIp}Qkk9#qwyXLkjCU;67THtu z4%S>Qff8kX`&Eiuy!P30&pnRVUv z_Rb!LyYIgQB6RljLtpdg17G#-et&z2JVstES9*sjNR}B8IY|mV-MoIQpY=dE3?l*R z(yYr_$_Ghua{~XNu#ug#uOlK5au1J?RKdd{5^%OPyZ7yHdG)y~i~Vg`^tuF7APjV- z>)-nR_dfU1jZ?d4Qi>vpSTJB%c5<6<&f*A>2?LBzJ@&-&&%gH2gBM~<;+f8^ZUfp$ zOrNYe z#6|nu__xI!p(}F<-AS8}7?`rAR;JWDsjlu~fkL3lqVeAlr=u)H!5r~*k{77S@byOa z@+DG@6keL@r$G~6*91dU+FZ7$=@Z{b-7T>zCu!SIQ%a~Ypdf~z85Fn%S!+%<(lT|$ z9UUAG*e|BiWPkWxO$ijz1QE4+nX0rH4<^F=?DXSJHkq|wbkfJu$Usiyqph2aO32jY zQ}(BddNZ|`alHeC8xL@WnrRlc;jemXE$`#a3$;7xEvhI zMkq4bda?|8UK}(EF0&7rC8fmq*D%Jz z#yE&Xt)4iIdwVqnF2q6UX@wv1K1R!C|>DE4) z3Ug34tQ$D%=qUFes1|!Twd!z1wUsuplwdPAI%+(b?uznBu1=rl3Eo-lRvu~N)tex3 zp;}W57Nxa=mVmGDM0~WK>+|HK&B>=M#VDj1666ETuo``B{zNbdB*>h7kR0=t*;rg1 z9~tQ-6~-pkfG+2L4Iat=?2PO#=(4%xJX3O`;AEmzlsj5=PEdBh7h()V8iPOxdY~@i?ku?#5zC2BAY9+6 zqVkZac=Rj87@hVgAeHApo9GM%3TN#zw`ToZfmJ&o0uoqhhCZ4KWO3^BsR!=q@4NSd z|M|B+`iK7G`GwPI97wn$>d0a?0VEL40+49Vw{%2=aB%ZrXKx#jVoD-Rz&SOd3MI_H zlpD=R7y<^AK$fCKxtXhb9ogj8`cHiq0^s>eXS>k7_VVk>VwXI@PBET&%cZ^hFC8Bp zA(1Jp0cVSDZ+Fop=n@AA9SEo8XFmSe^=pR|NSyn|iO}lv<071z$+@(aG;lHnaYx+s z0ti4vHz*NL%|x3^aWa9Wmm46b;+eOiOG)dAlTPm;do;3-QkkjQH9$bYTHo3NXErPs z8peHUX_nj?G8sS(E%L!&xvUV^(3F;G&JlTxiI?1Y$GQp)M+i|S=?>9Mx3}^3@j|DsZXuCqZzk1 zM~7B|h+Y#ll>-(ngsio<UaVOvBR8QlVb)mcvk!rD>Ab{WJv{7hD`y2YNtR3 zMY#g7Y0k`e+lbsUy@%>uUUEHw5Xjvpdw1Xc&JTZZ>w$YNzWpsL;c?7RCMaE+`dUK3 zK42i2h0q}!A02O>+M4y$hmLG{Rm+KVL?!e-i#&x{&;&nafKhGi>Qki<+yNRpqInk< zyNlBoPrdfym08H`$ISbj&E|J~`NN095fz1>AR_La*t8(h`IaAU~=h?xRoc37P0!tjF z#K3GnPTUj?n!#Uvt=bLqFQd&t#wLc;caU5-oVZS_$Ac7E9+tyLjx<6LWJY0JtLduv zr#%%xs{)qEGLM-X?lr(JOvhqhaw{J=36bZRNGWAl>WEj*&|Wzp?vXEhhS@j;xK6;! zA*lQmX?xfwjt%W1=FBiW06ozNG9pM9hSjLcHA_wZ%VF(Mn@eQ)bdKrp;Arpc9)rv}45WQ;Ai%^R03GFd zyaCVgf4Yj9f!;3B?v@p#CuF*R?Yh*B5r@4eX2@ zCM9ydnq@S|Qh-!bnT2wc!{OY(z5xkJsjgfkA0bf9fXu6tl*t?#&Kgxq>dY#C+mOh4w)WRj$O)@*1-?8Y!P#)Z#Z&^`PIre(%OAeD0F&GFZEHfX+5k{ zeY^)5{oRaZ?Bj|q%{9)YJppQTfZmX7wrobkK&YKv%s`)DsamCusRtA?h(BsHSIjHB zUdL2|L4XJ$`p^jB=+RCf?Ig}cpJIwDX|EvUdRAO9!#q`YK}F~y|g zdl-jwd^~KQ*;fZ?2|$R#Nh&!kSly46=aWaBdezm1s7Mwz84XrwqCgZLW4v_Vh1)j{ zj&2_zQ7~^02*@yu`*&a1zWdzquu?w@h(MCQ>-P3``jGHBq}9nQp}PQ}kfQ06%9{`_clU!%<|bR;U_uv%P@u2iD?CooG&tR$n-mF31%=9_2?J|7E-(52EibcxN{ zJZxQ>GNr`bVlKwT?b}qSl;B6%#V*jaoe&{_CH9~dm-Y|3w`J+1ByFslJw)3$)>{qc z8JK>;Y=QSoM14ol(U2r2&Ngn5HAbXfyjdS+fjU9~ULGw|OuKvAkPi_848R>>KvKqt z0E7S?V#r|^gf@C&sP$CCvg4xdA#0E##>A&Coa(x8{qptsEZ7o85L1fGv+c#XcfI3a zxvXU!AxGXmwYN3vW{i+h$3y}*UwidapM0XWdEFjGh^mS%?X?1Sr?$82S}uzAwH?d$ zq-3yP24y#vi5I#p!4t2F>DS!(xL);Rw(oLn&@1y25J5=ulF;>5#nDcX+>Mochc3_A zE$D7Fwx{nT>gUFTv=2NihZWAb44$IvbLPrNpLI5_Esksb6gXMe%#edg^8~W4Gg2Ps zVkxqIsS`n1;E!ufR)?pc2nyEt3;jo%bV%WGU=e{x+q2a{L&4QL1vQFH4t9kkhwG?c zkvAv8t{I=c1d41k(x}^dW1oRLC{m`oPU$m9R!+4@Drrxd#zxl`2347)RD`_qMz&SN zly#N#6A%Ed!fpQm`*aW;Smm`{Ht<+Hj@W6NG+|5Ule$bKqsTIX8A&+X@JjoIt-|Fb zoU{pp00>byS<_U}iQFM64o__Q(r6>FC>H_-3?UG+jFCH1WR;C&CpQBY^d<;l7>`#0 zaIv$=(eV`($3Z5{V|7zAfo|0qV{U0p;zYaxoQ(B9DR=E2Dhm;c zZr`^2=C9`*#f~Htj9r@3;(?&?jx>$U)=ZBj%)(2I@#K=Qq2Nk^;vx8Evv}9|x(0va zcSXMl`U#)5VN}~Q9Y{(Azc~Lha^-0lUc(NpNr3ekRDqF*2q$gmDGR>^;kqPc)g4md z`|7wEYA;6pdCX7RGf&`j`F-zl7C%ZEbI8z#G3(Py|Z>h;8Sk<(y}m zQRzrzNtPsS6o^YmslB4IPa@X|Uv@CI1xTs0%Gf99IH?lAt=EBV(|o;gM2I1O7ev&O zL^~GwEL`+LWf@UKvJ`VexgMSB6LM6AwvZdVUS_g*$s7w8LO?*OoeIYX&s`f1)}u3h%Y_!%+pW3)X#!l z!2~we0@j@S)KZXh87a9NE|QYXBy~C?jGUy5&X_BaM9=pHheU+= zPO~T5gJ8Xq*rdHw1apFf4mm^={DNoMeYF*?f5y!JJ0>rjT4 zF>eaRb1zQ%org5~!RO<1PLn~bh+3byjR30dU;)zUWsW=xI^EQ&fe+k z;b7Up4CjbCIAs2LLs5yDC^wJn)tOw5Uym3qtNWXUWS?!9n$>-g~2Q3wHT+5u4{CEnWIy7yggJz6a( z=ZrlIUqsYDMoHOt8x|vt!r1_yR z1Vqv*t`wMrE`GhD2r;Yr0fA8^fZ`WPL3JkjWv2{~d;wwNKtYkFw4*$rR!<)%E#6&% zRUOqdF+(IiLq}J|x=D+?iB(Tpjhy&;s?C#bmIssRK#|H$EJYK+xU^3(mY4_xXL=D0 znW~|Q*@1?jX_1f0HxYTt z6x0mH9M)cyHu*_Z5EHqsa~TTR5eLz4SB)&#kJ`*Ij_gKWerSO>5sylqFLAK0FDJMA zlfuRGR3vM-Y&b?)NnMx+DmBrqgUF{glo&!u$_Wt1^8A+RtZBn{9> z?A3CTGj2-L5)hAW9BggPsSAn4g=Yw%1Ox;y(+U6xCdR~u!boI(L3RO0l%qjsFA9>diA#=)G7eM5$54-z|*~kk2sB$ULasp8Txlhpg0hnVH zWs(bsS)2ql`@r$M3{oN#K!6gr11`Zre*hutuDIMBTr2Wu+JqL_=*;o$w$?{e)>)ZG z`Q+-{p%BYs=~F8wfo~gK+Onw`fQ4LAmtSqoiBhGYDrjuGV(;F@iYio!SW%0coecp= zD=Mt%8&FS7Sb8QpuV|V}2!MFvIC9cI5ja^V^1J(WhpDCtFdWqYtD-t*JjrG*LPJ{= z3kAj+WNc4MmYSJ6vZxG8%UI7z1Y%2VGkeTKl%$qQYrL=qm?dcLW`QQeQ2f~5J?ccH zI$dQ1lAZtvF&hGND_bHX;N%Ag2Ag;R3+a%02Hw&!OqoO6 zdl}`4c~;hGz`W%Q6QOlHpb~$)7)AtykrU=AA=ca$C@^wpS0|evX`B>iPAaqz6yJ@l zYl}=XHcuL5(j8XSs+lcwd!pKeA}oq;XAUK74n|Ft?QMxI8qe`(oy#*TqDp{M?Kf%E zmTO6u&qkc<-LItnbV1o#TB>Pj%{tYh>1>%zD)z>+}7<`_1WTr2pj;WnnE;F0*7H&@l2{B7diIbQflueA7echrGzz~oK4d#$9ol6m{ zSE*?C^O8zXIKl`F3bu8WNPDXo$P_Y3I5Ou(ur=|ek(^gKtS-)^A|=4!qO%}}KkCnj zY=mjfRg-GT8BD^ceUhl5mNgZMVRJLYWXO#Wo`nG@bp5Q;)-9Qa5&~HV0NZ|F(bxd< z(XFHH{p}pg4gsni*~JoL(V1X|N)lqH*l_?t0TjxUj)L1L%eQGTz@h~&-hJWq7hjWT zZOM)>AclY-ym$80#kW0pbbOpy7S`lkEauyb`J9PH=n@5xw7UK2k3YT|5>%R-N{?!? zC1(VcJHf0=-lT9zv+l$o>L#*~V%)PtBWOY!P{-uuKxk)EM)l371gUJ-3^upS>Np+d zBO#JtfXsAIpC^!xH%W0fVl#9uYLNo!+N3qhd+eK!!(_t{tkl(3&FGjFGcLs|87UX! zig;v!*KZx)Iv$Gs!DmD?dyh06X{bT+*=?E!QA7|Z2b1Q30T(+?+l)r{&22)5;?u@U zbX+M}@|$yLLrtJhkbRjzRq>CT1mn{YVp}rH`pivypvI;(9-Lz(tFJbmWSmGArm3@c zXugZv=?W@=Cd$OBrY}ThK_F6hi%3drG!oV!Va;LD6S}GlOJiPxD^>W9MUd%i9NLM+ z?6frEN1IPropm6_NhwRSHS%&dGP~(?N@x+lwXe3(zJOI@U}v{-z!XLi1ide;kJ;o= zN)%0fZ?s z4jb%qrv#8N1R})9FeWRzy6mu{d}yUWU9jgEHTZ&o5QlL*_m=ZVw~vOS}}DMx*RcOzn_E6xaKfe!e1_}b>tvOKmkIBL^hSJW&vrIraCio zZj`2XRFJ%xc4B&ef$mEp(ho{xEde+NMIctj5#zMB*V-^cq>#F2GSn3xP z*>}Ds>aJp$_@WmW0v-qwvOBv>S^^Wwgf1^3Kw{|wrI@Ob0Nvrp&IE*L{uClw9xdZA?w#IE zNs7%;EO!Q3IDvMn84C_37psKAfGGiHQ(%KT%{hgbv+k0`#sdSKxo|oG+smk{M%RyVaQt%f`xH2sWXxa|cji2@6O?LB@GaHA;``V&QG62r0!68* z*(U^mI3v7vYnc*5BYMa65hyqV4(A|w$^~^XCFinSJVLy|u{Z_3Z$mqMgf!xfk_^C@ z9faseO_B{=)-sx$XO$m>h(c}U+(_#REMZe4TX$>R(4O{P;5@d5yn=s8zn*%1s)X@u ziUwW-=+))9c`CvT0wiS6c@?2(LzOGX#Da!hxdE9oM??sejjy$DLM`)G6&;jsFv+72 z2AvsJ**It94_D%aX4_ZAIe|y@O9F`^i6s>~h%1WOrNrs)u{ln~pA_A(2)Q66B=;Ot zTqo6a%Us5oLWQ&0Je95^3aa2>LhL#kMM6g# zDN8FBcq$-lvgpBtGL>0=GVN~{Zfv!=VF$%8vpMm6b7_noV7{TibcL$L(+d)b;O9U8 z;>)kT0gK&R2g7nqyYoJ`!O`V^%7#~veJ_U*sl-Bc9UT$kn2 z*UUCF>a|&oNyMfuNR7^iauHb5%dq%}LH_k`(NnJj0DRLU^3`u6Fg-?(dGEO&Wl9|MoF{wR?G)ZM~)(wM1vqVk-JBf)XtX8oeNpe%0^3~MtQa;Vl@xd{5 zG~1e&UP39e?ZZ;~KZP>#Ai|C?%Td_0kM6vPnMNBE1HcS~G=>-qWCQ@vhx2!zf9>Vh z(eaL0Bp?w&H|sCF>+R2f{`pgGA4Fj!*xjFBe@(hb+)E%P7@vRgspp@+^6q!uJC4!i zfQz>25GA{i>NtzDDORfps3=r$$nCNYN=dLRH3#H(og>{XBiO*RQd%q4q+}MPI%a|z za$6#OrH~Y{4mEL2u;BwHt3g7V@Ots%sm`Bm4G+>}0Yj76uu+(d$oXswj`nO&M*%nbF(7@oQ7$nCuyA1ZHc!d(L6XI-0K$b!Ew>a>~=X*g}Dc&42?n z6S(*}D_=ea;LSw=Pc;S zBJf{*&D5q-f|m4m-uJ+X?tJoptv+9b0ctZJ1#%Z9V{2TWq_igUO8=w3U0?H8zs*d{ zX7#rGkgC0hLIGXtM6qdT>d(q!Kr@I_IiNVePXJ6g$TNvj1`&X`k$LzIn7*%=$%loH#|E_uVW|9W}A)YD&-rm?zUln4s;(K2Y+C>@pS?#UyAMt(q_i zL?94Tx^UlxXC8m?=y2K1LXrwuBqC1fzIVO-`JegKaZD!H$=%4EQ#;$&y5lhp#C_;i zFdSTc<8z<>;v?_8-?o119c7W5Rm+xtR^jP0LH)Vrc-iN>G6>3NYD3Bqd8^?^~sSu$HmT%IgtD|S27jsYzgGSe_MoXZdSY)c7TMuJ7ATmQ?3JOQwWYVyKFi?*i zL^M&0Na1c)&;SB%n0tQY_iPA0_Vpc4(|gKH1{_%h*8IH|Ym!&dQcx81n?)i3Vz!xq zhs;Z3&(Z8ME8L5tC#%7MpdQU^c5f-@xzlAah?rO+Nau!xT&PlJ2`_QRHh||mSFzVm zEmIS6GgLB<2OzNoS5GlWG={iU*}9(Ro)nP{+wwHDVLWxJtOR+dtVYWCXorYmbc|_+c1&xtd{n8O_r$uPIPN> z=7~$C&gK{}f3|DVB-+RcBT*HrTbn0C8L|+zCZ+Rh=8pk3pK$z=W7%PEY^dG?O2l<+*Sv2%tEg!%b8DYCbE=) zv`Fo)fM@>VoA`GCr`;=T$*!th&6QcU8WoW>u5rpv%7f5L5DI9gl@DSO;ozpf=%#yF z5^VucC3n=$H~A1)?j$tKiYy#@&E-~ z@{?n>AWbd9n7Ev1O@2avq)8Da#KQqw%3wpaF2zom1t}YPS%`O9zp?D)03ioU&1bU| zQ$Op+VGu}&(m^)M*j8n-LRI`}OLuvAytTWnY8eVToD*({yQ;!egSR%QFqzm5m?g5( zamzWZ067)+2(u98eE_lXGONLgWqWsPcW?g2t8dKuUWo`QzSNo4Y-@4;%ielCEU7q0 zb2njUZ+nK+3DKDPNL@&;yztDk&%E4qooI8To}p}DtdkQ??qOv`oggzL&Swp@42Lz) zU+$Y_(609pYGxG$ug9DIZK+=k`eNE4mYdj>riC$TWUW1(O#|F;OTCFn96p}fRGpI1 zUY~H87Q&l7zIkRj}&(^0TA!C6hFMhf*Y*x!bU2wDe(X*WL#*CPlM^1^E zg#m2&47*KqMwMVh6h0(+yNbAQ|1X`P`G}l7j1w0Ljx`T(b+fk|FQd znn{GX=)=L`@oZ~83`4anix5H|u+t!(+*^o(0>mOm2Zwv7ce{{>=$843H5Ug8MbA!Y zh|2e1aZqYLdo?2I>Q5kmm=d$FQ5FK7xp?~ZSFW-{QEAVI8ASNfJ02JUTg^+h zjflwB_IBS$&g`^ICRej+KmCuvzvT01jmKUfY^7sl#ZkcRD?)eS|CB`N__ zV2%k17`4MHjFNyEB-OL~CYr@mK+Fjw`TZEB(MqFF1t?{qXF`C_%mUf4bQChJNY}dF z8uc3DbY5084CtCo(6Fj8J9-g7ZXd6%++21S&z*h$dk7~%=^l<#!zx`YP z^FRCNAn;sH-F<0uHFVjxaTY^da1t5BEu5yLP*Tu58Rlw zy=@Da>U;tb@OY4yuOk4S-Gwu|^^>d3i5v_sAkSPu09?%Ap3_#Fsp28owAKE~vsX}n z&g}4+9eZQTK|cEuyndSi@Ev!{Ll;vq0dOWaP-$nQkf2_om#)Fp14~T&vb*r^Gd%Be zOg#XL(|ud;la!&i@d(Nk0h){Joty>Nt!kF7MbFIrtUo$jsc27pN3~|$7?vn8k1;Ke zhsDm8J}5~fQ0_kq1R|EC%}+##qRXNXA?cXipdnlzr#cK^9dQH5sFp6k&Yb9!2XS)g zEtfv~o1crz5eXBE2&4811yf4r-+C|Z?F{4Chpwi10L~Y)-L1v(;lXhyfx0f?n1;_k z_J!*=K749#QK3|36e!b6F^ezt>^WCn%|4|B@`FHOL&+C{2bAHBD=~5} z#Wf9GLKCz>E)%_8qw7V-Cd%Iyn%vCVUR&2JcPHUZaNUIMk%Mka!jj>XvD*5w`Y!D6 zEN%^HvA5M<+{e4`>fW&$UcDNwT~Awk>gWUL^!%Q)LYnEFla7n0e-u4FRZC}{>SW!X z9XPbEqGXgmfb|5Gw!eX*E_j=EX6ef_5Puh~*q1p)e?Tn=4Un3V9D zWLS=~#XNUO1%xwc0z{-EWYP952GZX&gdyd}oB$Fap$H(`U^lmnR9{F)fMa4mhCswI z@~I1_hofP2Yq>bP6C{aH7IGkn?43Pz>cP8@KKuNs-96;okOB!rJ3HGq4{psMjljqh zn6Etl;&acu`jzj0`;Z20V%Gyv85yy&(2!saRiHwGt*vY-p3Ej9D5qyO>Uad3@v&-`h7=`>BQl#`8`Et?4Q}W?*Z=mG$yt16{kk71q-;MlBIl-M3G0}wB@3=pCf9uyPzHz z36RuhAr|nWCobK1sd2YR84Ejlk>HdLm0g`!B4jZ;!LV-6m7>w)Jy^}c(^gfHgEe_< zEp9C1{MId(B``*uO~r5i(*r)YxoB?SNszPO3)zbD+){rXtRVY+3`Zp_PrddfDIGt3 zr3Sz1t&>2KG^ovhG%YX6*{FT*M}yh8qR5z1vTRcWDC*Z-TY`Xm>?!!0zvx$R0D#N4 zjZ~E9e4@v609X$2|M)rl8^5@51qT55g(vZQ|9SYt(=HlVN_v`=Sen2f!qn2vuvTFW z?Zq%~2@|rB2|^NxrYp1$y${GS4aeio-WD?pFxoH}Sddu)DbyVR zDY9+=rYTFTUqHrcrNGXItcy-1W49tlB`k^oJt|wtgP6V$^b6M zv@+Mi*=y>gwo$TyE_a{&s8df|%t8oHJn{L@eEKs0@U7qWZCl$r=yatSd*P{kkc9}6 zg9oX)@)@OVdDfOd-e!vqq{7PG`NLZSCalL|a>{fx+8FQB=ye*EsQ4_R;)2-#XvpIr zD2ItM0fmN+VEk2szNXzdeJND)vkP!XOO0G$nIIslqqoXs5gd(Y)A3QTpsY&g!oK>m zFXG?)MLLNc=8ksuL97P++doI2zEZ#P!}r5`?gat9atl8B51aq%&x9=pdO(xzdhM0EXp?$8mda zORR9Me4-qvDB7a~f|MjhR)D887zrI&G%YXv4t)qJQpkE~19wuE=Z9H1b!PY4<*N_8 z=dC)g8bwI3GixqieA`>UFzd3vrW~|+HlJ-R7RSqx0EmPVbufPMb5Gp7`3<`}b7om< zomRaC5ymKz^byo&m?=LaH8P?(CW=?wNjvuwzo@`O9lT-9m9;oSZRr(rVwq>U1)YtXr<>YR?o85a^?*ffK#j%Ue&jI3$Ph@zBoUw-xL9OJl0czx=)xA%hhbh5 zLJ+_V^eQsK$_y`~Ey8O0FC|^k>Uj8w`nQ;iPuRZ+1c1+c`ZIs}zxa~?@ZR@*;*m!l zsgiMVav-S>3K6@ z8RiDDQkO0tH0bQqoCA=Q+Qe&vRL)16Tn*6w`Rn07d#@yc4zaXo-ggQ9#Mk5%836#! z?-tCtY4gI`Gm)})P6U!NJb?%@aBp4LAwY&TDM{qb*Zn{Ly)91n%R!F+3$ z^17w@M1c@AF^;uKkUFB2pQ(UI0aXFqAs}K*)y$QjHA9dRqT++FJZ~cUBA`|G6C_Zv&`Zc>=T{!--W3 zdI=RZ<;TNGdzV?boW$lM1y z7zbg}Xtm`s2`PC)+Hort$q2VrOdlRlo&;z5t3Be%mJ!L4=AtV=VMayuOKwhMnfM7b z0vNQALvb2?o{DF(FRO|}v6=Xb=Q5QdS|Rst=>re?lIGk~f0CTwqg~5IT}z|NAF!K6 zuMIrcnk=Qeq|*w@>@$_ILlZy?F*BPLCA2k%hc0pw>0BK4?pz+cBv~P*=AAs*DCxDb z!4ZQ9k~L^-?3|i3+|<%}EUDUU6A=ru10Y;q+H(B;A4!WDAizVH?wS5iZv#BX>+5c%)?3h6ih-yg?6@Bue<&vI|0i+C}k6QVTPauapAfPgF( zeIQ_h#KL0=A!tmymIsIs5F%%EB4Q78bo-b>H=ED&UI<765LqanFq7_!#=0?3f>?JQ zIz3la$)*qmv9w>xn>S%jOF)F6d3lzbio$aKo^wxr@`>YH$Fk_QXZTNOMGqMAnj~*-ZwDcgZN}nP;6{Uhlkv$^OCp&k zE*mgQa)(Vt{P(gj(7KCY2$&cIV9`-eArN%|k5_8N699~n$05d;yv4bqqGj5>nGWb| zYHVz3mliD(DP(hE5}y+UYjfkmH>)iI7L*DRm-VHyat3W|A~|xX6^7Wsz{HpNQ_sl> zrJe6hqX>64^7&}a$%pmiWqI|O!0Ua>oN<>OV zjbtld9Uq_oNr@eS(jIAn0lwp59mg?oN|xU%8*1x(SmVMXvb&mHv0Pa?l*)B1$2IK&mJw28hB@`1Y;CZr+E!6Xt+q0!njIYcJ2t zu2La)A_9>s*h{jMUM=Y%1k7_RQsb1#{1reZoFp-4)2E!dcsgLX@!AbU9P=lQNP#FI zC6IgG`QQL4OSG$mz2BPcEVkycBf+2wk@4t>-}%DLTT4yVZsu<#j1*0;SZ<{aW^0$1 zV*z!A{egIrM!_?cycVU*Qmqf}d%J$m-snkR|2OfIRd;j)+}x|l?Uam2mnKZI5y7}k zr+{5;1<%PMnYJ!B4^{%WJ@5OFMwVGe2S+i*4E;vo!~#521aG}Q6UViOFS=r!GbF&d zi*O=$uhy+bvEg8%`WE?U-~Ts1_w$c^`ZM~^ANi5-}Fsi{|(=0s(BV?rh$yOgQKJ4U;6j|{^KA2t(!M) z=y&?^_rB-bzvB;FxNts86-$y1)(uG3wW6DWI;DNFX<0@9_=*1lwr5i@lC*oCR6RZx z0tq1n5F|1_hI>W10qtXsW#e(QG!BC z{Ga&-Ud&E((iW4!^+Wiz7qIk#-f77dUYxDwg_cRl9C?6kh1@+LzIqIV+x2wB%IAdXnBc55c51%SY}&`#i`xbuUxTEH*IQYImH=YtM7?yIM40ZxD-%U$ z-`hU;gXhr&pbVO*?;-J{)<2Lvp@HBAN~ffq>~eNY}f9~=fU4ikn+pd;NeRp*Cv}Fgx73e zXz6y6TjY{++19D$wUH#d{uMmL1W&(tGe6(EbY!d}Ynz<%+`XT#}H7Ai_-Ul|}iVy|E!CQw{45L+hJ+C5n z1jHQncIS6pSUrEGU+e&z|6UO~Te~}bxHcPQ2-0InL6(O%KL6RL-}9aa^M;7hhCyZ_ z0QxZ|B5ttfAQZ_KLc!0=+Q1oW^}2~NjsBImP8Qxrv|iYF>^l%`l?E+PP__!K|@xc`9%zV}c3Nf7wrlVA9aU;8xx`1bGk z&NFAu=wE&G(MPlD9CPOc0N{W4+kfk)f9fXz;0ONt-?;bQdtZ6^<^S7X{{h_q?!EWk z@BYKzle_6yh#)V#@cegv+qXXZ%+n7&^zfhk^MC$BANpDVc;=a>f8ekE)n}f0`rE(d zBR}~wKlk;m3)SF1tNV+yxT@j4JzunC&3iv^n~Ay-P5 zVTO?`5Y`|rNs>JkjM89#>}Mumn7${WERabV7;j<&6qzu>l;P(Tkn2Y2`_9^!q>Me* zcS(JOt{v3hdBHDyvQTX@^zw?EIZ~NNCEO26@9Ymmm6?khKd#EzrcF_?R55ut%)*IJ#qsbq4<!)h2(Bu!629LD6{V|l+K{$*zyJV+7OX53b8 z8|J5gS^->LOsveluq~f~bl2wv870EQxOxPH7n&+paKZ%>~;?1(3dAa_lu=7L_h0*UJ*-qBt~=qyVaW6CeN(!`|8b zIE=@)j<(M3n*K)2YzY88(OvI&;MrgJHD(U_OtKUv@^ZFr8T)E==F8X_B>VR4RSsM&oJ@48eTc6K!ZaC0Ag+qZw` zKm6hUac5_TS=8|L_22M~-~Jun`BOjn6Tk86zjpQN)e9HSm69I-e&v^c`8R(3*8t$J zeE(m)|NaMx|L*(0<6A%S%rj4a?z5l$%J;uN3jms<+a&b{^LyO{CC=D! zCsZonqavOyvmLIZX?H)HA-;N_GAgUdQBkuWXBj5BAQZq2w4ge=b(MxVjS)?FJ|z^} zZxR(hj~n#f>lr!I2~xFI=6h_~(wIDIpSc2?Mx>h$LeknVo7d%vluQrJz!}$o5@sqz zM83Jtp5FeI$9`w`^5N4ny6=Iz&fasDGXl)`qsnv>ZHCBrG;D8eX_pcabO9elHFz-V z0|<<42Vs42DG8zwqRz0i4bNFfYsU}u(1Ubp*ia3kdf%z&Wr6ZxZ1>b|=)%pbH}@`{ z8ixpg6o3Vkva(vm{d+I-@N|C$De)AyB|at z0dTF#6!4)gchpQzP|pQJQ~?RC(9p3HDjK0?2RHBo7rNluAhM}h5w3_YxzE_Mt<@yE9(Evq1vWOg|gk+yKAKqZo%TU zOlrh;6PUIoBg;wbAe^usU5K-N302#UttlA!%D(H}U#@@p)KgC;Vey&GHPKnfM~k_6I+WmtbF(J0#4eG z8A2=0Gs12^oDwG%1n3Dn!k$P3BBwF2I(Ae?nDXf@vWX4Hd`(#ZP=~0c zX~-(GwKy~8$kHwPQ|IM^If16wb6H)kVrZsD z*o^P6$pLHKn~l?FO_}C;r!E`Ec;Y2WT*-4(X>0|RTjJ)X@=3>0QK=JAF+?d-Eky|d zHK-Kq$VL!wrS}l}gizHKh-Wfl75w^#0iBQ5tH=?MshRajdtNnjy~|0+GZ1QY;uR`g z0w~%FbZ2L`qQeQjp1jtsRq+m={?sS+PhNQb`I4Jg`Wxj#{@8DR^t=Da_vphMa#ngy zEZdMAv}wL81wCHq&t=aNaQV}A^$UWd?Q}C|pi9me4O8!Xv2lqwTC1psSBr8`6-|>E(>hR zIuIsPr`2~d(Vi;BKWEKI<^({(4ebgyJt^zi@uw6N7oOCVRw56iO@b11Q14!%KBrQMe3>NMMe;0 zL&y_oKBp9?Zej*O5thWHj!@LSL|6n_Fu-tl_{Q_Ey!g527^Lrl2qb1^7G@06ce5Db za6GNI129JEn{sAM!~`_ZLEpNhp9Y7D{0`U5@2UE?!XBj(BQUrLl?R z-AJm(v#fettu$`UmyIDBWwFM|Jy6sZ#Yv89$DH!#L>sH&W}@Pr`9Jo@|HK^z8~?{Y z`bXDWCGNC6y%#n$ou#BzK=28rb~`HA$O{>fjN<6O2}@SjYQJ_3dtVw?DtTd*Q;~{@(KT;gy$O{-vM$-xqsZ$cp6BJ|v7u zgavc777KIIMVbXLC5~g{6m#!QBqd-;AW1-2fH^S(kcK{UOd%j4%s6!bA`wBC`9i}= za6Bw;9scag&r%2wL^Y-W%se6jO5meaT;6#3wSzE@M(T|tAYr!{Qe4S$OvEs!`2u2$ ztK%vgGLl#w7<(gR&LgNFXdjOqK^I z!onQ|uxJKY4Kbz^DEOIGyCnIcj`cJ&>D+~CiYtP0mzhiSFjg~ehODSD0w{YvwOxZ# zJB?AabL58}8e}4SD5_NFo!uw|^zZBM{=L8N#YtX=S2PKmpZ{#DtDsAp^ivy`-Zp0inNXiTBD>s_mtldixCRXLiiA8`=hgxpv zs_(--GTK|zzwyjveDIP@P1xoerjZtrXI`hKsiV4bkvA>Eae9;~7Z^3OLPQ?A#M#vh z&s{BLisg3{EhJaHs)`^RDs*+g3DU--|)|F3)UUz|nq0NXWqlkcNK!LkY*TVDh*Hj(k14pc0Tn_NJf4(`n zvgrK7qB7OUr&BLKExo<6<{JZK%&Fv_uW2OoO+R#AAQMYoxCReiY77wt5cVsdr(bvq z*M%quZ&rp+lt!(LOz&qxeA``eW?`(AUw8_?`>Wy1PCZZrB=(_;P;Cz^OgTQMN*Zb& zGujw71j`9z#rzUF?UxlsmM|*JeD3t#{;A#L%VFNl<`Ne)3rsWu_DuZ_&>qgtZtrhx z?Vs+q7UQkM;o$bg2j7ALG+PukWE2DtLf2ymAe{&!O6ZU%5Ta(50z&8lfl#2(g%B)z zN*m9i>q6)Nff>nifIyf#ke*26d60nAb0A196}mL4v?7A8&@vB^zxNU7vG*D*9Ury zS<#e4bwtxlO`P?{pAXA9_g!)U#LN2SryWjI({hi)(|# zP;zOq9N};NEP1SU$vpDPFoqhaP}aduU%}-Firu4E76gE|oT+c>Cq7MI z{cu{$vh&p#ZTPV#p|AsM4J(3go>sT{DBTuOW>5X5hxx}pXFuhKeldLi?~hxv0vgFb z7tr8h2IIwqYviKVg+f_2qeSn5v(`sRH$eL+4HN_na{kQDrSsz47_3UGPA0D%&&R!3K#e&X2= ze8oGksis^x=fZ^>?HbmM#&$WDw!Er)vk#u$crTS6wBH!~e2fg!EsX^SysXq!+3lFr zwdtoZYFamR-q8*dz8w_lyBBI>X^ZBn-4;h?M(K1vAOt~J#U!@4tE?$sEJOiWEmv6z z&FukqvVwZUgzMDX-7Ptq0xO*a8qz1aaX>BU*(EDwt5;b_kB$y?%WB9zhu<6tppJxe)KZ56&(?f6%ix;a~k0eb-kR?L=5sBmS$8(ZBi} zZrC@a;c(YT$hB#Rys1+4=ez&>_ofFgaslGx%L}hw$B#aR zKl?cS@vr6&zf*Ex-I{>NEipycV=*E&ibueZKWF=D5s?JUOcZ(!+t^(?cjoloseWr~ zc7E@kN8fqhS3a_P>FfxQ)YQ{=$47^IXZORRJ6Kauxq?n__(vwBA%aI5= zq9I0RNRm(_Cbrl%bhdJqln-=Br2j$$p(FM0M`li_Qq6S4yO&OV@iR{!-9F-uVwA)Z z$gI?Q&e*?ry4#+`)iHIHOHx4=6j{u})_gu+t(LP<1P~HReCqLMj*iAYAhY<9#%7&A zIISTzausidcal(?tl*p0Bbki5YsakI;{MhIXl?gvqBq3#rjJx@`r33ft5Zx8q}C4) z6vUDeQdf9v`_@f*C=qo5bB2S;NTth0OJP>Zv)=O^(c$r7N(r%p+F0IXwV24j1i%%| z*ysq=e3z5)u4$#s@BH*n{RANVci;cl9(m+lgrE$X-~PnMfAv57 z%0K_HAN$0oA1mUs$#g!Sw?||05G$FeDLjb_BU|dURnf?9T4OfBAL%w{nQYXI{g<^i$n?FUtGgBHJ_j?!WUgKK?qE zmvp$wy*H;Ol*!z~yb&C8&+3ZhvE%$!7GOnc`~4JqAx<6!U7Ddrfmf0zhFFvhfX zYH$D2`Q?+Z%=Y#~jK848R|sKeXLkKaFfjxQ5)jji&%gZYt8YB`zy)pMW$E5jBjQc- zejHMl^fkC^8@}$BPTW|J*QSlE8U0;WGi(aKwOb{_mDk;ylk{Gt(fMe%PR{@?#L^p_ zvAXcBXyd&8RZmdn>S(A2DuR+3Qj*Aw05S0}#MNpnGDJb;NYF4c=6p+G0opW*@aewO zQh4gvbKQNXO?IPP|4z|~9`&o=|ADW1=%I(7dFJV#`pKX8sh|7_{SH6;kALKW2Oa=u znC4Z)jy92Vp$=vX@}p6`-~Y<@fB&=3Jo8gO`4d0=lRxp(`TL)^3g_IP0s=vFN%D7y zPo0$E&3DrTMb>a<)glp+{*Ewg&EWfgAO1H#UBBV4zJNLI(tdsTe)x<33IE-^uGNyB zRXu{7X$J(r0KfNPdGOOv;%|QK1uSU5+QKd*{QM{1{9gWzXYezx*}q?3!aw_DbDN)8 zz@PnEKEEqJ{<+|7w&iSVPxX`~wsxs;LzFFHRiwTDA^vOsG5q)cuC{I-dkr6Z?L;Hc z_6)qsSbSeEOHf3nJe)l2RImzAAb(!Z#s%o+i+*>PZ`_oN=ic#qAARtv--C;OIg9|< z0fatSN)Gd|9JY715nEUAa&Y z7CZCB8#EV85I{O&Il6K6nWtZV=)p_v*jx~%#h?oWkUVp4jK|D^lcimz>#x&DH(hn* zqEvW%2}c#dbq}F5mLhYpVPg);%?4o+f>v>X8w6=oZs8i?s-+tGiB?+y<}LxcrNto* zRjn=*9OD9UjA=Ox2S>-pN2@r*n3D1u%JzbEvY@_AMk&i#;pOC`396JE9E%pIxB$eD zvm6861civOx4ZL`Kl8I6%6$+0_3+!?rgxNfDtC8x_4jvocHB7FIyl=qyKS$mj!i{i zYisMD{V)H^5C7vI`Ow#V?c_~9_|U_D@%#SLZ~WFL%Eq2Ov*s_wERxa3MmQHrci?T- zkF_c#(GJjPv~6w9<`>G$@47erzyBaSbb7-ladrX!&DZmP`;pZ5zLO)G60adAQu*T6 z!`_jMf%WKNRIAt0EzWc8VBGP1T!sOuULVV}>F&sM-ld%^?#+GTO{_-la(2q%E#ZWQ_m_jEa1$;Q(09`_&_g zC;HVyrLNQg$hrou<_Ae}pw`^5NwS>B)iN_eXTV9YOf@3hnul>d>$@%`jwvOLz!PES ztnfQ&1qTETIm_HZXT>ZZME38sy%KEkP*QVhn#Az}zZC?8`yaUf=YQefzVQ6>2Zu+9 z^1uUc-P+oAe@{O0E#GqE;INEh%g@ou@ArS?Tdv(Ybc#tRD7p-7hwuI)-}7C6_Ss{;SHG^XgGOY-->M?U@(KK?4adJ6&I?tOXWZg}tgvY0^vK!iW~A$jy(5P-Me zrQNa#`K=Z+gm~Xs`G0*+`uJ1$_^WvNHUPj~d+^qC^1+A8RVpuAg?GXr^BMfX5AZiW z0v~${AA8w8zW3ZKkKQkL=gH?om*o3C%tr%k&!7Ni#S_v61mLUQW}3jQ8QgQm`jR@W zRY}H14UqqxyH4|8`sVZ}kHTkP#H$DJ^y~Is_ZINrIeE)jx%-Tq-$g`BE=HA0RJrpF zPclxl#liW>QduW3a?%z?mi2;&@b;N=Z@K%f7e4pY*11#1aYTWRLdX%MERq;Ppylyu z9MabQPD(6j=36S3lKcV1Bt#Zs!j=``3M2D#BZ@>|WDKSDWC4^uP!#r~0jQos0f3H( zg-7Nf)c4`cg)>(#UyG5|nh+34Bxw|cKpNxeOBZ<_5~o16w;QBbxa<4*V!Jz9;kcA; z#v;PQ3(q`vO^Tj!U5LcQ&Eh z=tV%_D<0+#ybVys$E)ph@GduXrkIH}gD8m{yNZ-zfAJKQgzOyvBpU!N< zH$N&4@oYtFK|D@WhU;w?1VqBKJN)5Cj6h9+w47w{s&ns?s%Kcr8bm_cU<^@)AgRD3 z*Cn_nn?XYCR!Oan+y&AiB%jbQi8iu$c{B(@znG1Y^2gC}fodbRmd98iCCu$XHdBcE>6gOKbLVjHfQ1dH$)F<7$vT1of9_ zsxmMj3CrHaGg}w;$EyR)=Gwd!5k+|b;bMCc4u~YJ4qlhVK2rb2Ygb=>@wIdBd4M5R zxwBh5#MN0o$_H9XEkO-kTWgU^VZ zaIC1TL=0$JZ_WA=0#O%$VG43ZDTsnBkWz}m3=j~LwObJYQ~6+|0=2nNp$Ln)PS)Zd z%B={dwBd|mZ8CEGBW<&uY7@?=sj`Nxfpa0BREj4E{UI*rqBI3f;m4JvPSKt~HS$bn zZwdzvi0X7lQv4@TCd-(e76}6&&qCk?z--Y}xse^Y4y%rjmfbA$^RD1!0#f0zuyEv* z66-=O0u-?C0uclvA`q6O9Hp#cBE*nU{rdT+`989YNm6~p9Q-qYfF$N}6YriowK^V` z2g}Y{I<}#PE+9hUw7t8tfA@vM<)D$Sc3dLso^Ee1W&wMg4{2DfZX@Es;ms$%_#6W-6>{oBE1mKsMB=G z5vse%Yrl1{SX`!pHRBQih0H=qWelrpD%Do;S}Zh9XiXDkjNjE3B_q-?Kt*WEtnX)` z+v3H%+c_Q%hSdR&%csBi?DBZ59+9c|mDb8w!S>4g6ywrBpW2_-dn~1E+?sDD$StXP zgw0MbZTJ;xDq*3bto?k)qn{ks&B@g^-x2Q|o?E^nJKBb>lqI!NA!S7NF%ek-5>!va z-1oEX`K;R3^P6R_o`n^vvXY zQi2U3GJBECs3BN~o}PRnjR->oQZj>{73rIDU7H31wD-ixH(70s*Qs@#uu)zr5Kve+ zgGT)g-2fk)w6&&kR0*rFu$L35&rpLwtb>xP5+oFNr`eI&P5HQvp%6}Zo-D}J=hi~e zH%TiItKyu(17i^ujx6OEhh71OZOm>92rqx6Pk`x^guq&#A|i>EhmQpohK&pr#rPst zaq4$shQ!$g%UGHv`c6VX)uKg6k&~VPjC#_LR`KZIxa<3V)|p&2_t6q_#yAq1QuI9 zm|;jsCF)~L`*&Z8`iFMugqahwFo%xji$yomoVEesczFXPzVy=NYu68mrWE?AlMYc- z5YS?N%XLH8%!)_c5V$OMIxba>A_*|Fcxv@lEQPjt$XW`0UX?SEdDCVjz|1;_*SKm= zyCsm85HmUD!I}}>E9J#?RJgolw4<=p)1{ap5c9_`ySshYbt#Dw)&wfeyp5L3bY%h^ zz);azh~q>R^L#nettF+jCitQ!_SLW5z2r#J&c-Rt;@e1mYtu!leqUrm_e1=0>@Q{k zv&#k-ua_?717NusWaBOC;+X-0>wKvM#muW%1`Zn4Wzp}uCHbL`sYv;A6SCPO5}w;lliBj zLo4TOtt{WRovvhBxtfiv^PPhqxiydhAV%#$h%S0{g;xFz)tlR>2>>7rO7=z)A|TeF zT47d~mQ|9JDTVrO4sIQ8?QRFsu6=1A6qSag$VIlmb)1EXAtn(P62zPYpO~wU+@=6Z z6M}#steA34_Oql2%u`C7GGGma0Qb)9-F)LF2n3=KFc4|WMK8iQ#NCVM!>O&9Myo*b zQ5pe|V6m9@3_H-Do}G&6cy;u~^{cPH_~MliNH$@aO_fvHrvhuCA#YL%$r`L29TOa# zub>>=g}K^s-P<+-wlJm3$3(6F0bxx!uanP9Hhlez6@? z=rZi2qPZKO&<}JLT@evcMh3JWv`jibxll#~LZ{S6Xe<2;Qv@-1f5|v8!CJ9Sc&hO4 zB86d+-f7YvTnA1_Ni1~xZNaHSgI3P7FA*KUK&z~EJ<7aKfd6PTlYxbb2NRunB&%Ps z_9N=QUu|9>k0OZJ1;Xm!GtG>k1j@My zD2UK?l$p{t0SZKj5C{X2im8Q5(iW=KASFr6>fU5)v>EzeZNL=FcTR|-$ho`D9^O8Z zm;{6XKsZcQbNvw5f>3czDe%E~Wc-d=>gt-vfXC1})z;!(ME zoyu{V-ecff$&y21YCciB@8q?fZDiWk&-t?ulcl;KEtN>xUfxU{{b%Q2Xt^v|ZY-rt zt6B)Jh-l`+8!oz(#YBo|Um8vrtnm&@^Q2sT<>cw_Cnc$fjg0iXi~y1A0F`sqz$ydJ zooYs507M8#0jWa*Ph10Z$Xa20uB$v$SsTcuB?btB8q_=8U*StDmrBJ{E6NhqA?0}M zS~u!VEmtP%gUO#kb?LMsF2AF)l-J=VONqzQ6Lm*~0U4|~b@!MGtieCIITnvGXr>Qy zDcb5V7dZh(5rKdp1PMTlH70exEPE`X01T_uY-cvahya0rJTM5bnD!v6mIyH>9%D+v z5rl25+Ab{aSd;Zlq}u2@7YY`=0*%AX-0rqyS7P&f{+y!7JLH*Oc4ueeN~DS*2)@+RX=th}~{ zg}3S9gX(A$5YedVJ0BSZoF(zjHHr9VNz7qi1uE#8#@3pq_2x-Iq?l05Cws5i`%4d+ z2>ULyC_bx0W8{P5afoRd(-4`3&z;_3pjDF9Xw!iLOJcp5r83diMKgNGx2ENiJ%-j_ zcCq49*_g-%-362`3f0w0&lbgc!xsOoZ5(aJ{ek4_bWgPm2yOeUEzL z25*70vpD5>)P_t1Y1p>tib2XX20DF#LFr88Xq>W~a3EZVvj8Ym8-J3RlS!njm=c_p zwiRv~^OlH8_Kg>xu*iu}-xEgb8O0}!FRmq@5nz*)m}{JRu2E@xlfmg~`J&LzKIl5R zk&=Ls%MRW9vn~s2+3vb~+NDh*jLepXsDW0NvjaKSteMN!sH|BR#+VXtOwAO5TpA=K z9+u-`dy4^70+?gaB_@b0+T%v00W+{jWCp+xNXwU)c#OHe5+gKF(dd9A;mDfjiDP6= zfCwESp*HuS3p5MZ6LrDb)N@3RwXBs;t;JW8f+_)wW zO9?sOej*dq#O5H}^#aZ-4jqsSZ2oMrU8xGr@?0zOJ8wV;Q^P`&n4_vZ$G;LUIjhGI zw-N=UJ`f@HJrQEx;h55L7}GeM*_)4v7mFUqc?(q)YPb<2UGbpl2~mGcF_~SD#ny}YkS@ysd=A8 zVv;1*GGC2p6pq3}KwvUll1x4)fI((9|MFJ%Gmd~4nbFL2TI zb3sTv93H&!+;cD4aefkmj5Xs)2dn}UpUEZ%hRH&q{&#Ii+1f?0gqBV0X4--;4erUt zvLQ#tDO<78HCS;#ssfN2@KyqNL0lO-nZ=<|?quT1Z(2Io*ncc78)4Sb?xNe?3cK6$ z-L2X7qQ7`{=j`rcxk|yD22S1wWeAJRli_M>((x0#7K`N`m8nY=T5rpG;~%jJl>o;; z_p1IiRNl+UqEbbyFlb&{ zN_yh4#BHoVDue&9H;M#`NkF>X46(`kn0SmSvarCg97W=Md)^1^GO%1fm>3g?bYzNF z0vwaX#JT~GDJjV|5QI>}auHx;8Ilaq&XrmlYQ%&pd`3l+6Lq1(3Wu`Qr^GHZ%ehNu z53b)zi3zZ?w<{@$f~!S%=k#va-&zd=Wv5^5NHNdm^PXn2INPQjLg|EMIC%cKmzJw2 z*aq!R^x7`*u0*uSCSl?<=gW=gCiksxo^JFp=r%!ETRqcs)?)U7iGn%Lzpy!Hvp74U zh_Db=dA0QcCefeTWSl6vTqC6sgw;ttn8ZJ12`&o&!x-i4?rdjkwp_(oM{K7gOWDrd zsS{)xfX*F*IEh7dYtVW%T6+R57dW4qo7N?Jc1*Qay4Jf(Z8yOcO!o#jf!MGiYq9-G za+6-%B-)?e1Z|jSxiZaBpfm&oKuA}x#7T>8%*{kSq3eu~(Ap=u)Hq^69#ob|Z)O%} zavB6fymKx(F^lKdLJvI(6K@v zV)qw;o7PydH9^Qes+c>{wvUKzR6qgqH8E)iv&|zU2hL^-rC5M5yMa&sU~_h-oum8E z9SxVo<-SA@ahg439 zq3=(<<9Gzr1Pid6!7qP=mU-^u{aMR3g8_^ebSiYH!2|gS-7oF*FS^u zSKc@{K3I4zm6aVxWN8{^d_*Zq%}_qP^oKDz7H% zy3l=mt{&I(xI42bW}s-9(5YTCMuFJ@EsH$0AW(>kya^G5d2+EF0y)*;D%8%nKDMka zHwq>KP6Z@q&O>ND!6i;q*@B42Wf>q3}q4m{h zme+2!kr-lL%8jC-HgqaOOI1^BbU(?-|2nZ6>UUH7LLdl;$;5_y@$61Yuv`uxFh+uHDUJKmQhB5rF^nH;N6HnQJ5j>lt!H7zi>JTupHw&4S_niT2>)^uYxOHJNHbTNI| z(jYW90_m&nZFBe7ZrQ|^ss(v7*GHOjczm^>)%~dOOY%t&n9xZZrH<;e_zVRg0s}}u z3}vo}&~AA+?O1K}%9VGKtB@!xf(bYWn_-b==eeczRdePPaALg){XARRDlIW^KDL*~ zEL);7x;ncuA`A%H76$>5M9R*T9POe*%Z%(R z!s3)zRc;+&$c}9a)CKH_h^P+~0wTefd*}1*Mc-jOI-buug|x6R5)p;mu;jD%-ZN4V zX1#Z{{gul>>1VSJXeKD*(Q>%K$je)|UwGk_1}ab(w+QPV6e!$R{L-FBx43T{S2kAt zHU7z3(qt(D%H%Pd&WjL5av+uW`B4Ee*CEoo(J%}gS;m;8`s1sgb1jn$H!r~r;0;e=Hu^@nZ>H;Y9%H(FJnE6SjN^Sz z*}thw;1WGN#`@el2*U}Ryle`?+?auZ6Oc=DEP!=af^Yu%TZct-7(}_p$0DpOB;Cmc zKwwNsof?s4NGXcuoEzV&#YS0fPsmsz?UN`4(_}epE36fd)Qo!sO7Keyj4fOd$Aros z0oDPpL8~qKhyW9pel_N0Hv#71%hNif8e1V;e`=mYkFbO~4Ugznu@WE6=k0i+{L z0z>4KI1sMJbhsLYh0H?*92xs=v9-8<cY9O)oaU$HPM2C zT}0;Dd=>;c={PM9#+yfJc|06E`|OM3$lg<(2iSHlLIzw{tnqZ%xUtOINR+ZdU}M&g z@1Qzeqwl|nNX-3f^r1vp+bQDU+ggexEefjR5U6xcnEk90%aZh^Ixh;=!&f^5Az0)l z0wk6Tr)K-xv!fyD>l!1+oOmy}5+cBj3b~Cx^rULHtdAbdU7<5o+JeVp8lw02` zCF3C0P#&1j&9cnHInGroPy|3~5#oj~yRLIi>NtX~czBE{99Yf?|Zx?!X3++!R=j}$O5tj4q&BeUuj zu*ks#ASOx7AV}s*vN$S18AV2xfwegXMA(N4)(sRCO+HvuCZa%O7?N>#%y~yR3&!zU zB}NK_5LpCi_uT30*KYQKwz|*}>BKt_F-R01#2~&(!%#X1%o+M1(Dn1Kn}vh~ z9dKk=39nvx@$&UshdA;0RAm=B^|Xy5*rEhg>pg9t%N<3oZYJ4i3`#rM_ht*a(i*YZ zsN01Au6C^5V6ujZ)=!DK2ugMQ;kE2!d<%pSJexb4?^^xr9R=;MMrE?G1lFKf8vGY2-+9%!Sphz(eHM)_1;RCo=8srp{U zjl6XEu-9B|V9h4{rfWHsF>q6G!HM&e4W8hpt}hN0-4BvvRtMyv9~R|0R@)3_Z&Y@u z8%UwLV+)>_ye3kx>^cW|8 zmv5$VEDNAcn8zd{7!YUMTRZn$SjGX^7>bm8TmTZfFrUw6DD!^SQ;z_h@N1VZzk20* z-v!C68=UG$u;trfa>m`sl+Tl~tHkeQ$SYEd@5W}}RFz?(cau6!1f&AU@`qVkmHBpa z>Nj6FVzxoh+5pLG@7{dT+&IH^3yx%G6B9xo4DvnWtdP-9gm~y84gi|k{&H#0MmHGd< zg!d6qrGVX(>L6d*z_V%}PxwT{^y)g+%H(Gz(Ux zAp_fl-`e&*_@nT3S%g!DCURp*%>xpb8|-+nP{4H6w%yo|o1{&INj$}5K%uX8J`Wo!-I>My{`@rYcy#OamtT4fDye6K0Njtk^`cvChf|$~PsqtS zkYb{NX5ehHnaokh=W;03k!#Fq*_Wi8WqAt07OdQDF&hD7kd$7EBCOJDO^sq5oL1iA zGJiK53t5wC2u4oH;O?@!9Zv7g0dP4aBsjG<4*_Fh6NB2*KLsc{-Xr8(jg;7oAh8P85DNYg2{D1BBD~9mwFTZ4ENaHxl(<(}vqGrZ0twcA z4`t#ivYC;K`R;55wit39TFUu$=#K@(K=tY|B8gCx#8qfmY1*!zXIE6|i;fn$X``&u zppuhoE?vbcWk3~~T&#Fl5EL;eBEaZ5no#0%@x&o6b83*Aj%0~2ZQ`@Y)_l%M`mNdV z@rolSHgcq!k*Qe@V`7Ek*s)X5A`B=H2)d3kWj`kf0t#XhNGTCvAWTUFXcQQY{)jnD zQ2=3xvW$rZb#6?B4vv+&G9>Ow7Oo;%5LtNt+#dCKbn8fq4I-KaT6E$3-ePCoC5Fhb zd-0wWAej#vGZ@0QvwqeGhCYVf*{S{g^RwAJ9v!^!+)F7*?#|(480IY(Rc6+Tc&8@t zVi7NjZTCr)X&$&%DrEUU_As(#24#MOdMBY68r9_N!b0*YH$8JpgL=jyRHR%ntgYC% znb?RYNF!jAhed#g#JRVQr}t)i+j9W9eKhJ!#IUdu_ykCScjC{CClx5n=+KS8(SP82srJ}ki*d)pU2PMBk5WRp8+zL3c z6v+w377rC^z#rg}tef`RG^+>@Sy-4;N+WY(2~Gf28OofY+FAFW{a!|B^=cKPhSjJi zFdzW{0Ccsd0JLeTa+-4Mz}j%t*?#f}7OR6iPj{ru-qk#8?Ew%LHeXl{dQKn=F67A! zKAHTLS)r;D#$w0gOx{HVR90Upq>*fZWwUxh4Py!cwP7O0DIlkn9$Xd%dA(MM*aFfIoWMik1yGOU2g>;XZ9o(wc;$v1$r4rd((!j3G& zv2)U)>=!X{1ZiIk0R#e|&Q3Eeoo&um;i5u>A}}V2NswjUhme&*iZ31_BjP;Zd~4oy z{k7L`h7eM|%UNVK#!>67lulhb3o}w0j-;feRZ;KHyFL(g2*AT~d3#K&I3B(D;^l+o z2-NUFPKxgpU?S*n+Kmu)({=aY8B*Il$OKdWu#`Kl$}vjoJWF~2^u*61NlJ!^W9^vm z$M6tU+l4Oj&CRPweFym=Kxo0pzjYlgX0z>C-*+KJj*-vpZuNnf z<<{Y-7bry;;${U*%5|A}J&Nzy$@s{S&{H)YLUr}2t}YM-w}R_K9#cY;KsZEB2@aN# zK@fp+(5uubkX<@E&S?Cmv5QLOYqE_H5D;U^dF3VLpmj#I@WyqmH@IMA{r)Tyb3wuK znIpsS`L&fnrim<&b1B7l4JXm{6df=bN+O3(i^8>PMJ!!Zk}w*!4`t0Lfh|x%?0C)= z#Ll8fDdvKW#WFSWF*N8baCy1Z4y?v{WIst>5o~XDrBfhu**@0N$o>@*(q!EWsb`fu z**P2Ipk#)d!yfActl`usL}XAsUEQ2Q{m$B5FAbPTo<(3b>k`LRlwp-5rM{y)aE4K( z3v6cy%d@pLR+y#NThoLn5D;gcguwv|iaHs$Y=G z5kcq!5h06&pb|zTl7QGzm@oRhQ+sb*zOFWY1RPUJf@73Gxafia@18%6^R1LvP_$F$ zVblF=Ht%M02@qGe4lW;#Hxmq(U%vdtwcA|?MxQQYw#g705l{iQwSnuXE8qu`&G}fw zo4+)7FEveCL?q5GDzHdZD85!HM4rqLZ0BwYZ4~=2S9ebKr3kwccd<`bq_G;@4FU6u4zm5Z_gRF2k9U#wP!5TzR5063*Nl$f2;S}*+s&c0_U4Whg>rhM+JuT;TJ8Lr?%*NWPd zr4g8-{|GhAxHO1ZEIcf;ZB11OP5TfxI|&+2m02+;}@BAfI>Uin3kmG>YO_*vNAP>jPMBB+(Vf6h4pa~1*N6oIL4inH+C z9#n2fwrhGSY@(tOn{%{yPAAOz84`v?H;z24q6j3BC>(92R;7yN$%(LH-wA*SQ$AcN zLQYHe$U1h;H)j5n^b;Rht8a|V`lf=JZ-l{8FF1=D^awZWXx@u6`z69Kbq@9xgdpB*?6A!{CN_BtX01)BGLVCrdW zMso&CDPF&N`SRtfK*;5>EvGRlF@Rhg08oW|j<4cSV&%~9n_PlTv4uFbU+UVF^6){o zuxt(l7EXDoE}761(X7>|CLUdCMh0 z!p=hH{F+<)ZsPbEx}2oL}RtRjy|#w09O zh~(Oo3lbz{_N?ABktH(sf#w||FnKSdA!;EIBH$S9&5nsRyGIo=^FRo4>F#r@n}*g zTNYB6=gz7hl-xvQ1rZZY-0*q6l$F*}SR-y>$pu{LIF%=W$Vw}%tFjrlmR4MqQ9f4y zO$wZwX?b4cv}3t zUF?{HrEt&(iKSiHvwYBvJk(w&l6tQWu*i^8gZ zQ}I&Dr~=L=Oc9}gDM=ut(1>3oZ%cYqRN;xRUK7a->%42QKL+Ho0J3bphCQ~ZenW`c zYsuM9b;HOXBSXG|CV~kBBCLIL9hWjpPBF$hXYidEXR?nA*-OJ zn346TsKKg^?|~7u3yQ3|bHQvYv(_t!dN^kR_s{PSaTt$>`SxrWc^10R(J-biP!}ks z#EAPB&RrXlwm5}_x*H?B&$zhk z@B%-th#PZEm%E-E0S?wqdmAKeWx)yo6Z5s($1#eVg!+CchCl_ib82VScb!(^k$FDr z34o)dn5B?dk28s_D-=yuDTz6XL}7;7k_*tVCmXSjgVsW`McGdo6E8;&q^E6+3@mW4 z9JO+zLYZN4iZ@fgQSK^|3#hBY4lI0AD+N_@l-b;vm`5Ym>1aeIB2CUPG7Uv7xkP0m zYOOcsD3Sz{I`16UxJ*KuDjQ3>WlbwDR&f`AR8$?Pm%{0PK)ddk2W3cKk_fd#Ll99) zV%gAS*RxKVYQZJU$&y+G%s*OAn{_L$dvpe&K+>)P1GCup(n(aE`D-Fc5E0;{7g1EC zuKJhEVWgrFU@k2b%#rjsU7FizytD*`4ZEC3%fHz?E9!`5eYYGVb~G+W-GDp7K+vIa zarKH4vUWWZbHP+gRz)%jiv+Ubr~r&WbH5ZEU2ZRRA%}e0$SimE5ddgRl2TpNbZr^f zfRRbNG`a_}HD_29D37a{m|_3)E>d{o^&5Rh^R8daI@Q!uE=mLN>HF@9on}KLq*$Wu zh=Kt0eIF15%TDOdc6;+KEJD2e(kn-Yt1JSk_jj2qmfjCKB7bdei=W@A3pvTT z!JFnVggEcI<5j$QJPyg6R17k$$V6r#5C#z0nVInD@OT6UBuv6$ga>n@d3Fhu$nT2Z z0}?g+>cEf*p+^iv1zgb-#nuubAADRMs>3m|K(UU;C<1sqBrnOxMhUEbmaMg6?M<6; zwuIf;4~oob9oK7{xk^xN_x34&MSD{P=y}3g7@PUMONsKzm8W%l9p}~jndPmsFaSnL zE_T9^^CcT+KnO4tV4V}W>*GxBd6+^W0N2F;Wr$xXhx0aa0Nva$?y$?laX1qs5C;a)WnLYl0m@;fZD9AZk0`P#&k zP~dpv)tJa#!L0sfU5toG92!tEDKNJdbYyP^VqI`kUUQo{xE&C)O_Zxy%P0Bj5I5yo zrlg4{;k-|jvt9)(Id7UcW1>g(0_DiloL*pewyFpO4V;1i2^cNW5e#jCoB3$P;w0`# z$uI^kI(jV0O$?lL_p)4dafz(CQp2^u#lMU1DUer^LH+ zgr$Nwij$`C>a>}r4la9w8_NX-S-FdFQZL14i&vP800QjqY%%lB&d%YjgHmG+iBtZ_ z69W(mpp_(|EIB7LgwUIlve2G|6 zf2lg6nbn5j$$e#xk~6tNu^_Rlrt_6yN6B|1pXPRO8e+sMvoNAYMFwcI8ws)tZVF{A zcYNpw5JLzIJVwYgaN)ETb43UMvo7pzYpxhWWt=EnT#ba`8d-m@u%H4bm!}$pGBWVSBnNL03XpG zZmg?h#cxB50sqA!je_*qm#k48$NewPz4U;0aSy43CGT?O+tI6={kbbec_< zgqhDeNPr|I*2B9?raj44N-z-zZ6FNi&iARk#VgM}cm0(sN7rxnT}NGKP%y5F`w)VF zB(bm_O~UvCkHjxzN`1OP+8K$4~JdD;z_*kFVJ5Ti~k?F9yct|vfIkE?!B z%+bjL*by#f-K+~+vk(Hsn9g51ef^D_z>GP{QF5z+2xmmQr*`))ojE!@6hw(hhmjTP zPGQ#1h=U{%-~bH5!_mRZFI^U}Ij!#f%E{MDlysfQ?hZmVlO}D9sihTb4-ks=PjBYL z%z&IpaCzEp|EMNdJvf(^9fA;wPSBF}KSivaT2yDP^0y%R!AqT+=49q-A#?y#%=#Nn z!XDI^3%cA9MgSO@hM32WYXX&wMuJ&~TYay#(N$ysOac<4BpzaFT~Y=yM$lC6qD!~l zj^1a9S^LFSyw%mEDlj;Y=JTl2fKG_89MTZe_KbG7W;!D12m@ebI2_VBL=&m2;GJw_ zptzhIVGc$0Pl#FLp?`@ANhKgq;1dSdlDUKC# zD4&703&*gv!Tjt_kKe1CyPkdZ(r z!U7x_BEpP71ct;Np+>6-+jY*zN3%m283!ddUJwO=fB=(lL3FTiACMKTBgop%%Qvnv zuOmxta09bYz&>EWTrL<~$=bmbvi58_}jXTUYIcFHwdK|NyK;pTj0yD=fox-jcC-vnaR_b*9608?t9>Bb`_Dk0(p^NcxA z74;{G07%G}-h2mKQgQ8nNb+$b)0Rc#Xcb2mMIHl4;uHc<00B5yCQj@pm24jb>UXn6 zIBOah3@d@Tkx?E(ZF-}n>bjN87_EBKOCf}y3lY^LTi(1f@Vn{@b6BK)8P!tGZbU?| ziM&sB6Siz$GYxBCr!}4kHR>tC6wKDn>-=KAVZ$$ERCecCB3$Pd2(XIIKqMvB?5>WK zMVh4nO^#=#Q95_NPG2!!DqU>Q(u8E4;9e1HS!Y;{d3lgkiWW^yq;lx87KmMj+5tz` zK$1do&rmpzEGn=Rb6a2&tBy5SXsWM=s+ikZ^ou?~9Bx1N{BQn$e(w2CJ@FOa`VIHI z{XXef6>Z~kM4>>a;90#Hh9twtUBEuTyhjEaRRNB~#xO=ii`k288-7l7v`tfTye&&k z<3bEomn{gWJ-^hR--DrAAOWMYu#)Va-Vv4?uiu*Q&M7Db0+(ZoEFlDKDxAOXo+l6@ z6LvFX2z{pu2LS+Kx0oY=NMr~=NKDA_$}5+TkB7y)W0w}MFHgrjtddedAbR6q`NE4Y zzH$9#2((;|r%vw^AO-q8@4mm&joE<#i*=5StPV~!SV!IHxcOR2aHD%JXDTO+f~L&^ z6~&XE&RmOGz3LDE-Io$hJ9!Rbk(`eV|gbvhx8jNYT@o;h_}3MLF)|9OeIlW*Z5U>I+!{Q4)@dTt^Lq z$LzPWr(NARZYphE0wPLEo6>HGAd<~xN}X4uH7!t09Gjc{njy6b8)>rF^n-Co- zx5ju%<%Cnv@)k3qC7(mdNF(}*>FJ)(cfUlS#)|uSPD2-=vJ^I@zHN9?8_ewKbW?DF z)Z=6ph+=u<9Qu57$s_gI18gEmYHk%aqCuQ&g(vi9s#UMT5Mef(^?ev6b%2XieB)D( z|GO72KlI_Rc-M!1&-qJdL*K=i07Dc>0L0k$FeVsc62K%#0)a3kC~#)W%s>zp3IR|s z*-K#t44n#Hg7!%SL8Q+E&&&~GGL{JH!4##6PzgZ@yT0!Nf-nLp8*(!sx|2m=WZDG|~bBeM)cB%&p)uHU{n!yre;U79g7k1>u%LU1&UBdr)AaS~9c0AIWM z#*LfDcU{`Ej=WuR?$n&9jY7mg-PPO2Kl;yp@{_;*vDML`@CblAr%tCNi`_GS`oH|6 zAN)NJ0Y|kKVd?kgHCAhlB&;=*E=r0;O!e?*H=)$2dpXONHQf7ZwCt-@hF8RvyJd1z z>+Y~xi)Yi86+ETOw~wwKE$1B_C%CnO^K&i25fR5E9*$R9inERa1tXRuCM3gNL>WdE z!4No2NLIf=EK*hXB6RS~!o?z=v%}FHV8r(qp>AV%<7jm}Bt#U%J_G<<=D?myx zL>Us#3}`823oLT>K_r8@h>DmEGm+^(RAGH3z}XrUIf;=W6I@GAEn`>E55aW17Oo|( zrOg^V8pYdSIA1#Sj6NV`{JZJ6Qnt}0o@w>Kd7VIMusO0eWIIX9tP29E+bEizO%hN* z-w?>n98qc%*j6ePXJ<4xgh`~mUj(z%63ld(>5Xl;5@#G^c^7qKkV-(x@pW8`!RSh) zN)~LlF3&PUDvUBcLka~HHgbrV{=A}=#qTkB7+Y9|8xBAl6HG$s~FDaA3B?K-6xfj1TYS99EUU}0%GCk zpLp)2r=R)wul{-*IF4f)mmEj6EW{x#kB^7Lqv7yox;-o?rQuePPGn$-F&-gN0!+Bg zLL8F>Q=8qoasA4bH}1XXv?3S*r9;#z+@CKg;HN(G#3z3F*KS>XKJhW9L4mSM;k|oEOu7+H>1ad+N(aBuNIl|{s?1i7b}=RdU(k3dnFq#$dM2qmXX0h{V0d*6EQoEXOo+xnB5j2Wn-KEYhE#2CrZ^6BLH=et zoaEu50tC1;j!(o}VKxaFYVrfi6PEp_*hf#1rcG?%0u9R=^a>xTjk%WMxnPWb; zIh$T>dXR(1G~_qq;Y3i%DN|oJ7Asv<@k8}Si$xMMx5ax~PgO5Q^B97I*);V!1$ye4 zE6>05TE9BjLV@Ek41t*?&JUkC_^s!j`^>L?v|nuX^X-50FGd0u9y@}Lh+~QgMo!dW zijgBTM>G$Eo>-IhL>PpTB@qfDa7-o_h}r=qZN7^{G1n7`%1X30V?A4=^01Pw=3>=| z2(E^~(wdNQM2PXlC#(n}6i8z^)k*|T(8c9aqVSRM%>Z*|MnaG%0z_NH)FH130xb|m z5MCV}Ub%9W@a+m}#Tt=QoW@85*AI?=<3Ie?!Sz>}k7GKt8y|srB}bQ^{@iC@dHEaO z{=ivhYjbih#|JF;K(XM9Kd+J-tK?g{_M9uW&ac_%B!knFncAMo)%6`TJ)bH-sX?kz zr8fG)&uuR{!pny%1|+0|qqK@C1kx!%V(DB85(4aRZQ*uhCsH5*G3P1b5IM1Qp#c0u zAC7`N(D{bZHAILgpEp|IHdGaX<;9@a5hDo@;_;9USBU}V0k>uyfGo#!^Kh8=VHU6t zcpTwil`e?XL~2xNaN(VnX_Vtzmq}svz)0<{s+lb#X-q@GA_`fyelcc+zb;Y)$iU@9 z<;^<;C}1*k74TT-0cT90x!cio*8mX%V63WGo?r>2Z5_KIY?GEpncl-5o8K6Ev(QAl z(%CAh;Vh2rS?*pyBoGEb@~=6cS4#VYD{WXT+*eiPC>9l#oADu=!He}yO9DdI&5%ZG zn8zx4j*7LfVgQ*YLe6O>txcq_`1S#Z_4-tVx5?S#=gqo$4yDME!U5_BhK!LF9$Cy$Qo2`ww zx_+bI?H9W<5!%{WY%k`^S{9#>Zr913M~B+qalUWxY9l1;%ugR@WA@ z-ez!(p@gSE#=>R@ zBrs$hF|VID+4|SMms4Ho0ZIMs%gC&CF43$HB5>0`HW8%|7GHgs(o7ad4tOXAONv@fT@gzT@$@LF3TEV%6DlW6s6s4WQ zs2)WQMEdfy{Iu2zOYu1%5||6 z;iDH60@g6irirKzDHUv_2cfKQjioAZyJarbo4gs|B=33G19#tZ>G-J|JF}f0;w;4( z?EwR&5m6A+C`a2D@44q4@0s;L0Xq$??mDDS&$vl*dHNXzOo^2aJe$n|5in37ooiA@ zmeCs2v#i1DK!~BEuImJW6kO3G5d{iJM4{_KN5M2C-K-B?rwe7*b<~BJI1nx7-4Lap z^&kDEPn_Q0{fgiF&S8x6`3$@6c(v-f4v~mxYj^vXe)boC>DhmB=F6RcwoGsyqht&(uzPwz@gp>67oY_>Kfp*9zM#W%&biZ0b+D{V2k7_2d|91T&IuO49*C?!5P9AXp^=mO3A zfUC5MJVf4_g=DaivUnL3-w@PN{T=E!Bx>M|KlG~k?D#Kg4J?Ww$=MH9T|*QOC2!4^a)2g?tHRm~ z8=!d?ViS)FY-tlQXtJRd%(DT}s{eD+!rIUbZHEmm`@D#bB_)3Ay%!#S+uL5aa&7x~ z*zdOcAfcOaj7SWCBgpab^5I7x{hmMfy#U#PjFtmu%@h4JDQJ&W?dSRa6qSdin5@Di zySyUO5itvb^^Q_z!{yl~C4d;22voG!b)-Ud0qJsQEJg;ztyxG6OmOkxdvCpddvSWN zOV;KIi-oSaEO0ywXYaW?g>ZQN+S&6LnIlGk9&t>NSS0lGFaw%Xzml<|8Av)<-WXO( z2gA|Gy1E7i$cy6S+inL>5fbD9A)^k z8=tt9zD?07?ccVXszdh;b17LLZ039x3xq8;IsMo|z*#@*`|jv?xN)>nXd0oSPPimf zNQ1$GI*AoiEcL-mvIt0mH_T2mvhA^~w3 z(`w|7FedH-62fv!H;zXj(u#fFQ9vA`91d|YD_oTNNpNkl6m%&9OXapBc)hcy>FODx zX7M2i+xo@R+oaAwbkXnB=&#)gEM$CRY)N(miy4blxoG#r$49qj z`}bbSaZa~`URsoYhM=q|F3};vYJv>bZ&C9->I}2RZ#5H!#scKcg{2~^hFB!(7xNHi zA&nhTPlyRZR3!-#($-@C)Y&uh?S3`bsZo)TNdSX+qd6lsG-O5q6DNK25(`9NmLUou zbRBi1?g)q}reqwzoAn>Eij*&p!F` z@^}?GQp`)ykOoBIw14{aVt4P>^;_x8*>2vY#E2+Cj|Dhi%scEl-de&)2*Y^1OvAM| z-ne~mv^clpn%LG8Dt)}G*KQvj-UepGj#~&bFfMlX@4olE-l+tB1KzmxmRiRaZhx=V zt_Dt&UHMkeC$l1F$WH}M2H;o|fb2x8EUY`b>+Wd_|m?%FAN)QF6^>lSe?bPBuebWOlDGG^RO#~IfMfrx&zC&bb7a>fGm_=pq4 zEBfs1p-4O49Nn6Muk> zKiuDEKox#jfBAMb_SRqXufT7`yY>B9>i`eXhzE8l6K=MfBRu>B!L;Mggb*>1jMI4h zsQW0&ju+ZdB4r)C8xI~M0Duq#KAFWk155Z6eG)(?BZLrSVnp;)OL{73jzyJ46t!m7 zEL6ii2(VOJPsu<8VCL0b7~g;I64bmkKF8sn%(?xYxwyKx`ryNPUY1h&QQRv_SBC)N z%qSFuAOuoc3yhoFH`liZL^`|S&-?ve1ew`i|CMik{PB0Z@7W*EumRNU>)-nNZ~xYJ zwF6t=;Q_<*i}`4T5{@1Z&;LVi&bdB6mRRtW-}*abtt0IIJbic!6@|yz!~UiceU&-v zWIqXfBv|i{ots-}x-{$PoNiZY@fI{n?MniO#{t-xiMbEhL{bE(+FM4##|b_7h$nt> zzehX-kDl8Ye;mB)@QBWcXNF`m8-zT-9TVg2(r)K+e~cMIHBZbU5CC&Aw+CQ9KF~Fe zlhFsIXY{N{?B>ikBP+W%-b0U7G2oZ%d)IX3 z)jpsL0T4lmkCPR8{0zid4{H#Dm>CnnD3pa0lXQqY00Jgr0%9fvpa4M-ghbs_NdzZ8 zLyrlBV+OH-8$N)j^b`&l7Q>kGkY2so2f&nt=waE^6|tMm@btsyYi)=7>{ z)?2|>kGi+FU_K}4$r1W+u44X*khn9x9O7&fgOe8@oO@LDhjT67GK{=M4Fdo`VLGZ10*KH9I+*nIb{xk*bYi)jL5nq0;S7$3$Ep$dQc3ZS8}n_Y)T4}^2k*nN>OT!n9==6-Xq*}O$5kUA-y3>(UgBYvNRLu1-U%o=3SN)i__xZjvxDF`xt!mo~D`HBM_PrV)jB3wSba6%+3ZP6~|j-E(Ggwh#T=>1BL^Je66Vf2{F zb@l`IWTv}3SwW3upG?ez z5CqfZa9EZk+`&@RWA%=mHvsX)^XHB@?-x_+*q&p1C{*Eak-qJ6{W0%C~D|~=+zIBMd6WtqUH%ZT@xSf}#-dWhq-QbArw}9H>!P9U| z%z5ZlAK+~O2#^Jdj|I1dyB!l6{c(lavoTJ`N>7hI4&EK?G+vLtf?NFvkObk>Z&Py! zfPK+YBRrPs?l7;~&nC5~=ISAYeagQ!>xfZ;BRTebft8~`No z36~E&i%J;JVUMTD$I&U6*eXQSjJkn%&nZsx!8%U}D4|KuNvOvlZ^BhJ#(=TDEp4sU;bC%`Pc zGZy>OR~&pQ9|?f*-So*X$AdiHe||;5^cYV2R@6h#Bh=wviA?F=cBwj->PI;(HtQ)K z-~rA2ky8Q9psBy*f_{{lFl1(-qe(8)kB$%1)vqL;pMOk@ z-kUeq{c1ORJNaLrnXlE8FcCIC1~T`P%N!0xJIm@U*Ew@5&#hU!OC&w=;UD!P*p2j$ z(({f6xlW4gMA;5^_P#=YJA(%NL38vt&+|-4k5lE|1B?CfqxN{=_Q>(bNM}*zqdncD zA=cZcvv&K&5qkK56*~^8Pl@m6If);G9q25t?xAT%$l}|k%JU%Qw9t;fO1$ythByv* z?D*s2n42oq44c6!BZ%e1Hd~Q%#MaUXE(=#67o^cbHolm%7i`lfRFkS z{OZW{$C9wOo8NO)i0{4~2#|*nvjn+h$!RIG_Z-BdUD(0TD752l zJTQO)_!vm|nCXuvUzPU^h4ZHP1^iT$$!2TEjeQ;v#rP<}v zi`QS=Ou}*WJwVT3X2by0h$kPtPt&m0bzZ8SHub$!1b`$$K-jTbeSQ=A`6n;e>hM-Z z;^VZh4h@Gq43efJ)6I{+pA&!ZwfDL$?9q$!FbzX^7drLjb2%RQ$Q}i;z@w=WekI-h zt*OE}EAB0zr^7i%3?GCw4|8{XbgcVBY8(OL{Zf`vi&=AM2IjbE+?TGd!$*7^e~3Rm z&LSUp*@^f#KK39a3s8M)>VFPF_A{d&A8!$lKdT4!AVGShXM8*pIF4W9=+?Pg^yW|j zVaOzcLTDD|F=ZSWt9ntdW<6ZN9F}&>K|U!LPx1D64voaOR($U+^-ju-ZkjlSW>|P% zJTlT5+x=KQVjX=QXR+FsqIl0d5qunJ{Wyan{;IO>xC(~&{{aJe*sOn51nBu??Rk}E z=ap#0TU&~w_2Hzje?SxCyES{f3uJjbD?ANs{B!{MaX$SpefBcQ_4R;VnwbS6f{DBujWptAF+= zeI{2@t_9+h>ReA&q{ zefA}GG$5UvC?~^h93jb%mr@u2k%dlx&(pm?AbfnVTF0FP6!j<1E@~||xBDai0DuvR zj%8xFT|R#@TwS^O{eDq(KUV6;KaYjnDwqWX9~I&4^~*PFDTI#@38#fje>QTKl+%kB zZ(3`|MD^}e0$`SolosKmKKSkA-uNnx=Q#=-0lz|1@Q@Y+56k0osOjk_iK?x=Ad1m0(3j;;lBLJ6YdB7>8}!Brpv}roC?z* zIg_aexCmFXrRZt5fRD05j)Q{p1L9{Z;0cjIh)53!obe!KJbGLD$`KH6m-eGi_J`F| zI@$xT!wKnX!@DV6ANmp+Ay61FKqL06R`YzyL8T5qdpvZ)Mcj^b6O1MM6reCj8-!!Y0Kj=wVD9^Q$y zJ%6u{%e@DR%i}#mKt7&@9Z>)siVZ;yk(fEW%$0~F*xc#VK%57gr>ru^2efVnSay3D zbP<~R>5zFungzsafe=Kdm3`prjz|C0k$w?Xoq+&h)d0}U5~17e5QML; z56?b)V&;sn8PcJ&z9D0P?d5iQ|LXA5&(^Z2dp>4?efwO)cU1lFs7)S_3}2!TJt$i+-lC>GTmbk`0ltOFcpQR!#2?5z+`H2>FCL7= zrw3pZzVT4^Q998m5Fra+SKH63?m~Pzg{d~3hD4`T9rKwy7^BdbDP>UwfbeE>X{T$$ z-;qq1olMB_Fp?$=KHfxez9G(nUpV510v!ze(EN6;ukP#G0wKmkSKC~wH&p=0iQJ=l zva{5YP~c$f1u`05BJq^1woIIR|o{q#f$hzNpi{pe$;?} z303_VoA97UK4bPyR|TDnE_5_By)7bqbTGv`$h_msC;HWU1YyU?l5+wnzq5(O$BV~v z9f}a|{?5}uNDoh!Ip8}6;_OJk7mnn{jJYh+;2uYSy_lk8*`50gI zUpYnY3IQ^)X+vOQbRuLzGp%iDme85e9jiG2FrGuP!2smsZz6=ICp8qHouyq5faESS zcXJ>L2EYmgo<`_>*K!ISMAV3IP;`uL`jZ}*F2ZS=UcS0}_Q8_~ z@WA`E5}*(UL{ZB_-n{?x4x`j%T^nx_1$a0Fkidz&7$Hc(j1-{z{q^1L;iC^O01N;` zB<1vzzkK=ofAAllKiU4?zy1Ax^RIvB)$5;oJs@>kN2nKb1qdd3`LiGXul^VR%YXVe zf9v@N&qaoR@DKj(-}&wDpj&qhypzLsPV{-#H+MGsyz7I0=xNUi$j6wJN4N$I@H2qv zB>y;*01y!57-tHBfnQdYoZ?gvA`M5lwB# z>C63NVid$M^QK5(Zp&I9>Jf-=5F!9voAwg0^X`v*v`27I7@vrN$A9r`Y5)L;s_p@U z&|3A2+p=G6I})KJf#(;)CNm<;#g?`07j4yRX*cdbkrM7#Uk#GN?X2(b9yAbi9@m`K zh>xcX^p?@_9Ell^Ig>r7@qFvx8Ncwh!RKwB&cpf?&xgBtgBHoptJRl+CA;h=0WDlQve@oAu&-vOulhr#O5D|N#3x|Vu59Se0 zL1d;~;@MS|YR-suoKTJ`KWLGHrxheC9g-P#I3D78xQBV*Bn3;M~?v!P% zt@f-X06}y=@_&vP1`G|a)rZU(KnP271egYS{{Gd=FW&t6-~6^gJDMcAuDI`1l3cz2 z!6(Gc>VCQ3Y@WrLjSzu^f7eD;{ z{~%<`a#Q0*qaab&cc|;R2_z!KcDVWZ@Bhwc5fYGp@8ACMfBirIpZ#Zl_pjAb@u6sZ zFkwAfBfz6f$#`tRf3TGyLV%sLLh-0qKkpBjjtvtb#p(1z2s#_ZPFbKr=Q8T-`aE&A z&N1TW1=MCt#hm~L;Q*@^1H}hdGz#{5^GyCEMD-XRVjdpq%OT6;jE=NDu7np@)+QzdYK0knkXMy!la){4i1KUntr`!18G~aD*%ZNRO0=i0I;<(?IBv zlnC*W(H-I)QV*OY32{n?KVbxpg({smQV-A8k2IF~I)x3ibS^IH$GYBQMoknpNmWCnEJQz#~>3fe82rj6r(n ze!6D}-}**R85aGQ9{$gV&pM8PsuNEBbcY-}Z$j$FeBV=21Y($LSg<5V)T(Y?uxGG< z5JsT+soyzp%7p77>v;f+7-x5n)|!f9GHR?*4GU-Av#6-jDwEKl^V#`}tpJy@yx<4JbSm<2dd< zHOK@3giM$`G@yA{uY5oG@tgnM|K{pffBCfwNc&{dWz2oI?0U)-)AKb=_UtnKT%i}UewGUj7H0{hqp0|}vbvR#zP)UB!raD*57 zxjZ>dgpackIHEq!PA!J{p2U2hdjQMx$d|!z(=6K)6U_{b2v(+@v(=ePniRb zQMt}|hMjjAP%n&_@X_D=7~yyx6gi!T<8j7&AFt;CJq20xFeoGh?_x)cN2`=05ij0i z>74VC&c*BlhxcrgBRt2AAz;VN)5);Y2Rw*CXFxn605U-*%b!O&{dDf~t%nc({A8aW z?%qyOSfH9$KtgDJAJ?l53WVs@M*o)M=odYTal5V=!jH!)9t&YQQaen08|vQogaKh1 zhoyuDgfoedR9HJd(A}dMl38u9?%U#?5vGBex-6>8caeK81NBs8w_b*yqIm$YnI6Tj z)W@>m5VZvWG&4lXf*#Z&)EZ!bhno=7G!$Tc>Dn-txq=f^hAF;gsfm;6f zcmL_X_?Q3rfB8T7Pxpsv?jk%T7CNSq3LaZkb#E4YB69Ygh6#@maB%#Oc9CT@ZyH54 z5i=7rb=#r?%&V$-7Mim3$+USy#9Z~wee19CH1frm@+%uBg!9xW8*0MJRPFb^Us&6!~!WF{sIfZC2mUM8et>`0fMg(E$G zHZ?t}5Y=7P``csZ?OoSjpH9ygub0nWuS8(|I&x3K&!12GVvOj0yW0n){hPK2-|gD0 zxp%Z!uOBBNB3zr-=4&h`>;bL>Lf5 z67#s7>r#vvr^G|z6I|;!sp&_qJE#RSng#PQ9N9hk1%rrP3m*<1-WTyrEeRn2pN@ES zcgLb$)w(7p3uU21)T|>Du&QZb;^Xx|h|Ilj_rxp=XLlA6j9G+wFNJPL&we1dgTwKA zKM(GS!u)7bJ!<0!;F#WU1RMdP`B6tx4Ily;gvmSvU^B>}S~C~I#B`j_IRpSR%F%9S zX4L_-ds4z3QTp^Z5F(g?5Y>8#8moENI0HZyGV|uRs@G;7(e!BPXF?=kqAbXadYU!W zYJI-k1=RiN9R^nQ-cPxC*UFfADXstD)0h$?ATaXx{`6B0Boc`vA{B|4PN|ZH9{0ER zpS;+o-DV&!dJGu0E|5YWL=ZsDt3^{k#zeXk0RdPiqIl#?IY}0XK((*{CPV;ta|kBv z6`n9Qb@Mn8Rv-|~qi3yc1Vy;N7DUjRBTzHTLQgNVY1GIMU<5bs~4_jltLcXMrO4!?LcL%?p3R+>U5fXDOc z{x`n;&LNH-F=pBAhTFS^n8ahhZ-4pep%^qZViM{waPNN3t~hkVld9oZ6A>d5b-kX2 z6H!i-gi2{{F$^LE<^UFE9>@Gw01WfKK|i`338OZ52Q?!`5pL}qHG?-d^^2D?5HTVk zq{OvpASR~%q_k%JMq#0dpg=msAawL=-}3+>3rF}7N*fN20ggnq86h%bzkMhW35kga z-2)l>x5XP{89$RR~o=b#srnQ(Gq=c=xbx{@q5i%UBHnm8JJwVlo z5efVGXyzi+uP!yiKYGGA_0AZ}^Y5^7`lrwiutRHoI$E*(kAdJj3Wa&p6 z5(tx;S93;yK(&w)>7aA(5TjNHLSkyo5rCPRT9418zF)!PjR-;Avd}|kJYX~8Hq*^s zt481XwWfe5Og$VDu|t3{F{=7nT^J*xs-s1x*l}0T61Jv1DC`T!IeCPex7NcA&=HuA4DUXxL4c;FwI$(k%&)K4R{J9=pT4+> z=DlK!7VfP@k32qhG$#cAIHlfDYNPeo zR)AR$QxakT^QcvUm>Jz32*Jle3S#tBMGtR2y8~i)gc&oNS=H8>Wug}uMX0s9%tf2N z{OsjYmh|L;)N5M+!My#+AHGP#kVOV?Byn5`Pk405ql5Tag_s#2@UwnR>22R53T3gis6rnuiz79O*kw%D6Ggk|Y zkd)4^vuPhXI1(kooFoETvw&EZqG}>Sgnh*|gCl zSz0C7j@cq0Vzn?2>XrW*W*z`JF)EH@+ONeN7lzhj%p6)Xx1fOe<=v|Z|r@Alj~bJwoC#Smr(XJ$O5nGk|C>yD3<`mdm?t9gVI zai0bE5JZDe3n6kdRWmgf?jUjz3I`$NL;;}9`iROrT2Y7~CSsB#Nd3Mz#({=KtqR^f zBLoO3CnOk>bSYa;zN+e-YAK0DxKGg4>?j3^FbF0RrXFR81db36s(S1IdM*J|sjW}{ zNm!WXd0mPEA~PjnVL~Q8rrr`!aCbTYs%apByQ#SY6G;*T@Gxz50=J^6b!D-I2VhDb z=t-oRma66f1fz%pxK^+@*`|6u1g4IFX8mgcVXCzuVIC3!_Mgw)TeDi5ngK#>R;vZh;jA4E_ z)RS(talhn%Tn*4*5bdoF_WP1L1!>4KFSS++4|7#DH!o{3RY2U|A3WSmJz{^q2iJ9N zNWucb`0VQ9)$8kJp4+~A_0+4C!Vz)qWSBS5aU%zXocwDU`5MZK|)U57n{|&0@0aT$ZrHkl2 zf~gy2X(=TTcAF{Oi=G}TQ$iAA=;qaCs-{h;{|~`hixYKVnMrzh4+}o>w(*+fl}xvRHq)168%J;pb9dGiBkj)Q;J`+s9vgerEwU2Yvl!IqaLa zw!C_^zq@-nZI)$u@#3Y#;qI_p?Y76=`^o3gOOGV1s?(6we3?rc$L`80OPMx9XOpXk z741`2HG>FdCZZ%12vLu2^`?dZIi)44ngzhqs|g5hujk{m7y$rt2Dd0{Rqe_PWC%bM zVInm1!@*1yyIc7fQUh)V97PR@dmOlHpZ8f$Cz+R$lK`SM?KpK}vWUd^^m4kpTkj7g zFg)kl)B$T%Of(KdDUAuYn|!ey_WNa7i!gVasx_y;X4Xqfs4OfZ!K}?nZGE&V ziQP;@SjZhpDZL6d4`L=pYb_LVPJpn?W!w(hnl}%`EDRB*cFa{1YG&)&=*W%jLQl^_ zcGXrqBBn8s(!Jl$ijrRqbxZFb{Jg5@9A(H9*t=3}Y0eW_>Z&9cYSL z8z2o?7=a194}pn02bCBjqLn5r%(SfQFlI(t%L)L*lqhL4HDdq~e0njh&93hkAn@U2 zN{q1P&9Rww2f9Ttksx_!1TLj^@m*_1LI{+FEyAr&BN!sQU(D_Ra9A5*3`zPJNAj?E z#c1rySQ7$UI7Zj`p#%6@me<#3Ap}Hdb8{o2-U0OXXswM9g|Jlxq{yVrBZ8QFLsLr) zKuMAqAmFa7gqVcFqqW*pHnK8TRgX4@|# zwbr`|ZLRC{TWd@-jsr8PYF%5aN=yfYp-IX)zzC2KTdl=Br`)Fk;X#i=ue#*d-3d_L z`lgVK%?+V<&n8R|vDZBk35zgMK(Gjqug%FTmA0(4shL{SmLw(N(sZ8JF=uU!kR-`r z#{cGb>$4~0Zb~0K8E&o*pMG&2t&Q8u%O~4uOyiUsYHOdrxGl{}Y0sZd5O94zv(P4IVFJ@JQB&8d*KZDpD2X93{D|OQ zYa;+=Vn$AkfZEj5&8nIcf=A?(0MN~wn){j(1CpuM+L(ofIf8;rZCUEFmOcyIFKd`* z5n|GcfN1V1Nvj&g0l`(Pxe!?#VKVc&5&$BVrfLp{Qko{_%{X+EsiYJUD4dcUO08-b zB{P}3h6~X+44kB@lAsd-Mq2*})2oe&+Xn?h() zcO#@O&u>l5h!7pHnFSIfAXGC$q?Fje35l6%Q=&kF+Key^u(wc&1ra$BLafUgr)BU` zs;eSlP6?1Is<{*QxNoYZ&7~rtN6gF0i2a}h_i8OAc7W1a1R!%C>j@z<*V0s+w7t>z^2y0qfp z4uH#A9ZvB)0B(kau6`)BCuJk$ver0bldCTC+$VIcmRgGgq$H|VtIqd#WnDJgt+}_> zptoG=%rp!GGw*g6Nq7{Udpy(s7suyPO$nor^P@%G_@&=6=6ZEhd*F zv9Tz%$z^hz+uSm_WTVWc<`yzVMuZ~#_WN^x?6Jr8+2?%D>-~D3*J+sIuD?e43{TM5 z%O1NdO+Cw(-kBeI?<(xgm-?D4 zeL+!F#=_62>6uk4CGtuiwU89Km(j?&N#nbn`!El9reDIz%3#(q@$$Fnq4In=Pv;8) zAMP>jwI3v|MN+UjQi;(9DT_!u*%W2M^qmS+?B34K)6%4M+G?WU z#k9Y=z7D2FzU|~v?8mWm`8x!-i%flyY{4^;aeKH=kjJpIIh`f5My%M+%G zFee9NUj*WYu&6P?sCS89P>@(rRKcR{m54kwx0DtV_d*=ekAG41pJ;IUJ4%p}wdYa| zeziO#Mw-G zpT5Bs<*|5!x$&Zs$pl)^XnbHnoCy1*y=78F4@{;81(F*W(kU_UCoh%RcW9%}H~Z!9 zz<_scb{`~kh$|ZRFqM1C!vq1vx!xE)j=$U*Ns0V_*_2=4;fqBH2D=Paw`akiHL4yj`6@g(+Z;uE;WRQ_d6A1qf}}2 z)m#mzARrQ_spx%}U&ITlhFlOMUIe||t-N$yFh_xvJ>@Z)27GxLlQ9|CG4oWL=kqN; z7)(-!lK5t*{kJo|sAkus$`n-?MZ>v!%(S?~R&N9l+v1RE_XCddK(eeQBqWr$WtQ)4 zjjCF-gx;Mw6nb8l-z!fu`|MS@yfgFJ-C*^9UmB(^jqkbMN8f}0f=dX04ql(F9o`6s z&g=~v9^8>loS%@eD^*)|WiMcq?AIA;oE%Z7DRS@8pACE&YngSIM+U}I0?ON5gb7pU$_}_RPd91Ze8H=$w8YDTbX}POlC}-lVVLJSNkEKDzI?GFp#L66n_geA zOy=Xa_Cb^>X9&15#!m8}!5>Yq*O9-y4+a+wfrd#nAVwl|K_0K_II&t-OzvoXa0GPm z93q$%K%pRr%M!RL0v!BQ&%bSjM+0Q&SQ zYqw3ILGHe`7SdcZ%SZa*=i9|h`XrM)P_8dz%EGeFytsdLw(j8H!sgHf zI~ju{5`9F2LpWQzUy9nACW@Dx#Df$pDs7$|vPjccZy+CakXdJ_Lo6UVyr0!~s4HS@!&47bkC z=CYlK0Wti7LgaE;PEEl?(5^aFrk8tv0RV##0KX5RH9bU zaX!LInl?WWslVPrCk+W%!drtS5wOaz0F$NSoWol+Q>VzwN6@I#;^13xq|FW6FoAfS*>z* zy3&!6-)oSj;Ss3gV|h)!=nUVGj!*Ov(6C8-)cF3$!OzG0mt= zn8-bKxuVT_6oVx0$0b}&xfgV3%nhThX3d@VcImLgh7YAbc?xB0mOk%Lu zN|z5`Km~pV(n8kNHW|u`S-^;jo|Y+FKyE}Dn#3e&J5GqQaplL=hAycghrPd&Dk^O$ zYwX}IkAf*p-$9+-j<^}|vRZ40JaFje)Dj`OZ8mYMVX>XEo0XL zQ4n2MJPd3Z;C4wni`Qy54{b z=T|{KfgG(mAbplFbGX!O;ji#P)$t;X$3~tRU?(M zu~Y+%$CMYW0t)MOjtP7Jx3Qcj(GivI<;#m$zfKncX}JxtkZtmK(#_`*M!EUaKMv>*%*DZ}N)P@1wcxHUJ(p5y&9K)JolDzeJcRB%)Pi#LUei^_n(11`w-Q&d%LdM>|+ zW5{Qk^eW<>G^bN=389kEG?ImfC zY^r9^(EidFt&DSUzRksKd}mxzI+_YmGVLzb*_NrXaUMl9+}M;*qihz%svk+jt|bRke>(&p7A=lvXDlnPO66S&>`4CB5(m#L%X zPHom%ULp17ptf>jbZxsI1wG5q5UJqjzvetHk+S8`#`3Sw@o2}ahVbCD#V%ePtv9^w z?6H>>RpD`%fw~I8yAL|)3utD)>jaew*65PuKDRM3a zFzURzEj@B~i9stb-RqnAOD?{1D=$xwqMjW^JeZBye?PmwCA;_d;M_#H-R<*ueKtR5 z{O$A@>0e(+QuDv}rIY`DKkYr0dQuoMUOctS{>I=pH=z|r?Lb@fT$9$GKTci$}|Um^$wxdJ&we|CiNV+PSSSJUBU>um#~oqp_HQNf&6uIaGcd zBcEv>krOt#kPi<^l~X1$;Ge)f^XFfHElo<&lzYVQp_PUZ&{k|^p}n(tUSx&4p?XnM zvJZ7gD%HLSJh#Azmbzv;DsUy(y{g8l0{`%Ddv(WtB@KqUcUf>$`os;hFV-fa{sBq( z4a$eqbN(7+6;Ca!9{d<8O^J?edwKA4_22rD5!KGkeL4*HluGt$J~cC0lWLYx+`nt5 zt+V}iVL8DfQse8LAcM*2&h2*zNaS*RZ1=+ZCT$PqMM3cWtg)R%2_qmv3S=RAF};6f z&mC3ne;%(z!r6FxHMcwUDeTYuh51G@-C@qxI?NBht-+L2FkMQ z4XN|GKci1Ci8~tZ|47<5%inE#joscup#>=-gFG*pP61lNKOPK0^7wPL>2fUYfughk zw7j!g0k!r9e)-fPu(Gj8ge`Uu(78`4Klo*rymsy2_e`pDe7pj!A#Th0>&G3njfInPiUUGb zy*0fO*yV+dkeQCey8N;3Gp}M_I>`At7r-l{ELD2o2Ev7`V4jt*#I5=2ezoW9=a{y= zuZ5kLgVXCzz&yPl-)0)a&K+?UzGOmY>bI%tl~ZArME_%{@QLKEbE2RebZnsfB3f-8oa*flfMRzRwb|Cr?dwk8^jKNdb|LL-r) zRFFZ4qa1T86+B8l45=hOIfAKx5063{4&6hKxiKn9D;V9m^pvd)mC^qj#YNx#nhL4U z>A(JcVP^lXbbpu$zDc+w+9B*7Hu@$?>kL(ji@F>)+(AyHyBIu&`&Q z-%4<}R|!G-i4OhaHWcR|ymO<$OIpl`m<@m<-;U3*t##S_z-1O>FgfM6W%1&dqAdqG z5j5IT-kbXyt%}JDY+s3#K5`^7MyFqQ=Nsf#TYf#$XD#E4QpAM-A~!Ea0;I^!w@2}v zeZDp_`!WCwx!43h%gep?QD3}0-nrmU3@{sN~ zf9QR$x=KQi^1bnpU_KK}n!c++M_{JRR;CPXs)0>)9!8044Jr9O$;SX_-i9N^{;a^m z`et*7MMc7e@Ba|$BM{XPTij4Ox91`X3SLYWJMI^HC3vXE#>VAPx5cRb+i{&{Jq7Rh za1!*1pEHu!i&pMW3_#F3g9C@)2B8h7ehfh5U?TF+v)|+ec-14ItMAA%(@tmlm6ZYK z!C5GY)5gXd|lWqHr$;R-rk*f-1&TB4YhFTnV> z6>Nt>XlFk_2kJbi7$?Bt{@Hp0^1K%#P$TIN(l^vqktgd~tCjO0cpOG#IevS6^L@fd zMr_02E`^mFZYxnJ;gPu2r*Py5zo;(YT#Ih|-}ec(WK)(;ck!ph{Ruqy>t6Nn;*+)` z@C)ft?lk4@#u_?j>BkY-u7BUI@OD`T=DdXmZk=CSdA}>0yfP1G)r<4rMy@C|n!lkc zPtuNXqIH#r?5S=Tl(~IDegJZ#Ui7~Dc+(gQQ}I+rU(OHYEmuOgk*T`;$;=F`WT6vN zyfga|Ekf<{l9pUu-3DE!p&mYktkuFprY8@5)y#>blA1^b_NVXLJurHGRvS2Ay}HVw zB{od)ch{?Cl|)$fY}8Lq&B&wBa+!fTpr!h&sO^&AuD#iW(yrKz_j|Kj8C5p z?0f0IJNtOw-UXYydrPVF%4#8eJQG*2d)Z~H`7I|o^t^21w#$XDx>-<0oTGya`;a^) z?u1aNmy?d5PB%e2hc9NWZbha`GO63}6i0Pn*0&!9qA6-FSMFgkQnXz)< zU~QinlahMPP!XO~t$aXXT#yazrptqFeL?GfWq}C37xMUgt|_Wb1B2WHxW>sNlu(it z0;QYt01}Oc;L=~7e%PoLq=G;3^=l0WaQx)`H^iaDl0#qnK z21E-i8TWHLb06qv<2dE5LOjP^%lji3AsW4b9?-j*S_%Kn*H+1@S7w`0P4Y^Dap3{1 zB-57&ypk%31V^giZ#T#xiiLS#cc_Zjz+c@ZC=T~vdMwDLUkOyqJLV<@Bjkf{}~$x5i8>O^+J0f_hEuY zy|X150$exm>CsFyI?lP#zu7$7!iw|9K?o8@g8Y z!r6ptf{N~zAcT-izx<8ixbGEph&_2G99da$@;M=sLL(My-?uYNg671z6{{;5eP|8a zg5AhYJp;dQ#VDpM+m$9RzBQb>;yyflF4PF4PA-;W0yLwX1NiQ2LSxNw=nj?4ZXek$VXS^p`g>Z)auiOb=)g|l8W z&xaaWh^`tWS)SiW{DbUT|K-6AGw5F-FrP<8`J*K#pRNC4asXDFRvm#_C^qi!79MZZGG@#1;t3-upy_O z5V5QvC|YnTNmavqi6K4ha50=S%IN78M~&-hHMBN_iViBZ zx&$3RT01uzdRMHkiICJsH*hvS#Ok8vcD+Eo3>&!Z=f zi)`*zYr9zm(O@m-o!}@5jRKsz*m$#2pP+gCwv8 zb6m%$E@|gPLTR?DxpYA7Sd*;xHCPrZbu&0+<7w9)cC(@T_^W9`fR!Gpa^s4Ky8QTP zs(SmXsT5DFAt#RimX4j0)lrpaxdl;CF-8{~BJleV=IW3@j>1 zBn0D3)yT%BY>N8v?(^Whyf`^}^nm9({lJoraX2|{ll|kGY;X)6@pQ&@X8VbMN!qW| zGwq!%>k{M2*lwUcePM5^e7o7BUsLgvoM-x3b2y23m-$G~%6?=HgDAh_MbGCG!pwVO zVz$#MR~^Nm;IOiMgX2;lW#i8e)3}RJq+n8VB4THW%a6VSOME{EHAgrL56!7i&tPGW z*iri`801O5!!Q;dK1|fs>L5?NMe^vr)<;-SQ82p_1BG6kg5M2j6-kRoto`~lGjo^n z5?j11w?5ra9^qz~c<_MRIPSBXr_c6~8a?(|^!GowME?-qQBeUpg2mgXua>eFa_}Hl zZ&JmoVd&0?c447P+2zlo8}-%4Zd$xT@})B4d43|5wzsWB|HBJXYRT>PtK?8Iwtta+ znU-mfz2zanC-K?Dy?z0%w%ef7PpAk%b(`Z{63VuBcz&*JQvOHEEQO&k70J!F{UY0i+g+m%9s6 z>A2nyLP|KD0ZChjTQ2irxZRDv~B=K3ipy@Sh zy(j7#!t}8s(NV7yK=*cutF4L9YeHM~!_QC!3s)-zfR`D{PeoauAkSM960A+v{YHgQ zzs-MTbA8|dC0saaysc(K@SXzF(mvqTo^r?0hL3H`w&=JkyqTevO45yAbQKXd=&I4v z!SWj8qmK@yR$aY(x4(u+a-Er8CHPbG(y197p-gNPq_~L0s`YkwUif#Pa|Pc{{=6W6 zEP}|G$_SM{jK(0Be{)!4k(?v}u`^rgekw`}S_5!*8l_lLk~PrMsgSBGl8Jk7EI^=XI>vn-?ZW}ty4o+@q17d(EBOtrYnd=O z2*q8jH~N|jg~|#=s2uHA2tbDtX>M4r%h@vS0bZ~3H!uywGd~yYkCna7CwS%N=eCjp zDmzB+uXzn1B!Lul$QAE*Q@k2TWY?cB<;(WM+uUC}CVbdr_`zLAY^=H7zoWOadnsbRNv%f9$Z(w%<-n6mhE{wsdLst^|?=qpS4C8ybtCo@ji=vmRial zrK;}kgxZ2#%Kp;(&fNY*ooDEbg-zOY5gSr02xl?gb6%Cp{u?aaI~1S1z8?{?fSqW; z3OVY`V+hBOUHeE|xd+*NHgx0okJ%dVebi7}bfXx*W)}j0+weDRw z$`zT+9rlj4@CDF<#v+83mD*H%9IBzgo6qc0RLGjreT@@2wHvA-jeS_F1|ImdCL0L;W1|L z_OAS$$KL~Uac!D>-M%WMr8$nZvNIKT$pK{S$gP}HD|-m?$`Hg+1#et&Mx}Ks7&OSo zdk+hGd|tx@$T!Gm))FUbVS#c!GdAox6O0h#R$&GL{~t*AKHBqZdw!>8jScAPSxd)s z&)J3ASeU3xedLoRb>Ehj^Q4-gHfn_JsA)5KXA`Lu zbz7OvsUY{RHgacc(#Col^HQL8FaIog<=ezcLLpMGNP3yM-PA1l0o9;<}^ zVV&U9c2In|yNllzSv;^5d z5-EFSW{S4JNnXiy0+@4d6;6!X&5#8I1NlW?0Oe!9Fe%gDJQIA1ud9FmZ}o&Hb75^~ zVe89=KE%sic&KXRV6?+a_~gGT!RsGSh zL-o}?uB55*&F(M|(?$i*S{n z=-1dbd`Qwi67%1Z_hrT8J$5vhd|_)gedOhId-C7GBVE6TX8y2t4fm&ICp-Vl%|Gta zb91$ExYEe`tZ8C}6Yf&Q^Fm$BC+DXO)6lh7W6?`0+|qn(yd=2KmQd7>(&Xw?%gfYE z$l>2!RF0SUMt!sqPcR{D0QlMZNo}<$ZQM@Dd4&zF;=xNG?eUwhoZUhQ{_aF! zzOVEVki7TmLkmo${0&PB2FT}fcH97XbUXIm4NK_t(97cKg>r%b5w5C6TT<69i=-5;qIW5y zQ0RXzOk<&d$Te>v5w5{N@sT_N{Jyjq`j+Ij673azo)nT@KyeMY2Y?D^hCWrEm~w)| zp{~7QX=WQddMc2POH(HLW4w*-T&iKgP?Eb_3D{3g6n^ zekYl(iRf(Y*!w9_+H9{;mwwS#Yn(kX_5SJGq{Q7h!~8eU@82|!+nHgPE?xtqwj4Pc zba5u};D}xF3b{BWrE31mQ}dSemt?h}HuB_v`t1m{Ne>lQ+_DySRNgDr0e;*P}Ce6Ia@iY|7sOt0{bCuNoS~a-X$^Yw`0=tUn8N7Kc@TlG->C)MEi7XfP_x`GaGI)-RB&YzoTu`%`ur3O!s?e*az{Ot>|l+x6#n zUw~`SHJ&b3;FbOFdv8;I|JOrSp#gskG>}_RkEb<+g$)x_S=%hR4a&Yy20wbzjqTr3<)R7gX?YSVDrD zQcz5>{2j08Z3H5KGWg}Dm1)@u!k)yEGKw^qxwxw@OsjsXIa$_9F7%hwnF#BD^;!_U z3}0Qn1D#n>giUgq!2D>7*EL)RIk`k4LShi4E{L6cS6g@w^uk8%t*Xtl9k4W7QoHWQ z1s&Kp;k#M7jUi*ilDD91v^SZU@Z~DBbB}_wQ>ybN(w#EL^ zeO}I$l?(Eqr^WJ60go&n8Bx)n!poP`#zUs1g^uyMUP)T_ZSH9Q966V07r7z^KnAe& z@WDq{mi*S_MNmKm#YG^_ib0@$4WK2d;EO}1CaJeu?iQ#0nwz`7fO$7H z=1RZnj$;MF8E_W-g0iMTQmOBqIzyubVYTx1%Zd&C z8k4OdFE`pccV4X~?YhYFSrojfGBc791y@dl-v(WfzvNwY^oJxSH$qAmdc6xsme-T& zMG4}b0$-9(^B*gpJpL^e&8>=%43{9zJE~(xMO70ap1G2=a$2@C`Iq<8^}XboB6fZ{ zj*GfvqbC0`B*t~Ki)nY4*u$wgC(!FZv7m*o0F!U2OS#>i*pQ=w8uYvg}$v?;tJsD5t6gF?A4XEL@nSfi68WZ z_!{!x%*y38OXQ_{v9fUXmVpS)Rer=d`lU3;bYQ>JY2I)0+&8X z1o+$Z9Hg}Etr89fIZKxM-#N+25zWa5BOd#I%ipRt%`ZeZaMsRs{pn5K(bH&_0=^;c zw@)Pvw|B(WWBdNy``5qPH97HnUnhmsXY{6Prz*vyzWrdDF|)hUwM7a^-aA+y>D=B> ztI^?lm-D*W8SeqGaKP`Y*F#EH+0V)Xb>AFYF zFuV09);gCm5ub{l;REO^(NC|3i-M1?wK2nW`9(A;17^mGohw$h2-VB1#)p*P=0QrT zd2^6BA#=(s?{zQWQ&cw5DN_<9Z)Af##IupBUv>uW9k=y!@aa${#p{Z+5I|j!Tc$7q zVM_S1=oG`M|BjX8UL1pfdpgwSEPvEnaZvco%#~cRGd7RrIJ48B0KM{1+5Rv$Ch%Cg zYLZ5Sp9-hIVLDKU8i^U-^9nl_Z5lfanz z&1Sn7(>Cg-g3Khjm)gDn4!5+2Qviwqv;xPcwMARl%A)$0m&f1+p13}lp=Y9tIFW8% zOvUat;GTfqkeB-hIL4uKpje~o$53HN5sM3v2={PG(w|__v0bGkl37bfe8^-+^W@~r zFDXjI9FGA;iF&_>rfx51ox$$6++ghhD!4n+HTn{dj9R~2&@6_pgkld`@6en zoVj)H3Ah3Ef}A>iWiPR%lt!gs^ukIaW_!t*&x^M=im>D=eYjm>`eE*tcf3AC5pE^l zOVh*@SBPp{y}7*P1u4THxbx;+W7mMRJ4!lx8TcR-7in*1O)`dN3~8^`|v9- z!%2me@02ZKp~vsZ<=y@`meW+n_ESm4I4qgg`!|S-)K2&r2jZhUUmm*uusHK$uAduE zYT7;Qbr-T+;0VzoJ{sKgRS%_GmN<{zUdo)=dmvnDC|jdy6~vuhiaLZ~);irpM_8iY zcp2#nG!d(HuTyY(T^kV?ko-|fyfEL@Q*OlGjxOz=6VA>J^dCH*wlA8TvT zUYOlsUpamXU~g$M%=4t2HX0cbcVj$HtWcqdtNb$h<+Y%!Ksp0IGcEG+fhZ(ZW(apE z*GL4EaYou0tj`@COId%r|0Q8Hq>wyr{^{KAWB-Rde}e6MH7Z6xXLAdqg78c@N#dx? zEeUewkd3g+&)3wayc2B$OLy-@yWISB;#yTDRiC86YpD{zC^orfCWg_e3J&JnOVv9! zXfiFtNdr=Jzu^KHa2Ly-0n$yar(V+KD`v$-NZY@2;q;}7^;<4XCcHT9rOy*=Z2_w& zxXD2VqR)Wvk)UG@iN~fqL?R}~LGqg*oS3}Ps zwl|WTUA&VoX7f+8O_uLv^O%(2fCA#1WXk%NV)E+V-#ar0gA%4IcRbo#pIb%E1Zmfv zzZgu&#)@?#xI!M#ZGWq5+VXyYOj_eq5JxzjKrCpY4q@zNFH5sY%4fc=T4U_n+S>qH z$4tD1FP`1p$4UWmOztaF)QbWvaU0)c;FcZ=pc~+#K8P_|lP&KjfZA&>Xa&*Rl)1L) z`-_m(_$##<*g__Ywy7e5&(ET9 z^m{UtuJWcTw-=j5=}HUPOdz09(lwALy~IC5;~|}~zl-AxXVX3R`vpe=XIlvZv=h7K{R^9s<-!dS2b=ZnL<+LZzXSR z+8wm0mQE5jDKq=b7g24zyi!v>l z_mfzqOQDl03QG9Ux$=>kNpJUC{MYGR*>AmJ58#@^eLMi`le_^dm#8IrC;9KbNGctn z+St%s=%ne#aj@G(tcFFq>Gt^N_TC61SIg&xn{!K*SU3HYo%f{&fgA5Hh^Z3cT8Ng| zgD+E6r_InS_=ix%V}4Ygo0>Q{XO(`%I%FuKb_LLu9bYP)6_TT)NiV61GNi>Ng(wIqcASb$aeT_x zw0zWP3ztIZ0a9IQJLkgwncQ|f4tzagfr*)z zJb6~`dVpiY-&#$EzqH(oYCrda`hu0{Vs1X8i4k=JOvUFDSOGR*3P#==*N1Sjv;i9w z#z{AnF-AGUNdIY`sA5{5bdTdDt>YTtb#-u0ZiGh|z8A@zsvS(_$!eUkwJY^tu*!s+ zE{V#7Vba2=dzNdpp?67&7COz_Y95`_)~{Y)nK|u3Cj|B0lg2k+CJ{+}$-+D=&BaN9 zAFy87*Oy-*_1u_)e9>c~1m)S9Mxub* z+;%7aw}k1>yWH33iO=lGy+lSpz&vMZiQ*Br`BW`f%Q%43hx`lE;(kj%&o*>${<=Bz91qH~S=1sUf?N?biW-dZK? z{0?^;-`jh~Q%-{@-77AL-ezz87&lbDDV;Phzq0p}V^^a8C24QISa$!D$d{M=x^hQO z9QTvsZm35+6wy#N9%_?K=SJs!O8LuuB>(#>oV?8_F9i*1By3mZC9P?ciSxWXa^XIi z>6Bm{jT&c*0AWkX&D<7y1py5zSM~i4nBCp&NQgyA)38@zdmQOBT(RY>0;F<9WI5?Fi?piVFW5#~*Xg9~^=%eS0@4 z@aYV1pbFCYv>ZBgW?vp~mbTn;q_h2VV4r{y9EpFEdt^&QChp+NA$b|5R_5#cssP5o zMQ)n)%O!lluel#|jn-?9L8Rdg>FzUQ60`ii91Bqm?4bq?IoKPNnes;4slF9e!!Lo_ z6U?Hb|5~sU@G2+C2$s8BkJw#eK*R9!))_U)!{Rsv1%FnmhJG8^+drza#D&p2njR0X zKb212d)aomSD#B#`Q9_a^?8XL1|YD7aVZ#N1?*<|CqCXl^7Awt#^ScBn(FOXx1+~i zLlk}4XsR+&DW-WBI2Ej|qyY%jcHkGJqylGO+FZ^IHyUU~l*ASClhv znDh}&q-(d6i%iQ3NQPJS0Vwz^!7cZ6G*Wz*JVU`EcjOna&J`wvo^|w|&KmP_u zb4-g9s2lZ$(%SUT(2~o(J}lcXUPtf?h&KTs6H%Yayg5bt$Jy`9FN%=rdr2eCyF28a zyLB1lT)_L;q}~e?9vgWbg{|7U8PBmTaXf(GV zq7w-rA#vJva7^S6#bckiY?tD@nVGVkeo)%AH^haGQ+984ZB7aA|Flb4rx@1?O;NHE`n$ zt1UEamvRRPp~HDGr`0yYo3Ex`!eSLH(Ran^4d+5o=Oxvf)$e7$i%(^M?$uf)6C-BK z1G%F>aY_^V?rt^`Pm#|WO)ABuLN2@qO=kz0gmRf`Ox_ws`q%dpVXFnl0O}ilSY!}v z48FV=bb7)p>Tslc1L1Ng<>??!QH z4OiC{_$NSnOZNnMZ&sZmxL5GOBrR1YqqSzUR+;;+-2vHbcy-K-fN|I}q5d}EO{0Sm zcR2w?_PlbyAw7`1*i~3iopO+rz%NOYx2(yNf@j-qnPPn#rff|{i!39cci6b^bKX_# z{ueg{2fUM_lqUJgfVEnDfG3)Qt)-u-;bBjTS`%9SYWhJn9=q#k_*Bu}k(vUE6hJS? z&PaqJjQC?eI^_t62hqnxTf+-*{7PWn`xqJyt4)86;1p;qK-|)F1<&lf;%L}%-#n?? zQURXL-B3qp6Z%j<$x3*mdRgd*eLDJkKaMOmw>Pz?nt$cyz0&?pv;M&NoS*1w};?NnW5+QGKY@g(_cb?zc*gx2Rd+=9hX7}xM z7bbZ(^-3p(H%~7{B@^&Y{85Xv52o5GKW_ZZbpTJ}X<&;}ayNugZFYDhnX%T#RzVHGYfK z6dk&<@2z#tYqO=Log4O%{O?s)R_)@d!OV)P(9nm}8-d$D2mkFTN)!A?S_9DEjqhbYv*hlE$C=8wxgIFJF=1Ws z$(Sp|A4%2BqQ8%})En7Ij7S(!HYrQ>QTl4*FbCm%!Z_&4+Pg;OW|)>_sBE+b4eNEa zDkl2+A^iLhSmk;_)A7JZ;L|rpAlDCz@E?Eugdlb7KA|YaDmT@PPlZSHeB(#(7g#3B zyzIwNF}3>lsZ*fwJvJuj3c29$E+WIX3E(Ej3!FrsmRKz5*lr$=pIP(=^OCer@)~(B zW=ExA1;Z;ABK1j%Fi#?Mc<1ZYlRS%BL?z;Kd`ST=udj&o{#lZ2c;$xw4Kvw9Lm~DS zdnpm?V5!GcDGqZL`!6f0lsgw%WZ%Tx`HJ~itC4ieGD-h=z~IC$t`NKzm)+{;^QM{e z>vya(^W&*IxTEeKE4Z+t3BM2Y_TPJw5kk|adsIReiD!G=4EdJ>lr+vAis}OyIb{3E z?0~LzK$8sro0Ia9{nxo^^4(YhZB2}lPOEVUsP8qsnUTHiB*NBeBG^Pa(-~gP4>i!| z`B#-gwvVY#3MV1$EoorDcVeb!VU%O4NaD=yC<=I;aeL`arjjZhj(0{@H@JPrX&nuc zOt^k~T%pjLxJ(wx^;XTbsv?cG-3YNHlE(7AYdJexii_5;U5ZiT*}4C04oTiHYTg_p zOiX{X45aAtv%Q8cW?EL+BekiI9}6ozTb{T8)-Dh%w%1(bMZ<1eeL3OH6>;7ajT)sI zs%y9sK5+Z`vi_+W{G)&><1A+D$G`BSyelyj-5d=z6F&106Y)VWcD3X5PFuBA)ykh( zFr^Rvcvv!gxOvpuR*xO!hE%a`V)kXF#hGA^n;bc+QE;=!Z)-ZnO&!)c*55y0Z)VlY z6f!w?Jb>8xE$B1rp%Bo8_%3~UnGd8!uh)b7SOawhc|hZmR;tTVc5(H?dbNlBzh4HI z6#8XXp&Omt7xH_W5M)j}0%CM8R=I0y%o=9wgNl^>#k??CAk@tA3_g)zCY@S8||}QzKPmdrk+Nl_T^3v zQM-%unz$dR4YlxNBm4cYLZ>J6zTK|H&MPA z6gQsF&)51~7PZV356<`e5g^>QU#V(wK{VdYa+j28)to{2hp}r_aOY_5%`A;koQ433~$%^`F+4^E!`=lSjjM{)UHZ?mBuI9{gLNsJ*971tT8N zcm3rqJk3o=swp-F!=hAuE6b#6B#L=0E+)Duk=VO{F0#=*;SV)ZwzrQq?6n>D_kVLL zdM?Jl$u>&7Pa5Nz*+;`RHL_t2qSS)hEd2`GP4}Mv=`5}>N_xWqVSI=jSvYotiz;Np zS2Xf*uR|X-$&OAg1UABHnL; zx~@t*g5o8l;@7+7I#kT`jM**!Za1yKa9s881CP}KBM0sgg?(I6F5f3TqUg@mmPx$R zwZjk4>WL8*2lR{(ZWeCmI3)JsJPTpAUJX0pnrr?w)@6#WW^El{o+k5GF@Km!~=PsPQj;8G2YUS->PqVc<%duMM$; zT3^3cLSuYVppXUrcCN_$CG8J~uxAZ+%%8HG2}feeC-A|uzNwTZMn%FI%lIU{ zyY&%LPn@AN_7l^m7zsA$b92dkuG>_Lfc$InJPe8sQ^6MKHD)H&n-=fHMTeCyAkJS% zNK$}I1=yII;_}=P1Tm}tdXDr1O&9rh)-VDG*Q;>zP&xBNdna~(AK?FwlC@8d7hhhT z`)hx^ryUl4xbpra*X!ZqvdLq@DbD_6RW5XO+3RFe==evzw!v#(N$sN$6!qQdCQ3c@ zpV?4H>(^Mo(Z|3KQ*`g~z*_QNn*HH2Cl6&{iHvdcbm!-~Ei9aRgLK=`WQZBu#(EMtCYfZUMPd{A9CP~l2C6W`0f+hBegP%K+65_Pr!VsMTT9K>r++eq+|hDD_m-XB z=GaPNTcy~pS@Py5u9fOru)-(B;dS0wQk~3ApB1sv6y>2yXEHlif1z3fPrXQkmdqJZ z+I9&04v}X7zQ@|X8y1wC6_9748)hpm4@?3XVal79!hfm$(b+P!Fp@%S9e+z!kmIv- z3i9<#0cIkmyh$Jk+i=P3M01Ri8Lt{vgKQoV_p|q9=iIAYMkda|BJ_-8V&n$qz z@BB9pNcz;U7bk~qg-1(d!m^ws-7O+>#wvnjCgJ2dy-yd@{aPK;t%x>dUpFQvJ8?px zR35Ov;DwBYnCTWNWKwK$z}&sO*b<@GR9Ll1687-SnFuFY$l%yTVSk79+xkhAw@O(s z4X?qHTauq!oc@%36)(?*BNHY6$?xn{3FIRMEN2oA&198;cRTyYE%6-(@DE* z*{(2oLBS-hBqf62fSr+zWA~RUot_Ck3Bb0Bjey4LZAoU!Ty2+$L)Ly;uX~3va2@`3 z8_E;|Gm?}U%<)qs+6A1`eWpn05|<(WEI41l*`E#blf`#3{!riP4-tLrINuA8R5eV;Gv%teD|ZBtxRUFW!}le>_BX?gJW__tJtH^tx|ZtIyHeG zTF`d5z#{nQOiR`!b9mOIXPMUxo%y|cG{sR`=Lff>jkuHF%{LV)Fz07?BfrS!1OH!M zoo-GAU?Z|qT{TZ?#Ky*(#PDBjcDgrE`teJ@#`78z>9M^nz0zaPEdmzaHW`L|*=t-g z8_>VC#sbrQBWXhGB)TNsz46=|$5K^OFZqCmHg~8PaF}AYhTCRC!Myn_5!@e|>dIBAVK!6ISKX>PQ~nb@3qmF--~`fr9YlqWvctF4 zNTDY^%MZfIIe$>w4^H|WrjHLsQ4D`dF$!2Z=}tF|V1F?C{^+C7(ViM=>$qs;GM@94 zw0Qh+@gFBnF0>@kof9(4wXS3NDtP(h99#HIoyC;DAY3u2< z7*sVkGoCfep4ME!8#&80!9~bs<+6bfnHkzu(k@O7=9R6r4?CH_n}`;Mp5!XVi+shb zs@%HFF4L(kx^irm>1)va*&V$dgXvVdbA*=a;& zZ6c^ZsY10H`%24hkzMS(XxeJI@;!f|KukSngg@j#*e^J;xYJ|H4HHCnetvsZz`SWV zn}_>p{VHIN1u}+6_Il_g69F1K~1br|nxn%x$TyIcT*AEO9mR$rJ~<)itivVFlIOGDI11Ila^* zg?!D<`*X?1Bf9~HJ|^2QP@%Mgk_mW?d-@&Z^taf1%S~B+cV3my`#lCe5cBA!3|SB@ zElsH(>i&>&j@RrQdtKpI2E%`mAw*)50~LY%`$BV}FZiJoxj@WYBuURJNkQX0C>x() zE(_srm8`(~Zxc9rQjm!{C40l&+g%#k?rk;8+ZKik;@t#|=i>ng+11e8I)$!q|cSc1)Subkv~S;|W-dpHuS!uYo!h*bThQye@)J*PJpwV;j^D2ZwjC*&Th zUvl-(YicmN4#^(hM*FcASWjBi_+>?Q_1@}0k7hgN@kYqlQgkn)gGl=u_uf8r$4Ux= z;LbCA%vI&x!L;_t4+Sd2ILI;@X#)4qeOmK-aES~YM^8xuuUmVMhJNp~o!Xy1**aaC z(h8q7ycl7{&5hbx8Yfea%7sq1#upE!P)E^1DC#*>P%wS;_;bGfQD$NW5?e6iY0qvu zX+w6E!SIV4l(&9OvOYxIhuoL!aCflLpFP2S61&XUVhpb>OA-shW(5>XK_1X<+qaZ; z%HsW9kz+86*9Nh(Wh}ZpT+j(NLpCPkD&sM?U!LupEAD)Iz0_`@&V`fRl-}b3)E@op z73sa=UyVtRbSa7wHh?ka$@rLZ$tRKkW`8#&`~mO)`}AawX5vLoP)78s2+owjaZP?j zV9ib(ejP7tmf(5^0mm436PoG0*tH(i!7KX3zh1|LB6Y#SJ6%@~mlWk9zR?%tcZR)o z$;h`V<>+Q?Z0cU`LFLF>lUdqr+1WU9N+Kcn4Dg`c@Ux|4?t_mxRpFLxUOBk(M}7zI}5X z$6R}dsl=DJWj@8%P~NJFj7&OMd{YZb5zFR60~b+$xAIjO_V07+@uMD?*w$ zXFDMJ;&S&Qn@Z(!Fd|F53HQj5zteM?qiexaZ4dFQlM7~AiEpVxCPB)(UC*+X2*urO zdr-fJ0C)6h12@S=Bg4|US|0cs#}?2~#JPKIvvtZUd~Q$Z=ngVUENu`PY~<{R=mXKJ z860!szK{aBak0-9$n%I|4|Kunpf{{cI&c|eHAXT58#teWgM(CJnTjv!fBPW~(kvuM zI#i-Qt0sEEtD^;pk{pB1sekBNha{~=q~xqjN72?&S<|M;BW)&5CV zo$1Efw}8WiFT|F;OQjjU9cV(wGtp~7(R2r!OO8o?7x-h zQGR^?OfMxzB1<>sA2GR#P9J=0#1ff%5tLBQ#?6GR2o65>_DXWncVy>pp5q8xtd^4C zL*})(!n2$#UvbSlsI9@=kceM7tiW6rVV2{>Dc9mgMT^Y@9NE!2`zfTWV<$_+lc&{# zBq0SM|5hZ!6Nb3XxFB_hfrW3jOg}a`iU>2r;2MI$jXXT{O3+O~fmd#WV3SgBjS?hl zYntEil_#j~pHNTtI8oF-raNZo@B3(*r@y>TM&6_T6;AxCeB(P{;9enyqRkZ@ZL9U| z{tUm?w^J*0vSu$oO0uz)fyBv9NGVjv+-(t4VFl#}>NOBD0?unCiulJCPh1&Sw1>ly z@SjZv1Q}en>D#wiqSy&^3oph)Nh_VfgUv1CE3G81bU z*A~cqe}(Gymr_nYpZ2((EkoUWRjMt>i8>5sP@(NC_w6ison&&Han6Zr^upkB%qAh$ zzE);8zEzAXpZUJzh6=-?wtvz_wYvO7)&rx1F64%i@AjXYdR5Q)7%G%f2}5p?Am--x z6$<3YIZZ*=EF8anX_@1wVSB>mFwcp&+&ZqrvkLo}2mQoEZEcH)Ti)MRrye-8)h2rN zpW?egE-bwXL>QoVGH+w;{<`yL)BkoW46|Fq0V<%mw_`pBU*Xi?t;SRXv8`1KR~++X zn?<>sr6T@x-lNpfWe2;5n;SRx_EiMGit#L|`w#o)RSYh>BF0B{OIC2P)4p&&;+C!#i2=;terPHUIw6P?Znfp^s0UTF$k#cBT|E*|#v(49{|hM?A_E<5^GW0V~^?sC)%b~QK!mRv;tb?Ti6mh!0{&#N>_ z@T)a*lWuH*-(~v}8)cp*1*$TLFNNaXs^OTM2zyrry}F{Wc6#&8>>{-P$wnxACDN}7 z*0Vu>MJ4+gON|yjW@QA`H4-|MV;9oN-F=2$j|F$mqIGEkeDTF1$~vHDT$enGIZ6QF zwE%vd|J~N<6em(U-$3EbUhn1wVMf1IvqA5WzW(w4W;FwxR{${C3aJOAZ+%x}d}jB4vW>|})$-1arZ z=**x?vdDAQi=Cc*ixi^0FY(c(G<-08%7xtq&&D@3>~1In`s!Y&-Lny8)G<*}{@mkf zGDX9=&N3qW7mUD}LUu|vSy^k)W_NVWsE`)FgDPmjXu`w=7gbnfyb-%}mP;DP5jd4#hoshXbNlTUF)0 z%WF7uRZYO*9-?^V&rT-T7SZCw;sRP+Ev24P=Xf|CmgoMlO5B7AdKGLNJzQEW3aQB9 zR;XnYhC8c8ylEz$bIw_FLS(Z5{FA#Ib%eCjjg5QwyzCL>ch9- zsen6zO@v4gqkqBTMi4@%EP;`4K;b#4fuQ&yFyrym1l&BPwpP#E6EU^Cx`OV4*iFHc z6*@AU^7OV4Q-b&fE|TsC*78J=K!T__X4k)0-p8yje= zayDAbS%$yG0SpG+dv#W-xGqsAhR8>?>8C_R?U zBB7LV7sjO6hZisUhrBb?J{iJOPqrwiWw}>+@=ygV3=Xz49Y-Cbj#75I7UyUB$6tJZ z0G9rpvnAr!ywIy_3n%1#AbtF|=`45JzII;t_Z&CpkvoF6$WbBef7EY%@)I?>u+IBE zE)}TgGDdQ0#R!YmJcKcVDf58|{(F3#Kob3Raw$#R;T@l%U5(gQ;~nO$eF z%=7G1lwkbB@I<5J6Pg@cjRBi`$h_!VOd;6<+Plo;87iIdy|XT5usNWfssXlkWBv>i zTw?^~8$RzG&UVUOc1yZj3K7?R@~QUN^VXRPyCg>sZt|~a?JI$z(N$S6U)OR~-RY>g zns08o6=L;6&DEvT&(!w9$TQw=AXE2-`w#8@Y`@U5zvL01=1T8YL_A3&=#zY|y*zh!SDttuWu}01CE(ErXk@^us0INE0#l zq}@X4ig~U^N|(cxG8I+!c!I62ELK>@+w?BdqlC&X_|V1?o?QjP<)LkPB_UWT$<@5Y zwb8heHWD+n{ynZsE#-lySJF}m)kr3Yo+7H^Kc}W;gw#@}4l7S)G&yY^rqW{nX13R9 z{UZuUtPe79M0}jgWH{^EnOi4A+f5&sekH|i4k?l)!k?!5|(nq%v`mGr(ASKTt<1v%PjULgqe_m?!&h z1ME`Zf$?ZJytf{^x%Q_)=7{Y21}R-WOe?JcOi2SjqB%>b(LuyDxOpN)z+6_cg0DFW zJ^;kluJ4fqb()3?f;!&kN4g-Ej|UoCD=<+Kg64j*l2ex|@y0|udn!=T>u444KjfN! z(R}*X>m&rPSn&9m0k;2r;TX8kof0U^1NMhl`^9}>81b!d7CzKwN{sxnTiUNW%w;vM zD3tP_Hd`F{?n9}J7?X>kpIfhD)TkP7^`CEDHK!gt!4ZNAIPP>2IJ!>c1LF#WUha|9 z|061c93f7*m6LFDeb{hAWG5dsK}2`}NIO_ZgL#pu99U7yCv;M?_2S9N!2!$3)wDV< zo5rvGarw^9`&m^ZvrG{Y1~QR)2;{ADjAdnJZ_DCvn4C>dk^>lUMwzGiMqCK0V7ZCyd49=z51;1_2MISdy4ArYSe> zBzA)`yea>t3(Q*S#A`;8u^o4tGmIa8mL#If>%#q18ly_SqWHo&?F+k}H4<@Y=E`HJ z0h5o3!gJA!)%oyJtC@{G+o$5Vmiw{948HG=&Ois`uUrVBxJ#P&-n9fT49AVPRG`tc zLm$2%gm;PRP`Q8}aVtzj!OTEgG` zJGgS4M~f6_m-}T;E^sQH&1+oS-VTL4 zfUMeldITu5CpAv@{?(PT8T(@wJtTb@SxDe0V3DWRiQNNb5Dh)XTVe<{Ybs*mHRWY6 zqp$I2!0rnNXhp^Q=D=C7n{@%(`itaf9c4P!cr7Ob?)fMUUPmCpHkY76zEovy8 zq@G|G6W3ecx7-REhZV%m2hLN$#dq~SSTS2j1KkPPdzKPdEKDD3@jFT_Yq_(~^s?9S z$i{_K{Rv3d97kN(>A~*mXS_Ay*ZVz?al&e$2$d(uDkfJ7eVw=&nS-cT%Qplo~3}`y7n|oaSLi{gjrKh(72)|EG z{2}%qxWJrYrz=B~#|z8;y(<~z_jd>lyZvKxS3&%1XkWOw$7DzH)~hZb1Ia1zPwguH zM96HL&XJYx5axpQ;ro+UeS61?xaHT{ijVCF@u$muC;t`oh8~AbVY@Rdrm&w^r8f*p zAxm&Kh8rPImVdq;jh}epC^o+Ew;`x?K+Ah;T|;{lp&jc$<~+B!OAMI{R*p>)F@n0Y z)YJ$Imnh4afLf$w$Q+Df1Yz}bbBBA(({|eiPo!T<6myrdW!#v9v~lNa%^&}3p3Bd# z;Q*U`cqv{6gwht;p0P+97Bh&82UWQ0-|v_#)lW;Z{Ls0PcxqBDeqyXotF#RHlpHVi z#S?Y7b3drL8Q0)YVG{9oPaENwS5b{^H5ukl;HaE+%Ur1EETDD~6e}~<#1f^k8E`k# zncH29$^F65UtMo<b26|}g+?Kh`CkF5v=>d7=Crf{AO?=j#>Y|mO$cOs#hsSSndfIHw zb7h<}$3ER2h{1DDsRZ@}5vrdi+PIln>gr8c@Lud9#Bp&2Xs|rOmwp^BP@;79hKG4g zw-egL@!i}oOvn8*F+O}n7Zy5kXhZ2*?ApQC^}PbM3Ka#S{L<^oL5nXnP5ppIi`QDP zCzjh+W}mAAXj_mY)aQsXl~n9uM&qIPK!hG`!)elg zskVwHvWvk>aR_Y02XkLj}Ow-*aivf~`X$=TuiGgINbfnCh^ z)#j?PIBxkUHv-4S2oPUBW7>qtc;uHaGT9qY4LKW2J#P#ao{@7Q?m{Zij4l6eOAujH zjZ`Y)j<&8Mcdk5BV|F6GA?lshzAKhO?8Jx`r`lH4fy+4T*39@3VGCEkAEXUY$*Yi5$b z?Ei>!*g5B1pn{9|x{$xDDOYY$tuiv zPf^%;5H16@^gBJj!#=+1d||3vZ3Pice36@lDHAq{pSD333@OM+Zr~!pYwCk&vPz~! z=aT}gNIPsXajt;&q^f1s?e~T$G%I5*cmawN#%8?KG^rf_EWc`ZNDxFO`BczJUJMR7 zmHL)ly>ivct`M=bEZ<9(s&!Soc~0X&cNq*9U@O-$o*G+1ExKf1cqNzE)g+33v^uQE zOp3>T(P*yoDR7h&E6;fP6__GSsk~nkSfE6-tMIp39&u=!qhhd-)%~Un_$5(GF$=QY zS0}$rk)=+Ylg;454>Zy;$EQ=ea(sVtGd#qVg+!%ykw**XNp{!oCb{Ni69q&VBt^H* z(y(=G3gSrimwjQFx;AV}hS8R3V%8&=VU@560XhF@1<$zoHN=beV1qX$0WRb9UyG$% zErgh?Z)w;wd`n4bOn^u67O3Vz|2gOUU$+OkrNuIzy%m|gu(0fzQ|X%f^O*8qpx~EO z=rcrf&1O)vN_TxDw!&oXw{8S+YdZLue7vO@C^Z4f+11#k660H#U(4=oBDc4TS*-9T{+2mIbTT z6oo{CuhkV#lYe(xTMkULKHzsab9*Bw+WC6vcxPg~Q0uKPR}Oj<+}SHL$SM%8gZgxF zTGQhSW@wz&{QQ-tQnKp04Ov1$Z;EFFN>p6OT3AIBi+4%z=KYwS=C-!0iV0tvKB?Se z^e4LKkusVRTi^%b^pzp3g1^=%zG*@nHRi{K0xb(1O=d zxz{mLeI#i1+V`{N4J-CZaf>bnOK7Y2b7O4CxaSW)uzr%tW-8rqJ)-R3 zitxjK?kZ5#Lj3Fm$d^U>!Z%10OX|~uA!j*$@5fdQPd=$sY~YUn-juWTOimc~;X8Er zh4ZPxd~%8Fr9_>11)tmZ?-({37Rw$BZd**oc?Z`XtmgO51=;aDKh@a4 zo|^-Bfi|T#^yg~+YYnd@`@)a6{?Mk}*}>H{3TvAq$N5t!#9Xv*VnVWwxoo*KvbVEG zpmQv<$xx$+uw6MR$%N?;-G2MmlO?9E*rbej@S>B6tfNxVf^GHm^eoiu&uFSqC;Q5J zZC-<_kh^{CS-}>|c{(40vlZPZ-vZ+qVyZyI5)awVP%@q=Vqp4RRQxc$Y2kXT!^25T z+*)0xjJ52BuPMw;COB_OekX1q{8tFFDk1*QZ~x%^weVb;I#AK_BPJ$Ry~HnX0PPy> z(evE=10V}S$hAtED+2>%IQFr_P6-V(%O-damMI$htEDa*|1@{7fKCzxD`|)L^5_bG z?}3uc~Rm=+|4NV#AKaA9#4wJSJqPRMe_Bxw-p9-pd%<$@zqeWLYL zEUOrS(o4XIar_sr!Lm184VE%vI(IE|*sF-*?yRf~#aR__@bR9&avgusyynrb@#Fuf z4BR@{EF+HrPa#~bzm^$-mj!&EwS+-gH~JU5>PNQHhIME{y0ufXDE8=hDlu;sn=4dI)Zca&q0Ia+cpK`q2Poet8D_~AJ0B>SD+f&s$wO< za{B?r&hS=Z@yj4(cl1*DdQexRp<`*g__F(BN2G2n++%PVvNl$R*a)I?0!M-%(|(Pc{R49Mg?jaXPM9Bb^miw&`o#9KfmeOsVn=IxeDx za>yny1qF!#A6>O&>X1BLPx$HcE}x8y5@IVZGB}&J zn!L&tI<#6@%$g<@-?Ere+X>u1bp< zTtUl}%T^BYy)8K%zw_@>p>4Jp=DQ-p)1;ve186o}Cz3scT1X;IlZS`1gTrZSgof?@ z_ZUxznSPy@*_Qyy`og@OM+TpS2O_)TM_roX+rLgjSd|C&7}oFtIeJ?KbX-o&H~Jff zEIis*R_x4&yqeOTu=wD5qxI#)r2Li0Oua2q$6I9e%%;g=9Gs#ommPd9Hj>5cN%Ad_ z0TPQ1XR(g^t}zJsee7!JSvqA7N#$AW4R=n`6JzTAND%rZ$VPMuKoG$QUhkO80}F2c zbb4(5wPU5|cIO8^5*7Eu=&L?FUh3c8P@BIV{z`utMKK0MFt6xeGAb@fZDMA><00pwlV5G8-+$+;9cPD^pvYnVB@z>M zIS>0K4a_IYhKFOYY!Lu|+uZUT%^NWbXKAINqbBNVs%nT}kjokHNJrL~g$`5Mkm7&J z?m5phmllGw4i~iZHXqFH&Q9<>{iyn8^I+)j{(~&l%WlO`9i}%5)mBgkF$*1G-LpF1 z+UCBV;u5~L4qJSysA2l%-F@N`bm;F`q}VLL`~BiFF>7IC`q4PBNd=X+5(PZt)5hu) zF!w$5FV?BBxW$_fGlF0^vS!^tloy7M@B56TH#a)DuqXjbTN3zWw`=73lrPK9{ zlAfjJqL-|k5SNaMjsZWmM|g9ZU-GIQa!AGNuYxOun^h!+3!O=9b$0s7&y^Ev*QDOlv@LwySDvck`IM_3tYjU4#aar(_OM9zhUqTK##w#e}MOX}o~r znE1jpXIK?bFd0`KDOb6tD=u2x_8Uw=I}XgvE`~Ut`U@quDD1I-xri#6c5R<-GOocs zwq~TCO*G+E8!Ev{b@G3Vcgc0G&P~-Lcl~gSwlFlcw16Xte9lRwEFYG)`Ld@2dQ_e- z4>Nh$W{$Cm1e2jLEPj$IQ(7;?O%HyjoAFlJWZ z?NGJ*+ia7&Q}Bg}*AQOE_Q-2{UA4#47u`HIDwX-3f<6Spvs7M^I|-34t^oB;d7(6Z zeII-NO!tk>!_|1Bf;QQ7~1mq zzygk*o}5`7#1ZS8rCuebkk#dVpoCo^i(BcYXlS$d00)NW?4wBd+Glw(tYzq1oVaiA zFx#I3q$mM?quVaas^)xPv#D3045iMYnc;VrY}J=6T^nHF`e&UApy3_#dGZnVcVE%S z)m9R|B*TT{zxNb$_m!HQeJGuNx{9YBXH6)jR#|1dy!z2v`{1Wn=tj2o%Y%6(-P#Dl z_PbpFH0`zazXuie(LZk=NJ;={DgU-9ap!kWdgS)$TJp;ma&l}eQX3^fqSa9~oLX6; z<)V!Iju=<0fGWZ{LD-ogBH86(qI9+ApK{_X4lyLz?C?wxC-DnYNj-gs>OK6SN9#Yt zMPScfv{>RirS%;zqyBP!s@Kn^@7&=Gdo^x2xF$1OVgbo!ow-*&h3`3qSx`02cK1NW_B=z` z5cjgxlw#mJ)J-AHd=8`6HM4FA$4i-7FPP?keZmPiCQHdTGPqmUdC?jJ!y)eLN)pmW z+?LDhC-PY^j%Ftk;d*|(gTLyFY@~_8d*qEjNlNbg;AlVF`*HE?=83rpTt1JjL3e~k zO?F;tdv=QHyJKvgBS}&=xea{~;9MU5OOB?Aup-x~oQ;rjxV7s8;C)~)uq%i68Y90d z5c!(v;_7{@og5`f?(FXsR$)fdO_6iemJ#1VHVYQ$4*6OQvS7fx^IS0~kR*iYnvIjgK`a!aa?4%}pPxFO`aV1Iyv&!my()j(Q?~kIt*v9iE zps|dd(nBF#6&6TyW>*eXvZg4{0f9(#a}6*7J?XK@7Q0!G^)S}}T{(~)94iBZMLk{Y zDeR&dFs;)aUJ+HWB?qDk%k8rjn9O>yP61}Skor#4@)=KjHk<*R8mQN%-vAq4t+XpM z`M?-2$~_eWBFtFXdP*|e-zvlhZc~rmNTp)|l2*4+i;qWOY#EQu?+pFKq3s(!-qrY4q(gG=( z+j|D;?(rG|j#7=Bwa7pN38Vg$O5^M=G0(ohdHh~gB33K7uYoxZ!(j+n9PVq< z$YoZqh~bfV6?XZy{8KG9!5U^=B<8_ zg6a3CUdg^NDDrM;=CLwrm3i(uyuF9W2CrIMzDy=00^&3PJ$T7|M= zQ$APNzgt{afKZb%-*!y4R=?JjA1y*$AJeStTK=r?E~@HLTiB0hb^K9ngxk)3$T6s! zt)FM9Fp zMsgHsh|H_F4@J7(@SO_Q=NojG=4d^Sw28ZRP!j#b@>#Dm8ISgRxw}@9;QnNom^U#C zt!aU?F~}>`h`R82aQxf&E+}i{CK~Y}UK)fkB)GW*nr1?6-^}oZ_}w{6ep+W~!BP5! zwD+L!Umn~e`O4<|djm-<1JhV>%zZmHiFKUA^^V9t$}();;oYB97PUHN?K!fNTX4oI z)-A-~b5ewLSvF)6Mx1%lW4EkfEs6!vP{9xcScjKam5-?2>2^_QUi)|xa9g}J{UO=Z-AXt z^V&3$#5FXwQo0r#tc`9#Dl<}Dereob(r3b$csH~2^jZdrL;)=std-96o@}`lRFPQ4 z!gKY)a#ry)_2t9(>R})prjh@jpTPqrdM_yV=^I2XD?`Fj~PU-;4G~`kvT5{ATB< zDKo6;KLD^cJ|?@XWG}7b4b%$(&-&gYmDA0*6^(w5Yi}UDI>H0P6Db$&TBflkR8O`p zJV1hZMRZ*gSw5`{MM^2~510t>s4_dUrd|;0rT^6^%DGr8*t#KMJC3lw9x^E{Q3W-a zyU9|+X3Ro(p-=kOqRn#_b@)Jgz|>5)_2gi8VLQhO&>oQo8wC$8a2d*)tTYH6mQdnO z{0n`nwWdqxq*>V4CMa22Fx|Y6JZYmeg5Q3z8MR2gXX%cO{m~s%Itv8~5ZyEq#1UXE zE9?xJKM3jiMcPYH+`>t5mIM-^3?1HS*{|~YZ#*J%!wpa_a zyf774LT#&xb=cIKZl6=L22#uqwAN!u*Z32XL|kRaow?urh7>YsPEQALrG5_U=bpM@ zK|jOW9Q6o!--1E2e|clnF~Ba1O)xP3{%wE3Q-=wUgV?%_NTN>GmX;Jns`Tfnv2$~R z;)SE+!#G-~W*Qbay8bF?Cc+inQ(LeX$2H&M^Yo=eHU1<0^37cg{TqcW@VYRuJ5Z0> zTYt`{ixHE{<+%RglGXW=W@7P2D`$@yvCH3yyS>p3^^z6-5Ha3eg3o{DE%4eX)rWe< z#aLyae&dNzfmYQ-{PXUN|1*7PCuVq_^s)_6)mib@Z)V~HcI6`A=wQ=%mMnr>a3G_3 zCoTRAEGT?dT<<(~_!akU_mbL}vcXoE%&wx0bytDs4odg(QPzKRjQ`4q+Jyil-p{}# zSrVIJ$K|SryZ*GA*&^Y`Zf%@DJSuwM7ov>@k}T)nba}UTc6RW5?h@SPz>vh_K4+L?h#MY_U8Is~J$uKHqW(d7Wp>^+-gq$2zx9$1bwAw5* z)d5iujaGM|)YfWH2HeOapVP(Wx(Lvp*B1dU#kSLF@wTFP{hya+qvzNaT}f z1l0oFOoYT$k-E6%i%ePH3^q3t`R*~ZZm!KV)BFAcnyGiF;~BNnV8o)l;D^AzGStz3 zee^-V7NFL9G--eM>U}SLWu{+y|MPo95g9LFZRx=LDzFz_f$yN7yi4)YKHB=dP;0Hd zzl_@Z^WgU3&hmD&T>Aire+iMz60J7;jD?}m3WM!$b#|-ChhIy}akTSuEun{PjpbGC z^<1_@2IDn8Jvz9l=Frv!>O^cRMKF>8aZUoK@->S+ca-K)Qm&3?tMN(h7ZlwA zv;e|Q4(CjvWmwrqAt4gwr1^D6W5F~W-*pVP0zY7-eqxv2vR2@X)S$AP8#>)G5=7$f zEy#yzJ$9>QX{h%ptRUufboD(z!a&G6x@Yw63ficeXhWX2EwGYwaWUB*AGKeb*KNRl z-Rotm>H&x+4p@(1$YOqdGj3~Nxy_1MRkEN?;ljYTfICWp&LHnRYla4#3vv!U%g3GO zbRRo0-Xe`JEzS41Wcj92={re&l-6Ca5=-c%t)FE{8LU?Q9al^_@a~?dd09&e5%d4d zwX~`zLn|HI6uJi8dY7`exO+$Bcx$joOS8~m`{3p2X4iu-vaH;uudEZ?$a5G?WOq+e z=^_Ewh!FwD3bD5U=1dJ-o=$%E8i<4z_2HRW6J&$?A+rCiZTjR@(z;t`qne+vvf6it zA0LbeIzOtBrTvUM0sTs%_4k|-u9@|n4rnl0fbp7Vy^K?!EDx8ZD5VAj9~qd*EBIJv zx77W-J;V$8LM5reP2-xi<3jqJp7X+7M__tOMR2Yhr3U04pYLEM)Vw9J`jvRJ(Z<1(f?Q&}!J(Gj!n*fz!5QJVQ-q$~XHp7=wS4A@MoB<#e=I$p(nxLNx*c({m42BtQ?G;^rd{NX$u-*= z$?qCm_9>XM68v^nosyDWjU@&PMcoud8bBHT&j(8eZuL?-eWn0L{etJ%GdL0Nq&jSU z2v89f7TE#tHCGJ^aJaj0cvXs3BHptw84j;r^)0-1?V5dG_%a%}#Aw*N(TF?!+Q}E8+JAY27E~o7V_VR*<3vnahK0)Pkcw&;d;6< zWH054#>)RhRg*TSLFau^ILlCy_wCTrIZ&N!cuNiO@Vov^RV z%b}VD1Tr4@#*m3*{98Y8+FM$!t7JLomw&=saRdv_$D0s9Xmapv#Rj5Kngw!V*(Q}A zh7T893Rn@|#9IbK9mJQKh4!H*HIyzb^|aZ?-CBj&_!cfR8GYLXbs~BcFV5CX0DtjESHOzq?GPIpj_y-&K;Iuh z-<8weUl~8wB;pSQMBjItYiNmgiO-S9?yUbEnwz%&=g%MSX(QQE6S!?wfC9|mjLuN`X8kmE$l8GaFOQ!tHyAK_q`_LyJcM;Ph}~o&Ll5;s&W7EH*Ms7ihpU_H4}Gyis4n%BtvLE!`F^lh5Vz@@nC0)A|N&W+{B{r^QnQ za`Bv1PL{IC`RY!tRG-HHb>_sUhs0X(UpUOC9Pb@qe>?j4{Sp;$P6&4Fh{*uL4KIo} zf6m1OBw4^}X7{YS-r}2s3UPd7S4(~2j-DPxXg0oSaaW|>fhDG(6qjKnY3N^=rKV6@ zMP=kk{Mhu#DIukjM-))3wV+PQE;SN0!(JW&(WR5SmfAaIO~$m%KRTe}Z`adV{6%&S z9jMecYK z(10#u`yjpltni!?;QOzBthSJjNz~(h&hV{dx$xDgz5^qwR`6OkC3;j0)3^eYrR;Bh zP5}lq)VNs9;>Si$kK(i!f9z7?E-#+;3{pkxwE0P=KPN}SA~)LWKJ(RK$}?1jliJq1 zGsQ8MLg*mX)$Uv=TV7s$U9e0!A71h@bv>Q4D2y7^mnkF^M=yHaa`wkz`1A&GD&mQh zOaB*x*aB|QrKf*OY<)BHwjPj45yc~iLB0R5eLF++6IW9ukyG2OXG?SRUS-l_u(^!o z-N6OW+?p$8t||*X^goKuJ)WumkK-drC`1vyxfJD2xf2qqxnE;$Nv?Ch-zmk4(Pi#i z7mQryK5`kkGzpX2FpP+a7|qPx@BIGmj~|ID0BA@8LBP^_~Iu8+ZkD zaz>|hcAZuKQ3)SyOL@sAUQtTYb`X7ATe!4;geyV7h^Gu|+TUdo&n8at6?<}XdR1sL zXj3fg3LjtbxT<+5&sn09RlxY`yCTaRy&VyeN6D5+61XWHr1?Q%^xyW*>YkPw zVQ=)$zvYcwca7UF=}klL=bjVhbl>}4gnGX_EJi>o@B)^=wcA+*8|dzBFGVKq`au8v z?Mq;Ddq43oGbbW(EVui>Jn)0dY3gE&cvmY``{ZAaZVTzfsD?aL)0}p6RK~Hf@0<9A z)MS;TvJ8P{eWF=S3y)@V)u*J^z9aF8R+TmU=;=J@cI%i6ms%1q_Sa`2J9^1|mWS#% zmqf#{L_`QON03*FEm`$JS#iE`nV%oO6Tk2UUuy}I!g7{Zr2P64EZ`s=$z4(0`NRcu z7VGzPMk|{n37w;FMVTlC7HkRBH?}Y$A_ea9F9=#!;&1Z0EWv>jj@GRa#fZ26=gI9uXH7Pb2@exTKLX3zIZ-X{BqT^H30h!u|KaCW$X`sO~}!p z_@!$IM-WMFZ07HU!9033*`YtMd_MW1w@k2oTiPfyFHaKuF4XkVsIfF}8aq#Qe+wR# zRPZs{@qq>ud5gS<_*aMbuW*9iSr8aq+$t^~c!HUBUdOjnlhuf0c05ww-iEff#;Tid zttzT_JH|_t3Qw#gPg8q?g<;+f;yf`TRs@qLoHA@z9X$2Ihz%nleL4NxeVMwk>duun zUM8jM!p~DI?!n?_)&&Wwv3F3#z@>+B8&7L)Ryo!VVL**^K#7kI);53MGM zv2JiUz2XVE%e1fkftur>cN~`e3}UEhPzoD(C) zuX}p;4cpYdhP9ahZM5#T0fE);b#SxPGtl+AN+K!vud$R;Np!}ja^~H{_}lHxvB=U% zu$z(R6IH3}P|gdNm#5d(W+zKYIhrPeoo+50x%{+k+HLmbaHmTI=~^jyH0Xq!Su zv#m!+`Xb2s&%X~@X9FCE=VF_t&k>u6VJ??q3e3M+30~EprnFB}4{Uy9CTu^}A@qvG zx9GU+`p(4f5`L}DYe6x0l8|e4Raidi>`%u1hQ0~ws%r8KU{$ic_cOX$l-5Q>*c8;+ z>fL){ai@l(YC03}m^C%25vC;NvfqYcFpzGmVj_v&8B4(!CP|<@-k0{b5iAX0YX7l= zuKMZS>~<`&0yWBr*kYE5%9Qk^zv)WFg`!rWKH@2GW<`IJ!{Btto2CM(%anX?sX@p_ z8-JD$#9&;Y3%vN`*pwYQ-JQowb*S`$k4cl;oMM{t1B?=m{i3>i)@)m75UM|{hKnwzM}Km>xi zkr|npNj{jKhEh@C1jp_k!*ZLKN>xh!4`0C)Z;6@G{w*IX%h94+WR)I6o!L^|{-$P3 zjaj8D!B*O)UDul`4S7tX(^eM){^o6NMY#~s%MfGUi$;~r%&R{m2hyK^$7=yju;Xp{ zHu;LN#uu74;m$-_1LAG6(kG6$#u*QIP?3H}r7*@6mrDYJG4kiui_`acEU*rP=Dok5 zu7`WB2dfH+zfg=*0Gfbp^k0w;&f-eKcAtog?!l|3)VJ<)=Tc|slbMD~QIT4EWjy%~d z(mh$5WQ_D^9H2UAjFaCT`wIE3>GNlyA6;r~r+@AkJ9OyI8Tzxd9r=D{W~RpdsZO9z zob301h@(xP{5vU!B)+nFIye&%PB(TvkV#BCsOhnPtf|lsd3CFi<5!K)vnFDViYH_N zum}vO?>O^w2RkhEPee*(Rdlyg2eL&xx*-4J96|=}Yi6|0<3LU&5|mdd@oWc2QSm@h zgB)%2Tg3x32#urv3xJn3=7&0Ghr=E6?~mF+%N{ryiLNC_$7z>1B`IcIa`%+{j8%1b zj9h*I4Sup;8_SrDj0=LwiYsp5XD4sDLv0Psa{k0Q3@P%mF)J42QLNZSom`!d{!MiF zVIC+|D`ky5al9>4n(ID55U|8%+@7lC%AV5nN>>_q_|RRB{?1$nNLw;Lnux6B16EpA z#%Bq2^#%=0)fEkki+`46T-=?O1t@J7y4SBHpZQv`Hmkm)pp*Cx44`yENa3@4VH&s1 zrri>S0b@`QLHoUe(CcftfUx2ZAL>hSIG5+IDtv_M=1ex1=e7w7fr>hsQQrEyYY)iZ2_ z8mF@e>~l@?z*?O_cU1hOtMh-~xp~gt9rClemJKOT{1i#xE+%EGG;`aWX7Vi?^>AL4 zW@hL7cr=-LcTxmDf4h+El8N~vxESV;{);S zSQWz=?NG;Cu`a|Bi1cE>COKC8A7R@WWMSJJtNpAC2-HV~hA!cTnt>SL+Y0YA=mxNU zXD(FvoBR;u<);=FPvP18wY4=^a7NFb_yv7L^zavV4(e8%{7+17VBwlH{k=sh~Q{sJFO_(IV1C)FNunmFp}~Y&@^Da)_sk{r&zVM zl%^)X`}2&~U&%C!)7>}3tqYor1jJvh0ugtxk|gkus~Er{d|V8G$(#FG(4fNQs|()7yGYuty82N=B9=I%jrnY%6GvX_ubz5(t3sKpjsEV{{or8h*WS* zIM~oiME)h?7*AvWwIv=S(`^fh&tZHY5$vG*ld74GVxno~7J{M;<=wPWd~UC~i_6I& zfBp^T-C2+y$O6Ih#6QiA>k&xN_>!%`lj0I)>GGe{_D%ZSZbfTB_w~8V!0^5kBNxMO z+DDr??VDMdhNOxKM&HlDcQOWViLYxT?-)Er&S?uz@L_1p66 z%J_lNFr5z@8$%CUdD0Sg`qC7)<<%uZI@1?7_Lo;zeZz=VQmz^OX*q!j{}!<2k9{Ut zykp;r@n}g(7^RX~sMWG}D!TBwRkXl*ZesR`eh}&R##T=bnyNLF@7{u(7(J5W1cuMr zS|~WDf9&)egrierr}ZeHZNRwfTU{_7aB?WsD$(j#1G!RXzfdoVq5Cf}{t;${&wuZM z*|P9hd>U(%O{?`xvl*iO`%|hgCu|OtF5|mxj*1*n&hmpXhcY=^*$mGohgLOt0=y>R z&2avGd6!mm10-bP^vy4_6}1DZ&#UUQ&n+xJVqxhoAxeus1WX!te>7)Hi<4uSBtR4= zUZ(K|{Ai1r@lEnZs~G2PErs&Z{wJJi-gAsan8_ER*1!bXnaoT|BU8io`%-XTW2Y9v2Gav1q8nwu<=EawMCQMsH? zQI~TFKaHfdRrX(CVgpeG)Yxh2=f$m>TFyP*?9`Y_x0Jf5>IB6l-e++2B8Ui?PW-~h zaMNkH!nbEFZEx~f2*zV0jp8{CKQ!DcEb^6RT%7^nO@JErRhp_rfRM>Xl(sqT@8yD( zQU!pD4`^vU#m`2H@2|(`ZuGWOfput$4Uml{0t86XqqI{nZgHijzH)wA|IZ%1l<^_n zO9S^j|FwgFYxN(IlVOqgwRa+ki^hx$Yc@P8LjbWdt;RMsYOJepChgo5;6!g$)4{jbUYBz=4;{#kK-hkCR+ zyBIBR^`np!bfDar_r+I)9J}+vH7foD`091ao}_o$S3?ZP>l~~#uPBUaKb2;NH2@UF z;P)3_TY$c@0mL1M6{fXnExBJJZJs`U#gKxSY^@yR6<<(&G>LFDHp%3owDyi}#VP5P z@!71jF^H3ol5105%9cNZ6oFf1`}-I3US9sGt*xEHU6oQXs|cVL62@qyY79nc>f&Vx z%FXvQY%3~%YL9EKBf5!Wv~GE%#7E~!=ETH=*lualgrBKdFz;ho+5&u-cqKEZ^`Lj1 z@jA4YxE=2rg36|^*0|#vmLZO28ab@xrZ(wDgT0Fncywc^8qB{*A79>z%gYHj^;2j0 z5b9$6FQ6WVeLG?V6)*9BMnx*pAEy2%`ttkF7d9c_=q4d(m6Qi%1{l|%7v2y_g4T19 zgjO%}YNEa4yMx|d56FRzy}O~xw@PBzL8rqSimKn6!4$+n_Wv>a<XT~1LMS|eqmq|bkHUv}!h^h_R$i`&D;@ISjXKor!= zEmg@OMN^Z7QVANdn$A|>=~f=mo%m7^)Z}}FZpP8iS|xU0xM2^3{enx$(o)4lKO}w0 zO}O$G@<+uIJ>c)bPun*FS3kDDWb_LL22@pXwIcev7xzM3RAac5cq~_B#hyN+IXafg z8>cH((**ZxP(kp^kym2^FWTf2XqC45n>oPhj($_2>pMOGH!3N2ZwhfW7%aWJ@J&cf z?qF8&uhEk=q=$avUtHqO;h!@*vxL0V-XdMOp%1eHc!;3V?JGn5PLIos<>PbCKh&b! z1hG&B#_J@LtblzBgqO!d-}6?6(Vde1YvrwOVHs!h@*w^cpE{!Yq96=Z>;&bt^-xt> zmK=02W|5$Hn2vf}#N2N{*MrN%At4%Q=JIADk+j5DT@~T|^NdKGsHCOsu<1Q)mP76h zd;kytsRVR>d6oO4#4Ml^euBPUhTD8H~9r=HUBZV%&yKoG7s35&(7_*?%8U&xSjUe z0+2rpvc~VRjNU&>1s~duQB)-I*EClIHL*7KxUEA+vB2{V)T2;R9ON7X(u`;ml8av| zN)<`SzhV}nUYy(7ZM%}9{PM8`i-nb*(WMtnBZQ`T8QabZu7stjURO&iOJ_pnW?(}s zC<&2L!8NETT3Abrv=G!5HWw1IGtdw6>(fk?j-NXN&7Ut=%;Vk{+jfo=NU`^|KHGU3 z>MKPgL8g@zd`uVJ0-G=}>~tXyw|VK_R)e}1Z0pb9I6YyqvF!QpN?ZSwb2o~=n9=Iw z*V=jn`rCT?l^wnC^7F1Iu7|zo#)^tsTKiZFe*16Vy88LvQ4RcC_ev=qULoISN;yu( z{D=2M+9P9QXY(6~lesEYG~p(-o7`@AJG6?Wh1WXZ4!)APm=JfgOtuGj!*G=z6UdVG zAbMQ>xtnlXDB7+YY4twG_6`q|fkD#CO6;f5a_))y0|!UmK=U@nbh1vRk!b3 ztHmA;?u3**Ux7-A({b@9-v7D&cV20Ubd3U#?RM_DfbSTd9@IcfFuw^UI-D{2xSDG% z_3Fz-r_ditXz4*mwe2HGe{albD!%sN&wlNR85?XC#4)tfzn9W@I?(ZMkIHqZY`t5F zzuQNU2EYFI=KXnKgMm^4%$hpRM3p57*TJu;cTh`vARNwT4cxN4SzIU~zrW5hi=Fvz z#BH%`D@SN}g`Ln^GQSVD(MFng*-AuYh|znCcUE}ESwx^y^J<+N&vyrMN(?sJ11>$n zaGqm;l9K-VL$mt)>|5vmwp^2V{HJE8R$*dVWIjFBytK1(XYw@ecwS9&-@1V8_E4s)6wx1sJqQjEToDu`a&S$ z;7x8XU~=$}Q1h%ZwE~0mV3g`YlO5M}i_~eaT;K0)SIJgd#H) zbZ;l_6agI!KAIO!S@2>i>5Uv6o5!gg`{UJ#f4aGrPO)5=|D`??ze% zcvyuPczl%jgFJUUGU0m>QkuB);qb$T>&YE+9FvXr6V7@uFI`vH*&HhaHcP{ntwr5~ ziR0_t>liF6_sP`Up7}E#2LH*W*B$F*_k1O=y94nZ&oYDw!KZ zyPRkv1_*4S273UCgIF_1Fc6tU+A%!VpW3i zfClnINm4vN=b{0=)?8|6R2-uLo%lkuy3=FtSkOQMma`^CJSSQwv=afQ#`ib4rB{B^ z2WE<+-QfVXMVTjyyG>bLp}!#Y9(0yY|AmYE;BR1|FWyCI>h7P&q|g@ben*$&f<&u; z;941iNZL{^D{sOJhNL+Bx=JsiM4Xl*(=?@`#)3NcO;5Z6^6tcYCR zU;P2m`9MJ1fdC5V3>;s>%xw)F;X*M2w9Y*3YN_n6(}cp*DmDH2y5aX9LaoP%Pg>u) zo3IOQ=G&-*Ig21e1FQ$nepLphBSRZ*<>#UpTOYr3yk+<0(Q7Rp5ZCr-0KJP#jEG&t zwGM2Z+@1K)vr25-i~kuudxRs#W2t&zX27-w234N8DjyzK|>0^EJui`YU*lQ^4b#3gL&0@d@0~pB=J!J+Wnatwo@c zmh~U^J?d{1GM+F6t){eBubrG6af_)hBHhJV6!C%;FC{Q#ytRt&Uca`JR-e#%vl-lU zi-@c?mi7=V8ZT*-W=V3C?q++ij)`2w$Y7G|nXN+P&@fP;pGbR;sz5Gd6b*DUPK86V>1)-l zy0=l4D&ObRcih92U`dRCgHOJ2y^jpC??b_KRSNB9HMCUcT=H;BQwc(__e*?a2oxT5 z>iu@Rk8M!;*2Z#BVkB=eKgiwYdb`syd`m%`S)9|rphtWpb{wMgNXn6(njFqPtl3(S z0>F93V>8*BZTK$tx^;+Tjg+pnx$t`^(}8GT0CJ}n)fBN<#uM82O|bsWVn~^kmpIce zk~A;FZ0vH@h#+Rz2wG@{di~r2VFwYS$lhuqV?tAXTH51*_NLv|z>eMcLJsK*<9hbD zsK|rg-)2AT?tM6U5qLPW9;K)^CUo{f2m}jX@I|$$5oH
    pnGMNrr1C@*_JL|<=jy*GyM{4h1L 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

    8;Ig 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

    {Z=~lq0Tu`RJAM27+iWN)% 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 diff --git a/portal-common/src/main/webapp/common/image/mainpage/pic/3.png b/portal-common/src/main/webapp/common/image/mainpage/pic/3.png deleted file mode 100644 index 83d03656464eda95a98c8554d4dbbc3ee9233d37..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 65383 zcmV)HK)t_-P)KLZ*U+5Lu!Sk^o_Z5E4Meg@_7P6crJiNL9pw)e1;Xm069{HJUZAPk55R%$-RIA z6-eL&AQ0xu!e<4=008gy@A0LT~suv4>S3ILP<0Bm`DLLvaF4FK%)Nj?Pt*r}7;7Xa9z9H|HZjR63e zC`Tj$K)V27Re@400>HumpsYY5E(E}?0f1SyGDiY{y#)Yvj#!WnKwtoXnL;eg03bL5 z07D)V%>y7z1E4U{zu>7~aD})?0RX_umCct+(lZpemCzb@^6=o|A>zVpu|i=NDG+7} zl4`aK{0#b-!z=TL9Wt0BGO&T{GJWpjryhdijfaIQ&2!o}p04JRKYg3k&Tf zVxhe-O!X z{f;To;xw^bEES6JSc$k$B2CA6xl)ltA<32E66t?3@gJ7`36pmX0IY^jz)rRYwaaY4 ze(nJRiw;=Qb^t(r^DT@T3y}a2XEZW-_W%Hszxj_qD**t_m!#tW0KDiJT&R>6OvVTR z07RgHDzHHZ48atvzz&?j9lXF70$~P3Knx_nJP<+#`N z#-MZ2bTkiLfR>_b(HgWKJ%F~Nr_oF3b#wrIijHG|(J>BYjM-sajE6;FiC7vY#};Gd zST$CUHDeuEH+B^pz@B062qXfFfD`NpUW5?BY=V%GM_5c)L#QR}BeW8_2v-S%gfYS= zB9o|3v?Y2H`NVi)In3rTB8+ej^> zQ=~r95NVuDChL%G$=>7$vVg20myx%S50Foi`^m%Pw-h?Xh~i8Mq9jtJloCocWk2Nv zrJpiFnV_ms&8eQ$2&#xWpIS+6pmtC%Q-`S&GF4Q#^mhymh7E(qNMa}%YZ-ePrx>>xFPTiH1=E+A$W$=bG8>s^ zm=Bn5Rah$aDtr}@$`X}2l~$F0mFKEdRdZE8)p@E5RI61Ft6o-prbbn>P~)iy)E2AN zsU20jsWz_8Qg>31P|s0cqrPALg8E|(vWA65poU1JRAaZs8I2(p#xiB`SVGovRs-uS zYnV-9TeA7=Om+qP8+I>yOjAR1s%ETak!GFdam@h^# z)@rS0t$wXH+Irf)+G6c;?H29p+V6F6oj{!|o%K3xI`?%6x;DB|x`n#ibhIR?(H}Q3Gzd138Ei2)WAMz7W9Vy`X}HnwgyEn!VS)>mv$8&{hQn>w4zwy3R}t;BYlZQm5)6pty=DfLrs+A-|>>;~;Q z_F?uV_HFjh9n2gO9o9Q^JA86v({H5aB!kjoO6 zc9$1ZZKsN-Zl8L~mE{`ly3)1N^`o1+o7}D0ZPeY&J;i;i`%NyJ8_8Y6J?}yE@b_5a zam?eLr<8@mESk|3$_SkmS{wQ>%qC18))9_|&j{ZT zes8AvOzF(F2#DZEY>2oYX&IRp`F#{ADl)1r>QS^)ba8a|EY_^#S^HO&t^Rgqwv=MZThqqEWH8 zxJo>d=ABlR_Bh=;eM9Tw|Ih34~oTE|= zX_mAr*D$vzw@+p(E0Yc6dFE}(8oqt`+R{gE3x4zjX+Sb3_cYE^= zgB=w+-tUy`ytONMS8KgRef4hA?t0j zufM;t32jm~jUGrkaOInTZ`zyfns>EuS}G30LFK_G-==(f<51|K&cocp&EJ`SxAh3? zNO>#LI=^+SEu(FqJ)ynt=!~PC9bO$rzPJB=?=j6w@a-(u02P7 zaQ)#(uUl{HW%tYNS3ItC^iAtK(eKlL`f9+{bJzISE?u8_z3;~C8@FyI-5j_jy7l;W z_U#vU3hqqYU3!mrul&B+{ptt$59)uk{;_4iZQ%G|z+lhASr6|H35TBkl>gI*;nGLU zN7W-nBaM%pA0HbH8olyl&XeJ%vZoWz%6?Y=dFykl=imL}`%BMQ{Mhgd`HRoLu6e2R za__6DuR6yg#~-}Tc|Gx_{H@O0eebyMy5GmWADJlpK>kqk(fVV@r_fLLKIeS?{4e)} z^ZO;zpECde03c&XQcVB=dL;k=fP(-4`Tqa_faw4Lbua(`>RI+y?e7jKeZ#YO-C z^pr_NK~#9!l>J$ZWlNSNhV8-3&T#MbDdso7%$IXkPL)+%U0vN()eu1efGI;DZQGY$e)-E^ z{?d&bw`R?Z9RmOWm>D9P85jU45CA|D6A?2jFDReQET!BHaXoay(1QXZq5&Z?GoT>? zAfgc>5g{T103s4165-yLz`%PSst~*nA(Wq-Qi?eN0sv@=vRUT@8JD?I?Wz zk0r?tJQM31OVq8I^Xv_5zS_^&1REQIygMkESghYS20FatwKP=7-Qe}W>!^IUDqk4 zE~X*Ix~f*o^M2FK=JTeh7PI#F@F1(kuCGHin>E)CXD`3<;)~z>_3!=8zwXMqEDNJN zay28M;Mh4p0)uhks2Ktn0sqc()2(b#)tZiqr8aSw$s;O$0tg5DCOhG_0BQrqU9;oF>6Co2Z5FrT~AmX@? z5fQ9xGB5yB15+$ZNel?GBlH!uj#`HZoWR5Ygj7gWQcQi!F{kn)NHXM%pkBA6MdfdRp^PRa^2+pehnf4}_w? zAflB6i2wkM%y2(c835S+wOqM2Km-CH0-S>4_zS80Qa}VN2Z~Lno)H=VQm7SC&71+` zflxwQRZY{!ftU{$b94x*M~4Sr`|_7h&(6*+&a1lWyMDb|HFb0I_U%0M7Z+zl?7TZ# z%-YJCnqxzgs;-Yujz9b4v#PF|wi$-xeYNQ~Ip@u$%OawhQc}%;YHFHdHs_opB2!fZ z1t|FiGc%KjI7bfHF&O|560!F_4ns-_0Emc)%6?8MiAc#^a!OUGrBOADIcJe9ia8^p z38XCReps*j&1NI24zZ*v2B~hd~tAe=zNvLl1TX-Ip>_SY7!L{B?LATRU+E1 z2{R)kA|@tc+U`99BqTrs&}l{B_RO|%1F9ha<^ZlTAQVr&2Ug7>BqBNIoF%1H!Un65 zD(!aS{+V1p=;|6p6xEz_N;!+Ds*08?guOdZcAY*Gj&^I&O!nS#`PhDUfB$S#)-hbG z?tgdxwr}s@7~5bQH_U7dNPlx%@SRKt#^tA{0vID&Ip+{j4Wnd1XOOa>C}b7Wq>@z)5kWJWmf8jY z4Rx3J5nal=%*OnJ&;U}-nqy8w_AUxKbYtFyfQC~r!RJQI0lU|^a20@knKgIav25) z;0f6`DJLJift?L8r<|d7PDFqm`Pp2ao-Nu2Z{8Bqs;vR2o!wkstWmV8>iXvGG;}F$ zE*?K3YUgb;^aG^SUtB1<`FyrsE*)Ug)M_1|Un6$w&Jb3sCCujrXeN#wGpQN?sDg?O zLv+ril+3JYTkpN*IEZSNKIIf6v+IYXs)$h5fQX1ld1^Ul=iDp=Lh{~KRgDNaCsoPW zvRFk-sGix(Qj*j2&HT~hq3ay(J+bm%Q4m9Po}F{fBa)h#s&`s8jHzVF3^FNY z(X1+2a>C?QMMTAN*6HROJU@-Gl2b660hvM0cF{xhfQ-q29a33~Rzk&;7maDwc>0dH zL@Ba&sXxM{gl2rFW-6j0qMEaEDVk`TC?SB3Y0;H1vfT+KgqEE?9ua%trM&*iKH2W5 zF&^yl(cN#^+dR0fTS~31+sba*I@^N)_ueidngQxt zAwteMmbgh_P*FhVY6Eah(=_dRy}ohd`l{MLg>0dOo#{(`hGwFW=bhBJAm@0#;`mL0}{0% zAfg(WYTx%|52z+HAflW_Rm!bq<}LbC(2krFf-}RJ50NOgTKk%!tOjAYd2Smf0AA$=89{D--RNy``F+a{F?eB4SDHwkwXd z6~sbtq7A~fT>C3hq^YnNFH{wX zKuvM~>hTg@VV6&$=UwTpPQ09FUOKrDqoxw7z4r)&$d)y!Wij@ZH<-`o7v~qt<*Gec z93CzL(&_m!)ZRM}jsVOtV^z=VM%JrCh$n}~0`6?R`RLK3Zn^GzU3HHRQUszHlZYVT z(D!9cZ`SK_c_IoRIcFlak{)ki)to^s^?gdI>pDcNt4efxNJ-9ld!m_{bFOV$=bWmV z!7vPE^%ii&%(|{)hItcItpEqW*q@(2xciwSCcJz{O*Qu2Fmy3iNW|n|FLMVZL|_DF zRsnUYqUuY9ucG6&sp}Z(zG^qaFvJvdjFNNCBAQgQs(@a4u!v|z1_o$|>X62wMNJII zs2qG~fB=qAaY{d?s-z%nW{T(#v7iJ~h@JC;JH-5i!%a$1mq;yP#B1KpSro0$542)W8hYKy@#qd?EHVMvoEy zEvJha0wR)486923`=g8Z&$5{4>4V2uJ0$Lg&OjJh&2qLO zXT`A=ODO>&FlNi_T!9T8f(-pwev7E;!D3O@^=7jnW&q0>9djw-%h_F36*G&78Vo6? znA)Z?GbVB+p+pdoA?28|4;~#OlB?YM@dH;1ZY12VP;-iXKlFWX07MR9Y;=quJHixy z5RsUXnarT%6RIkr&IK1jmFkpYDP?j>F{YgR7>AgWq^zQFX_ zkf4${?Jb6F%C$|c_L3Q5avqQkP;@%f0aRtXe3_AmpDh@kjS1VeKJD$@NnEOq=XOr^ z|3E~{j))EEU#BM0M?R&gG&~j9}*2_5DzV zFrUx+zGvoZ*H3cFXXoby_Cdsy5)qZ^zwi4j1-!XbXEJjY0x_55$OTtbmE`P0=+4g_ z5fO1&CEG(Z)jbUYKpuB3_EiVXn^P`>+jL@@2@{pUXZVT7dtx9B#Z8UTAR&5Amv`edp{C)XE9 zYG9gUir#w*5@SMucGh~PYqwtvCnuJAdh!H$>jxo|zFz1QDR`IwW-LN`^F>&9)Ds>wC#Et{?yran4m$HJ0*{ zyDplk_rZIADb71r1s_7#tm7~Y^Ti@}y~Z5-!R@VgLLe|i1Jj&RKMYNYS_lO_CPG3P zThT;hM*9ftwpmtIF%gw!e(B1os)V2_qMBmNc|M_L!-zObQW447OjH%r(6oS+j8+FN zmzM-6nyMl3*zzzaSrdp(Y0G#e-iO8FG=_(?^dk&d=EU#e648pRZunV-08{>!Dy=B^My1vS+@aL%Q86TL=KbNJscU$@^4i3Kb&0qVi)78Bn|NMS$ z*mvw*X>(*C@}49D8i6Tes5n$%hzS5BMigP^xb{SpQx-ADuBrl>GQzs=vgPsVpdo?t zuA&+MRIRKy$q5M^V{ly3EkjaKX6LKmoO8}eN(|t95X~_SC7#fw^T|L(a!NU;ly-4u zVwoUKA7iR}>4Ol#)WkHaiS7<&$IQ$n7I^0h+C2dPrTUK|q9Q6O<(yMgiK3jqkx2ngtE zw+F9owh@9a{YJvEbu~S%Em(IY+?5&{02H@n4*~#}UMHFfJ=tiV#50DfnH?XUpPh?j zWRHNMX_;BFR86CrAq|)Y>Q1}A{L{z3cuS71zxc-2Fw`0cbI8YwZ-4jOpFVi>58nJ0 z)-|ahAv@=gy{FzH0Opw00W+gn6T+tJ@(`;KX0z4>7h|#{$mH9m^1)Pc&W<_wuwJhb zz&j5NXlNqrxFGEW)-)9nBSI-`*twF-*TE4Wsx?(T^c^Y&AF@Ku*-f!w*AT?1d0Fu0 z>CPg^{$@cUGAL_t+#coUlqe>uS;kJ>_IVId>5VvMBOoH@)GU<5tb`hstXZ;T$uY$~ zORgQafr2MgHL^^aoti1B#XPPhq%kOtX-QcbOvKDgbye4OZKlL-JX#UivZa{1uGa87D%OkZ~Lty1OOmF14T2$i%fmC zpkRQ_;SqbEvzY-pU-=3F2nWdtR4jJVZhn&&WktbKB7#&Xe)EFWV zbi&xp#7s&zqI3cfQ56u!AfqF`gk_s;w~(1-v#cg!V6Y#rXezO74>@IKA|BCNRm&4@ zR@I`(BUDVmF@g&8A!EvDARwlYSb#tY8G!%=5J*c}LgYdSH3Mxno6WjQk|jzuopf|&^r&`8-ah*JTYcnl-hiikXw{DynI82|#1 zf{qzSvbFF57-=--aB%38#I83L$BYCBj8<7@LDhblvd(Y4=og=McORa8^3m<@{2GE# zN)nSA+diP`ZD$QTK9p>}ZCa%|AREs&Mz%l3C^%>32+8ZZ}%7>9TIt-pL zRKWmJO8w9$0cK>dobqAYBB4mG*n4IXMen>1l%?|CoXaVhW}pVmBxaPp^?p_b6BQLu z0|c|I=qj#cSUcML*quzfqVFnVgNSBQzNu5GUHYB7>=vxBU6L58A&yAs1elGD@hd4c z5fT7012G9XcFsAm><}0c8B7fWv-yg8O9_%tVjK)K!>*l<+cq2%BjLJRfBfkuL(12$ zU3=r^t94!Hl-BEwh?;1MX|-8z`kuXKSmJxi>KAHZi z1vS|Q@GBMh4xBKU%6T+G01JpnY-Y^Nhz`;5NDbZv`6>990AJ`s%*>9-5YSka8Q3{6 z<>{uW6;d}&^h{LTlKr@Ja7Jtz*;Jl(>4k#^L;;A9TwNKE^u6TFp2-F0D$6-Lh!-K6 z+U-{kUi`Fr@AEb=WW}nrxWpJyt)3ly^_7=?^^9MI zq+~j#3<_p}nLRu8-Zf2Ack4CPVKHl&**gx-Wke?OO;fj(LpYkx4h|39Se-BdlNBUH z3sJFzao)pEwk#o?=o3~H5hY?7?w#{><(yN4 zf&+tDPO0y@oTXfabIt%tT3PtCwzvBCD)sG^>o!f=uj99!;QiEV*Ju19#y`NQX8=Q@ z;OR!|Ub=qp!tKS;eBp>wO6UFRY#lc-OUh8yM2^`p^Vly1Doj2CWM;?SIW2KKAe&}G z6f?feEqE4Du!+}Pc8CHQXu?oABrq^jO-vv$qYvgBdk-RpfG#Ma5;2%*GT{1!*KWLU zr+@H>&;v23f`|FhYE#;Ab04d6PJyokJw zPNoP53We0W>#C2Z`ADq*ht3F0wL}aea*T{W#cWv}QtF3?4<9~y^r)%o#bUwEd2-u^pFIb|-G&?6*Qot9 zjgfts*Q5x!8d%Uw1qnR!LB-cwdSPxa&g@pji<*c?ygR_EO2eaczKTPRXmv$M&N-gi zVWlE>-n*Q=_aTg#Rn8fK$+4IbTqal(Zc)Q$_6aD002#nBN~^t!BVtN|tO%^poU5@4 z!_c7!IVg;Sl38ey>H+BlOJEa^NZQnzU=_bP(e*16SOlA8e7v=Vr6wQBZo(A z)rr-!HaJ@KotilU-_})CwLa91KV5DR@t|p{icK;Bf+!<}y7JDQFPFhH8`dGTwO`Dd zHiS3~%si{=G(-`J0EDeWNIBKajZ-gzjmrq+LkO;Js^fXHm<2bc%RDApren?_GV`dw zaV~ft!bl+n1m|3GN+R3zV81`QuU0F&czhz|%rh{BaDI3BV=EtJl7MXW6em{CRbJLXJT)su@XebmQdkTrVoJnTe}B13gL# z&NT-!aNKvD1MpR7n>y6NQg#XgXl6%?`KP9SqFOyqDV*gS{VjlEF+0sRCVIGlj2s^QTRrNWe2Gm%D4+lKrzFTx8#!EDI%JP z)k8xmx!_j4>8gFf%jSqeu7u^hYaI?S~;$Vd4Ej zJrB$Y4QoFv*WJa%kN@J&-~Zsl8#iyh{L+ipUwPx`_}aW}=D|E8lQNNG=e#d9fU0ea zwCz^e>VfwYuzgzb*vv&%00Kf#G%x@u#Rg*?xC&G|J#PJt!}_QRi`uu&*WMA6h{PCk zjA&Yia7}f{8;cvSJ)sY-8Vma|eFY1ZDwf_P5vuBt)r;=vUsGQg5gB)quifqekirZD zi_44rvoo(oQY%~!VnXfwslok^=#G>K~ysk1*n``RH1U5bEc*N zuvuNTb=Yh+S+WmR>)nl$qnp>S&+3}cOcEioq2xI8O-#vZZjrnQwjP+-y9OzE)*M9* z(7C#HjVF(81caG+>ZCa5Lnvx%A40g2QS2X_Wp9*qvIl7vyh+O^0|X$QG8Ein6J9xY zx9TlX*)lc^fKf!ohgTXy2$D4C*k7#9pFDo@;NHE{$4@U-n{J4bdR56uL`+o+yueH) zG7jqw5FKF60UfDBB&jv>f&OB3@$~7v&py4s#+UpXwD)Kvu&ApR_Tyq}(Jzq#MtyDUW<3u(u0=J7D-tioAMhYekuhohsT`N7d_KCkN9 z`;c;ueV>P3RSC3lT$}cBNkh#|Mc6p+c@Kz3ATT2G1^-pmpdg~7#%1CMZwdETz`aT6 zW&jXV&YN?NtIhe@dU+A5fPlmZ1^tIioWazQsY#B*7W^#hMS!eo_~wnA6$#1Jq8$y% z1%Gt=+Uo2gEjNVf2g!O4iXE4Z8G{|n8br-0 z&DvSJ@W+P-M+b|_J5*tWD%7Zo3QPcC;Hcu-5t?MsOa_ePy$_70-T;A|^B$NpsvC*2 zBUs5u4*&=t05l;ts){?p1(o%oJ0bUkF4_1J z6)^w>RMc%3S=B_+(5+V&XZIi8zxVmw)5nkdb)U6Jpajei$#H2kAcAd)Eja2}tna!f z1l^Dftm}q6}zdELyKgZcchoh_=W zLL@V(Jw>vi>yQYL0IhX;`UL|y?;JB2Dk~8I5qU!}Ks3{!U}{&2&#edE<5KD5ckYiyup<(XUirI(>Tsbuv5uH<#c>V}a zTCD;jK+1?%9~~ZEKe|Z5fCR=Ko665}rr=ggof(4>f`XNPHWM+^ysd%{M&A2CWWi$~ z&N~fT%(*DDB0Zv#R1_V#mZh zR!#s#2!#M9(mlN&9)8e0{d{%*U3u_Jk6Jr?0GJT#gV}HV@NfLa4}LhC&AfBvg13^a z2~!@?R=eUBVV0db9}1pfrhw`k)m2k_oO_!GJgE727Miwh+ECS1sA}(n<54W2BB0q3 zh2XlbFYGOn9#n7{tU9#1@f_HBG*T60LUuln0!=d$-BDU#r=2ev$dTG+Kzj_YqFW>D zm)dusss_*}k00K;{R&WN2oM1{&>S}jm;jlW^Uw`zLjq#eLS1I_j+!}dKC!UogBh5r ziAwg~w@2;zd<{97hym11Ggnijw(>&+7G*+5-lG|z_r9tE5sF%97j>wZkXcNKYO=Zb zZlgnwIoEYvhbn|nRh36{2n1@(**ek;2q1!LY=FcL33QZ>A_6d&j8VXCu`XsuRQm2X zmGNb(V9CRGfu&$yTb0vDwB8Fbsz^Aswsk_f2uw>Ke#?h4H61^}v)ZQT(?HCU=xWnn ztTvXVA|4RMKvX8RVEHTnXrkNtA?Mup{d%?P`(8v!w&|QBECm8GQK*7*6*Hz!ezAG{ zIcU=E+>z02ma4{7*Zt=1y-yDpN8kF!w~&d)ZK*|Bu&qzPz>JFM;|d4fdkx;Rb7f@` z(tOq)H8k^5p*F0GhT55*x3k6kplaI?Y6O}*5Ht?`kaA8DL>=J}qpFwzF;%A4EMT#4 zIQJZY0L(ebj>MRzHkT<}B0gTm^TseTN`!ZsNJDn32a>b8diK({zs-RzmS^+BnFC)A z8V@lmX3NM<#7r!op38deM=qxUC{Uo;HFtbX;u`Y|1wmA^peiw7MPdXZtX4O*3)PVG zQOdCFvx%CbL|@fRK7@)qiAY^l?QG_q2URqIw&J?R)he#e9OL}psI3|nV<+_Oh#ycD20tv42u}4tnVwkVqc`OOZ*TKfRL)HwtBuAWVu|e z*Q??rwg)}g` zXY&wRBuHtHlyge`dKLSP$)F-=#+D`LB&uLpq^%#ptrv-%XIFl$5Hp#wme4RtAh&mN zEE?^SKhh|@M*~Ab1~!2Ej~>1G<3Il7mp_?#`@P@(?;XzC)B6wmi?e!mhz>oPWmgdc zU@}xQl??sLx{aGRh{h_QplA|mJifsX9vOiK4{I?~%>v+oojDa#)67_LRk0I05E2~# z2SxyHLIs}D3}W(Cm>nL3s!GtvZPP6>sf8G@NiiXueaxq?iE z8!-coMZT&TQ8r*eFc8HomI2I+4G@byafElD)zDsX24kYOY38#de5$(73McY$BR819$0a47vkewq$grdPL z90D?&hzS!jpLX6@TQcZ)yA8pS9n8Y*llEj*vkoe$Y3jqnMeQ5%fkF)&3`xx-rJ-M@ z6eaet+oZIfnxDXcK+wn3Wuf)?fhw~LjH7>wp(D_d0ljr9giH1T23JzVv6BW?D9Vq{ zR{!L``g?bO^iO!WIC}BU{P=iw^G-Ei^pEd%PaoCIfiyEVAq59$29DgI*%A1r4&JL| z%b5@eGg5=iJi}8_p%4nQW>6C)@{WL#sATcM$T{bOXJ(|qbWkuL3SK-y6acJ3RfT|{ zj)|F33{y2*`<;iU(UP7BH_UMItl=P{kB6MIZprz)b9c0|KV5 z>tb)r*$89OtiMX z5KPZ{b6rZq2#Gv#Km%eoufyS@U9`cnGsC7?RL#uSHMt6jbIyI&_nW?7EiG@xastOxz4|M(yN zi@*1u%u&yU`_0PDD^UQh0V0H^dHGAR%aD2@A}}^VHNorwUE3hkx*5Dy4Vli@^~}&Va107=uFXy|+3@%1NZqlN>S!S5;biz>FpdkdPhw zfWf)37%t>-LC9zsC!7XF3NaiIhzZEBsPRj)-B<`fBtnhf{M+?6e*-G#n7PR9edT}n zy>I-+SH9F#VHl!X@BtvvE|5np`$)xY`Mf9nT7{PjDxZ_j26=bWiAWAGj) zxzw1lOj+N~+TyaFc49*!5i>C$7@`lMZf0#;W3B+fh1z*vq%+9QBZ;VUy@82nDFk(F z3ONSRB9l!K9Wkh^FHYb45r@U*@J2A{3>VjKUprU?#|ZdWTi}&%ONp@nhS(eY^cO$> zC;y-S5Y`)*FU~KXcANFfdd+zc=#Usx5W~Uk7v?OHQNx zm?rXp7e`1Q$tjW@+7uAm^Bo*b%a7 zB0>({M2UzTgKFXb(3s+wV>6*U8*I1H|i-}$@#jqgQAn!$}d zMrL5RdF}Z6!J(QC-SXn>DT4RTk>j#Vx9sh0wlV^#h&mD$(Xg18Aea{K2L&v)pEQvg z4Zw&9(2PnS3K3Kh&50Gg6PR75e2g}uW~M6I#dLPDhS2UcTi^cH zD=)k_o6o)T(>5@g$eK1~qR;9Ri;SR{Vr~NqF_sW6WhZ$it|}CuRf?H8<9T8KPQFPIG?rVf>|RZoC%FR)R@>{h;|u&5Zc3;u;Cq zCHUn>pZx#+zyFbRo4P&ex>Zb_nSg<00U{%3IhhhRGn8nXbvX&qGMF(Ki%LvrWCS9S z3=99vG;4Lpl7Si7iw#-j(Zlmck55l#Es--Z6`_(57Ck1IBPuH1tOicOGe{-@WJf4O zU@D-BNGPf?!35|SsA?{W7M6Y-5)hdPFij<~>1e6OCOXu|^!?v$-uSMW%UMa$ZPR4} z1|T0oAJ?DWzxOA9^2aFPoO8}Q_G8>(n*K*y{clk@IAW};*}-u=Uxd0Q*jeYobVMOi zVMZFD1KPIeadOQuBN#nJ_8c51A4dcyR7jud+#h7A_zNue*>1I>;JPaM! zK;)exrY)_RrZ&UYH_X6|t}%!^^MKL}M+AVBvgAl;ZQD{@W&=b=-Z^Fy$dVC}3@v9t zG(aV!P}Q>;sbnHaol38kHG_(YimH?nFUO${u4-p(O)W>}8e>Y``6^3oR$Y=s;4|8= z5`xRuDGJ_w{P>Ul@Sm+7KCPSi(C780i#dbp-TQYxfAHk^H8M?*JH(LsH6tfLR3!xy zB+CejB49enzDzTe=%)b4y}AlQpwJ?(qr^=g)tJyMB}mb79BX1#)8a5nfIy~&M~z0R z3Xs9_7#vhkjLa+zmZUf|n}OztDn+M2Olk_CC}v=&1!+>yY{WziLyFBc`tIMs*S?;? zA!1;34&10_#L_cyfJns4<>puKe2~`}sq|V$S?|u2blL+1G)hSf{qf?ZZ+-KnS6`nU z9qn1<6z{36Sx1FMpYf`EFNj9jf=*W_J%zmATx9Rgo8|Fg%fjI6frD^eIRh$g?Fk_RGAJm3 z2mwHFKFnt1o%Gyow;?hes1Ry2@R8d6*Rg)Dp=$L>=&4RCAdHtn+6RBU7Ot~OMCFch%k_{w8AY@`? zpd#;>Y~Z#Exzf2L07itILCkVe%{G3wAh0k=8zyUy5>2v5a}<94_vNK;L_x{Oq-{;L zCpSL9vQv1(gqXc!hnR4}2#dN7Css~d+*ml!d&5n<}T6*ffq zwC#$Fgz_Q>A5mGf(I{*jimNsL+McPG#P$Yo{tXSx7Vxyl%nQZ|$ z3UA1)@78LvIJpIAsi`;QvUy|z8xVmZn`R>eB^65&RW+bhL^XNf3XL!Nyt-I!M!ee0 zAmvzlckRXv&wMRXQ$4ppx z_Dx-nc6$b@3aRJe9A+oTK|rQwY+51-jXhjK0!GPVstBf{sw=D-=LiVvrad`H?xwSK z7rPC4^2lgV@>?*KEJT3BrZz6tA{|%T4a-3yKvQAoSOG*(1PzGLh(`u$LAwZwA7812 zN2a`(w1?q0|2z2Fucc@iGD7yuo*bB!J|iR2==o0w#6U$rOSFY<49DVl59=(9hH)xK z!QRwHkyg1rn9Ncqf-r8CPqr0F(!?N^vTbB!MeW=zPz@0bZB(yrt?x|KxHu#f>n|z$ z0gI8L6%z#qYHDhbi%!>U3?~38x=9kVM1c&1M24(5`tAW2_{RvqR0qVqgrtHyt5Fsb zb2vpnGn_C$LsL;1*Rf5%d190{2Uwe#bxaS%-G~^RIYU$-R53LHG^4CJ4l3CpC@7c) z)VV=xf;r`^tFAxaTWpxy7`{XK88Z z`lpZM>D{#t}2=(Sn*p$ZfQ6OAnh*w>9aM`e|o5+ab6 zddSq_zT3ghZPpODKzy8Y@^kv$-+`CE7LyoK#pIYP&uX^W=#D&(ldz_!e#;f80bON{ zT+M84Z+b`JDXJ+UZ?Ec#rN~I$8bvIHR9sfi#Cm}e1$R$ztdeQ;1ld~Mmo9i#r0wpV z21EgXBM#2_o$)*D?2SholQPf6q_~EUgq(@@ZzG?7k7P4;>1;G`1vFqoAXJ)M?rl1! zivJYh)S%esk`|~O3uRu&cVU-HA1s=z$ty9x(UbQE)_9 zXUQRiz`UrcgQkYqYfhL49L~6E%rdhFA^?U!dA}1igyIK+qzH!K0LWC$AuxdwiA+?Y zo*iRV*G+7PA*SrOf;MpQJZs5$D?YCVju1dW6oJP{NrG5L@suG2Y7kYSc<(A0u%QAG zpixP%wnn{(qXj7xFcx!8T<7ooPWaMyx`bJTNZY_|6%1gxPJPlz0XG`ir(%0L`aT2j z_NJk;0ebI;<+#7GReLS{bSQ_jm7N|~?ipkbqrn9+}2L>inU>lcpQBA2S zXyrUWO#sA1Wz5cGwm8}ht4RT*MYD)b1FUr1uBLlK<;Em-{P)|_!xTx;csy22OrZdf zQ)MxAa)MC7i7#yC2 zPz83dm^C+#j&9sIV9k)T=D~rQtLWem{7lzKIo_qXKO-(HpTpw0&2L zX{Tsl_Kq2NB)k|*(w0$HW;l`x3`jvQy}@Z3&z8G}+ddqO8v(Igw(96(qcV;>8ohl~ zpEJ@+4HOMUGFUdKiLSZoF!(kYC=(*MDlw2Fl$_#_R(%|Lg@o)JImt4B0%KFTgL#v~_j<@+xgJuC>T=2~9V)2^D3DQUgduPsLcQjL;H6HDU$>QpKEsZL$`la(I!UG8z$~ z*^rA+yey3gD;j4jA{t6YMI?@9^7{9hZ~kT`C#nvNS=-7n!bPWjQX;Ax7GEM{W&_x4 zHYsJzxtIvTGoxpozfa0mn#^>jX#;;PT#wH+BfVsyjn8h#a%vRa#+V1$lo4&yDm5^$ zq#&lIhP>?tZY^~8y{z$)+vsJtcbk-G&(Xf`{e92ru|yLasp(T+_dwBNO%oPPbvUb+ee8#9u0FVavp&97pIob} zs!X*og=N2qSqnEAz_Mwf7?--X1j3S%d8WW9lAheZzd1k4v2UBEe7AT&rz98Wt6%=| z-PgYMo$J?YiM?@ceP^~&O{w41p)HE;vMIM|e8D_R1TaElGR>5d^?jbrta7nWBBtbA z2wYXZ9Hf-m(y=bT(2AL01T}W_jVO{DZ&K zbGz9jXB-^Vp{gCNy0q!D0h>zGj5Og<8Q*t(G5Ot<7MGl{zhL#-wnVY*aFV~Whjq#G z=UMZ(E1q#%gTx8GG*MM6#8R8O7F)IVSj&}e_jY)}qzA#RZ_L)^*QR2~E~^j`sZf~5 z9?p&rGflU6t~;<9mD!44cv9dL9T5!z^NX|QhIfQ%yyqgCGe{=QF88%&1trif$FA>S zvKh4XtC>uIAnOu5Q$*q3he6EqK<>2kt?G{2&WSljKCE3yhwmXUuzn-qAKnUe51YG zx2%$J4C(XqGd9Z6$6FMbTQJKBvXsmovv5o%J)i_oCg3VWtDH0)nF1hr1WqE9qY;1$ z^R`_Mamh12Iz*&C#*x@&+V$OXv%EN8X-bY+Rfj&sA?Y{@a~xP?0PHxn4J;O(5j7HM zdvq+O-Fl_{u+ae#=b@g@DnRU4XPS-Lg`Quif-)n8`o`_<>7z!_z=WpRUZY7Y7dB9t zzoN)M4otEM^}U(GZ04A?wD}EHGJ+LLURhViDDVoWTi zF~d|cPt$RqYtEx1V`HjLM@Q;^1&YMgVV@JR^=drX^Iudk&7cCtdjqAhz~`e}6~;k9 zwm*+;{0U^Zm0Z|%Fd+i(V|%09U-90>t&`uFj?u(N#<4iwu^@~5bL1M2KC_oXuZQMx5ZE~cBp_4*@pWzNki41oL(eIND%EwI&HMR~7w$xk zuUCtsx>+<;U}jbE=-GVj<|Um5fHEg=cS6w^+laWT!lDYEX>;@DljGy2npaiO%_grm zwi;9<=5(;Q{`!k|;&OfV=<(sr8%Uf|biT@n;pmztC#R<%hA2d6jAB|k42(pEDkcO* z0FK8j&_>d~ssfRUnjx1$0u%vN%V?x+3(QP}v81=WV|+|jbH*%LVEYiXAfpJ3qjNh@ znqBkX{e8Rh@-Ubh1P_eZ)J_pLoeT+)pmjKF7|1R*srU<*i6s_ABxO_(kr6oEa~rxm zV*__sFo0feVHx}tTLq`w{z@r=yJ82P^Q~Qza*q*oNa5>HGZr3AQB-$j<25Ie+Z&3)VFVKV0E_cmxFTQXo|w! zyASL3!*9*n(6%~10t3vsJAFbfwAZh1?%h*S@ZQuM5FjW5;dYiJ0-$YMajFwgVvxm5 zsK9!vXhsN=;~Oflk&Z^MQbx4OHd!eA!7b!s1ch>|h&0kBigi&^qV&z*46l8Cvw^-J zz=zsVTahDN_bDqFF_?HJGU$`7I&oXGc>_}{?KKsVQjL~A=RPt#o&BTgVobXTP$!hi zOyO$RWuJCFfl~XXBm0=X?GK~7vWv!wX&TInFnaLtrBOksD&zPN1OY?1Wa0=wV7kw} z+Kp(#EnqRi&$c&H^77Ck+adwmv&2Rg0&JaVo|94^*xAVhTXw#AWZ%4U9%9$2_dP;UOBP2R@A_K2!49Nc^{_nUft+{Er$e$3K+^!UO#SJm~hkL!;=Yv;4qUwngapE zghkd@rYcxQGc6BJfXa+pV?s2d!cQv3reXR8!R&wkZC4njt znlq^aBhzNcD}e|19=okEE$(5V)tzEuFlWSk6%4>p??4UkB$%Lzjf;tF`EO2TF;NV$M>{fhWgO0mr2Y5Pm;dv9fO@` z`OY12IszxA*>(`3Bq0?bf~pK*0F^OmR5B~P{IOMKB8q6FTaF+iKuOt56jd`w_rkZE zU;A4yZ_~0fH6Zkky~9n?zDFbSq*dkEVV`u9p-b}KJ8!viCL_}}izh;4(vla#c1w)R zWCkE9Z3{$GFo6;Sqj0}tsLFr83r{@vX9aT7Y1jV(cSSgu^D5$Y_!~xlvWXFXNqRPmK5aYpoF~9zD zGh5VTbqE{H?|=T}rR&$pG0=`Nh!f*&Bo$1%8+UCYtg7nv3orFUWYpus#axfycQE7px zmGO5)O9+NA(HB%Q0Zybv$4sDN3v>g)397w*l^Q`;w5fSYeh4Pd3d} z0C31v5wn|s2#7)+G{sVdqpvvB$WAg+p~cWR(#RHvM@O&d$(QQcf@h0gy#K*}@dtnO zsHgw!zx6*2$hxJ>!!ykKy|A}uFwQ5}ZlrD#pWLH#ie|S@u7BrCFFiTCSZhWw$XRp# z4DR21%PV zEW6F7@64=JNS*^5220mg%Wmjn&V=|zVHQ{ADErD=rmop{|yWypF z*~DlfOKwZ@{Q!Tp>$63@pTVYSZ)6XSIM*&um`1MbfpYs2fdZ^Ndl2CM>_gmEYGj5W zj8;aestIVul%?-w)8~}13EVV1TNpVWRsw=%6oQ$0_By)_M=w?FA}ap$op*oy^EXe9 zu3tNNp>>?H?ui@zdWjYQ3KF?+{q~C+lkoT{fcYwX`x|du48u>~{XlXyv)TtEBSgq5 zG3wC8(+99VWpv;?%@3=)pAPpvrq{lL-rG3r3ZaY=QUWs5;vX_4{G#JHHv(cd)0~Ay z?v$z-p(zlsE0X6D*hh!hE2ZN!odgKgkaXBUEpPmA_NA|h=1nI_2stSl;jl^h*Ihj7W_u+%PA37_B9s4zI=_?>9l+mHKr3@1gqciPu&g;JGQyhKbiHNYl zbZ5O<$DvP=F#zSl-Wz9S6szs2*+7N6HsMWMaG=oGU@zU-4Q1Invl;vqgWIn%2rkaS4o=hDPprW8u#Ejz&u8q|X2V!ro|& zkkBatYE}{L`^|FIuh(YMwympY)+_*kG-K?LNF9Jb!RAI-+-#eJ&ri>O_3@{O^gF-( zo85ACcby(B*9XlEG;e7WuthG$o|s)3?`U9ULArW&c>UJ(ruY33ARZ(B-Ggfm`Q!T! z*GsK}J2*OQ!`xJ0=xlWcLl@Aw_E2kw&hcU)AHAh@gD-!H)D#nvgTh&*Qp-;#NohfX zDP}OklwGK$0O!U)44SDZ70T&Ah@LH@%I=6mn&;Hi(+^$NtEpmO9rtb5%=%Vww|Hr)UCgU!X#ZD(apl~(C4;OHt3`!ZZaAkRLy z;GOf#n?X_*m{^0EX}MW%V&A980LUY_QCdr*a(H`=mbMU$BhC$;m-83^p(moP6~rZX z#mg=Y&$62L=Z5Y8$;q2aucTLanY4ntca4`y4%qw7t_(3Nu1-_wZ(me&*~IFcO8TPj zL^43*UU8l9pieHxzU$Vj)zGC?ua2!{&!IwJfvPbWgOJDe1|QtP`R!=_XP_}cN}fI*AsVvm9PoJ4bK?i8zm3^H(CRfl)X1ps^L`1;?7 z8vp2@KV5e0+^w58s>LxPkY!7eQdb{d-_$E?{89aTljxhXijjcP4ub#M1`2D z;AO+69tk;MXT)G&>Xhd=zeXpo;=zqye)Re0kM6(m z!iz7xcKyNGirG1qh*d8atMi8!)b_&HD-2aAL_V16^<7rGJu7T?$wrhYEOW)=ybFK; zp?UGkZ@l`^2kE1aGw`Brkb>q25`zzO2Ddn|Du5EQgOmxGHmAdT@3`+@Hz3dqMG{mP z-k5C~Dapi;g-WsyB&vZB#L%*3z^W=#VKPt=6tNf!quv;;l=V{&xX8Rs4N%N-Hj*#@ zMsw#?5nXptl!L=2aOLrQllqte9hwolA?AKCA!DbN7K{(I`k0RRI!7%_s0 z7t7_m9cjEa<=@k^-Vl7{d~iO+n9cSj9=63r3%~~isKx0H3(!3p*4nh($0Z*@F10BP zSd19JAs{%#(X4ErL5bViNfFRZ#q?G`R>sh8C*ABMVo5PqN)qWCojGH(vwFIa?XcM z4Q41{qU@+Ty6M{M2w-VVf(n!?pL*>-`XIdaRe$3)42cm8L;w_^7*6k+Cu6ZjgoMme zc%g)df-3BSPP3xSfSgm!#Li4qkqx*oND-v`O!QzGRsHR6HDCIct9aG;+i%{z_ke)hcC6^s7@2^Y?R>yVj!Pq{9f~b)@IE-# z6;sve4o}LCUGr|gQ?N63-pWfxNFBD8jl0R`23oxC(V$E+EsZj~)R5o(1^@+c6VVK9 ztcteNK(7!t&ET1VzT1kMx|lE4J)#{nA-Hh@_4W;2C2sBqmXUvZ$x-qPUW`RtNJya8 zbzN<6W6>V9$2U)oU%P$#WHGNDLC#A_OU-@iXAl9iIcL=!n%#iewO@Yl*=BkEul?P> z38q=ogNyasZ@=@Muf6WP=a|wk)OGXLU;O=F{^D0}{f)oz-5>n=*IxU|i#M(xH1#aF zab6gH;bo#3c?O(aq|S-dB}c028!x~9(vzogb$a8lMajqxTx%ivlbaA0qqGN1*Bdg4 zV5i+iKKbaS8@G}Hh@f4{pNnp3r%xcPYOcKfaGS2qtZ<9bk4WhT!UbM7{p44A2PRC^kt#$*PlViZUWpFCav?B{Q9hF)nJ zls=+ch0=vr&3SjM+G&Xp5s`DwGgHz%>rJ~NV01p;R>F!}+wmV1>6b6yC8kx<;5l9ow?y7yy)%mVS zgk^li&JB62^l)#R6t*xBKg=cu>_+++7LZ5HN=K-) z;cP40u=3tom3*_>>pA5kz~$L1Jr%z z7};pThjE)tZHKY!&!5@{B?$nKbUdt!fykxzUNB_^Bf@UeKY9G<f)%^Or&ab@W zLWPxAL=#QJrayl&Jh^NB5UL|+t|QFQIQMZgq{mN}ecE_L&v^gz>@WWCpU36J&)<6M zcYfnHSJGELJiNGgaPLW|Y6V?={^^?^fB5#F{o#+k{%gPf+rRgN?|t`;+pnA~oa0d& zsJ5poMKdj3QT0GZUMZrPaiH1a@Z?%Pf6N@p$~5+94bD7)SrTIc$Eb3CdiLnvV>*~s z9{UHM@hh*Gt1vq=$zyhhh-HkF84)UgNARA|1z-U{70qU3*@T%vdFPOfR8*%W&P(Cm zqe31miGieRui&d+cb-?9yzH|f1&50U6>`kR;4>OCslp~fR`s3(aMgfHKI`KLAAb7a z{#_&@Lx-dJoQg=!x%BB^$A;SZJ(x~Ktr-z}?SL`GF3H+c{!{u@^YE`3%yw7i!7ZZK|Xf;jf1C) z>#jPOLE8#50_)U}(k&9U?R*r%zo?URfEmPaU~>-0b^tKqHWp4JBqtDUkAyqAU5pfA zz-Jqx00fXhyY+DK@Zr;sKltp)!v~*#_7wBKd2%iI;Mr7$JgmF3C$@RoT>F+Dzlu0h zq0d&2fBxRDe)`U@){pgTuiyFV%XbbAXFvVUEmwA;7K&DIgkH)A&RXk{Qs zW`z3i_~6D(LWjZG=yVv!1=9o?Q4H37UR_w+RDs*$gZ5yqaT6aurju(#0d#B*jC5?I zqP`^0$c&DGFpsWzl5;`^E4Ccy%K9{sQhM%n;iy~*sYr}KExq~;zIFg6t3Iy#M8u)- zM3j;tGJ6eVwGUCWi(+Qp(V}rgu=rKyL%6YyZ!J` zWvQ}8?Se^#mhB`jag&>;sZEOKakw*I<(1|e$FP`7Rb>~;BX7HHKj~7;Xu54zH;I`Vf+X3jRu_*R<>i@E`RJW@|Neja z_wF2>{LLTy`f<|&=D51Jc=Wl>Z_=G_W(y?wt-GK8d;jEHSr|J{H0 z{wLq~`U~Iw*7tw;>E`76D}DdL{d*7IeCy{gy>MrKaQmPA(?6)0v*wgla#mFaCb0PQ z>5u-we|30xa{J_e+*Y9p)uoYUm-RA2phjkfBANw6$%TWPcaR;nwTgfNIA;WAN{l9; zB1YQWIKF-JhWZeKLl0?n?htK$%+4Dk2x?)L@W=^PL}oY6$k9wDW&$WGqe~8wA~F(z z*hnHOlb+NHQ(F;@3DD&BEBxx$Yxbs5M3Ed5I`2|ULnHtU0cVUxI1Hs>R@#!16Ck>@ z=|21Ly{rSefB+87ln})v=NMzQj9S{uWr9yZb@l-NsWU-DbycODh8TyT%NY^Mtfq11 zC5(g4=wE%GOcE|Dl`&zqVOU>izs#G*!{?{{M^9IutcK5n4Gx)0IgAd74YQFkI5frt zVcAu3u60rt7&hiB@u*d0Rihy&S5k^WRHFjNK^gi1o`BI!zQ&iL$!?kjZVMFKYnT@A zGAepmGu;t|M|X~GRbvV{#%^=IIeV%p1G*~E=kI;+@BLr?gZyvB-}}z@now=d&bscR zx$#QGfUD(u5AXf^|JVP=fBO&qA%ZnvEzr{sKmT|C%m3Gl-~Ww&`+xJlfARK9Kl{;7 ze*B03_(wnb%dfuiwLg9Hrysug^V)}$Gl+l{h{ebuu+!B4^pF1AAO6N~-99;KT>!cQ zcZ^v@X}TmMg-p_MZ{r}pdPZCXy;;eKipeRPkl~;&Tu(3Fn!oxt-TDmfJ=7EtC=*J* z1aern-~-asTqgz~Q$aw>23%HLHdV`_S+$s|7(gBb0ML8%RN8$6OwO`^nPZ<6F%JlB zdi^^-)D9>bIOd8lFnQLYw_cFZ8lX_QA(@Vbzgl}92IykSp!Yxj^s~=CF8;pA#SR!i z&2r9Ja)~4p3mt4wVvS^61h3^S}5n|M0*0XWls^Oet>iiizSXe)XkSzWc`Or`>9H z=cK)M_|c#L;m1$U{`3F%Kf%%XQm=Go4a_-Q-n;+)yTAPYH@+clTh_!EQ5y!rn5sIj zK@xz0s}V`fKvS`@o!F@3tcU?(AKcL^--IV0=pUvg&37MxE zvg2{6Wl_772yH4NDk;b1Cbp~G4j1UpEeDY-z(@&g?P3pcP}ihzn3@|}pP;KJjn611 z5`a!}0R&AIoqN{4Y(JeUh00YZ!i;EivfW43rqL5%YB{CY_m%_=4UG_o7>|z+U%GWW zcf-YU{qWO|fW2!L7pv7D{rO+~i$D2O&Dk*lK&Zlx|MHJepsp}WO8xp)TOG9x|JDy$ z?EmBc>_2_)&9`dr$^<35d@Y6`<~%YL zhgFb_y#r(DN5DS*S`z(3`w$D6a=)!bMP25A`+Wco|t((fzO!ZYyc{s_P?(!rMzI$Q8yq?0CDZO-4?eDvq1fAQq(&)o1}@Var8hrmzvHh`qFG|b|KrHdHbCJxXLx(uKQ0%@Stxx>eCSfzHQ&23lD3#HBs4RJ8r zfSMYagmJ{=c5WNl%c9*pHLos_UYrZ(|GGn2yV)+FAw^g`pql$ z4K_6kIA6^0sN|U`nE@grIYco~29dKa2Or;ihtAhYL^fw(zF=1YA-aYwW53bZ_2hv$ zn`lW25iBdJO~aYNkSGwUm>`l7kb;qk5jk=;0xVF*Bx=qkCNF&{Tz`QB1&{quM5e%w zqd`m%kjPUNEQ_UtD(cZZ6^mN)!HL<^dv_mv{yBJOqenftab&~f=&m}BSlmKemkiB! ziT2n4AtLX66RKI=Kpv3rIla4osYDE~z+8~6@78a3AOG>`A3r(!7jroa9*BMBmcYys zAd~Sl-$HGox|ar}&vKGit(?)Yv`DJakQmiaQx-K*7_2*m&1s%JIy;PWd$Fz;%#284 zPy{wf&58OVhu`lkj8**BU+lT;ls#$M-YwX_8!4sb#d7`hX^sQ%NE3SFjW>S(xBk}6 zlN%T3kKg?9zgRG`n?F8V{^3u5_Rg=~E#tn;P|EmHA|lG_zWXsqxXfimleTM;sbSL3JR$p)3%Fg$n2qvsO70(%|>HJ@2Lhk zz4zhM$?xTyMJ{4=MPW+_#mITGU*Q4$?Q29r2s>!n}z=MTHjKb3qU{3`fn=0~GW=VPAN$eOv423`|e}1V!De+ICR1L6+RFSN(EDV8E|O^xg+| zzVhvhv$OZs!=L@+=XprZIV+A#V_TIRakDs@&*o3w{PP7X;2^;lRLYo2m*$yNsyLo0 z0}bo->f$0wR#UhuBobI58l~%o>vU!I)H|re0D%4Bci} zJ(A_!eELq>ys7a;S0B=xoC{TpW~Pp5t|DUS$rV>l#OKRpcBPkHvcuHTi4}Kb?|ri} z12NT{!IasJ#v&$1*G}5m9Ejq@`Ap^fqFa9S!5@GA_{sgp0a0|67necJ;24tD*KYmv zCqJg7=vWL)L?jat@40a7lO&1}IgHv_(VU}X8-@G!Y^{h2Y675x;o6!5if99j!e=U0 zc91gU3}N!X0TSdfH6aE9BUDvS#LNXUA@4|-G_h-(ql~Dkq6$P@20={2Mb*Fn$vJaW zn0Y+4<%*GP8JuIlbp2JD%^1xyt}yU;_Z51u7<=gHex!tPBhj3&c#)Vbr;t0k5z^ z4hg9%=zogCMOr`3=MVDPyRv!5kzp4-o(A zjMDZDH1^%m_YDH}m5(+;sjduABI9V<9vu+^5~jYhVff(ggLmV@x9>hR$vVxlhS545 z063=Q?1fjKeDp4X3OJRNQZ55u_b>QaJBuw;6H`htiR7)v(zB)f^tAH1`2(sBAYQfD zLBK(P5Xk|$0*R|?HUsCKW5LU#4r_-V0E>u64SgQk1VLB6 z>0IN`4+bgb*o!Rl=JT}rFfHHB>-RN&hM2fU8HS6`{(^g=`N@ON`z)3_K!`aZfCKle*XAXGPSM1rcyWGyzFr^C z7F8g2j>m}r`#!HY)+uIdb*Dx(qlY}Y1CDnC4b_Ih>KbrF8cH68-jT1613Cv{zzXaP zm5|K&fDkpIDV9k+Lo_F%%Iq>Rmm$wuMl}GNCnR77Mpa=2Fi2W2R}ia2cfpAUh_y0X#>Le(9VWq`w!>?|1K8 zTmyiBk^vcR&pJ?0v}i>UIUu5v7hnN0GiN#Ebz_nJGPE(YkX>5KI%|F+@nc!R&GF1tJ*c&gvu1_txp??(O+ZX#oZc$NHdST&;TBP? zw24PM#47~0G9{+pY`W!I`W{qAUQm`_zWvUl-#hi~!Qu56y5rYA{_K~VLBV7i;x&$i zDVDoj&;D2c_W!yCy8HSIPoMnGPyXT${`3$3#LV32h>KTT2S&4t$-dGxf(T3}Q4+y#X^LwV3k2#B4~2Tp~P?L-ydk z5tn8TaUlgeU}F#lMKlwEIOs5R>qIWNswq0zVw&Te3+h84bfiQEASq*tn#B~6ofo6S zYrbxgQNdycG^+wJLD%ObMx==9DVx9-Cw@{K08OiKn%=9 zRP45{A*HjUlfiniCsoB~GK;-}Ublu`psM6NGqZEd48$XoavNE`uzPYT6+_dU^rQ56 z89%B`%H$&gEVhATvaMiby+Kw0%mf_*qB&5y zT-=N6dz#K63OE1;HGoKZmNx0F?pxoEcW%uVt@keGNE#e8lv~ERqcEnZK%|4%ql@m| zrca@4fR(h=>KyS2NwWX1WZ8b-6!3dwTxhL0)xikjW4spnLD_cYgAhKbw8~ zyPK5r;^xE6Urs}h%aD8Awki9VzWTi%-aI)zHcb~#-}u3I<|p$X|LI?>R%_Sr7uJRQ zb7>HBN)JE&;KTRcJZ@`*+bsY9dIloeIX_KG2LU9^8wmH4R+#3{1BC4edNY7xChr<^ z4Nzy~1jvvaIVyw43P>f2j)6S`8f1sYXjI~3zgcfKF&Vkweel6M$BG0oH(~}%W-8=OnKNMLqy`FLM%K;Ua#mkx zyIj}Z8FgnWeWVMM$2mPtn}=z0mOF(6#vlnafp!{ui233AZg1bZ7Vx&OU{RIP+3c|L z?1)G+se%a^U2HCfi_ib~tq-5}d3JPtelVLK93C7T9xd7?GzL(79(ELlJvM)l`m9&$ z(?<`Nj~_{n#*8u!R*4s@Kl*3?^w9a`YWdNF2VLJg=Y8;HlT5s9REX@!w}=1!|MCC) zzx-eP&)5C%_QjFHg? z$H7q)RkJcwI*KX!%IC(T0%gr=gk+u}TB-e^_Lx*Yy?gf4pT51x1G7hV$YkIYDfTN@ ziWQprHM>E!yLnf;DIRpiDtD`wEw+_9P9f#uKvO2R+n({=PHX-}GAA&zUgBELQPQ@# zNm!WayH0H}rB&2uKnkYG@gUe#AT!!jY$+_CR{DvvkF##p&e!JCpo3t-Rst$fW-?aA zXd*G@IL}JA)X#3(9N?ORHc$w`u_Ncm6Ovg@s2NR6hS_F#>(RY;|Ll(*UUb#`xLF)j zH%^XUxbxBrFW$O!dp=(HSMUC#fAU}d;M?DM`<-9DtaRhfi|2Pg-p7J3 zxd`n2c{^gN>-zP@>fwX?RcHv6z;I?rM#1AK#@^c8j3`$kc%W24by8HQ#af9yp+o18 z8EHoKEaeBQv!_X<9*&N#-D>LEm<@}e7XzX(6QHRhjBVrj&P`)p_mS5$7y9c~ZO`T6Gl$LqWA%9HzD-)rjFA00F;Sg}zBLhug7pc^C! z)fLy38?qswLv!q-!XSnSZSB3o^Dch);oXlu`2esaifqL`4Pmohx?O=ig@!Le7fHqt zE*7=Ab)3!~=f3;PAOGy2ZgbAVFwELUM4oFw_B_ZA0H9y>j~_f)92^6h#9nh!y*ZmT zsLe4TXGd9{7brO^lfEbC{G_8>g!^~<7niqQdp*n! z9D!qo5D*bHgNgbIs3X#P(Y(BP<<6@wX9aY=YTIVk0s)9XcN*un4!-&OFuMf+VRkTo z;pO=C?{4nhU48QI`3Jwiy5{-J0mYmLk>Fh&pcl<0(g7EJlymG6yyHQ2lcYkM2UgU6 z6F>Oiqw|Z0rT<>Sf+NnFy7kgcCW)iZ9RL)2aYIx?F+{x-!LP_!FZpNNh@4Hfy~t&# zB}l(Xa!uN|372@9j;q;m3N|Jj5+5DU)=fRQ>UUzg|Y<5fRO=< z9AuM>-Q9G%-S@$Xr(lIZOs446I5k$R71!GR z)mU_y_WCsF*#S_0j-vx{Q$&9h^J6IkXNF2!5IJFn22nsokSzdl1n}A{LaY>PWgVW( zi{}?{UyhAV#~JMuqbq~8&0*hAfhoaU)mQPU8@J#4si*3|4oQ_&7-N{d@WOO||8Q^j z(#s#aa_!o=oz3xZSXie3q(WUvLE`F%7*QB)N*+J+)}PH6Rkf(=I?szD%juM=*K%t` zH89_I=|X+;1|S|C9X#=oCnEddpy1d<;bidqLdPRzJuXSJA%wfP?~=)0Hg*{t&u812$WeZG6DqOATUyXV`(#O;?~EJTS}LF|$}!=D2$Ybt z&C>qER4nOF6@Wp5k4`uB@IDuUQDdStVo974M{G<)5J%!joE0P`i`GJxo4l|ExZZ3q z-e2$UXQXppkG#3>2Me)DqoXZWyhYK25y4n9R8gv+5bPo|-ZAJT1`nb3W`F_8K(WD) zk~AdN)$Xmmw}0f*pTBXJ5SU|RPDTSm6sPmuPkyRCKA!H~J$&%~OBb(P*xo6MLRwiE z04g)j=kw|DNi{jq;K5j3iR?lkX098r3R#vd%dKT&BPlM&(S4V%eC%_dB?W^tolafu zHrCco_7A8Fr#|bTZchslGUFL-jlz6hUw{6_WICIko6IKD>0~;a-+$@SmEmv{bIr3H z34@}rFvs)>SYhJjM53{5h*I1i#FW$pWSq$dQk^sh z*E60Fp@2m)90NE9!AY_?#=upDe>~%^N28@N`ktj#|~A144u33i$C|v zk3H7=;}1Tp+zy$8C<_{k&X6SxK8h#-IBNofh-3)Xn1$EFnSACmFWkI-%Pf<#h>WqS zS}kT(HMh%+IU=T{&Q&$|OJ_3PqxVu+@iBIur`8$^1Za$5UZR)r6gPpey247fTOqVe zmyd^X^BOjQjKqja#0~(FAq@pliPQ?RC2}Swvg8OdLMATkqI4$($1I=bdN|B3?E0Mv zyC5dDIs&2~$=*yD3q@g8>c9F-BZYZ7t;L>+8?mI6OGGeP{NHIloLVoWIa3vZeO6T2#At?_PiQ>HRym zvlvo3sdTx*i0GUv@;vnq_cY(_ugG>#=GKMAqk=MLdA_l+;jFuT`?f(^hH$S2W8Cwr zJ()nD2x+bIX<48oXlp^$#l9{RF^JY*;wC-y&gG-WYa-qW)Y4`ClSD#nq-)1 zp&`~jG&LdgM(btfAc83e=O20X_5+VeZ!Oz6FJu(JmIKNPzyDko=Ls1>d8zC%G#UdU zs3-MTZ4;_A!QoFDfy<|(h&juA3y(Z|LxEJ^7sAFYriT05?X7F(Ga-_ z>YVn9Oc_)({l6k}2x5)RoC@$F@X>s6>-NpMnkETy3JNjScwf)vCn3}}LCug7GCN@; zgjBi(tWdYdP)XPRy$qt>!LC!jRqNEzbYqoOMw+B0RC0YpGI%VBTLR*Jx# z4kpn-M3EtF&;X1v22G-lA^-_6OM|Q?9$Q%S0$t+Xnhm48+LQAW9-agZ0V6P=2m&fv z1+p<05~9jhz+S?zDDE4tpD%48(Jn+owea)URI|za&cX4=KmXLPzW*b4ZtoEq5lDXN zl$o3i-U!YC@@&5U>5ohFu2<&$zR5NSffSJ8WH!BfhT|#@BVT@K>76_3fe@*-WABw-5k4}Rd^{O|wb{zty*dXqo({PE>W<1$x6G7q3?3P?WM*26 zkIn34dVFvvaHT0T!jQEY8VtT#%%&`2J6bdnP+%5`x(tF|N~-Vq1}}r9mnR4H478<_ z6F|pXHikr1bhQt`F93800TLx)Apk?zNG|!f4qR5>yptI@p`0jo< znOnd%1@P=JDy<0RMR!6vHY&nCX8qn`IgPj%_ASjaD7twTc3D~ z>Kh+<$T*bVx*4sv$uNjZyW zDX?^CAdvxsD$<6`>la#{w5u;;m57%UG; zLZ4A!b%Cg=F~$&r$mt8d`h0Att_4~uYaBTC8*d%O2s=mDUA~lnBHWQVA8VoAo zt%LeEKl16zYlBNy@1wOXHHBy=Pg?F7#LUs19M7%|dkmnIk;_dMiAc~Vhcfs@G&x z)Qtv#+^HdqL50N_0)TlH7M>^bdNQ5W)k0K^b=I2X(Qm3|a&lbN6(HF*6AUmxaF}C< zy-j3MJYBi3cqs6mr(9F$4yMO+#iRiW(&Fh9%$XmRd2v1?0HDFl87*zFnpKf7Q&f`- z@JQAeYi+_;5*R^UbtS7JYMRU-gMzZQ^dD>tG)7M@NF3sw(yV9YT8?Xb3ma8IFrtDo zupela10n6t7l$TUEYOf0SlYBECwt{`cE!j25U#6C_wE7^+Y!dt$oN7w*j5%)MKqm=PKoHw(ZP@Xqkr(i zlTU81U7(!@hwB><8cXiIpV=E^<_)jhUMsVKrACxPk|3iG;8`dQMp1*YE zKAV$uPk%yYcW$F0Ak?jTG7my1mH|Z!Z}Ao ztMyg-f?c4r_z>sSe2}^S?fbs>yT0PJhj;eA>Xr9@_nRJj=EmN8KlaIIXZ72E^LJtZ z0M4vkW#4=OB6t@sxDE7tdYVT;J@KrL~rf5$5#SVvI4w z5QC;J5eNXCb46M9d;LkXfSpUUeqP~hP7MMAS&;qt^gsRT+dlh|Pyds{gCEJuFL~`F zLe>}sAIK0Q1|dH@*FXOlAdv)F%B>NJ=+?pAzwvke<_jPGIEvZV;pOqRM5V0o-d{he z{_Ssl{A7Cnw|v#3Oy~n4L1~2$7oHrd5vsmg93Sq@ zrV~}kvdkt0Ryye{9WyL#89P(b>B#aW<9kj~)(UbDxf_@6r8dSAP!W}|lj5C)^AZwb zuPjH~oBsSd99Krk<(aX@n9O9xX4X0jgc`vw8m?ozoW~T5iJ~lUI)y+*H3$d{>Qy;C zmU;ABaxgG{Et_xRxtsau)=U;BJjU^b-e6c7YtwKdIX8`x7kNI$A(AJ-weh(uM`Hx! zd5(KGZW5vZuyEvf+M=}K--HI$MHGaHVOGWYjCy_7>nl-0rm1qOWSncoDbnrq5LC%j zO(-+-=>3=PoGC`-`sUiD3l|@}_R!@^SJu}z^In;(g{;cU zqrxG^NC0A38JU@gvOFVaUv>Ze-}L2QX{~MXxA%zoklynL@BiSt-?KUDU*A3c!Jqt> zKmB8W^|AY}vQB|&L<2F1Day;Q)?xsWPf3D+NVI#f_v3&6$3FYs4+e>`(yfOc8E)>B zMLuDeMPG3}ubZF#kMAkizxk_QDFC@Oyxz%2&-mBr-ygv^Enk|dOLCq z)8nJ#!-Eh)mKXhA&jMhZG^q(;xC{=W<&GWhNpshiJ}01xEwTX4fJHjbRuX|B0Hs_7 zP(%{Jl=F?K7LgF7a9iVXef8YpU?Rs2I&v;^)=_TBIm#>mMD=7^)TE~MUGku_C}>#b z+bur|f+%R>+bDn`80x&ByF*j=_yXASMx-mfo%6lnU_eCN0=N=d2^^3YJyaD%F>ZZe z&4u%-sw_?5!xvsqK?MQhyt%ZuUKaD8*_%7v>BUVG@$g{y08n?=zx zwop7R1XNXo)7FtWnX6Ppg`)!GS@~68_T}4~8~UPT&h)U~J>380U;eMLX>69yj!zc8 z`TzdMxBmE_|K35r5a%WM$U+w%FdJ8pWf>?-NNDKU>(BjzAOG04(lqnq!`<0phKRj>zZ?v0ds|4-Aa;|0)oFeA3Ob#iDB{_*dMDvZ5~UA6(iV{M_ID!N2{l zfBrW<@R=+xEJOyYFM6+~T^Sfy#xNmKQRd_Eczb*M(uK?SUwz>6#mnRIdYSi~%M_K< zHJ3hT`Xw=PL+gK~r$73!o^^YBd&2zkYuBE7`quyP zOK<)DKlPT}^|;r-Xxm==B9QhqjR0f~0KENu@BXL%@F%W+_Gw`bF>>Vo#YZSg!;z>Xv2qNF>@X z4zLsm!Mz73C5*S=$-G~V&u!KB&nA<)zI_DIM^pv0F-e#Om^HGrfvT+(Kvjh`CW)%F z+=T2_lQQrWevsM5Zgu3L})T5j3oTR^VDpatAPQ2yf| z`TlSFnm0Mr+3`_mYFSJ2dg;oQ3-_JdIX51ym1W<#4B8R2R7)hy<-6W!Tq|BRJU5F$Qz>&CDA%CFd{N3&z^{e4$14+euM z_-l`UaJ<(0bKm-nYR6{hF?0oR)K+asllk=j{P~~z_dorA&Q2z%;6qepGUe98uODq* zv{D6W?%vuzo<}w6gP(Z=Sl)`WzyH&}O1b;$FMoONaAe6?Wr-=4*CHJr96a&Fllw=9 zL`FoTO1)Sd9qi9$Cx}$^`n~?Z8f(ucY_^2`Q>$;fxKFcn&iIWK&+uqjUbotg z&TxqWQxQ1Bk5~rIDXRcL6tqPB@nG%Jc|MuX7S-ZtUZ|>Q2G){8l@t}*=9+Yw%1Hw5 z6J@?CWnOJ;(nI&1yL@@8?Dtz{A|hy8R_h9xjsQs^ zf~u+^S|9WacX==xZJay5dGX4PXP&wH>{H?B*svg(^n@(8hpM{l^3!;Jxm!FF;HX+v zi~sFM{?d1S$2a&p2MZrSq7eo%XmZ6Et7)^C9qu3OKKnvnjmzAmsa}}P&RyKfXLY$I zvk;wgfAxR*?k|1)Ykuk%f909m2U*d>Q^ae>kx(#9U`%g)INsUWS=-s!K6ml_`Ey(6 z*48#gqhVH*#yO=F)1bo2U9rV&e-dMiK$?7c%p9WBAj77~pM3$ZJpgJHbv3b)RetsD zzj^m_&-$u9Iyt#=;lkQz6hM6Rxw@bKukU{7{ztz0&3_zv8w#RiP=$y-{IMtg>Hq%E zp8UXvaXK#Gslb@aW#sGqV4}Ly5nH}xN&=kEvZ!pO7%o5my z=}Lu{2y0h&$qHBGOn6%t?%ah4oyB?{c?@sx`~b&gP%^y02~a4i}3lut*HPT4?a#Xl|T2x|LkW!{lb2~FrsHS zj0yrgEXvE5AG-SRBirj+n``SEAh& zNW$wbp1(Ao>(PO3?5yOz0wO+j{rTU1+iyvTdq;=;{$OKc13+Vl9NGJ3=ivt)e8X31 z|DvW#6NHR;`~$!LH~-e(oZPxQ$cj4nx~hE$E-NKgZs&nwIOb+Lsq2$^5sThr;urPQ zhoB-*S4a^t9Nzx)KmVssTzY8dkA20LFq2nx2!q1T7XEO5Hklr)st~AhsOsZ`{l#oX zNM%`;Wob;>r?l5VdQz2>gdy?7MU(HlyR5qj?^Gz!e2odk)*Oe+g1J zpTBW3pK=K2wl*{8 z67?cRcBB3e|IiQIclkPss$N-w}t% z7!F~2cyMxj5Mppyo)>-VG5}>}+m=}^>r_Q$>AjLRhYq;ie5r^gcQ&3yp|x!*5w}H^ zwqT03b6NF3o>4xoB6Bp&M_C+@5Fs!D_4+-$eBO}7Jexm#quDzQO+^$87{j7bK*Ru= z1m0JP8ig4+K*VJdB7uwq`-m=Z8N6>QY3dB|+~(S~i|4MLKYwmxW6&#K?AO;ba-C!o zJM();sG9g^N@R`g=UFyh8*lHN+q-aa|JL>0o7azS-U&y?8Ug?qQSBbGREDiqU&cCx z*f-`c{+aJ4sn8ik)Y?nsnFD#w2&cY&=K0&#uD!hIuZ!hB`pvJtF^_O`O*2dP_Xw6xh8A|bq zNvzj$vQm4=EZp`dQA9eqMXSy?gaU@(W$LySd1pA^J17=2(;qK8)n{&Af6qJLDUClm zJlfdU81(y*S)xFYVCgS@|M$Ph?>&8e*y{(5 zA%w}vq$rB4C}#5`%+GCJdB~smJ+qD&8Z2kb(*r0)tfa3Uhgz3WK9^ z_WYfAvr9UWl*4M7?Y+u^h z*cxr*WuEjoe^}1;JrnV>CP7SB8(@*;nYCq64%UX7=eD=5+;{iJ^@AHX4{zS64v)BQ zh(i*j0k-)WZA}9Rh|R2e(;s=`8(;J2^!d+0f9w~taB!5_UOrl@nus=cwrGy$ANjzC zzU)n3I>>v-`e(o68$bNP$LG^Ye>`>ug$xoJ1m(ygU}PHnt1g}UOKr7L>moFW7jVWD>Zs4d+BNEKo#wV0VXJq_)q5)naBR9Ux%qgRdAaPLlR zGGYoR$Jt=C{PF(Q=V?^BC+!VwZ11Zj>`Q~r`jz9Tz-|*x|J~Y|i|NZBl zo%_aH`|tn5f7pNO`F?-kCB_gYlL<2q27?e|Y-D)hYBnB6(W&^|gM;0}LjsTUJy2CN z7%OB_t}vXaKN$_yFJCw}>}MylO6q1*(&lJ=XJ@liXkufsZ0Ye#DlccPb#9qjW7}(_ zMc(Riqb>rGQ4v%ziZUm$W^2VmP=F9Yn1v9XAwy&&m1m-D9;%|Yu(CEfdby5F-}u#> z;blA@fTYYe1yoT&YpCq?=p5O8S&aMD_NcnKTi-p9!&&h27y>Ggnlxgl5$oz0<^>v~ zDu7^AO0YX^ zGB@fCHrF?|w|DlgT;08WbN~8{gX_1d-8>ur1y;iQr=R}4_rG5i%B+mSA%v=0%&W!5`Wg{dRfR}v z=k6a5`!*||I-V^&I*5(1MW?92ss=9*u$j>OE^9b{Zu{!R5lYO+9G+D5pcFz5@#t{3 z`}mM$Sy7gmwLXZF5fxQNBm`sI0hhD}t5a!_Xd30Kwo?vCLd3R@V3xojk%b5aj04kM z(#w%q`$pFl@ajDR*e{@`=%P(iKaNHaT#=8R?d3%^9!<_~&h`$g+Xt|BsQbq{sig57 zBZzpag168xv@zU}lgS+oi+ru$8;u5=qqWV^Xk#=S_sX&;$e5^-0^I+b33$tm+38tY z`Clff4vRGRiZ|!UyUcS70_0HYv&+a|*Y}h;GW)8wWGOexUo150< z9OC(Nn_u#pS5(v5_D1IRts75%NLVJHT)fs$;4glW!f%kvrqo2I9 zx0jX0=H}+-s|`t&RDW^VPvgbu_I{ zCVn~z(}jAENNfE84$QVQHglP^gDfBRi?#k>Z8#Y8%VB>oDtkSf*k!mJncYLuKGo;0 zOd8s>UpRB&;7Sd)Y{v*8MWF*?=8UtwURiF8*0;CMZCyOSd+GA+XP@7@`9e6F6r(kNITckM@A! z4S(#*aDD62eHX1Y3@Sdzq^d(L$Y?U}1E9FPNU$0J3{n2*E3f_X?`}N1H?t|URFMd? zEO*u+0t+JufO66*b~R{v%}IAoSkC-n7NT^!$f%!ReDJcAM)vRG{&5fJz>RTqt-w@na&#@_D`_B1G6I~L&iatX$2b_ z>**m2F|Mx64f>nw>zfxY z?C;(`pUzEQmgSJ=ljhbP-}sk5a80XubN$(Be|O<)F8dcQU%WP(fBgAdZ++W4zWXh2 zrhbucJ+yt_gT>}112>bYU(^tzR5gpBaV&_eh71F8^p=1SiI7FdgYv6i_t?Mr_4iS3 zlEPAq>-DnI0coUU-aiHKpAP<$om*uYvL;cJ0Yh0u6^wF>ao8Vc{fw^P%-;0@-QB}C zzRHe=yH9^+eQWyt&K)Vq%l&P!G(>lZ|~l?vetj_{s)f^kAL&` z-cvP=H8#d5&Z=3A3*nZ7Qx87$W-^ znI*9*jBOub6>Bg?kJK9GV+b$5dcMf4bbnbgCeK~rj70&7tq(~wWfgakg9)4p1Tji0 zZ)Q>Mim;@r24ng&Z$I~}JpB|5N_x##ng_1P-cb|y`DdT{#b5Y^J2!7VboIXV@z|J- z3Q0tWk=Yru-s^?NudS{9;xGNujqBG@5kP&@6j>HIE*6Wet*sd2?*4%=j@P&A=45hm z*Prb7GB`RTGavSh?X?(S=(D%U$+KgjK&!RFhnu>+c$6d z;GxJ)wIMA`p8zm~(9{)?0W?;ZLJ|ZK@xDna9R;w)5_fl(PMxy}Wq}%!4r z7d!jG?l~}>3ivcMDa{D_WOO8_r@b#)XlAvlV<-wrwc&4 zwy|ll5^dp(rQTq8WuTdLnX@cSRZB9cL+9=zQQWz6N1|Rhf4RttSylB%o2EBxs`~!5;ld(M2WDU|UCQ?+C;N*z z<%SVN3(7~B6~lgssMcbES!S)Xc5iq8x#ynKMD&*K9`7NCt+d9Gz|w zd1}T;70il149^GwmJg>UB(?%@dKU^1ssNHnzn2I*_vGloaunVU+&abQ@|@iBf%%?u zrD|HG3r6UqKixhy!2{BDihxFyRY-&g4PevMv*QDQa1cYiu|B+d>4HQq);BQA#AawL zs7CMWrY2*JAr)045CS(9gn&&HqqZakh%q^FK$sPjh=7@sB$!!+8Oeu`S&A`o8_=Q_ zFy-^M3}K|?+fxwggbvu&T>>I1EGg(sBo$rD5wgom^T1WSu&J{OKl!PncmF;=dgc6m z5C7uhKX>c;&7Jj4Ypu0by80XlHEsOPh^A$_#?bg?Z9E1; zx9;3_nY*;Ll@HfKs7Z8&dErAno5*}xs))peZ|Z2~A!w}nq6_3G05+E>(`v!$%e*KU ziUJ7v=B@o3ySrk^>FHe(MMBdwbroZ@)~0n=jL}MZvb%E0SZj@S&N=7Osf$qh?wU_LbS83L(W>+Dilx_c_z$!fT&+E#=-(G>quBp-` zZN3=(-3_yB7fq~qHvMD8zIo3LvyvX2{52@6h!a@#D7EvkcH4kxP&vkGdNSWT@YAVE zxOnc;+MonPAYwpJA&nv$y(csXDcFz^F;tasAcvr231V!RMaihKB#73el{OmVeXWr} zgg`;q5E=y(ZP`26@=lvbc9)S@3zRt6M`!b>H1yBt7kj3|;JgQQ6L_8MF|2X!r< z{xm%E%w&CV->fv@hq>-zQhY>3|)zV;#cjY&b=(FT*lV8|4){n4Uc}*e-h)>t@FS3o_BosgC87b#pcFFp66W$D~Kd4 zi@N%y)B`_7%U(P%gvFpJI0puns}Z?v|#-7mNA-hb24~LVud;6{r4N;eKhk&Y0Q&rWR zIkw)i)={E13AtH0RTC_VhT6TfGII>V$*Q2~(bANuPSOcE()&?U>g1C7(1ti@(m^Uv z`=q7wC8s-*WgX9F(cZ0+Mb!Wrpw<$JXBK=*aNAN)(!R)7+MH7ZGh#v%BSMM=Uv^ga z*#4KnSLp!jnH)LLrMYf(9Rzrf-M{;5$vxKe<=@wcZJIDYIj$!s2&iC$5k#8BLV3~D zK@li=B?CkuMhT3h5(Qq^zBA@_?EkFd7$>m5{;X=4q49x>ArqesOZUv5xTtY;otzcLzV&zp7NC^qZq&F$avXO878=Q6>oqF}uaMk_j zl>iKaIRipZT=LkhV(?Tc3HJn^AbtV-_G)(X%3)JhiQRvsi!FsSuw8r!;PlF7V+mwg z`FjGq81=IJn)o8C=4oUOfW8F#{T>edA9j&+(y*v;F`HCJM?9|yk(>>}K{&+NEGnKI z*GG5#?1;ib>Iqj9ZKl#pHO@KA5rqsQK}3UPp)LbLB#gp}Xp7vsgmp-JWX7zAgYDSc zl>YV`UjMp*Ejf4qNgyHsXep2P{94&MFV`k5YTX!Xt#dAO&KLtkssfdV@djMJ;6MMF zcmDFPjQX1&fBMsJ|E=E|_6O%KoX?6vVv;;YW(L*RG})m4MUOrfIp$^YsZW3UpnaE*cf#{-yJ5?7;QT4@ZN3DIjjx-{=oB*VlZA zy%HVuiagI;?x0^dBc#HMYJPZhaF$R`A%v=)d*2`~^*HT+S?vn1BDthN7Tv>~WKC9e7J@X~!W7_ihQx9$NfhL>XW)!}ei_BOG_jpYs5}#Pcu%4AQbz?>qhk<|5PhuX(`j{d z4BnHo*3iMp$<4cWAKC0_2+e#Vs&+Uo;;5YoL_rclh|HMx02~k&;}Iy5)C$7Jp`fvt zxx_oNP>yCr?%g2o_xpoBC}h^Y{&o6eJCFU{fAIJ29313i3{i57twb#*Z1~ECs4c3~ zd;pOWToe*Qi8+EQ3S=8Y*cqAKz0d#Rubp_<-Z=MDzx)fkH?BW+?cwp-ScH9yA%qYD zB3f&OW$W^VOXtrEfB=5tQ=dw$i?EEx9ZEdU_ zA0Drl`K66@ml@Zy!zP>D+0S|dGaMYvq4ML+!sUME4+oP9&;SamB3aW^v)SwfEg_M1 z%P|g3wU~$Kv8Bo4G8xLMYE(_GRAlzv$KZo+f^Pyx6rqka+^I^EMl_8(xy{B9UBV|? z$6_k_q%Ahm&D6c+=?vI=DV#j*JZQCYSx)iW4FyVyDWsIPil-k+JFQDH*0zTv{op&z z!P4@D_geV{!gLvj@Zb--=s!r$4 zum1MC|H}7#gK})V2aX)0cuy`*52YbQWrOO707TGbSzltb&WN?f8mwxN5NLe@>k}H= z;YM$m^&%pwG2okUG8b2vFZ;T0{Obxo@B=?!$XRPC?c0~_VS23qp|*qxZ4*3M+C&W^ zOI^`R%!s0vOy0|2Uh8L{`|R%Z?bm!^C3bs z#%AkRE*u`ueAM&9BC@a_O1a($`dLE;>IQ3$QI+S@W-$i?CMg&JM1h+{Y^r5SwGu*S zMm;4!w_24D(sj$sF|x&F@I@-6&P={rUoDZrHe)V*q0?zCcB0)Cdn2sGHJo`;Pv6G^ zFN#@N-Zt9O^xGd2btLH}3-7d1`NEk*%gOI5M5di3oE-_g=<Y@@!2F-z{=SmujpgYvWw~*s%kn&P!hwYQrZD94!U2eJxl)<4 zk8!rJy$VOtzc?2h6+@e`Qk*uiULX=>jv`0)diUV?jbHJmZ~Ufje*A+U$n%28ENw`w zwow&PP8aiCsVktmYPWpCrd6BIX*VM+fso?Tm4#N**u^A^3XX zeMpTjVJm@eb4)wyp`>{(5hWCHdmkA}|MR7fR{%hTfF!vZTY^z5A;zWkclANXndC5a^W>mf6jnow%|BGD! zr)AVje7rwQV!RA}BSb=jBF@-ACb1Qp5WEjR{np?6ukZWR<(=`>wcg7wZf>pjOUG*i zm3m$S_$ZbzE62t%MV5@f=GLf+%vQ2b0sl8C;I{J5WNKnRQQlmey$)7%LB!4i}S~cXywRm zJheF-Z*QFg#Splv>bkC5Sh@)Mp1OZjmIqRHVEaroLuc@1A zu^11>qn(SP-TG)$wAs2*8afyh8FOgrFdl1k!#h4N`&b}Nn?PB1!#n-~MMX-Ggw%cMh_t_V>+<;fEoG-OCsfKf=&+%&Bt zsO?gqV^p;k;N+(0&Qb@=?M}ogffY~DMyq-d>_k-ebT{`reBC=NZ3B~;vYjadE+K6# zj=swcq13nj-rB$V|Ma&-?V7XJTi++R#@N@q-feU#X!59vfk<~CS3 z%MWMMyT`{LCHt=8xwX=64vMSW>kpjUxOQ=4kU?F~faLQ15Bf+>3POple?pgQEebTl zepc0Tcodk4fD6n0g0?pXE#ZaZqK-b))|j>N#qa&^|EG7n=k3ZKg^4I>ECitar>-mO zY|fHE+N-pX<#92JS!Q86efl@wvH#qSC+bD;;o|)dxGZaG-!yG+qN;hG6H(;2asJ$W zSFfO|HTb#DeJ<2Z`Yu^x5mWRxDd@TF9bmspCGaDvsVN84ks+)doL?OWQf{^Iq^>U*)BrOC=C)a0Rh5fM|rV2aC2 ze)v@Z8zM4CUoRH(X;aS?Gu(RPZ3wQSxJ|HWO`gSyQ){N?=QehupQAI=`%0N|w zj%Twsyyo?LcW+J>(_X)i=t!WQ`=X-YGRL&NOOn+BTRKrY2kD}=$PpG6Zr#~`?)pJq z9Gx8O?3^DChbkIl^xk_P(xj^+1n2|zKXCs1d81M{&C^dm)rw+NlkRIc96IarEEA4u zP!KRODyv{_21QXOO2WKaG;8u>ohbdK0|JN4Ba2SzdzYO zJXYehA)VVO_wT5L2uu=q`LiSH@)rSA#X_q{kd+2NI&3E+NZSo)i;q}EBD|=Jr7mS{ z<+<(N)9oVqbjqwt2N0ZY8}8YJpV49Aa-7gTi%U@asof+wZ+S#)gQr14Fgn#db#0?ZMjQJP~D8+fl%hN=b7uCIp^L z_8>mBn29kvJ3H38x^6=7Aq3{w(pEbpzZtA333a^PR0l{ZPkSc3byrTaeI|6?b>NpnCe9W00aWkHV&MY z{mrTZWx0F9(USD$8Kr;Ya6)dzf` z)*MjVLA107rW>4fwz3raCZ{2)tJz3@SU0t*iSE8pOH`T$AH)X)j4DkGfjP4dv4sG2 z0pM*lEL}u95}|SsxIJtB#lL^smwoG>xx964oA~a*d_G4sG$_nqSQ^KZt=GD2^h z4u;q-MkmMf<9TI_HLA^tBC;*lAA9(*&pr2amgn7O6_nB*V0kyT%CT;pCZd9ZA`&@- z7(BC}CB)D#pA~-o_;7sg{Gc~vh8UywjrX`1 z=0%ZN%P|@85sVX-L{?W7W6+g0D;;WM6rk*bE&64g-MYOvoDX_tA@+7%u9tDti}Bbs zp{gpcqRyIW?e`D%7ft1?yS~4ePmT|d8Y~J~Ok1@<7v8np78ok(S+gu)eF)Y*03X*Baooq=ULak|m&K;+a|JuE>cwKtkz>p_#ykTe zO_3+pu0C>Sf4>fMV{!o?YGbg^)(a`V1_Y8=IDsW%s;L&fp}Z){{$APp)X`BD`Js&s zvL>xd>bhPm7ERN%jZK<56OPx`0f5N7_xIo1OlC}{w^!zzu!I;qM`Ils5+71?pn`+m z=6JM8lp(r0Ec!hJk{Ep1D|$niRMWhqP3v4_bQTCvR6-ykV=)B3zrW8hqBXOIePtRf z4YK#CeL4jbc5__>Rl5ZHLHjpn6#-!Y1xiY4>g{M}Q+OKsd#2WcGuuf-g93^uT`ol@c?Td-Tq)yPb3OnHAOT5x zg%P!){X`?~ia1=ABrJ)=r(+3K>{c#{NGboM{eGwS5-x+P1p!3sre4gaVNnZ9deIV5 zLPfsh*;^SfsX#8xv_IjgNKKj^)KK4N|O3IxJ025moPtjAT+KNrmlMq5|yl<-7 zS2aY&=brue2cG!gXPz1j2IJvSIEK(vRW+N<=JR=i`7^ViYGgzlua5xW=H8vhAAhgX z>4V{{Ge`{w5i!bSda49T4WP;rHOuqD8LeDqzz&0FYvS~z4x&PFQcI~a%#Z7Uvw+c8 z%G@;35{f||_2lRz2wNb7pvG9pLNk}T4#9UJHfh<>29judpLCx)+ht`cAVsD73#OASf8htdzw!Y90}Bxk z2QEgpe>evui*dB(1YA||8Y#FJ^PYETM@6vHAnW;oc`Ucb0^eA_xh z(wP9-d<MlTlnM1cebOzzG&wb#XkKdXdKXUP9&N-GCW2~yhd_MQyFRN=y z#LT0e&4=#01_1AV{5?0Ge*uZoA7IGrY;P|qVIpd6#thoF28aL+^J4D%WJFDowbsn6 zbWM$UR%{GHKvaX}&_d+Hpn=)@Mp%5*qvOflJ9n4h`PM=Zxmhei@SP++^(QF=QIXJ| zM#zFHK4=)uT!#hqA>v!&By)oSFZH(!kJQ6v@lCtd5HC5K5vds)Hf_%BpPEfml5GTtIyRw zP*n|5U007j`siQ(k-z057*t@&9J$;CFLhJ9j96qe9I$vF#WyT~E`zm!L3D@5vuWiC z5DC2mC(s)>(osUcHjAnA^OMP^Lr=)Q8Y5MY;0@{27}Plq9TBT#<<+G zwkc&%LA5N){=k)e1DKPV#p1YH_^g-vDw{^k`@t>h<0HSZlap~L6?u>lY80cwhlj^U z$HyrGY581+5URRP$}#Mq@SRE!0l+TBUFl_x-GYq}EmEp0P<1&{SJmY*KX%4oLn*QW z7)4P4R8S1HI}IR!wn0Z}w~S(z(^tX-0hV^dC+*?XRrPRk{ZgC%)M-Gv@c|~(97LH- zW(O}^ua1wp$#fd(CIgDxGx%?PV+pRK$vtxlC|XepcY8`%IbrRP(8yokWS=#}L{WR9qQ9zc@iDeGU@({vY})8(Uj3 z)ZU{il|2m1(^^!x$W2+6vl-79Yz!2IHKeY{P9}3^h^ita2*bjT2evFr5qbKV&p+|O zC!T-)h3B4o_Tc33OTO}tTzlX?4izHN=}1#MYjZ1CN+-7!NHS{-Ba=N9?>u>OyfN6w z`~AoqySrx9_m=kYWatfF{03|7(>I=b`l)A}u~T6|aE>nSYy-#EG8luJ5^WBlP6&gP z*;NcSjLBo8SqU*VF3TOmya|Kc#>mq-kJtJ|zgH=7jHOP779%&28j5DVe>j`ZNO5(0 z=3^6@T2iiE(lA<5>Js7sElUf-Oh3>SGfo;tC3_Pk1AY41R#v1Z!pYYL#wb8!PJBc| zWXO=EE}>kyeMWjP4FFIwy->%FSW+DHG_Mm>No_j&WRj+zKxw%xZY4A%2*@#z3Rm+u zotSjiNEK;N4*P?Vb*_EVS2}URW#+IFEIpO5QV+HU6#zw`G#hWH1^~o5olkf7@0^?* zMqvdZAY_idnNKH#Mi4}~rSPYBwU3AUyNkX3W-(Wh=wtA~W^Q>nUdjrF0E$G_eEPLt z{k327HE*u#I?tR+Ag4qa>l82{Mb_geRaGlm02q%-72VyRH_@QzV33zZKnY~gWWD#i z`+aYH>sudx{JkefyO@BEL`Rd!fA_uL(;Ma-c{#-F)=DbMBBUtL2^JH8#1gJw+n z)=^zwxq2U2n?MW85`C$xOJ!|28ou(;#{l5NAN%OZ;cmo2u&OuHy27 zK}8t}HMZq|2pF^y!(vf$6ae%=P8J@(Hz8DBas)~ekqMP7>ZInKo}4tkX+x22QQNHroGSfA6$~OJ;UlC46m{CNwthwc z5SsgDI-kYGB1gg^PZ~)T&9mad_Jy6z^S$2SMT0f$dX{97!R7j;{jK%~i~uHGTkX67 zwGD@k@$S)X6kg1a(!XO6g0FXP-}D^vq8~w6TF7WiYGR&GPO4kG;v!zx!0#tfp zx&`aXwu_e9#K_$55B}2k|7Bw=fv*;99k~n}9}u0_F)QurP z)Zx(fN+lfaA2pwP^5ehw?|$ZY-u|0D_+GzX_IrS6j1h&sTf6W2?RS2|pZGeWB#@xx zrx8^V6cIsD;B+~#N{C@telQp@+!IWZDk?c`$WK4%a$gCOC?wcoDF86FFaQ7%MCIn*En^*pkOE+1 zsE=;lJ~=pw%C&D;Sw+Z@O>Z1lkv=ANlwdLIJ{GBvaMPkrxy z_eHOLO>9Dp6g4_yQ6V%6M%LH!s?u2_CbOf0TwYA7IGZv^>=pT7h=}Apf8vv$_>ceo z7vBE%-#k3nD~iI}+!Cm?Gy!8QW!Z;6^kmWNf6do_MZ)H$b~oi{h+w);G_l%LFtRF| zrq+*r;&Z?E`&pUydcD~F(zD8mRO^N)FMIi8TWjmH#r)%+{DdJBI7*CzqBraf>bkD# z+6V8O#tUq3TB`ucEbZ9UC=5rVY?z~g>gdE2rI@0MVvPD`UaKkkc~BeK4~^kE#Djec zI-AwADg@xWcW(z2o9N)8h^iuqAJE+;me8(@h5-O^94?GDIR8KY&woBN5s_E~3DHnpM`Nfc zTnys9FN!S7D9deR4Hct6mfPMCvMj&x{K?P$%+LJ%FZ}fJ@o}EJet)n8fV6omF)E<7 zw#f4jyzc{f?!Np@U&`zg0SG?#!Hql3h+EZgf_SS6a}*ZPwOZiL^T#*tY^-e~V$ub_ z7}1sp)L`&SU;BC>{PfeGz47exrL}cv$e7V+e0+Rd*L6&x(+Fi*=0y<#Cxof0umUKW zECZ$}k`;p}!5OYXQwLt(TEBH%RSm57gXd6JpcxL=hA_>mx~`kLivH;65YFy1y4ppc z6LzJdt7Vq}p57-ZG?xHhxN-C2TkGf7wi=cGh0CM$b9t|iX<{A&M<43O$6AFo?J*Qs zIf62%0E=i<37 zXYA2re*4ayljD;`@F5xlea-veoTx?)Hdcj+1wlQp=O=RuYRF+*TN+R`M5&85L`x1C zt*mI;#CJtaun9@A7O2b6`W6IN2f8pg{zIEj?#HJ1q z6^kqrkxAu8z1$KUPCQxal{RxUUj$~&Gbl@IEyQ3x_<<+>$v^)4AO7$k6h&`17(|KM zB871EX-+qQv(_2=_`Ba55yOZU>H|jrG)=eCWxKEsiHeZ%9bv@i;XJd7c$muyXJrD+)pq4P8IoY7`pJq4J{M zI-1vPnnjH41F20l5mrHJ=AcwB7NMy^4D;E1wpdh6eR6VgW`zn#9U4;(9h_<)k=g_d z1VGznh$UIM#Ls>9g~`d}+}8G$hhO=M3okFXFBU}+C00!{U(Ao^`*-&a_K)_CW{0M! z4O&6;F;vV`2n%GjXfkK=%(>hMK@fj5o!vc{?Cn>RX;Uv^BM6jbE_0c4j!d$yr0=Ey z1!gwRKJw^84?g^|`yY6DFE8%i-K`e9yE{ENTFhq)6$Dq9EJH)SX&l0+U##`=(q+T7 zq4xoeBea%`A)}zikR>priMOk*HL?o?ZZ{z<0fWRSfdHV8ii(Cd^#qrg6jA`Cws}ES zW62nkYRnEx&4gH#rOoq*sv>39@Apb)OzK06dF|^E7K_?9Q8+arX|bKQC~aE;P&03g z%OC!puX)3xFAG<{D*8y7^HoDY&S6z?5<>gHQK_()=O#uLArKu5LCGE5o&EGr|BIjf zcmH-#&3nVKcAmVn;a#?8Y0*gtz%hc7v54@F-+EV`<11eCXbP

    7pu%n^(MW)bG7 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 diff --git a/portal-common/src/main/webapp/common/image/mainpage/pic/4.png b/portal-common/src/main/webapp/common/image/mainpage/pic/4.png deleted file mode 100644 index 552cb1f2991df6d0910b7e417a59883442aef995..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 105028 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

  • " + - "" + - "" + - "" + - "" + - "
  • "; - - var menuContent = ""; - for (var i = 0; i < parentMenus.length; i++) { - var parentMenuContent = templateParent.replace("{id}", parentMenus[i].id) - .replace("{iconClass}", parentMenus[i].iconClass) - .replace("{i18nName}", i18nName); - - var childMenuContent = ""; - for (var j = 0; j < childMenus.length; j++) { - if (childMenus[j].parentId == parentMenus[i].id) { - childMenuContent = childMenuContent + templateChild.replace("{id}", childMenus[j].id) - .replace("{url}", childMenus[j].url) - .replace("{iconClass}", childMenus[j].iconClass) - .replace("{hrefId}", childMenus[j].id + "_href") - .replace("{i18nName}", i18nName); - } - } - childMenuContent = ""; - - menuContent = menuContent + "
  • " + parentMenuContent + childMenuContent + "
  • "; - } - - return menuContent; -} \ No newline at end of file diff --git a/portal-common/src/main/webapp/common/js/core/openoFrameWork.js b/portal-common/src/main/webapp/common/js/core/openoFrameWork.js deleted file mode 100644 index 78a7e615..00000000 --- a/portal-common/src/main/webapp/common/js/core/openoFrameWork.js +++ /dev/null @@ -1,3701 +0,0 @@ -/* -主框架 -*/ -/*string类型的去前后空格和format方法*/ -String.prototype.trim = function() { - return this.replace(/(^\s*)|(\s*$)/g, ""); -}; -String.prototype.format=function() { - if(arguments.length==0) return this; - for(var s=this, i=0; i ul > li', panel).each(function () { - var color = $(this).attr("data-style"); - if (color == configColor) { - // 匹配上了才重设默认主题 - $(this).addClass("current"); - $('#style_color').attr("href", "css/themes/" + color + ".css"); - //if (store) { - store('style_color', color); - //} - } - }); -}; - -function setFrameWorkByConf() { - //设置用户相关的框架下拉菜单是否可用 - var helpMenuItem = openoFrameWork_conf.helpMenuItem; - var aboutMenuItem = openoFrameWork_conf.aboutMenuItem; - var flightMenuItem = openoFrameWork_conf.flightMenuItem; - var fullscreenMenuItem = openoFrameWork_conf.fullscreenMenuItem; - var logoutMenuItem = openoFrameWork_conf.logoutMenuItem; - var changePassMenuItem = openoFrameWork_conf.changePassMenuItem; - if (!helpMenuItem || helpMenuItem === "false") { - $('#uep_ict_help_url').parent('li').remove(); - } - if (!aboutMenuItem|| aboutMenuItem === "false") { - $('[data-target="#aboutDlg"]').parent('li').remove(); - } - if (!helpMenuItem && !aboutMenuItem) { - $('#uep_ict_help_div').remove(); - } - if (!flightMenuItem|| flightMenuItem === "false") { - $('#header_notification_bar').html("
          
    "); - } - if (!fullscreenMenuItem|| fullscreenMenuItem === "false") { - //$('#trigger_fullscreen').parent().css("display", "none"); - $('#trigger_fullscreen_div').html(""); - } - if (!logoutMenuItem || logoutMenuItem === "false") { - //$('#trigger_logout').parent().css("display", "none"); - $('#trigger_logout_div').html(""); - } - if ((!fullscreenMenuItem && !logoutMenuItem) || (fullscreenMenuItem === "false" && logoutMenuItem === "false")) { - $('#full_logout_divider').css("display", "none"); - } - if (!changePassMenuItem ) { - $('#changePwd_labellink').css('display','none'); - $('#full_logout_divider').css('display','none'); - } - - //设置二次开发者选择的框架皮肤 - var defaultColor = openoFrameWork_conf.defaultThemeColor; - var panel = $('.zte-theme-panel'); - $('ul > li', panel).removeClass("current"); - if (store && !store('style_color')) { // cookie没有才设置默认主题 - setThemeColor(defaultColor); - } else { - setThemeColor(store('style_color')); - } -}; - -/*新增的hashtabel实现类,用户后续iframe的缓存,前进后退时打开过的页面的菜单id的缓存等*/ -function Hashtable() -{ - this._hash = {}; - this._count = 0; - this.add = function(key, value) - { - if (this._hash.hasOwnProperty(key)) - return false; - else { - this._hash[key] = value; this._count++; return true; - } - } ; - this.hash = function() { return this._hash; }; - this.remove = function(key) { delete this._hash[key]; this._count--; } ; - this.count = function() { return this._count; }; - this.items = function(key) { if (this.contains(key)) return this._hash[key]; }; - this.contains = function(key) { return this._hash.hasOwnProperty(key); }; - this.clear = function() { this._hash = {}; this._count = 0; }; - this.replace = function(key, value) - { //有则删除后增加///相当于更新 - if(this.contains(key)){ - this.remove(key); - } - return this.add(key, value); - } ; -}; - -var fMenuSiderDivId = 'page-f-sidebar-menu'; -var fMenuMegaDivId = 'f_hormenu'; -var megaSiderDivId = 'page-megachild-sidebar-menu'; -var megaDivId = 'main_hormenu'; -var openoFrameWork_menu_horizontal = "horizontal"; -var openoFrameWork_menu_vertical = "vertical"; -var openoFrameWork_menu_fmenu = "fmenu"; -var openoFrameWork_showNav = "true"; -var openoFrameWork_smallView = 960;//原来为992,但是在投影仪上不准(投影仪设置为1024,但是实际尺寸比1024小),边栏菜单也会被移除,这个设置一个稍小的值。 - -/*下面是主框架的核心*/ -var openoFrameWork = function () { - var defaultLanage=getLanguage(); - var isRTL = false;//文档顺序 - var isTouch=function(){ - try { - document.createEvent("TouchEvent"); - return true; - } catch (e) { - return false; - } - }; - var isDesktop = !isTouch; - var isIE8 = false; - var isIE9 = false; - var isIE10 = false; - var gdocTitle=""; - var _sidebarWidth = 225; - var _sidebarCollapsedWidth = 35; - var responsiveHandlers = []; - var cachedIframes=new Hashtable(); - var cachedIframesObject=new Hashtable(); - var breadcrumbBtnMenus=new Hashtable(); - var _menuCategorys=new Hashtable(); - var _iframe="page-mainIframe"; //全局变量保存的是当前正在打开使用的iframe - var _sceneURLRootPath=""; - var _hashSource="";//信号量 - var _isClicked=false;//信号量 - //var _breadcrumbSource=false; - - // 皮肤颜色 - var layoutColorCodes = { - 'blue': '#4b8df8', - 'red': '#e02222', - 'green': '#35aa47', - 'purple': '#852b99', - 'grey': '#555555', - 'light-grey': '#fafafa', - 'yellow': '#ffb848', - 'ztebluelight': '#3366cc' - }; - // 获取真实的设备窗口大小,参考了 http://andylangton.co.uk/articles/javascript/get-viewport-size-javascript/ - var _getViewPort = function () { - var e = window, a = 'inner'; - if (!('innerWidth' in window)) { - a = 'client'; - e = document.documentElement || document.body; - } - return { - width: e[a + 'Width'], - height: e[a + 'Height'] - } - } - // 初始化 - var dealInit = function () { - var sence = '0'; - var menuSence = getUrlParam("menu"); - var confSence = 0; - if (menuSence) { - sence = menuSence; - } else { - sence = confSence; - } - switch (sence) { - case "1": - gdocTitle = $('#com_zte_ums_ict_framework_ui_page_title_1').text().trim(); - break; - case "2": - gdocTitle = $('#com_zte_ums_ict_framework_ui_page_title_2').text().trim(); - break; - case "3": - gdocTitle = $('#com_zte_ums_ict_framework_ui_page_title_3').text().trim(); - break; - case "0": - default: - gdocTitle = $('#com_zte_ums_ict_framework_ui_page_title').text().trim(); - break; - } - if ($('body').css('direction') === 'rtl') { - isRTL = true; - } - isIE8 = !! navigator.userAgent.match(/MSIE 8.0/); - isIE9 = !! navigator.userAgent.match(/MSIE 9.0/); - isIE10 = !! navigator.userAgent.match(/MSIE 10.0/); - if (isIE10) { - $('html').addClass('ie10'); // IE10 - } - if (isIE10 || isIE9 || isIE8) { - $('html').addClass('ie'); // IE10 - } - var deviceAgent = navigator.userAgent.toLowerCase(); - if (deviceAgent.match(/(iphone|ipod|ipad)/)) { - $(document).on('focus', 'input, textarea', function () { - $('.page-header').hide(); - if($('.page-footer')&&$('.page-footer').length>0) - $('.page-footer').hide(); - }); - $(document).on('blur', 'input, textarea', function () { - $('.page-header').show(); - if($('.page-footer')&&$('.page-footer').length>0) - $('.page-footer').show(); - }); - } else { - $(document).on('focus', 'input, textarea', function () { - if($('.page-footer')&&$('.page-footer').length>0) - $('.page-footer').hide(); - }); - $(document).on('blur', 'input, textarea', function () { - if($('.page-footer')&&$('.page-footer').length>0) - $('.page-footer').show(); - }); - } - } - //处理滚动到 - var dealScrollTo=function (el, offeset) { - - } - var dealstartPageLoading=function(message) { - $('.page-loading').remove(); - $('body').append('
      ' + (message ? message : $.i18n.prop('com_zte_ums_ict_framework_ui_loading')) + '
    '); - } - var dealstopPageLoading=function() { - $('.page-loading').remove(); - } - var dealSidebarState = function () { - // 窗体宽度小尺寸(平板和iphone模式下)时移出左边栏 - var viewport = _getViewPort(); - if (viewport.width < openoFrameWork_smallView) { - $('body').removeClass("page-sidebar-closed"); - }else{ - if (getCookie('sidebar_closed') === '1') { - $('body').addClass('page-sidebar-closed'); - } - } - } - // openoFrameWork.addResponsiveHandler()回调函数. - var runResponsiveHandlers = function () { - //重新初始化其他订阅的元素elements - for (var i = 0; i < responsiveHandlers.length; i++) { - var each = responsiveHandlers[i]; - each.call(); - } - } - // 窗体重新调整大小时初始化调整边栏状态高度 - var dealResponsive = function () { - dealSidebarState(); - ajustHorMenuDropDirection(); - dealSidebarAndContentHeight(); - dealFixedSidebar(); - runResponsiveHandlers(); - } - // 页面重载入时初始化调整内部布局 - var dealResponsiveOnInit = function () { - dealSidebarState(); - dealSidebarAndContentHeight(); - setTimeout(function () { - ajustHorMenuDropDirection(true); - }, 100); - } - // 窗体重新调整大小时初始化调整布局 - var dealResponsiveOnResize = function () { - var resize; - if (isIE8) { - var currheight; - $(window).resize(function () { - if (currheight == document.documentElement.clientHeight) { - return; - } - if (resize) { - clearTimeout(resize); - } - resize = setTimeout(function () { - dealResponsive(); - }, 50); - currheight = document.documentElement.clientHeight; - }); - } else { - $(window).resize(function () { - if (resize) { - clearTimeout(resize); - } - resize = setTimeout(function () { - dealResponsive(); - }, 50); - }); - } - } - var changeSiderBar = function(hideAllMenu){ - var siderbarpos = $(".nav-pos-direction", $(".zte-theme-panel")).val(); - var sidermenu = $("#page-sidebar-menu"); - var hormenu = $("#main_hormenu"); - var fhorMenu = $("#" + fMenuMegaDivId); - var fsiderMenu = $("#" + fMenuSiderDivId); - if(hideAllMenu){ - sidermenu.css('display','block');// 侧边栏显示 - hormenu.css("display", "none");//隐藏水平菜单栏 - fhorMenu.css('display','none'); - fsiderMenu.css('display','none'); - return; - } - - sidermenu.css('display','none'); - hormenu.css("display", "none"); - fhorMenu.css('display','block'); - fsiderMenu.css('display','block'); - //除了toggle按钮之外,是否还有其他儿子是要显示的,如果没有,那么竖菜单不显示;反之,显示。 - var lis = fsiderMenu.children(".sidebar-toggler-wrapper").siblings(); - if(lis.length > 0 && lis.css('display') != "none"){ - fsiderMenu.css('display','block'); - $("body").removeClass("page-full-width"); - if ($('body').hasClass("page-sidebar-closed")) { - $(".page-content").css("marginLeft", _sidebarCollapsedWidth); - } else { - $(".page-content").css("marginLeft", _sidebarWidth); - } - } - } - //根据当前菜单在屏幕的位置,和一级菜单下二级菜单的排列,来决定菜单是向左展开还是向右展开 - var ajustHorMenuDropDirection = function( isInit ){ - //获取屏幕宽度 - var bodyWidth = document.body.clientWidth; - //循环,获取每个一级菜单在屏幕中的位置 - var levelOneAdropdowns = $('a.dropdown-toggle', '#main_hormenu' ); - //每一个文字span的图标、他父亲的margin\padding等占用的位置 - var marginCount = 5 * 2 + 17.5 + 2 * 2 + 30 + 15 * 2 + 3; - for( var i = 0 ; i < levelOneAdropdowns.length ; i++ ){ - var a = $(levelOneAdropdowns[i]); - var leftOffset = a.offset().left; - //获取二级菜单的数量 - var ul = a.parent().children('.dropdown-menu'); - var groupDivs = $('.zteDivWidth' , ul); - var widthOfDropDownMenu = 0; - for(var j = 0 ; j < groupDivs.length && groupDivs.length >0 ; j++ ){//循环获取每个分组的宽度 - var eachDiv = groupDivs[j]; - var maxLengthText = ""; - var maxLength = 0; - var spans = $('span' , eachDiv).each(function(){ - var innerText = this.innerText; - if( innerText.length > maxLength ){ - maxLength= innerText.length; - maxLengthText = innerText; - } - }); - widthOfDropDownMenu = widthOfDropDownMenu + getStringWidth(maxLengthText , 14) + marginCount; - } - //预估每个组占宽度150PX,多预计一点 - if( widthOfDropDownMenu + leftOffset > bodyWidth ){ - console.log("ajust class dropdown-menu-right ,id = "+ a.attr("id") ); - ul.addClass('dropdown-menu-right'); - //var right = bodyWidth - (leftOffset + a.width() + 15); - //ul.attr('style' ,'right:' + right ); - }else{ - ul.removeClass('dropdown-menu-right'); - //ul.removeAttr('style'); - } - } - } - // 屏幕大小发生变化或者移动设备旋转屏幕时处理响应式布局. - var dealSidebarAndContentHeight = function (isToggler) { - var content = $('.page-content'); - var contentbody = $('.page-content-body'); - var sidebar = $('.page-sidebar'); - var body = $('body'); - var height; - var viewport = _getViewPort(); - var scrAvaHeight=Math.min(window.screen.availHeight,viewport.height)-5; - var footer=$('.footer'); - var pgbread=$('.page-breadcrumb'); - var pageableDiv=$('#pageableDiv'); - console.log("pageableDiv height:"+pageableDiv.outerHeight(true)); - var pheader=$('.header'); - var childPagetype=!!cachedIframesObject.items(_iframe)?cachedIframesObject.items(_iframe).childpageType:""; - if(childPagetype==="isc")//smartclient的子页面固定高度为视口可用内容区高度 - { - $('.sidebar-option', panel).val("fixed"); - } - dealShownav(); - var available_height =scrAvaHeight - ((!footer||footer.length<=0)?0:footer.outerHeight(true)) - pheader.outerHeight(true); - var _pageableDivHeight=(!pageableDiv||pageableDiv.length<=0||pageableDiv.is(":visible")==false)?0:pageableDiv.outerHeight(true); - var h= scrAvaHeight-pheader.outerHeight(true)-((!footer||footer.length<=0||footer.is(":visible")==false)?0:footer.outerHeight(true))-pgbread.outerHeight(true)-_pageableDivHeight-(contentbody.outerHeight(true)-contentbody.height()); - var miframe=_iframe==""?"page-mainIframe": _iframe; - var pagemyIframe=$('.page-content .page-content-body .'+miframe); //.page-mainIframe - if(pagemyIframe&&pagemyIframe.length>0){ - //处理iframe,下面计算中间iframe的高度 - var deviceAgent = navigator.userAgent.toLowerCase(); - if (deviceAgent.match(/(iphone|ipod|ipad)/)) { //||viewport.height<=480 - var w=viewport.width-content.offset().left-(pagemyIframe.offset().left-content.offset().left)*2;//宽度=总宽度-左边栏宽度-内容区内边距。左右两个 - pagemyIframe.width(w); - } - //对桌面必须计算高度 - var tmp_style = sidebar.attr('style');// firefox下执行 sidebar.height()会改变style样式,这里缓存下执行前的style样式,执行完后重新赋给页面元素 - console.log("pym:parent iframe "+miframe+" sidebar.height:"+sidebar.height()+" h:"+h); - h=sidebar.height()>h?sidebar.height():h; - //IE下,把iframe的高度再减掉7,因为IE10及以下版本,计算的高度会比IE实际显示区域大,导致出现IE滚动条。 - /*h=h-ICTFRAME_CONST_IFRAME_HEIGHT_AJUST; - if(isIE){ - h=h-ICTFRAME_CONST_IFRAME_HEIGHT_AJUST_IE; - }*/ - sidebar.attr('style',tmp_style); - if (isDesktop) { - //pagemyIframe.attr("height",h); - if(cachedIframesObject.items(miframe).setMinHeight){ - var minHeight=Math.min(scrAvaHeight,h); - console.log("pym:parent iframe "+miframe+" window.screen.availHeight:"+scrAvaHeight+" viewport.height:"+viewport.height+" h:"+h+" minHeight:"+minHeight); - cachedIframesObject.items(miframe).setMinHeight(minHeight); - } - }else{ - //pagemyIframe.attr("height","100%");//去掉这里错误的设置,ipad上测试高度不正确 - var _h=h; - try{ - _h=pagemyIframe.contents().height(); - }catch(e){} - h=_h>h?_h:h; - if(cachedIframesObject.items(miframe).setMinHeight){ - var minHeight=Math.min(scrAvaHeight,h); - console.log("pym:parent iframe "+miframe+" window.screen.availHeight:"+scrAvaHeight+" viewport.height:"+viewport.height+" h:"+h+" minHeight:"+minHeight); - cachedIframesObject.items(miframe).setMinHeight(minHeight); - } - } - } - - if (body.hasClass("page-footer-fixed") === true && body.hasClass("page-sidebar-fixed") === true) { - if (content.height() < available_height) { - //content.attr('style', 'min-height:' + available_height + 'px !important'); - dealAddStyle(content,'min-height',available_height + 'px',true); - } - } else{ - if (body.hasClass("page-footer-fixed") === true && body.hasClass("page-sidebar-fixed") === false) { - if (content.height() < available_height) { - //content.attr('style', 'min-height:' + available_height + 'px !important'); - dealAddStyle(content,'min-height',available_height + 'px',true); - } - } else { - if (body.hasClass('page-sidebar-fixed')) { - height = _calculateFixedSidebarViewportHeight(); - } else { - // firefox下执行 sidebar.height()会改变style样式,这里缓存下执行前的style样式,执行完后重新赋给页面元素 - var tmp_style = sidebar.attr('style'); - // height = sidebar.height() + 20; - sidebar.attr('style',tmp_style); - var headerHeight = pheader.outerHeight(true); - var footerHeight = (!footer||footer.length<=0)?0:footer.outerHeight(true); - if ($(window).width() > 1024 && (height + headerHeight + footerHeight) < scrAvaHeight) { - height = scrAvaHeight - headerHeight - footerHeight; - } - } - if (height <= content.height()) {//这里为了避免内容区域很小的时候出现内容区域无法充满屏幕,把min-height修改为height - //content.attr('style', 'min-height:' + height + 'px !important'); - dealAddStyle(content,'min-height',height + 'px',true); - } - } - } - // 屏幕小尺寸时会隐藏边栏,这时菜单由小屏幕右上图标控制,当屏幕变化到大尺寸屏幕时, - // 需要按原菜单出现方式恢复菜单显示。 - var screenwidth = $(window).width(); - if(screenwidth >= openoFrameWork_smallView){ - changeSiderBar(); - if($(".page-sidebar-menu li").css('display') != "none"){ - if ($('body').hasClass("page-sidebar-closed") && $(".sidebar-toggler").hasClass("close-by-viewportChange")) { - if( !isToggler ){ - $(".sidebar-toggler")[1].click(); - } - $(".sidebar-toggler").removeClass("close-by-viewportChange"); - } - } - } - else { - changeSiderBar(true); - } - } - var showIframe=function(iframe){ - var resize,pagemainIframe; - if (cachedIframes.count()>0) { - for (var i in cachedIframes.hash()) { - cachedIframes.replace(i,0); - var pagemyIframe=$('.page-content .page-content-body .'+i); - if(pagemyIframe&&pagemyIframe.length>0){ - if(iframe==i){ - pagemyIframe.show(); - cachedIframes.replace(i,1); - } else{ - if("page-mainIframe"===i){//2015年12月10日 wimax要求页面切换后删除没有配置cacheNum的缓存页面 - pagemainIframe=i; - pagemyIframe.attr("src",""); - pagemyIframe.remove(); - }else{ - pagemyIframe.hide(); - } - cachedIframes.replace(i,0); - } - } - } - } - if(pagemainIframe){ - delete cachedIframes._hash[pagemainIframe]; - delete cachedIframesObject._hash[pagemainIframe]; - } - if (!cachedIframes.contains(iframe)) { - cachedIframes.add(iframe,1); - //增加的iframe加载完毕后 停止加载中提示信息 - myIframe=$('.'+iframe); - myIframe.show(); - myIframe.load(function(){ - /*if (!isDesktop) { - if (resize) { - clearInterval(resize); - } - resize = setInterval(dealIframeHeight, 400,$(this)); - }*/ - openoFrameWork.stopPageLoading(); - }); - } - } - var hidemenu=function(){ - $('.hor-menu').hide(); - dealAddStyle($('.page-content'),'margin-left','0px',true); - dealAddStyle($('.page-sidebar'),'display','none',true); - var fsiderMenu = $("#" + fMenuSiderDivId); - fsiderMenu.children().css('display' , 'none'); - } - var hideAlarmLight=function(){ - //$('#header_notification_bar').hide(); - //$('#header_notification_bar').empty(); - $('#header_notification_bar').html("
          
    "); - } - var dealShownav=function(){ - var showNav=openoFrameWork.getLocationURLParameter('showNav'); - if( showNav=="false"){ - openoFrameWork_showNav = showNav; - hidemenu(); - hideAlarmLight(); - } - } - /* 点击菜单时,处理对应该菜单项的横,左菜单项 */ - var dealRelateMenu = function(source) { - // 点击子菜单时,对应的横竖菜单项也联动为选择样式,(高亮,箭头变化) - var panel = $('.zte-theme-panel'); - var navPosOption = $('.nav-pos-direction', panel).val(); - var targetsource = null; - var targetContainer = null; - if (navPosOption === "vertical") { - // 当前是左菜单,则处理对应的横菜单 - targetsource = $("#"+source.attr("id"), $("#main_hormenu")); - targetContainer = $(".header ul"); - } else if (navPosOption === "horizontal") { - var rtn = dealMgaBarRelated(source); - dealFMenuRelated(source , megaSiderDivId); - targetContainer = rtn[0]; - targetsource = rtn[1]; - }else if(navPosOption === openoFrameWork_menu_fmenu){ - dealFMenuRelated(source , fMenuSiderDivId); - } - if (targetContainer) { - // 移除原有菜单项的活动及箭头样式 - targetContainer.children('li.active').removeClass('active'); - targetContainer.find('.arrow.open').removeClass('open'); - } - if (targetsource) { - // 增加活动及箭头样式 - targetsource.parents('li').each(function () { - $(this).addClass('iframe active'); - $(this).find('a > span.arrow').addClass('open'); - }); - targetsource.parents('li').addClass('active'); - if (navPosOption === "horizontal") { - if (targetsource.parent().parent().parent().is("li")) { - $('.arrow', targetsource.parent().parent().parent()).addClass("open"); - } - } - } - } - var dealMgaBarRelated = function(source){ - // 当前是横菜单,则处理对应的左菜单 - targetsource = $("#"+source.attr("id"), $("[class='page-sidebar-menu']")); - targetContainer = $("#page-sidebar-menu ul"); - // 将先前左菜单展开的子菜单收缩 - $("li.open",targetContainer).each(function() { - var style = $("ul.sub-menu", this).attr("style"); - if (style) { - $("ul.sub-menu", this).removeAttr("style"); - $(this).removeClass('open'); - } - }); - // 当前是横菜单,但在屏幕缩小的情况下显示的是tip垂直菜单,而横菜单是隐藏的,所以需额外处理横菜单 - if (source.parent().parent().parent().parent().attr("class").indexOf("page-sidebar-menu") >= 0) { - var tiptargetsource = $("#"+source.attr("id"), $("#main_hormenu")); - var tiptargetContainer = $(".header ul"); - tiptargetContainer.children('li.active').removeClass('active'); - tiptargetContainer.find('.arrow.open').removeClass('open'); - tiptargetsource.parents('li').each(function () { - $(this).addClass('iframe active'); - $(this).find('a > span.arrow').addClass('open'); - }); - tiptargetsource.parents('li').addClass('active'); - } - return [targetContainer ,targetsource ]; - } - var dealFMenuRelated = function(source , siderDivId ){ - var fsiderMenu = $("#" + siderDivId); - if(isMoreMenuItemClick){//更多菜单点击 , 临时方案,增加信号量,使用之后就置为false - isMoreMenuItemClick = false - }else if($(source).parents('li').hasClass('mega-menu-dropdown')){//F的横向菜单的点击 - var id = source.attr('id'); - //非被点击的一级菜单的二级菜单都不显示 - $('#' + siderDivId + '>li').hide(); - var level2Lis = $("a[hparentid= " + id + "]" , fsiderMenu).parent(); - level2Lis.show(); - if(level2Lis.length > 0){//把竖向菜单的收起放大按钮显示出来 - $('#' + siderDivId + '>li.sidebar-toggler-wrapper').show(); - } - if($("a[hparentid= " + id + "]" , fsiderMenu).length > 0){ //有子孙菜单时,把F菜单的竖菜单显示出来 - dealFSidermenu(source ,siderDivId ); - }else{//否则隐藏竖菜单 - fsiderMenu.css('display','none'); - $("body").addClass("page-full-width"); - $(".page-content").css("marginLeft", _sidebarWidth); - } - - }else{//F菜单的竖向菜单点击 - //处理一种特殊情况,告警灯打开新页面,所有的菜单都不出现,因此,虽然这个source在竖菜单,但竖菜单这个时候实际上是没有显示的 - if( openoFrameWork_showNav == "true") { - $('#' + siderDivId + '>li').hide(); - var lis = $(source).parents('li'); - var id = lis.eq(lis.length-1).children( 'a' ).attr('hparentid'); - //var id = $(source).parents('li').children('a').attr('hparentId'); - var level2Lis = $("a[hparentid=" + id + "]" , fsiderMenu).parent(); - level2Lis.show(); - if(level2Lis.length > 0) {//把竖向菜单的收起放大按钮显示出来 - $('#'+ siderDivId + '>li.sidebar-toggler-wrapper').show(); - } - //$('#' + siderDivId + '>li')[0].show(); - dealFSidermenu(source , siderDivId); - } - } - } - var dealFSidermenu = function(source , siderDivId){ - var fsiderMenu = $("#" + siderDivId); - fsiderMenu.css('display','block'); - $('ul.sub-menu',fsiderMenu).css('display','block'); - $('.arrow',fsiderMenu).addClass('open'); - $("body").removeClass("page-full-width"); - if ($('body').hasClass("page-sidebar-closed")) { - $(".page-content").css("marginLeft", _sidebarCollapsedWidth); - } else { - $(".page-content").css("marginLeft", _sidebarWidth); - } - var href = source.attr("href"); - $('li.iframe' ,fsiderMenu ).removeClass('active'); - var selectedIframeLi = $("a[href ='" + href + "']" ,fsiderMenu ).parent(); - selectedIframeLi.addClass('active'); - selectedIframeLi.parent().parent().addClass("open").addClass("active"); - selectedIframeLi.parent().css('display','block'); - selectedIframeLi.parent().parent().children('a').children('.arrow').addClass('open'); - } - var dealMenuItemClick=function(source,e,menuContainerStr){ - var url = source.attr("href"); - if(!url||url.length<2) - return; - e.preventDefault(); - if(!_isClicked){//导航情况下,首先要模拟点开菜单分组 - _isClicked=true;//如果菜单有子菜单点击一次来展开子菜单,注意这个信号量的变化,避免死循环 - var mainMenu=source.parents('li').last(); - if(!mainMenu.hasClass('open')){ - dealLiAClick(mainMenu.children('a:eq(0)')); - } - } - if(menuContainerStr&&menuContainerStr.length>0){ - var menuContainer = $('.'+menuContainerStr+' ul'); - - menuContainer.children('li.active').removeClass('active'); - // menuContainer.children('arrow.open').removeClass('open'); - //menuContainer.find('.arrow.open').addClass('open'); - } - source.parents('li').each(function () { - $(this).addClass('iframe active'); - $(this).children('a > span.arrow').addClass('open'); - }); - source.parents('li').addClass('active'); - // 处理点击菜单对应的横或左菜单项的选择样式 - dealRelateMenu(source); - if(menuContainerStr&&menuContainerStr.length>0){ - if ($(window).width() <= 991 && $('.'+menuContainerStr).hasClass("in")) { - $('.navbar-toggle').click(); - } - } - if(dealMultTabPage(source)) - return true; - dealScrollTo(); - var breadmenuID=e.data&&e.data.breadcrumbBtnMenuItem&&e.data.breadcrumbBtnMenuItem.length>0?e.data.breadcrumbBtnMenuItem:""; - if(breadmenuID.length>0){//面包削导航来的,只需要重新生成面包削即可 - //找到更多菜单按钮 - var moreMenuItem = $('#' + breadmenuID , $('#pageableDiv')); - if( moreMenuItem.length == 0 ){ - moreMenuItem = $('#' + breadmenuID , $('.more-botton-zone')); - } - dealBreadcrumbBtnMenuItemClick(moreMenuItem,e); - //dealBreadcrumb(source,false,e); - }else{//非面包削导航来的, - dealstartPageLoading(); - if(dealIframe(source,e))//当返回true时说明是正常加载iframe了,否则面包削不能切换 - dealBreadcrumb(source,false,e); - } - //dealShownav(); - }; - var dealMenuItemGetFocus=function(source,e,menuContainerStr){ - var url = source.attr("href"); - if(!url||url.length<2) - return; - e.preventDefault(); - if(!_isClicked){//导航情况下,首先要模拟点开菜单分组 - _isClicked=true;//如果菜单有子菜单点击一次来展开子菜单,注意这个信号量的变化,避免死循环 - var mainMenu=source.parents('li').last(); - dealLiAClick(mainMenu.children('a:eq(0)')); - } - if(menuContainerStr&&menuContainerStr.length>0){ - var menuContainer = $('.'+menuContainerStr+' ul'); - - menuContainer.children('li.active').removeClass('active'); - menuContainer.children('arrow.open').removeClass('open'); - } - source.parents('li').each(function () { - $(this).addClass('iframe active'); - $(this).children('a > span.arrow').addClass('open'); - }); - source.parents('li').addClass('active'); - - if(menuContainerStr&&menuContainerStr.length>0){ - if ($(window).width() <= 991 && $('.'+menuContainerStr).hasClass("in")) { - $('.navbar-toggle').click(); - } - } - }; - //处理iframe的核心处理类,逻辑较为复杂,注意各种参数的处理 - var dealIframe=function(aObject,e){ - _hashSource=""; - var url = aObject.attr("href"); - if(!url||url.length<2) - return; - url=openoFrameWork.handlBaseURL(url); - //-----------2015年9月21日新增V5中大O需要的按照实例(根据选择的系统实例变化url的ip和端口地址)进行动态切换菜单的功能 - var category= aObject.attr("category");//处理菜单中定义的Category属性 - if(category&&category.length>0){//处理Category属性 - var newIpPort=_menuCategorys.items(category); - if(newIpPort&&newIpPort.ipPort&&newIpPort.ipPort.trim()!=""){//如果找到了 - var newIpPortstr=openoFrameWork.getDomainURL(newIpPort.ipPort);//去掉ip和port后多余的部分 - var urlipport=openoFrameWork.getDomainURL(url); - console.log("old url:"+url); - url=newIpPortstr+url.replace(urlipport,""); - console.log("newIpPort:"+newIpPortstr+" newURL:"+url); - } - } - //------------ - dealstartPageLoading(); - var cacheNum= aObject.attr("cacheNum");//当第三方应用需要框架缓存曾经打开过的页面时使用。 - var shiftJS= aObject.attr("shiftJS");//当第三方应用不需要后面的href页面进行重新加载仅仅执行某个脚本打开某个功能时使用 - var _iframeName= aObject.attr("iframeName");//对有些第三方应用设置了顶层frame名字的,这个必须设置 - var _iframeAutoScroll= aObject.attr("iframeAutoScroll");//设置iframe的滚动条是否出现,可以设置为auto,yes或者no,默认为no 不出现. - _iframeAutoScroll=!!_iframeAutoScroll?(_iframeAutoScroll==='yes'?'yes':_iframeAutoScroll==='auto'?'auto':'no'):'no'; - _xdomain= aObject.attr("xdomain");//对有些第三方应用如果跨域了,需要设置这个信任域属性,以便于来跨域通讯.这里取值是一个正则表达式 - _xdomain=_xdomain&&_xdomain.length>0?_xdomain:"*"; - var _cssfile= aObject.attr("cssSrc");//设置iframe中页面需要动态加载的css文件. - _cssfile=(_cssfile&&_cssfile.length>0)?_cssfile:""; - var _runShiftJS=""; - var pageContentBody=$('.page-content .page-content-body'); - var tabHtml=""; - var tabContentHtml=""; - var tabID=""; - var tabContentID=""; - var iframename=''; - function createIframe(pdiv,url,id,name,clsname,xdom,autoScroll){ - var pymParent = new pym.Parent(pdiv, url, {xdomain:xdom}); - pymParent.iframe.id=id; - pymParent.iframe.name=name; - //pymParent.iframe.setAttribute('display', "none"); - //pymParent.iframe.style.height="100%"; - //pymParent.iframe.setAttribute('height', "100%"); - pymParent.iframe.setAttribute('class', clsname); - pymParent.iframe.setAttribute('allowfullscreen',''); - pymParent.iframe.setAttribute('mozallowfullscreen',''); - pymParent.iframe.setAttribute('oallowfullscreen',''); - pymParent.iframe.setAttribute('msallowfullscreen',''); - pymParent.iframe.setAttribute('webkitallowfullscreen',''); - //pymParent.iframe.setAttribute('scrolling',autoScroll); - pymParent.iframe.setAttribute('onload', 'openoFrameWork.SyncCSS(this,0,"'+_cssfile+'");openoFrameWork.stopPageLoading();'); - cachedIframesObject.replace(id,pymParent);//缓存iframe对象实体 - pymParent.onMessage('height', function(he){ - console.log("The frame "+id+" receive message height is "+he); - var pagemyIframe=$('.page-content .page-content-body .'+id); - var h=Math.max(this.minHeight,he); - pagemyIframe.height(h); - }); - return pymParent; - }; - - if(cacheNum){//处理缓存iframe和iframename标签 - cacheNum="page-mainIframe"+cacheNum; - iframename="fraMain"+cacheNum; - }else{ - cacheNum="page-mainIframe"; - iframename="fraMain"; - } - iframename=!!_iframeName?_iframeName:iframename; - _iframe= cacheNum;//注意这里_iframe是一个全局变量 - - var miframe=_iframe==""?"page-mainIframe": _iframe; - var pagemyIframe=$('.page-content .page-content-body .'+miframe); - var nagivJS=e&&e.data&&e.data.action?e.data.action:""; - nagivJS=(!!nagivJS&&nagivJS.length>0)?(nagivJS.trim().toLowerCase()=="null"?nagivJS:"javascript:$('.page-content .page-content-body ."+miframe+"')[0].contentWindow."+nagivJS.trim()+";"):""; - nagivJS=nagivJS.trim(); - - _runShiftJS=(!!shiftJS&&shiftJS.length>0)?(shiftJS.trim().toLowerCase()=="null"?shiftJS:"javascript:$('.page-content .page-content-body ."+miframe+"')[0].contentWindow."+shiftJS+";"):""; - if(pagemyIframe&&pagemyIframe.length>0){//如果iframe已经添加了,则直接更改url或者执行切换或导航函数 - var src=pagemyIframe.attr("src"); - if((!!shiftJS||nagivJS.length>0)&&(src==url||src.split('?')[0]==url.split('?')[0])&& cacheNum!="page-mainIframe") { //url相同时,处理缓存shiftJS标签 - //这里shiftJS必须定义iframe中的页面定义到window上的函数; - //pagemyIframe.attr("scrolling",_iframeAutoScroll); - cachedIframesObject.items(miframe).settings.xdomain=_xdomain; - if(nagivJS.length>0&&nagivJS.toLowerCase()!="null") - _runShiftJS=nagivJS;//如果是nagivJS导航过来的,nagivJS优先级高于shiftJS,如果有nagivJS就用nagivJS替换_runShiftJS; 直接执行一次导航切换 - try{ - if(_runShiftJS.trim().toLowerCase()!="null") - eval(_runShiftJS); - }catch(e){ - if (e instanceof EvalError) { - console.log(e.name + " EvalError: " + e.message); - } else if (e instanceof SyntaxError) { - console.log(e.name + " SyntaxError: " + e.message); - }else if (e instanceof Error) { - if(e.name.toLowerCase().trim()=="typeerror") - { - //console.log($.i18n.prop('com_zte_ums_ict_framework_ui_clickTooFast')); - var parm={runShiftJS:_runShiftJS}; - pagemyIframe.one('load',parm,function(e){ - var runShiftJS=e&&e.data&&e.data.runShiftJS?e.data.runShiftJS:""; - if(runShiftJS.length>0&&runShiftJS.toLowerCase()!="null") - eval(runShiftJS);//点击太快了,页面没有加载完毕,那就加载完毕了再次执行 - }) - } - } - return false;//返回false 后续不再做其他动作了 - } - finally{ - openoFrameWork.stopPageLoading(); - } - }else{//否则url不同,或者url相同但没有shiftjs - if(nagivJS.length>0&&nagivJS.toLowerCase()!="null"){//如果是代码导航过来的去掉url参数中的默认action动作 - url=url.split('?')[0];//去掉?参数,防止默认执行动作,只响应nagivJS指定的动作; - } - if(src.split('#')[0]!=url.split('#')[0])//如果相等说明是通过锚点导航的,真实url没有变化,对SPA应用比较普遍 - { - pagemyIframe.attr("src","");//url和src不同说明更换了页面,需要清空重新加载 - }else //if (src.trim()==url.trim()) //没有shiftjs并且url相同,说明不需要再次加载了,已经加载过了 - { - openoFrameWork.stopPageLoading(); - } - pagemyIframe.attr("src",url); - - if(nagivJS.length>0&&nagivJS.toLowerCase()!="null"){//如果是nagivJS导航过来的,iframe加载完毕后执行一次导航切换脚本 - var parm={nagivJS:nagivJS}; - pagemyIframe.one('load',parm,function(e){ - var nagivJS=e&&e.data&&e.data.nagivJS?e.data.nagivJS:""; - if(nagivJS.length>0&&nagivJS.toLowerCase()!="null") - eval(nagivJS);//如果没有加载过,加载后也要执行跳转的函数 - }); - } - if(_cssfile.length>0&&_cssfile.toLowerCase()!="null"){//如果配置了cssSrc,每次切换都重新执行一边这个css文件,防止有遗漏 - parm={syncCSSJS:'openoFrameWork.SyncCSS(this,10,"'+_cssfile+'");openoFrameWork.stopPageLoading();'}; - pagemyIframe.one('load',parm,function(e){ - var syncCSSJS=e&&e.data&&e.data.syncCSSJS?e.data.syncCSSJS:""; - if(syncCSSJS.length>0&&syncCSSJS.toLowerCase()!="null") - eval(syncCSSJS); - }); - } - } - - }else{//否则添加新的iframe元素 overflow:visible; - if(nagivJS.length>0&&nagivJS.toLowerCase()!="null"){//如果是代码导航过来的去掉url参数中的默认action动作 - url=url.split('?')[0];//去掉?参数,防止默认执行动作,只响应nagivJS指定的动作; - } - var pdiv="pdiv_"+miframe; - if($("#"+pdiv).length<=0){//检查下,如果该div没有添加过就添加 - pageContentBody.append("
    "); - } - dealstartPageLoading(); - pymParent=createIframe(pdiv, url,miframe,miframe,miframe,_xdomain,_iframeAutoScroll); - pagemyIframe=$(pymParent.iframe); - - if(nagivJS.length>0&&nagivJS.toLowerCase()!="null"){//如果是nagivJS导航过来的,iframe加载完毕后执行一次导航切换 - var parm={nagivJS:nagivJS}; - pagemyIframe=$('.page-content .page-content-body .'+miframe); - if(pagemyIframe&&pagemyIframe.length>0){ - pagemyIframe.one('load',parm,function(e){ - var nagivJS=e&&e.data&&e.data.nagivJS?e.data.nagivJS:""; - if(nagivJS.length>0&&nagivJS.toLowerCase()!="null") - eval(nagivJS);//如果没有加载过,加载后也要执行跳转的函数 - }) - } - } - - } - showIframe(miframe); - openoFrameWork.fixContentHeight(); // 调整高度 - return true; - } - // 处理边栏菜单 - var dealLiAClick=function(source){ - if (source.next().hasClass('sub-menu') == false) { - if ($('.btn-navbar').hasClass('collapsed') == false) { - $('.btn-navbar').click(); - } - return; - } - - if (source.next().hasClass('sub-menu always-open')) { - return; - } - var parent = source.parent().parent(); - var the = source; - var menu = $('.page-sidebar-menu'); - var sub = source.next(); - var autoScroll = menu.data("auto-scroll") ? menu.data("auto-scroll") : true; - var slideSpeed = menu.data("slide-speed") ? parseInt(menu.data("slide-speed")) : 200; - parent.children('li.open').children('a').children('.arrow').removeClass('open'); - parent.children('li.open').children('.sub-menu:not(.always-open)').slideUp(200); - parent.children('li.open').removeClass('open'); - var slideOffeset = -200; - if (sub.is(":visible")) { - $('.arrow', source).removeClass("open"); - source.parent().removeClass("open"); - sub.slideUp(slideSpeed, function () { - if (autoScroll == true && $('body').hasClass('page-sidebar-closed') == false) { - if ($('body').hasClass('page-sidebar-fixed')) { - - } else { - dealScrollTo(the, slideOffeset); - } - } - dealSidebarAndContentHeight(); - }); - } else { - $('.arrow', source).addClass("open"); - source.parent().addClass("open"); - sub.slideDown(slideSpeed, function () { - if (autoScroll == true && $('body').hasClass('page-sidebar-closed') == false) { - if ($('body').hasClass('page-sidebar-fixed')) { - dealScrollTo(the, slideOffeset); - } - } - dealSidebarAndContentHeight(); - }); - } - } - var dealSidebarMenu = function () {//这里注册和处理边栏菜单的各类点击事件 - $('.page-sidebar').on('click', 'li > a', function (e) { - if ($(this).next().hasClass('sub-menu') == false) { - if ($('.btn-navbar').hasClass('collapsed') == false) { - $('.btn-navbar').click(); - } - return; - } - if ($(this).next().hasClass('sub-menu always-open')) { - return; - } - dealLiAClick($(this)); - e.preventDefault(); - }); - - // 处理左边导航中的菜单连接,显示在iframe中 - $('.page-sidebar').on('click', ' li > a.iframe', function (e) { - //dealMenuItemClick($(this),e,"page-sidebar") - e.preventDefault(); - var menuItemID=$(this).attr("id"); - if(!!menuItemID&&menuItemID.length>0){ - _setLocationHash(menuItemID); - _hashSource="dhByInterface"; - }//else{ - _isClicked=true; - dealMenuItemClick($(this),e,"page-sidebar"); - //} - }); - // 处理更多菜单的菜单连接,显示在iframe中dropdown-menu - $('.page-breadcrumb').on('click', ' li > a.iframe', function (e) { - var url = $(this).attr("href"); - if(url.length<2) - return; - e.preventDefault(); - dealBreadcrumbBtnMenuItemClick($(this),e); - }); - // 处理可翻页更多菜单中的菜单连接,显示在iframe中dropdown-menu - $('#pageableDiv').on('click', ' div > a.iframe', function (e) { - var url = $(this).attr("href"); - if(url.length<2) - return; - e.preventDefault(); - dealBreadcrumbBtnMenuItemClick($(this),e); - }); - // 处理可翻页更多菜单中的菜单连接,显示在iframe中dropdown-menu - $('#pageableDiv').on('click', ' li > a.iframe', function (e) { - var url = $(this).attr("href"); - if(url.length<2) - return; - e.preventDefault(); - if(e.target){ - var tg=$("span",e.target); - tg=tg.length>0?tg[0]:e.target; - $(".open a>div>span",e.target.parentNode.parentNode.parentNode.parentNode.parentNode).replaceWith(tg.outerHTML); - } - dealBreadcrumbBtnMenuItemClick($(this),e); - }); - - // 处理header下拉菜单中的菜单连接,显示在iframe中 - $('.dropdown').on('click', ' li > a.iframe', function (e) { - var url = $(this).attr("href"); - if(url.length<2) - return; - e.preventDefault(); - dealScrollTo(); - dealstartPageLoading(); - - dealIframe($(this),e) - dealBreadcrumb($(this),false,e); - }); - } - var getSceneURL=function(url){ - if(url&&url.trim().length>0){ - url=url.trim(); - //url= - _sceneURLRootPath=_sceneURLRootPath+url; - } - } - var gurl="";//临时全局变量,存储当前加载的more菜单,如果加载过了,就不再加载了。下面的方法中会用到 - var moreMenusisLoaded=true; - var waittime=null; - var getBreadcrumbRightButtons=function(url,e){ - if (url.length<2){ - return; - } - url=openoFrameWork.handlBaseURL(url); - if (gurl==url){ - if(e===true){ - $('#pageableDiv').show(); - }else if(e&&e.target&&e.currentTarget){ - var defaultDisplay=$(e.target).attr("defaultDisplay"); - defaultDisplay=(!defaultDisplay)?$(e.currentTarget).attr("defaultDisplay"):defaultDisplay; - if(defaultDisplay&&defaultDisplay.trim()=="false"){ - $('#pageableDiv').hide(); - }else{ - $('#pageableDiv').show(); - } - } - return; - - }else{ - gurl=url; - clearMoreOperations(); - } - //处理e参数,注意e可能为null - var breadmenuID=e&&e.data&&e.data.breadcrumbBtnMenuItem&&e.data.breadcrumbBtnMenuItem.length>0?e.data.breadcrumbBtnMenuItem:""; - breadmenuID=breadmenuID.length<=0?(e&&e.breadcrumbBtnMenuItem&&e.breadcrumbBtnMenuItem.length>0?e.breadcrumbBtnMenuItem:""):breadmenuID; - moreMenusisLoaded=false; - $.ajax({ - type: "GET", - cache: false, - url: url, - dataType: "html", - success: function (res) { - try{ - //$('.page-breadcrumb').append(res); - var resScriptsSriped = stripHtmlScripts(res); - //$('.page-breadcrumb').append(resScriptsSriped); - $('.more-botton-zone').children().remove(); - //V5新增逻辑,如果displayType = pageableDiv,那么就用滑动的DIV来显示更多菜单里面的内容,如果没有配置,或为其他值,就按原有方式显示 - var tempDiv = $('
    '); - tempDiv.children().remove(); - tempDiv.append(resScriptsSriped); - - //获取UL属性 - var displayType = $('.dropdown-menu',tempDiv).attr('displayType'); - if( displayType && displayType != 'pageableDiv'){ - $('.more-botton-zone').append(resScriptsSriped); - $('#pageableDiv').hide(); - }else{ - var tempUl = $('.dropdown-menu',tempDiv); - if(tempUl.length>0){ - moreOperations(tempUl[0]); - if(e&&e.target&&e.currentTarget){ - var defaultDisplay=$(e.target).attr("defaultDisplay"); - defaultDisplay=(!defaultDisplay)?$(e.currentTarget).attr("defaultDisplay"):defaultDisplay; - if(defaultDisplay&&defaultDisplay.trim()=="false"){ - $('#pageableDiv').hide(); - }else{ - $('#pageableDiv').show(); - } - } - } - } - runHtmlScripts(res); - }catch(ex){ - }finally{ - moreMenusisLoaded=true; - } - groupButtonAuthentication(); - if(breadmenuID.length>0){//面包削导航来的,只需要重新生成面包削即可 - var menuitem=undefined; - var panel = $('.zte-theme-panel'); - var navPosOption = $('.nav-pos-direction', panel).val(); - //var items=$("a[id='"+breadmenuID+"']"); - var items = undefined; - if (navPosOption === "vertical"){ //从垂直菜单里面找 - items=$("#page-sidebar-menu a[id='"+breadmenuID+"']"); - - }else{//从水平菜单里面找 - items=$(".hor-menu a[id='"+breadmenuID+"']"); - } - if (!items || items.length < 1) { - items=$(".page-content a[id='"+breadmenuID+"']"); - } - if(items.length>0){ - for(var i=0;i0) - dealBreadcrumbBtnMenuItemClick(menuitem,e); - } - }, - error: function (xhr, ajaxOptions, thrownError) {//加载操作菜单失败!com_zte_ums_ict_framework_ui_loadmenuerror - $('.page-breadcrumb').append('

    '+$.i18n.prop('com_zte_ums_ict_framework_ui_loadmenuerror')+'

    '); - moreMenusisLoaded=true; - } - }); - } - - //处理多tab也场景 ----redirect 该标签暂时保留,不建议使用了 - dealMultTabPage=function(clickedObject){ - var url = clickedObject.attr("href"); - if(!url||url.length<2) - return; - var redirect=clickedObject.attr("redirect"); //处理多tab页面的需求 - if (!!redirect&&redirect.length>0){ - var miframe=_iframe==""?"page-mainIframe": _iframe; - var pagemyIframe=$('.page-content .page-content-body .'+miframe); //.page-mainIframe - //var pagemyIframe=$('.page-content .page-content-body .page-mainIframe'); - var oldhref=""; - if(pagemyIframe&&pagemyIframe.length>0){ - oldhref=pagemyIframe.attr("src"); - if(url.split("?")[0]==oldhref.split("?")[0]) - { - eval(redirect); - dealBreadcrumb(clickedObject,false,e); - return true; - } - } - }; - return false; - }; - //处理主菜单面包削导航 - var globleCurrentBreadcrumb=""; - var globleCurrentMainMenuItemID=""; - var dhByBreadcrumb = false; - var dealBreadcrumb=function(clickedObject,notGenUID,e){//notGenUID为true就不重新生成id - var mbreadcrumb=$('.breadcrumbUl'); - openoFrameWork.setPageTitle(clickedObject.find('span').text().trim()); - var clieckedObj= clickedObject.parent('li'); - if(clieckedObj.length == 0){ //分页式更多菜单,a链接的父亲是div - clieckedObj= clickedObject.parent('div'); - } - //如果点击的是F菜单的竖菜单,还需要找到横菜单上的对应父亲加入到clieckedObj - var navPosOption = $('.nav-pos-direction', panel).val(); - var parentid = clickedObject.attr('hparentid'); - var breadcrumGroupButtonSrc=clickedObject.attr("breadcrumGroupButtonSrc"); - globleCurrentMainMenuItemID=clickedObject.attr("id"); - var mhmtl=""; - var url=""; - var tempObj=null; - //var breadChangeType = e? (e.data ? e.data.breadChangeType:null):null; - if( dhByBreadcrumb ){ - mhmtl = dealClickBreadcrumb(clieckedObj); - dhByBreadcrumb = ""; - }else{ - while (clieckedObj&&clieckedObj.length>0){ - if(clieckedObj.children('a')){ - if(!notGenUID){ - url=openoFrameWork.getUniqueID("aid");//+Math.floor(Math.random() * (new Date()).getTime()); - clieckedObj.children('a').attr("name",url); - }else{ - url=clieckedObj.children('a').attr("name"); - } - tempObj=clieckedObj.clone(); - tempObj.children('a').removeClass('iframe'); - tempObj.children('a').removeClass('active'); - tempObj.children('a').attr("href","javascript:openoFrameWork.goToURL('"+url+"');"); - var arrowdown = $(".fa-angle-down", tempObj.children('a')); - if (arrowdown) { - arrowdown.remove(); - } - if(tempObj.children('a').length>0){ - mhmtl=tempObj.children('a')[0].outerHTML+""+mhmtl; - } - //如果是F菜单和横菜单的子竖菜单点击,需要做特殊处理 - if( clieckedObj.parent('ul').attr('id') == fMenuSiderDivId || clieckedObj.parent('ul').attr('id') == megaSiderDivId){ - var id = clieckedObj.children( 'a' ).attr('hparentid'); - //判断是F菜单还是横菜单 - var megaMenu = null; - if(navPosOption == openoFrameWork_menu_horizontal){ - magaMenu = $('#'+megaDivId); - }else if(navPosOption == openoFrameWork_menu_fmenu){ - magaMenu = $('#'+fMenuMegaDivId); - } - clieckedObj = $("a[id=" + id + "]" , magaMenu).parent('li'); - }else{ - clieckedObj=clieckedObj.parents('li'); - } - } - } - if(clieckedObj[0]&&clieckedObj[0].length>0) { - mhmtl=clieckedObj.children('a')[0].outerHTML+""+mhmtl; - } - } - mbreadcrumb.empty(); - $('.more-botton-zone').empty(); - globleCurrentBreadcrumb=mhmtl; - store("globleCurrentBreadcrumb",globleCurrentBreadcrumb); - mbreadcrumb.append(mhmtl); - if(breadcrumGroupButtonSrc&&breadcrumGroupButtonSrc.length>0){ - getBreadcrumbRightButtons(breadcrumGroupButtonSrc,e); - }else{ - $('#pageableDiv').hide(); - } - - }; - //面包屑发起的点击,就不重新生成面包屑,只是把该面包屑的后续节点移出。 - var dealClickBreadcrumb = function(clieckedObj){ - var index = globleCurrentBreadcrumb.indexOf(clieckedObj.children('a').attr("name")); - if( index > -1 ){//截取 - var indexofSign = globleCurrentBreadcrumb.indexOf("",index); - var newBreadcrumb = globleCurrentBreadcrumb.substring(0,indexofSign) + ""; - return newBreadcrumb; - } - } - //处理面包削中菜单点击后的导航(更多菜单的面包屑) - var dealBreadcrumbBtnGroupMenus=function(clickedObject,notGenUID , e ){ - var mbreadcrumb=$('.breadcrumbUl'); - var clieckedObj= clickedObject.parent(); - var breadcrumGroupButtonSrc=clickedObject.attr("breadcrumGroupButtonSrc"); - var mhmtl=""; - var url=""; - var tempObj=null; - var menuid=clickedObject.attr("id"); - if (!breadcrumbBtnMenus.contains(menuid)) {//把当前面包削中的菜单id和该子菜单对应的父菜单关联缓存起来 - breadcrumbBtnMenus.add(menuid,globleCurrentMainMenuItemID); - } - while (clieckedObj&&clieckedObj.length>0){ - tempObj=clieckedObj.clone(); - if(tempObj.children('a')){ - tempObj.children('a').removeClass('iframe'); - url=tempObj.children('a').attr("href"); - tempObj.children('a').attr("onclick","openoFrameWork.openbreadcrumbLink($(this),event);"); - var tempdiv = tempObj.children('a').children('div'); - if( tempdiv.length > 0 ){ - var innerofDiv = tempdiv[0].innerHTML; - tempdiv.remove(); - tempObj.children('a')[0].innerHTML = innerofDiv; - } - if(tempObj.children('a').length>0){ - mhmtl=tempObj.children('a')[0].outerHTML+""+mhmtl; - } - clieckedObj=clieckedObj.parents('li'); - } - - } - if(clieckedObj[0]&&clieckedObj[0].length>0) { - mhmtl=clieckedObj.children('a')[0].outerHTML+""+mhmtl; - } - - if(breadcrumGroupButtonSrc&&breadcrumGroupButtonSrc.length>0){ - getBreadcrumbRightButtons(breadcrumGroupButtonSrc,true); - }else{ - $('#pageableDiv').hide(); - } - mbreadcrumb.empty(); - var category= clickedObject.attr("category");//处理菜单中定义的Category属性 - if(category&&category.length>0){//处理Category属性 - var newIpPort=_menuCategorys.items(category); - if(newIpPort&&newIpPort.ipTitle&&newIpPort.ipTitle.trim()!=""){//如果找到了 - mhmtl=newIpPort.ipTitle+''+mhmtl; - } - } - mhmtl=globleCurrentBreadcrumb+mhmtl; - mbreadcrumb.append(mhmtl); - }; - var isMoreMenuItemClick = false; - var dealBreadcrumbBtnMenuItemClick=function(clickObj,e){ - dealScrollTo(); - var menuItemID=clickObj.attr("id"); - if(!!menuItemID&&menuItemID.length>0){ - _setLocationHash(menuItemID); - var breadmenuID=e&&e.data&&e.data.breadcrumbBtnMenuItem&&e.data.breadcrumbBtnMenuItem.length>0?e.data.breadcrumbBtnMenuItem:""; - _hashSource=breadmenuID&&breadmenuID.length>0?"":"dhByInterface";//hash进来的,不是导航进来的。 - } - if(!(e&&e.breadcrumbBtnMenuItem&&e.breadcrumbBtnMenuItem.length>0)){//如果仅仅是tab跳转设置bread进来的,就框架不处理菜单点击,直接重新建立bread即可 - dealstartPageLoading(); - dealIframe(clickObj,e); - } - dealBreadcrumbBtnGroupMenus(clickObj,false,e); - } - // 固定边栏布局时计算边栏高度. - var _calculateFixedSidebarViewportHeight = function () { - var viewport = _getViewPort(); - var sidebarHeight =viewport.height - $('.header').height() + 1; - if ($('body').hasClass("page-footer-fixed")) { - sidebarHeight = sidebarHeight - (!$('.footer')||$('.footer').length<=0)?0:$('.footer').outerHeight(); - } - return sidebarHeight; - } - // 处理固定边栏 - var dealFixedSidebar = function () { - var menu = $('.page-sidebar-menu'); - if (menu.parent('.slimScrollDiv').size() === 1) { - menu.removeAttr('style'); - $('.page-sidebar').removeAttr('style'); - } - - if ($('.page-sidebar-fixed').size() === 0) { - dealSidebarAndContentHeight(); - return; - } - - var viewport = _getViewPort(); - if (viewport.width >= openoFrameWork_smallView) { - var sidebarHeight = _calculateFixedSidebarViewportHeight(); - dealSidebarAndContentHeight(); - } - } - // 固定边栏时处理菜单 hover 效果. - var dealFixedSidebarHoverable = function () { - if ($('body').hasClass('page-sidebar-fixed') === false) { - return; - } - $('.page-sidebar').off('mouseenter').on('mouseenter', function () { - dealSiderBarMouseenter(); - }); - $('.page-sidebar').off('mouseleave').on('mouseleave', function () { - dealSiderBarMouseLeave(); - }); - } - var dealSiderBarMouseenter=function(){ - var body = $('body'); - var siderbar=$('.page-sidebar'); - if ((body.hasClass('page-sidebar-closed') === false || body.hasClass('page-sidebar-fixed') === false) || $(this).hasClass('page-sidebar-hovering')) { - return; - } - body.removeClass('page-sidebar-closed').addClass('page-sidebar-hover-on'); - var siderbartoggle=$('.sidebar-toggler'); - - if (body.hasClass("page-sidebar-reversed")) { - siderbar.width(_sidebarWidth); - dealSiderBarWidthChange(); - } else { - siderbar.addClass('page-sidebar-hovering'); - siderbar.animate({ - width: _sidebarWidth - }, 350, '', function () { - siderbar.removeClass('page-sidebar-hovering'); - dealSiderBarWidthChange(); - }); - } - } - var dealSiderBarMouseLeave=function(){ - var body = $('body'); - if ((body.hasClass('page-sidebar-hover-on') === false || body.hasClass('page-sidebar-fixed') === false) || $(this).hasClass('page-sidebar-hovering')) { - return; - } - var siderbar=$('.page-sidebar'); - var siderbartoggle=$('.sidebar-toggler'); - if (body.hasClass("page-sidebar-reversed")) { - body.addClass('page-sidebar-closed').removeClass('page-sidebar-hover-on'); - siderbar.width(_sidebarCollapsedWidth); - if(siderbartoggle){ - siderbartoggle.removeAttr('style'); - } - dealSiderBarWidthChange(); - } else { - siderbar.addClass('page-sidebar-hovering'); - siderbar.animate({ - width: _sidebarCollapsedWidth - }, 350, '', function () { - body.addClass('page-sidebar-closed').removeClass('page-sidebar-hover-on'); - dealSiderBarWidthChange(); - siderbar.removeClass('page-sidebar-hovering'); - if(siderbartoggle){ - siderbartoggle.removeAttr('style'); - } - }); - } - - } - //处理style css - var dealAddStyle=function(element, property, value, important) { - var styleText=element.attr('style')?element.attr('style'):""; - styles=styleText.split(";"); - var find=""; - for(i=0;i=0){ - find=styles[i];//看是否已经添加过,如果添加过就需要替换掉 - break; - } - } - styleText=find.length>0?styleText.replace(find,""):styleText; - styleText=(styleText + ';'+property + ':' + value + ((important) ? ' !important' : '') + ';').replace(/;;/g,";"); - element.attr('style',styleText ); - } - var dealSiderBarWidthChange=function(){ - - } - // 处理边栏菜单切换时的关闭和隐藏. - var dealSidebarToggler = function () { - var viewport = _getViewPort(); - if (getCookie('sidebar_closed') === '1' && viewport.width >= openoFrameWork_smallView) { - $('body').addClass('page-sidebar-closed'); - } - $('.page-sidebar, .sidebar-toggler').on('click', '.sidebar-toggler', function (e) { - e.preventDefault(); - var body = $('body'); - var sidebar = $('.page-sidebar'); - if(body.hasClass('page-sidebar-closed')){ - $(this).removeAttr('style'); - } - } ); - $('.page-sidebar, .header').on('click', '.sidebar-toggler', function (e) { - var body = $('body'); - var sidebar = $('.page-sidebar'); - if ((body.hasClass("page-sidebar-hover-on") && body.hasClass('page-sidebar-fixed')) || sidebar.hasClass('page-sidebar-hovering')) { - body.removeClass('page-sidebar-hover-on'); - sidebar.css('width', '').hide().show(); - dealSidebarAndContentHeight(); //fix content & sidebar height - setCookie('sidebar_closed', '0'); - dealSiderBarWidthChange(); - e.stopPropagation(); - runResponsiveHandlers(); - return; - } - $(".sidebar-search", sidebar).removeClass("open"); - var panel = $('.zte-theme-panel'); - var sidebarPosOption = $('.sidebar-pos-option', panel).val(); - var pcontent = $("[class='page-content']"); - if (body.hasClass("page-sidebar-closed")) { - body.removeClass("page-sidebar-closed"); - if (body.hasClass('page-sidebar-fixed')) { - sidebar.css('width', ''); - } - setCookie('sidebar_closed', '0'); - pcontent.css("marginLeft",_sidebarWidth); - dealSiderBarWidthChange(); - } else { - body.addClass("page-sidebar-closed"); - $(this).removeAttr('style'); - setCookie('sidebar_closed', '1'); - pcontent.css("marginLeft", _sidebarCollapsedWidth); - dealSiderBarWidthChange(); - } - //针对侧边栏伸缩的情况需加入对.page-content的判断。 - dealSidebarAndContentHeight(true); - runResponsiveHandlers(); - }); - } - // 处理水平菜单 - var dealHorizontalMenu = function () { - $('.header').on('click', '.hor-menu .hor-menu-search-form-toggler', function (e) { - if ($(this).hasClass('off')) { - $(this).removeClass('off'); - $('.header .hor-menu .search-form').hide(); - } else { - $(this).addClass('off'); - $('.header .hor-menu .search-form').show(); - } - e.preventDefault(); - }); - // 处理水平菜单 处理header下拉菜单中的菜单连接,显示在iframe中 - $('.header').on('click', ' li > a.iframe', function (e) { - //dealMenuItemClick($(this),e,"header"); - e.preventDefault(); - var menuItemID=$(this).attr("id"); - if(!!menuItemID&&menuItemID.length>0){ - _setLocationHash(menuItemID); - _hashSource="dhByInterface"; - }//else{ - _isClicked=true; - dealMenuItemClick($(this),e,"header"); - //} - }); - //处理TAB点击 - $('.header').on('click', '.hor-menu a[data-toggle="tab"]', function (e) { - e.preventDefault(); - var nav = $(".hor-menu .nav"); - var active_link = nav.find('li.current'); - $('li.active', active_link).removeClass("active"); - $('.selected', active_link).remove(); - var new_link = $(this).parents('li').last(); - new_link.addClass("current"); - new_link.find("a:first").append(''); - }); - } - // 增加一个对服务端的心跳 - var doHeartbeat = function() { - //心跳超时次数 - var heartBeatTimes = 0; - return setInterval(function() { - var userName; - if( userName == null ){ - var userName = openoFrameWork_conf.userName; - } - var heartUrl = FrameConst.REST_HEARTBEAT + "?username=" + encodeURIComponent(userName); - $.ajax(heartUrl, { - dataType : "text", - cache : false - }).done(function(data) { - // if (data != "true") { //收到不属于取值范围内的回复,说明出现不可预知情况,取消心跳。是原framework.js中的逻辑,比较奇怪,先保留注释。 - // disableHeartbeat(); - // } - //收到心跳回应消息,心跳超时次数置0 - if( data == "true" ){ - heartBeatTimes = 0; - } - }); - heartBeatTimes++; - //心跳超时6次即1分钟,转到登录界面,认为链路断。 - if(heartBeatTimes >= 6){ - disableHeartbeat(); - //console.log(com_zte_ums_aos_framework_ui_heartbeat_timeout); - bootbox.alert($.i18n.prop('com_zte_ums_aos_framework_ui_heartbeat_fail'), function () { - window.location.replace("login.html"); - }); - } - }, 10000); - }; - if( FrameConst.do_heartbeat ){ - var heartbeatTimer = doHeartbeat(); - } - window.enableHeartbeat = function() { - if (!heartbeatTimer) { - //重新启动心跳功能,心跳超时次数置0 - heartBeatTimes = 0; - heartbeatTimer = doHeartbeat(); - return "Enabled"; - } - return "Already enabled!"; - }; - window.disableHeartbeat = function() { - if (heartbeatTimer) { - clearInterval(heartbeatTimer); - heartbeatTimer = null; - return "Disabled"; - } - return "Already disabled!"; - }; - window.doLogout = function(){ - logoutSubmit(); - }; - //处理ict注销确认 - $('#trigger_logout').click(function(){ - bootbox.confirm($.i18n.prop('com_zte_ums_ict_framework_ui_confirmlogout'), function(result) { //你确认要注销吗? - if(result){ - doLogout(); - } - }); - }); - // Handle full screen mode toggle - var isscreenFull=false; - var dealFullScreenMode = function() { - // 处理全屏事件 - function toggleFullScreen() { - if(!screenfull.supportsFullScreen){//不支持全屏 - if (isIE&&typeof window.ActiveXObject !== "undefined") { // Older IE. - var wscript = new ActiveXObject("WScript.Shell"); - if (wscript !== null) { - wscript.SendKeys("{F11}"); - isscreenFull=!isscreenFull; - } - }else{ - isscreenFull=screenfull.supportsFullScreen; - }; - }else{ - screenfull.isFullScreen?screenfull.exitFullScreen():screenfull.requestFullScreen(); - isscreenFull= screenfull.isFullscreen; - } - setTimeout(function(){ - if(isscreenFull){ - $("#fullscreen_label").text($.i18n.prop('com_zte_ums_ict_framework_ui_group_exitfullscreen')); - }else{ - $("#fullscreen_label").text($.i18n.prop('com_zte_ums_ict_framework_ui_group_fullscreen')); - } - },500); - } - - $('#trigger_fullscreen').click(function() { - toggleFullScreen(); - }); - } - //清理当前正在显示的iframe之外缓存的iframe, - var dealClearCachedIframes=function(isall){ - if (cachedIframes.count()>0) { - for (var i in cachedIframes.hash()) { - var pagemyIframe=$('.page-content .page-content-body .'+i); - if(pagemyIframe&&pagemyIframe.length>0){ - if(isall==true){ - pagemyIframe.attr("src",""); - pagemyIframe.remove(); - }else if(i!=_iframe) - pagemyIframe.attr("src",""); - pagemyIframe.remove(); - } - } - } - cachedIframes.clear(); - if (cachedIframesObject.count()>0) {//清理缓存的iframe实体对象。 - for (var i in cachedIframesObject.hash()) { - if(i!=_iframe) - cachedIframesObject.remove(i); - } - } - } - var lastSelectedLayout = ''; - var dealTheme = function () { - var panel = $('.zte-theme-panel'); - if ($('body').hasClass('page-boxed') == false) { - $('.layout-option', panel).val("fluid"); - } - $('.sidebar-option', panel).val("default"); - $('.language-option', panel).val(defaultLanage); - $('.header-option', panel).val("fixed"); - $('.footer-option', panel).val("default"); - if ( $('.sidebar-pos-option').attr("disabled") === false) { - $('.sidebar-pos-option', panel).val(openoFrameWork.isRTL() ? 'right' : 'left'); - } - var _resetLayout = function () { - dealResetLayout(); - } - var _setLayout = function () { - dealSetLayout(); - } - var setColor = function (color) { - var color_ = (openoFrameWork.isRTL() ? color + '-rtl' : color); - $('#style_color').attr("href", ICTFRAME_CONST_THEME_COLOR_CSS_PREFFIX + color_ + ".css"); - setCookie('style_color', color); - syncColorCSS(); - } - $('.toggler', panel).click(function () { - $('.toggler').hide(); - $('.toggler-close').show(); - $('.zte-theme-panel > .theme-options').show(); - }); - - $('.toggler-close', panel).click(function () { - $('.toggler').show(); - $('.toggler-close').hide(); - $('.zte-theme-panel > .theme-options').hide(); - }); - $('.theme-colors > ul > li', panel).click(function () { - var color = $(this).attr("data-style"); - setColor(color); - $('ul > li', panel).removeClass("current"); - $(this).addClass("current"); - }); - $('.layout-option,.header-option, .sidebar-option, .footer-option, .sidebar-pos-option, .nav-pos-direction', panel).change(_setLayout); - if (getCookie('style_color') != undefined) { - setColor(getCookie('style_color')); - } - $('.language-option', panel).change(function(){ - var languageOption = $('.language-option', panel).val(); - setCookie('language-option', languageOption); - window.location.reload(); - }); - } - var dealResetLayout = function () { - $("body"). - removeClass("page-boxed"). - removeClass("page-footer-fixed"). - removeClass("page-sidebar-fixed"). - removeClass("page-header-fixed"). - removeClass("page-sidebar-reversed"); - $('.header > .header-inner').removeClass("container"); - if ($('.page-container').parent(".container").size() === 1) { - $('.page-container').insertAfter('body > .clearfix'); - } - if ($('.footer > .container').size() === 1) { - $('.footer').html($('.footer > .container').html()); - } else if ($('.footer').parent(".container").size() === 1) { - $('.footer').insertAfter('.page-container'); - } - $('body > .container').remove(); - } - /* - * 此方法在客户端初始化和设置面板上选择菜单方向的时候用。 - * param navPosOption - */ - var dealNavPos = function(navPosOption) { - // 横竖边栏切换功能禁用,则返回 - var panel = $('.zte-theme-panel'); - if ($('.nav-pos-direction', panel).attr("disabled") == "disabled") { - return; - } - var sidermenu = $("#page-sidebar-menu"); - var hormenu = $("#main_hormenu"); - var sidermenu = $("#page-sidebar-menu"); - var hormenu = $("#main_hormenu"); - var horSiderMenu = $('#' + megaSiderDivId ); - var fhorMenu = $("#" + fMenuMegaDivId); - var fsiderMenu = $("#" + fMenuSiderDivId); - var pcontent = $("[class='page-content']"); - if (sidermenu && sidermenu.length > 0 && hormenu && hormenu.length > 0 && fhorMenu && fhorMenu.length > 0) { - if (navPosOption === openoFrameWork_menu_horizontal) { - sidermenu.css('display','none');// 侧边栏隐藏 - fhorMenu.css('display','none'); - fsiderMenu.css('display','none'); - pcontent.css("marginLeft",0); - $("body").addClass("page-full-width");//调整内容显示 - hormenu.css("display", "block");//显示水平菜单栏 - // 导航位置为水平菜单时,边栏和边栏位置为默认和靠左,且将其切换功能禁用掉 - $('.sidebar-option', panel).val("default"); - $('.sidebar-option', panel).attr("disabled", true); - $('.sidebar-pos-option', panel).val("left"); - $('.sidebar-pos-option', panel).attr("disabled", true); - } else if (navPosOption === openoFrameWork_menu_vertical ) { - $("body").removeClass("page-full-width"); - sidermenu.css('display','block');//侧边栏显示 - var body = $('body'); - if (body.hasClass("page-sidebar-closed")) { - pcontent.css("marginLeft", _sidebarCollapsedWidth); - } else { - pcontent.css("marginLeft", _sidebarWidth); - } - hormenu.css("display", "none");//隐藏水平菜单栏 - fhorMenu.css('display','none'); - fsiderMenu.css('display','none'); - horSiderMenu.css('display','none'); - $('.sidebar-option', panel).attr("disabled", false); - $('.sidebar-pos-option', panel).attr("disabled", false); - } else if(navPosOption === openoFrameWork_menu_fmenu ){ - sidermenu.css('display','none');// 侧边栏隐藏 - hormenu.css("display", "none");//隐藏水平菜单栏 - fsiderMenu.css('display','none'); - fhorMenu.css('display','block'); - pcontent.css("marginLeft",0); - $("body").addClass("page-full-width");//调整内容显示 - // 导航位置为水平菜单时,边栏和边栏位置为默认和靠左,且将其切换功能禁用掉 - $('.sidebar-option', panel).val("default"); - $('.sidebar-option', panel).attr("disabled", true); - $('.sidebar-pos-option', panel).val("left"); - $('.sidebar-pos-option', panel).attr("disabled", true); - } - } - } - var dealSetLayout = function(){ - var panel = $('.zte-theme-panel'); - var layoutOption = $('.layout-option', panel).val(); - var languageOption = $('.language-option', panel).val(); - var headerOption = $('.header-option', panel).val(); - var footerOption = $('.footer-option', panel).val(); - var navPosOption = $('.nav-pos-direction', panel).val(); - dealNavPos(navPosOption); - var sidebarOption = $('.sidebar-option', panel).val(); - var sidebarPosOption = $('.sidebar-pos-option', panel).val(); - if (sidebarOption == "fixed" && headerOption == "default") { - alert($.i18n.prop('com_zte_ums_ict_framework_ui_fixedsidedefaultheaderError')); //页头不支持固定边栏,先固定页头才能固定边栏. - $('.header-option', panel).val("fixed"); - $('.sidebar-option', panel).val("fixed"); - sidebarOption = 'fixed'; - headerOption = 'fixed'; - } - if (sidebarOption == "fixed" && sidebarPosOption == "right") { - alert($.i18n.prop('com_zte_ums_ict_framework_ui_fixedsiderightpositionError')); //固定边栏情况下,边栏不能靠右。. - $('.sidebar-pos-option', panel).val("left"); - sidebarPosOption = 'left'; - } - dealResetLayout(); // reset layout to default state - if (layoutOption === "boxed") { - $("body").addClass("page-boxed"); - // set header - $('.header > .header-inner').addClass("container"); - var cont = $('body > .clearfix').after('
    '); - // set content - $('.page-container').appendTo('body > .container'); - // set footer - if (footerOption === 'fixed') { - $('.footer').html('
    ' + $('.footer').html() + '
    '); - } else { - $('.footer').appendTo('body > .container'); - } - } - if (lastSelectedLayout != layoutOption) { - runResponsiveHandlers(); - } - lastSelectedLayout = layoutOption; - //header - if (headerOption === 'fixed') { - $("body").addClass("page-header-fixed"); - $(".header").removeClass("navbar-static-top").addClass("navbar-fixed-top"); - } else { - $("body").removeClass("page-header-fixed"); - $(".header").removeClass("navbar-fixed-top").addClass("navbar-static-top"); - } - //sidebar - if ($('body').hasClass('page-full-width') === false) { - if (sidebarOption === 'fixed') { - $("body").addClass("page-sidebar-fixed"); - } else { - $("body").removeClass("page-sidebar-fixed"); - } - } - //footer - if (footerOption === 'fixed') { - $("body").addClass("page-footer-fixed"); - } else { - $("body").removeClass("page-footer-fixed"); - } - //sidebar position - if (openoFrameWork.isRTL()) { - if (sidebarPosOption === 'left') { - $("body").addClass("page-sidebar-reversed"); - $('#frontend-link').tooltip('destroy').tooltip({placement: 'right'}); - } else { - var pcontent = $("[class='page-content']"); - pcontent.css("marginLeft",0);//侧边栏靠右,则左边内容填充为0 - $("body").removeClass("page-sidebar-reversed"); - $('#frontend-link').tooltip('destroy').tooltip({placement: 'left'}); - } - } else { - if (sidebarPosOption === 'right') { - var pcontent = $("[class='page-content']"); - pcontent.css("marginLeft",0);//侧边栏靠右,则左边内容填充为0 - $("body").addClass("page-sidebar-reversed"); - $('#frontend-link').tooltip('destroy').tooltip({placement: 'left'}); - } else { - $("body").removeClass("page-sidebar-reversed"); - $('#frontend-link').tooltip('destroy').tooltip({placement: 'right'}); - } - } - dealSidebarAndContentHeight(); - dealFixedSidebar(); - dealFixedSidebarHoverable(); - dealSiderBarWidthChange(); - setCookie('layout-option', layoutOption); - setCookie('language-option', languageOption); - setCookie('header-option', headerOption); - setCookie('sidebar-option', sidebarOption); - setCookie('sidebar-pos-option', sidebarPosOption); - setCookie('nav-pos-direction', navPosOption); - } - var setCookie = function (key, value) { - if (store) { - store(key, value); - } - } - var getCookie = function (key) { - if (store) { - return store(key); - } else { - return undefined; - } - } - /*下面处理前进后退和锚点访问*/ - var _getLocationHash = function() { - return location.hash.replace("#_", ""); - } - /*统一入口设置锚点*/ - var _setLocationHash = function(menuItemID) { - location.hash = getLocationHashByMenuId(menuItemID); - } - var getLocationHashByMenuId = function(menuItemID){ - return "#_" + menuItemID; - } - // hash control - var loadCurrentHash = function(e,data){ - var locationhash = _getLocationHash(); //important - if(!!locationhash&&locationhash.length>0){ - if(_hashSource.trim()=="dhByInterface"){ - _hashSource=""; - }else{ - processChangedHash(locationhash,data); - } - } - } - // hash control 这种写法安全点 - var processChangedHash = function(path) { - var id = path; - var action = undefined; - var spIndex = path.indexOf("/"); - if(spIndex != -1) { - id = path.substring(0,spIndex); - action = path.substring(spIndex+1); - } - openoFrameWork.goToURLByIDAndNewAction(id,action); - } - var syncColorCSS=function(){//注册皮肤切换事件处理函数,处理iframe中的皮肤切换 - var pagemyIframe=null; - if (cachedIframes.count()>0) { - for (var i in cachedIframes.hash()) { - pagemyIframe=$('.page-content .page-content-body .'+i); - if(pagemyIframe&&pagemyIframe.length>0){ - openoFrameWork.SyncCSS(pagemyIframe[0],1,""); - } - } - } - } - var getCurrentVisibleIframe=function(){ - var pagemyIframe=null; - if (cachedIframes.count()>0) { - for (var i in cachedIframes.hash()) { - if(cachedIframes.items(i)===1){ - pagemyIframe=$('.page-content .page-content-body .'+i); - } - } - } - return pagemyIframe; - } - //处理跨域请求代理,通过该代理进行iframe间传递参数,注意这里的代理页面proxy.html必须部署到要跨域的对端域的服务器web根目录下 - var dealCrossProxy=function(ifrm,crossproxysrc,ifmHeadlins,flag){//crossproxysrc这个是proxy.html对应的url根路径 - var url=$.url(openoFrameWork.getCurrentScript(document)); - var proxyHtmlPath=url.attr("directory")+"proxy/proxy.html"//这中情况适用于使用了该界面集成框架的应用系统 - var _ifmProxy=$(''); - var _ifm=$('#ifm_Proxy'); - _ifm.hide(); - var pageContentBody=$('.page-content .page-content-body'); - var linksrcs=new Array(); - var linksids=new Array(); - var linktyps=new Array(); - var _src=""; - for (i=0;i0){ - _src=ifmHeadlins[i].link.src; - linktyps.push("javascriptfile"); - }else{ - _src=ifmHeadlins[i].link.text; - linktyps.push("javascripttext"); - } - }else{ - linktyps.push("undefined"); - } - linksrcs.push(_src); - linksids.push({"pos":ifmHeadlins[i].pos,"scope":ifmHeadlins[i].scope,"id":ifmHeadlins[i].link.id}); - } - var parm={iFrame:ifrm,cssLinktyps:linktyps,cssLinksrcs:linksrcs,cssLinkids:linksids,origin:crossproxysrc,flag:flag}; - if(_ifm&&_ifm.length<=0){//没有添加过 - _ifmProxy.appendTo(pageContentBody); - _ifmProxy.one('load',parm,function(e){ - var data={iFrame:e.data.iFrame,cssLinktyps:e.data.cssLinktyps,cssLinksrcs:e.data.cssLinksrcs,cssLinkids:e.data.cssLinkids,flag:flag}; - $('#ifm_Proxy')[0].contentWindow.postMessage(data,e.data.origin);//window.location.origin - }); - }else if(_ifm.attr("oldproxyorigin")!=crossproxysrc){//代理已经添加过了,看是否是同一个网站的代理,如果不是需要重新加载 - _ifm.attr("src",""); - _ifm.attr("oldproxyorigin",crossproxysrc); - _ifm.one('load',parm,function(e){ - var data={iFrame:e.data.iFrame,cssLinktyps:e.data.cssLinktyps,cssLinksrcs:e.data.cssLinksrcs,cssLinkids:e.data.cssLinkids,flag:flag}; - $('#ifm_Proxy')[0].contentWindow.postMessage(data,e.data.origin);//window.location.origin - }); - _ifm.attr("src",_ifmProxy.attr("src")); - }else{//已经添加过,直接触发消息发送即可 - var data={iFrame:parm.iFrame,cssLinktyps:parm.cssLinktyps,cssLinksrcs:parm.cssLinksrcs,cssLinkids:parm.cssLinkids,flag:flag}; - _ifm[0].contentWindow.postMessage(data,parm.origin);//window.location.origin - } - } - return { - init: function () { - if(zte_http_headers){ - store("zte_http_headers",zte_http_headers); - } - dealInit(); - dealResponsiveOnResize(); - dealResponsiveOnInit(); - dealClearCachedIframes(true); ////清理当前正在显示的iframe之外缓存的iframe, - breadcrumbBtnMenus.clear(); - dealFixedSidebar(); // deals fixed sidebar menu - dealFixedSidebarHoverable(); // deals fixed sidebar on hover effect - dealSidebarMenu(); // deals main menu - dealHorizontalMenu(); // deals horizontal menu - dealSidebarToggler(); // deals sidebar hide/show - dealTheme(); // deals style customer tool - dealSetLayout(); - $(function() { - $(window).on('hashchange',function(){ - loadCurrentHash(); - }); - }); - dealFullScreenMode(); // deals full screen - $("#header_dropdown_user").css('display','block'); - $("#com_zte_ums_ict_framework_img_netnumenLogo").css('display','inline'); - $("#com_zte_ums_ict_framework_ui_main_title").css('display','inline'); - handeCtxMenuitem(); - }, - //公开清理缓存的所有Iframe的方法:isALL==true则清理所有,否则清理当前正在显示的iframe之外缓存的iframe,。 - clearCachedIframes:function(isAll){ - dealClearCachedIframes(isAll); - }, - - setBaseURLRoot:function(ipportStr){//菜单url的跟ip和端口例如:http://10.74.151.122:21180 - if (store) { - store('baseURLRoot', ipportStr); - } - var url = $.url(ipportStr); - location.hash=url.attr('fragment'); - var auth=url.attr('query'); - if (store) { - store('baseURLRootAuth', auth); - } - }, - getBaseURLRoot:function(ipportStr){//菜单url的跟ip和端口例如:http://10.74.151.122:21180 - var rooturl=""; - if (store) { - rooturl=store('baseURLRoot'); - } - return !rooturl?"":rooturl; - }, - clearBaseURLRoot:function(){//菜单url的跟ip和端口例如:http://10.74.151.122:21180 - if (store) { - store('baseURLRoot', "",-1); - } - }, - setPageTitle:function(title){//设置页面标题 - $('title').html(title+" - "+gdocTitle); - }, - getLanguage:function(){//获取语言 - return openoFrameWork_conf.acceptLanguage; - }, - - getLocationHash:function(){ - return _getLocationHash(); - }, - setSceneURLRootPath:function(sceneURLRootPath){ - if(sceneURLRootPath&&sceneURLRootPath.trim().length>0){//如果定义了场景的全局参数 - _sceneURLRootPath=sceneURLRootPath.trim(); - if(_sceneURLRootPath.charAt(_sceneURLRootPath.length-1)!='/') - { - _sceneURLRootPath=_sceneURLRootPath+'/'; - } - } - }, - //public function to add callback a function which will be called on window resize - addResponsiveHandler: function (func) { - responsiveHandlers.push(func); - }, - - hiddenAlarmLight:function(){ - hideAlarmLight(); - }, - - hiddenMenu:function(){ - hidemenu(); - }, - setBreadcrumbByMenuID:function(id){ - //var breaditem=$('#'+id); - var menuitem=undefined; - // var items=$("a[id='"+id+"']"); - var items = undefined; - var panel = $('.zte-theme-panel'); - var navPosOption = $('.nav-pos-direction', panel).val(); - if (navPosOption === "vertical"){ //从垂直菜单里面找 - items=$("#page-sidebar-menu a[id='"+id+"']"); - if (!items || items.length < 1) { - items=$(".page-content a[id='"+id+"']"); - } - }else if(navPosOption === openoFrameWork_menu_horizontal){//从水平菜单里面找 - items=$("#main_hormenu a[id='"+id+"']"); - if(items.length == 0){ - //横菜单没有找到,再在横菜单的子菜单找一次 - items=$("#page-megachild-sidebar-menu a[id='"+id+"']"); - } - }else if(navPosOption === openoFrameWork_menu_fmenu){ - items=$("#f_hormenu a[id='"+id+"']"); - if(items.length == 0){ - //横菜单没有找到,再在竖菜单找一次。 - items=$("#page-f-sidebar-menu a[id='"+id+"']"); - } - } - var isbreadcrumbMenuItem=false; - if(items.length>0){ - for(var i=0;i0){ - if(isbreadcrumbMenuItem){ - dealBreadcrumbBtnGroupMenus(menuitem,false); - }else{ - dealBreadcrumb(menuitem,true,null); - } - }else{ - var breadcrumbBtnMenuItemParent=""; - if(!menuitem||menuitem.length<=0){//没有找到该菜单,可能是面包削中的,需要额外处理 - var menuItemID=id; - if (breadcrumbBtnMenus.contains(menuItemID)) {//有缓存 - breadcrumbBtnMenuItemParent="#"+breadcrumbBtnMenus.items(menuItemID); - menuitem=$(breadcrumbBtnMenuItemParent); - //_breadcrumbSource=true; - } - } - var parm=undefined; - if(breadcrumbBtnMenuItemParent&&breadcrumbBtnMenuItemParent.length>0){ - parm={breadcrumbBtnMenuItem:menuItemID}; - } - if(parm&&menuitem&&menuitem.length>0) { - dealBreadcrumb(menuitem,true,parm); - } - } - }, - setSiderbarCollapseWidth:function(width){ - _sidebarCollapsedWidth = width; - }, - getSiderbarCollapseWidth:function(){ - return _sidebarCollapsedWidth; - }, - setSidebarWidth:function(width){ - _sidebarWidth = width; - }, - getSidebarWidth:function(){ - return _sidebarWidth; - }, - //2015年10月26日新增动态切换菜单的功能,这里的菜单还需要再次更换菜单项访问的ip端口信息 - handlBaseURL:function(url){ - var baseURLRoot=openoFrameWork.getBaseURLRoot(); - if (baseURLRoot.length>0) {//2015年10月26日新增动态切换菜单的功能,这里的菜单还需要再次更换菜单项访问的ip端口信息 - baseURLRoot=openoFrameWork.getDomainURL(baseURLRoot);//去掉ip和port后多余的部分 - console.log("old a link href url:"+url); - url=baseURLRoot+url.replace(openoFrameWork.getDomainURL(url),""); - console.log("baseURLRoot:"+baseURLRoot+" newURL:"+url); - }; - return url; - }, - - startPageLoading: function(message) { - dealstartPageLoading(message); - }, - stopPageLoading: function() { - dealstopPageLoading(); - }, - //public function to get a paremeter by name from URL - getLocationURLParameter: function (paramName,separator) { - var searchString = decodeURIComponent(window.location.search.substring(1)).toLowerCase(), - i, val, params = searchString.split(separator?separator:"&"); - paramName=paramName.toLowerCase(); - for (i = 0; i < params.length; i++) { - val = params[i].split("="); - if (val[0] == paramName) { - return unescape(val[1]); - } - } - return null; - }, - //public function to get a paremeter by name from URL - getURLParameter: function (paramName,url) { - var searchString = decodeURIComponent(url).toLowerCase(), - i, val, params = searchString.split("&"); - paramName=paramName.toLowerCase(); - for (i = 0; i < params.length; i++) { - val = params[i].split("="); - if (val[0] == paramName) { - return unescape(val[1]); - } - } - return null; - }, - // check for device touch support - isTouchDevice: function () { - return isTouch; - }, - getUniqueID: function(prefix) { - return prefix+'_' + Math.floor(Math.random() * (new Date()).getTime()); - }, - // check IE8 mode - isIE8: function () { - return isIE8; - }, - // check IE9 mode - isIE9: function () { - return isIE9; - }, - //check RTL mode - isRTL: function () { - return isRTL; - }, - getViewPort:function(){ - return _getViewPort(); - }, - // get layout color code by color name - getLayoutColorCode: function (name) { - if (layoutColorCodes[name]) { - return layoutColorCodes[name]; - } else { - return ''; - } - } , - fixContentHeight: function () { - dealSidebarAndContentHeight(); - }, - dealAtoIframe:function(aObj,event){ - var containerStr=aObj.parentsUntil('.page-container').hasClass('page-sidebar')?'page-sidebar':"";// - containerStr=aObj.parentsUntil('.header-inner').hasClass('hor-menu')?'header':containerStr; - dealMenuItemClick(aObj,event,containerStr); - _isClicked=false; - }, - getDomainURL:function(urlAddress){ - var url = $.url(urlAddress); - var protocol=url.attr('protocol'); - var host=url.attr('host'); - var port=url.attr('port'); - var crossOrign=protocol+"://"+host+(port.length>0?":"+port:""); - return crossOrign; - }, - getCurrentScript:function(doc) {//doc为 document对象 - /* 注意该功能在其他脚本中调用时出safari获取到的脚本路径为本方法所在脚本的路径, - 其他浏览器获取到的为调用该方法的脚本所在路径 - 取得正在解析的script节点 - */ - if(doc&&doc.currentScript) { //firefox 4+ - console.log("0、 "+doc.currentScript.src); - return doc.currentScript.src; - } - // 参考 https://github.com/samyk/jiagra/blob/master/jiagra.js - var stack; - try { - a.b.c(); //强制报错,以便捕获e.stack - } catch(e) {//safari的错误对象只有line,sourceId 或者高版本还有sourceURL - stack = e.stack; - if(e.sourceURL){//safari 浏览器没有e.stack但有e.sourceURL - stack=e.sourceURL; - }else if(!stack && window.opera){ - //opera 9没有e.stack,但有e.Backtrace,但不能直接取得,需要对e对象转字符串进行抽取 - stack = (String(e).match(/of linked script \S+/g) || []).join(" "); - } - console.log("1、 "+stack); - } - if(stack) { - /*e.stack最后一行在所有支持的浏览器大致如下: - *chrome23: - * at http://113.93.50.63/data.js:4:1 - *firefox17: - *@http://113.93.50.63/query.js:4 - *opera12: - *@http://113.93.50.63/data.js:4 - *IE10: - * at Global code (http://113.93.50.63/data.js:4:1) - */ - console.log("2、 "+stack); - stack = stack.split( /[@ ]/g).pop();//取得最后一行,最后一个空格或@之后的部分 - stack = stack[0] == "(" ? stack.slice(1,-1) : stack; - console.log("3、 "+stack); - return stack.replace(/(:\d+)?:\d+$/i, "");//去掉行号与或许存在的出错字符起始位置 - } - if(doc){ - var nodes = doc.getElementsByTagName("script"); //只在head标签中寻找 - for(var i = 0, node; node = nodes[i++];) { - if(node.readyState === "interactive") { - console.log("4、 "+(node.className = node.src)); - return node.className = node.src; - } - } - } - }, - /*下面的flag为0表示默认不触发孙子iframe中的onload事件,为1表示要触发,flag为10则对cssSrc重复执行,其他不做重复执行*/ - SyncCSS:function(ifrm,flag,cssSrc){//将主框架中的皮肤css应用到打开的iframe页面中 - if(!ifrm)return; - var ifmHeadlins = new Array(); - if(cssSrc&&cssSrc.length>0&&cssSrc.endWith(".css")){ - var _div = $(''); - var csslink=document.createElement("link"); - csslink.href=_div[0].href;//这里同步菜单定义中cssSrc属性指定的css文件到iframe - _div = null; - csslink.rel="stylesheet"; - csslink.type="text/css"; - csslink.id="ifram_csssrc"; - ifmHeadlins.push({"pos":"head","scope":"all","link":csslink});//pos是添加到子iframe中的位置,scope是子窗体作用返回,one表示直接子窗体,all表示嵌套所有子窗体 - } - if(flag!=10){//当flag为10时下面的css和js都不执行 - if($('#style_color').length>0){ - var csslink=document.createElement("link"); - csslink.href=$('#style_color')[0].href.replace(".css","_ifrm.css");//这里同步的皮肤页面修改为原皮肤页面文件名后缀添加ifrm的css皮肤文件 - csslink.rel="stylesheet"; - csslink.type="text/css"; - csslink.id="style_color"; - ifmHeadlins.push({"pos":"head","scope":"all","link":csslink});//pos是添加到子iframe中的位置,scope是子窗体作用返回,one表示直接子窗体,all表示嵌套所有子窗体 - } - // 将 font-awesome字体图标应用到模块iframe - if($('#font_awesome').length>0){ - var awesomelink=document.createElement("link"); - awesomelink.href=$('#font_awesome')[0].href; - awesomelink.rel="stylesheet"; - awesomelink.type="text/css"; - awesomelink.id="font_awesome"; - ifmHeadlins.push({"pos":"head","scope":"all","link":awesomelink}); - } - // 将pym.js or pym.min.js应用到模块iframe - var pymjsObj=$("script[src*='/pym.']");//模糊查找 - pymjsObj=pymjsObj.length>0?pymjsObj:$("script[src*='/pym1.']"); - if(pymjsObj.length>0){ - var pymjs=document.createElement("script"); - pymjs.src=pymjsObj[0].src; - pymjs.type="text/javascript"; - pymjs.id=!!pymjsObj[0].id?pymjsObj[0].id:"pymjs"; - ifmHeadlins.push({"pos":"head","scope":"one","link":pymjs}); - pymjs=document.createElement("script"); //pym脚本文件加载后要执行new pym.Child()进行iframe子窗体实例化,便于子窗体和父窗体通讯new pym.Child({ id: '"+_iframe+"' ,polling: 1000}) - var frameid=(_iframe.split('-').length>0?_iframe.split('-')[1]:"1"); - pymjs.text="var t1;function pmchd(){console.log('In the frame "+_iframe+",pym code call is begining; '+(typeof pym!= 'undefined'));if(typeof pym != 'undefined'){pymChild"+frameid+" = new pym.Child({ id: 'pdiv_"+_iframe+"' ,polling: 500});window.clearInterval(t1); }};t1 = window.setInterval(pmchd,5);"; - pymjs.type="text/javascript"; - pymjs.id="pymChild"; - ifmHeadlins.push({"pos":"htmlend","scope":"one","link":pymjs}); - } - // 将hk.js or hk.min.js应用到模块iframe - var hkjsObj=$("script[src*='/hk.']");//模糊查找 - hkjsObj=hkjsObj.length>0?hkjsObj:$("script[src*='/hk1.']"); - if(hkjsObj.length>0){ - var hkjs=document.createElement("script"); - hkjs.src=hkjsObj[0].src; - hkjs.type="text/javascript"; - hkjs.id=!!hkjsObj[0].id?hkjsObj[0].id:"hkjs"; - ifmHeadlins.push({"pos":"head","scope":"one","link":hkjs}); - hkjs=document.createElement("script"); ////hk.js 加载后拦截ajax请求进行转发 - } - } - var crossOrign=openoFrameWork.getDomainURL(ifrm.src); - if( window.location.origin==crossOrign){ //第一层同域处理 - for (i=0;i0){ - var ifmHeadlins2 = new Array(); - for (i=0;i0){ - console.log('跨域访问: 系统将进入跨域访问代理处理流程 '); - dealCrossProxy(childifrms[j].name,childOrign,ifmHeadlins2,flag); - } - } - } - } - }else{ - if(ifmHeadlins.length>0){ - console.log('跨域访问: 系统将进入跨域访问代理处理流程 '); - dealCrossProxy(ifrm.name,crossOrign,ifmHeadlins,flag); - } - } - }, - goToURL:function(url){ - dhByBreadcrumb = true;//全局变量,声明此次事件是由点击面包屑发起的 - var showNav=openoFrameWork.getLocationURLParameter('showNav'); - if(showNav=="false"){//如果不显示菜单,就强制刷新本页 - location.reload(); - }else{ - url="a[name='"+url+"']"; - $(url).click(); - } - }, - goToURLByName:function(name){ - var showNav=openoFrameWork.getLocationURLParameter('showNav'); - if(showNav=="false"){//如果不显示菜单,就强制刷新本页 - location.reload(); - }else{ - url="a[name='"+name+"']"; - $(url).click(); - } - }, - goToURLByID:function(id){ - if(!id){ - return; - } - var showNav=openoFrameWork.getLocationURLParameter('showNav'); - if(showNav=="false"){//如果不显示菜单,就强制刷新本页 - location.reload(); - }else{ - if(id.indexOf("#")<0){ - id="#"+id; - } - $(id).click(); - } - }, - goToPortal:function(id){ - var _url=top.location.href; - console.log(_url); - //_url="/ngict/iui/framework/"; - var url=$.url(_url); - top.location=url.attr("directory")+"uifportal.html#"+id+"/"; - }, - //Category - goToURLByIDAndNewIPPort:function(id,newIPPort,newActionStr){ - //先把NewIPPort对象:newIPPort={menuCategoryID:'vim',ipPortStr:'htpp://10.74.151.123:31180',newTitle:''}缓存到Category数组中, - //menuCategoryID属性是更多菜单上配置的菜单的分类id,; - //ipPortStr属性是该id的菜单要替换的新的ip和端口地址字符串,包括协议部分,比如http://10.74.151.64:21169 - //newTitle属性用于放置新开ip的页面对应到面包屑上的名字,可以为“”,空标识不关注 - _menuCategorys.replace(newIPPort.menuCategoryID,{ipPort:newIPPort.ipPortStr,ipTitle:newIPPort.newTitle});//把当前面包削中的菜单id和该子菜单对应的父菜单关联缓存起来 - if (store) { - store('menuCategoryID', newIPPort.menuCategoryID+"[menuCategoryID]"+newIPPort.ipPortStr+"[menuCategoryID]"+(!!newIPPort.newTitle?newIPPort.newTitle:"")); - } - //这里增加按照newIPPort.menuCategoryID分类加载more菜单的处理逻辑 - //首先根据id找到对应的主菜单菜单项 - var menuitem = this.findMenuItemByMenuId(id); - if(!menuitem||menuitem.length<=0){//主菜单中没有找到,就找more菜单,找到id对应的more菜单项所属的主菜单项 - var mainMenuId = this.getMenuItemId_From_MoreMenuRelation(id); - if( !!mainMenuId&&mainMenuId.length>0 ){//more菜单中找到了id对应的主菜单项id,根据id返回主菜单项 - menuitem = this.findMenuItemByMenuId(mainMenuId); - if(!!menuitem&&menuitem.length>0){ - var more=$("#"+id,$('#pageableDiv')).parent(); - $(".box.boxOperation", $(".carousel-inner")).removeClass("moreButtonSelected"); - more=$('a>div.box',more); - if (more.hasClass('moreButtonSelected') == false){ - more.addClass('moreButtonSelected'); - } - var pagesTags=$('.item.moreButtonsTag'); - if(pagesTags.length>0){ - for(var i=0;i0){ - tags.addClass('active'); - } - } - } - } - } - } - //其次找到的菜单项中newIPPort.menuCategoryID对应的src覆盖breadcrumgroupbuttonsrc属性值, - if(!!menuitem&&menuitem.length>0){ - var mulsrc=menuitem.attr(newIPPort.menuCategoryID+"-multiInsrc"); - if(!!mulsrc){ - menuitem.attr("breadcrumgroupbuttonsrc" ,mulsrc); - getBreadcrumbRightButtons(mulsrc,true); - } - } - if (waittime) { - clearInterval(waittime); - } - waittime = setInterval(function () { - if(moreMenusisLoaded==true){ - clearInterval(waittime); - openoFrameWork.goToURLByIDAndNewAction(id,newActionStr,null); - } - }, 10); - }, - goToURLByIDAndNewAction:function(id,newActionStr,newBrowserPageOption){ - if(!id){ - return; - } - - /*if(id.indexOf("#")<0){ - id="#"+id; - }*/ - var menuitem = this.findMenuItemByMenuId(id); - //处理新开页面情况 - if(newBrowserPageOption){ - var href = ICTFRAME_CONST_DEFAULTPAGE_PATH; - var hash = getLocationHashByMenuId(id); - var newin=window.open(href + newBrowserPageOption.paramStr + hash,newBrowserPageOption.windowTitle); - newin.name=newActionStr;//注意这种传递参数的方法,被打开的页面中需要通过top.name中获取该传递的参数。 - return; - } - //$(window).off('hashchange', loadCurrentHash); - var menuItemID=menuitem?menuitem.attr("id"):""; - if(!!menuItemID&&menuItemID.length>0){ - //menuItemID="#" + menuItemID; - //menuItemID=!!newActionStr?menuItemID:menuItemID+"/no"; - _setLocationHash(menuItemID); - } - var breadcrumbBtnMenuItemParent=""; - if(!menuitem||menuitem.length<=0){//没有找到该菜单,可能是面包削中的,需要额外处理 - menuItemID=id; - if (breadcrumbBtnMenus.contains(menuItemID)) {//有缓存 - breadcrumbBtnMenuItemParent=breadcrumbBtnMenus.items(menuItemID); - menuitem=this.findMenuItemByMenuId(breadcrumbBtnMenuItemParent); - //_breadcrumbSource=true; - } - // else{//在新增的可翻页的更多菜单里面找 - // var pageDiv = $('#pageableDiv'); - // menuitem=$('#' + menuItemID , pageDiv); - // } - if( menuitem && menuitem.length > 0){ - isMoreMenuItemClick = true; - } - } - if(!menuitem||menuitem.length<=0){ - //面包屑和主菜单都没有找到,情况可能是:更多菜单点击打开后,刷新,hash已经更改,但是对应的更多菜单的html没有加载,需要找到更多菜单和主菜单的对应关系 - var mainMenuId = this.getMenuItemId_From_MoreMenuRelation( id ); - if( mainMenuId ){ - menuitem = this.findMenuItemByMenuId(mainMenuId); - } - - } - if (store&&store("globleCurrentBreadcrumb")){ - globleCurrentBreadcrumb=store("globleCurrentBreadcrumb"); - //下面处理下刷新整个页面后从cookie中获取来的最后一次操作的面包屑对应的对应菜单的name属性回写,便于面包屑事件响应能够找到对应的菜单 - var al=$("a",$("
    "+globleCurrentBreadcrumb+"
    ")); - var alink,gal; - for(i=0;i0){ - var panel = $('.zte-theme-panel'); - var navPosOption = $('.nav-pos-direction', panel).val(); - if(navPosOption === openoFrameWork_menu_fmenu){ - var hparentid=menuitem.attr("hparentid"); - var id=menuitem.attr("id"); - var i=0,menuItemH=menuitem; - while (id!=hparentid&&i<20){ - menuItemH=openoFrameWork.findMenuItemByMenuId(hparentid); - hparentid=menuItemH.attr("hparentid"); - id=menuItemH.attr("id"); - i++; - }; - if(!menuItemH.hasClass('active')) - menuItemH.parent().addClass("active"); - } - }else{ - console.log("goToURLByIDAndNewAction():Can't find the menuitem.The menu ID is:"+id+".Please check if the ID or ID cache is correct."); - } - //try{ - var parm=undefined; - if(!!newActionStr&&breadcrumbBtnMenuItemParent&&breadcrumbBtnMenuItemParent.length>0){ - parm={action:newActionStr,breadcrumbBtnMenuItem:menuItemID}; - }else if(!!newActionStr){ - parm={action:newActionStr}; - }else if(breadcrumbBtnMenuItemParent&&breadcrumbBtnMenuItemParent.length>0){ - parm={breadcrumbBtnMenuItem:menuItemID}; - }else if(mainMenuId){ - isMoreMenuItemClick = true; - parm={breadcrumbBtnMenuItem:menuItemID}; - } - //if(breadChangeType){ - // if(!parm){ - // parm = {}; - // } - // parm.breadChangeType = breadChangeType; - //} - if(parm&&parm.action || parm&&parm.breadChangeType) { - _hashSource="dhByInterface"; - } - - if(menuitem&&menuitem.length>0){ - menuitem.one('click',parm,function(e){ //临时一次性的注册一次click事件处理函数,执行完毕会自动删除 - openoFrameWork.dealAtoIframe($(this),e); - //$(window).one('hashchange', loadCurrentHash); - return false; - }); - menuitem.click();//后执行 - } - /*}catch(e){} - finally{ - //$(window).on('hashchange', loadCurrentHash); - }*/ - }, - - getBreadcrumbEle:function(){ - return $('.breadcrumbUl')[0]; - }, - - - findMenuItemByMenuId:function( id ){ - var menuitem=undefined; - var panel = $('.zte-theme-panel'); - var navPosOption = $('.nav-pos-direction', panel).val(); - - var items = undefined; - if (navPosOption === "vertical"){ //从垂直菜单里面找 - items=$("#page-sidebar-menu a[id='"+id+"']"); - }else if(navPosOption === openoFrameWork_menu_horizontal){//从水平菜单里面找 - items=$("#main_hormenu a[id='"+id+"']"); - if(items.length == 0){ - //横菜单没有找到,再在横菜单的子菜单找一次 - items=$("#page-megachild-sidebar-menu a[id='"+id+"']"); - } - }else if(navPosOption === openoFrameWork_menu_fmenu){ - items=$("#f_hormenu a[id='"+id+"']"); - if(items.length == 0){ - //横菜单没有找到,再在竖菜单找一次。 - items=$("#page-f-sidebar-menu a[id='"+id+"']"); - - } - - } - if( items&&items.length == 0 ){ - console.log( 'fmenu alink length is :' + $("#page-f-sidebar-menu a").length ); - console.log( 'cant find menu in sidemenu、megamenu and fmenu , the menu id is ' + id ); - } - if(items&&items.length>0){ - for(var i=0;i0){ - for(var i=0;i 0) { - parm = { - breadcrumbBtnMenuItem : menuItemID - }; - } - if (menuitem && menuitem.length > 0) { - menuitem.one('click', parm, function (e) { //临时一次性的注册一次click事件处理函数,执行完毕会自动删除 - var containerStr = $(this).parentsUntil('.page-container').hasClass('page-sidebar') ? 'page-sidebar' : ""; // - containerStr = $(this).parentsUntil('.header-inner').hasClass('hor-menu') ? 'header' : containerStr; - _isClicked = false; - dealMenuItemGetFocus($(this),e,containerStr); - return false; - }); - menuitem.click(); //后执行 - } - }, - // 处理面包削中的按钮菜单增加的导航连接,显示在iframe中 - openbreadcrumbLink:function(aObject,e) { - var url = aObject.attr("href"); - if(!url||url.length<2) - return; - e.preventDefault(); - dealScrollTo(); - var menuItemID=aObject.attr("id"); - if(!!menuItemID&&menuItemID.length>0){ - _setLocationHash(menuItemID); - _hashSource="dhByInterface"; - } - dealstartPageLoading(); - dealIframe(aObject,e); - }, - getURLParam:function(name){ - var reg = new RegExp("(^|&)" + name.toLowerCase() + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象 - var search =decodeURIComponent(location.search.substring(1)).toLowerCase(); - var r =search.match(reg); //匹配目标参数 - if (r != null) return unescape(r[2]); - return null; //返回参数值 - } - }; -}(); - -//抽取html片段中任意位置的script标签(包括代码是内嵌的情况)逐个运行(不会在单个script加载不到的时候停下来) -function runHtmlScripts(s) { - var div = document.createElement('div'); - div.innerHTML = s; - var scripts = div.getElementsByTagName('script'); - - var currentRunningScriptSrcPath = {}; - $(scripts).each(function() { - var src = this.src; - src = openoFrameWork.handlBaseURL(src); - if (src) { - currentRunningScriptSrcPath[src.substring(src.lastIndexOf("/") + 1)] = src.substring(0, src.lastIndexOf("/") + 1); - $.getScript(src); - } else { - $.globalEval(this.text || this.textContent || this.innerHTML || ''); - } - }); -}; - -function stripHtmlScripts(htmlContent) { - var divContent = document.createElement('div'); - divContent.innerHTML = htmlContent; - var scripts = divContent.getElementsByTagName('script'); - - $(scripts).each(function() { - this.src = openoFrameWork.handlBaseURL(this.src); - this.parentNode.removeChild(this); - }); - return divContent.innerHTML; -}; - -function getsiderBarMenu(url){ - if (url.length<2){ - return; - } - url=openoFrameWork.handlBaseURL(url); - openoFrameWork.startPageLoading();//菜单加载中请稍候.... - var pagesidebar=$('#page-sidebar-menu'); - pagesidebar.empty(); - pagesidebar.append(""); - $.ajax({ - type: "GET", - cache: false, - url: url, - dataType: "html", - success: function (res) { - //去除script标签以后添加到主框架以防止append方法因为加载script标签失败导致后面的代码无法运行 - //res = stripHtmlScripts(res); - var resScriptsSriped = stripHtmlScripts(res); - pagesidebar.append(resScriptsSriped); - runHtmlScripts(res); - - siderBarMenuAuthentication(); - dealMysqlBackupMenu(); - //loadi18n_WebFramework_sideMenu(); - setTimeout(function () { - openoFrameWork.stopPageLoading(); - goToHomePage(); - }, 1000); - }, - error: function (xhr, ajaxOptions, thrownError) { - //$('#page-sidebar-menu').append('');//加载系统菜单失败!;//加载系统菜单失败! - } - }); -}; -var setLayoutValueByCookie = function () { - var panel = $('.zte-theme-panel'); - if (store('layout-option') != undefined) { - $('.layout-option', panel).val(store('layout-option')); - } - if (store('language-option') != undefined) { - $('.language-option', panel).val(store('language-option')); - } - if (store('sidebar-option') != undefined) { - $('.sidebar-option', panel).val(store('sidebar-option')); - } - if (store('header-option') != undefined) { - $('.header-option', panel).val(store('header-option')); - } - if (store('sidebar-pos-option') != undefined) { - $('.sidebar-pos-option', panel).val(store('sidebar-pos-option')); - } - var horMenuLoadTip = $("[class='nav-load-error']", $(".hormenu")); - var sideMenuLoadTip = $("[class='nav-load-error']", $("[class='page-sidebar-menu']")); - // 横竖菜单都无错误提示,都正确加载 - // if ((!horMenuLoadTip || horMenuLoadTip.length <= 0) && (!sideMenuLoadTip || sideMenuLoadTip.length <= 0)) { - // if (store('nav-pos-direction') != undefined) { - // var navPosOption = store('nav-pos-direction'); - // $('.nav-pos-direction', panel).val(navPosOption); - // } else { - $('.nav-pos-direction', panel).val('fmenu'); - // $.ajax({ - // "dataType" : 'json', - // "type" : "GET", - // "async" : false, - // url : FrameConst.REST_GET_FRAME_MENUDIRECTION + "&tmpstamp=" + new Date().getTime(), - // "success" : function (obj) { - // if (obj.value && (obj.value != "")) { - // $('.nav-pos-direction', panel).val(obj.value); - // } - // } - // }); - //} - // } else { - // $('.nav-pos-direction', panel).attr("disabled", true); - // } -}; - - -function iniFMenu() { - var fsidemenu = $('#' + fMenuSiderDivId); - - if (fsidemenu) { - openoFrameWork.startPageLoading(); - - var menuContent = initLeftMenu(); - fsidemenu.empty(); - fsidemenu.append(""); - fsidemenu.append(menuContent); - loadi18n_WebFramework('web-framework-menu-i18n', 'i18n/', 'openo_frame_left_menu_i18n'); - - openoFrameWork.stopPageLoading(); - } -}; - -function goToHomePage(){ - locationhash = openoFrameWork.getLocationHash(); - if(!!locationhash&&locationhash.length>0){//有锚点,直接触发 - var newIPPort=null; - if (store&&store('menuCategoryID')) { - var s=store('menuCategoryID').split('[menuCategoryID]'); - if(s.length>2){ - newIPPort={menuCategoryID:s[0],ipPortStr:s[1],newTitle:s[2]}; - } - } - if(!!newIPPort){ - openoFrameWork.goToURLByIDAndNewIPPort(locationhash,newIPPort,null); - }else{ - openoFrameWork.goToURLByIDAndNewAction(locationhash,null,null); - } - }else{//否则还是模拟点击配置了start类的菜单 - var containerStr = ""; - //var sidermenu = $("[class='page-sidebar-menu']", $("[class='page-sidebar navbar-collapse collapse']")); - var sidermenu = $("#page-sidebar-menu"); - var hormenu = $("#main_hormenu"); - var fhormenu = $('#' + fMenuMegaDivId); - var fhormenusider = $('#page-f-sidebar-menu'); - var startmenu = null; - var navPosOption = $('.nav-pos-direction', panel).val(); - // 侧边栏显示,根据侧边栏CSS选择 - if (navPosOption === "vertical") { - //containerStr=$('.page-sidebar').length>0?'.page-sidebar':""; - startmenu = $('.iframe.start' , sidermenu); - dealStartMenu( startmenu, sidermenu ); - } - // 水平菜单显示,根据水平菜单CSS选择 - else if (navPosOption === "horizontal") { - //containerStr=$('.hor-menu').length>0?'.header':containerStr; - startmenu = $('.iframe.start' , hormenu); - dealStartMenu( startmenu, hormenu ); - - } - //F菜单的恒菜单显示 - else if (navPosOption === openoFrameWork_menu_fmenu) { - //containerStr=$('.hor-menu').length>0?'.header':containerStr; - startmenu = $('.iframe.start' ,fhormenu); - if (startmenu && startmenu.length < 1) { - startmenu = $('.iframe.start' ,fhormenusider); - } - dealStartMenu( startmenu, fhormenu,fhormenusider ); - } - } -}; -var dealStartMenu = function(startmenu , menuContainer,menuContainer2 ){ - var timer =setInterval(function () { - if(startmenu&&startmenu.length>0){ - startmenu.click(); - clearInterval(timer); - }else{ - console.log('the start menu click event is not be triggerd ,so do it repeat!!'); - $('a[operation]', menuContainer).each(function () { - startmenu = $(this); - return false; - }); - if (menuContainer2&&startmenu && startmenu.length < 1) { - $('a[operation]', menuContainer2).each(function () { - startmenu = $(this); - return false; - }); - } - } - }, 100); - handeCtxMenuitem(); - } -// 屏蔽横竖菜单项的右键功能 -function handeCtxMenuitem() { - $(".page-sidebar ul li a").each(function() { - if ($(this).attr("href") && $(this).attr("href") != "javascript:;" && $(this).attr("href") != "#") { - $(this).attr("oncontextmenu", "return false"); - } - }); - $(".hormenu li a").each(function() { - if ($(this).attr("href") && $(this).attr("href") != "javascript:;" && $(this).attr("href") != "#") { - $(this).attr("oncontextmenu", "return false"); - } - }); -} -function initBaseInfo(){ - $("#logout_label").text($.i18n.prop('com_zte_ums_ict_framework_ui_group_logout')); - $("#fullscreen_label").text($.i18n.prop('com_zte_ums_ict_framework_ui_group_fullscreen')); - $("#changePwd_label").text($.i18n.prop('com_zte_ums_ict_framework_ui_changePwd')); - $("#com_zte_ums_ict_framework_moudle_about").text($.i18n.prop('com_zte_ums_ict_framework_moudle_about')); - $("#com_zte_ums_ict_framework_moudle_help").text($.i18n.prop('com_zte_ums_ict_framework_moudle_help')); - $("#zte_menu-toggler").attr("title",$.i18n.prop('com_zte_ums_ict_framework_moudle_menutoggler')); -}; -window.closeModal = function(modalid) { - if(!modalid){ - return; - } - if(modalid.indexOf("#")<0){ - modalid="#"+modalid; - } - $(modalid).modal('hide'); -}; -function getLcsRight(lcsoperations) { - var lcsrights = new Array(); - if (lcsoperations && (lcsoperations.length > 0)) { - // 请求后台license value - //----test data---- - // var testjson = '{"data":[{"id":"mylcs","name":"xxx","value":"false"}]}'; - // var testopt = eval('(' + testjson + ')'); - // var testarray = testopt.data; - //-----end test data--- - var keys = { - "keys" : lcsoperations - }; - var jsonvalues = JSON.stringify(keys); - var data = { - "data" : jsonvalues - }; - var url=FrameConst.REST_GETLICENSEINFO + "?tmpstamp=" + new Date().getTime(); - url=openoFrameWork.handlBaseURL(url); - $.ajax({ - "dataType" : 'json', - "type" : "GET", - "async" : false, - "url" : url, - "data" : data, - //"contentType" : 'application/json; charset=utf-8', - "success" : function (response) { - if (response) { - lcsrights = response.data; - } - }, - "error" : function (XMLHttpRequest, textStatus, errorThrown) { - lcsrights = null; - } - }); - return lcsrights; - } - return lcsrights; -} -// 侧边栏菜单鉴权 -function siderBarMenuAuthentication() { - // license 鉴权 - var menuids = new Array(); - var lcsoperations = new Array(); - //从页面DOM取得菜单license项。 - $('a[licenseid]', $('.page-sidebar-menu')).each(function () { - var licenseid = $(this).attr("licenseid"); - if (licenseid) { - lcsoperations.push(licenseid); - var id = $(this).attr("id"); - menuids.push(id); - } - }); - var lcsrights = getLcsRight(lcsoperations);// 取得license数据。 - if (lcsrights && (lcsrights.length == menuids.length)) { - // 根据后台license值判断所在菜单项是否显示 - for (var i = 0; i < menuids.length; i++) { - var id = menuids[i]; - var lcskey = lcsoperations[i]; - var lcsitem = lcsrights[i]; - // 菜单项如果配了licenseid, 并且不是true字符串, 则移除菜单项 - if (lcsitem.value != "True") { - $('#'+id, $('.page-sidebar-menu')).parent().remove(); - } - } - } - var operations = new Array(); - $('a[operation]', $('.page-sidebar-menu')).each(function () { - var operation = $(this).attr("operation"); - if (operation) { - operations.push(operation); - } - }); // 遍历菜单项,提取所有的操作码 - var rightObj = getAllOperCodeRights(operations); // 对操作码进行鉴权判断 - $('a[operation]', $('.page-sidebar-menu')).each(function () { - var operation = $(this).attr("operation"); - if (operation) { - if (!hasRight(operation, rightObj)) { - $(this).parent("li").remove(); // 删除没有权限的菜单项 - } - } - }); - rebuildSiderBarMenu(); -}; -// 横向菜单栏鉴权 -function horMenuAuthentication( horMenuId ) { - // license 鉴权 - var menuids = new Array(); - var lcsoperations = new Array(); - //从页面DOM取得菜单license项。 - $('a[licenseid]', $('#'+ horMenuId)).each(function () { - var licenseid = $(this).attr("licenseid"); - if (licenseid) { - lcsoperations.push(licenseid); - var id = $(this).attr("id"); - menuids.push(id); - } - }); - var lcsrights = getLcsRight(lcsoperations);// 取得license数据。 - if (lcsrights && (lcsrights.length == menuids.length)) { - // 根据后台license值判断所在菜单项是否显示 - for (var i = 0; i < menuids.length; i++) { - var id = menuids[i]; - var lcskey = lcsoperations[i]; - var lcsitem = lcsrights[i]; - // 菜单项如果配了licenseid, 并且不是true字符串, 则移除菜单项 - if (lcsitem.value != "True") { - $('#'+id, $('#'+ horMenuId)).parent().remove(); - } - } - } - var operations = new Array(); - $('a[operation]', $('#'+ horMenuId)).each(function () { - var operation = $(this).attr("operation"); - if (operation) { - operations.push(operation); - } - }); // 遍历菜单项,提取所有的操作码 - var rightObj = getAllOperCodeRights(operations); // 对操作码进行鉴权判断 - $('a[operation]', $('#'+ horMenuId)).each(function () { - var operation = $(this).attr("operation"); - if (operation) { - if (!hasRight(operation, rightObj)) { - $(this).parent("li").remove(); // 删除没有权限的菜单项 - } - } - }); - rebuildHorMenu(); -}; - -// “更多操作”分组按钮鉴权 -function groupButtonAuthentication() { - // license 鉴权 - var menuids = new Array(); - var lcsoperations = new Array(); - //从页面DOM取得菜单license项。 - $('a[licenseid]', $('.more-botton-zone > li.btn-group')).each(function () { - var licenseid = $(this).attr("licenseid"); - if (licenseid) { - lcsoperations.push(licenseid); - var id = $(this).attr("id"); - menuids.push(id); - } - }); - var lcsrights = getLcsRight(lcsoperations);// 取得license数据。 - if (lcsrights && (lcsrights.length == menuids.length)) { - // 根据后台license值判断所在菜单项是否显示 - for (var i = 0; i < menuids.length; i++) { - var id = menuids[i]; - var lcskey = lcsoperations[i]; - var lcsitem = lcsrights[i]; - // 菜单项如果配了licenseid, 并且不是true字符串, 则移除菜单项 - if (lcsitem.value != "True") { - $('#'+id, $('.more-botton-zone > li.btn-group')).parent().remove(); - } - } - } - // 增加mysql判断,如果数据库为mysql,去掉基础数据备份功能菜单项 - var dbType = openoFrameWork_conf.dbType; - if (dbType == "mysql") { - $("#uep-ict-backup-baseDataBack",$('.more-botton-zone > li.btn-group')).parent().remove(); - } - var operations = new Array(); - $('a[operation]', $('.more-botton-zone > li.btn-group')).each(function () { - var operation = $(this).attr("operation"); - if (operation) { - operations.push(operation); - } - }); // 遍历菜单项,提取所有的操作码 - var rightObj = getAllOperCodeRights(operations); // 对操作码进行鉴权判断 - $('a[operation]', $('.more-botton-zone > li.btn-group')).each(function () { - var operation = $(this).attr("operation"); - if (operation) { - if (!hasRight(operation, rightObj)) { - $(this).parent("li").remove(); // 删除没有权限的菜单项 - } - } - }); - // 如果“更多菜单”下没有子菜单了,则删除整个“更多菜单”下拉框。 - if ($('li > a', $('.more-botton-zone > li.btn-group')).length == 0) { - $('.more-botton-zone > li.btn-group').remove(); - } -}; -// 删除没有子菜单的一级菜单,查看新菜单是否配了登录默认页面,如没有则指定第一个有权限的菜单作为登录后默认页面 -function rebuildSiderBarMenu() { - if ($('a.start').length == 0) { - $('li > a[href!="javascript:;"]', $('.page-sidebar-menu')).eq(0).addClass("start"); - } - $('ul.sub-menu', $('.page-sidebar-menu')).each(function () { - if ($(this).has('li').length == 0) { - $(this).parent("li").remove(); - } - }); -}; -// 删除没有子菜单的一级菜单,查看新菜单是否配了登录默认页面,如没有则指定第一个有权限的菜单作为登录后默认页面 -function rebuildHorMenu() { - if ($('a.start').length == 0) { - $('li > a[href!="#"]', $('#main_hormenu')).eq(0).addClass("start"); - } - $('ul.mega-menu-submenu', $('#main_hormenu')).each(function () { - if ($(this).has('li > a').length == 0) { - $(this).remove(); // 删空的分组列 - } - }); - //删除增加的分组div - $('div.zteDivWidth', $('#main_hormenu')).each(function () { - if ($(this).has('ul').length == 0) { - $(this).remove(); // 删空的分组列 - } - }); - $('ul.dropdown-menu', $('#main_hormenu')).each(function () { - if ($(this).has('ul').length == 0) { - $(this).parent("li").remove(); // 删空的一级菜单栏 - } - }); - $('li.divider', $('#main_hormenu')).each(function () { - if ($(this).next().hasClass('divider')) { - $(this).remove(); // 连续出现分隔线则删除一个 - } - }); - $('li.divider', $('#main_hormenu')).each(function () { - if ($(this).next().length == 0) { - $(this).remove(); // 如果分隔线在最后一行,则删除之 - } - }); -} -//获取页面菜单栏所有的操作码权限 -function getAllOperCodeRights(operations) { - var rights = new Array(); - if( operations && operations.length > 0 ){ - var data = { - "operations" : operations - }; - var sendData = JSON.stringify(data); - var url=FrameConst.REST_CHECKRIGHT + "?data=" + sendData + "&tmpstamp=" + new Date().getTime(); - url=openoFrameWork.handlBaseURL(url); - $.ajax({ - "dataType" : 'json', - "type" : "GET", - "async" : false, - "url" : url, - "data" : null, - //"contentType" : 'application/json; charset=utf-8', - "success" : function (response) { - rights = response.value; - }, - "error" : function (XMLHttpRequest, textStatus, errorThrown) { - if (XMLHttpRequest.status == 401) { - window.location.replace("login.html"); - } else { - console.log('Communication Error!'); - } - } - }); - } - return { - opCodes : operations, - rights : rights - }; -}; -// 判断操作码是否有权限 -function hasRight(opCode, rightObj) { - for (var i = 0; i < rightObj.opCodes.length; i++) { - if (rightObj.opCodes[i] == opCode) { - return (rightObj.rights[i] == true); - } - } - return false; -}; -// 处理mysql环境下备份菜单的合并问题 -function dealMysqlBackupMenu() { - var dbType = openoFrameWork_conf.dbType; - if (dbType !== undefined && dbType !== "mysql") { - return; - } - var sidermenu = $("[class='page-sidebar-menu']"); - var hormenu = $(".hormenu"); - //这段代码先这么写,html的位置不一定正确,如果后面位置不一致,再修改。 - if (sidermenu.length > 0 && $('#uep-ict-backup-dataBackup').length > 0) { - $('#uep-ict-backup-dataBackup', sidermenu).attr("breadcrumGroupButtonSrc", ICTFRAME_CONST_DATABACKUP_PATH); - } - if (hormenu.length > 0 && $('#uep-ict-backup-dataBackup').length > 0) { - $('#uep-ict-backup-dataBackup', hormenu).attr("breadcrumGroupButtonSrc", ICTFRAME_CONST_DATABACKUP_PATH); - $('#uep-ict-backup-dataBackup').parent('li').attr('style', 'display:block'); - $('#uep-ict-backup-allDbStructBackup').parent('li').attr('style', 'display:none'); - $('#uep-ict-backup-baseDataBack').parent('li').attr('style', 'display:none'); - } -}; -// 浏览器缩小后导航栏隐藏的情况下点击navbar-toggle显示菜单的前置工作, -// 浏览器缩小后导航栏隐藏的情况下点击navbar-toggle显示菜单的前置工作, -function dealMavToggle(navtoggle) { - var sidermenu = $("#page-sidebar-menu"); - var hormenu = $("#main_hormenu"); - var panel = $(".zte-theme-panel"); - var siderbarpos = $(".nav-pos-direction", panel).val() - if ("hidden" == $(navtoggle).attr("navtoggledispattr")) { - $(navtoggle).attr("navtoggledispattr", "display"); - sidermenu.css('display','block');//侧边栏显示 - hormenu.css("display", "none");//隐藏水平菜单栏 - } else { - $(navtoggle).attr("navtoggledispattr", "hidden"); - sidermenu.css('display','none');//侧边栏隐藏 - hormenu.css("display", "none"); - } -}; diff --git a/portal-common/src/main/webapp/common/js/core/pym.min.js b/portal-common/src/main/webapp/common/js/core/pym.min.js deleted file mode 100644 index db0984ea..00000000 --- a/portal-common/src/main/webapp/common/js/core/pym.min.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -(function(a){if(typeof define==="function"&&define.amd){define("pym",[],a)}else{if(typeof module!=="undefined"&&module.exports){module.exports=a()}else{window.pym=a.call(this)}}window.pym=a.call(this)})(function(){var a="xPYMx";function e(){var k,i;if(window.innerHeight&&window.scrollMaxY){k=window.innerWidth+window.scrollMaxX;i=window.innerHeight+window.scrollMaxY}else{if(document.body.scrollHeight>document.body.offsetHeight){k=document.body.scrollWidth;i=document.body.scrollHeight}else{k=document.body.offsetWidth;i=document.body.offsetHeight}}var j,l;if(self.innerHeight){if(document.documentElement.clientWidth){j=document.documentElement.clientWidth}else{j=self.innerWidth}l=self.innerHeight}else{if(document.documentElement&&document.documentElement.clientHeight){j=document.documentElement.clientWidth;l=document.documentElement.clientHeight}else{if(document.body){j=document.body.clientWidth;l=document.body.clientHeight}}}if(i-1){q=this.url.substring(n,this.url.length);this.url=this.url.substring(0,n)}if(this.url.indexOf("?")<0){this.url+="?"}else{this.url+="&"}this.iframe.src=this.url.trim().indexOf("javascript:")>=0?"":this.url+"initialWidth="+o+"&childId="+this.id;"&parentUrl="+encodeURIComponent(window.location.href)+q;this.iframe.setAttribute("width","100%");this.iframe.setAttribute("scrolling","no");this.iframe.setAttribute("marginheight","0");this.iframe.setAttribute("frameborder","0");this.el.appendChild(this.iframe);var p=this;window.addEventListener("resize",this._onResize)};this._onResize=function(){this.sendWidth()}.bind(this);this._fire=function(o,p){if(o in this.messageHandlers){for(var n=0;n0&&this.childpageType==="isc"){console.log("parent window detect that the child iframe page loaded smartclient,the iframe height will ignore the child's Height change message;");if(this.minHeightheight){m=l.oldHeight-height}else{m=height-l.oldHeight}if(m<=70){return}if(l.oldHeight!=height){l.oldHeight=height;console.log("child iframe id="+l.id+" sedHeight:"+height);l.sendMessage("height",height)}}.bind(this);this.scrollParentTo=function(m){this.sendMessage("navigateTo","#"+m)};this.navigateParentTo=function(m){this.sendMessage("navigateTo",m)};this.id=c("childId")||i.id;this.messageRegex=new RegExp("^pym"+a+this.id+a+"(\\S+)"+a+"(.+)$");var k=parseInt(c("initialWidth"));this.parentUrl=c("parentUrl");this.onMessage("width",this._onWidthMessage);for(var j in i){this.settings[j]=i[j]}var l=this;window.addEventListener("message",this._processMessage,false);if(this.settings.renderCallback){this.settings.renderCallback(k)}this.sendHeight();if(this.settings.polling){window.setInterval(this.sendHeight,this.settings.polling)}return this};d();return g}); diff --git a/portal-common/src/main/webapp/common/js/fm_light.js b/portal-common/src/main/webapp/common/js/fm_light.js deleted file mode 100644 index ea4aeb29..00000000 --- a/portal-common/src/main/webapp/common/js/fm_light.js +++ /dev/null @@ -1,169 +0,0 @@ -/* - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -(function($) { - String.prototype.trim = function() { - return this.replace(/(^\s*)|(\s*$)/g, ""); - }; - String.prototype.format=function() { - if(arguments.length==0) return this; - for(var s=this, i=0; i0&&$("#header_notification_bar").children().length>0){ - // 对告警灯进行鉴权,如果有当前告警权限,显示告警灯,否则返回ã€? - var operations = new Array(); - operations.push("common.fm.currentview"); - var rightObj = getAllOperCodeRights(operations); - var operation = $("#uep-ict-fm-currentAlarm").attr("operation");; - if (!hasRight(operation, rightObj)) { - $('#header_notification_bar').html("
          
    "); - return; - } - // get total alarm count - $("#hd_heighestAlarmcount_label").attr("title",$.i18n.prop('com_zte_ums_ict_alarmcount_none_label')); - $("#hd_alarmcount_total_value").attr("title",$.i18n.prop('com_zte_ums_ict_alarmcount_total_label')); - $("#hd_alarmcount_critical_value").attr("title",$.i18n.prop('com_zte_ums_ict_alarmcount_critical_label')); - $("#hd_alarmcount_major_value").attr("title",$.i18n.prop('com_zte_ums_ict_alarmcount_major_label')); - $("#hd_alarmcount_minor_value").attr("title",$.i18n.prop('com_zte_ums_ict_alarmcount_minor_label')); - $("#hd_alarmcount_warning_value").attr("title",$.i18n.prop('com_zte_ums_ict_alarmcount_warning_label')); - - function alarmLight(alarmcount){ - if (!alarmcount || !alarmcount.unAckedCount || (alarmcount.unAckedCount.length < 4) || !alarmcount.ackedCount || (alarmcount.ackedCount.length < 4)) { - return; - } - var criticalNum = alarmcount.unAckedCount[0] + alarmcount.ackedCount[0]; - var majorNum = alarmcount.unAckedCount[1] + alarmcount.ackedCount[1]; - var minorNum = alarmcount.unAckedCount[2] + alarmcount.ackedCount[2]; - var warningNum = alarmcount.unAckedCount[3] + alarmcount.ackedCount[3]; - var totalNum= criticalNum+ majorNum+ minorNum+ warningNum; - var heighestAlarmcount=0; - var hd_heighestAlarmcount_label=""; - if(criticalNum>0){ - heighestAlarmcount =criticalNum; - hd_heighestAlarmcount_label=$.i18n.prop('com_zte_ums_ict_alarmcount_critical_label'); - // $("#hd_heighestAlarmcount_li").attr("class",$("#hd_alarmcount_critical_li").attr("class")); - }else if(majorNum>0){ - heighestAlarmcount =majorNum; - hd_heighestAlarmcount_label=$.i18n.prop('com_zte_ums_ict_alarmcount_major_label'); - }else if(minorNum>0){ - heighestAlarmcount =minorNum; - hd_heighestAlarmcount_label=$.i18n.prop('com_zte_ums_ict_alarmcount_minor_label'); - }else if(warningNum>0){ - heighestAlarmcount =warningNum; - hd_heighestAlarmcount_label=$.i18n.prop('com_zte_ums_ict_alarmcount_warning_label'); - }else{ - heighestAlarmcount =0; - hd_heighestAlarmcount_label=$.i18n.prop('com_zte_ums_ict_alarmcount_none_label'); - } - - $("#hd_heighestAlarmcount_value").text(heighestAlarmcount); - $("#hd_alarmcount_total_value").text(totalNum); - $("#hd_alarmcount_critical_value").text(criticalNum); - $("#hd_alarmcount_major_value").text(majorNum); - $("#hd_alarmcount_minor_value").text(minorNum); - $("#hd_alarmcount_warning_value").text(warningNum); - - $("#hd_heighestAlarmcount_value").attr("title",hd_heighestAlarmcount_label.format(heighestAlarmcount )); - $("#hd_alarmcount_total_value").attr("title",$.i18n.prop('com_zte_ums_ict_alarmcount_total_label').format(totalNum )); - $("#hd_alarmcount_critical_value").attr("title",$.i18n.prop('com_zte_ums_ict_alarmcount_critical_label').format( criticalNum )); - $("#hd_alarmcount_major_value").attr("title",$.i18n.prop('com_zte_ums_ict_alarmcount_major_label').format(majorNum)); - $("#hd_alarmcount_minor_value").attr("title",$.i18n.prop('com_zte_ums_ict_alarmcount_minor_label').format(minorNum)); - $("#hd_alarmcount_warning_value").attr("title",$.i18n.prop('com_zte_ums_ict_alarmcount_warning_label').format(warningNum)); - - $("#hd_alarmcount_critical_text").text($.i18n.prop('com_zte_ums_ict_alarmcount_critical_text')); - $("#hd_alarmcount_major_text").text($.i18n.prop('com_zte_ums_ict_alarmcount_major_text')); - $("#hd_alarmcount_minor_text").text($.i18n.prop('com_zte_ums_ict_alarmcount_minor_text')); - $("#hd_alarmcount_warning_text").text($.i18n.prop('com_zte_ums_ict_alarmcount_warning_text')); - - $("#hd_alarmcount_total_before_text").text($.i18n.prop('com_zte_ums_ict_alarmcount_total_before_text')); - $("#hd_alarmcount_total_after_text").text($.i18n.prop('com_zte_ums_ict_alarmcount_total_after_text')); - $("#header_notification_bar").css('display','block'); - } - function queryAlarmTotalCount() { - $.getJSON("/web/rest/web/fm/count/total", function(data) { - //var alarmcount = $.parseJSON(data); - alarmLight(data); - if($("#header_notification_bar")&&$("#header_notification_bar").length>0&&$("#header_notification_bar").children().length>0){ - registerAlarmTotalCountToCometd(); - } - }) - } - if($("#header_notification_bar")&&$("#header_notification_bar").length>0&&$("#header_notification_bar").children().length>0){ - queryAlarmTotalCount(); - } - var registerAlarmTotalCountToCometd = function () { - var self = this; - var cometd = $.cometd; - var cometURL = location.protocol + "//" + location.host + "/web/cometd"; - cometd.configure({ - url: cometURL, - logLevel: 'debug' - }); - cometd.addListener('/meta/handshake', function (handshake){ - if (handshake.successful === true) { - cometd.batch(function () { - cometd.subscribe('/alarm/usercount', function (message) { - var alarmcount =message.data; - alarmLight(alarmcount); - }) - }) - } - }); - cometd.handshake(); - }; - - // if($("#header_notification_bar")&&$("#header_notification_bar").length>0&&$("#header_notification_bar").children().length>0){ - // registerAlarmTotalCountToCometd(); - // } - //setInterval(queryAlarmTotalCount, 30 * 1000); - } - } - else if(base){ - //$("#header_notification_bar").hide(); - //$('#header_notification_bar').empty(); - $('#header_notification_bar').html("
          
    "); - } - }); - }catch(e){} -})(jQuery); diff --git a/portal-common/src/main/webapp/common/js/international/loadi18n.js b/portal-common/src/main/webapp/common/js/international/loadi18n.js deleted file mode 100644 index b3989158..00000000 --- a/portal-common/src/main/webapp/common/js/international/loadi18n.js +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -var lang = 'en-US'; - -function loadProperties(propertiesFileName, propertiesFilePath , name_i18n) { - jQuery.i18n.properties({ - language:lang, - name:propertiesFileName, - path:propertiesFilePath, - mode:'map', - callback: function() { - var i18nItems = $('[name_i18n='+ name_i18n + ']'); - for (var i = 0; i < i18nItems.length; i++) { - var $item = $(i18nItems.eq(i)); - var itemId = $item.attr('id'); - var itemValue = $.i18n.prop(itemId); - if (itemValue.indexOf(';') > 0) { - itemValue = itemValue.replace(';', ''); - } - if (/[\'\"]/.test(itemValue)) { - itemValue = itemValue.replace(/\"/g,''); - itemValue = itemValue.replace(/\'/g,''); - } - if (typeof($item.attr("title")) != "undefined") { - $item.attr("title", itemValue); - } else if (typeof($item.attr("placeholder")) != "undefined") { - $item.attr("placeholder", itemValue); - } else { - $item.text(itemValue); - } - } - } - }); -} - -function loadi18n_WebFramework(propertiesFileName, propertiesFilePath, name_i18n) { - loadProperties(propertiesFileName, propertiesFilePath, name_i18n); -} - diff --git a/portal-common/src/main/webapp/common/js/json2.js b/portal-common/src/main/webapp/common/js/json2.js deleted file mode 100644 index e6c115c0..00000000 --- a/portal-common/src/main/webapp/common/js/json2.js +++ /dev/null @@ -1,341 +0,0 @@ -/* - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -if (typeof JSON !== 'object') { - JSON = {}; -} - -(function () { - 'use strict'; - - function f(n) { - // Format integers to have at least two digits. - return n < 10 ? '0' + n : n; - } - - if (typeof Date.prototype.toJSON !== 'function') { - - Date.prototype.toJSON = function (key) { - - return isFinite(this.valueOf()) - ? this.getUTCFullYear() + '-' + - f(this.getUTCMonth() + 1) + '-' + - f(this.getUTCDate()) + 'T' + - f(this.getUTCHours()) + ':' + - f(this.getUTCMinutes()) + ':' + - f(this.getUTCSeconds()) + 'Z' - : null; - }; - - String.prototype.toJSON = - Number.prototype.toJSON = - Boolean.prototype.toJSON = function (key) { - return this.valueOf(); - }; - } - - var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, - escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, - gap, - indent, - meta = { // table of character substitutions - '\b': '\\b', - '\t': '\\t', - '\n': '\\n', - '\f': '\\f', - '\r': '\\r', - '"' : '\\"', - '\\': '\\\\' - }, - rep; - - - function quote(string) { - -// If the string contains no control characters, no quote characters, and no -// backslash characters, then we can safely slap some quotes around it. -// Otherwise we must also replace the offending characters with safe escape -// sequences. - - escapable.lastIndex = 0; - return escapable.test(string) ? '"' + string.replace(escapable, function (a) { - var c = meta[a]; - return typeof c === 'string' - ? c - : '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); - }) + '"' : '"' + string + '"'; - } - - - function str(key, holder) { - -// Produce a string from holder[key]. - - var i, // The loop counter. - k, // The member key. - v, // The member value. - length, - mind = gap, - partial, - value = holder[key]; - -// If the value has a toJSON method, call it to obtain a replacement value. - - if (value && typeof value === 'object' && - typeof value.toJSON === 'function') { - value = value.toJSON(key); - } - -// If we were called with a replacer function, then call the replacer to -// obtain a replacement value. - - if (typeof rep === 'function') { - value = rep.call(holder, key, value); - } - -// What happens next depends on the value's type. - - switch (typeof value) { - case 'string': - return quote(value); - - case 'number': - -// JSON numbers must be finite. Encode non-finite numbers as null. - - return isFinite(value) ? String(value) : 'null'; - - case 'boolean': - case 'null': - -// If the value is a boolean or null, convert it to a string. Note: -// typeof null does not produce 'null'. The case is included here in -// the remote chance that this gets fixed someday. - - return String(value); - -// If the type is 'object', we might be dealing with an object or an array or -// null. - - case 'object': - -// Due to a specification blunder in ECMAScript, typeof null is 'object', -// so watch out for that case. - - if (!value) { - return 'null'; - } - -// Make an array to hold the partial results of stringifying this object value. - - gap += indent; - partial = []; - -// Is the value an array? - - if (Object.prototype.toString.apply(value) === '[object Array]') { - -// The value is an array. Stringify every element. Use null as a placeholder -// for non-JSON values. - - length = value.length; - for (i = 0; i < length; i += 1) { - partial[i] = str(i, value) || 'null'; - } - -// Join all of the elements together, separated with commas, and wrap them in -// brackets. - - v = partial.length === 0 - ? '[]' - : gap - ? '[\n' + gap + partial.join(',\n' + gap) + '\n' + mind + ']' - : '[' + partial.join(',') + ']'; - gap = mind; - return v; - } - -// If the replacer is an array, use it to select the members to be stringified. - - if (rep && typeof rep === 'object') { - length = rep.length; - for (i = 0; i < length; i += 1) { - if (typeof rep[i] === 'string') { - k = rep[i]; - v = str(k, value); - if (v) { - partial.push(quote(k) + (gap ? ': ' : ':') + v); - } - } - } - } else { - -// Otherwise, iterate through all of the keys in the object. - - for (k in value) { - if (Object.prototype.hasOwnProperty.call(value, k)) { - v = str(k, value); - if (v) { - partial.push(quote(k) + (gap ? ': ' : ':') + v); - } - } - } - } - -// Join all of the member texts together, separated with commas, -// and wrap them in braces. - - v = partial.length === 0 - ? '{}' - : gap - ? '{\n' + gap + partial.join(',\n' + gap) + '\n' + mind + '}' - : '{' + partial.join(',') + '}'; - gap = mind; - return v; - } - } - -// If the JSON object does not yet have a stringify method, give it one. - - if (typeof JSON.stringify !== 'function') { - JSON.stringify = function (value, replacer, space) { - -// The stringify method takes a value and an optional replacer, and an optional -// space parameter, and returns a JSON text. The replacer can be a function -// that can replace values, or an array of strings that will select the keys. -// A default replacer method can be provided. Use of the space parameter can -// produce text that is more easily readable. - - var i; - gap = ''; - indent = ''; - -// If the space parameter is a number, make an indent string containing that -// many spaces. - - if (typeof space === 'number') { - for (i = 0; i < space; i += 1) { - indent += ' '; - } - -// If the space parameter is a string, it will be used as the indent string. - - } else if (typeof space === 'string') { - indent = space; - } - -// If there is a replacer, it must be a function or an array. -// Otherwise, throw an error. - - rep = replacer; - if (replacer && typeof replacer !== 'function' && - (typeof replacer !== 'object' || - typeof replacer.length !== 'number')) { - throw new Error('JSON.stringify'); - } - -// Make a fake root object containing our value under the key of ''. -// Return the result of stringifying the value. - - return str('', {'': value}); - }; - } - - -// If the JSON object does not yet have a parse method, give it one. - - if (typeof JSON.parse !== 'function') { - JSON.parse = function (text, reviver) { - -// The parse method takes a text and an optional reviver function, and returns -// a JavaScript value if the text is a valid JSON text. - - var j; - - function walk(holder, key) { - -// The walk method is used to recursively walk the resulting structure so -// that modifications can be made. - - var k, v, value = holder[key]; - if (value && typeof value === 'object') { - for (k in value) { - if (Object.prototype.hasOwnProperty.call(value, k)) { - v = walk(value, k); - if (v !== undefined) { - value[k] = v; - } else { - delete value[k]; - } - } - } - } - return reviver.call(holder, key, value); - } - - -// Parsing happens in four stages. In the first stage, we replace certain -// Unicode characters with escape sequences. JavaScript handles many characters -// incorrectly, either silently deleting them, or treating them as line endings. - - text = String(text); - cx.lastIndex = 0; - if (cx.test(text)) { - text = text.replace(cx, function (a) { - return '\\u' + - ('0000' + a.charCodeAt(0).toString(16)).slice(-4); - }); - } - -// In the second stage, we run the text against regular expressions that look -// for non-JSON patterns. We are especially concerned with '()' and 'new' -// because they can cause invocation, and '=' because it can cause mutation. -// But just to be safe, we want to reject all unexpected forms. - -// We split the second stage into 4 regexp operations in order to work around -// crippling inefficiencies in IE's and Safari's regexp engines. First we -// replace the JSON backslash pairs with '@' (a non-JSON character). Second, we -// replace all simple value tokens with ']' characters. Third, we delete all -// open brackets that follow a colon or comma or that begin the text. Finally, -// we look to see that the remaining characters are only whitespace or ']' or -// ',' or ':' or '{' or '}'. If that is so, then the text is safe for eval. - - if (/^[\],:{}\s]*$/ - .test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@') - .replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']') - .replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) { - -// In the third stage we use the eval function to compile the text into a -// JavaScript structure. The '{' operator is subject to a syntactic ambiguity -// in JavaScript: it can begin a block or an object literal. We wrap the text -// in parens to eliminate the ambiguity. - - j = eval('(' + text + ')'); - -// In the optional fourth stage, we recursively walk the new structure, passing -// each name/value pair to a reviver function for possible transformation. - - return typeof reviver === 'function' - ? walk({'': j}, '') - : j; - } - -// If the text is not JSON parseable, then a SyntaxError is thrown. - - throw new SyntaxError('JSON.parse'); - }; - } -}()); diff --git a/portal-common/src/main/webapp/common/js/login.js b/portal-common/src/main/webapp/common/js/login.js deleted file mode 100644 index def0c456..00000000 --- a/portal-common/src/main/webapp/common/js/login.js +++ /dev/null @@ -1,158 +0,0 @@ -/* - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -String.prototype.trim = function() { - return this.replace(/(^\s*)|(\s*$)/g, ""); -}; - -function loginSubmitHandler() { - var loginData = { - "userName": $("#openo_input_userName").val(), - "password": $("#openo_input_password").val() - } - - $.ajax({ - url : "/openoapi/auth/v1/tokens", - type : "POST", - contentType : 'application/json; charset=utf-8', - data : JSON.stringify(loginData) - }).done(function(data) { - var topURL = top.window.document.location.href; - if (topURL.indexOf("?service") != -1) { - top.window.document.location.href = decodeURIComponent(topURL.substring(topURL.indexOf("?service") + 9)); - } else { - top.window.document.location.href = "/openoui/common/default.html"; - } - store("loginUserName", $("#openo_input_userName").val()); - }).fail(function(data) { - var tipDivId = $("#loginConnError"); - if (data.status == 401) { - tipDivId = $("#nameOrpwdError"); - } - - tipDivId.addClass('alert-danger'); - if (tipDivId.attr("tipstatus") == "normal") { - tipDivId.show(); - } else if (tipDivId.attr("tipstatus") == "close") { - tipDivId.attr("tipstatus", "normal"); - } - }); - - saveUserInfo(); -}; - -var Login = function () { - var handleLogin = function() { - $('.login-form').validate({ - errorElement: 'span', //default input error message container - errorClass: 'help-block', // default input error message class - focusInvalid: false, // do not focus the last invalid input - rules: { - username: { - required: true - }, - password: { - required: false - }, - remember: { - required: false - } - }, - messages: { - username: { - required: $.i18n.prop('openo_input_userName').replace(/\"/g,'') - }, - password: { - required: $.i18n.prop('openo_input_password').replace(/\"/g,'') - } - }, - invalidHandler: function (event, validator) { - $('.alert-danger', $('.login-form')).show(); - }, - highlight: function (element) { - $(element).closest('.form-group').addClass('has-error'); // set error class to the control group - }, - success: function (label) { - label.closest('.form-group').removeClass('has-error'); - label.remove(); - }, - errorPlacement: function (error, element) { - error.insertAfter(element.closest('.input-icon')); - }, - submitHandler: loginSubmitHandler - }); - - $('.login-form input').keypress(function (e) { - $("#nameOrpwdError").hide(); - $("#loginConnError").hide(); - if (e.which == 13) { - if ($('.login-form').validate().form()) { - $('.login-form').submit(); - } - return false; - } - }); - } - - return { - //main function to initiate the module - init: function () { - handleLogin(); - $.backstretch([ - "image/integration/openo_bg_1.jpg", - "image/integration//openo_bg_2.jpg", - "image/integration//openo_bg_3.jpg" - ], { - fade: 500, - duration: 15000 - }); - } - }; -}(); - -$(document).ready(function() { - if (store("remember") == "true") { - $("input[name='remember']").attr("checked", "checked"); - $("#openo_input_userName").val(store("openo_input_userName")); - $("#openo_input_password").val(store("openo_input_password")); - } -}); - -function saveUserInfo() { - var rmbcheck = $("input[name='remember']"); - if (rmbcheck.attr("checked") == true || rmbcheck.is(':checked')) { - store("remember", "true"); - store("openo_input_userName", $("#openo_input_userName").val()); - store("openo_input_password", $("#openo_input_password").val()); - } else { - store.remove("remember"); - store.remove("openo_input_userName"); - store.remove("openo_input_password"); - } -} - -function logoutSubmit() { - $.ajax({ - url: "/openoapi/auth/v1/tokens" + "?=" + new Date().getTime(), - type: "DELETE", - contentType: "application/json", - dataType: "text", - success: function() { - top.window.location = "/openoui/common/login.html"; - }, - error: function() { - } - }) -} diff --git a/portal-common/src/main/webapp/common/js/mainpage/about.js b/portal-common/src/main/webapp/common/js/mainpage/about.js deleted file mode 100644 index 2202f6af..00000000 --- a/portal-common/src/main/webapp/common/js/mainpage/about.js +++ /dev/null @@ -1,142 +0,0 @@ -/* - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -var iniAboutInfo = function() { - - //转换colomn - - var divId = "ict_about_table_div"; - var tableId = "abouttable"; - var column = [ - {"mData": "name", name: $.i18n.prop('com_zte_ums_ict_about_ppu_field_name'), "sWidth": '20%'}, - {"mData": "version", name: $.i18n.prop('com_zte_ums_ict_about_ppu_field_version'), "sWidth": '25%'}, - {"mData": "describe", name: $.i18n.prop('com_zte_ums_ict_about_ppu_field_desc'), "sWidth": '25%'}, - {"mData": "time", name: $.i18n.prop('com_zte_ums_ict_about_ppu_field_time'), "sWidth": '30%'} - ]; - //先把原来的表格清空 - $('#' + divId).children().remove(); - var tableEleStr = '' - + '' - + '' - + '' - + '' - + '' - + '' - + '
    '; - $('#' + divId).append(tableEleStr); - var trEle = $('#' + tableId + ' > thead >tr'); - - for (var one in column) { - var th = '' + column[one].name + ''; - trEle.append(th); - } - var table = $("#" + tableId).dataTable({ - "bFilter": false,// 搜索栏 - "bPaginate":false, - "bInfo":false, - "bSort":false, - 'bAutoWidth':true - }); - $.ajax({ - type: "GET", - cache: false, - url: FrameConst.REST_GET_VERSIONINFO, - dataType: "json", - success: function (data) { - console.log(data); - //主版本号 - $(".ict_main_version").append('' + data.mainversion + ''); - //表格数据填充 - for( var i = 0 ; i < data.ppuinfo.length ; i++ ) { - var eachPPU = data.ppuinfo[i]; - $('#'+ tableId).dataTable().fnAddData([eachPPU.name ,eachPPU.version ,eachPPU.describe , eachPPU.time ]); - } - }, - error: function (xhr, ajaxOptions, thrownError) { - - } - }); -}; - -function internationalization(){ - var lang = getLanguage(); - //加载国际化 - jQuery.i18n.properties({ - language:lang, - name:'web-framework-mainPage-i18n', - path:'i18n/', // 资源文件路径 - mode:'map', // 用 Map 的方式使用资源文件中的值 - callback: function() {// 加载成功后设置显示内容 - var i18nItems = $('[name_i18n=com_zte_ums_ict_framework_ui_i18n]' , '.aboutDlg'); - for(var i=0;i0){ - getAboutDlg(url); - } -}; - -var ict_about_dlg_close = function(){ - link_click('about'); - console.log("about click close"); - $('#aboutDlg').modal('hide'); -}; -var link_click = function( pageName ){ - console.log("about click change"); - if(pageName === 'info'){ - $('.aboutmain').attr("style" , "display:none"); - $('.aboutinfo').attr("style" , "display:block"); - }else{ - $('.aboutmain').attr("style" , "display:block"); - $('.aboutinfo').attr("style" , "display:none"); - } -}; diff --git a/portal-common/src/main/webapp/common/js/mainpage/load_mainPage.js b/portal-common/src/main/webapp/common/js/mainpage/load_mainPage.js deleted file mode 100644 index 61dad58e..00000000 --- a/portal-common/src/main/webapp/common/js/mainpage/load_mainPage.js +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -var initMainPage = function() { - var modules; - var propertiesFilePath = "i18n/"; - var propertiesFileName = "web-framework-mainPage-i18n"; - var i18nName = "openo_main_page_i18n"; - - $.ajax({ - async : false, - "type" : "GET", - url : "json/main_page.json", - dataType : "json", - "success" : function (res, textStatus, jqXHR) { - modules = res.modules; - }, - error : function () { - } - }); - - var template = ""; - - var templatePic = "
    " + - "
    " + - "
    {cover}
    " + - "
    " + - "
    {contentTip}
    " + - "
    " + - "
    "; - - for (var i = 0; i < modules.length; ++i) { - var temp = ""; - if (modules[i].linkId) { - temp = template.replace("{linkId}", modules[i].linkId) - .replace("{image}", modules[i].background) - .replace("{toolsImage}", modules[i].toolsImage) - .replace("{url}", modules[i].url) - .replace("{contentTip}", modules[i].contentTip); - } else { - temp = templatePic.replace("{image}", modules[i].background) - .replace("{url}", modules[i].url) - .replace("{contentTip}", ""); - } - - if (modules[i].cover) { - temp = temp.replace("{cover}", ""); - } else { - temp = temp.replace("{cover}",""); - } - - $($(".column")[i % 4]).append(temp); - } - - $(function() { - $(".brick").mouseover(function() { - $(".contentTip", this).fadeTo(1000, 1); - $(".cover", this).fadeOut(1000); - }); - - $(".brick").mouseout(function() { - $(".contentTip", this).fadeTo(1000, 0); - $(".cover", this).fadeIn(1000); - }); - - $("a.entranceLink").click(function(e) { - e.preventDefault(); - if ($(this).attr("id") && $(this).attr("id") != "undefined") { - location.href = "default.html" + "#_" + $(this).attr("id"); - } - }); - - loadi18n_WebFramework(propertiesFileName, propertiesFilePath, i18nName); - }); -} \ No newline at end of file diff --git a/portal-common/src/main/webapp/common/js/moreOperation.js b/portal-common/src/main/webapp/common/js/moreOperation.js deleted file mode 100644 index 1f9121e1..00000000 --- a/portal-common/src/main/webapp/common/js/moreOperation.js +++ /dev/null @@ -1,166 +0,0 @@ -/* - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -var resetSelectedItem=function(menuAlink){ - if(menuAlink.children('div.boxOperation').length>0){ - $(".box.boxOperation", $(".carousel-inner")).removeClass("moreButtonSelected"); - menuAlink.children('div.boxOperation').addClass('moreButtonSelected'); - }else if(menuAlink.parents('div.boxOperation').length>0){ - $(".box.boxOperation", $(".carousel-inner")).removeClass("moreButtonSelected"); - menuAlink.parents('div.boxOperation').addClass('moreButtonSelected'); - } -} -var reSelected=function(){ - if(openoFrameWork){ - var menuID = openoFrameWork.getLocationHash(); - var menuAlink = $('#'+ menuID,$('#pageableDiv')); - if(menuAlink.length>0){ - resetSelectedItem(menuAlink); - }else{ - menuAlink = $('#'+ menuID,$('.hor-menu')); - if(!!menuAlink.attr("defaultchildmenuid")&&menuAlink.attr("defaultchildmenuid").length>0){ - menuAlink = $('#'+ menuAlink.attr("defaultchildmenuid"),$('#pageableDiv')); - if(menuAlink.length>0){ - resetSelectedItem(menuAlink); - } - } - } - } -} -var inter=null; - -var clearMoreOperations=function(){ - $('#pageableDiv').removeClass("moreOpen"); - $('#pageableDiv').addClass("moreClose"); - $('.col-xs-12',$('#pageableDiv')).removeClass("moreOpen"); - $('.col-xs-12',$('#pageableDiv')).addClass("moreClose"); - $(".carousel-inner").children().remove(); - if (inter) { - clearInterval(inter); - }; -} - -var moreOperations = function(html){ - $('#pageableDiv').removeClass("moreClose"); - $('#pageableDiv').addClass("moreOpen"); - $('.col-xs-12',$('#pageableDiv')).removeClass("moreClose"); - $('.col-xs-12',$('#pageableDiv')).addClass("moreOpen"); - showArrow(); - $(".carousel-inner").children().remove(); - inter=setInterval(reSelected, 200); - var moreViewData=[]; - var div = document.createElement('div'); - //div.innerHTML = html; - $(div).append(html); - var liTages =$("ul:first",div).children(); //div.getElementsByTagName('li') - for(var i=0;i"; - }else{ - var aLinkTag = $("a", liTages[i]); - aLink.id = aLinkTag.attr("id"); - var aLinkContent = aLinkTag.html(); - aLinkTag.empty().html('
    '); - $(".box", aLinkTag).html(aLinkContent); - aLink.html = aLinkTag.prop("outerHTML"); - } - moreViewData.push(aLink); - } - } - - var transformQueryViewData = function(queryViewData, pageSize){ - var newData = []; - var pageNo = Math.floor(queryViewData.length / pageSize) + 1; - if(queryViewData.length % pageSize == 0){ - pageNo--; - } - for(var i=0;i' + - '
    ' + - "
    " + - ""; - $(".carousel-inner").append(itemHtml); - } - for(var i=0;i'; - $(".col-xs-12", $("#page_" + i + ".item")).append(buttonHtml); - } - } - } - - //moreOperationItems = transformQueryViewData(moreViewData, 14); - - var moreOperationPageSize = 14; - var windowWidth = $(window).width(); - if(windowWidth >= 1367 && windowWidth < 1441){ - moreOperationPageSize = 12; - }else if(windowWidth >= 1281 && windowWidth < 1367){ - moreOperationPageSize = 11; - }else if(windowWidth >= 1025 && windowWidth < 1281){ - moreOperationPageSize = 10; - }else if(windowWidth >= 920 && windowWidth < 1281){ - moreOperationPageSize = 9; - }else if(windowWidth >= 820 && windowWidth < 920){ - moreOperationPageSize = 8; - }else if(windowWidth >= 680 && windowWidth < 820){ - moreOperationPageSize = 7; - }else if(windowWidth >= 540 && windowWidth < 680){ - moreOperationPageSize = 4; - }else if(windowWidth >= 390 && windowWidth < 540){ - moreOperationPageSize = 3; - }else if(windowWidth < 390){ - moreOperationPageSize = 2; - } - - moreOperationItems = transformQueryViewData(moreViewData, moreOperationPageSize); - generateOperationItems(); - - $(".box.boxOperation").click(function(){ - $(".box.boxOperation", $(".carousel-inner")).removeClass("moreButtonSelected"); - $(this).addClass("moreButtonSelected"); - }); - - $($(".item", $(".carousel-inner"))[0]).addClass("active"); - - if($(".item.moreButtonsTag").length < 2){ - hideArrow(); - } -} - -var showArrow = function(){ - $(".carousel-control").show(); - $(".boxOperation").removeClass("boxOperationOnePage"); -} - -var hideArrow = function(){ - $(".carousel-control").hide(); - $(".boxOperation").addClass("boxOperationOnePage"); -} diff --git a/portal-common/src/main/webapp/common/js/openotopo/openotopo.js b/portal-common/src/main/webapp/common/js/openotopo/openotopo.js deleted file mode 100644 index a6735e72..00000000 --- a/portal-common/src/main/webapp/common/js/openotopo/openotopo.js +++ /dev/null @@ -1,314 +0,0 @@ -/* - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -function oTopo() { - - var topo; - - /** - * - * @param id: The id of DIV which display topological graph. - * @param settings: Init parameters . - * @see [] - */ - this.canvas = function (id, settings) - { - var g = - { - nodes : [],// nodes - edges : [] // links - }; - - topo = new sigma( - { - graph : g, - renderer : - { - // IMPORTANT: - // This works only with the canvas renderer, so the - // renderer type set as "canvas" is necessary here. - container : document.getElementById(id), - type : 'canvas' - }, - settings : settings - }); - - CustomShapes.init(topo); - }; - - - /** - * - * @see [] - */ - this.refresh = function() - { - topo.refresh(); - }; - - - /** - * - * @param id: The id of node. - * @see [] - */ - this.Node = function(id) - { - var pr = this; - this.id = id, - this.label = "", - this.type = "square",/**equilateral,star,square,diamond,circle,cross**/ - this.x = 1, - this.y = 1, - this.size = 10, - this.image = {}; - this.color = "transparent", - this.borderColor = "#1E90FF", - - this.setName = function(v) - { - pr.label = v; - }; - - this.setType = function(v) - { - pr.type = v; - }; - - this.setSize = function(v) - { - pr.size = v; - }; - - this.setImg = function(url) - { - pr.image = - { - url : url, - // scale/clip are ratio values applied on top of 'size' - scale : 1, - clip : 0, - }; - pr.borderColor = "transparent"; - pr.color = "transparent"; - }; - - this.setImgScale = function(s) - { - pr.image.scale = s; - }; - - this.setImgClip = function(c) - { - pr.image.clip = c; - }; - - this.setColor = function(v) - { - pr.color = v; - }; - - this.setBorderColor = function(v) - { - pr.borderColor = v; - }; - - this.setLocation = function(x,y) - { - pr.x = x; - pr.y = y; - }; - - this.setProperty = function(k,v) - { - pr[k] = v; - }; - }; - - /** - * - * @param id: The id of link. - * @see [] - */ - this.Link = function(id) - { - var pr = this; - this.id = id, - this.type = "arrow",/*'line','curve','arrow','curvedArrow','dashed','dotted','parallel','tapered'*/ - this.source = 1, - this.target = 1, - this.size = Math.random(), - this.color = "#1E90FF", - - this.setType = function(v) - { - pr.type = v; - }; - - this.setSize = function(v) - { - pr.size = v; - }; - - this.setConnect = function(s,t) - { - pr.source = s; - pr.target = t; - }; - - this.setColor = function(v) - { - pr.color = v; - }; - - this.setProperty = function(k,v) - { - pr[k] = v; - }; - }; - - /** - * - * @param v: Node object. - * @see [] - */ - this.addNode = function(v) - { - topo.graph.addNode(v); - }; - - /** - * - * @param id: The id of node. - * @see [] - */ - this.dropNode = function(id) - { - topo.graph.dropNode(id); - }; - - - /** - * - * @param v: Link object. - * @see [] - */ - this.addLink = function(v) - { - topo.graph.addEdge(v); - }; - - /** - * - * @param id: The id of link. - * @see [] - */ - this.dropLink = function(id) - { - topo.graph.dropEdge(id); - }; - - /** - * - * @see [] - */ - this.allNodes = function() - { - return topo.graph.nodes(); - }; - - /** - * Define drag and drop object. - */ - var dragListener = null; - - /** - * - * @param b: The node can be dragged and dropped when the parameter is TRUE.Set after canvas init. - * @see [] - */ - this.setDrag = function(b) - { - if (b) - { - dragListener = sigma.plugins.dragNodes(topo, topo.renderers[0]); - } - }; - - /** - * - * @param method: The binding method include:startdrag,drag,drop,dragend. - * @param e: Callback method. - * @see [] - */ - var dragBind = function(method,e) - { - if (null != dragListener) - { - dragListener.bind(method, function(event){ - e(event); - }); - } - }; - - - /** - * - * @param method: The binding method include:rightClick,clickStage,doubleClickStage,rightClickStage,clickNode,clickNodes,clickEdge, - * clickEdges,doubleClickNode,doubleClickNodes,doubleClickEdge,doubleClickEdges,rightClickNode, - * rightClickNodes,rightClickEdge,rightClickEdges,overNode,overNodes,overEdge,overEdges,outNode, - * outNodes,outEdge,outEdges,downNode,downNodes,downEdge,downEdges,upNode,upNodes,upEdge,upEdges - * @param e Callback method. - * @see [] - */ - this.mouseBind = function(method,e) - { - if (null != topo) - { - topo.bind(method, function(event){ - e(event); - }); - } - }; - - - /** - * - * @param obj: The object to be disabled. - * @see [] - */ - this.noright = function(obj) { - if (obj) { - obj.oncontextmenu = function() { - return false; - } - obj.ondragstart = function() { - return false; - } - obj.onselectstart = function() { - return false; - } - obj.onselect = function() { - obj.selection.empty(); - } - obj.oncopy = function() { - obj.selection.empty(); - } - obj.onbeforecopy = function() { - return false; - } - } - } -} diff --git a/portal-common/src/main/webapp/common/js/openotopo/openotopo.min.js b/portal-common/src/main/webapp/common/js/openotopo/openotopo.min.js deleted file mode 100644 index 3ad313a1..00000000 --- a/portal-common/src/main/webapp/common/js/openotopo/openotopo.min.js +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -(function(a){"use strict";var b={},c=function(a){var d,e,f,g,h;c.classes.dispatcher.extend(this);var i=this,j=a||{};if("string"==typeof j||j instanceof HTMLElement?j={renderers:[j]}:"[object Array]"===Object.prototype.toString.call(j)&&(j={renderers:j}),g=j.renderers||j.renderer||j.container,j.renderers&&0!==j.renderers.length||("string"==typeof g||g instanceof HTMLElement||"object"==typeof g&&"container"in g)&&(j.renderers=[g]),j.id){if(b[j.id])throw'sigma: Instance "'+j.id+'" already exists.';Object.defineProperty(this,"id",{value:j.id})}else{for(h=0;b[h];)h++;Object.defineProperty(this,"id",{value:""+h})}for(b[this.id]=this,this.settings=new c.classes.configurable(c.settings,j.settings||{}),Object.defineProperty(this,"graph",{value:new c.classes.graph(this.settings),configurable:!0}),Object.defineProperty(this,"middlewares",{value:[],configurable:!0}),Object.defineProperty(this,"cameras",{value:{},configurable:!0}),Object.defineProperty(this,"renderers",{value:{},configurable:!0}),Object.defineProperty(this,"renderersPerCamera",{value:{},configurable:!0}),Object.defineProperty(this,"cameraFrames",{value:{},configurable:!0}),Object.defineProperty(this,"camera",{get:function(){return this.cameras[0]}}),Object.defineProperty(this,"events",{value:["click","rightClick","clickStage","doubleClickStage","rightClickStage","clickNode","clickNodes","doubleClickNode","doubleClickNodes","rightClickNode","rightClickNodes","overNode","overNodes","outNode","outNodes","downNode","downNodes","upNode","upNodes"],configurable:!0}),this._handler=function(a){var b,c={};for(b in a.data)c[b]=a.data[b];c.renderer=a.target,this.dispatchEvent(a.type,c)}.bind(this),f=j.renderers||[],d=0,e=f.length;e>d;d++)this.addRenderer(f[d]);for(f=j.middlewares||[],d=0,e=f.length;e>d;d++)this.middlewares.push("string"==typeof f[d]?c.middlewares[f[d]]:f[d]);"object"==typeof j.graph&&j.graph&&(this.graph.read(j.graph),this.refresh()),window.addEventListener("resize",function(){i.settings&&i.refresh()})};if(c.prototype.addCamera=function(b){var d,e=this;if(!arguments.length){for(b=0;this.cameras[""+b];)b++;b=""+b}if(this.cameras[b])throw'sigma.addCamera: The camera "'+b+'" already exists.';return d=new c.classes.camera(b,this.graph,this.settings),this.cameras[b]=d,d.quadtree=new c.classes.quad,c.classes.edgequad!==a&&(d.edgequadtree=new c.classes.edgequad),d.bind("coordinatesUpdated",function(a){e.renderCamera(d,d.isAnimated)}),this.renderersPerCamera[b]=[],d},c.prototype.killCamera=function(a){if(a="string"==typeof a?this.cameras[a]:a,!a)throw"sigma.killCamera: The camera is undefined.";var b,c,d=this.renderersPerCamera[a.id];for(c=d.length,b=c-1;b>=0;b--)this.killRenderer(d[b]);return delete this.renderersPerCamera[a.id],delete this.cameraFrames[a.id],delete this.cameras[a.id],a.kill&&a.kill(),this},c.prototype.addRenderer=function(a){var b,d,e,f,g=a||{};if("string"==typeof g?g={container:document.getElementById(g)}:g instanceof HTMLElement&&(g={container:g}),"string"==typeof g.container&&(g.container=document.getElementById(g.container)),"id"in g)b=g.id;else{for(b=0;this.renderers[""+b];)b++;b=""+b}if(this.renderers[b])throw'sigma.addRenderer: The renderer "'+b+'" already exists.';if(d="function"==typeof g.type?g.type:c.renderers[g.type],d=d||c.renderers.def,e="camera"in g?g.camera instanceof c.classes.camera?g.camera:this.cameras[g.camera]||this.addCamera(g.camera):this.addCamera(),this.cameras[e.id]!==e)throw"sigma.addRenderer: The camera is not properly referenced.";return f=new d(this.graph,e,this.settings,g),this.renderers[b]=f,Object.defineProperty(f,"id",{value:b}),f.bind&&f.bind(["click","rightClick","clickStage","doubleClickStage","rightClickStage","clickNode","clickNodes","clickEdge","clickEdges","doubleClickNode","doubleClickNodes","doubleClickEdge","doubleClickEdges","rightClickNode","rightClickNodes","rightClickEdge","rightClickEdges","overNode","overNodes","overEdge","overEdges","outNode","outNodes","outEdge","outEdges","downNode","downNodes","downEdge","downEdges","upNode","upNodes","upEdge","upEdges"],this._handler),this.renderersPerCamera[e.id].push(f),f},c.prototype.killRenderer=function(a){if(a="string"==typeof a?this.renderers[a]:a,!a)throw"sigma.killRenderer: The renderer is undefined.";var b=this.renderersPerCamera[a.camera.id],c=b.indexOf(a);return c>=0&&b.splice(c,1),a.kill&&a.kill(),delete this.renderers[a.id],this},c.prototype.refresh=function(b){var d,e,f,g,h,i,j=0;for(b=b||{},g=this.middlewares||[],d=0,e=g.length;e>d;d++)g[d].call(this,0===d?"":"tmp"+j+":",d===e-1?"ready:":"tmp"+ ++j+":");for(f in this.cameras)h=this.cameras[f],h.settings("autoRescale")&&this.renderersPerCamera[h.id]&&this.renderersPerCamera[h.id].length?c.middlewares.rescale.call(this,g.length?"ready:":"",h.readPrefix,{width:this.renderersPerCamera[h.id][0].width,height:this.renderersPerCamera[h.id][0].height}):c.middlewares.copy.call(this,g.length?"ready:":"",h.readPrefix),b.skipIndexation||(i=c.utils.getBoundaries(this.graph,h.readPrefix),h.quadtree.index(this.graph.nodes(),{prefix:h.readPrefix,bounds:{x:i.minX,y:i.minY,width:i.maxX-i.minX,height:i.maxY-i.minY}}),h.edgequadtree!==a&&h.settings("drawEdges")&&h.settings("enableEdgeHovering")&&h.edgequadtree.index(this.graph,{prefix:h.readPrefix,bounds:{x:i.minX,y:i.minY,width:i.maxX-i.minX,height:i.maxY-i.minY}}));for(g=Object.keys(this.renderers),d=0,e=g.length;e>d;d++)if(this.renderers[g[d]].process)if(this.settings("skipErrors"))try{this.renderers[g[d]].process()}catch(k){console.log('Warning: The renderer "'+g[d]+'" crashed on ".process()"')}else this.renderers[g[d]].process();return this.render(),this},c.prototype.render=function(){var a,b,c;for(c=Object.keys(this.renderers),a=0,b=c.length;b>a;a++)if(this.settings("skipErrors"))try{this.renderers[c[a]].render()}catch(d){this.settings("verbose")&&console.log('Warning: The renderer "'+c[a]+'" crashed on ".render()"')}else this.renderers[c[a]].render();return this},c.prototype.renderCamera=function(a,b){var c,d,e,f=this;if(b)for(e=this.renderersPerCamera[a.id],c=0,d=e.length;d>c;c++)if(this.settings("skipErrors"))try{e[c].render()}catch(g){this.settings("verbose")&&console.log('Warning: The renderer "'+e[c].id+'" crashed on ".render()"')}else e[c].render();else if(!this.cameraFrames[a.id]){for(e=this.renderersPerCamera[a.id],c=0,d=e.length;d>c;c++)if(this.settings("skipErrors"))try{e[c].render()}catch(g){this.settings("verbose")&&console.log('Warning: The renderer "'+e[c].id+'" crashed on ".render()"')}else e[c].render();this.cameraFrames[a.id]=requestAnimationFrame(function(){delete f.cameraFrames[a.id]})}return this},c.prototype.kill=function(){var a;this.dispatchEvent("kill"),this.graph.kill(),delete this.middlewares;for(a in this.renderers)this.killRenderer(this.renderers[a]);for(a in this.cameras)this.killCamera(this.cameras[a]);delete this.renderers,delete this.cameras;for(a in this)this.hasOwnProperty(a)&&delete this[a];delete b[this.id]},c.instances=function(a){return arguments.length?b[a]:c.utils.extend({},b)},c.version="1.0.3","undefined"!=typeof this.sigma)throw"An object called sigma is already in the global scope.";this.sigma=c}).call(this),function(a){"use strict";function b(a,c){var d,e,f,g;if(arguments.length)if(1===arguments.length&&Object(arguments[0])===arguments[0])for(a in arguments[0])b(a,arguments[0][a]);else if(arguments.length>1)for(g=Array.isArray(a)?a:a.split(/ /),d=0,e=g.length;d!==e;d+=1)f=g[d],C[f]||(C[f]=[]),C[f].push({handler:c})}function c(a,b){var c,d,e,f,g,h,i=Array.isArray(a)?a:a.split(/ /);if(arguments.length)if(b)for(c=0,d=i.length;c!==d;c+=1){if(h=i[c],C[h]){for(g=[],e=0,f=C[h].length;e!==f;e+=1)C[h][e].handler!==b&&g.push(C[h][e]);C[h]=g}C[h]&&0===C[h].length&&delete C[h]}else for(c=0,d=i.length;c!==d;c+=1)delete C[i[c]];else C=Object.create(null)}function d(a,b){var c,d,e,f,g,h,i=Array.isArray(a)?a:a.split(/ /);for(b=void 0===b?{}:b,c=0,e=i.length;c!==e;c+=1)if(h=i[c],C[h])for(g={type:h,data:b||{}},d=0,f=C[h].length;d!==f;d+=1)try{C[h][d].handler(g)}catch(j){}}function e(){var a,b,c,d,e=!1,f=s(),g=x.shift();if(c=g.job(),f=s()-f,g.done++,g.time+=f,g.currentTime+=f,g.weightTime=g.currentTime/(g.weight||1),g.averageTime=g.time/g.done,d=g.count?g.count<=g.done:!c,!d){for(a=0,b=x.length;b>a;a++)if(x[a].weightTime>g.weightTime){x.splice(a,0,g),e=!0;break}e||x.push(g)}return d?g:null}function f(a){var b=x.length;w[a.id]=a,a.status="running",b&&(a.weightTime=x[b-1].weightTime,a.currentTime=a.weightTime*(a.weight||1)),a.startTime=s(),d("jobStarted",q(a)),x.push(a)}function g(){var a,b,c;for(a in v)b=v[a],b.after?y[a]=b:f(b),delete v[a];for(u=!!x.length;x.length&&s()-tc;c++)h(a[c].id,p(a[c],b));A=!1,u||(t=s(),d("start"),g())}else if("object"==typeof a)if("string"==typeof a.id)h(a.id,a);else{A=!0;for(c in a)"function"==typeof a[c]?h(c,p({job:a[c]},b)):h(c,p(a[c],b));A=!1,u||(t=s(),d("start"),g())}else{if("string"!=typeof a)throw new Error("[conrad.addJob] Wrong arguments.");if(k(a))throw new Error('[conrad.addJob] Job with id "'+a+'" already exists.');if("function"==typeof b)f={id:a,done:0,time:0,status:"waiting",currentTime:0,averageTime:0,weightTime:0,job:b};else{if("object"!=typeof b)throw new Error("[conrad.addJob] Wrong arguments.");f=p({id:a,done:0,time:0,status:"waiting",currentTime:0,averageTime:0,weightTime:0},b)}v[a]=f,d("jobAdded",q(f)),u||A||(t=s(),d("start"),g())}return this}function i(a){var b,c,e,f,g=!1;if(Array.isArray(a))for(b=0,c=a.length;c>b;b++)i(a[b]);else{if("string"!=typeof a)throw new Error("[conrad.killJob] Wrong arguments.");for(e=[w,y,v],b=0,c=e.length;c>b;b++)a in e[b]&&(f=e[b][a],B.history&&(f.status="done",z.push(f)),d("jobEnded",q(f)),delete e[b][a],"function"==typeof f.end&&f.end(),g=!0);for(e=x,b=0,c=e.length;c>b;b++)if(e[b].id===a){e.splice(b,1);break}if(!g)throw new Error('[conrad.killJob] Job "'+a+'" not found.')}return this}function j(){var a,b=p(v,w,y);if(B.history)for(a in b)b[a].status="done",z.push(b[a]),"function"==typeof b[a].end&&b[a].end();return v={},y={},w={},x=[],u=!1,this}function k(a){var b=v[a]||w[a]||y[a];return b?p(b):null}function l(a,b){var c;if("string"==typeof a1&&1===arguments.length)return B[a1];c="object"==typeof a1&&1===arguments.length?a1||{}:{},"string"==typeof a1&&(c[a1]=a2);for(var d in c)void 0!==c[d]?B[d]=c[d]:delete B[d];return this}function m(){return u}function n(){return z=[],this}function o(a,b){var c,d,e,f,g,h,i;if(!arguments.length){g=[];for(d in v)g.push(v[d]);for(d in y)g.push(y[d]);for(d in w)g.push(w[d]);g=g.concat(z)}if("string"==typeof a)switch(a){case"waiting":g=r(y);break;case"running":g=r(w);break;case"done":g=z;break;default:h=a}if(a instanceof RegExp&&(h=a),!h&&("string"==typeof b||b instanceof RegExp)&&(h=b),h){if(i="string"==typeof h,g instanceof Array)c=g;else if("object"==typeof g){c=[];for(d in g)c=c.concat(g[d])}else{c=[];for(d in v)c.push(v[d]);for(d in y)c.push(y[d]);for(d in w)c.push(w[d]);c=c.concat(z)}for(g=[],e=0,f=c.length;f>e;e++)(i?c[e].id===h:c[e].id.match(h))&&g.push(c[e])}return q(g)}function p(){var a,b,c={},d=arguments.length;for(a=d-1;a>=0;a--)for(b in arguments[a])c[b]=arguments[a][b];return c}function q(a){var b,c,d;if(!a)return a;if(Array.isArray(a))for(b=[],c=0,d=a.length;d>c;c++)b.push(q(a[c]));else if("object"==typeof a){b={};for(c in a)b[c]=q(a[c])}else b=a;return b}function r(a){var b,c=[];for(b in a)c.push(a[b]);return c}function s(){return Date.now?Date.now():(new Date).getTime()}if(a.conrad)throw new Error("conrad already exists");var t,u=!1,v={},w={},x=[],y={},z=[],A=!1,B={frameDuration:20,history:!0},C=Object.create(null);Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});var D={hasJob:k,addJob:h,killJob:i,killAll:j,settings:l,getStats:o,isRunning:m,clearHistory:n,bind:b,unbind:c,version:"0.1.0"};"undefined"!=typeof exports&&("undefined"!=typeof module&&module.exports&&(exports=module.exports=D),exports.conrad=D),a.conrad=D}(this),function(a){"use strict";if("undefined"==typeof sigma)throw"sigma is not declared";var b=this;sigma.utils=sigma.utils||{},sigma.utils.extend=function(){var a,b,c={},d=arguments.length;for(a=d-1;a>=0;a--)for(b in arguments[a])c[b]=arguments[a][b];return c},sigma.utils.dateNow=function(){return Date.now?Date.now():(new Date).getTime()},sigma.utils.pkg=function(a){return(a||"").split(".").reduce(function(a,b){return b in a?a[b]:a[b]={}},b)},sigma.utils.id=function(){var a=0;return function(){return++a}}(),sigma.utils.floatColor=function(a){var b=[0,0,0];return a.match(/^#/)?(a=(a||"").replace(/^#/,""),b=3===a.length?[parseInt(a.charAt(0)+a.charAt(0),16),parseInt(a.charAt(1)+a.charAt(1),16),parseInt(a.charAt(2)+a.charAt(2),16)]:[parseInt(a.charAt(0)+a.charAt(1),16),parseInt(a.charAt(2)+a.charAt(3),16),parseInt(a.charAt(4)+a.charAt(5),16)]):a.match(/^ *rgba? *\(/)&&(a=a.match(/^ *rgba? *\( *([0-9]*) *, *([0-9]*) *, *([0-9]*) *(,.*)?\) *$/),b=[+a[1],+a[2],+a[3]]),256*b[0]*256+256*b[1]+b[2]},sigma.utils.zoomTo=function(a,b,c,d,e){var f,g,h,i=a.settings;g=Math.max(i("zoomMin"),Math.min(i("zoomMax"),a.ratio*d)),g!==a.ratio&&(d=g/a.ratio,h={x:b*(1-d)+a.x,y:c*(1-d)+a.y,ratio:g},e&&e.duration?(f=sigma.misc.animation.killAll(a),e=sigma.utils.extend(e,{easing:f?"quadraticOut":"quadraticInOut"}),sigma.misc.animation.camera(a,h,e)):(a.goTo(h),e&&e.onComplete&&e.onComplete()))},sigma.utils.getQuadraticControlPoint=function(a,b,c,d){return{x:(a+c)/2+(d-b)/4,y:(b+d)/2+(a-c)/4}},sigma.utils.getPointOnQuadraticCurve=function(a,b,c,d,e,f,g){return{x:Math.pow(1-a,2)*b+2*(1-a)*a*f+Math.pow(a,2)*d,y:Math.pow(1-a,2)*c+2*(1-a)*a*g+Math.pow(a,2)*e}},sigma.utils.getPointOnBezierCurve=function(a,b,c,d,e,f,g,h,i){var j=Math.pow(1-a,3),k=3*a*Math.pow(1-a,2),l=3*Math.pow(a,2)*(1-a),m=Math.pow(a,3);return{x:j*b+k*f+l*h+m*d,y:j*c+k*g+l*i+m*e}},sigma.utils.getSelfLoopControlPoints=function(a,b,c){return{x1:a-7*c,y1:b,x2:a,y2:b+7*c}},sigma.utils.getDistance=function(a,b,c,d){return Math.sqrt(Math.pow(c-a,2)+Math.pow(d-b,2))},sigma.utils.getCircleIntersection=function(a,b,c,d,e,f){var g,h,i,j,k,l,m,n,o;if(h=d-a,i=e-b,j=Math.sqrt(i*i+h*h),j>c+f)return!1;if(jj&&Math.min(c,e)<=a&&a<=Math.max(c,e)&&Math.min(d,f)<=b&&b<=Math.max(d,f)},sigma.utils.isPointOnQuadraticCurve=function(a,b,c,d,e,f,g,h,i){var j=sigma.utils.getDistance(c,d,e,f);if(Math.abs(a-c)>j||Math.abs(b-d)>j)return!1;for(var k,l=sigma.utils.getDistance(a,b,c,d),m=sigma.utils.getDistance(a,b,e,f),n=.5,o=m>l?-.01:.01,p=.001,q=100,r=sigma.utils.getPointOnQuadraticCurve(n,c,d,e,f,g,h),s=sigma.utils.getDistance(a,b,r.x,r.y);q-- >0&&n>=0&&1>=n&&s>i&&(o>p||-p>o);)k=s,r=sigma.utils.getPointOnQuadraticCurve(n,c,d,e,f,g,h),s=sigma.utils.getDistance(a,b,r.x,r.y),s>k?(o=-o/2,n+=o):0>n+o||n+o>1?(o/=2,s=k):n+=o;return i>s},sigma.utils.isPointOnBezierCurve=function(a,b,c,d,e,f,g,h,i,j,k){var l=sigma.utils.getDistance(c,d,g,h);if(Math.abs(a-c)>l||Math.abs(b-d)>l)return!1;for(var m,n=sigma.utils.getDistance(a,b,c,d),o=sigma.utils.getDistance(a,b,e,f),p=.5,q=o>n?-.01:.01,r=.001,s=100,t=sigma.utils.getPointOnBezierCurve(p,c,d,e,f,g,h,i,j),u=sigma.utils.getDistance(a,b,t.x,t.y);s-- >0&&p>=0&&1>=p&&u>k&&(q>r||-r>q);)m=u,t=sigma.utils.getPointOnBezierCurve(p,c,d,e,f,g,h,i,j),u=sigma.utils.getDistance(a,b,t.x,t.y),u>m?(q=-q/2,p+=q):0>p+q||p+q>1?(q/=2,u=m):p+=q;return k>u},sigma.utils.getX=function(b){return b.offsetX!==a&&b.offsetX||b.layerX!==a&&b.layerX||b.clientX!==a&&b.clientX},sigma.utils.getY=function(b){return b.offsetY!==a&&b.offsetY||b.layerY!==a&&b.layerY||b.clientY!==a&&b.clientY},sigma.utils.getWidth=function(b){var c=b.target.ownerSVGElement?b.target.ownerSVGElement.width:b.target.width;return"number"==typeof c&&c||c!==a&&c.baseVal!==a&&c.baseVal.value},sigma.utils.getHeight=function(b){var c=b.target.ownerSVGElement?b.target.ownerSVGElement.height:b.target.height;return"number"==typeof c&&c||c!==a&&c.baseVal!==a&&c.baseVal.value},sigma.utils.getDelta=function(b){return b.wheelDelta!==a&&b.wheelDelta||b.detail!==a&&-b.detail},sigma.utils.getOffset=function(a){for(var b=0,c=0;a;)c+=parseInt(a.offsetTop),b+=parseInt(a.offsetLeft),a=a.offsetParent;return{top:c,left:b}},sigma.utils.doubleClick=function(a,b,c){var d,e=0;a._doubleClickHandler=a._doubleClickHandler||{},a._doubleClickHandler[b]=a._doubleClickHandler[b]||[],d=a._doubleClickHandler[b],d.push(function(a){return e++,2===e?(e=0,c(a)):void(1===e&&setTimeout(function(){e=0},sigma.settings.doubleClickTimeout))}),a.addEventListener(b,d[d.length-1],!1)},sigma.utils.unbindDoubleClick=function(a,b){for(var c,d=(a._doubleClickHandler||{})[b]||[];c=d.pop();)a.removeEventListener(b,c);delete(a._doubleClickHandler||{})[b]},sigma.utils.easings=sigma.utils.easings||{},sigma.utils.easings.linearNone=function(a){return a},sigma.utils.easings.quadraticIn=function(a){return a*a},sigma.utils.easings.quadraticOut=function(a){return a*(2-a)},sigma.utils.easings.quadraticInOut=function(a){return(a*=2)<1?.5*a*a:-.5*(--a*(a-2)-1)},sigma.utils.easings.cubicIn=function(a){return a*a*a},sigma.utils.easings.cubicOut=function(a){return--a*a*a+1},sigma.utils.easings.cubicInOut=function(a){return(a*=2)<1?.5*a*a*a:.5*((a-=2)*a*a+2)},sigma.utils.loadShader=function(a,b,c,d){var e,f=a.createShader(c);return a.shaderSource(f,b),a.compileShader(f),e=a.getShaderParameter(f,a.COMPILE_STATUS),e?f:(d&&d('Error compiling shader "'+f+'":'+a.getShaderInfoLog(f)),a.deleteShader(f),null)},sigma.utils.loadProgram=function(a,b,c,d,e){var f,g,h=a.createProgram();for(f=0;fg;g++)d[i[g]]=c[i[g]];return this}if(void 0!==d[a])return d[a];for(g=0,h=e.length;h>g;g++)if(void 0!==e[g][a])return e[g][a]}};for(f.embedObjects=function(){var b=e.concat(d).concat(Array.prototype.splice.call(arguments,0));return a.apply({},b)},b=0,c=arguments.length;c>b;b++)f(arguments[b]);return f};"undefined"!=typeof this.sigma?(this.sigma.classes=this.sigma.classes||{},this.sigma.classes.configurable=a):"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=a),exports.configurable=a):this.configurable=a}.call(this),function(a){"use strict";function b(a,b,c){var d=function(){var d,e;for(d in h[a])h[a][d].apply(b,arguments);e=c.apply(b,arguments);for(d in g[a])g[a][d].apply(b,arguments);return e};return d}function c(a){var b;for(b in a)"hasOwnProperty"in a&&!a.hasOwnProperty(b)||delete a[b];return a}var d=Object.create(null),e=Object.create(null),f=Object.create(null),g=Object.create(null),h=Object.create(null),i={immutable:!0,clone:!0},j=function(a){return i[a]},k=function(a){var c,e,g;g={settings:a||j,nodesArray:[],edgesArray:[],nodesIndex:Object.create(null),edgesIndex:Object.create(null),inNeighborsIndex:Object.create(null),outNeighborsIndex:Object.create(null),allNeighborsIndex:Object.create(null),inNeighborsCount:Object.create(null),outNeighborsCount:Object.create(null),allNeighborsCount:Object.create(null)};for(c in f)f[c].call(g);for(c in d)e=b(c,g,d[c]),this[c]=e,g[c]=e};k.addMethod=function(a,b){if("string"!=typeof a||"function"!=typeof b||2!==arguments.length)throw"addMethod: Wrong arguments.";if(d[a]||k[a])throw'The method "'+a+'" already exists.';return d[a]=b,g[a]=Object.create(null),h[a]=Object.create(null),this},k.hasMethod=function(a){return!(!d[a]&&!k[a])},k.attach=function(a,b,c,d){if("string"!=typeof a||"string"!=typeof b||"function"!=typeof c||arguments.length<3||arguments.length>4)throw"attach: Wrong arguments.";var e;if("constructor"===a)e=f;else if(d){if(!h[a])throw'The method "'+a+'" does not exist.';e=h[a]}else{if(!g[a])throw'The method "'+a+'" does not exist.';e=g[a]}if(e[b])throw'A function "'+b+'" is already attached to the method "'+a+'".';return e[b]=c,this},k.attachBefore=function(a,b,c){return this.attach(a,b,c,!0)},k.addIndex=function(a,b){if("string"!=typeof a||Object(b)!==b||2!==arguments.length)throw"addIndex: Wrong arguments.";if(e[a])throw'The index "'+a+'" already exists.';var c;e[a]=b;for(c in b){if("function"!=typeof b[c])throw"The bindings must be functions.";k.attach(c,a,b[c])}return this},k.addMethod("addNode",function(a){if(Object(a)!==a||1!==arguments.length)throw"addNode: Wrong arguments.";if("string"!=typeof a.id&&"number"!=typeof a.id)throw"The node must have a string or number id.";if(this.nodesIndex[a.id])throw'The node "'+a.id+'" already exists.';var b,c=a.id,d=Object.create(null);if(this.settings("clone"))for(b in a)"id"!==b&&(d[b]=a[b]);else d=a;return this.settings("immutable")?Object.defineProperty(d,"id",{value:c,enumerable:!0}):d.id=c,this.inNeighborsIndex[c]=Object.create(null),this.outNeighborsIndex[c]=Object.create(null),this.allNeighborsIndex[c]=Object.create(null),this.inNeighborsCount[c]=0,this.outNeighborsCount[c]=0,this.allNeighborsCount[c]=0,this.nodesArray.push(d),this.nodesIndex[d.id]=d,this}),k.addMethod("addEdge",function(a){if(Object(a)!==a||1!==arguments.length)throw"addEdge: Wrong arguments.";if("string"!=typeof a.id&&"number"!=typeof a.id)throw"The edge must have a string or number id.";if("string"!=typeof a.source&&"number"!=typeof a.source||!this.nodesIndex[a.source])throw"The edge source must have an existing node id.";if("string"!=typeof a.target&&"number"!=typeof a.target||!this.nodesIndex[a.target])throw"The edge target must have an existing node id.";if(this.edgesIndex[a.id])throw'The edge "'+a.id+'" already exists.';var b,c=Object.create(null);if(this.settings("clone"))for(b in a)"id"!==b&&"source"!==b&&"target"!==b&&(c[b]=a[b]);else c=a;return this.settings("immutable")?(Object.defineProperty(c,"id",{value:a.id,enumerable:!0}),Object.defineProperty(c,"source",{value:a.source,enumerable:!0}),Object.defineProperty(c,"target",{value:a.target,enumerable:!0})):(c.id=a.id,c.source=a.source,c.target=a.target),this.edgesArray.push(c),this.edgesIndex[c.id]=c,this.inNeighborsIndex[c.target][c.source]||(this.inNeighborsIndex[c.target][c.source]=Object.create(null)),this.inNeighborsIndex[c.target][c.source][c.id]=c,this.outNeighborsIndex[c.source][c.target]||(this.outNeighborsIndex[c.source][c.target]=Object.create(null)),this.outNeighborsIndex[c.source][c.target][c.id]=c,this.allNeighborsIndex[c.source][c.target]||(this.allNeighborsIndex[c.source][c.target]=Object.create(null)),this.allNeighborsIndex[c.source][c.target][c.id]=c,c.target!==c.source&&(this.allNeighborsIndex[c.target][c.source]||(this.allNeighborsIndex[c.target][c.source]=Object.create(null)),this.allNeighborsIndex[c.target][c.source][c.id]=c),this.inNeighborsCount[c.target]++,this.outNeighborsCount[c.source]++,this.allNeighborsCount[c.target]++,this.allNeighborsCount[c.source]++,this}),k.addMethod("dropNode",function(a){if("string"!=typeof a&&"number"!=typeof a||1!==arguments.length)throw"dropNode: Wrong arguments.";if(!this.nodesIndex[a])throw'The node "'+a+'" does not exist.';var b,c,d;for(delete this.nodesIndex[a],b=0,d=this.nodesArray.length;d>b;b++)if(this.nodesArray[b].id===a){this.nodesArray.splice(b,1);break}for(b=this.edgesArray.length-1;b>=0;b--)(this.edgesArray[b].source===a||this.edgesArray[b].target===a)&&this.dropEdge(this.edgesArray[b].id);delete this.inNeighborsIndex[a],delete this.outNeighborsIndex[a],delete this.allNeighborsIndex[a],delete this.inNeighborsCount[a],delete this.outNeighborsCount[a],delete this.allNeighborsCount[a];for(c in this.nodesIndex)delete this.inNeighborsIndex[c][a],delete this.outNeighborsIndex[c][a],delete this.allNeighborsIndex[c][a];return this}),k.addMethod("dropEdge",function(a){if("string"!=typeof a&&"number"!=typeof a||1!==arguments.length)throw"dropEdge: Wrong arguments.";if(!this.edgesIndex[a])throw'The edge "'+a+'" does not exist.';var b,c,d;for(d=this.edgesIndex[a],delete this.edgesIndex[a],b=0,c=this.edgesArray.length;c>b;b++)if(this.edgesArray[b].id===a){this.edgesArray.splice(b,1);break}return delete this.inNeighborsIndex[d.target][d.source][d.id],Object.keys(this.inNeighborsIndex[d.target][d.source]).length||delete this.inNeighborsIndex[d.target][d.source],delete this.outNeighborsIndex[d.source][d.target][d.id],Object.keys(this.outNeighborsIndex[d.source][d.target]).length||delete this.outNeighborsIndex[d.source][d.target],delete this.allNeighborsIndex[d.source][d.target][d.id],Object.keys(this.allNeighborsIndex[d.source][d.target]).length||delete this.allNeighborsIndex[d.source][d.target],d.target!==d.source&&(delete this.allNeighborsIndex[d.target][d.source][d.id],Object.keys(this.allNeighborsIndex[d.target][d.source]).length||delete this.allNeighborsIndex[d.target][d.source]),this.inNeighborsCount[d.target]--,this.outNeighborsCount[d.source]--,this.allNeighborsCount[d.source]--,this.allNeighborsCount[d.target]--,this}),k.addMethod("kill",function(){this.nodesArray.length=0,this.edgesArray.length=0,delete this.nodesArray,delete this.edgesArray,delete this.nodesIndex,delete this.edgesIndex,delete this.inNeighborsIndex,delete this.outNeighborsIndex,delete this.allNeighborsIndex,delete this.inNeighborsCount,delete this.outNeighborsCount,delete this.allNeighborsCount}),k.addMethod("clear",function(){return this.nodesArray.length=0,this.edgesArray.length=0,c(this.nodesIndex),c(this.edgesIndex),c(this.nodesIndex),c(this.inNeighborsIndex),c(this.outNeighborsIndex),c(this.allNeighborsIndex),c(this.inNeighborsCount),c(this.outNeighborsCount),c(this.allNeighborsCount),this}),k.addMethod("read",function(a){var b,c,d;for(c=a.nodes||[],b=0,d=c.length;d>b;b++)this.addNode(c[b]);for(c=a.edges||[],b=0,d=c.length;d>b;b++)this.addEdge(c[b]);return this}),k.addMethod("nodes",function(a){if(!arguments.length)return this.nodesArray.slice(0);if(1===arguments.length&&("string"==typeof a||"number"==typeof a))return this.nodesIndex[a];if(1===arguments.length&&"[object Array]"===Object.prototype.toString.call(a)){ -var b,c,d=[];for(b=0,c=a.length;c>b;b++){if("string"!=typeof a[b]&&"number"!=typeof a[b])throw"nodes: Wrong arguments.";d.push(this.nodesIndex[a[b]])}return d}throw"nodes: Wrong arguments."}),k.addMethod("degree",function(a,b){if(b={"in":this.inNeighborsCount,out:this.outNeighborsCount}[b||""]||this.allNeighborsCount,"string"==typeof a||"number"==typeof a)return b[a];if("[object Array]"===Object.prototype.toString.call(a)){var c,d,e=[];for(c=0,d=a.length;d>c;c++){if("string"!=typeof a[c]&&"number"!=typeof a[c])throw"degree: Wrong arguments.";e.push(b[a[c]])}return e}throw"degree: Wrong arguments."}),k.addMethod("edges",function(a){if(!arguments.length)return this.edgesArray.slice(0);if(1===arguments.length&&("string"==typeof a||"number"==typeof a))return this.edgesIndex[a];if(1===arguments.length&&"[object Array]"===Object.prototype.toString.call(a)){var b,c,d=[];for(b=0,c=a.length;c>b;b++){if("string"!=typeof a[b]&&"number"!=typeof a[b])throw"edges: Wrong arguments.";d.push(this.edgesIndex[a[b]])}return d}throw"edges: Wrong arguments."}),"undefined"!=typeof sigma?(sigma.classes=sigma.classes||Object.create(null),sigma.classes.graph=k):"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=k),exports.graph=k):this.graph=k}.call(this),function(a){"use strict";if("undefined"==typeof sigma)throw"sigma is not declared";sigma.utils.pkg("sigma.classes"),sigma.classes.camera=function(a,b,c,d){sigma.classes.dispatcher.extend(this),Object.defineProperty(this,"graph",{value:b}),Object.defineProperty(this,"id",{value:a}),Object.defineProperty(this,"readPrefix",{value:"read_cam"+a+":"}),Object.defineProperty(this,"prefix",{value:"cam"+a+":"}),this.x=0,this.y=0,this.ratio=1,this.angle=0,this.isAnimated=!1,this.settings="object"==typeof d&&d?c.embedObject(d):c},sigma.classes.camera.prototype.goTo=function(b){if(!this.settings("enableCamera"))return this;var c,d,e=b||{},f=["x","y","ratio","angle"];for(c=0,d=f.length;d>c;c++)if(e[f[c]]!==a){if("number"!=typeof e[f[c]]||isNaN(e[f[c]]))throw'Value for "'+f[c]+'" is not a number.';this[f[c]]=e[f[c]]}return this.dispatchEvent("coordinatesUpdated"),this},sigma.classes.camera.prototype.applyView=function(b,c,d){d=d||{},c=c!==a?c:this.prefix,b=b!==a?b:this.readPrefix;var e,f,g,h=d.nodes||this.graph.nodes(),i=d.edges||this.graph.edges(),j=Math.cos(this.angle),k=Math.sin(this.angle),l=Math.pow(this.ratio,this.settings("nodesPowRatio")),m=Math.pow(this.ratio,this.settings("edgesPowRatio"));for(e=0,f=h.length;f>e;e++)g=h[e],g[c+"x"]=(((g[b+"x"]||0)-this.x)*j+((g[b+"y"]||0)-this.y)*k)/this.ratio+(d.width||0)/2,g[c+"y"]=(((g[b+"y"]||0)-this.y)*j-((g[b+"x"]||0)-this.x)*k)/this.ratio+(d.height||0)/2,g[c+"size"]=(g[b+"size"]||0)/l;for(e=0,f=i.length;f>e;e++)i[e][c+"size"]=(i[e][b+"size"]||0)/m;return this},sigma.classes.camera.prototype.graphPosition=function(a,b,c){var d=0,e=0,f=Math.cos(this.angle),g=Math.sin(this.angle);return c||(d=-(this.x*f+this.y*g)/this.ratio,e=-(this.y*f-this.x*g)/this.ratio),{x:(a*f+b*g)/this.ratio+d,y:(b*f-a*g)/this.ratio+e}},sigma.classes.camera.prototype.cameraPosition=function(a,b,c){var d=0,e=0,f=Math.cos(this.angle),g=Math.sin(this.angle);return c||(d=-(this.x*f+this.y*g)/this.ratio,e=-(this.y*f-this.x*g)/this.ratio),{x:((a-d)*f-(b-e)*g)*this.ratio,y:((b-e)*f+(a-d)*g)*this.ratio}},sigma.classes.camera.prototype.getMatrix=function(){var a=sigma.utils.matrices.scale(1/this.ratio),b=sigma.utils.matrices.rotation(this.angle),c=sigma.utils.matrices.translation(-this.x,-this.y),d=sigma.utils.matrices.multiply(c,sigma.utils.matrices.multiply(b,a));return d},sigma.classes.camera.prototype.getRectangle=function(a,b){var c=this.cameraPosition(a,0,!0),d=this.cameraPosition(0,b,!0),e=this.cameraPosition(a/2,b/2,!0),f=this.cameraPosition(a/4,0,!0).x,g=this.cameraPosition(0,b/4,!0).y;return{x1:this.x-e.x-f,y1:this.y-e.y-g,x2:this.x-e.x+f+c.x,y2:this.y-e.y-g+c.y,height:Math.sqrt(Math.pow(d.x,2)+Math.pow(d.y+2*g,2))}}}.call(this),function(a){"use strict";function b(a,b){var c=b.x+b.width/2,d=b.y+b.height/2,e=a.yd;d++)a.x2>=b[d][0].x&&a.x1<=b[d][1].x&&a.y1+a.height>=b[d][0].y&&a.y1<=b[d][2].y&&c.push(d);return c}function d(a,b){for(var c=[],d=0;4>d;d++)j.collision(a,b[d])&&c.push(d);return c}function e(a,b){var c,d,e=b.level+1,f=Math.round(b.bounds.width/2),g=Math.round(b.bounds.height/2),h=Math.round(b.bounds.x),j=Math.round(b.bounds.y);switch(a){case 0:c=h,d=j;break;case 1:c=h+f,d=j;break;case 2:c=h,d=j+g;break;case 3:c=h+f,d=j+g}return i({x:c,y:d,width:f,height:g},e,b.maxElements,b.maxLevel)}function f(b,d,g){if(g.leveli;i++)g.nodes[h[i]]===a&&(g.nodes[h[i]]=e(h[i],g)),f(b,d,g.nodes[h[i]]);else g.elements.push(b)}function g(c,d){if(d.levelg;g++)c.nodes[f[g]]!==a&&h(b,c.nodes[f[g]],d,e);else for(var j=0,k=c.elements.length;k>j;j++)e[c.elements[j].id]===a&&(e[c.elements[j].id]=c.elements[j]);return e}function i(a,b,c,d){return{level:b||0,bounds:a,corners:j.splitSquare(a),maxElements:c||20,maxLevel:d||4,elements:[],nodes:[]}}var j={pointToSquare:function(a){return{x1:a.x-a.size,y1:a.y-a.size,x2:a.x+a.size,y2:a.y-a.size,height:2*a.size}},isAxisAligned:function(a){return a.x1===a.x2||a.y1===a.y2},axisAlignedTopPoints:function(a){return a.y1===a.y2&&a.x1a.y1?{x1:a.x1-a.height,y1:a.y1,x2:a.x1,y2:a.y1,height:a.height}:a.x1===a.x2&&a.y2f;f++){var g=this.projection(b[f],a),h=this.projection(c[f],a);d.push(g.x*a.x+g.y*a.y),e.push(h.x*a.x+h.y*a.y)}var i=Math.max.apply(Math,d),j=Math.max.apply(Math,e),k=Math.min.apply(Math,d),l=Math.min.apply(Math,e);return i>=l&&j>=k},collision:function(a,b){for(var c=this.axis(a,b),d=!0,e=0;4>e;e++)d=d&&this.axisCollision(c[e],a,b);return d}},k=function(){this._geom=j,this._tree=null,this._cache={query:!1,result:!1}};k.prototype.index=function(a,b){if(!b.bounds)throw"sigma.classes.quad.index: bounds information not given.";var c=b.prefix||"";this._tree=i(b.bounds,0,b.maxElements,b.maxLevel);for(var d=0,e=a.length;e>d;d++)f(a[d],j.pointToSquare({x:a[d][c+"x"],y:a[d][c+"y"],size:a[d][c+"size"]}),this._tree);return this._cache={query:!1,result:!1},this._tree},k.prototype.point=function(a,b){return this._tree?g({x:a,y:b},this._tree)||[]:[]},k.prototype.area=function(a){var b,e,f=JSON.stringify(a);if(this._cache.query===f)return this._cache.result;j.isAxisAligned(a)?(b=c,e=j.axisAlignedTopPoints(a)):(b=d,e=j.rectangleCorners(a));var g=this._tree?h(e,this._tree,b):[],i=[];for(var k in g)i.push(g[k]);return this._cache.query=f,this._cache.result=i,i},"undefined"!=typeof this.sigma?(this.sigma.classes=this.sigma.classes||{},this.sigma.classes.quad=k):"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=k),exports.quad=k):this.quad=k}.call(this),function(a){"use strict";function b(a,b){var c=b.x+b.width/2,d=b.y+b.height/2,e=a.yd;d++)a.x2>=b[d][0].x&&a.x1<=b[d][1].x&&a.y1+a.height>=b[d][0].y&&a.y1<=b[d][2].y&&c.push(d);return c}function d(a,b){for(var c=[],d=0;4>d;d++)j.collision(a,b[d])&&c.push(d);return c}function e(a,b){var c,d,e=b.level+1,f=Math.round(b.bounds.width/2),g=Math.round(b.bounds.height/2),h=Math.round(b.bounds.x),j=Math.round(b.bounds.y);switch(a){case 0:c=h,d=j;break;case 1:c=h+f,d=j;break;case 2:c=h,d=j+g;break;case 3:c=h+f,d=j+g}return i({x:c,y:d,width:f,height:g},e,b.maxElements,b.maxLevel)}function f(b,d,g){if(g.leveli;i++)g.nodes[h[i]]===a&&(g.nodes[h[i]]=e(h[i],g)),f(b,d,g.nodes[h[i]]);else g.elements.push(b)}function g(c,d){if(d.levelg;g++)c.nodes[f[g]]!==a&&h(b,c.nodes[f[g]],d,e);else for(var j=0,k=c.elements.length;k>j;j++)e[c.elements[j].id]===a&&(e[c.elements[j].id]=c.elements[j]);return e}function i(a,b,c,d){return{level:b||0,bounds:a,corners:j.splitSquare(a),maxElements:c||40,maxLevel:d||8,elements:[],nodes:[]}}var j={pointToSquare:function(a){return{x1:a.x-a.size,y1:a.y-a.size,x2:a.x+a.size,y2:a.y-a.size,height:2*a.size}},lineToSquare:function(a){return a.y1a.y1?{x1:a.x1-a.height,y1:a.y1,x2:a.x1,y2:a.y1,height:a.height}:a.x1===a.x2&&a.y2f;f++){var g=this.projection(b[f],a),h=this.projection(c[f],a);d.push(g.x*a.x+g.y*a.y),e.push(h.x*a.x+h.y*a.y)}var i=Math.max.apply(Math,d),j=Math.max.apply(Math,e),k=Math.min.apply(Math,d),l=Math.min.apply(Math,e);return i>=l&&j>=k},collision:function(a,b){for(var c=this.axis(a,b),d=!0,e=0;4>e;e++)d=d&&this.axisCollision(c[e],a,b);return d}},k=function(){this._geom=j,this._tree=null,this._cache={query:!1,result:!1},this._enabled=!0};k.prototype.index=function(a,b){if(!this._enabled)return this._tree;if(!b.bounds)throw"sigma.classes.edgequad.index: bounds information not given.";var c,d,e,g,h,k=b.prefix||"";this._tree=i(b.bounds,0,b.maxElements,b.maxLevel);for(var l=a.edges(),m=0,n=l.length;n>m;m++)d=a.nodes(l[m].source),e=a.nodes(l[m].target),h={x1:d[k+"x"],y1:d[k+"y"],x2:e[k+"x"],y2:e[k+"y"],size:l[m][k+"size"]||0},"curve"===l[m].type||"curvedArrow"===l[m].type?d.id===e.id?(g={x:d[k+"x"],y:d[k+"y"],size:d[k+"size"]||0},f(l[m],j.selfLoopToSquare(g),this._tree)):(c=sigma.utils.getQuadraticControlPoint(h.x1,h.y1,h.x2,h.y2),f(l[m],j.quadraticCurveToSquare(h,c),this._tree)):f(l[m],j.lineToSquare(h),this._tree);return this._cache={query:!1,result:!1},this._tree},k.prototype.point=function(a,b){return this._enabled&&this._tree?g({x:a,y:b},this._tree)||[]:[]},k.prototype.area=function(a){if(!this._enabled)return[];var b,e,f=JSON.stringify(a);if(this._cache.query===f)return this._cache.result;j.isAxisAligned(a)?(b=c,e=j.axisAlignedTopPoints(a)):(b=d,e=j.rectangleCorners(a));var g=this._tree?h(e,this._tree,b):[],i=[];for(var k in g)i.push(g[k]);return this._cache.query=f,this._cache.result=i,i},"undefined"!=typeof this.sigma?(this.sigma.classes=this.sigma.classes||{},this.sigma.classes.edgequad=k):"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=k),exports.edgequad=k):this.edgequad=k}.call(this),function(a){"use strict";if("undefined"==typeof sigma)throw"sigma is not declared";sigma.utils.pkg("sigma.captors"),sigma.captors.mouse=function(a,b,c){function d(a){var b,c,d;return y("mouseEnabled")&&v.dispatchEvent("mousemove",{x:sigma.utils.getX(a)-sigma.utils.getWidth(a)/2,y:sigma.utils.getY(a)-sigma.utils.getHeight(a)/2,clientX:a.clientX,clientY:a.clientY,ctrlKey:a.ctrlKey,metaKey:a.metaKey,altKey:a.altKey,shiftKey:a.shiftKey}),y("mouseEnabled")&&q?(r=!0,s=!0,u&&clearTimeout(u),u=setTimeout(function(){r=!1},y("dragTimeout")),sigma.misc.animation.killAll(x),x.isMoving=!0,d=x.cameraPosition(sigma.utils.getX(a)-o,sigma.utils.getY(a)-p,!0),b=k-d.x,c=l-d.y,(b!==x.x||c!==x.y)&&(m=x.x,n=x.y,x.goTo({x:b,y:c})),a.preventDefault?a.preventDefault():a.returnValue=!1,a.stopPropagation(),!1):void 0}function e(a){if(y("mouseEnabled")&&q){q=!1,u&&clearTimeout(u),x.isMoving=!1;var b=sigma.utils.getX(a),c=sigma.utils.getY(a);r?(sigma.misc.animation.killAll(x),sigma.misc.animation.camera(x,{x:x.x+y("mouseInertiaRatio")*(x.x-m),y:x.y+y("mouseInertiaRatio")*(x.y-n)},{easing:"quadraticOut",duration:y("mouseInertiaDuration")})):(o!==b||p!==c)&&x.goTo({x:x.x,y:x.y}),v.dispatchEvent("mouseup",{x:b-sigma.utils.getWidth(a)/2,y:c-sigma.utils.getHeight(a)/2,clientX:a.clientX,clientY:a.clientY,ctrlKey:a.ctrlKey,metaKey:a.metaKey,altKey:a.altKey,shiftKey:a.shiftKey}),r=!1}}function f(a){if(y("mouseEnabled"))switch(k=x.x,l=x.y,m=x.x,n=x.y,o=sigma.utils.getX(a),p=sigma.utils.getY(a),s=!1,t=(new Date).getTime(),a.which){case 2:break;case 3:v.dispatchEvent("rightclick",{x:o-sigma.utils.getWidth(a)/2,y:p-sigma.utils.getHeight(a)/2,clientX:a.clientX,clientY:a.clientY,ctrlKey:a.ctrlKey,metaKey:a.metaKey,altKey:a.altKey,shiftKey:a.shiftKey});break;default:q=!0,v.dispatchEvent("mousedown",{x:o-sigma.utils.getWidth(a)/2,y:p-sigma.utils.getHeight(a)/2,clientX:a.clientX,clientY:a.clientY,ctrlKey:a.ctrlKey,metaKey:a.metaKey,altKey:a.altKey,shiftKey:a.shiftKey})}}function g(a){y("mouseEnabled")&&v.dispatchEvent("mouseout")}function h(a){return y("mouseEnabled")&&v.dispatchEvent("click",{x:sigma.utils.getX(a)-sigma.utils.getWidth(a)/2,y:sigma.utils.getY(a)-sigma.utils.getHeight(a)/2,clientX:a.clientX,clientY:a.clientY,ctrlKey:a.ctrlKey,metaKey:a.metaKey,altKey:a.altKey,shiftKey:a.shiftKey,isDragging:(new Date).getTime()-t>100&&s}),a.preventDefault?a.preventDefault():a.returnValue=!1,a.stopPropagation(),!1}function i(a){var b,c,d;return y("mouseEnabled")?(c=1/y("doubleClickZoomingRatio"),v.dispatchEvent("doubleclick",{x:o-sigma.utils.getWidth(a)/2,y:p-sigma.utils.getHeight(a)/2,clientX:a.clientX,clientY:a.clientY,ctrlKey:a.ctrlKey,metaKey:a.metaKey,altKey:a.altKey,shiftKey:a.shiftKey}),y("doubleClickEnabled")&&(b=x.cameraPosition(sigma.utils.getX(a)-sigma.utils.getWidth(a)/2,sigma.utils.getY(a)-sigma.utils.getHeight(a)/2,!0),d={duration:y("doubleClickZoomDuration")},sigma.utils.zoomTo(x,b.x,b.y,c,d)),a.preventDefault?a.preventDefault():a.returnValue=!1,a.stopPropagation(),!1):void 0}function j(a){var b,c,d;return y("mouseEnabled")&&y("mouseWheelEnabled")?(c=sigma.utils.getDelta(a)>0?1/y("zoomingRatio"):y("zoomingRatio"),b=x.cameraPosition(sigma.utils.getX(a)-sigma.utils.getWidth(a)/2,sigma.utils.getY(a)-sigma.utils.getHeight(a)/2,!0),d={duration:y("mouseZoomDuration")},sigma.utils.zoomTo(x,b.x,b.y,c,d),a.preventDefault?a.preventDefault():a.returnValue=!1,a.stopPropagation(),!1):void 0}var k,l,m,n,o,p,q,r,s,t,u,v=this,w=a,x=b,y=c;sigma.classes.dispatcher.extend(this),sigma.utils.doubleClick(w,"click",i),w.addEventListener("DOMMouseScroll",j,!1),w.addEventListener("mousewheel",j,!1),w.addEventListener("mousemove",d,!1),w.addEventListener("mousedown",f,!1),w.addEventListener("click",h,!1),w.addEventListener("mouseout",g,!1),document.addEventListener("mouseup",e,!1),this.kill=function(){sigma.utils.unbindDoubleClick(w,"click"),w.removeEventListener("DOMMouseScroll",j),w.removeEventListener("mousewheel",j),w.removeEventListener("mousemove",d),w.removeEventListener("mousedown",f),w.removeEventListener("click",h),w.removeEventListener("mouseout",g),document.removeEventListener("mouseup",e)}}}.call(this),function(a){"use strict";if("undefined"==typeof sigma)throw"sigma is not declared";sigma.utils.pkg("sigma.captors"),sigma.captors.touch=function(a,b,c){function d(a){var b=sigma.utils.getOffset(B);return{x:a.pageX-b.left,y:a.pageY-b.top}}function e(a){if(D("touchEnabled")){var b,c,e,f,g,h;switch(E=a.touches,E.length){case 1:C.isMoving=!0,w=1,i=C.x,j=C.y,m=C.x,n=C.y,g=d(E[0]),q=g.x,r=g.y;break;case 2:return C.isMoving=!0,w=2,g=d(E[0]),h=d(E[1]),b=g.x,e=g.y,c=h.x,f=h.y,m=C.x,n=C.y,k=C.angle,l=C.ratio,i=C.x,j=C.y,q=b,r=e,s=c,t=f,u=Math.atan2(t-r,s-q),v=Math.sqrt(Math.pow(t-r,2)+Math.pow(s-q,2)),a.preventDefault(),!1}}}function f(a){if(D("touchEnabled")){E=a.touches;var b=D("touchInertiaRatio");switch(z&&(x=!1,clearTimeout(z)),w){case 2:if(1===a.touches.length){e(a),a.preventDefault();break}case 1:C.isMoving=!1,A.dispatchEvent("stopDrag"),x&&(y=!1,sigma.misc.animation.camera(C,{x:C.x+b*(C.x-m),y:C.y+b*(C.y-n)},{easing:"quadraticOut",duration:D("touchInertiaDuration")})),x=!1,w=0}}}function g(a){if(!y&&D("touchEnabled")){var b,c,e,f,g,h,B,F,G,H,I,J,K,L,M,N,O;switch(E=a.touches,x=!0,z&&clearTimeout(z),z=setTimeout(function(){x=!1},D("dragTimeout")),w){case 1:F=d(E[0]),b=F.x,e=F.y,H=C.cameraPosition(b-q,e-r,!0),L=i-H.x,M=j-H.y,(L!==C.x||M!==C.y)&&(m=C.x,n=C.y,C.goTo({x:L,y:M}),A.dispatchEvent("mousemove",{x:F.x-sigma.utils.getWidth(a)/2,y:F.y-sigma.utils.getHeight(a)/2,clientX:a.clientX,clientY:a.clientY,ctrlKey:a.ctrlKey,metaKey:a.metaKey,altKey:a.altKey,shiftKey:a.shiftKey}),A.dispatchEvent("drag"));break;case 2:F=d(E[0]),G=d(E[1]),b=F.x,e=F.y,c=G.x,f=G.y,I=C.cameraPosition((q+s)/2-sigma.utils.getWidth(a)/2,(r+t)/2-sigma.utils.getHeight(a)/2,!0),B=C.cameraPosition((b+c)/2-sigma.utils.getWidth(a)/2,(e+f)/2-sigma.utils.getHeight(a)/2,!0),J=Math.atan2(f-e,c-b)-u,K=Math.sqrt(Math.pow(f-e,2)+Math.pow(c-b,2))/v,b=I.x,e=I.y,N=l/K,b*=K,e*=K,O=k-J,g=Math.cos(-J),h=Math.sin(-J),c=b*g+e*h,f=e*g-b*h,b=c,e=f,L=b-B.x+i,M=e-B.y+j,(N!==C.ratio||O!==C.angle||L!==C.x||M!==C.y)&&(m=C.x,n=C.y,o=C.angle,p=C.ratio,C.goTo({x:L,y:M,angle:O,ratio:N}),A.dispatchEvent("drag"))}return a.preventDefault(),!1}}function h(a){var b,c,e;return a.touches&&1===a.touches.length&&D("touchEnabled")?(y=!0,c=1/D("doubleClickZoomingRatio"),b=d(a.touches[0]),A.dispatchEvent("doubleclick",{x:b.x-sigma.utils.getWidth(a)/2,y:b.y-sigma.utils.getHeight(a)/2,clientX:a.clientX,clientY:a.clientY,ctrlKey:a.ctrlKey,metaKey:a.metaKey,altKey:a.altKey,shiftKey:a.shiftKey}),D("doubleClickEnabled")&&(b=C.cameraPosition(b.x-sigma.utils.getWidth(a)/2,b.y-sigma.utils.getHeight(a)/2,!0),e={duration:D("doubleClickZoomDuration"),onComplete:function(){y=!1}},sigma.utils.zoomTo(C,b.x,b.y,c,e)),a.preventDefault?a.preventDefault():a.returnValue=!1,a.stopPropagation(),!1):void 0}var i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A=this,B=a,C=b,D=c,E=[];sigma.classes.dispatcher.extend(this),sigma.utils.doubleClick(B,"touchstart",h),B.addEventListener("touchstart",e,!1),B.addEventListener("touchend",f,!1),B.addEventListener("touchcancel",f,!1),B.addEventListener("touchleave",f,!1),B.addEventListener("touchmove",g,!1),this.kill=function(){sigma.utils.unbindDoubleClick(B,"touchstart"),B.addEventListener("touchstart",e),B.addEventListener("touchend",f),B.addEventListener("touchcancel",f),B.addEventListener("touchleave",f),B.addEventListener("touchmove",g)}}}.call(this),function(a){"use strict";if("undefined"==typeof sigma)throw"sigma is not declared";if("undefined"==typeof conrad)throw"conrad is not declared";sigma.utils.pkg("sigma.renderers"),sigma.renderers.canvas=function(a,b,c,d){if("object"!=typeof d)throw"sigma.renderers.canvas: Wrong arguments.";if(!(d.container instanceof HTMLElement))throw"Container not found.";var e,f,g,h;for(sigma.classes.dispatcher.extend(this),Object.defineProperty(this,"conradId",{value:sigma.utils.id()}),this.graph=a,this.camera=b,this.contexts={},this.domElements={},this.options=d,this.container=this.options.container,this.settings="object"==typeof d.settings&&d.settings?c.embedObjects(d.settings):c,this.nodesOnScreen=[],this.edgesOnScreen=[],this.jobs={},this.options.prefix="renderer"+this.conradId+":",this.settings("batchEdgesDrawing")?(this.initDOM("canvas","edges"),this.initDOM("canvas","scene"),this.contexts.nodes=this.contexts.scene,this.contexts.labels=this.contexts.scene):(this.initDOM("canvas","scene"),this.contexts.edges=this.contexts.scene,this.contexts.nodes=this.contexts.scene,this.contexts.labels=this.contexts.scene),this.initDOM("canvas","mouse"),this.contexts.hover=this.contexts.mouse,this.captors=[],g=this.options.captors||[sigma.captors.mouse,sigma.captors.touch],e=0,f=g.length;f>e;e++)h="function"==typeof g[e]?g[e]:sigma.captors[g[e]],this.captors.push(new h(this.domElements.mouse,this.camera,this.settings));sigma.misc.bindEvents.call(this,this.options.prefix),sigma.misc.drawHovers.call(this,this.options.prefix),this.resize(!1)},sigma.renderers.canvas.prototype.render=function(b){b=b||{};var c,d,e,f,g,h,i,j,k,l,m,n,o,p={},q=this.graph,r=this.graph.nodes,s=(this.options.prefix||"",this.settings(b,"drawEdges")),t=this.settings(b,"drawNodes"),u=this.settings(b,"drawLabels"),v=this.settings(b,"drawEdgeLabels"),w=this.settings.embedObjects(b,{prefix:this.options.prefix});this.resize(!1),this.settings(b,"hideEdgesOnMove")&&(this.camera.isAnimated||this.camera.isMoving)&&(s=!1),this.camera.applyView(a,this.options.prefix,{width:this.width,height:this.height}),this.clear();for(e in this.jobs)conrad.hasJob(e)&&conrad.killJob(e);for(this.edgesOnScreen=[],this.nodesOnScreen=this.camera.quadtree.area(this.camera.getRectangle(this.width,this.height)),c=this.nodesOnScreen,d=0,f=c.length;f>d;d++)p[c[d].id]=c[d];if(s){for(c=q.edges(),d=0,f=c.length;f>d;d++)g=c[d],!p[g.source]&&!p[g.target]||g.hidden||r(g.source).hidden||r(g.target).hidden||this.edgesOnScreen.push(g);if(this.settings(b,"batchEdgesDrawing"))h="edges_"+this.conradId,n=w("canvasEdgesBatchSize"),l=this.edgesOnScreen,f=l.length,k=0,i=Math.min(l.length,k+n),j=function(){for(o=this.contexts.edges.globalCompositeOperation,this.contexts.edges.globalCompositeOperation="destination-over",m=sigma.canvas.edges,d=k;i>d;d++)g=l[d],(m[g.type||this.settings(b,"defaultEdgeType")]||m.def)(g,q.nodes(g.source),q.nodes(g.target),this.contexts.edges,w);if(v)for(m=sigma.canvas.edges.labels,d=k;i>d;d++)g=l[d],g.hidden||(m[g.type||this.settings(b,"defaultEdgeType")]||m.def)(g,q.nodes(g.source),q.nodes(g.target),this.contexts.labels,w);return this.contexts.edges.globalCompositeOperation=o,i===l.length?(delete this.jobs[h],!1):(k=i+1,i=Math.min(l.length,k+n),!0)},this.jobs[h]=j,conrad.addJob(h,j.bind(this));else{for(m=sigma.canvas.edges,c=this.edgesOnScreen,d=0,f=c.length;f>d;d++)g=c[d],(m[g.type||this.settings(b,"defaultEdgeType")]||m.def)(g,q.nodes(g.source),q.nodes(g.target),this.contexts.edges,w);if(v)for(m=sigma.canvas.edges.labels,c=this.edgesOnScreen,d=0,f=c.length;f>d;d++)c[d].hidden||(m[c[d].type||this.settings(b,"defaultEdgeType")]||m.def)(c[d],q.nodes(c[d].source),q.nodes(c[d].target),this.contexts.labels,w)}}if(t)for(m=sigma.canvas.nodes,c=this.nodesOnScreen,d=0,f=c.length;f>d;d++)c[d].hidden||(m[c[d].type||this.settings(b,"defaultNodeType")]||m.def)(c[d],this.contexts.nodes,w);if(u)for(m=sigma.canvas.labels,c=this.nodesOnScreen,d=0,f=c.length;f>d;d++)c[d].hidden||(m[c[d].type||this.settings(b,"defaultNodeType")]||m.def)(c[d],this.contexts.labels,w);return this.dispatchEvent("render"),this},sigma.renderers.canvas.prototype.initDOM=function(a,b){var c=document.createElement(a);c.style.position="absolute",c.setAttribute("class","sigma-"+b),this.domElements[b]=c,this.container.appendChild(c),"canvas"===a.toLowerCase()&&(this.contexts[b]=c.getContext("2d"))},sigma.renderers.canvas.prototype.resize=function(b,c){var d,e=this.width,f=this.height,g=1;if(b!==a&&c!==a?(this.width=b,this.height=c):(this.width=this.container.offsetWidth,this.height=this.container.offsetHeight,b=this.width,c=this.height),e!==this.width||f!==this.height)for(d in this.domElements)this.domElements[d].style.width=b+"px",this.domElements[d].style.height=c+"px","canvas"===this.domElements[d].tagName.toLowerCase()&&(this.domElements[d].setAttribute("width",b*g+"px"),this.domElements[d].setAttribute("height",c*g+"px"),1!==g&&this.contexts[d].scale(g,g));return this},sigma.renderers.canvas.prototype.clear=function(){var a;for(a in this.domElements)"CANVAS"===this.domElements[a].tagName&&(this.domElements[a].width=this.domElements[a].width);return this},sigma.renderers.canvas.prototype.kill=function(){for(var a,b;b=this.captors.pop();)b.kill();delete this.captors;for(a in this.domElements)this.domElements[a].parentNode.removeChild(this.domElements[a]),delete this.domElements[a],delete this.contexts[a];delete this.domElements,delete this.contexts},sigma.utils.pkg("sigma.canvas.nodes"),sigma.utils.pkg("sigma.canvas.edges"),sigma.utils.pkg("sigma.canvas.labels")}.call(this),function(a){"use strict";if("undefined"==typeof sigma)throw"sigma is not declared";sigma.utils.pkg("sigma.renderers"),sigma.renderers.webgl=function(a,b,c,d){if("object"!=typeof d)throw"sigma.renderers.webgl: Wrong arguments.";if(!(d.container instanceof HTMLElement))throw"Container not found.";var e,f,g,h;for(sigma.classes.dispatcher.extend(this),this.jobs={},Object.defineProperty(this,"conradId",{value:sigma.utils.id()}),this.graph=a,this.camera=b,this.contexts={},this.domElements={},this.options=d,this.container=this.options.container,this.settings="object"==typeof d.settings&&d.settings?c.embedObjects(d.settings):c,this.options.prefix=this.camera.readPrefix,Object.defineProperty(this,"nodePrograms",{value:{}}),Object.defineProperty(this,"edgePrograms",{value:{}}),Object.defineProperty(this,"nodeFloatArrays",{value:{}}),Object.defineProperty(this,"edgeFloatArrays",{value:{}}),this.settings(d,"batchEdgesDrawing")?(this.initDOM("canvas","edges",!0),this.initDOM("canvas","nodes",!0)):(this.initDOM("canvas","scene",!0),this.contexts.nodes=this.contexts.scene,this.contexts.edges=this.contexts.scene),this.initDOM("canvas","labels"),this.initDOM("canvas","mouse"),this.contexts.hover=this.contexts.mouse,this.captors=[],g=this.options.captors||[sigma.captors.mouse,sigma.captors.touch],e=0,f=g.length;f>e;e++)h="function"==typeof g[e]?g[e]:sigma.captors[g[e]],this.captors.push(new h(this.domElements.mouse,this.camera,this.settings));sigma.misc.bindEvents.call(this,this.camera.prefix),sigma.misc.drawHovers.call(this,this.camera.prefix),this.resize()},sigma.renderers.webgl.prototype.process=function(){var a,b,c,d,e,f,g=this.graph,h=sigma.utils.extend(h,this.options);for(d in this.nodeFloatArrays)delete this.nodeFloatArrays[d];for(d in this.edgeFloatArrays)delete this.edgeFloatArrays[d];for(a=g.edges(),b=0,c=a.length;c>b;b++)e=a[b].type||this.settings(h,"defaultEdgeType"),d=e&&sigma.webgl.edges[e]?e:"def",this.edgeFloatArrays[d]||(this.edgeFloatArrays[d]={edges:[]}),this.edgeFloatArrays[d].edges.push(a[b]);for(a=g.nodes(),b=0,c=a.length;c>b;b++)e=a[b].type||this.settings(h,"defaultNodeType"),d=e&&sigma.webgl.nodes[e]?e:"def",this.nodeFloatArrays[d]||(this.nodeFloatArrays[d]={nodes:[]}),this.nodeFloatArrays[d].nodes.push(a[b]);for(d in this.edgeFloatArrays)for(f=sigma.webgl.edges[d],a=this.edgeFloatArrays[d].edges,b=0,c=a.length;c>b;b++)this.edgeFloatArrays[d].array||(this.edgeFloatArrays[d].array=new Float32Array(a.length*f.POINTS*f.ATTRIBUTES)),a[b].hidden||g.nodes(a[b].source).hidden||g.nodes(a[b].target).hidden||f.addEdge(a[b],g.nodes(a[b].source),g.nodes(a[b].target),this.edgeFloatArrays[d].array,b*f.POINTS*f.ATTRIBUTES,h.prefix,this.settings);for(d in this.nodeFloatArrays)for(f=sigma.webgl.nodes[d],a=this.nodeFloatArrays[d].nodes,b=0,c=a.length;c>b;b++)this.nodeFloatArrays[d].array||(this.nodeFloatArrays[d].array=new Float32Array(a.length*f.POINTS*f.ATTRIBUTES)),a[b].hidden||f.addNode(a[b],this.nodeFloatArrays[d].array,b*f.POINTS*f.ATTRIBUTES,h.prefix,this.settings);return this},sigma.renderers.webgl.prototype.render=function(b){var c,d,e,f,g,h,i=this,j=(this.graph,this.contexts.nodes),k=this.contexts.edges,l=this.camera.getMatrix(),m=sigma.utils.extend(b,this.options),n=this.settings(m,"drawLabels"),o=this.settings(m,"drawEdges"),p=this.settings(m,"drawNodes");this.resize(!1),this.settings(m,"hideEdgesOnMove")&&(this.camera.isAnimated||this.camera.isMoving)&&(o=!1),this.clear(),l=sigma.utils.matrices.multiply(l,sigma.utils.matrices.translation(this.width/2,this.height/2));for(f in this.jobs)conrad.hasJob(f)&&conrad.killJob(f);if(o)if(this.settings(m,"batchEdgesDrawing"))(function(){var a,b,c,d,e,f,g,h,i;c="edges_"+this.conradId,i=this.settings(m,"webglEdgesBatchSize"),a=Object.keys(this.edgeFloatArrays),a.length&&(b=0,h=sigma.webgl.edges[a[b]],e=this.edgeFloatArrays[a[b]].array,g=0,f=Math.min(g+i*h.POINTS,e.length/h.ATTRIBUTES),d=function(){return this.edgePrograms[a[b]]||(this.edgePrograms[a[b]]=h.initProgram(k)),f>g&&(k.useProgram(this.edgePrograms[a[b]]),h.render(k,this.edgePrograms[a[b]],e,{settings:this.settings,matrix:l,width:this.width,height:this.height,ratio:this.camera.ratio,scalingRatio:this.settings(m,"webglOversamplingRatio"),start:g,count:f-g})),f>=e.length/h.ATTRIBUTES&&b===a.length-1?(delete this.jobs[c],!1):(f>=e.length/h.ATTRIBUTES?(b++,e=this.edgeFloatArrays[a[b]].array,h=sigma.webgl.edges[a[b]],g=0,f=Math.min(g+i*h.POINTS,e.length/h.ATTRIBUTES)):(g=f,f=Math.min(g+i*h.POINTS,e.length/h.ATTRIBUTES)),!0)},this.jobs[c]=d,conrad.addJob(c,d.bind(this)))}).call(this);else for(f in this.edgeFloatArrays)h=sigma.webgl.edges[f],this.edgePrograms[f]||(this.edgePrograms[f]=h.initProgram(k)),this.edgeFloatArrays[f]&&(k.useProgram(this.edgePrograms[f]),h.render(k,this.edgePrograms[f],this.edgeFloatArrays[f].array,{ -settings:this.settings,matrix:l,width:this.width,height:this.height,ratio:this.camera.ratio,scalingRatio:this.settings(m,"webglOversamplingRatio")}));if(p){j.blendFunc(j.SRC_ALPHA,j.ONE_MINUS_SRC_ALPHA),j.enable(j.BLEND);for(f in this.nodeFloatArrays)h=sigma.webgl.nodes[f],this.nodePrograms[f]||(this.nodePrograms[f]=h.initProgram(j)),this.nodeFloatArrays[f]&&(j.useProgram(this.nodePrograms[f]),h.render(j,this.nodePrograms[f],this.nodeFloatArrays[f].array,{settings:this.settings,matrix:l,width:this.width,height:this.height,ratio:this.camera.ratio,scalingRatio:this.settings(m,"webglOversamplingRatio")}))}if(n)for(c=this.camera.quadtree.area(this.camera.getRectangle(this.width,this.height)),this.camera.applyView(a,a,{nodes:c,edges:[],width:this.width,height:this.height}),g=function(a){return i.settings({prefix:i.camera.prefix},a)},d=0,e=c.length;e>d;d++)c[d].hidden||(sigma.canvas.labels[c[d].type||this.settings(m,"defaultNodeType")]||sigma.canvas.labels.def)(c[d],this.contexts.labels,g);return this.dispatchEvent("render"),this},sigma.renderers.webgl.prototype.initDOM=function(a,b,c){var d=document.createElement(a),e=this;d.style.position="absolute",d.setAttribute("class","sigma-"+b),this.domElements[b]=d,this.container.appendChild(d),"canvas"===a.toLowerCase()&&(this.contexts[b]=d.getContext(c?"experimental-webgl":"2d",{preserveDrawingBuffer:!0}),c&&(d.addEventListener("webglcontextlost",function(a){a.preventDefault()},!1),d.addEventListener("webglcontextrestored",function(a){e.render()},!1)))},sigma.renderers.webgl.prototype.resize=function(b,c){var d,e=this.width,f=this.height;if(b!==a&&c!==a?(this.width=b,this.height=c):(this.width=this.container.offsetWidth,this.height=this.container.offsetHeight,b=this.width,c=this.height),e!==this.width||f!==this.height)for(d in this.domElements)this.domElements[d].style.width=b+"px",this.domElements[d].style.height=c+"px","canvas"===this.domElements[d].tagName.toLowerCase()&&(this.contexts[d]&&this.contexts[d].scale?(this.domElements[d].setAttribute("width",b+"px"),this.domElements[d].setAttribute("height",c+"px")):(this.domElements[d].setAttribute("width",b*this.settings("webglOversamplingRatio")+"px"),this.domElements[d].setAttribute("height",c*this.settings("webglOversamplingRatio")+"px")));for(d in this.contexts)this.contexts[d]&&this.contexts[d].viewport&&this.contexts[d].viewport(0,0,this.width*this.settings("webglOversamplingRatio"),this.height*this.settings("webglOversamplingRatio"));return this},sigma.renderers.webgl.prototype.clear=function(){var a;for(a in this.domElements)"CANVAS"===this.domElements[a].tagName&&(this.domElements[a].width=this.domElements[a].width);return this.contexts.nodes.clear(this.contexts.nodes.COLOR_BUFFER_BIT),this.contexts.edges.clear(this.contexts.edges.COLOR_BUFFER_BIT),this},sigma.renderers.webgl.prototype.kill=function(){for(var a,b;b=this.captors.pop();)b.kill();delete this.captors;for(a in this.domElements)this.domElements[a].parentNode.removeChild(this.domElements[a]),delete this.domElements[a],delete this.contexts[a];delete this.domElements,delete this.contexts},sigma.utils.pkg("sigma.webgl.nodes"),sigma.utils.pkg("sigma.webgl.edges"),sigma.utils.pkg("sigma.canvas.labels")}.call(this),function(a){"use strict";if("undefined"==typeof sigma)throw"sigma is not declared";if("undefined"==typeof conrad)throw"conrad is not declared";sigma.utils.pkg("sigma.renderers"),sigma.renderers.svg=function(a,b,c,d){if("object"!=typeof d)throw"sigma.renderers.svg: Wrong arguments.";if(!(d.container instanceof HTMLElement))throw"Container not found.";var e,f,g,h,i=this;for(sigma.classes.dispatcher.extend(this),this.graph=a,this.camera=b,this.domElements={graph:null,groups:{},nodes:{},edges:{},labels:{},hovers:{}},this.measurementCanvas=null,this.options=d,this.container=this.options.container,this.settings="object"==typeof d.settings&&d.settings?c.embedObjects(d.settings):c,this.settings("freeStyle",!!this.options.freeStyle),this.settings("xmlns","http://www.w3.org/2000/svg"),this.nodesOnScreen=[],this.edgesOnScreen=[],this.options.prefix="renderer"+sigma.utils.id()+":",this.initDOM("svg"),this.captors=[],g=this.options.captors||[sigma.captors.mouse,sigma.captors.touch],e=0,f=g.length;f>e;e++)h="function"==typeof g[e]?g[e]:sigma.captors[g[e]],this.captors.push(new h(this.domElements.graph,this.camera,this.settings));window.addEventListener("resize",function(){i.resize()}),sigma.misc.bindDOMEvents.call(this,this.domElements.graph),this.bindHovers(this.options.prefix),this.resize(!1)},sigma.renderers.svg.prototype.render=function(b){b=b||{};var c,d,e,f,g,h,i,j,k,l={},m=this.graph,n=this.graph.nodes,o=(this.options.prefix||"",this.settings(b,"drawEdges")),p=this.settings(b,"drawNodes"),q=(this.settings(b,"drawLabels"),this.settings.embedObjects(b,{prefix:this.options.prefix,forceLabels:this.options.forceLabels}));for(this.settings(b,"hideEdgesOnMove")&&(this.camera.isAnimated||this.camera.isMoving)&&(o=!1),this.camera.applyView(a,this.options.prefix,{width:this.width,height:this.height}),this.hideDOMElements(this.domElements.nodes),this.hideDOMElements(this.domElements.edges),this.hideDOMElements(this.domElements.labels),this.edgesOnScreen=[],this.nodesOnScreen=this.camera.quadtree.area(this.camera.getRectangle(this.width,this.height)),c=this.nodesOnScreen,d=0,f=c.length;f>d;d++)l[c[d].id]=c[d];for(c=m.edges(),d=0,f=c.length;f>d;d++)g=c[d],!l[g.source]&&!l[g.target]||g.hidden||n(g.source).hidden||n(g.target).hidden||this.edgesOnScreen.push(g);if(j=sigma.svg.nodes,k=sigma.svg.labels,p)for(c=this.nodesOnScreen,d=0,f=c.length;f>d;d++)c[d].hidden||this.domElements.nodes[c[d].id]||(e=(j[c[d].type]||j.def).create(c[d],q),this.domElements.nodes[c[d].id]=e,this.domElements.groups.nodes.appendChild(e),e=(k[c[d].type]||k.def).create(c[d],q),this.domElements.labels[c[d].id]=e,this.domElements.groups.labels.appendChild(e));if(p)for(c=this.nodesOnScreen,d=0,f=c.length;f>d;d++)c[d].hidden||((j[c[d].type]||j.def).update(c[d],this.domElements.nodes[c[d].id],q),(k[c[d].type]||k.def).update(c[d],this.domElements.labels[c[d].id],q));if(j=sigma.svg.edges,o)for(c=this.edgesOnScreen,d=0,f=c.length;f>d;d++)this.domElements.edges[c[d].id]||(h=n(c[d].source),i=n(c[d].target),e=(j[c[d].type]||j.def).create(c[d],h,i,q),this.domElements.edges[c[d].id]=e,this.domElements.groups.edges.appendChild(e));if(o)for(c=this.edgesOnScreen,d=0,f=c.length;f>d;d++)h=n(c[d].source),i=n(c[d].target),(j[c[d].type]||j.def).update(c[d],this.domElements.edges[c[d].id],h,i,q);return this.dispatchEvent("render"),this},sigma.renderers.svg.prototype.initDOM=function(a){var b,c,d,e=document.createElementNS(this.settings("xmlns"),a),f=this.settings("classPrefix");e.style.position="absolute",e.setAttribute("class",f+"-svg"),e.setAttribute("xmlns",this.settings("xmlns")),e.setAttribute("xmlns:xlink","http://www.w3.org/1999/xlink"),e.setAttribute("version","1.1");var g=document.createElement("canvas");g.setAttribute("class",f+"-measurement-canvas"),this.domElements.graph=this.container.appendChild(e);var h=["edges","nodes","labels","hovers"];for(d=0,c=h.length;c>d;d++)b=document.createElementNS(this.settings("xmlns"),"g"),b.setAttributeNS(null,"id",f+"-group-"+h[d]),b.setAttributeNS(null,"class",f+"-group"),this.domElements.groups[h[d]]=this.domElements.graph.appendChild(b);this.container.appendChild(g),this.measurementCanvas=g.getContext("2d")},sigma.renderers.svg.prototype.hideDOMElements=function(a){var b,c;for(c in a)b=a[c],sigma.svg.utils.hide(b);return this},sigma.renderers.svg.prototype.bindHovers=function(a){function b(b){var c=b.data.node,d=g.settings.embedObjects({prefix:a});if(d("enableHovering")){var h=(f[c.type]||f.def).create(c,g.domElements.nodes[c.id],g.measurementCanvas,d);g.domElements.hovers[c.id]=h,g.domElements.groups.hovers.appendChild(h),e=c}}function c(b){var c=b.data.node,d=g.settings.embedObjects({prefix:a});d("enableHovering")&&(g.domElements.groups.hovers.removeChild(g.domElements.hovers[c.id]),e=null,delete g.domElements.hovers[c.id],g.domElements.groups.nodes.appendChild(g.domElements.nodes[c.id]))}function d(){if(e){var b=g.settings.embedObjects({prefix:a});g.domElements.groups.hovers.removeChild(g.domElements.hovers[e.id]),delete g.domElements.hovers[e.id];var c=(f[e.type]||f.def).create(e,g.domElements.nodes[e.id],g.measurementCanvas,b);g.domElements.hovers[e.id]=c,g.domElements.groups.hovers.appendChild(c)}}var e,f=sigma.svg.hovers,g=this;this.bind("overNode",b),this.bind("outNode",c),this.bind("render",d)},sigma.renderers.svg.prototype.resize=function(b,c){var d=this.width,e=this.height,f=1;return b!==a&&c!==a?(this.width=b,this.height=c):(this.width=this.container.offsetWidth,this.height=this.container.offsetHeight,b=this.width,c=this.height),(d!==this.width||e!==this.height)&&(this.domElements.graph.style.width=b+"px",this.domElements.graph.style.height=c+"px","svg"===this.domElements.graph.tagName.toLowerCase()&&(this.domElements.graph.setAttribute("width",b*f),this.domElements.graph.setAttribute("height",c*f))),this},sigma.utils.pkg("sigma.svg.nodes"),sigma.utils.pkg("sigma.svg.edges"),sigma.utils.pkg("sigma.svg.labels")}.call(this),function(a){"use strict";if("undefined"==typeof sigma)throw"sigma is not declared";sigma.utils.pkg("sigma.renderers");var b,c=!!a.WebGLRenderingContext;if(c){b=document.createElement("canvas");try{c=!(!b.getContext("webgl")&&!b.getContext("experimental-webgl"))}catch(d){c=!1}}sigma.renderers.def=c?sigma.renderers.webgl:sigma.renderers.canvas}(this),function(){"use strict";sigma.utils.pkg("sigma.webgl.nodes"),sigma.webgl.nodes.def={POINTS:3,ATTRIBUTES:5,addNode:function(a,b,c,d,e){var f=sigma.utils.floatColor(a.color||e("defaultNodeColor"));b[c++]=a[d+"x"],b[c++]=a[d+"y"],b[c++]=a[d+"size"],b[c++]=f,b[c++]=0,b[c++]=a[d+"x"],b[c++]=a[d+"y"],b[c++]=a[d+"size"],b[c++]=f,b[c++]=2*Math.PI/3,b[c++]=a[d+"x"],b[c++]=a[d+"y"],b[c++]=a[d+"size"],b[c++]=f,b[c++]=4*Math.PI/3},render:function(a,b,c,d){var e,f=a.getAttribLocation(b,"a_position"),g=a.getAttribLocation(b,"a_size"),h=a.getAttribLocation(b,"a_color"),i=a.getAttribLocation(b,"a_angle"),j=a.getUniformLocation(b,"u_resolution"),k=a.getUniformLocation(b,"u_matrix"),l=a.getUniformLocation(b,"u_ratio"),m=a.getUniformLocation(b,"u_scale");e=a.createBuffer(),a.bindBuffer(a.ARRAY_BUFFER,e),a.bufferData(a.ARRAY_BUFFER,c,a.DYNAMIC_DRAW),a.uniform2f(j,d.width,d.height),a.uniform1f(l,1/Math.pow(d.ratio,d.settings("nodesPowRatio"))),a.uniform1f(m,d.scalingRatio),a.uniformMatrix3fv(k,!1,d.matrix),a.enableVertexAttribArray(f),a.enableVertexAttribArray(g),a.enableVertexAttribArray(h),a.enableVertexAttribArray(i),a.vertexAttribPointer(f,2,a.FLOAT,!1,this.ATTRIBUTES*Float32Array.BYTES_PER_ELEMENT,0),a.vertexAttribPointer(g,1,a.FLOAT,!1,this.ATTRIBUTES*Float32Array.BYTES_PER_ELEMENT,8),a.vertexAttribPointer(h,1,a.FLOAT,!1,this.ATTRIBUTES*Float32Array.BYTES_PER_ELEMENT,12),a.vertexAttribPointer(i,1,a.FLOAT,!1,this.ATTRIBUTES*Float32Array.BYTES_PER_ELEMENT,16),a.drawArrays(a.TRIANGLES,d.start||0,d.count||c.length/this.ATTRIBUTES)},initProgram:function(a){var b,c,d;return b=sigma.utils.loadShader(a,["attribute vec2 a_position;","attribute float a_size;","attribute float a_color;","attribute float a_angle;","uniform vec2 u_resolution;","uniform float u_ratio;","uniform float u_scale;","uniform mat3 u_matrix;","varying vec4 color;","varying vec2 center;","varying float radius;","void main() {","radius = a_size * u_ratio;","vec2 position = (u_matrix * vec3(a_position, 1)).xy;","center = position * u_scale;","center = vec2(center.x, u_scale * u_resolution.y - center.y);","position = position +","2.0 * radius * vec2(cos(a_angle), sin(a_angle));","position = (position / u_resolution * 2.0 - 1.0) * vec2(1, -1);","radius = radius * u_scale;","gl_Position = vec4(position, 0, 1);","float c = a_color;","color.b = mod(c, 256.0); c = floor(c / 256.0);","color.g = mod(c, 256.0); c = floor(c / 256.0);","color.r = mod(c, 256.0); c = floor(c / 256.0); color /= 255.0;","color.a = 1.0;","}"].join("\n"),a.VERTEX_SHADER),c=sigma.utils.loadShader(a,["precision mediump float;","varying vec4 color;","varying vec2 center;","varying float radius;","void main(void) {","vec4 color0 = vec4(0.0, 0.0, 0.0, 0.0);","vec2 m = gl_FragCoord.xy - center;","float diff = radius - sqrt(m.x * m.x + m.y * m.y);","if (diff > 0.0)","gl_FragColor = color;","else","gl_FragColor = color0;","}"].join("\n"),a.FRAGMENT_SHADER),d=sigma.utils.loadProgram(a,[b,c])}}}(),function(){"use strict";sigma.utils.pkg("sigma.webgl.nodes"),sigma.webgl.nodes.fast={POINTS:1,ATTRIBUTES:4,addNode:function(a,b,c,d,e){b[c++]=a[d+"x"],b[c++]=a[d+"y"],b[c++]=a[d+"size"],b[c++]=sigma.utils.floatColor(a.color||e("defaultNodeColor"))},render:function(a,b,c,d){var e,f=a.getAttribLocation(b,"a_position"),g=a.getAttribLocation(b,"a_size"),h=a.getAttribLocation(b,"a_color"),i=a.getUniformLocation(b,"u_resolution"),j=a.getUniformLocation(b,"u_matrix"),k=a.getUniformLocation(b,"u_ratio"),l=a.getUniformLocation(b,"u_scale");e=a.createBuffer(),a.bindBuffer(a.ARRAY_BUFFER,e),a.bufferData(a.ARRAY_BUFFER,c,a.DYNAMIC_DRAW),a.uniform2f(i,d.width,d.height),a.uniform1f(k,1/Math.pow(d.ratio,d.settings("nodesPowRatio"))),a.uniform1f(l,d.scalingRatio),a.uniformMatrix3fv(j,!1,d.matrix),a.enableVertexAttribArray(f),a.enableVertexAttribArray(g),a.enableVertexAttribArray(h),a.vertexAttribPointer(f,2,a.FLOAT,!1,this.ATTRIBUTES*Float32Array.BYTES_PER_ELEMENT,0),a.vertexAttribPointer(g,1,a.FLOAT,!1,this.ATTRIBUTES*Float32Array.BYTES_PER_ELEMENT,8),a.vertexAttribPointer(h,1,a.FLOAT,!1,this.ATTRIBUTES*Float32Array.BYTES_PER_ELEMENT,12),a.drawArrays(a.POINTS,d.start||0,d.count||c.length/this.ATTRIBUTES)},initProgram:function(a){var b,c,d;return b=sigma.utils.loadShader(a,["attribute vec2 a_position;","attribute float a_size;","attribute float a_color;","uniform vec2 u_resolution;","uniform float u_ratio;","uniform float u_scale;","uniform mat3 u_matrix;","varying vec4 color;","void main() {","gl_Position = vec4(","((u_matrix * vec3(a_position, 1)).xy /","u_resolution * 2.0 - 1.0) * vec2(1, -1),","0,","1",");","gl_PointSize = a_size * u_ratio * u_scale * 2.0;","float c = a_color;","color.b = mod(c, 256.0); c = floor(c / 256.0);","color.g = mod(c, 256.0); c = floor(c / 256.0);","color.r = mod(c, 256.0); c = floor(c / 256.0); color /= 255.0;","color.a = 1.0;","}"].join("\n"),a.VERTEX_SHADER),c=sigma.utils.loadShader(a,["precision mediump float;","varying vec4 color;","void main(void) {","gl_FragColor = color;","}"].join("\n"),a.FRAGMENT_SHADER),d=sigma.utils.loadProgram(a,[b,c])}}}(),function(){"use strict";sigma.utils.pkg("sigma.webgl.edges"),sigma.webgl.edges.def={POINTS:6,ATTRIBUTES:7,addEdge:function(a,b,c,d,e,f,g){var h=(a[f+"size"]||1)/2,i=b[f+"x"],j=b[f+"y"],k=c[f+"x"],l=c[f+"y"],m=a.color;if(!m)switch(g("edgeColor")){case"source":m=b.color||g("defaultNodeColor");break;case"target":m=c.color||g("defaultNodeColor");break;default:m=g("defaultEdgeColor")}m=sigma.utils.floatColor(m),d[e++]=i,d[e++]=j,d[e++]=k,d[e++]=l,d[e++]=h,d[e++]=0,d[e++]=m,d[e++]=k,d[e++]=l,d[e++]=i,d[e++]=j,d[e++]=h,d[e++]=1,d[e++]=m,d[e++]=k,d[e++]=l,d[e++]=i,d[e++]=j,d[e++]=h,d[e++]=0,d[e++]=m,d[e++]=k,d[e++]=l,d[e++]=i,d[e++]=j,d[e++]=h,d[e++]=0,d[e++]=m,d[e++]=i,d[e++]=j,d[e++]=k,d[e++]=l,d[e++]=h,d[e++]=1,d[e++]=m,d[e++]=i,d[e++]=j,d[e++]=k,d[e++]=l,d[e++]=h,d[e++]=0,d[e++]=m},render:function(a,b,c,d){var e,f=a.getAttribLocation(b,"a_color"),g=a.getAttribLocation(b,"a_position1"),h=a.getAttribLocation(b,"a_position2"),i=a.getAttribLocation(b,"a_thickness"),j=a.getAttribLocation(b,"a_minus"),k=a.getUniformLocation(b,"u_resolution"),l=a.getUniformLocation(b,"u_matrix"),m=a.getUniformLocation(b,"u_matrixHalfPi"),n=a.getUniformLocation(b,"u_matrixHalfPiMinus"),o=a.getUniformLocation(b,"u_ratio"),p=a.getUniformLocation(b,"u_scale");e=a.createBuffer(),a.bindBuffer(a.ARRAY_BUFFER,e),a.bufferData(a.ARRAY_BUFFER,c,a.STATIC_DRAW),a.uniform2f(k,d.width,d.height),a.uniform1f(o,d.ratio/Math.pow(d.ratio,d.settings("edgesPowRatio"))),a.uniform1f(p,d.scalingRatio),a.uniformMatrix3fv(l,!1,d.matrix),a.uniformMatrix2fv(m,!1,sigma.utils.matrices.rotation(Math.PI/2,!0)),a.uniformMatrix2fv(n,!1,sigma.utils.matrices.rotation(-Math.PI/2,!0)),a.enableVertexAttribArray(f),a.enableVertexAttribArray(g),a.enableVertexAttribArray(h),a.enableVertexAttribArray(i),a.enableVertexAttribArray(j),a.vertexAttribPointer(g,2,a.FLOAT,!1,this.ATTRIBUTES*Float32Array.BYTES_PER_ELEMENT,0),a.vertexAttribPointer(h,2,a.FLOAT,!1,this.ATTRIBUTES*Float32Array.BYTES_PER_ELEMENT,8),a.vertexAttribPointer(i,1,a.FLOAT,!1,this.ATTRIBUTES*Float32Array.BYTES_PER_ELEMENT,16),a.vertexAttribPointer(j,1,a.FLOAT,!1,this.ATTRIBUTES*Float32Array.BYTES_PER_ELEMENT,20),a.vertexAttribPointer(f,1,a.FLOAT,!1,this.ATTRIBUTES*Float32Array.BYTES_PER_ELEMENT,24),a.drawArrays(a.TRIANGLES,d.start||0,d.count||c.length/this.ATTRIBUTES)},initProgram:function(a){var b,c,d;return b=sigma.utils.loadShader(a,["attribute vec2 a_position1;","attribute vec2 a_position2;","attribute float a_thickness;","attribute float a_minus;","attribute float a_color;","uniform vec2 u_resolution;","uniform float u_ratio;","uniform float u_scale;","uniform mat3 u_matrix;","uniform mat2 u_matrixHalfPi;","uniform mat2 u_matrixHalfPiMinus;","varying vec4 color;","void main() {","vec2 position = a_thickness * u_ratio *","normalize(a_position2 - a_position1);","mat2 matrix = a_minus * u_matrixHalfPiMinus +","(1.0 - a_minus) * u_matrixHalfPi;","position = matrix * position + a_position1;","gl_Position = vec4(","((u_matrix * vec3(position, 1)).xy /","u_resolution * 2.0 - 1.0) * vec2(1, -1),","0,","1",");","float c = a_color;","color.b = mod(c, 256.0); c = floor(c / 256.0);","color.g = mod(c, 256.0); c = floor(c / 256.0);","color.r = mod(c, 256.0); c = floor(c / 256.0); color /= 255.0;","color.a = 1.0;","}"].join("\n"),a.VERTEX_SHADER),c=sigma.utils.loadShader(a,["precision mediump float;","varying vec4 color;","void main(void) {","gl_FragColor = color;","}"].join("\n"),a.FRAGMENT_SHADER),d=sigma.utils.loadProgram(a,[b,c])}}}(),function(){"use strict";sigma.utils.pkg("sigma.webgl.edges"),sigma.webgl.edges.fast={POINTS:2,ATTRIBUTES:3,addEdge:function(a,b,c,d,e,f,g){var h=((a[f+"size"]||1)/2,b[f+"x"]),i=b[f+"y"],j=c[f+"x"],k=c[f+"y"],l=a.color;if(!l)switch(g("edgeColor")){case"source":l=b.color||g("defaultNodeColor");break;case"target":l=c.color||g("defaultNodeColor");break;default:l=g("defaultEdgeColor")}l=sigma.utils.floatColor(l),d[e++]=h,d[e++]=i,d[e++]=l,d[e++]=j,d[e++]=k,d[e++]=l},render:function(a,b,c,d){var e,f=a.getAttribLocation(b,"a_color"),g=a.getAttribLocation(b,"a_position"),h=a.getUniformLocation(b,"u_resolution"),i=a.getUniformLocation(b,"u_matrix");e=a.createBuffer(),a.bindBuffer(a.ARRAY_BUFFER,e),a.bufferData(a.ARRAY_BUFFER,c,a.DYNAMIC_DRAW),a.uniform2f(h,d.width,d.height),a.uniformMatrix3fv(i,!1,d.matrix),a.enableVertexAttribArray(g),a.enableVertexAttribArray(f),a.vertexAttribPointer(g,2,a.FLOAT,!1,this.ATTRIBUTES*Float32Array.BYTES_PER_ELEMENT,0),a.vertexAttribPointer(f,1,a.FLOAT,!1,this.ATTRIBUTES*Float32Array.BYTES_PER_ELEMENT,8),a.lineWidth(3),a.drawArrays(a.LINES,d.start||0,d.count||c.length/this.ATTRIBUTES)},initProgram:function(a){var b,c,d;return b=sigma.utils.loadShader(a,["attribute vec2 a_position;","attribute float a_color;","uniform vec2 u_resolution;","uniform mat3 u_matrix;","varying vec4 color;","void main() {","gl_Position = vec4(","((u_matrix * vec3(a_position, 1)).xy /","u_resolution * 2.0 - 1.0) * vec2(1, -1),","0,","1",");","float c = a_color;","color.b = mod(c, 256.0); c = floor(c / 256.0);","color.g = mod(c, 256.0); c = floor(c / 256.0);","color.r = mod(c, 256.0); c = floor(c / 256.0); color /= 255.0;","color.a = 1.0;","}"].join("\n"),a.VERTEX_SHADER),c=sigma.utils.loadShader(a,["precision mediump float;","varying vec4 color;","void main(void) {","gl_FragColor = color;","}"].join("\n"),a.FRAGMENT_SHADER),d=sigma.utils.loadProgram(a,[b,c])}}}(),function(){"use strict";sigma.utils.pkg("sigma.webgl.edges"),sigma.webgl.edges.arrow={POINTS:9,ATTRIBUTES:11,addEdge:function(a,b,c,d,e,f,g){var h=(a[f+"size"]||1)/2,i=b[f+"x"],j=b[f+"y"],k=c[f+"x"],l=c[f+"y"],m=c[f+"size"],n=a.color;if(!n)switch(g("edgeColor")){case"source":n=b.color||g("defaultNodeColor");break;case"target":n=c.color||g("defaultNodeColor");break;default:n=g("defaultEdgeColor")}n=sigma.utils.floatColor(n),d[e++]=i,d[e++]=j,d[e++]=k,d[e++]=l,d[e++]=h,d[e++]=m,d[e++]=0,d[e++]=0,d[e++]=0,d[e++]=0,d[e++]=n,d[e++]=k,d[e++]=l,d[e++]=i,d[e++]=j,d[e++]=h,d[e++]=m,d[e++]=1,d[e++]=1,d[e++]=0,d[e++]=0,d[e++]=n,d[e++]=k,d[e++]=l,d[e++]=i,d[e++]=j,d[e++]=h,d[e++]=m,d[e++]=1,d[e++]=0,d[e++]=0,d[e++]=0,d[e++]=n,d[e++]=k,d[e++]=l,d[e++]=i,d[e++]=j,d[e++]=h,d[e++]=m,d[e++]=1,d[e++]=0,d[e++]=0,d[e++]=0,d[e++]=n,d[e++]=i,d[e++]=j,d[e++]=k,d[e++]=l,d[e++]=h,d[e++]=m,d[e++]=0,d[e++]=1,d[e++]=0,d[e++]=0,d[e++]=n,d[e++]=i,d[e++]=j,d[e++]=k,d[e++]=l,d[e++]=h,d[e++]=m,d[e++]=0,d[e++]=0,d[e++]=0,d[e++]=0,d[e++]=n,d[e++]=k,d[e++]=l,d[e++]=i,d[e++]=j,d[e++]=h,d[e++]=m,d[e++]=1,d[e++]=0,d[e++]=1,d[e++]=-1,d[e++]=n,d[e++]=k,d[e++]=l,d[e++]=i,d[e++]=j,d[e++]=h,d[e++]=m,d[e++]=1,d[e++]=0,d[e++]=1,d[e++]=0,d[e++]=n,d[e++]=k,d[e++]=l,d[e++]=i,d[e++]=j,d[e++]=h,d[e++]=m,d[e++]=1,d[e++]=0,d[e++]=1,d[e++]=1,d[e++]=n},render:function(a,b,c,d){var e,f=a.getAttribLocation(b,"a_pos1"),g=a.getAttribLocation(b,"a_pos2"),h=a.getAttribLocation(b,"a_thickness"),i=a.getAttribLocation(b,"a_tSize"),j=a.getAttribLocation(b,"a_delay"),k=a.getAttribLocation(b,"a_minus"),l=a.getAttribLocation(b,"a_head"),m=a.getAttribLocation(b,"a_headPosition"),n=a.getAttribLocation(b,"a_color"),o=a.getUniformLocation(b,"u_resolution"),p=a.getUniformLocation(b,"u_matrix"),q=a.getUniformLocation(b,"u_matrixHalfPi"),r=a.getUniformLocation(b,"u_matrixHalfPiMinus"),s=a.getUniformLocation(b,"u_ratio"),t=a.getUniformLocation(b,"u_nodeRatio"),u=a.getUniformLocation(b,"u_arrowHead"),v=a.getUniformLocation(b,"u_scale");e=a.createBuffer(),a.bindBuffer(a.ARRAY_BUFFER,e),a.bufferData(a.ARRAY_BUFFER,c,a.STATIC_DRAW),a.uniform2f(o,d.width,d.height),a.uniform1f(s,d.ratio/Math.pow(d.ratio,d.settings("edgesPowRatio"))),a.uniform1f(t,Math.pow(d.ratio,d.settings("nodesPowRatio"))/d.ratio),a.uniform1f(u,5),a.uniform1f(v,d.scalingRatio),a.uniformMatrix3fv(p,!1,d.matrix),a.uniformMatrix2fv(q,!1,sigma.utils.matrices.rotation(Math.PI/2,!0)),a.uniformMatrix2fv(r,!1,sigma.utils.matrices.rotation(-Math.PI/2,!0)),a.enableVertexAttribArray(f),a.enableVertexAttribArray(g),a.enableVertexAttribArray(h),a.enableVertexAttribArray(i),a.enableVertexAttribArray(j),a.enableVertexAttribArray(k),a.enableVertexAttribArray(l),a.enableVertexAttribArray(m),a.enableVertexAttribArray(n),a.vertexAttribPointer(f,2,a.FLOAT,!1,this.ATTRIBUTES*Float32Array.BYTES_PER_ELEMENT,0),a.vertexAttribPointer(g,2,a.FLOAT,!1,this.ATTRIBUTES*Float32Array.BYTES_PER_ELEMENT,8),a.vertexAttribPointer(h,1,a.FLOAT,!1,this.ATTRIBUTES*Float32Array.BYTES_PER_ELEMENT,16),a.vertexAttribPointer(i,1,a.FLOAT,!1,this.ATTRIBUTES*Float32Array.BYTES_PER_ELEMENT,20),a.vertexAttribPointer(j,1,a.FLOAT,!1,this.ATTRIBUTES*Float32Array.BYTES_PER_ELEMENT,24),a.vertexAttribPointer(k,1,a.FLOAT,!1,this.ATTRIBUTES*Float32Array.BYTES_PER_ELEMENT,28),a.vertexAttribPointer(l,1,a.FLOAT,!1,this.ATTRIBUTES*Float32Array.BYTES_PER_ELEMENT,32),a.vertexAttribPointer(m,1,a.FLOAT,!1,this.ATTRIBUTES*Float32Array.BYTES_PER_ELEMENT,36),a.vertexAttribPointer(n,1,a.FLOAT,!1,this.ATTRIBUTES*Float32Array.BYTES_PER_ELEMENT,40),a.drawArrays(a.TRIANGLES,d.start||0,d.count||c.length/this.ATTRIBUTES)},initProgram:function(a){var b,c,d;return b=sigma.utils.loadShader(a,["attribute vec2 a_pos1;","attribute vec2 a_pos2;","attribute float a_thickness;","attribute float a_tSize;","attribute float a_delay;","attribute float a_minus;","attribute float a_head;","attribute float a_headPosition;","attribute float a_color;","uniform vec2 u_resolution;","uniform float u_ratio;","uniform float u_nodeRatio;","uniform float u_arrowHead;","uniform float u_scale;","uniform mat3 u_matrix;","uniform mat2 u_matrixHalfPi;","uniform mat2 u_matrixHalfPiMinus;","varying vec4 color;","void main() {","vec2 pos = normalize(a_pos2 - a_pos1);","mat2 matrix = (1.0 - a_head) *","(","a_minus * u_matrixHalfPiMinus +","(1.0 - a_minus) * u_matrixHalfPi",") + a_head * (","a_headPosition * u_matrixHalfPiMinus * 0.6 +","(a_headPosition * a_headPosition - 1.0) * mat2(1.0)",");","pos = a_pos1 + (","(1.0 - a_head) * a_thickness * u_ratio * matrix * pos +","a_head * u_arrowHead * a_thickness * u_ratio * matrix * pos +","a_delay * pos * (","a_tSize / u_nodeRatio +","u_arrowHead * a_thickness * u_ratio",")",");","gl_Position = vec4(","((u_matrix * vec3(pos, 1)).xy /","u_resolution * 2.0 - 1.0) * vec2(1, -1),","0,","1",");","float c = a_color;","color.b = mod(c, 256.0); c = floor(c / 256.0);","color.g = mod(c, 256.0); c = floor(c / 256.0);","color.r = mod(c, 256.0); c = floor(c / 256.0); color /= 255.0;","color.a = 1.0;","}"].join("\n"),a.VERTEX_SHADER),c=sigma.utils.loadShader(a,["precision mediump float;","varying vec4 color;","void main(void) {","gl_FragColor = color;","}"].join("\n"),a.FRAGMENT_SHADER),d=sigma.utils.loadProgram(a,[b,c])}}}(),function(a){"use strict";if("undefined"==typeof sigma)throw"sigma is not declared";sigma.utils.pkg("sigma.canvas.labels"),sigma.canvas.labels.def=function(a,b,c){var d,e=c("prefix")||"",f=a[e+"size"];f0&&(b.beginPath(),b.fillStyle="node"===c("nodeBorderColor")?a.color||c("defaultNodeColor"):c("defaultNodeBorderColor"),b.arc(a[j+"x"],a[j+"y"],k+c("borderSize"),0,2*Math.PI,!0),b.closePath(),b.fill());var m=sigma.canvas.nodes[a.type]||sigma.canvas.nodes.def;m(a,b,c),a.label&&"string"==typeof a.label&&(b.fillStyle="node"===c("labelHoverColor")?a.color||c("defaultNodeColor"):c("defaultLabelHoverColor"),b.fillText(a.label,Math.round(a[j+"x"]+k+3),Math.round(a[j+"y"]+l/3)))}}.call(this),function(){"use strict";sigma.utils.pkg("sigma.canvas.nodes"),sigma.canvas.nodes.def=function(a,b,c){var d=c("prefix")||"";b.fillStyle=a.color||c("defaultNodeColor"),b.beginPath(),b.arc(a[d+"x"],a[d+"y"],a[d+"size"],0,2*Math.PI,!0),b.closePath(),b.fill()}}(),function(){"use strict";sigma.utils.pkg("sigma.canvas.edges"),sigma.canvas.edges.def=function(a,b,c,d,e){var f=a.color,g=e("prefix")||"",h=a[g+"size"]||1,i=e("edgeColor"),j=e("defaultNodeColor"),k=e("defaultEdgeColor");if(!f)switch(i){case"source":f=b.color||j;break;case"target":f=c.color||j;break;default:f=k}d.strokeStyle=f,d.lineWidth=h,d.beginPath(),d.moveTo(b[g+"x"],b[g+"y"]),d.lineTo(c[g+"x"],c[g+"y"]),d.stroke()}}(),function(){"use strict";sigma.utils.pkg("sigma.canvas.edges"),sigma.canvas.edges.curve=function(a,b,c,d,e){var f=a.color,g=e("prefix")||"",h=a[g+"size"]||1,i=e("edgeColor"),j=e("defaultNodeColor"),k=e("defaultEdgeColor"),l={},m=b[g+"size"],n=b[g+"x"],o=b[g+"y"],p=c[g+"x"],q=c[g+"y"];if(l=b.id===c.id?sigma.utils.getSelfLoopControlPoints(n,o,m):sigma.utils.getQuadraticControlPoint(n,o,p,q),!f)switch(i){case"source":f=b.color||j;break;case"target":f=c.color||j;break;default:f=k}d.strokeStyle=f,d.lineWidth=h,d.beginPath(),d.moveTo(n,o),b.id===c.id?d.bezierCurveTo(l.x1,l.y1,l.x2,l.y2,p,q):d.quadraticCurveTo(l.x,l.y,p,q),d.stroke()}}(),function(){"use strict";sigma.utils.pkg("sigma.canvas.edges"),sigma.canvas.edges.arrow=function(a,b,c,d,e){var f=a.color,g=e("prefix")||"",h=e("edgeColor"),i=e("defaultNodeColor"),j=e("defaultEdgeColor"),k=a[g+"size"]||1,l=c[g+"size"],m=b[g+"x"],n=b[g+"y"],o=c[g+"x"],p=c[g+"y"],q=Math.max(2.5*k,e("minArrowSize")),r=Math.sqrt(Math.pow(o-m,2)+Math.pow(p-n,2)),s=m+(o-m)*(r-q-l)/r,t=n+(p-n)*(r-q-l)/r,u=(o-m)*q/r,v=(p-n)*q/r;if(!f)switch(h){case"source":f=b.color||i;break;case"target":f=c.color||i;break;default:f=j}d.strokeStyle=f,d.lineWidth=k,d.beginPath(),d.moveTo(m,n),d.lineTo(s,t),d.stroke(),d.fillStyle=f,d.beginPath(),d.moveTo(s+u,t+v),d.lineTo(s+.6*v,t-.6*u),d.lineTo(s-.6*v,t+.6*u),d.lineTo(s+u,t+v),d.closePath(),d.fill()}}(),function(){"use strict";sigma.utils.pkg("sigma.canvas.edges"),sigma.canvas.edges.curvedArrow=function(a,b,c,d,e){var f,g,h,i,j,k=a.color,l=e("prefix")||"",m=e("edgeColor"),n=e("defaultNodeColor"),o=e("defaultEdgeColor"),p={},q=a[l+"size"]||1,r=c[l+"size"],s=b[l+"x"],t=b[l+"y"],u=c[l+"x"],v=c[l+"y"],w=Math.max(2.5*q,e("minArrowSize"));if(p=b.id===c.id?sigma.utils.getSelfLoopControlPoints(s,t,r):sigma.utils.getQuadraticControlPoint(s,t,u,v),b.id===c.id?(f=Math.sqrt(Math.pow(u-p.x1,2)+Math.pow(v-p.y1,2)),g=p.x1+(u-p.x1)*(f-w-r)/f,h=p.y1+(v-p.y1)*(f-w-r)/f,i=(u-p.x1)*w/f,j=(v-p.y1)*w/f):(f=Math.sqrt(Math.pow(u-p.x,2)+Math.pow(v-p.y,2)),g=p.x+(u-p.x)*(f-w-r)/f,h=p.y+(v-p.y)*(f-w-r)/f,i=(u-p.x)*w/f,j=(v-p.y)*w/f),!k)switch(m){case"source":k=b.color||n;break;case"target":k=c.color||n;break;default:k=o}d.strokeStyle=k,d.lineWidth=q,d.beginPath(),d.moveTo(s,t),b.id===c.id?d.bezierCurveTo(p.x2,p.y2,p.x1,p.y1,g,h):d.quadraticCurveTo(p.x,p.y,g,h),d.stroke(),d.fillStyle=k,d.beginPath(),d.moveTo(g+i,h+j),d.lineTo(g+.6*j,h-.6*i),d.lineTo(g-.6*j,h+.6*i),d.lineTo(g+i,h+j),d.closePath(),d.fill()}}(),function(){"use strict";sigma.utils.pkg("sigma.canvas.edgehovers"),sigma.canvas.edgehovers.def=function(a,b,c,d,e){var f=a.color,g=e("prefix")||"",h=a[g+"size"]||1,i=e("edgeColor"),j=e("defaultNodeColor"),k=e("defaultEdgeColor");if(!f)switch(i){case"source":f=b.color||j;break;case"target":f=c.color||j;break;default:f=k}f="edge"===e("edgeHoverColor")?a.hover_color||f:a.hover_color||e("defaultEdgeHoverColor")||f,h*=e("edgeHoverSizeRatio"),d.strokeStyle=f,d.lineWidth=h,d.beginPath(),d.moveTo(b[g+"x"],b[g+"y"]),d.lineTo(c[g+"x"],c[g+"y"]),d.stroke()}}(),function(){"use strict";sigma.utils.pkg("sigma.canvas.edgehovers"),sigma.canvas.edgehovers.curve=function(a,b,c,d,e){var f=a.color,g=e("prefix")||"",h=e("edgeHoverSizeRatio")*(a[g+"size"]||1),i=e("edgeColor"),j=e("defaultNodeColor"),k=e("defaultEdgeColor"),l={},m=b[g+"size"],n=b[g+"x"],o=b[g+"y"],p=c[g+"x"],q=c[g+"y"];if(l=b.id===c.id?sigma.utils.getSelfLoopControlPoints(n,o,m):sigma.utils.getQuadraticControlPoint(n,o,p,q),!f)switch(i){case"source":f=b.color||j;break;case"target":f=c.color||j;break;default:f=k}f="edge"===e("edgeHoverColor")?a.hover_color||f:a.hover_color||e("defaultEdgeHoverColor")||f,d.strokeStyle=f,d.lineWidth=h,d.beginPath(),d.moveTo(n,o),b.id===c.id?d.bezierCurveTo(l.x1,l.y1,l.x2,l.y2,p,q):d.quadraticCurveTo(l.x,l.y,p,q),d.stroke()}}(),function(){"use strict";sigma.utils.pkg("sigma.canvas.edgehovers"),sigma.canvas.edgehovers.arrow=function(a,b,c,d,e){var f=a.color,g=e("prefix")||"",h=e("edgeColor"),i=e("defaultNodeColor"),j=e("defaultEdgeColor"),k=a[g+"size"]||1,l=c[g+"size"],m=b[g+"x"],n=b[g+"y"],o=c[g+"x"],p=c[g+"y"]; -k=a.hover?e("edgeHoverSizeRatio")*k:k;var q=2.5*k,r=Math.sqrt(Math.pow(o-m,2)+Math.pow(p-n,2)),s=m+(o-m)*(r-q-l)/r,t=n+(p-n)*(r-q-l)/r,u=(o-m)*q/r,v=(p-n)*q/r;if(!f)switch(h){case"source":f=b.color||i;break;case"target":f=c.color||i;break;default:f=j}f="edge"===e("edgeHoverColor")?a.hover_color||f:a.hover_color||e("defaultEdgeHoverColor")||f,d.strokeStyle=f,d.lineWidth=k,d.beginPath(),d.moveTo(m,n),d.lineTo(s,t),d.stroke(),d.fillStyle=f,d.beginPath(),d.moveTo(s+u,t+v),d.lineTo(s+.6*v,t-.6*u),d.lineTo(s-.6*v,t+.6*u),d.lineTo(s+u,t+v),d.closePath(),d.fill()}}(),function(){"use strict";sigma.utils.pkg("sigma.canvas.edgehovers"),sigma.canvas.edgehovers.curvedArrow=function(a,b,c,d,e){var f,g,h,i,j,k,l=a.color,m=e("prefix")||"",n=e("edgeColor"),o=e("defaultNodeColor"),p=e("defaultEdgeColor"),q={},r=e("edgeHoverSizeRatio")*(a[m+"size"]||1),s=c[m+"size"],t=b[m+"x"],u=b[m+"y"],v=c[m+"x"],w=c[m+"y"];if(q=b.id===c.id?sigma.utils.getSelfLoopControlPoints(t,u,s):sigma.utils.getQuadraticControlPoint(t,u,v,w),b.id===c.id?(f=Math.sqrt(Math.pow(v-q.x1,2)+Math.pow(w-q.y1,2)),g=2.5*r,h=q.x1+(v-q.x1)*(f-g-s)/f,i=q.y1+(w-q.y1)*(f-g-s)/f,j=(v-q.x1)*g/f,k=(w-q.y1)*g/f):(f=Math.sqrt(Math.pow(v-q.x,2)+Math.pow(w-q.y,2)),g=2.5*r,h=q.x+(v-q.x)*(f-g-s)/f,i=q.y+(w-q.y)*(f-g-s)/f,j=(v-q.x)*g/f,k=(w-q.y)*g/f),!l)switch(n){case"source":l=b.color||o;break;case"target":l=c.color||o;break;default:l=p}l="edge"===e("edgeHoverColor")?a.hover_color||l:a.hover_color||e("defaultEdgeHoverColor")||l,d.strokeStyle=l,d.lineWidth=r,d.beginPath(),d.moveTo(t,u),b.id===c.id?d.bezierCurveTo(q.x2,q.y2,q.x1,q.y1,h,i):d.quadraticCurveTo(q.x,q.y,h,i),d.stroke(),d.fillStyle=l,d.beginPath(),d.moveTo(h+j,i+k),d.lineTo(h+.6*k,i-.6*j),d.lineTo(h-.6*k,i+.6*j),d.lineTo(h+j,i+k),d.closePath(),d.fill()}}(),function(a){"use strict";if("undefined"==typeof sigma)throw"sigma is not declared";sigma.utils.pkg("sigma.canvas.extremities"),sigma.canvas.extremities.def=function(a,b,c,d,e){(sigma.canvas.hovers[b.type]||sigma.canvas.hovers.def)(b,d,e),(sigma.canvas.hovers[c.type]||sigma.canvas.hovers.def)(c,d,e)}}.call(this),function(){"use strict";sigma.utils.pkg("sigma.svg.utils"),sigma.svg.utils={show:function(a){return a.style.display="",this},hide:function(a){return a.style.display="none",this}}}(),function(){"use strict";sigma.utils.pkg("sigma.svg.nodes"),sigma.svg.nodes.def={create:function(a,b){var c=(b("prefix")||"",document.createElementNS(b("xmlns"),"circle"));return c.setAttributeNS(null,"data-node-id",a.id),c.setAttributeNS(null,"class",b("classPrefix")+"-node"),c.setAttributeNS(null,"fill",a.color||b("defaultNodeColor")),c},update:function(a,b,c){var d=c("prefix")||"";return b.setAttributeNS(null,"cx",a[d+"x"]),b.setAttributeNS(null,"cy",a[d+"y"]),b.setAttributeNS(null,"r",a[d+"size"]),c("freeStyle")||b.setAttributeNS(null,"fill",a.color||c("defaultNodeColor")),b.style.display="",this}}}(),function(){"use strict";sigma.utils.pkg("sigma.svg.edges"),sigma.svg.edges.def={create:function(a,b,c,d){var e=a.color,f=(d("prefix")||"",d("edgeColor")),g=d("defaultNodeColor"),h=d("defaultEdgeColor");if(!e)switch(f){case"source":e=b.color||g;break;case"target":e=c.color||g;break;default:e=h}var i=document.createElementNS(d("xmlns"),"line");return i.setAttributeNS(null,"data-edge-id",a.id),i.setAttributeNS(null,"class",d("classPrefix")+"-edge"),i.setAttributeNS(null,"stroke",e),i},update:function(a,b,c,d,e){var f=e("prefix")||"";return b.setAttributeNS(null,"stroke-width",a[f+"size"]||1),b.setAttributeNS(null,"x1",c[f+"x"]),b.setAttributeNS(null,"y1",c[f+"y"]),b.setAttributeNS(null,"x2",d[f+"x"]),b.setAttributeNS(null,"y2",d[f+"y"]),b.style.display="",this}}}(),function(){"use strict";sigma.utils.pkg("sigma.svg.edges"),sigma.svg.edges.curve={create:function(a,b,c,d){var e=a.color,f=(d("prefix")||"",d("edgeColor")),g=d("defaultNodeColor"),h=d("defaultEdgeColor");if(!e)switch(f){case"source":e=b.color||g;break;case"target":e=c.color||g;break;default:e=h}var i=document.createElementNS(d("xmlns"),"path");return i.setAttributeNS(null,"data-edge-id",a.id),i.setAttributeNS(null,"class",d("classPrefix")+"-edge"),i.setAttributeNS(null,"stroke",e),i},update:function(a,b,c,d,e){var f=e("prefix")||"";b.setAttributeNS(null,"stroke-width",a[f+"size"]||1);var g=(c[f+"x"]+d[f+"x"])/2+(d[f+"y"]-c[f+"y"])/4,h=(c[f+"y"]+d[f+"y"])/2+(c[f+"x"]-d[f+"x"])/4,i="M"+c[f+"x"]+","+c[f+"y"]+" Q"+g+","+h+" "+d[f+"x"]+","+d[f+"y"];return b.setAttributeNS(null,"d",i),b.setAttributeNS(null,"fill","none"),b.style.display="",this}}}(),function(a){"use strict";if("undefined"==typeof sigma)throw"sigma is not declared";sigma.utils.pkg("sigma.svg.labels"),sigma.svg.labels.def={create:function(a,b){var c=b("prefix")||"",d=a[c+"size"],e=document.createElementNS(b("xmlns"),"text"),f="fixed"===b("labelSize")?b("defaultLabelSize"):b("labelSizeRatio")*d,g="node"===b("labelColor")?a.color||b("defaultNodeColor"):b("defaultLabelColor");return e.setAttributeNS(null,"data-label-target",a.id),e.setAttributeNS(null,"class",b("classPrefix")+"-label"),e.setAttributeNS(null,"font-size",f),e.setAttributeNS(null,"font-family",b("font")),e.setAttributeNS(null,"fill",g),e.innerHTML=a.label,e.textContent=a.label,e},update:function(a,b,c){var d=c("prefix")||"",e=a[d+"size"],f="fixed"===c("labelSize")?c("defaultLabelSize"):c("labelSizeRatio")*e;return!c("forceLabels")&&ed;d++)if(!y[x[d]])throw new Error('The rescale setting "'+x[d]+'" is not recognized.');var z=~x.indexOf("nodePosition"),A=~x.indexOf("nodeSize"),B=~x.indexOf("edgeSize");for(j="outside"===n("scalingMode")?Math.max(v/Math.max(r-p,1),w/Math.max(s-q,1)):Math.min(v/Math.max(r-p,1),w/Math.max(s-q,1)),k=(n("rescaleIgnoreSize")?0:(n("maxNodeSize")||t)/j)+(n("sideMargin")||0),r+=k,p-=k,s+=k,q-=k,j="outside"===n("scalingMode")?Math.max(v/Math.max(r-p,1),w/Math.max(s-q,1)):Math.min(v/Math.max(r-p,1),w/Math.max(s-q,1)),n("maxNodeSize")||n("minNodeSize")?n("maxNodeSize")===n("minNodeSize")?(f=0,g=+n("maxNodeSize")):(f=(n("maxNodeSize")-n("minNodeSize"))/t,g=+n("minNodeSize")):(f=1,g=0),n("maxEdgeSize")||n("minEdgeSize")?n("maxEdgeSize")===n("minEdgeSize")?(h=0,i=+n("minEdgeSize")):(h=(n("maxEdgeSize")-n("minEdgeSize"))/u,i=+n("minEdgeSize")):(h=1,i=0),d=0,e=m.length;e>d;d++)m[d][b+"size"]=m[d][a+"size"]*(B?h:1)+(B?i:0);for(d=0,e=l.length;e>d;d++)l[d][b+"size"]=l[d][a+"size"]*(A?f:1)+(A?g:0),l[d][b+"x"]=(l[d][a+"x"]-(r+p)/2)*(z?j:1),l[d][b+"y"]=(l[d][a+"y"]-(s+q)/2)*(z?j:1)},sigma.utils.getBoundaries=function(a,b,c){var d,e,f=a.edges(),g=a.nodes(),h=-(1/0),i=-(1/0),j=1/0,k=1/0,l=-(1/0),m=-(1/0);if(c)for(d=0,e=f.length;e>d;d++)h=Math.max(f[d][b+"size"],h);for(d=0,e=g.length;e>d;d++)i=Math.max(g[d][b+"size"],i),l=Math.max(g[d][b+"x"],l),j=Math.min(g[d][b+"x"],j),m=Math.max(g[d][b+"y"],m),k=Math.min(g[d][b+"y"],k);return h=h||1,i=i||1,{weightMax:h,sizeMax:i,minX:j,minY:k,maxX:l,maxY:m}}}.call(this),function(a){"use strict";if("undefined"==typeof sigma)throw"sigma is not declared";sigma.utils.pkg("sigma.middlewares"),sigma.middlewares.copy=function(a,b){var c,d,e;if(b+""!=a+""){for(e=this.graph.nodes(),c=0,d=e.length;d>c;c++)e[c][b+"x"]=e[c][a+"x"],e[c][b+"y"]=e[c][a+"y"],e[c][b+"size"]=e[c][a+"size"];for(e=this.graph.edges(),c=0,d=e.length;d>c;c++)e[c][b+"size"]=e[c][a+"size"]}}}.call(this),function(a){"use strict";if("undefined"==typeof sigma)throw"sigma is not declared";sigma.utils.pkg("sigma.misc.animation.running");var b=function(){var a=0;return function(){return""+ ++a}}();sigma.misc.animation.camera=function(c,d,e){if(!(c instanceof sigma.classes.camera&&"object"==typeof d&&d))throw"animation.camera: Wrong arguments.";if("number"!=typeof d.x&&"number"!=typeof d.y&&"number"!=typeof d.ratio&&"number"!=typeof d.angle)throw"There must be at least one valid coordinate in the given val.";var f,g,h,i,j,k,l=e||{},m=sigma.utils.dateNow();return k={x:c.x,y:c.y,ratio:c.ratio,angle:c.angle},j=l.duration,i="function"!=typeof l.easing?sigma.utils.easings[l.easing||"quadraticInOut"]:l.easing,f=function(){var b,e=l.duration?(sigma.utils.dateNow()-m)/l.duration:1;e>=1?(c.isAnimated=!1,c.goTo({x:d.x!==a?d.x:k.x,y:d.y!==a?d.y:k.y,ratio:d.ratio!==a?d.ratio:k.ratio,angle:d.angle!==a?d.angle:k.angle}),cancelAnimationFrame(g),delete sigma.misc.animation.running[g],"function"==typeof l.onComplete&&l.onComplete()):(b=i(e),c.isAnimated=!0,c.goTo({x:d.x!==a?k.x+(d.x-k.x)*b:k.x,y:d.y!==a?k.y+(d.y-k.y)*b:k.y,ratio:d.ratio!==a?k.ratio+(d.ratio-k.ratio)*b:k.ratio,angle:d.angle!==a?k.angle+(d.angle-k.angle)*b:k.angle}),"function"==typeof l.onNewFrame&&l.onNewFrame(),h.frameId=requestAnimationFrame(f))},g=b(),h={frameId:requestAnimationFrame(f),target:c,type:"camera",options:l,fn:f},sigma.misc.animation.running[g]=h,g},sigma.misc.animation.kill=function(a){if(1!==arguments.length||"number"!=typeof a)throw"animation.kill: Wrong arguments.";var b=sigma.misc.animation.running[a];return b&&(cancelAnimationFrame(a),delete sigma.misc.animation.running[b.frameId],"camera"===b.type&&(b.target.isAnimated=!1),"function"==typeof(b.options||{}).onComplete&&b.options.onComplete()),this},sigma.misc.animation.killAll=function(a){var b,c,d=0,e="string"==typeof a?a:null,f="object"==typeof a?a:null,g=sigma.misc.animation.running;for(c in g)e&&g[c].type!==e||f&&g[c].target!==f||(b=sigma.misc.animation.running[c],cancelAnimationFrame(b.frameId),delete sigma.misc.animation.running[c],"camera"===b.type&&(b.target.isAnimated=!1),d++,"function"==typeof(b.options||{}).onComplete&&b.options.onComplete());return d},sigma.misc.animation.has=function(a){var b,c="string"==typeof a?a:null,d="object"==typeof a?a:null,e=sigma.misc.animation.running;for(b in e)if(!(c&&e[b].type!==c||d&&e[b].target!==d))return!0;return!1}}.call(this),function(a){"use strict";if("undefined"==typeof sigma)throw"sigma is not declared";sigma.utils.pkg("sigma.misc"),sigma.misc.bindEvents=function(b){function c(a){a&&(h="x"in a.data?a.data.x:h,i="y"in a.data?a.data.y:i);var c,d,e,f,g,k,l,m,n=[],o=h+j.width/2,p=i+j.height/2,q=j.camera.cameraPosition(h,i),r=j.camera.quadtree.point(q.x,q.y);if(r.length)for(c=0,e=r.length;e>c;c++)if(f=r[c],g=f[b+"x"],k=f[b+"y"],l=f[b+"size"],!f.hidden&&o>g-l&&g+l>o&&p>k-l&&k+l>p&&Math.sqrt(Math.pow(o-g,2)+Math.pow(p-k,2))n[d].size){n.splice(d,0,f),m=!0;break}m||n.push(f)}return n}function d(c){function d(a,b){for(r=!1,g=0;ga[g].size){a.splice(g,0,b),r=!0;break}r||a.push(b)}if(!j.settings("enableEdgeHovering"))return[];var e=sigma.renderers.canvas&&j instanceof sigma.renderers.canvas;if(!e)throw new Error("The edge events feature is not compatible with the WebGL renderer");c&&(h="x"in c.data?c.data.x:h,i="y"in c.data?c.data.y:i);var f,g,k,l,m,n,o,p,q,r,s=j.settings("edgeHoverPrecision"),t={},u=[],v=h+j.width/2,w=i+j.height/2,x=j.camera.cameraPosition(h,i),y=[];if(e){var z=j.camera.quadtree.area(j.camera.getRectangle(j.width,j.height));for(l=z,f=0,k=l.length;k>f;f++)t[l[f].id]=l[f]}if(j.camera.edgequadtree!==a&&(y=j.camera.edgequadtree.point(x.x,x.y)),y.length)for(f=0,k=y.length;k>f;f++)m=y[f],o=j.graph.nodes(m.source),p=j.graph.nodes(m.target),n=m[b+"size"]||m["read_"+b+"size"],!m.hidden&&!o.hidden&&!p.hidden&&(!e||t[m.source]||t[m.target])&&sigma.utils.getDistance(o[b+"x"],o[b+"y"],v,w)>o[b+"size"]&&sigma.utils.getDistance(p[b+"x"],p[b+"y"],v,w)>p[b+"size"]&&("curve"==m.type||"curvedArrow"==m.type?o.id===p.id?(q=sigma.utils.getSelfLoopControlPoints(o[b+"x"],o[b+"y"],o[b+"size"]),sigma.utils.isPointOnBezierCurve(v,w,o[b+"x"],o[b+"y"],p[b+"x"],p[b+"y"],q.x1,q.y1,q.x2,q.y2,Math.max(n,s))&&d(u,m)):(q=sigma.utils.getQuadraticControlPoint(o[b+"x"],o[b+"y"],p[b+"x"],p[b+"y"]),sigma.utils.isPointOnQuadraticCurve(v,w,o[b+"x"],o[b+"y"],p[b+"x"],p[b+"y"],q.x,q.y,Math.max(n,s))&&d(u,m)):sigma.utils.isPointOnSegment(v,w,o[b+"x"],o[b+"y"],p[b+"x"],p[b+"y"],Math.max(n,s))&&d(u,m));return u}function e(a){function b(a){j.settings("eventsEnabled")&&(j.dispatchEvent("click",a.data),i=c(a),k=d(a),i.length?(j.dispatchEvent("clickNode",{node:i[0],captor:a.data}),j.dispatchEvent("clickNodes",{node:i,captor:a.data})):k.length?(j.dispatchEvent("clickEdge",{edge:k[0],captor:a.data}),j.dispatchEvent("clickEdges",{edge:k,captor:a.data})):j.dispatchEvent("clickStage",{captor:a.data}))}function e(a){j.settings("eventsEnabled")&&(j.dispatchEvent("doubleClick",a.data),i=c(a),k=d(a),i.length?(j.dispatchEvent("doubleClickNode",{node:i[0],captor:a.data}),j.dispatchEvent("doubleClickNodes",{node:i,captor:a.data})):k.length?(j.dispatchEvent("doubleClickEdge",{edge:k[0],captor:a.data}),j.dispatchEvent("doubleClickEdges",{edge:k,captor:a.data})):j.dispatchEvent("doubleClickStage",{captor:a.data}))}function f(a){j.settings("eventsEnabled")&&(j.dispatchEvent("rightClick",a.data),i=c(a),k=d(a),i.length?(j.dispatchEvent("rightClickNode",{node:i[0],captor:a.data}),j.dispatchEvent("rightClickNodes",{node:i,captor:a.data})):k.length?(j.dispatchEvent("rightClickEdge",{edge:k[0],captor:a.data}),j.dispatchEvent("rightClickEdges",{edge:k,captor:a.data})):j.dispatchEvent("rightClickStage",{captor:a.data}))}function g(a){if(j.settings("eventsEnabled")){var b,c,d,e,f=[],g=[];for(b in l)f.push(l[b]);for(l={},c=0,d=f.length;d>c;c++)j.dispatchEvent("outNode",{node:f[c],captor:a.data});for(f.length&&j.dispatchEvent("outNodes",{nodes:f,captor:a.data}),m={},c=0,e=g.length;e>c;c++)j.dispatchEvent("outEdge",{edge:g[c],captor:a.data});g.length&&j.dispatchEvent("outEdges",{edges:g,captor:a.data})}}function h(a){if(j.settings("eventsEnabled")){i=c(a),k=d(a);var b,e,f,g,h=[],n=[],o={},p=i.length,q=[],r=[],s={},t=k.length;for(b=0;p>b;b++)f=i[b],o[f.id]=f,l[f.id]||(n.push(f),l[f.id]=f);for(e in l)o[e]||(h.push(l[e]),delete l[e]);for(b=0,p=n.length;p>b;b++)j.dispatchEvent("overNode",{node:n[b],captor:a.data});for(b=0,p=h.length;p>b;b++)j.dispatchEvent("outNode",{node:h[b],captor:a.data});for(n.length&&j.dispatchEvent("overNodes",{nodes:n,captor:a.data}),h.length&&j.dispatchEvent("outNodes",{nodes:h,captor:a.data}),b=0;t>b;b++)g=k[b],s[g.id]=g,m[g.id]||(r.push(g),m[g.id]=g);for(e in m)s[e]||(q.push(m[e]),delete m[e]);for(b=0,t=r.length;t>b;b++)j.dispatchEvent("overEdge",{edge:r[b],captor:a.data});for(b=0,t=q.length;t>b;b++)j.dispatchEvent("outEdge",{edge:q[b],captor:a.data});r.length&&j.dispatchEvent("overEdges",{edges:r,captor:a.data}),q.length&&j.dispatchEvent("outEdges",{edges:q,captor:a.data})}}var i,k,l={},m={};a.bind("click",b),a.bind("mousedown",h),a.bind("mouseup",h),a.bind("mousemove",h),a.bind("mouseout",g),a.bind("doubleclick",e),a.bind("rightclick",f),j.bind("render",h)}var f,g,h,i,j=this;for(f=0,g=this.captors.length;g>f;f++)e(this.captors[f])}}.call(this),function(a){"use strict";if("undefined"==typeof sigma)throw"sigma is not declared";sigma.utils.pkg("sigma.misc"),sigma.misc.bindDOMEvents=function(a){function b(a){this.attr=function(b){return a.getAttributeNS(null,b)},this.tag=a.tagName,this["class"]=this.attr("class"),this.id=this.attr("id"),this.isNode=function(){return!!~this["class"].indexOf(g.settings("classPrefix")+"-node")},this.isEdge=function(){return!!~this["class"].indexOf(g.settings("classPrefix")+"-edge")},this.isHover=function(){return!!~this["class"].indexOf(g.settings("classPrefix")+"-hover")}}function c(a){if(g.settings("eventsEnabled")){g.dispatchEvent("click",a);var c=new b(a.target);c.isNode()?g.dispatchEvent("clickNode",{node:h.nodes(c.attr("data-node-id"))}):g.dispatchEvent("clickStage"),a.preventDefault(),a.stopPropagation()}}function d(a){if(g.settings("eventsEnabled")){g.dispatchEvent("doubleClick",a);var c=new b(a.target);c.isNode()?g.dispatchEvent("doubleClickNode",{node:h.nodes(c.attr("data-node-id"))}):g.dispatchEvent("doubleClickStage"),a.preventDefault(),a.stopPropagation()}}function e(a){var c=a.toElement||a.target;if(g.settings("eventsEnabled")&&c){var d=new b(c);if(d.isNode())g.dispatchEvent("overNode",{node:h.nodes(d.attr("data-node-id"))});else if(d.isEdge()){var e=h.edges(d.attr("data-edge-id"));g.dispatchEvent("overEdge",{edge:e,source:h.nodes(e.source),target:h.nodes(e.target)})}}}function f(a){var c=a.fromElement||a.originalTarget;if(g.settings("eventsEnabled")){var d=new b(c);if(d.isNode())g.dispatchEvent("outNode",{node:h.nodes(d.attr("data-node-id"))});else if(d.isEdge()){var e=h.edges(d.attr("data-edge-id"));g.dispatchEvent("outEdge",{edge:e,source:h.nodes(e.source),target:h.nodes(e.target)})}}}var g=this,h=this.graph;a.addEventListener("click",c,!1),sigma.utils.doubleClick(a,"click",d),a.addEventListener("touchstart",c,!1),sigma.utils.doubleClick(a,"touchstart",d),a.addEventListener("mouseover",e,!0),a.addEventListener("mouseout",f,!0)}}.call(this),function(a){"use strict";if("undefined"==typeof sigma)throw"sigma is not declared";sigma.utils.pkg("sigma.misc"),sigma.misc.drawHovers=function(a){function b(){c.contexts.hover.canvas.width=c.contexts.hover.canvas.width;var b,f,g,h,i,j=c.settings("defaultNodeType"),k=c.settings("defaultEdgeType"),l=sigma.canvas.hovers,m=sigma.canvas.edgehovers,n=sigma.canvas.extremities,o=c.settings.embedObjects({prefix:a});if(o("enableHovering")&&o("singleHover")&&Object.keys(d).length&&(h=d[Object.keys(d)[0]],(l[h.type]||l[j]||l.def)(h,c.contexts.hover,o)),o("enableHovering")&&!o("singleHover"))for(b in d)(l[d[b].type]||l[j]||l.def)(d[b],c.contexts.hover,o);if(o("enableEdgeHovering")&&o("singleHover")&&Object.keys(e).length&&(i=e[Object.keys(e)[0]],f=c.graph.nodes(i.source),g=c.graph.nodes(i.target),i.hidden||((m[i.type]||m[k]||m.def)(i,f,g,c.contexts.hover,o),o("edgeHoverExtremities")?(n[i.type]||n.def)(i,f,g,c.contexts.hover,o):((sigma.canvas.nodes[f.type]||sigma.canvas.nodes.def)(f,c.contexts.hover,o),(sigma.canvas.nodes[g.type]||sigma.canvas.nodes.def)(g,c.contexts.hover,o)))),o("enableEdgeHovering")&&!o("singleHover"))for(b in e)i=e[b],f=c.graph.nodes(i.source),g=c.graph.nodes(i.target),i.hidden||((m[i.type]||m[k]||m.def)(i,f,g,c.contexts.hover,o),o("edgeHoverExtremities")?(n[i.type]||n.def)(i,f,g,c.contexts.hover,o):((sigma.canvas.nodes[f.type]||sigma.canvas.nodes.def)(f,c.contexts.hover,o),(sigma.canvas.nodes[g.type]||sigma.canvas.nodes.def)(g,c.contexts.hover,o)))}var c=this,d={},e={};this.bind("overNode",function(a){var c=a.data.node;c.hidden||(d[c.id]=c,b())}),this.bind("outNode",function(a){delete d[a.data.node.id],b()}),this.bind("overEdge",function(a){var c=a.data.edge;c.hidden||(e[c.id]=c,b())}),this.bind("outEdge",function(a){delete e[a.data.edge.id],b()}),this.bind("render",function(a){b()})}}.call(this); - -/**sigma.plugins.dragNodes**/ -(function(){"use strict";function a(a,b){function c(a){var b=window.getComputedStyle(a),c=function(a){return parseInt(b.getPropertyValue(a).replace("px",""))||0};return{left:a.getBoundingClientRect().left+c("padding-left"),top:a.getBoundingClientRect().top+c("padding-top")}}function d(a){t=!1,l.removeEventListener("mousemove",i),l.removeEventListener("mouseup",h),r.length||(p=null)}function e(a){s[a.data.node.id]||(r.push(a.data.node),s[a.data.node.id]=!0,r.length&&!t&&(p=r[r.length-1],n.addEventListener("mousedown",g)))}function f(a){var b=r.map(function(a){return a}).indexOf(a.data.node);r.splice(b,1),delete s[a.data.node.id],r.length&&!t?p=r[r.length-1]:n.removeEventListener("mousedown",g)}function g(a){t=!0;var b=k.graph.nodes().length;if(p&&b>1){n.removeEventListener("mousedown",g),l.addEventListener("mousemove",i),l.addEventListener("mouseup",h);var c,d;for(c in k.cameras)d=k.cameras[c],void 0!==d.edgequadtree&&(d.edgequadtree._enabled=!1);m.settings({mouseEnabled:!1,enableHovering:!1}),k.refresh(),j.dispatchEvent("startdrag",{node:p,captor:a,renderer:m})}}function h(a){t=!1,n.addEventListener("mousedown",g),l.removeEventListener("mousemove",i),l.removeEventListener("mouseup",h);var b,c;for(b in k.cameras)c=k.cameras[b],void 0!==c.edgequadtree&&(c.edgequadtree._enabled=!0);m.settings({mouseEnabled:!0,enableHovering:!0}),k.refresh(),u&&j.dispatchEvent("drop",{node:p,captor:a,renderer:m}),j.dispatchEvent("dragend",{node:p,captor:a,renderer:m}),u=!1,p=null}function i(a){function b(){for(var b=c(m.container),d=a.clientX-b.left,e=a.clientY-b.top,f=Math.cos(o.angle),g=Math.sin(o.angle),h=k.graph.nodes(),i=[],l=0;2>l;l++){var n=h[l],r={x:n.x*f+n.y*g,y:n.y*f-n.x*g,renX:n[q+"x"],renY:n[q+"y"]};i.push(r)}if(i[0].x===i[1].x&&i[0].y===i[1].y){var s=0===i[0].renX?1:i[0].renX,t=0===i[0].renY?1:i[0].renY;d=i[0].x/s*(d-i[0].renX)+i[0].x,e=i[0].y/t*(e-i[0].renY)+i[0].y}else{var s=(i[1].renX-i[0].renX)/(i[1].x-i[0].x),t=(i[1].renY-i[0].renY)/(i[1].y-i[0].y);i[1].x===i[0].x&&(s=t),i[1].y===i[0].y&&(t=s),d=(d-i[0].renX)/s+i[0].x,e=(e-i[0].renY)/t+i[0].y}p.x=d*f-e*g,p.y=e*f+d*g,k.refresh(),u=!0,j.dispatchEvent("drag",{node:p,captor:a,renderer:m})}if(navigator.userAgent.toLowerCase().indexOf("firefox")>-1){clearTimeout(d);var d=setTimeout(b,0)}else b()}if(sigma.classes.dispatcher.extend(this),sigma.renderers.webgl&&b instanceof sigma.renderers.webgl)throw new Error("The sigma.plugins.dragNodes is not compatible with the WebGL renderer");var j=this,k=a,l=document.body,m=b,n=b.container.lastChild,o=b.camera,p=null,q="",r=[],s={},t=!1,u=!1;b instanceof sigma.renderers.svg&&(n=b.container.firstChild),q=b instanceof sigma.renderers.webgl?b.options.prefix.substr(5):b.options.prefix,b.bind("overNode",e),b.bind("outNode",f),b.bind("click",d),k.bind("kill",function(){j.unbindAll()}),this.unbindAll=function(){n.removeEventListener("mousedown",g),l.removeEventListener("mousemove",i),l.removeEventListener("mouseup",h),m.unbind("overNode",e),m.unbind("outNode",f)}}if("undefined"==typeof sigma)throw"sigma is not declared";sigma.utils.pkg("sigma.plugins");var b={};sigma.plugins.dragNodes=function(c,d){return b[c.id]||(b[c.id]=new a(c,d)),c.bind("kill",function(){sigma.plugins.killDragNodes(c)}),b[c.id]},sigma.plugins.killDragNodes=function(c){b[c.id]instanceof a&&(b[c.id].unbindAll(),delete b[c.id])}}).call(window); - -/**shape-library**/ -(function(c){var b=[];var m=function(o,n,p){b.push({"name":o,"drawShape":n,"drawBorder":p})};var d=function(){return b};var h=function(n){return function(s,o,t,r,p,q){q.fillStyle=p;q.beginPath();n(s,o,t,r,q);q.closePath();q.fill()}};var j=function(n){return function(s,o,t,r,p,q){q.strokeStyle=p;q.lineWidth=r/5;q.beginPath();n(s,o,t,r,q);q.closePath();q.stroke()}};var f=function(s,n,t,r,q){var o=Math.PI*45/180;q.moveTo(n+r*Math.sin(o),t-r*Math.cos(o));for(var p=1;p<4;p++){q.lineTo(n+Math.sin(o+2*Math.PI*p/4)*r,t-Math.cos(o+2*Math.PI*p/4)*r)}};m("square",h(f),j(f));var i=function(q,n,r,p,o){o.arc(n,r,p,0,Math.PI*2,true)};m("circle",h(i),j(i));var a=function(q,n,r,p,o){o.moveTo(n-p,r);o.lineTo(n,r-p);o.lineTo(n+p,r);o.lineTo(n,r+p)};m("diamond",h(a),j(a));var g=function(r,n,s,q,p){var o=(r.cross&&r.cross.lineWeight)||5;p.moveTo(n-q,s-o);p.lineTo(n-q,s+o);p.lineTo(n-o,s+o);p.lineTo(n-o,s+q);p.lineTo(n+o,s+q);p.lineTo(n+o,s+o);p.lineTo(n+q,s+o);p.lineTo(n+q,s-o);p.lineTo(n+o,s-o);p.lineTo(n+o,s-q);p.lineTo(n-o,s-q);p.lineTo(n-o,s-o)};m("cross",h(g),j(g));var e=function(o,t,s,v,n){var u=(o.equilateral&&o.equilateral.numPoints)||5;var p=((o.equilateral&&o.equilateral.rotate)||0)*Math.PI/180;var r=v;n.moveTo(t+r*Math.sin(p),s-r*Math.cos(p));for(var q=1;qg;g++)e.lineTo(b+Math.sin(f+2*Math.PI*g/4)*d,c-Math.cos(f+2*Math.PI*g/4)*d)};c("square",e(g),f(g));var h=function(a,b,c,d,e){e.arc(b,c,d,0,2*Math.PI,!0)};c("circle",e(h),f(h));var i=function(a,b,c,d,e){e.moveTo(b-d,c),e.lineTo(b,c-d),e.lineTo(b+d,c),e.lineTo(b,c+d)};c("diamond",e(i),f(i));var j=function(a,b,c,d,e){var f=a.cross&&a.cross.lineWeight||5;e.moveTo(b-d,c-f),e.lineTo(b-d,c+f),e.lineTo(b-f,c+f),e.lineTo(b-f,c+d),e.lineTo(b+f,c+d),e.lineTo(b+f,c+f),e.lineTo(b+d,c+f),e.lineTo(b+d,c-f),e.lineTo(b+f,c-f),e.lineTo(b+f,c-d),e.lineTo(b-f,c-d),e.lineTo(b-f,c-f)};c("cross",e(j),f(j));var k=function(a,b,c,d,e){var f=a.equilateral&&a.equilateral.numPoints||5,g=(a.equilateral&&a.equilateral.rotate||0)*Math.PI/180,h=d;e.moveTo(b+h*Math.sin(g),c-h*Math.cos(g));for(var i=1;f>i;i++)e.lineTo(b+Math.sin(g+2*Math.PI*i/f)*h,c-Math.cos(g+2*Math.PI*i/f)*h)};c("equilateral",e(k),f(k));var l=function(a,b,c,d,e){var f=a.star&&a.star.numPoints||5,g=a.star&&a.star.innerRatio||.5,h=d,i=d*g,j=Math.PI/f;e.moveTo(b,c-d);for(var k=0;f>k;k++)e.lineTo(b+Math.sin(j+2*Math.PI*k/f)*i,c-Math.cos(j+2*Math.PI*k/f)*i),e.lineTo(b+Math.sin(2*Math.PI*(k+1)/f)*h,c-Math.cos(2*Math.PI*(k+1)/f)*h)};c("star",e(l),f(l));var m=function(a,b,c,d,e,f){f.fillStyle="yellow",f.beginPath(),f.arc(b,c,d,1.25*Math.PI,0,!1),f.arc(b,c,d,0,.75*Math.PI,!1),f.lineTo(b,c),f.closePath(),f.fill(),f.fillStyle="white",f.strokeStyle="black",f.beginPath(),f.arc(b+d/3,c-d/3,d/4,0,2*Math.PI,!1),f.closePath(),f.fill(),f.stroke(),f.fillStyle="black",f.beginPath(),f.arc(b+4*d/9,c-d/3,d/8,0,2*Math.PI,!1),f.closePath(),f.fill()};c("pacman",m,null),this.ShapeLibrary={enumerate:d,version:"0.1"}}).call(this),function(a){"use strict";if("undefined"==typeof sigma)throw"sigma is not declared";if("undefined"==typeof ShapeLibrary)throw"ShapeLibrary is not declared";sigma.utils.pkg("sigma.canvas.nodes"),sigma.utils.pkg("sigma.svg.nodes");var b=a,c={},d=function(a){b=a},e=function(a,d,e,f,g){if(b&&a.image&&a.image.url){var h=a.image.url,i=a.image.h||1,j=a.image.w||1,k=a.image.scale||1,l=a.image.clip||1,m=c[h];m||(m=document.createElement("IMG"),m.src=h,m.status="loading",m.onerror=function(){/*console.log("error loading",h),*/m.status="error"},m.onload=function(){/*console.log("redraw on image load",h),*/m.status="ok",b.refresh()},c[h]=m);var n=i>j?j/i:1,o=j>i?i/j:1,p=f*k;g.save(),g.beginPath(),g.arc(d,e,f*l,0,2*Math.PI,!0),g.closePath(),g.clip(),"ok"===m.status&&g.drawImage(m,d+Math.sin(-0.7855)*p*n,e-Math.cos(-0.7855)*p*o,p*n*2*Math.sin(-0.7855)*-1,p*o*2*Math.cos(-0.7855)),g.restore()}},f=function(a,c,d){if(b&&a.image&&a.image.url){var e=document.createElementNS(d("xmlns"),"circle"),f=document.createElementNS(d("xmlns"),"clipPath"),g=d("classPrefix")+"-clip-path-"+a.id,h=document.createElementNS(d("xmlns"),"defs"),i=document.createElementNS(d("xmlns"),"image");a.image.url;f.setAttributeNS(null,"id",g),f.appendChild(e),h.appendChild(f);var j=/MSIE [5-9]/.test(navigator.userAgent)?"":document.location.href;j=j.split("#")[0],i.setAttributeNS(null,"class",d("classPrefix")+"-node-image"),i.setAttributeNS(null,"clip-path","url("+j+"#"+g+")"),i.setAttributeNS(null,"pointer-events","none"),i.setAttributeNS("http://www.w3.org/1999/xlink","href",a.image.url),c.appendChild(h),c.appendChild(i)}},g=function(a,b,c){sigma.canvas.nodes[a]=function(a,d,f){var g=(arguments,f("prefix")||""),h=a[g+"size"],i=a.color||f("defaultNodeColor"),j=a.borderColor||i,k=a[g+"x"],l=a[g+"y"];d.save(),b&&b(a,k,l,h,i,d),c&&c(a,k,l,h,j,d),e(a,k,l,h,d),d.restore()},sigma.svg.nodes[a]={create:function(a,b){var c=document.createElementNS(b("xmlns"),"g"),d=document.createElementNS(b("xmlns"),"circle");return c.setAttributeNS(null,"class",b("classPrefix")+"-node-group"),c.setAttributeNS(null,"data-node-id",a.id),d.setAttributeNS(null,"data-node-id",a.id),d.setAttributeNS(null,"class",b("classPrefix")+"-node"),d.setAttributeNS(null,"fill",a.color||b("defaultNodeColor")),c.appendChild(d),f(a,c,b),c},update:function(a,b,c){for(var d=c("classPrefix"),e=a.image.clip||1,f=a.image.h||1,g=a.image.w||1,h=c("prefix")||"",i=a.image.scale||1,j=a[h+"size"],k=a[h+"x"],l=a[h+"y"],m=i*j,n=f>g?g/f:1,o=g>f?f/g:1,p=0,q=b.childNodes;p>>2]|=(e[k>>>2]>>>24-8*(k%4)&255)<<24-8*((j+k)%4);else if(65535>>2]=e[k>>>2];else c.push.apply(c,e);this.sigBytes+=a;return this},clamp:function(){var a=this.words,c=this.sigBytes;a[c>>>2]&=4294967295<< -32-8*(c%4);a.length=u.ceil(c/4)},clone:function(){var a=t.clone.call(this);a.words=this.words.slice(0);return a},random:function(a){for(var c=[],e=0;e>>2]>>>24-8*(j%4)&255;e.push((k>>>4).toString(16));e.push((k&15).toString(16))}return e.join("")},parse:function(a){for(var c=a.length,e=[],j=0;j>>3]|=parseInt(a.substr(j, -2),16)<<24-4*(j%8);return new r.init(e,c/2)}},b=w.Latin1={stringify:function(a){var c=a.words;a=a.sigBytes;for(var e=[],j=0;j>>2]>>>24-8*(j%4)&255));return e.join("")},parse:function(a){for(var c=a.length,e=[],j=0;j>>2]|=(a.charCodeAt(j)&255)<<24-8*(j%4);return new r.init(e,c)}},x=w.Utf8={stringify:function(a){try{return decodeURIComponent(escape(b.stringify(a)))}catch(c){throw Error("Malformed UTF-8 data");}},parse:function(a){return b.parse(unescape(encodeURIComponent(a)))}}, -q=l.BufferedBlockAlgorithm=t.extend({reset:function(){this._data=new r.init;this._nDataBytes=0},_append:function(a){"string"==typeof a&&(a=x.parse(a));this._data.concat(a);this._nDataBytes+=a.sigBytes},_process:function(a){var c=this._data,e=c.words,j=c.sigBytes,k=this.blockSize,b=j/(4*k),b=a?u.ceil(b):u.max((b|0)-this._minBufferSize,0);a=b*k;j=u.min(4*a,j);if(a){for(var q=0;q>>2]>>>24-8*(r%4)&255)<<16|(l[r+1>>>2]>>>24-8*((r+1)%4)&255)<<8|l[r+2>>>2]>>>24-8*((r+2)%4)&255,v=0;4>v&&r+0.75*v>>6*(3-v)&63));if(l=t.charAt(64))for(;d.length%4;)d.push(l);return d.join("")},parse:function(d){var l=d.length,s=this._map,t=s.charAt(64);t&&(t=d.indexOf(t),-1!=t&&(l=t));for(var t=[],r=0,w=0;w< -l;w++)if(w%4){var v=s.indexOf(d.charAt(w-1))<<2*(w%4),b=s.indexOf(d.charAt(w))>>>6-2*(w%4);t[r>>>2]|=(v|b)<<24-8*(r%4);r++}return p.create(t,r)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}})(); -(function(u){function p(b,n,a,c,e,j,k){b=b+(n&a|~n&c)+e+k;return(b<>>32-j)+n}function d(b,n,a,c,e,j,k){b=b+(n&c|a&~c)+e+k;return(b<>>32-j)+n}function l(b,n,a,c,e,j,k){b=b+(n^a^c)+e+k;return(b<>>32-j)+n}function s(b,n,a,c,e,j,k){b=b+(a^(n|~c))+e+k;return(b<>>32-j)+n}for(var t=CryptoJS,r=t.lib,w=r.WordArray,v=r.Hasher,r=t.algo,b=[],x=0;64>x;x++)b[x]=4294967296*u.abs(u.sin(x+1))|0;r=r.MD5=v.extend({_doReset:function(){this._hash=new w.init([1732584193,4023233417,2562383102,271733878])}, -_doProcessBlock:function(q,n){for(var a=0;16>a;a++){var c=n+a,e=q[c];q[c]=(e<<8|e>>>24)&16711935|(e<<24|e>>>8)&4278255360}var a=this._hash.words,c=q[n+0],e=q[n+1],j=q[n+2],k=q[n+3],z=q[n+4],r=q[n+5],t=q[n+6],w=q[n+7],v=q[n+8],A=q[n+9],B=q[n+10],C=q[n+11],u=q[n+12],D=q[n+13],E=q[n+14],x=q[n+15],f=a[0],m=a[1],g=a[2],h=a[3],f=p(f,m,g,h,c,7,b[0]),h=p(h,f,m,g,e,12,b[1]),g=p(g,h,f,m,j,17,b[2]),m=p(m,g,h,f,k,22,b[3]),f=p(f,m,g,h,z,7,b[4]),h=p(h,f,m,g,r,12,b[5]),g=p(g,h,f,m,t,17,b[6]),m=p(m,g,h,f,w,22,b[7]), -f=p(f,m,g,h,v,7,b[8]),h=p(h,f,m,g,A,12,b[9]),g=p(g,h,f,m,B,17,b[10]),m=p(m,g,h,f,C,22,b[11]),f=p(f,m,g,h,u,7,b[12]),h=p(h,f,m,g,D,12,b[13]),g=p(g,h,f,m,E,17,b[14]),m=p(m,g,h,f,x,22,b[15]),f=d(f,m,g,h,e,5,b[16]),h=d(h,f,m,g,t,9,b[17]),g=d(g,h,f,m,C,14,b[18]),m=d(m,g,h,f,c,20,b[19]),f=d(f,m,g,h,r,5,b[20]),h=d(h,f,m,g,B,9,b[21]),g=d(g,h,f,m,x,14,b[22]),m=d(m,g,h,f,z,20,b[23]),f=d(f,m,g,h,A,5,b[24]),h=d(h,f,m,g,E,9,b[25]),g=d(g,h,f,m,k,14,b[26]),m=d(m,g,h,f,v,20,b[27]),f=d(f,m,g,h,D,5,b[28]),h=d(h,f, -m,g,j,9,b[29]),g=d(g,h,f,m,w,14,b[30]),m=d(m,g,h,f,u,20,b[31]),f=l(f,m,g,h,r,4,b[32]),h=l(h,f,m,g,v,11,b[33]),g=l(g,h,f,m,C,16,b[34]),m=l(m,g,h,f,E,23,b[35]),f=l(f,m,g,h,e,4,b[36]),h=l(h,f,m,g,z,11,b[37]),g=l(g,h,f,m,w,16,b[38]),m=l(m,g,h,f,B,23,b[39]),f=l(f,m,g,h,D,4,b[40]),h=l(h,f,m,g,c,11,b[41]),g=l(g,h,f,m,k,16,b[42]),m=l(m,g,h,f,t,23,b[43]),f=l(f,m,g,h,A,4,b[44]),h=l(h,f,m,g,u,11,b[45]),g=l(g,h,f,m,x,16,b[46]),m=l(m,g,h,f,j,23,b[47]),f=s(f,m,g,h,c,6,b[48]),h=s(h,f,m,g,w,10,b[49]),g=s(g,h,f,m, -E,15,b[50]),m=s(m,g,h,f,r,21,b[51]),f=s(f,m,g,h,u,6,b[52]),h=s(h,f,m,g,k,10,b[53]),g=s(g,h,f,m,B,15,b[54]),m=s(m,g,h,f,e,21,b[55]),f=s(f,m,g,h,v,6,b[56]),h=s(h,f,m,g,x,10,b[57]),g=s(g,h,f,m,t,15,b[58]),m=s(m,g,h,f,D,21,b[59]),f=s(f,m,g,h,z,6,b[60]),h=s(h,f,m,g,C,10,b[61]),g=s(g,h,f,m,j,15,b[62]),m=s(m,g,h,f,A,21,b[63]);a[0]=a[0]+f|0;a[1]=a[1]+m|0;a[2]=a[2]+g|0;a[3]=a[3]+h|0},_doFinalize:function(){var b=this._data,n=b.words,a=8*this._nDataBytes,c=8*b.sigBytes;n[c>>>5]|=128<<24-c%32;var e=u.floor(a/ -4294967296);n[(c+64>>>9<<4)+15]=(e<<8|e>>>24)&16711935|(e<<24|e>>>8)&4278255360;n[(c+64>>>9<<4)+14]=(a<<8|a>>>24)&16711935|(a<<24|a>>>8)&4278255360;b.sigBytes=4*(n.length+1);this._process();b=this._hash;n=b.words;for(a=0;4>a;a++)c=n[a],n[a]=(c<<8|c>>>24)&16711935|(c<<24|c>>>8)&4278255360;return b},clone:function(){var b=v.clone.call(this);b._hash=this._hash.clone();return b}});t.MD5=v._createHelper(r);t.HmacMD5=v._createHmacHelper(r)})(Math); -(function(){var u=CryptoJS,p=u.lib,d=p.Base,l=p.WordArray,p=u.algo,s=p.EvpKDF=d.extend({cfg:d.extend({keySize:4,hasher:p.MD5,iterations:1}),init:function(d){this.cfg=this.cfg.extend(d)},compute:function(d,r){for(var p=this.cfg,s=p.hasher.create(),b=l.create(),u=b.words,q=p.keySize,p=p.iterations;u.length>>2]&255}};d.BlockCipher=v.extend({cfg:v.cfg.extend({mode:b,padding:q}),reset:function(){v.reset.call(this);var a=this.cfg,b=a.iv,a=a.mode;if(this._xformMode==this._ENC_XFORM_MODE)var c=a.createEncryptor;else c=a.createDecryptor,this._minBufferSize=1;this._mode=c.call(a, -this,b&&b.words)},_doProcessBlock:function(a,b){this._mode.processBlock(a,b)},_doFinalize:function(){var a=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){a.pad(this._data,this.blockSize);var b=this._process(!0)}else b=this._process(!0),a.unpad(b);return b},blockSize:4});var n=d.CipherParams=l.extend({init:function(a){this.mixIn(a)},toString:function(a){return(a||this.formatter).stringify(this)}}),b=(p.format={}).OpenSSL={stringify:function(a){var b=a.ciphertext;a=a.salt;return(a?s.create([1398893684, -1701076831]).concat(a).concat(b):b).toString(r)},parse:function(a){a=r.parse(a);var b=a.words;if(1398893684==b[0]&&1701076831==b[1]){var c=s.create(b.slice(2,4));b.splice(0,4);a.sigBytes-=16}return n.create({ciphertext:a,salt:c})}},a=d.SerializableCipher=l.extend({cfg:l.extend({format:b}),encrypt:function(a,b,c,d){d=this.cfg.extend(d);var l=a.createEncryptor(c,d);b=l.finalize(b);l=l.cfg;return n.create({ciphertext:b,key:c,iv:l.iv,algorithm:a,mode:l.mode,padding:l.padding,blockSize:a.blockSize,formatter:d.format})}, -decrypt:function(a,b,c,d){d=this.cfg.extend(d);b=this._parse(b,d.format);return a.createDecryptor(c,d).finalize(b.ciphertext)},_parse:function(a,b){return"string"==typeof a?b.parse(a,this):a}}),p=(p.kdf={}).OpenSSL={execute:function(a,b,c,d){d||(d=s.random(8));a=w.create({keySize:b+c}).compute(a,d);c=s.create(a.words.slice(b),4*c);a.sigBytes=4*b;return n.create({key:a,iv:c,salt:d})}},c=d.PasswordBasedCipher=a.extend({cfg:a.cfg.extend({kdf:p}),encrypt:function(b,c,d,l){l=this.cfg.extend(l);d=l.kdf.execute(d, -b.keySize,b.ivSize);l.iv=d.iv;b=a.encrypt.call(this,b,c,d.key,l);b.mixIn(d);return b},decrypt:function(b,c,d,l){l=this.cfg.extend(l);c=this._parse(c,l.format);d=l.kdf.execute(d,b.keySize,b.ivSize,c.salt);l.iv=d.iv;return a.decrypt.call(this,b,c,d.key,l)}})}(); -(function(){for(var u=CryptoJS,p=u.lib.BlockCipher,d=u.algo,l=[],s=[],t=[],r=[],w=[],v=[],b=[],x=[],q=[],n=[],a=[],c=0;256>c;c++)a[c]=128>c?c<<1:c<<1^283;for(var e=0,j=0,c=0;256>c;c++){var k=j^j<<1^j<<2^j<<3^j<<4,k=k>>>8^k&255^99;l[e]=k;s[k]=e;var z=a[e],F=a[z],G=a[F],y=257*a[k]^16843008*k;t[e]=y<<24|y>>>8;r[e]=y<<16|y>>>16;w[e]=y<<8|y>>>24;v[e]=y;y=16843009*G^65537*F^257*z^16843008*e;b[k]=y<<24|y>>>8;x[k]=y<<16|y>>>16;q[k]=y<<8|y>>>24;n[k]=y;e?(e=z^a[a[a[G^z]]],j^=a[a[j]]):e=j=1}var H=[0,1,2,4,8, -16,32,64,128,27,54],d=d.AES=p.extend({_doReset:function(){for(var a=this._key,c=a.words,d=a.sigBytes/4,a=4*((this._nRounds=d+6)+1),e=this._keySchedule=[],j=0;j>>24]<<24|l[k>>>16&255]<<16|l[k>>>8&255]<<8|l[k&255]):(k=k<<8|k>>>24,k=l[k>>>24]<<24|l[k>>>16&255]<<16|l[k>>>8&255]<<8|l[k&255],k^=H[j/d|0]<<24);e[j]=e[j-d]^k}c=this._invKeySchedule=[];for(d=0;dd||4>=j?k:b[l[k>>>24]]^x[l[k>>>16&255]]^q[l[k>>> -8&255]]^n[l[k&255]]},encryptBlock:function(a,b){this._doCryptBlock(a,b,this._keySchedule,t,r,w,v,l)},decryptBlock:function(a,c){var d=a[c+1];a[c+1]=a[c+3];a[c+3]=d;this._doCryptBlock(a,c,this._invKeySchedule,b,x,q,n,s);d=a[c+1];a[c+1]=a[c+3];a[c+3]=d},_doCryptBlock:function(a,b,c,d,e,j,l,f){for(var m=this._nRounds,g=a[b]^c[0],h=a[b+1]^c[1],k=a[b+2]^c[2],n=a[b+3]^c[3],p=4,r=1;r>>24]^e[h>>>16&255]^j[k>>>8&255]^l[n&255]^c[p++],s=d[h>>>24]^e[k>>>16&255]^j[n>>>8&255]^l[g&255]^c[p++],t= -d[k>>>24]^e[n>>>16&255]^j[g>>>8&255]^l[h&255]^c[p++],n=d[n>>>24]^e[g>>>16&255]^j[h>>>8&255]^l[k&255]^c[p++],g=q,h=s,k=t;q=(f[g>>>24]<<24|f[h>>>16&255]<<16|f[k>>>8&255]<<8|f[n&255])^c[p++];s=(f[h>>>24]<<24|f[k>>>16&255]<<16|f[n>>>8&255]<<8|f[g&255])^c[p++];t=(f[k>>>24]<<24|f[n>>>16&255]<<16|f[g>>>8&255]<<8|f[h&255])^c[p++];n=(f[n>>>24]<<24|f[g>>>16&255]<<16|f[h>>>8&255]<<8|f[k&255])^c[p++];a[b]=q;a[b+1]=s;a[b+2]=t;a[b+3]=n},keySize:8});u.AES=p._createHelper(d)})(); diff --git a/portal-common/src/main/webapp/common/js/security/framework-util.js b/portal-common/src/main/webapp/common/js/security/framework-util.js deleted file mode 100644 index 8299fdca..00000000 --- a/portal-common/src/main/webapp/common/js/security/framework-util.js +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -function ict_framework_func1(word){ - var a1 = CryptoJS.enc.Utf8.parse(ict_framework_aes_a1); - var a2 = CryptoJS.enc.Utf8.parse(ict_framework_aes_a2); - var srcs = CryptoJS.enc.Utf8.parse(word); - var encrypted = CryptoJS.AES.encrypt(srcs, a1, { iv: a2,mode:CryptoJS.mode.CBC}); - return encrypted.toString(); -} - -function ict_framework_func2(word){ - var a1 = CryptoJS.enc.Utf8.parse(ict_framework_aes_a1); - var a2 = CryptoJS.enc.Utf8.parse(ict_framework_aes_a2); - var decrypt = CryptoJS.AES.decrypt(word, a1, { iv: a2,mode:CryptoJS.mode.CBC}); - return CryptoJS.enc.Utf8.stringify(decrypt).toString(); -} - - - - - - - -var ict_framework_aes_a1 = "9763853428462486"; -var ict_framework_aes_a2 = "9763853428462486"; \ No newline at end of file diff --git a/portal-common/src/main/webapp/common/js/security/security.js b/portal-common/src/main/webapp/common/js/security/security.js deleted file mode 100644 index f4a759ee..00000000 --- a/portal-common/src/main/webapp/common/js/security/security.js +++ /dev/null @@ -1,127 +0,0 @@ -/* - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -var ErrResult_LOGIN_SUCCESS = 0; -var ErrResult_LOGIN_FAILURE = 4; -var ErrResult_LOGIN_SUCCESS_WARN = 1; -var ErrResult_LOGIN_SUCCESS_PASSWORD_WARN = 2; -var ErrResult_LOGIN_SUCCESS_PASSWORD_MUSTCHANGE = 3; -var ErrResult_LOGIN_SERV_ERROR = -1; - -function processLoginResult(data,params){ - if(data.home="web/res/web-framework/index.html"||data.home.indexOf("index.html")>0){ - data.home=FrameConst.DEFAULT_PAGE; - //下面这部分是为了演示需要临时增加的自动切换 - /*if(params.username=="admin1"){ - data.home="/web/res/web-framework/default.html?menu=1"; - }else if(params.username=="admin2"){ - data.home="/web/res/web-framework/default.html?menu=2"; - }else if(params.username=="admin3"){ - data.home="/web/res/web-framework/default.html?menu=3"; - }else if(params.username=="admin4"){ - data.home="/web/res/web-framework/default.html?menu=4"; - }else if(params.username=="admin5"){ - data.home="/web/res/web-framework/default.html?menu=5"; - }else if(params.username=="admin6"){ - data.home="/web/res/web-framework/default.html?menu=6"; - }else if(params.username=="admin7"){ - data.home="/web/res/web-framework/default.html?menu=7"; - }*/ - } - var toHomePage = function(){ - location.href = data.home; - } - - var loginHander = function(inParams){ - if(inParams != undefined){ - login(inParams); - } - else{ - login(params); - } - } - - var errors = data.detail; - if(data.result == 0){ - store('username',params.username); - if(errors){ - if(errors.code==ErrResult_LOGIN_SUCCESS_PASSWORD_WARN){ - - com_zte_ums_aos_portal_PasswordDialog.create({ - ID : "LOGIN_MODIFY_PASSWORD", - username : params.username, - oldPassword : ict_framework_func2(params.password), - descLabel : errors[ErrResult_LOGIN_SUCCESS_PASSWORD_WARN], - cancelHander : toHomePage, - confirmHander : toHomePage - }); - LOGIN_MODIFY_PASSWORD.show(); - } - else if(errors.code==ErrResult_LOGIN_SUCCESS_WARN){ - window.alert(errors[ErrResult_LOGIN_SUCCESS_WARN],toHomePage); - } - else { - location.href = data.home; - } - } - else { - location.href = data.home; - } - } - else { - if(errors.code==ErrResult_LOGIN_SUCCESS_PASSWORD_MUSTCHANGE){ - com_zte_ums_aos_portal_PasswordDialog.create({ - ID : "LOGIN_MODIFY_PASSWORD", - username : params.username, - oldPassword : ict_framework_func2(params.password), - descLabel : errors[ErrResult_LOGIN_SUCCESS_PASSWORD_MUSTCHANGE], - confirmHander : loginHander - - }); - LOGIN_MODIFY_PASSWORD.show(); - } - else if(errors.code==ErrResult_LOGIN_FAILURE){ - $("#nameOrpwdError").addClass('alert-danger'); - $("#com_zte_ums_ict_portal_login_userPassword").html(errors[ErrResult_LOGIN_FAILURE]); - var tip = $("#nameOrpwdError"); - if (tip.attr("tipstatus") == "normal") { - tip.show(); - } else if (tip.attr("tipstatus") == "close") { - tip.attr("tipstatus", "normal"); - } - // if(0 < $("#inputPassword").length){ - // $("#inputPassword")[0].value = ""; - // } - } - else if(errors.code==ErrResult_LOGIN_SERV_ERROR){ - $("#loginConnError").addClass('alert-danger'); - var tip = $("#loginConnError"); - if (tip.attr("tipstatus") == "normal") { - tip.show(); - } else if (tip.attr("tipstatus") == "close") { - tip.attr("tipstatus", "normal"); - } - } - } -} -function login(params){ - $.post("login",{ - username : params.username, - password : params.password, - isEncypted:true - },function(data){ - processLoginResult(data,params); - },"json"); -} diff --git a/portal-common/src/main/webapp/common/js/tools.js b/portal-common/src/main/webapp/common/js/tools.js deleted file mode 100644 index 6ecc9603..00000000 --- a/portal-common/src/main/webapp/common/js/tools.js +++ /dev/null @@ -1,1021 +0,0 @@ -/* - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -;(function(window, define) { - var _ = { - version: "2.3.0", - areas: {}, - apis: {}, - - // utilities - inherit: function(api, o) { - for (var p in api) { - if (!o.hasOwnProperty(p)) { - o[p] = api[p]; - } - } - return o; - }, - stringify: function(d) { - return d === undefined || typeof d === "function" ? d+'' : JSON.stringify(d); - }, - parse: function(s) { - // if it doesn't parse, return as is - try{ return JSON.parse(s); }catch(e){ return s; } - }, - - // extension hooks - fn: function(name, fn) { - _.storeAPI[name] = fn; - for (var api in _.apis) { - _.apis[api][name] = fn; - } - }, - get: function(area, key){ return area.getItem(key); }, - set: function(area, key, string){ area.setItem(key, string); }, - remove: function(area, key){ area.removeItem(key); }, - key: function(area, i){ return area.key(i); }, - length: function(area){ return area.length; }, - clear: function(area){ area.clear(); }, - - // core functions - Store: function(id, area, namespace) { - var store = _.inherit(_.storeAPI, function(key, data, overwrite) { - if (arguments.length === 0){ return store.getAll(); } - if (data !== undefined){ return store.set(key, data, overwrite); } - if (typeof key === "string"){ return store.get(key); } - if (!key){ return store.clear(); } - return store.setAll(key, data);// overwrite=data, data=key - }); - store._id = id; - try { - var testKey = '_safariPrivate_'; - area.setItem(testKey, 'sucks'); - store._area = area; - area.removeItem(testKey); - } catch (e) {} - if (!store._area) { - store._area = _.inherit(_.storageAPI, { items: {}, name: 'fake' }); - } - store._ns = namespace || ''; - if (!_.areas[id]) { - _.areas[id] = store._area; - } - if (!_.apis[store._ns+store._id]) { - _.apis[store._ns+store._id] = store; - } - return store; - }, - storeAPI: { - // admin functions - area: function(id, area) { - var store = this[id]; - if (!store || !store.area) { - store = _.Store(id, area, this._ns);//new area-specific api in this namespace - if (!this[id]){ this[id] = store; } - } - return store; - }, - namespace: function(namespace, noSession) { - if (!namespace){ - return this._ns ? this._ns.substring(0,this._ns.length-1) : ''; - } - var ns = namespace, store = this[ns]; - if (!store || !store.namespace) { - store = _.Store(this._id, this._area, this._ns+ns+'.');//new namespaced api - if (!this[ns]){ this[ns] = store; } - if (!noSession){ store.area('session', _.areas.session); } - } - return store; - }, - isFake: function(){ return this._area.name === 'fake'; }, - toString: function() { - return 'store'+(this._ns?'.'+this.namespace():'')+'['+this._id+']'; - }, - - // storage functions - has: function(key) { - if (this._area.has) { - return this._area.has(this._in(key));//extension hook - } - return !!(this._in(key) in this._area); - }, - size: function(){ return this.keys().length; }, - each: function(fn, and) { - for (var i=0, m=_.length(this._area); i _.length(this._area)) { m--; i--; }// in case of removeItem - } - return and || this; - }, - keys: function() { - return this.each(function(k, list){ list.push(k); }, []); - }, - get: function(key, alt) { - var s = _.get(this._area, this._in(key)); - return s !== null ? _.parse(s) : alt || s;// support alt for easy default mgmt - }, - getAll: function() { - return this.each(function(k, all){ all[k] = this.get(k); }, {}); - }, - set: function(key, data, overwrite) { - var d = this.get(key); - if (d != null && overwrite === false) { - return data; - } - return _.set(this._area, this._in(key), _.stringify(data), overwrite) || d; - }, - setAll: function(data, overwrite) { - var changed, val; - for (var key in data) { - val = data[key]; - if (this.set(key, val, overwrite) !== val) { - changed = true; - } - } - return changed; - }, - remove: function(key) { - var d = this.get(key); - _.remove(this._area, this._in(key)); - return d; - }, - clear: function() { - if (!this._ns) { - _.clear(this._area); - } else { - this.each(function(k){ _.remove(this._area, this._in(k)); }, 1); - } - return this; - }, - clearAll: function() { - var area = this._area; - for (var id in _.areas) { - if (_.areas.hasOwnProperty(id)) { - this._area = _.areas[id]; - this.clear(); - } - } - this._area = area; - return this; - }, - - // internal use functions - _in: function(k) { - if (typeof k !== "string"){ k = _.stringify(k); } - return this._ns ? this._ns + k : k; - }, - _out: function(k) { - return this._ns ? - k && k.indexOf(this._ns) === 0 ? - k.substring(this._ns.length) : - undefined : // so each() knows to skip it - k; - } - },// end _.storeAPI - storageAPI: { - length: 0, - has: function(k){ return this.items.hasOwnProperty(k); }, - key: function(i) { - var c = 0; - for (var k in this.items){ - if (this.has(k) && i === c++) { - return k; - } - } - }, - setItem: function(k, v) { - if (!this.has(k)) { - this.length++; - } - this.items[k] = v; - }, - removeItem: function(k) { - if (this.has(k)) { - delete this.items[k]; - this.length--; - } - }, - getItem: function(k){ return this.has(k) ? this.items[k] : null; }, - clear: function(){ for (var k in this.list){ this.removeItem(k); } }, - toString: function(){ return this.length+' items in '+this.name+'Storage'; } - }// end _.storageAPI - }; - - // setup the primary store fn - if (window.store){ _.conflict = window.store; } - var store = - // safely set this up (throws error in IE10/32bit mode for local files) - _.Store("local", (function(){try{ return localStorage; }catch(e){}})()); - store.local = store;// for completeness - store._ = _;// for extenders and debuggers... - // safely setup store.session (throws exception in FF for file:/// urls) - store.area("session", (function(){try{ return sessionStorage; }catch(e){}})()); - - //Expose store to the global object - window.store = store; - - if (typeof define === 'function' && define.amd !== undefined) { - define(function () { - return store; - }); - } else if (typeof module !== 'undefined' && module.exports) { - module.exports = store; - } - -})(this, null); - -// XHook - v1.3.3 - https://github.com/jpillora/xhook -// Jaime Pillora - MIT Copyright 2015 -(function(window,undefined) { -var AFTER, BEFORE, COMMON_EVENTS, EventEmitter, FIRE, FormData, NativeFormData, NativeXMLHttp, OFF, ON, READY_STATE, UPLOAD_EVENTS, XHookFormData, XHookHttpRequest, XMLHTTP, convertHeaders, depricatedProp, document, fakeEvent, mergeObjects, msie, proxyEvents, slice, xhook, _base, - __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }; - -document = window.document; - -BEFORE = 'before'; - -AFTER = 'after'; - -READY_STATE = 'readyState'; - -ON = 'addEventListener'; - -OFF = 'removeEventListener'; - -FIRE = 'dispatchEvent'; - -XMLHTTP = 'XMLHttpRequest'; - -FormData = 'FormData'; - -UPLOAD_EVENTS = ['load', 'loadend', 'loadstart']; - -COMMON_EVENTS = ['progress', 'abort', 'error', 'timeout']; - -msie = parseInt((/msie (\d+)/.exec(navigator.userAgent.toLowerCase()) || [])[1]); - -if (isNaN(msie)) { - msie = parseInt((/trident\/.*; rv:(\d+)/.exec(navigator.userAgent.toLowerCase()) || [])[1]); -} - -(_base = Array.prototype).indexOf || (_base.indexOf = function(item) { - var i, x, _i, _len; - for (i = _i = 0, _len = this.length; _i < _len; i = ++_i) { - x = this[i]; - if (x === item) { - return i; - } - } - return -1; -}); - -slice = function(o, n) { - return Array.prototype.slice.call(o, n); -}; - -depricatedProp = function(p) { - return p === "returnValue" || p === "totalSize" || p === "position"; -}; - -mergeObjects = function(src, dst) { - var k, v; - for (k in src) { - v = src[k]; - if (depricatedProp(k)) { - continue; - } - try { - dst[k] = src[k]; - } catch (_error) {} - } - return dst; -}; - -proxyEvents = function(events, src, dst) { - var event, p, _i, _len; - p = function(event) { - return function(e) { - var clone, k, val; - clone = {}; - for (k in e) { - if (depricatedProp(k)) { - continue; - } - val = e[k]; - clone[k] = val === src ? dst : val; - } - return dst[FIRE](event, clone); - }; - }; - for (_i = 0, _len = events.length; _i < _len; _i++) { - event = events[_i]; - if (dst._has(event)) { - src["on" + event] = p(event); - } - } -}; - -fakeEvent = function(type) { - var msieEventObject; - if (document.createEventObject != null) { - msieEventObject = document.createEventObject(); - msieEventObject.type = type; - return msieEventObject; - } else { - try { - return new Event(type); - } catch (_error) { - return { - type: type - }; - } - } -}; - -EventEmitter = function(nodeStyle) { - var emitter, events, listeners; - events = {}; - listeners = function(event) { - return events[event] || []; - }; - emitter = {}; - emitter[ON] = function(event, callback, i) { - events[event] = listeners(event); - if (events[event].indexOf(callback) >= 0) { - return; - } - i = i === undefined ? events[event].length : i; - events[event].splice(i, 0, callback); - }; - emitter[OFF] = function(event, callback) { - var i; - if (event === undefined) { - events = {}; - return; - } - if (callback === undefined) { - events[event] = []; - } - i = listeners(event).indexOf(callback); - if (i === -1) { - return; - } - listeners(event).splice(i, 1); - }; - emitter[FIRE] = function() { - var args, event, i, legacylistener, listener, _i, _len, _ref; - args = slice(arguments); - event = args.shift(); - if (!nodeStyle) { - args[0] = mergeObjects(args[0], fakeEvent(event)); - } - legacylistener = emitter["on" + event]; - if (legacylistener) { - legacylistener.apply(undefined, args); - } - _ref = listeners(event).concat(listeners("*")); - for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) { - listener = _ref[i]; - listener.apply(undefined, args); - } - }; - emitter._has = function(event) { - return !!(events[event] || emitter["on" + event]); - }; - if (nodeStyle) { - emitter.listeners = function(event) { - return slice(listeners(event)); - }; - emitter.on = emitter[ON]; - emitter.off = emitter[OFF]; - emitter.fire = emitter[FIRE]; - emitter.once = function(e, fn) { - var fire; - fire = function() { - emitter.off(e, fire); - return fn.apply(null, arguments); - }; - return emitter.on(e, fire); - }; - emitter.destroy = function() { - return events = {}; - }; - } - return emitter; -}; - -xhook = EventEmitter(true); - -xhook.EventEmitter = EventEmitter; - -xhook[BEFORE] = function(handler, i) { - if (handler.length < 1 || handler.length > 2) { - throw "invalid hook"; - } - return xhook[ON](BEFORE, handler, i); -}; - -xhook[AFTER] = function(handler, i) { - if (handler.length < 2 || handler.length > 3) { - throw "invalid hook"; - } - return xhook[ON](AFTER, handler, i); -}; - -xhook.enable = function() { - window[XMLHTTP] = XHookHttpRequest; - if (NativeFormData) { - window[FormData] = XHookFormData; - } -}; - -xhook.disable = function() { - window[XMLHTTP] = xhook[XMLHTTP]; - window[FormData] = NativeFormData; -}; - -convertHeaders = xhook.headers = function(h, dest) { - var header, headers, k, name, v, value, _i, _len, _ref; - if (dest == null) { - dest = {}; - } - switch (typeof h) { - case "object": - headers = []; - for (k in h) { - v = h[k]; - name = k.toLowerCase(); - headers.push("" + name + ":\t" + v); - } - return headers.join('\n'); - case "string": - headers = h.split('\n'); - for (_i = 0, _len = headers.length; _i < _len; _i++) { - header = headers[_i]; - if (/([^:]+):\s*(.+)/.test(header)) { - name = (_ref = RegExp.$1) != null ? _ref.toLowerCase() : void 0; - value = RegExp.$2; - if (dest[name] == null) { - dest[name] = value; - } - } - } - return dest; - } -}; - -NativeFormData = window[FormData]; - -XHookFormData = function(form) { - var entries; - this.fd = form ? new NativeFormData(form) : new NativeFormData(); - this.form = form; - entries = []; - Object.defineProperty(this, 'entries', { - get: function() { - var fentries; - fentries = !form ? [] : slice(form.querySelectorAll("input,select")).filter(function(e) { - var _ref; - return ((_ref = e.type) !== 'checkbox' && _ref !== 'radio') || e.checked; - }).map(function(e) { - return [e.name, e.type === "file" ? e.files : e.value]; - }); - return fentries.concat(entries); - } - }); - this.append = (function(_this) { - return function() { - var args; - args = slice(arguments); - entries.push(args); - return _this.fd.append.apply(_this.fd, args); - }; - })(this); -}; - -if (NativeFormData) { - xhook[FormData] = NativeFormData; - window[FormData] = XHookFormData; -} - -NativeXMLHttp = window[XMLHTTP]; - -xhook[XMLHTTP] = NativeXMLHttp; - -XHookHttpRequest = window[XMLHTTP] = function() { - var ABORTED, currentState, emitFinal, emitReadyState, facade, hasError, hasErrorHandler, readBody, readHead, request, response, setReadyState, status, transiting, writeBody, writeHead, xhr; - ABORTED = -1; - xhr = new xhook[XMLHTTP](); - request = {}; - status = null; - hasError = void 0; - transiting = void 0; - response = void 0; - readHead = function() { - var key, name, val, _ref; - response.status = status || xhr.status; - if (!(status === ABORTED && msie < 10)) { - response.statusText = xhr.statusText; - } - if (status !== ABORTED) { - _ref = convertHeaders(xhr.getAllResponseHeaders()); - for (key in _ref) { - val = _ref[key]; - if (!response.headers[key]) { - name = key.toLowerCase(); - response.headers[name] = val; - } - } - } - }; - readBody = function() { - if (!xhr.responseType || xhr.responseType === "text") { - response.text = xhr.responseText; - response.data = xhr.responseText; - } else if (xhr.responseType === "document") { - response.xml = xhr.responseXML; - response.data = xhr.responseXML; - } else { - response.data = xhr.response; - } - if ("responseURL" in xhr) { - response.finalUrl = xhr.responseURL; - } - }; - writeHead = function() { - facade.status = response.status; - facade.statusText = response.statusText; - }; - writeBody = function() { - if ('text' in response) { - facade.responseText = response.text; - } - if ('xml' in response) { - facade.responseXML = response.xml; - } - if ('data' in response) { - facade.response = response.data; - } - if ('finalUrl' in response) { - facade.responseURL = response.finalUrl; - } - }; - emitReadyState = function(n) { - while (n > currentState && currentState < 4) { - facade[READY_STATE] = ++currentState; - if (currentState === 1) { - facade[FIRE]("loadstart", {}); - } - if (currentState === 2) { - writeHead(); - } - if (currentState === 4) { - writeHead(); - writeBody(); - } - facade[FIRE]("readystatechange", {}); - if (currentState === 4) { - setTimeout(emitFinal, 0); - } - } - }; - emitFinal = function() { - if (!hasError) { - facade[FIRE]("load", {}); - } - facade[FIRE]("loadend", {}); - if (hasError) { - facade[READY_STATE] = 0; - } - }; - currentState = 0; - setReadyState = function(n) { - var hooks, process; - if (n !== 4) { - emitReadyState(n); - return; - } - hooks = xhook.listeners(AFTER); - process = function() { - var hook; - if (!hooks.length) { - return emitReadyState(4); - } - hook = hooks.shift(); - if (hook.length === 2) { - hook(request, response); - return process(); - } else if (hook.length === 3 && request.async) { - return hook(request, response, process); - } else { - return process(); - } - }; - process(); - }; - facade = request.xhr = EventEmitter(); - xhr.onreadystatechange = function(event) { - try { - if (xhr[READY_STATE] === 2) { - readHead(); - } - } catch (_error) {} - if (xhr[READY_STATE] === 4) { - transiting = false; - readHead(); - readBody(); - } - setReadyState(xhr[READY_STATE]); - }; - hasErrorHandler = function() { - hasError = true; - }; - facade[ON]('error', hasErrorHandler); - facade[ON]('timeout', hasErrorHandler); - facade[ON]('abort', hasErrorHandler); - facade[ON]('progress', function() { - if (currentState < 3) { - setReadyState(3); - } else { - facade[FIRE]("readystatechange", {}); - } - }); - if ('withCredentials' in xhr || xhook.addWithCredentials) { - facade.withCredentials = false; - } - facade.status = 0; - facade.open = function(method, url, async, user, pass) { - currentState = 0; - hasError = false; - transiting = false; - request.headers = {}; - request.headerNames = {}; - request.status = 0; - response = {}; - response.headers = {}; - request.method = method; - request.url = url; - request.async = async !== false; - request.user = user; - request.pass = pass; - setReadyState(1); - }; - facade.send = function(body) { - var hooks, k, modk, process, send, _i, _len, _ref; - _ref = ['type', 'timeout', 'withCredentials']; - if(navigator.userAgent.indexOf("Firefox/") != -1){http://atmosphere-framework.2306103.n4.nabble.com/Atmosphere-js-withCredentials-true-does-not-work-in-Firefox-td4656661.html - _ref = ['type', 'timeout']; - } - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - k = _ref[_i]; - modk = k === "type" ? "responseType" : k; - if (modk in facade) { - request[k] = facade[modk]; - } - } - request.body = body; - send = function() { - var header, value, _j, _len1, _ref1, _ref2; - proxyEvents(COMMON_EVENTS, xhr, facade); - if (facade.upload) { - proxyEvents(COMMON_EVENTS.concat(UPLOAD_EVENTS), xhr.upload, facade.upload); - } - transiting = true; - xhr.open(request.method, request.url, request.async, request.user, request.pass); - _ref1 = ['type', 'timeout', 'withCredentials']; - if(navigator.userAgent.indexOf("Firefox/") != -1){//http://atmosphere-framework.2306103.n4.nabble.com/Atmosphere-js-withCredentials-true-does-not-work-in-Firefox-td4656661.html - _ref1 = ['type', 'timeout']; - } - for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) { - k = _ref1[_j]; - modk = k === "type" ? "responseType" : k; - if (k in request) { - xhr[modk] = request[k]; - } - } - _ref2 = request.headers; - for (header in _ref2) { - value = _ref2[header]; - xhr.setRequestHeader(header, value); - } - if (request.body instanceof XHookFormData) { - request.body = request.body.fd; - } - xhr.send(request.body); - }; - hooks = xhook.listeners(BEFORE); - process = function() { - var done, hook; - if (!hooks.length) { - return send(); - } - done = function(userResponse) { - if (typeof userResponse === 'object' && (typeof userResponse.status === 'number' || typeof response.status === 'number')) { - mergeObjects(userResponse, response); - if (__indexOf.call(userResponse, 'data') < 0) { - userResponse.data = userResponse.response || userResponse.text; - } - setReadyState(4); - return; - } - process(); - }; - done.head = function(userResponse) { - mergeObjects(userResponse, response); - return setReadyState(2); - }; - done.progress = function(userResponse) { - mergeObjects(userResponse, response); - return setReadyState(3); - }; - hook = hooks.shift(); - if (hook.length === 1) { - return done(hook(request)); - } else if (hook.length === 2 && request.async) { - return hook(request, done); - } else { - return done(); - } - }; - process(); - }; - facade.abort = function() { - status = ABORTED; - if (transiting) { - xhr.abort(); - } else { - facade[FIRE]('abort', {}); - } - }; - facade.setRequestHeader = function(header, value) { - var lName, name; - lName = header != null ? header.toLowerCase() : void 0; - name = request.headerNames[lName] = request.headerNames[lName] || header; - if (request.headers[name]) { - value = request.headers[name] + ', ' + value; - } - request.headers[name] = value; - }; - facade.getResponseHeader = function(header) { - var name; - name = header != null ? header.toLowerCase() : void 0; - return response.headers[name]; - }; - facade.getAllResponseHeaders = function() { - return convertHeaders(response.headers); - }; - if (xhr.overrideMimeType) { - facade.overrideMimeType = function() { - return xhr.overrideMimeType.apply(xhr, arguments); - }; - } - if (xhr.upload) { - facade.upload = request.upload = EventEmitter(); - } - return facade; -}; -/* -if (typeof this.define === "function" && this.define.amd) { - define("xhook", [], function() { - return xhook; - }); -} else {*/ - (this.exports || this).xhook = xhook; -//} - -}.call(this,window)); - -xhook.before(function(request) { - var zte_headers = store('zte_http_headers'); - if (zte_headers && zte_headers.length > 0) { - for (i = 0; i < zte_headers.length; i++) { - if (zte_headers[i].store === true) { - if ( !! store(zte_headers[i].value)) { - request.headers[zte_headers[i].key] = store(zte_headers[i].value).toUpperCase() - } - } else { - request.headers[zte_headers[i].key] = zte_headers[i].value - } - } - } -}); -/** - * 初始化脚本文件装载工具 - * zongying 2010.12 - * modify: - */ -$Boot = {}; - -/** - * 创建命名空间 - * @param {Object} name - * @param {Object} object - */ -$Boot.createNamespace = function(name, object) { - var splits = name.split("."); - var parent = window; - //document.window浏览器内置对象 - var part = splits[0]; - for (var i = 0, len = splits.length - 1; i < len; i++, part = splits[i]) { - if (!parent[part]) { - parent = parent[part] = {}; - } else { - parent = parent[part]; - } - } - // 存放对象 - parent[part] = object; - // 返回 last part name (例如:classname) - return part; -} - -$Boot.isDefined = function(o) { - return typeof (o) != "undefined" -} -/** - * 启动配置类 - */ -$Boot.Config = function() { - - function isDefined(o) { - return typeof (o) != "undefined" - } - - //用户应用当前目录 - if (!isDefined(window.$userAppDir)) { - window.$userAppDir = './' - } - //组件库目录 - if (!isDefined(window.$userFrameDir)) { - window.$userFrameDir = '/common/' - } - //用户i18文件目录 - if (!isDefined(window.$userI18nDir)) { - window.$userI18nDir = './' - } - - //当前语言 默认为英语 - var language = "en-US"; - //var languageList = ['ar', 'ba', 'cr', 'cs', 'de', 'el', 'es', 'fi', 'fr', 'fr-FR', 'hu-HU', 'id', 'it', 'ja', 'nb-NO', 'nl', 'pl', 'pl-PL', 'pt', 'pt-BR', 'ro-RO', 'ru-RU', 'sk', 'sr', 'sr-Latn', 'sv-SE', 'en-US','uk-UA', 'zh-CN', 'zh-TW']; - var languageList = ['en-US', 'zh-CN']; - - //从服务端取客户端接受语言类型 - var getAcceptLangFromServer = true; - - - /** - * 创建XMLHttpRequest对象 - */ - function createXMLHttpRequest() { - if (window.ActiveXObject) { - return new ActiveXObject("Microsoft.XMLHTTP"); - } else if (window.XMLHttpRequest) { - return new XMLHttpRequest(); - } else { - throw new Error("This Brower do not support XMLHTTP!!"); - } - } - - - /** - * 同步发送xml http 请求 - * @param {Object} url - * @param {Object} data - * @param {Object} method - */ - function httpRequest(method, url, data) { - var xmlhttp; - xmlhttp = createXMLHttpRequest(); - var sendData = null; - if (method == "get") { - url = url + "?" + data; - - } else if (method == "post") { - sendData = data; - } - xmlhttp.open(method, url, false); - xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"); - xmlhttp.setRequestHeader("If-Modified-Since", "0"); - xmlhttp.send(sendData); - if (xmlhttp.status == 200) - return xmlhttp.responseText; - } - - /** - * 同步发送xml http 请求(给外部调用) - * @param {Object} url - * @param {Object} data - * @param {Object} method - */ - this.httpRequestStatic = function(method, url, data) { - var xmlhttp; - xmlhttp = createXMLHttpRequest(); - var sendData = null; - if (method == "get") { - url = url + "?" + data; - - } else if (method == "post") { - sendData = data; - } - xmlhttp.open(method, url, false); - xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"); - xmlhttp.setRequestHeader("If-Modified-Since", "0"); - xmlhttp.send(sendData); - if (xmlhttp.status == 200) - return xmlhttp.responseText; - } - - function inArray(array, obj) { - for (var i = 0; i < array.length; i++) { - if (array[i] == obj) { - return true; - } - } - return false; - - } - - - this.getUrlParam=function(name){ - var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象 - var search =decodeURIComponent(location.search.substring(1)); //decodeURIComponent() 函数可对 encodeURIComponent() 函数编码的 URI 进行解码。 - var r =search.match(reg); //匹配目标参数 - if (r != null) return unescape(r[2]); //unescape() 函数可对通过 escape() 编码的字符串进行解码。 - return null; //返回参数值 - } - - -} - -//创建命名空间 -$Boot.createNamespace("com.zte.ums.aos.framework.BootConfig", $Boot.Config); -//创建基础配置对象实例 -$Boot.bootConfig = new com.zte.ums.aos.framework.BootConfig(); - -function getLanguage(){ - return "en-US"; -} - -function getStringWidth(text,fontSize) -{ - var span = document.getElementById("_ictframework_getwidth"); - if (span == null) { - span = document.createElement("span"); - span.id = "_ictframework_getwidth"; - document.body.appendChild(span); - } - span.innerText = text; - span.style.whiteSpace = "nowrap"; - $("#_ictframework_getwidth").attr('style','font-size:'+fontSize+'px;'); - var width = span.offsetWidth; - $("#_ictframework_getwidth").attr('style','display:none'); - return width; -} - -function getUrlParam(name){ - return $Boot.bootConfig.getUrlParam(name); -} - -function httpRequest(method, url, data) { - return $Boot.bootConfig.httpRequestStatic(method, url, data) -} - -// 定义JQUERY AJAX 完成函数,判断返回状态,如果状态正常,但HEADER头里有session超时信息,则刷新重登录 -// 如果状态为 401, 也刷新重登录 -// 注意如果在$.ajax() 函数中定义了 complete,则覆盖了这里预定义complete内容,以$.ajax()函数中定义的为准,这里预定义的函数则失效,如果 -// 要继续判断session超时,则需要在 $.ajax()函数中定义的complete函数中加入这里预定义内容。 -if (jQuery) { - $.ajaxSetup({ - complete:function(XMLHttpRequest,textStatus){ - if (XMLHttpRequest.status == 401) { - window.location.replace("login.html"); - } - // if (XMLHttpRequest.status == 200) { - // var sessionstatus=XMLHttpRequest.getResponseHeader("sessionstatus"); ////通过XMLHttpRequest取得响应头,sessionstatus, - // if(sessionstatus=="timeout"){ - // window.location.replace("/"); - // } - // } else if (XMLHttpRequest.status == 401) { - // window.location.replace("/"); - // } - } - }); -} diff --git a/portal-common/src/main/webapp/common/json/License.txt b/portal-common/src/main/webapp/common/json/License.txt deleted file mode 100644 index d1ce787a..00000000 --- a/portal-common/src/main/webapp/common/json/License.txt +++ /dev/null @@ -1,362 +0,0 @@ -THIS LICENSE FILE CONTAINS THE LICENSE APPLICABLE DEPENDING ON THE TYPE OF CONTRIBUTIONS. - -APACHE LICENSE 2 IS APPLICABLE FOR SOURCE CODE, CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL FOR DOCUMENTATION - -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - - -Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - -"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - -"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - -"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - -"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - -"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - -"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - -"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - -"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - -"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - -"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - -2. Grant of Copyright License. - -Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. - -Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - -4. Redistribution. - -You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - -You must give any other recipients of the Work or Derivative Works a copy of this License; and You must cause any modified files to carry prominent notices stating that You changed the files; and You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - -5. Submission of Contributions. - -Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - -6. Trademarks. - -This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. - -Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. - -In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. - -While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS - -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - -Attribution 4.0 International - -https://creativecommons.org/licenses/by/4.0/legalcode - -Creative Commons Corporation ("Creative Commons") is not a law firm and does not provide legal services or legal advice. Distribution of Creative Commons public licenses does not create a lawyer-client or other relationship. Creative Commons makes its licenses and related information available on an "as-is" basis. Creative Commons gives no warranties regarding its licenses, any material licensed under their terms and conditions, or any related information. Creative Commons disclaims all liability for damages resulting from their use to the fullest extent possible. - -Using Creative Commons Public Licenses - -Creative Commons public licenses provide a standard set of terms and conditions that creators and other rights holders may use to share original works of authorship and other material subject to copyright and certain other rights specified in the public license below. The following considerations are for informational purposes only, are not exhaustive, and do not form part of our licenses. - - Considerations for licensors: Our public licenses are - intended for use by those authorized to give the public - permission to use material in ways otherwise restricted by - copyright and certain other rights. Our licenses are - irrevocable. Licensors should read and understand the terms - and conditions of the license they choose before applying it. - Licensors should also secure all rights necessary before - applying our licenses so that the public can reuse the - material as expected. Licensors should clearly mark any - material not subject to the license. This includes other CC- - licensed material, or material used under an exception or - limitation to copyright. More considerations for licensors: - wiki.creativecommons.org/Considerations_for_licensors - Considerations for the public: By using one of our public - licenses, a licensor grants the public permission to use the - licensed material under specified terms and conditions. If - the licensor's permission is not necessary for any reason--for - example, because of any applicable exception or limitation to - copyright--then that use is not regulated by the license. Our - licenses grant only permissions under copyright and certain - other rights that a licensor has authority to grant. Use of - the licensed material may still be restricted for other - reasons, including because others have copyright or other - rights in the material. A licensor may make special requests, - such as asking that all changes be marked or described. - Although not required by our licenses, you are encouraged to - respect those requests where reasonable. More_considerations - for the public: - wiki.creativecommons.org/Considerations_for_licensees -Creative Commons Attribution 4.0 International Public License - -By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions. - - -Section 1 -- Definitions. - - a. Adapted Material means material subject to Copyright and Similar - Rights that is derived from or based upon the Licensed Material - and in which the Licensed Material is translated, altered, - arranged, transformed, or otherwise modified in a manner requiring - permission under the Copyright and Similar Rights held by the - Licensor. For purposes of this Public License, where the Licensed - Material is a musical work, performance, or sound recording, - Adapted Material is always produced where the Licensed Material is - synched in timed relation with a moving image. - b. Adapter's License means the license You apply to Your Copyright - and Similar Rights in Your contributions to Adapted Material in - accordance with the terms and conditions of this Public License. - c. Copyright and Similar Rights means copyright and/or similar rights - closely related to copyright including, without limitation, - performance, broadcast, sound recording, and Sui Generis Database - Rights, without regard to how the rights are labeled or - categorized. For purposes of this Public License, the rights - specified in Section 2(b)(1)-(2) are not Copyright and Similar - Rights. - d. Effective Technological Measures means those measures that, in the - absence of proper authority, may not be circumvented under laws - fulfilling obligations under Article 11 of the WIPO Copyright - Treaty adopted on December 20, 1996, and/or similar international - agreements. - e. Exceptions and Limitations means fair use, fair dealing, and/or - any other exception or limitation to Copyright and Similar Rights - that applies to Your use of the Licensed Material. - f. Licensed Material means the artistic or literary work, database, - or other material to which the Licensor applied this Public - License. - g. Licensed Rights means the rights granted to You subject to the - terms and conditions of this Public License, which are limited to - all Copyright and Similar Rights that apply to Your use of the - Licensed Material and that the Licensor has authority to license. - h. Licensor means the individual(s) or entity(ies) granting rights - under this Public License. - i. Share means to provide material to the public by any means or - process that requires permission under the Licensed Rights, such - as reproduction, public display, public performance, distribution, - dissemination, communication, or importation, and to make material - available to the public including in ways that members of the - public may access the material from a place and at a time - individually chosen by them. - j. Sui Generis Database Rights means rights other than copyright - resulting from Directive 96/9/EC of the European Parliament and of - the Council of 11 March 1996 on the legal protection of databases, - as amended and/or succeeded, as well as other essentially - equivalent rights anywhere in the world. - k. You means the individual or entity exercising the Licensed Rights - under this Public License. Your has a corresponding meaning. - -Section 2 -- Scope. - - a. License grant. - 1. Subject to the terms and conditions of this Public License, - the Licensor hereby grants You a worldwide, royalty-free, - non-sublicensable, non-exclusive, irrevocable license to - exercise the Licensed Rights in the Licensed Material to: - a. reproduce and Share the Licensed Material, in whole or - in part; and - b. produce, reproduce, and Share Adapted Material. - 2. Exceptions and Limitations. For the avoidance of doubt, where - Exceptions and Limitations apply to Your use, this Public - License does not apply, and You do not need to comply with - its terms and conditions. - 3. Term. The term of this Public License is specified in Section - 6(a). - 4. Media and formats; technical modifications allowed. The - Licensor authorizes You to exercise the Licensed Rights in - all media and formats whether now known or hereafter created, - and to make technical modifications necessary to do so. The - Licensor waives and/or agrees not to assert any right or - authority to forbid You from making technical modifications - necessary to exercise the Licensed Rights, including - technical modifications necessary to circumvent Effective - Technological Measures. For purposes of this Public License, - simply making modifications authorized by this Section 2(a) - (4) never produces Adapted Material. - 5. Downstream recipients. - a. Offer from the Licensor -- Licensed Material. Every - recipient of the Licensed Material automatically - receives an offer from the Licensor to exercise the - Licensed Rights under the terms and conditions of this - Public License. - b. No downstream restrictions. You may not offer or impose - any additional or different terms or conditions on, or - apply any Effective Technological Measures to, the - Licensed Material if doing so restricts exercise of the - Licensed Rights by any recipient of the Licensed - Material. - 6. No endorsement. Nothing in this Public License constitutes or - may be construed as permission to assert or imply that You - are, or that Your use of the Licensed Material is, connected - with, or sponsored, endorsed, or granted official status by, - the Licensor or others designated to receive attribution as - provided in Section 3(a)(1)(A)(i). - b. Other rights. - 1. Moral rights, such as the right of integrity, are not - licensed under this Public License, nor are publicity, - privacy, and/or other similar personality rights; however, to - the extent possible, the Licensor waives and/or agrees not to - assert any such rights held by the Licensor to the limited - extent necessary to allow You to exercise the Licensed - Rights, but not otherwise. - 2. Patent and trademark rights are not licensed under this - Public License. - 3. To the extent possible, the Licensor waives any right to - collect royalties from You for the exercise of the Licensed - Rights, whether directly or through a collecting society - under any voluntary or waivable statutory or compulsory - licensing scheme. In all other cases the Licensor expressly - reserves any right to collect such royalties. - -Section 3 -- License Conditions. - -Your exercise of the Licensed Rights is expressly made subject to the following conditions. - - a. Attribution. - 1. If You Share the Licensed Material (including in modified - form), You must: - a. retain the following if it is supplied by the Licensor - with the Licensed Material: - i. identification of the creator(s) of the Licensed - Material and any others designated to receive - attribution, in any reasonable manner requested by - the Licensor (including by pseudonym if - designated); - ii. a copyright notice; - iii. a notice that refers to this Public License; - iv. a notice that refers to the disclaimer of - warranties; - v. a URI or hyperlink to the Licensed Material to the - extent reasonably practicable; - b. indicate if You modified the Licensed Material and - retain an indication of any previous modifications; and - c. indicate the Licensed Material is licensed under this - Public License, and include the text of, or the URI or - hyperlink to, this Public License. - 2. You may satisfy the conditions in Section 3(a)(1) in any - reasonable manner based on the medium, means, and context in - which You Share the Licensed Material. For example, it may be - reasonable to satisfy the conditions by providing a URI or - hyperlink to a resource that includes the required - information. - 3. If requested by the Licensor, You must remove any of the - information required by Section 3(a)(1)(A) to the extent - reasonably practicable. - 4. If You Share Adapted Material You produce, the Adapter's - License You apply must not prevent recipients of the Adapted - Material from complying with this Public License. - -Section 4 -- Sui Generis Database Rights. - -Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material: - - a. for the avoidance of doubt, Section 2(a)(1) grants You the right - to extract, reuse, reproduce, and Share all or a substantial - portion of the contents of the database; - b. if You include all or a substantial portion of the database - contents in a database in which You have Sui Generis Database - Rights, then the database in which You have Sui Generis Database - Rights (but not its individual contents) is Adapted Material; and - c. You must comply with the conditions in Section 3(a) if You Share - all or a substantial portion of the contents of the database. -For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights. - - -Section 5 -- Disclaimer of Warranties and Limitation of Liability. - - a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE - EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS - AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF - ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, - IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, - WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR - PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, - ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT - KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT - ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. - b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE - TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, - NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, - INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, - COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR - USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN - ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR - DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR - IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. - c. The disclaimer of warranties and limitation of liability provided - above shall be interpreted in a manner that, to the extent - possible, most closely approximates an absolute disclaimer and - waiver of all liability. - -Section 6 -- Term and Termination. - - a. This Public License applies for the term of the Copyright and - Similar Rights licensed here. However, if You fail to comply with - this Public License, then Your rights under this Public License - terminate automatically. - b. Where Your right to use the Licensed Material has terminated under - Section 6(a), it reinstates: - 1. automatically as of the date the violation is cured, provided - it is cured within 30 days of Your discovery of the - violation; or - 2. upon express reinstatement by the Licensor. - For the avoidance of doubt, this Section 6(b) does not affect any - right the Licensor may have to seek remedies for Your violations - of this Public License. - c. For the avoidance of doubt, the Licensor may also offer the - Licensed Material under separate terms or conditions or stop - distributing the Licensed Material at any time; however, doing so - will not terminate this Public License. - d. Sections 1, 5, 6, 7, and 8 survive termination of this Public - License. - -Section 7 -- Other Terms and Conditions. - - a. The Licensor shall not be bound by any additional or different - terms or conditions communicated by You unless expressly agreed. - b. Any arrangements, understandings, or agreements regarding the - Licensed Material not stated herein are separate from and - independent of the terms and conditions of this Public License. - -Section 8 -- Interpretation. - - a. For the avoidance of doubt, this Public License does not, and - shall not be interpreted to, reduce, limit, restrict, or impose - conditions on any use of the Licensed Material that could lawfully - be made without permission under this Public License. - b. To the extent possible, if any provision of this Public License is - deemed unenforceable, it shall be automatically reformed to the - minimum extent necessary to make it enforceable. If the provision - cannot be reformed, it shall be severed from this Public License - without affecting the enforceability of the remaining terms and - conditions. - c. No term or condition of this Public License will be waived and no - failure to comply consented to unless expressly agreed to by the - Licensor. - d. Nothing in this Public License constitutes or may be interpreted - as a limitation upon, or waiver of, any privileges and immunities - that apply to the Licensor or You, including from the legal - processes of any jurisdiction or authority. -Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the "Licensor." The text of the Creative Commons public licenses is dedicated to the public domain under the CC0 Public Domain Dedication. Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at creativecommons.org/policies, Creative Commons does not authorize the use of the trademark "Creative Commons" or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses. - -Creative Commons may be contacted at creativecommons.org. \ No newline at end of file diff --git a/portal-common/src/main/webapp/common/json/main_page.json b/portal-common/src/main/webapp/common/json/main_page.json deleted file mode 100644 index d0851d77..00000000 --- a/portal-common/src/main/webapp/common/json/main_page.json +++ /dev/null @@ -1,96 +0,0 @@ -{ - "modules":[ - { - "cover":"org_openo_orchestrator_framework_main_page_service", - "background":"skyBlue-mainpage", - "toolsImage":"toolsImageBrokenLine", - "url":"", - "linkId":"openo-nsoc-template", - "contentTip":"" - }, - { - "cover":"org_openo_orchestrator_framework_main_page_cloud", - "background":"golden-mainpage", - "toolsImage":"toolsImageHierachy", - "url":"", - "linkId":"openo-roc-vim", - "contentTip":"" - }, - { - "cover":"", - "background":"manLieONCloud-image", - "toolsImage":"", - "url":"", - "contentTip":"" - }, - { - "cover":"org_openo_orchestrator_framework_main_page_orchestrator", - "background":"orange-mainpage", - "toolsImage":"toolsImageGear", - "url":"", - "linkId":"openo-nsoc-vApp", - "contentTip":"" - }, - { - "cover":"org_openo_orchestrator_framework_main_page_monitor", - "background":"pinkishRed-mainpage", - "toolsImage":"toolsImagePresent", - "url":"", - "linkId":"openo-umc-monitor-setting", - "contentTip":"" - }, - { - "cover":"", - "background":"magicCube-image", - "toolsImage":"", - "url":"", - "contentTip":"" - }, - { - "cover":"org_openo_orchestrator_framework_main_page_resource", - "background":"grassGreen-mainpage", - "toolsImage":"toolsImageFile", - "url":"", - "linkId":"openo-roc-rs-view-overview", - "contentTip":"" - }, - { - "cover":"", - "background":"meeting-image", - "toolsImage":"", - "url":"", - "contentTip":"" - }, - { - "cover":"", - "background":"earth-image", - "toolsImage":"", - "url":"", - "contentTip":"" - }, - { - "cover":"org_openo_orchestrator_framework_main_page_design", - "background":"orange-mainpage", - "toolsImage":"toolsImageGear", - "url":"", - "linkId":"openo-nsoc-model-design", - "contentTip":"" - }, - { - "cover":"org_openo_orchestrator_framework_main_page_alarm", - "background":"skyBlue-mainpage", - "toolsImage":"toolsImageBriefcase", - "url":"", - "linkId":"openo-umc-monitor-alarm-currentAlarm", - "contentTip":"" - }, - { - "cover":"org_openo_orchestrator_framework_main_page_performance", - "background":"pinkishRed-mainpage", - "toolsImage":"toolsImagePresent", - "url":"", - "linkId":"openo-umc-monitor-pm-historyQuery", - "contentTip":"" - } - ] -} \ No newline at end of file diff --git a/portal-common/src/main/webapp/common/json/menu_list.json b/portal-common/src/main/webapp/common/json/menu_list.json deleted file mode 100644 index 5e7944e7..00000000 --- a/portal-common/src/main/webapp/common/json/menu_list.json +++ /dev/null @@ -1,119 +0,0 @@ -{ - "parentMenus":[ - { - "id":"openo_menu_service", - "url":"", - "iconClass":"fa fa-comments" - }, - { - "id":"openo_menu_resource_mgr", - "url":"", - "iconClass":"fa fa-folder-open-o" - }, - { - "id":"openo_menu_user", - "url":"", - "iconClass":"fa fa-puzzle-piece" - }, - { - "id":"openo_menu_orchestrator", - "url":"", - "iconClass":"fa fa-folder-open-o" - }, - { - "id":"openo_menu_manage_view", - "url":"", - "iconClass":"fa fa-coffee" - }, - { - "id":"openo_menu_performance", - "url":"", - "iconClass":"fa fa-bar-chart" - }, - { - "id":"openo_menu_monitor", - "url":"", - "iconClass":"fa fa-desktop" - } - ], - "childMenus":[ - { - "parentId":"openo_menu_service", - "id":"openo_menu_service_service_management", - "url":"../lifecyclemgr/gsolcmmain.html", - "iconClass":"fa fa-comments" - }, - { - "parentId":"openo_menu_resource_mgr", - "id":"openo_menu_resource_mgr_sdno", - "url":"../resmgr-sdn/resource.html", - "iconClass":"fa fa-folder-open-o" - }, - { - "parentId":"openo_menu_resource_mgr", - "id":"openo_menu_resource_mgr_nfvo", - "url":"../resmgr-nfv/resource.html", - "iconClass":"fa fa-folder-open-o" - }, - { - "parentId":"openo_menu_user", - "id":"openo_menu_user_user_management", - "url":"../user/user.html", - "iconClass":"fa fa-puzzle-piece" - }, - { - "parentId":"openo_menu_orchestrator", - "id":"openo_menu_orchestrator_model_design", - "url":"/winery/servicetemplates.html", - "iconClass":"fa fa-folder-open-o" - }, - { - "parentId":"openo_menu_orchestrator", - "id":"openo_menu_orchestrator_package", - "url":"../catalog/csarPackage.html", - "iconClass":"fa fa-folder-open-o" - }, - { - "parentId":"openo_menu_orchestrator", - "id":"openo_menu_orchestrator_service_template", - "url":"../catalog/template.html", - "iconClass":"fa fa-list-alt" - }, - { - "parentId":"openo_menu_manage_view", - "id":"openo_menu_manage_view_vim_manage", - "url":"../extsys/vim/vimView.html", - "iconClass":"fa fa-coffee" - }, - { - "parentId":"openo_menu_manage_view", - "id":"openo_menu_manage_view_vnfm", - "url":"../extsys/vnfm/vnfmView.html", - "iconClass":"fa fa-coffee" - }, - { - "parentId":"openo_menu_manage_view", - "id":"openo_menu_manage_view_sdn_controller", - "url":"../extsys/sdncontroller/controller.html", - "iconClass":"fa fa-coffee" - }, - { - "parentId":"openo_menu_performance", - "id":"openo_menu_performance_performance_query", - "url":"../performance/performance_view.html", - "iconClass":"fa fa-bar-chart" - }, - { - "parentId":"openo_menu_performance", - "id":"openo_menu_alarm_alarm_query", - "url":"../performance/alarm_view.html", - "iconClass":"fa fa-bell" - }, - { - "parentId":"openo_menu_monitor", - "id":"openo_menu_monitor_parameter_setting", - "url":"../monitor/monitorSettingList.html", - "iconClass":"fa fa-cogs" - } - ] -} \ No newline at end of file diff --git a/portal-common/src/main/webapp/common/login.html b/portal-common/src/main/webapp/common/login.html deleted file mode 100644 index 23950494..00000000 --- a/portal-common/src/main/webapp/common/login.html +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    - - - diff --git a/portal-common/src/main/webapp/common/thirdparty/animate/animate.min.css b/portal-common/src/main/webapp/common/thirdparty/animate/animate.min.css deleted file mode 100644 index 3a85ab38..00000000 --- a/portal-common/src/main/webapp/common/thirdparty/animate/animate.min.css +++ /dev/null @@ -1,6 +0,0 @@ -@charset "UTF-8";/*! -Animate.css - http://daneden.me/animate -Licensed under the MIT license - http://opensource.org/licenses/MIT - -Copyright (c) 2014 Daniel Eden -*/.animated{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animated.infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.animated.hinge{-webkit-animation-duration:2s;animation-duration:2s}@-webkit-keyframes bounce{0%,100%,20%,53%,80%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1);-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}40%,43%{-webkit-transition-timing-function:cubic-bezier(0.755,.050,.855,.060);transition-timing-function:cubic-bezier(0.755,.050,.855,.060);-webkit-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}70%{-webkit-transition-timing-function:cubic-bezier(0.755,.050,.855,.060);transition-timing-function:cubic-bezier(0.755,.050,.855,.060);-webkit-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}@keyframes bounce{0%,100%,20%,53%,80%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1);-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}40%,43%{-webkit-transition-timing-function:cubic-bezier(0.755,.050,.855,.060);transition-timing-function:cubic-bezier(0.755,.050,.855,.060);-webkit-transform:translate3d(0,-30px,0);-ms-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}70%{-webkit-transition-timing-function:cubic-bezier(0.755,.050,.855,.060);transition-timing-function:cubic-bezier(0.755,.050,.855,.060);-webkit-transform:translate3d(0,-15px,0);-ms-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);-ms-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}.bounce{-webkit-animation-name:bounce;animation-name:bounce;-webkit-transform-origin:center bottom;-ms-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes flash{0%,100%,50%{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,100%,50%{opacity:1}25%,75%{opacity:0}}.flash{-webkit-animation-name:flash;animation-name:flash}@-webkit-keyframes pulse{0%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}100%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes pulse{0%{-webkit-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);-ms-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}100%{-webkit-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.pulse{-webkit-animation-name:pulse;animation-name:pulse}@-webkit-keyframes rubberBand{0%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(0.75,1.25,1);transform:scale3d(0.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}100%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes rubberBand{0%{-webkit-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}30%{-webkit-transform:scale3d(1.25,.75,1);-ms-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(0.75,1.25,1);-ms-transform:scale3d(0.75,1.25,1);transform:scale3d(0.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);-ms-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);-ms-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);-ms-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}100%{-webkit-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.rubberBand{-webkit-animation-name:rubberBand;animation-name:rubberBand}@-webkit-keyframes shake{0%,100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}@keyframes shake{0%,100%{-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);-ms-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);-ms-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}.shake{-webkit-animation-name:shake;animation-name:shake}@-webkit-keyframes swing{20%{-webkit-transform:rotate3d(0,0,1,15deg);transform:rotate3d(0,0,1,15deg)}40%{-webkit-transform:rotate3d(0,0,1,-10deg);transform:rotate3d(0,0,1,-10deg)}60%{-webkit-transform:rotate3d(0,0,1,5deg);transform:rotate3d(0,0,1,5deg)}80%{-webkit-transform:rotate3d(0,0,1,-5deg);transform:rotate3d(0,0,1,-5deg)}100%{-webkit-transform:rotate3d(0,0,1,0deg);transform:rotate3d(0,0,1,0deg)}}@keyframes swing{20%{-webkit-transform:rotate3d(0,0,1,15deg);-ms-transform:rotate3d(0,0,1,15deg);transform:rotate3d(0,0,1,15deg)}40%{-webkit-transform:rotate3d(0,0,1,-10deg);-ms-transform:rotate3d(0,0,1,-10deg);transform:rotate3d(0,0,1,-10deg)}60%{-webkit-transform:rotate3d(0,0,1,5deg);-ms-transform:rotate3d(0,0,1,5deg);transform:rotate3d(0,0,1,5deg)}80%{-webkit-transform:rotate3d(0,0,1,-5deg);-ms-transform:rotate3d(0,0,1,-5deg);transform:rotate3d(0,0,1,-5deg)}100%{-webkit-transform:rotate3d(0,0,1,0deg);-ms-transform:rotate3d(0,0,1,0deg);transform:rotate3d(0,0,1,0deg)}}.swing{-webkit-transform-origin:top center;-ms-transform-origin:top center;transform-origin:top center;-webkit-animation-name:swing;animation-name:swing}@-webkit-keyframes tada{0%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg);transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg)}100%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes tada{0%{-webkit-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg);-ms-transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg);transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg);-ms-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg);-ms-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg)}100%{-webkit-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.tada{-webkit-animation-name:tada;animation-name:tada}@-webkit-keyframes wobble{0%{-webkit-transform:none;transform:none}15%{-webkit-transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg);transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg);transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg);transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg);transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg);transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg)}100%{-webkit-transform:none;transform:none}}@keyframes wobble{0%{-webkit-transform:none;-ms-transform:none;transform:none}15%{-webkit-transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg);-ms-transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg);transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg);-ms-transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg);transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg);-ms-transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg);transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg);-ms-transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg);transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg);-ms-transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg);transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg)}100%{-webkit-transform:none;-ms-transform:none;transform:none}}.wobble{-webkit-animation-name:wobble;animation-name:wobble}@-webkit-keyframes bounceIn{0%,100%,20%,40%,60%,80%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}100%{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes bounceIn{0%,100%,20%,40%,60%,80%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);-ms-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);-ms-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);-ms-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);-ms-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);-ms-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}100%{opacity:1;-webkit-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.bounceIn{-webkit-animation-name:bounceIn;animation-name:bounceIn;-webkit-animation-duration:.75s;animation-duration:.75s}@-webkit-keyframes bounceInDown{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}100%{-webkit-transform:none;transform:none}}@keyframes bounceInDown{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);-ms-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);-ms-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);-ms-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);-ms-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}100%{-webkit-transform:none;-ms-transform:none;transform:none}}.bounceInDown{-webkit-animation-name:bounceInDown;animation-name:bounceInDown}@-webkit-keyframes bounceInLeft{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}100%{-webkit-transform:none;transform:none}}@keyframes bounceInLeft{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);-ms-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);-ms-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);-ms-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);-ms-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}100%{-webkit-transform:none;-ms-transform:none;transform:none}}.bounceInLeft{-webkit-animation-name:bounceInLeft;animation-name:bounceInLeft}@-webkit-keyframes bounceInRight{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}100%{-webkit-transform:none;transform:none}}@keyframes bounceInRight{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0);-ms-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);-ms-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);-ms-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);-ms-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}100%{-webkit-transform:none;-ms-transform:none;transform:none}}.bounceInRight{-webkit-animation-name:bounceInRight;animation-name:bounceInRight}@-webkit-keyframes bounceInUp{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes bounceInUp{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0);-ms-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);-ms-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);-ms-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);-ms-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}100%{-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.bounceInUp{-webkit-animation-name:bounceInUp;animation-name:bounceInUp}@-webkit-keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}100%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);-ms-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);-ms-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}100%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);-ms-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}.bounceOut{-webkit-animation-name:bounceOut;animation-name:bounceOut;-webkit-animation-duration:.75s;animation-duration:.75s}@-webkit-keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}100%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);-ms-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);-ms-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}100%{opacity:0;-webkit-transform:translate3d(0,2000px,0);-ms-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.bounceOutDown{-webkit-animation-name:bounceOutDown;animation-name:bounceOutDown}@-webkit-keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}100%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);-ms-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}100%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);-ms-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.bounceOutLeft{-webkit-animation-name:bounceOutLeft;animation-name:bounceOutLeft}@-webkit-keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}100%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);-ms-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}100%{opacity:0;-webkit-transform:translate3d(2000px,0,0);-ms-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.bounceOutRight{-webkit-animation-name:bounceOutRight;animation-name:bounceOutRight}@-webkit-keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}100%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);-ms-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);-ms-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}100%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);-ms-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.bounceOutUp{-webkit-animation-name:bounceOutUp;animation-name:bounceOutUp}@-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}.fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);-ms-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInDown{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}@-webkit-keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);-ms-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInDownBig{-webkit-animation-name:fadeInDownBig;animation-name:fadeInDownBig}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);-ms-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInLeft{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}@-webkit-keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);-ms-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInLeftBig{-webkit-animation-name:fadeInLeftBig;animation-name:fadeInLeftBig}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);-ms-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInRight{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}@-webkit-keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);-ms-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInRightBig{-webkit-animation-name:fadeInRightBig;animation-name:fadeInRightBig}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);-ms-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInUp{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}@-webkit-keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);-ms-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInUpBig{-webkit-animation-name:fadeInUpBig;animation-name:fadeInUpBig}@-webkit-keyframes fadeOut{0%{opacity:1}100%{opacity:0}}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}.fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}@-webkit-keyframes fadeOutDown{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes fadeOutDown{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,100%,0);-ms-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.fadeOutDown{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}@-webkit-keyframes fadeOutDownBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes fadeOutDownBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,2000px,0);-ms-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.fadeOutDownBig{-webkit-animation-name:fadeOutDownBig;animation-name:fadeOutDownBig}@-webkit-keyframes fadeOutLeft{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes fadeOutLeft{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-100%,0,0);-ms-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.fadeOutLeft{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}@-webkit-keyframes fadeOutLeftBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes fadeOutLeftBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);-ms-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.fadeOutLeftBig{-webkit-animation-name:fadeOutLeftBig;animation-name:fadeOutLeftBig}@-webkit-keyframes fadeOutRight{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes fadeOutRight{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%,0,0);-ms-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.fadeOutRight{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeOutRightBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes fadeOutRightBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(2000px,0,0);-ms-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.fadeOutRightBig{-webkit-animation-name:fadeOutRightBig;animation-name:fadeOutRightBig}@-webkit-keyframes fadeOutUp{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes fadeOutUp{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,-100%,0);-ms-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.fadeOutUp{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}@-webkit-keyframes fadeOutUpBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes fadeOutUpBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);-ms-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.fadeOutUpBig{-webkit-animation-name:fadeOutUpBig;animation-name:fadeOutUpBig}@-webkit-keyframes flip{0%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-360deg);transform:perspective(400px) rotate3d(0,1,0,-360deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95);transform:perspective(400px) scale3d(.95,.95,.95);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}100%{-webkit-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}@keyframes flip{0%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-360deg);-ms-transform:perspective(400px) rotate3d(0,1,0,-360deg);transform:perspective(400px) rotate3d(0,1,0,-360deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);-ms-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);-ms-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95);-ms-transform:perspective(400px) scale3d(.95,.95,.95);transform:perspective(400px) scale3d(.95,.95,.95);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}100%{-webkit-transform:perspective(400px);-ms-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}.animated.flip{-webkit-backface-visibility:visible;-ms-backface-visibility:visible;backface-visibility:visible;-webkit-animation-name:flip;animation-name:flip}@-webkit-keyframes flipInX{0%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1,0,0,10deg);transform:perspective(400px) rotate3d(1,0,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-5deg);transform:perspective(400px) rotate3d(1,0,0,-5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInX{0%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);-ms-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);-ms-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1,0,0,10deg);-ms-transform:perspective(400px) rotate3d(1,0,0,10deg);transform:perspective(400px) rotate3d(1,0,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-5deg);-ms-transform:perspective(400px) rotate3d(1,0,0,-5deg);transform:perspective(400px) rotate3d(1,0,0,-5deg)}100%{-webkit-transform:perspective(400px);-ms-transform:perspective(400px);transform:perspective(400px)}}.flipInX{-webkit-backface-visibility:visible!important;-ms-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInX;animation-name:flipInX}@-webkit-keyframes flipInY{0%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-20deg);transform:perspective(400px) rotate3d(0,1,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(0,1,0,10deg);transform:perspective(400px) rotate3d(0,1,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-5deg);transform:perspective(400px) rotate3d(0,1,0,-5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInY{0%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);-ms-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-20deg);-ms-transform:perspective(400px) rotate3d(0,1,0,-20deg);transform:perspective(400px) rotate3d(0,1,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(0,1,0,10deg);-ms-transform:perspective(400px) rotate3d(0,1,0,10deg);transform:perspective(400px) rotate3d(0,1,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-5deg);-ms-transform:perspective(400px) rotate3d(0,1,0,-5deg);transform:perspective(400px) rotate3d(0,1,0,-5deg)}100%{-webkit-transform:perspective(400px);-ms-transform:perspective(400px);transform:perspective(400px)}}.flipInY{-webkit-backface-visibility:visible!important;-ms-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInY;animation-name:flipInY}@-webkit-keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);opacity:0}}@keyframes flipOutX{0%{-webkit-transform:perspective(400px);-ms-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);-ms-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);-ms-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);opacity:0}}.flipOutX{-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-backface-visibility:visible!important;-ms-backface-visibility:visible!important;backface-visibility:visible!important}@-webkit-keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-15deg);transform:perspective(400px) rotate3d(0,1,0,-15deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);opacity:0}}@keyframes flipOutY{0%{-webkit-transform:perspective(400px);-ms-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-15deg);-ms-transform:perspective(400px) rotate3d(0,1,0,-15deg);transform:perspective(400px) rotate3d(0,1,0,-15deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);-ms-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);opacity:0}}.flipOutY{-webkit-backface-visibility:visible!important;-ms-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipOutY;animation-name:flipOutY;-webkit-animation-duration:.75s;animation-duration:.75s}@-webkit-keyframes lightSpeedIn{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg);opacity:1}100%{-webkit-transform:none;transform:none;opacity:1}}@keyframes lightSpeedIn{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);-ms-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);-ms-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);-ms-transform:skewX(-5deg);transform:skewX(-5deg);opacity:1}100%{-webkit-transform:none;-ms-transform:none;transform:none;opacity:1}}.lightSpeedIn{-webkit-animation-name:lightSpeedIn;animation-name:lightSpeedIn;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedOut{0%{opacity:1}100%{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}@keyframes lightSpeedOut{0%{opacity:1}100%{-webkit-transform:translate3d(100%,0,0) skewX(30deg);-ms-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}.lightSpeedOut{-webkit-animation-name:lightSpeedOut;animation-name:lightSpeedOut;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes rotateIn{0%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,-200deg);transform:rotate3d(0,0,1,-200deg);opacity:0}100%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateIn{0%{-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,-200deg);-ms-transform:rotate3d(0,0,1,-200deg);transform:rotate3d(0,0,1,-200deg);opacity:0}100%{-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;-webkit-transform:none;-ms-transform:none;transform:none;opacity:1}}.rotateIn{-webkit-animation-name:rotateIn;animation-name:rotateIn}@-webkit-keyframes rotateInDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInDownLeft{0%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);-ms-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}100%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;-ms-transform:none;transform:none;opacity:1}}.rotateInDownLeft{-webkit-animation-name:rotateInDownLeft;animation-name:rotateInDownLeft}@-webkit-keyframes rotateInDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInDownRight{0%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,45deg);-ms-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}100%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;-ms-transform:none;transform:none;opacity:1}}.rotateInDownRight{-webkit-animation-name:rotateInDownRight;animation-name:rotateInDownRight}@-webkit-keyframes rotateInUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInUpLeft{0%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,45deg);-ms-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}100%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;-ms-transform:none;transform:none;opacity:1}}.rotateInUpLeft{-webkit-animation-name:rotateInUpLeft;animation-name:rotateInUpLeft}@-webkit-keyframes rotateInUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-90deg);transform:rotate3d(0,0,1,-90deg);opacity:0}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInUpRight{0%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-90deg);-ms-transform:rotate3d(0,0,1,-90deg);transform:rotate3d(0,0,1,-90deg);opacity:0}100%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;-ms-transform:none;transform:none;opacity:1}}.rotateInUpRight{-webkit-animation-name:rotateInUpRight;animation-name:rotateInUpRight}@-webkit-keyframes rotateOut{0%{-webkit-transform-origin:center;transform-origin:center;opacity:1}100%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,200deg);transform:rotate3d(0,0,1,200deg);opacity:0}}@keyframes rotateOut{0%{-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;opacity:1}100%{-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,200deg);-ms-transform:rotate3d(0,0,1,200deg);transform:rotate3d(0,0,1,200deg);opacity:0}}.rotateOut{-webkit-animation-name:rotateOut;animation-name:rotateOut}@-webkit-keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(0,0,1,45deg);transform:rotate(0,0,1,45deg);opacity:0}}@keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;opacity:1}100%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(0,0,1,45deg);-ms-transform:rotate(0,0,1,45deg);transform:rotate(0,0,1,45deg);opacity:0}}.rotateOutDownLeft{-webkit-animation-name:rotateOutDownLeft;animation-name:rotateOutDownLeft}@-webkit-keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}@keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;opacity:1}100%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-45deg);-ms-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}.rotateOutDownRight{-webkit-animation-name:rotateOutDownRight;animation-name:rotateOutDownRight}@-webkit-keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}@keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;opacity:1}100%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);-ms-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}.rotateOutUpLeft{-webkit-animation-name:rotateOutUpLeft;animation-name:rotateOutUpLeft}@-webkit-keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,90deg);transform:rotate3d(0,0,1,90deg);opacity:0}}@keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;opacity:1}100%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,90deg);-ms-transform:rotate3d(0,0,1,90deg);transform:rotate3d(0,0,1,90deg);opacity:0}}.rotateOutUpRight{-webkit-animation-name:rotateOutUpRight;animation-name:rotateOutUpRight}@-webkit-keyframes hinge{0%{-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate3d(0,0,1,80deg);transform:rotate3d(0,0,1,80deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate3d(0,0,1,60deg);transform:rotate3d(0,0,1,60deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}100%{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}@keyframes hinge{0%{-webkit-transform-origin:top left;-ms-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate3d(0,0,1,80deg);-ms-transform:rotate3d(0,0,1,80deg);transform:rotate3d(0,0,1,80deg);-webkit-transform-origin:top left;-ms-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate3d(0,0,1,60deg);-ms-transform:rotate3d(0,0,1,60deg);transform:rotate3d(0,0,1,60deg);-webkit-transform-origin:top left;-ms-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}100%{-webkit-transform:translate3d(0,700px,0);-ms-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}.hinge{-webkit-animation-name:hinge;animation-name:hinge}@-webkit-keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg);transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg);-ms-transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg);transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.rollIn{-webkit-animation-name:rollIn;animation-name:rollIn}@-webkit-keyframes rollOut{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg);transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg)}}@keyframes rollOut{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg);-ms-transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg);transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg)}}.rollOut{-webkit-animation-name:rollOut;animation-name:rollOut}@-webkit-keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);-ms-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}.zoomIn{-webkit-animation-name:zoomIn;animation-name:zoomIn}@-webkit-keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-ms-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-ms-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.zoomInDown{-webkit-animation-name:zoomInDown;animation-name:zoomInDown}@-webkit-keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-ms-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-ms-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.zoomInLeft{-webkit-animation-name:zoomInLeft;animation-name:zoomInLeft}@-webkit-keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-ms-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-ms-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.zoomInRight{-webkit-animation-name:zoomInRight;animation-name:zoomInRight}@-webkit-keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-ms-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-ms-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.zoomInUp{-webkit-animation-name:zoomInUp;animation-name:zoomInUp}@-webkit-keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}100%{opacity:0}}@keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);-ms-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}100%{opacity:0}}.zoomOut{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}100%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-ms-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}100%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-ms-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;-ms-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.zoomOutDown{-webkit-animation-name:zoomOutDown;animation-name:zoomOutDown}@-webkit-keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}100%{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;transform-origin:left center}}@keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);-ms-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}100%{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);-ms-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;-ms-transform-origin:left center;transform-origin:left center}}.zoomOutLeft{-webkit-animation-name:zoomOutLeft;animation-name:zoomOutLeft}@-webkit-keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}100%{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;transform-origin:right center}}@keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);-ms-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}100%{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);-ms-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;-ms-transform-origin:right center;transform-origin:right center}}.zoomOutRight{-webkit-animation-name:zoomOutRight;animation-name:zoomOutRight}@-webkit-keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}100%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-ms-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}100%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-ms-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;-ms-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.zoomOutUp{-webkit-animation-name:zoomOutUp;animation-name:zoomOutUp} \ No newline at end of file diff --git a/portal-common/src/main/webapp/common/thirdparty/avalon/avalon.js b/portal-common/src/main/webapp/common/thirdparty/avalon/avalon.js deleted file mode 100644 index 786ed3c0..00000000 --- a/portal-common/src/main/webapp/common/thirdparty/avalon/avalon.js +++ /dev/null @@ -1,5819 +0,0 @@ -/*================================================== - Copyright (c) 2013-2015 司徒正美 and other contributors - http://www.cnblogs.com/rubylouvre/ - https://github.com/RubyLouvre - http://weibo.com/jslouvre/ - - Released under the MIT license - avalon.js 1.45 built in 2015.7.17 - support IE6+ and other browsers - ==================================================*/ -(function(global, factory) { - - if (typeof module === "object" && typeof module.exports === "object") { - // For CommonJS and CommonJS-like environments where a proper `window` - // is present, execute the factory and get avalon. - // For environments that do not have a `window` with a `document` - // (such as Node.js), expose a factory as module.exports. - // This accentuates the need for the creation of a real `window`. - // e.g. var avalon = require("avalon")(window); - module.exports = global.document ? factory(global, true) : function(w) { - if (!w.document) { - throw new Error("Avalon requires a window with a document") - } - return factory(w) - } - } else { - factory(global) - } - -// Pass this if window is not defined yet -}(typeof window !== "undefined" ? window : this, function(window, noGlobal){ - -/********************************************************************* - * 全局变量及方法 * - **********************************************************************/ -var expose = new Date() - 0 -//http://stackoverflow.com/questions/7290086/javascript-use-strict-and-nicks-find-global-function -var DOC = window.document -var head = DOC.getElementsByTagName("head")[0] //HEAD元素 -var ifGroup = head.insertBefore(document.createElement("avalon"), head.firstChild) //避免IE6 base标签BUG -ifGroup.innerHTML = "X" -ifGroup.setAttribute("ms-skip", "1") -ifGroup.className = "avalonHide" -var rnative = /\[native code\]/ //判定是否原生函数 -function log() { - if (window.console && avalon.config.debug) { - // http://stackoverflow.com/questions/8785624/how-to-safely-wrap-console-log - Function.apply.call(console.log, console, arguments) - } -} - - -var subscribers = "$" + expose -var otherRequire = window.require -var otherDefine = window.define -var innerRequire -var stopRepeatAssign = false -var rword = /[^, ]+/g //切割字符串为一个个小块,以空格或豆号分开它们,结合replace实现字符串的forEach -var rcomplexType = /^(?:object|array)$/ -var rsvg = /^\[object SVG\w*Element\]$/ -var rwindow = /^\[object (?:Window|DOMWindow|global)\]$/ -var oproto = Object.prototype -var ohasOwn = oproto.hasOwnProperty -var serialize = oproto.toString -var ap = Array.prototype -var aslice = ap.slice -var Registry = {} //将函数曝光到此对象上,方便访问器收集依赖 -var W3C = window.dispatchEvent -var root = DOC.documentElement -var avalonFragment = DOC.createDocumentFragment() -var cinerator = DOC.createElement("div") -var class2type = {} -"Boolean Number String Function Array Date RegExp Object Error".replace(rword, function (name) { - class2type["[object " + name + "]"] = name.toLowerCase() -}) - - -function noop() { -} - - -function oneObject(array, val) { - if (typeof array === "string") { - array = array.match(rword) || [] - } - var result = {}, - value = val !== void 0 ? val : 1 - for (var i = 0, n = array.length; i < n; i++) { - result[array[i]] = value - } - return result -} - -//生成UUID http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript -var generateID = function (prefix) { - prefix = prefix || "avalon" - return String(Math.random() + Math.random()).replace(/\d\.\d{4}/, prefix) -} -function IE() { - if (window.VBArray) { - var mode = document.documentMode - return mode ? mode : window.XMLHttpRequest ? 7 : 6 - } else { - return NaN - } -} -var IEVersion = IE() - -avalon = function (el) { //创建jQuery式的无new 实例化结构 - return new avalon.init(el) -} - -avalon.profile = function () { - if (window.console && avalon.config.profile) { - Function.apply.call(console.log, console, arguments) - } -} - -/*视浏览器情况采用最快的异步回调*/ -avalon.nextTick = new function () {// jshint ignore:line - var tickImmediate = window.setImmediate - var tickObserver = window.MutationObserver - var tickPost = W3C && window.postMessage - if (tickImmediate) { - return tickImmediate.bind(window) - } - - var queue = [] - function callback() { - var n = queue.length - for (var i = 0; i < n; i++) { - queue[i]() - } - queue = queue.slice(n) - } - - if (tickObserver) { - var node = document.createTextNode("avalon") - new tickObserver(callback).observe(node, {characterData: true})// jshint ignore:line - return function (fn) { - queue.push(fn) - node.data = Math.random() - } - } - - if (tickPost) { - window.addEventListener("message", function (e) { - var source = e.source - if ((source === window || source === null) && e.data === "process-tick") { - e.stopPropagation() - callback() - } - }) - - return function (fn) { - queue.push(fn) - window.postMessage('process-tick', '*') - } - } - - return function (fn) { - setTimeout(fn, 0) - } -}// jshint ignore:line -/********************************************************************* - * avalon的静态方法定义区 * - **********************************************************************/ -avalon.init = function (el) { - this[0] = this.element = el -} -avalon.fn = avalon.prototype = avalon.init.prototype - -avalon.type = function (obj) { //取得目标的类型 - if (obj == null) { - return String(obj) - } - // 早期的webkit内核浏览器实现了已废弃的ecma262v4标准,可以将正则字面量当作函数使用,因此typeof在判定正则时会返回function - return typeof obj === "object" || typeof obj === "function" ? - class2type[serialize.call(obj)] || "object" : - typeof obj -} - -var isFunction = typeof alert === "object" ? function (fn) { - try { - return /^\s*\bfunction\b/.test(fn + "") - } catch (e) { - return false - } -} : function (fn) { - return serialize.call(fn) === "[object Function]" -} -avalon.isFunction = isFunction - -avalon.isWindow = function (obj) { - if (!obj) - return false - // 利用IE678 window == document为true,document == window竟然为false的神奇特性 - // 标准浏览器及IE9,IE10等使用 正则检测 - return obj == obj.document && obj.document != obj //jshint ignore:line -} - -function isWindow(obj) { - return rwindow.test(serialize.call(obj)) -} -if (isWindow(window)) { - avalon.isWindow = isWindow -} -var enu -for (enu in avalon({})) { - break -} -var enumerateBUG = enu !== "0" //IE6下为true, 其他为false -/*判定是否是一个朴素的javascript对象(Object),不是DOM对象,不是BOM对象,不是自定义类的实例*/ -avalon.isPlainObject = function (obj, key) { - if (!obj || avalon.type(obj) !== "object" || obj.nodeType || avalon.isWindow(obj)) { - return false; - } - try { //IE内置对象没有constructor - if (obj.constructor && !ohasOwn.call(obj, "constructor") && !ohasOwn.call(obj.constructor.prototype, "isPrototypeOf")) { - return false; - } - } catch (e) { //IE8 9会在这里抛错 - return false; - } - if (enumerateBUG) { - for (key in obj) { - return ohasOwn.call(obj, key) - } - } - for (key in obj) { - } - return key === void 0 || ohasOwn.call(obj, key) -} -if (rnative.test(Object.getPrototypeOf)) { - avalon.isPlainObject = function (obj) { - // 简单的 typeof obj === "object"检测,会致使用isPlainObject(window)在opera下通不过 - return serialize.call(obj) === "[object Object]" && Object.getPrototypeOf(obj) === oproto - } -} -//与jQuery.extend方法,可用于浅拷贝,深拷贝 -avalon.mix = avalon.fn.mix = function () { - var options, name, src, copy, copyIsArray, clone, - target = arguments[0] || {}, - i = 1, - length = arguments.length, - deep = false - - // 如果第一个参数为布尔,判定是否深拷贝 - if (typeof target === "boolean") { - deep = target - target = arguments[1] || {} - i++ - } - - //确保接受方为一个复杂的数据类型 - if (typeof target !== "object" && !isFunction(target)) { - target = {} - } - - //如果只有一个参数,那么新成员添加于mix所在的对象上 - if (i === length) { - target = this - i-- - } - - for (; i < length; i++) { - //只处理非空参数 - if ((options = arguments[i]) != null) { - for (name in options) { - src = target[name] - try { - copy = options[name] //当options为VBS对象时报错 - } catch (e) { - continue - } - - // 防止环引用 - if (target === copy) { - continue - } - if (deep && copy && (avalon.isPlainObject(copy) || (copyIsArray = Array.isArray(copy)))) { - - if (copyIsArray) { - copyIsArray = false - clone = src && Array.isArray(src) ? src : [] - - } else { - clone = src && avalon.isPlainObject(src) ? src : {} - } - - target[name] = avalon.mix(deep, clone, copy) - } else if (copy !== void 0) { - target[name] = copy - } - } - } - } - return target -} - -function _number(a, len) { //用于模拟slice, splice的效果 - a = Math.floor(a) || 0 - return a < 0 ? Math.max(len + a, 0) : Math.min(a, len); -} -avalon.mix({ - rword: rword, - subscribers: subscribers, - version: 1.45, - ui: {}, - log: log, - slice: W3C ? function (nodes, start, end) { - return aslice.call(nodes, start, end) - } : function (nodes, start, end) { - var ret = [] - var len = nodes.length - if (end === void 0) - end = len - if (typeof end === "number" && isFinite(end)) { - start = _number(start, len) - end = _number(end, len) - for (var i = start; i < end; ++i) { - ret[i - start] = nodes[i] - } - } - return ret - }, - noop: noop, - /*如果不用Error对象封装一下,str在控制台下可能会乱码*/ - error: function (str, e) { - throw (e || Error)(str) - }, - /*将一个以空格或逗号隔开的字符串或数组,转换成一个键值都为1的对象*/ - oneObject: oneObject, - /* avalon.range(10) - => [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] - avalon.range(1, 11) - => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] - avalon.range(0, 30, 5) - => [0, 5, 10, 15, 20, 25] - avalon.range(0, -10, -1) - => [0, -1, -2, -3, -4, -5, -6, -7, -8, -9] - avalon.range(0) - => []*/ - range: function (start, end, step) { // 用于生成整数数组 - step || (step = 1) - if (end == null) { - end = start || 0 - start = 0 - } - var index = -1, - length = Math.max(0, Math.ceil((end - start) / step)), - result = new Array(length) - while (++index < length) { - result[index] = start - start += step - } - return result - }, - eventHooks: [], - /*绑定事件*/ - bind: function(el, type, fn, phase) { - var hooks = avalon.eventHooks - var hook = hooks[type] - if (typeof hook === "object") { - type = hook.type - if (hook.deel) { - fn = hook.deel(el, type, fn, phase) - } - } - var callback = W3C ? fn : function(e) { - fn.call(el, fixEvent(e)); - } - if (W3C) { - el.addEventListener(type, callback, !!phase) - } else { - el.attachEvent("on" + type, callback) - } - return callback - }, - /*卸载事件*/ - unbind: function(el, type, fn, phase) { - var hooks = avalon.eventHooks - var hook = hooks[type] - var callback = fn || noop - if (typeof hook === "object") { - type = hook.type - if (hook.deel) { - fn = hook.deel(el, type, fn, false) - } - } - if (W3C) { - el.removeEventListener(type, callback, !!phase) - } else { - el.detachEvent("on" + type, callback) - } - }, - /*读写删除元素节点的样式*/ - css: function (node, name, value) { - if (node instanceof avalon) { - node = node[0] - } - var prop = /[_-]/.test(name) ? camelize(name) : name, fn - name = avalon.cssName(prop) || prop - if (value === void 0 || typeof value === "boolean") { //获取样式 - fn = cssHooks[prop + ":get"] || cssHooks["@:get"] - if (name === "background") { - name = "backgroundColor" - } - var val = fn(node, name) - return value === true ? parseFloat(val) || 0 : val - } else if (value === "") { //请除样式 - node.style[name] = "" - } else { //设置样式 - if (value == null || value !== value) { - return - } - if (isFinite(value) && !avalon.cssNumber[prop]) { - value += "px" - } - fn = cssHooks[prop + ":set"] || cssHooks["@:set"] - fn(node, name, value) - } - }, - /*遍历数组与对象,回调的第一个参数为索引或键名,第二个或元素或键值*/ - each: function (obj, fn) { - if (obj) { //排除null, undefined - var i = 0 - if (isArrayLike(obj)) { - for (var n = obj.length; i < n; i++) { - if (fn(i, obj[i]) === false) - break - } - } else { - for (i in obj) { - if (obj.hasOwnProperty(i) && fn(i, obj[i]) === false) { - break - } - } - } - } - }, - //收集元素的data-{{prefix}}-*属性,并转换为对象 - getWidgetData: function (elem, prefix) { - var raw = avalon(elem).data() - var result = {} - for (var i in raw) { - if (i.indexOf(prefix) === 0) { - result[i.replace(prefix, "").replace(/\w/, function (a) { - return a.toLowerCase() - })] = raw[i] - } - } - return result - }, - Array: { - /*只有当前数组不存在此元素时只添加它*/ - ensure: function (target, item) { - if (target.indexOf(item) === -1) { - return target.push(item) - } - }, - /*移除数组中指定位置的元素,返回布尔表示成功与否*/ - removeAt: function (target, index) { - return !!target.splice(index, 1).length - }, - /*移除数组中第一个匹配传参的那个元素,返回布尔表示成功与否*/ - remove: function (target, item) { - var index = target.indexOf(item) - if (~index) - return avalon.Array.removeAt(target, index) - return false - } - } -}) - -var bindingHandlers = avalon.bindingHandlers = {} -var bindingExecutors = avalon.bindingExecutors = {} - -/*判定是否类数组,如节点集合,纯数组,arguments与拥有非负整数的length属性的纯JS对象*/ -function isArrayLike(obj) { - if (!obj) - return false - var n = obj.length - if (n === (n >>> 0)) { //检测length属性是否为非负整数 - var type = serialize.call(obj).slice(8, -1) - if (/(?:regexp|string|function|window|global)$/i.test(type)) - return false - if (type === "Array") - return true - try { - if ({}.propertyIsEnumerable.call(obj, "length") === false) { //如果是原生对象 - return /^\s?function/.test(obj.item || obj.callee) - } - return true - } catch (e) { //IE的NodeList直接抛错 - return !obj.window //IE6-8 window - } - } - return false -} - - -// https://github.com/rsms/js-lru -var Cache = new function() {// jshint ignore:line - function LRU(maxLength) { - this.size = 0 - this.limit = maxLength - this.head = this.tail = void 0 - this._keymap = {} - } - - var p = LRU.prototype - - p.put = function(key, value) { - var entry = { - key: key, - value: value - } - this._keymap[key] = entry - if (this.tail) { - this.tail.newer = entry - entry.older = this.tail - } else { - this.head = entry - } - this.tail = entry - if (this.size === this.limit) { - this.shift() - } else { - this.size++ - } - return value - } - - p.shift = function() { - var entry = this.head - if (entry) { - this.head = this.head.newer - this.head.older = - entry.newer = - entry.older = - this._keymap[entry.key] = void 0 - } - } - p.get = function(key) { - var entry = this._keymap[key] - if (entry === void 0) - return - if (entry === this.tail) { - return entry.value - } - // HEAD--------------TAIL - // <.older .newer> - // <--- add direction -- - // A B C E - if (entry.newer) { - if (entry === this.head) { - this.head = entry.newer - } - entry.newer.older = entry.older // C <-- E. - } - if (entry.older) { - entry.older.newer = entry.newer // C. --> E - } - entry.newer = void 0 // D --x - entry.older = this.tail // D. --> E - if (this.tail) { - this.tail.newer = entry // E. <-- D - } - this.tail = entry - return entry.value - } - return LRU -}// jshint ignore:line - -/********************************************************************* - * javascript 底层补丁 * - **********************************************************************/ -if (!"司徒正美".trim) { - var rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g - String.prototype.trim = function () { - return this.replace(rtrim, "") - } -} -var hasDontEnumBug = !({ - 'toString': null -}).propertyIsEnumerable('toString'), - hasProtoEnumBug = (function () { - }).propertyIsEnumerable('prototype'), - dontEnums = [ - "toString", - "toLocaleString", - "valueOf", - "hasOwnProperty", - "isPrototypeOf", - "propertyIsEnumerable", - "constructor" - ], - dontEnumsLength = dontEnums.length; -if (!Object.keys) { - Object.keys = function (object) { //ecma262v5 15.2.3.14 - var theKeys = [] - var skipProto = hasProtoEnumBug && typeof object === "function" - if (typeof object === "string" || (object && object.callee)) { - for (var i = 0; i < object.length; ++i) { - theKeys.push(String(i)) - } - } else { - for (var name in object) { - if (!(skipProto && name === "prototype") && ohasOwn.call(object, name)) { - theKeys.push(String(name)) - } - } - } - - if (hasDontEnumBug) { - var ctor = object.constructor, - skipConstructor = ctor && ctor.prototype === object - for (var j = 0; j < dontEnumsLength; j++) { - var dontEnum = dontEnums[j] - if (!(skipConstructor && dontEnum === "constructor") && ohasOwn.call(object, dontEnum)) { - theKeys.push(dontEnum) - } - } - } - return theKeys - } -} -if (!Array.isArray) { - Array.isArray = function (a) { - return serialize.call(a) === "[object Array]" - } -} - -if (!noop.bind) { - Function.prototype.bind = function (scope) { - if (arguments.length < 2 && scope === void 0) - return this - var fn = this, - argv = arguments - return function () { - var args = [], - i - for (i = 1; i < argv.length; i++) - args.push(argv[i]) - for (i = 0; i < arguments.length; i++) - args.push(arguments[i]) - return fn.apply(scope, args) - } - } -} - -function iterator(vars, body, ret) { - var fun = 'for(var ' + vars + 'i=0,n = this.length; i < n; i++){' + body.replace('_', '((i in this) && fn.call(scope,this[i],i,this))') + '}' + ret - /* jshint ignore:start */ - return Function("fn,scope", fun) - /* jshint ignore:end */ -} -if (!rnative.test([].map)) { - avalon.mix(ap, { - //定位操作,返回数组中第一个等于给定参数的元素的索引值。 - indexOf: function (item, index) { - var n = this.length, - i = ~~index - if (i < 0) - i += n - for (; i < n; i++) - if (this[i] === item) - return i - return -1 - }, - //定位操作,同上,不过是从后遍历。 - lastIndexOf: function (item, index) { - var n = this.length, - i = index == null ? n - 1 : index - if (i < 0) - i = Math.max(0, n + i) - for (; i >= 0; i--) - if (this[i] === item) - return i - return -1 - }, - //迭代操作,将数组的元素挨个儿传入一个函数中执行。Prototype.js的对应名字为each。 - forEach: iterator("", '_', ""), - //迭代类 在数组中的每个项上运行一个函数,如果此函数的值为真,则此元素作为新数组的元素收集起来,并返回新数组 - filter: iterator('r=[],j=0,', 'if(_)r[j++]=this[i]', 'return r'), - //收集操作,将数组的元素挨个儿传入一个函数中执行,然后把它们的返回值组成一个新数组返回。Prototype.js的对应名字为collect。 - map: iterator('r=[],', 'r[i]=_', 'return r'), - //只要数组中有一个元素满足条件(放进给定函数返回true),那么它就返回true。Prototype.js的对应名字为any。 - some: iterator("", 'if(_)return true', 'return false'), - //只有数组中的元素都满足条件(放进给定函数返回true),它才返回true。Prototype.js的对应名字为all。 - every: iterator("", 'if(!_)return false', 'return true') - }) -} -/********************************************************************* - * DOM 底层补丁 * - **********************************************************************/ - -function fixContains(root, el) { - try { //IE6-8,游离于DOM树外的文本节点,访问parentNode有时会抛错 - while ((el = el.parentNode)) - if (el === root) - return true - return false - } catch (e) { - return false - } -} -avalon.contains = fixContains -//IE6-11的文档对象没有contains -if (!DOC.contains) { - DOC.contains = function (b) { - return fixContains(DOC, b) - } -} - -function outerHTML() { - return new XMLSerializer().serializeToString(this) -} - -if (window.SVGElement) { - //safari5+是把contains方法放在Element.prototype上而不是Node.prototype - if (!DOC.createTextNode("x").contains) { - Node.prototype.contains = function (arg) {//IE6-8没有Node对象 - return !!(this.compareDocumentPosition(arg) & 16) - } - } - var svgns = "http://www.w3.org/2000/svg" - var svg = DOC.createElementNS(svgns, "svg") - svg.innerHTML = '' - if (!rsvg.test(svg.firstChild)) { // #409 - function enumerateNode(node, targetNode) {// jshint ignore:line - if (node && node.childNodes) { - var nodes = node.childNodes - for (var i = 0, el; el = nodes[i++]; ) { - if (el.tagName) { - var svg = DOC.createElementNS(svgns, - el.tagName.toLowerCase()) - ap.forEach.call(el.attributes, function (attr) { - svg.setAttribute(attr.name, attr.value) //复制属性 - })// jshint ignore:line - // 递归处理子节点 - enumerateNode(el, svg) - targetNode.appendChild(svg) - } - } - } - } - Object.defineProperties(SVGElement.prototype, { - "outerHTML": {//IE9-11,firefox不支持SVG元素的innerHTML,outerHTML属性 - enumerable: true, - configurable: true, - get: outerHTML, - set: function (html) { - var tagName = this.tagName.toLowerCase(), - par = this.parentNode, - frag = avalon.parseHTML(html) - // 操作的svg,直接插入 - if (tagName === "svg") { - par.insertBefore(frag, this) - // svg节点的子节点类似 - } else { - var newFrag = DOC.createDocumentFragment() - enumerateNode(frag, newFrag) - par.insertBefore(newFrag, this) - } - par.removeChild(this) - } - }, - "innerHTML": { - enumerable: true, - configurable: true, - get: function () { - var s = this.outerHTML - var ropen = new RegExp("<" + this.nodeName + '\\b(?:(["\'])[^"]*?(\\1)|[^>])*>', "i") - var rclose = new RegExp("<\/" + this.nodeName + ">$", "i") - return s.replace(ropen, "").replace(rclose, "") - }, - set: function (html) { - if (avalon.clearHTML) { - avalon.clearHTML(this) - var frag = avalon.parseHTML(html) - enumerateNode(frag, this) - } - } - } - }) - } -} -if (!root.outerHTML && window.HTMLElement) { //firefox 到11时才有outerHTML - HTMLElement.prototype.__defineGetter__("outerHTML", outerHTML); -} - - -//============================= event binding ======================= -var rmouseEvent = /^(?:mouse|contextmenu|drag)|click/ -function fixEvent(event) { - var ret = {} - for (var i in event) { - ret[i] = event[i] - } - var target = ret.target = event.srcElement - if (event.type.indexOf("key") === 0) { - ret.which = event.charCode != null ? event.charCode : event.keyCode - } else if (rmouseEvent.test(event.type)) { - var doc = target.ownerDocument || DOC - var box = doc.compatMode === "BackCompat" ? doc.body : doc.documentElement - ret.pageX = event.clientX + (box.scrollLeft >> 0) - (box.clientLeft >> 0) - ret.pageY = event.clientY + (box.scrollTop >> 0) - (box.clientTop >> 0) - ret.wheelDeltaY = ret.wheelDelta - ret.wheelDeltaX = 0 - } - ret.timeStamp = new Date() - 0 - ret.originalEvent = event - ret.preventDefault = function () { //阻止默认行为 - event.returnValue = false - } - ret.stopPropagation = function () { //阻止事件在DOM树中的传播 - event.cancelBubble = true - } - return ret -} - -var eventHooks = avalon.eventHooks -//针对firefox, chrome修正mouseenter, mouseleave -if (!("onmouseenter" in root)) { - avalon.each({ - mouseenter: "mouseover", - mouseleave: "mouseout" - }, function (origType, fixType) { - eventHooks[origType] = { - type: fixType, - deel: function (elem, _, fn) { - return function (e) { - var t = e.relatedTarget - if (!t || (t !== elem && !(elem.compareDocumentPosition(t) & 16))) { - delete e.type - e.type = origType - return fn.call(elem, e) - } - } - } - } - }) -} -//针对IE9+, w3c修正animationend -avalon.each({ - AnimationEvent: "animationend", - WebKitAnimationEvent: "webkitAnimationEnd" -}, function (construct, fixType) { - if (window[construct] && !eventHooks.animationend) { - eventHooks.animationend = { - type: fixType - } - } -}) -//针对IE6-8修正input -if (!("oninput" in DOC.createElement("input"))) { - eventHooks.input = { - type: "propertychange", - deel: function (elem, _, fn) { - return function (e) { - if (e.propertyName === "value") { - e.type = "input" - return fn.call(elem, e) - } - } - } - } -} -if (DOC.onmousewheel === void 0) { - /* IE6-11 chrome mousewheel wheelDetla 下 -120 上 120 - firefox DOMMouseScroll detail 下3 上-3 - firefox wheel detlaY 下3 上-3 - IE9-11 wheel deltaY 下40 上-40 - chrome wheel deltaY 下100 上-100 */ - var fixWheelType = DOC.onwheel !== void 0 ? "wheel" : "DOMMouseScroll" - var fixWheelDelta = fixWheelType === "wheel" ? "deltaY" : "detail" - eventHooks.mousewheel = { - type: fixWheelType, - deel: function (elem, _, fn) { - return function (e) { - e.wheelDeltaY = e.wheelDelta = e[fixWheelDelta] > 0 ? -120 : 120 - e.wheelDeltaX = 0 - if (Object.defineProperty) { - Object.defineProperty(e, "type", { - value: "mousewheel" - }) - } - fn.call(elem, e) - } - } - } -} - - - -/********************************************************************* - * 配置系统 * - **********************************************************************/ - -function kernel(settings) { - for (var p in settings) { - if (!ohasOwn.call(settings, p)) - continue - var val = settings[p] - if (typeof kernel.plugins[p] === "function") { - kernel.plugins[p](val) - } else if (typeof kernel[p] === "object") { - avalon.mix(kernel[p], val) - } else { - kernel[p] = val - } - } - return this -} -var openTag, closeTag, rexpr, rexprg, rbind, rregexp = /[-.*+?^${}()|[\]\/\\]/g - -function escapeRegExp(target) { - //http://stevenlevithan.com/regex/xregexp/ - //将字符串安全格式化为正则表达式的源码 - return (target + "").replace(rregexp, "\\$&") -} - -var plugins = { - loader: function (builtin) { - var flag = innerRequire && builtin - window.require = flag ? innerRequire : otherRequire - window.define = flag ? innerRequire.define : otherDefine - }, - interpolate: function (array) { - openTag = array[0] - closeTag = array[1] - if (openTag === closeTag) { - throw new SyntaxError("openTag!==closeTag") - var test = openTag + "test" + closeTag - cinerator.innerHTML = test - if (cinerator.innerHTML !== test && cinerator.innerHTML.indexOf("<") > -1) { - throw new SyntaxError("此定界符不合法") - } - cinerator.innerHTML = "" - } - var o = escapeRegExp(openTag), - c = escapeRegExp(closeTag) - rexpr = new RegExp(o + "(.*?)" + c) - rexprg = new RegExp(o + "(.*?)" + c, "g") - rbind = new RegExp(o + ".*?" + c + "|\\sms-") - } -} - -kernel.debug = true -kernel.plugins = plugins -kernel.plugins['interpolate'](["{{", "}}"]) -kernel.paths = {} -kernel.shim = {} -kernel.maxRepeatSize = 100 -avalon.config = kernel -var ravalon = /(\w+)\[(avalonctrl)="(\S+)"\]/ -var findNodes = DOC.querySelectorAll ? function(str) { - return DOC.querySelectorAll(str) -} : function(str) { - var match = str.match(ravalon) - var all = DOC.getElementsByTagName(match[1]) - var nodes = [] - for (var i = 0, el; el = all[i++]; ) { - if (el.getAttribute(match[2]) === match[3]) { - nodes.push(el) - } - } - return nodes -} -/********************************************************************* - * 事件总线 * - **********************************************************************/ -var EventBus = { - $watch: function (type, callback) { - if (typeof callback === "function") { - var callbacks = this.$events[type] - if (callbacks) { - callbacks.push(callback) - } else { - this.$events[type] = [callback] - } - } else { //重新开始监听此VM的第一重简单属性的变动 - this.$events = this.$watch.backup - } - return this - }, - $unwatch: function (type, callback) { - var n = arguments.length - if (n === 0) { //让此VM的所有$watch回调无效化 - this.$watch.backup = this.$events - this.$events = {} - } else if (n === 1) { - this.$events[type] = [] - } else { - var callbacks = this.$events[type] || [] - var i = callbacks.length - while (~--i < 0) { - if (callbacks[i] === callback) { - return callbacks.splice(i, 1) - } - } - } - return this - }, - $fire: function (type) { - var special, i, v, callback - if (/^(\w+)!(\S+)$/.test(type)) { - special = RegExp.$1 - type = RegExp.$2 - } - var events = this.$events - if (!events) - return - var args = aslice.call(arguments, 1) - var detail = [type].concat(args) - if (special === "all") { - for (i in avalon.vmodels) { - v = avalon.vmodels[i] - if (v !== this) { - v.$fire.apply(v, detail) - } - } - } else if (special === "up" || special === "down") { - var elements = events.expr ? findNodes(events.expr) : [] - if (elements.length === 0) - return - for (i in avalon.vmodels) { - v = avalon.vmodels[i] - if (v !== this) { - if (v.$events.expr) { - var eventNodes = findNodes(v.$events.expr) - if (eventNodes.length === 0) { - continue - } - //循环两个vmodel中的节点,查找匹配(向上匹配或者向下匹配)的节点并设置标识 - /* jshint ignore:start */ - ap.forEach.call(eventNodes, function (node) { - ap.forEach.call(elements, function (element) { - var ok = special === "down" ? element.contains(node) : //向下捕获 - node.contains(element) //向上冒泡 - if (ok) { - node._avalon = v //符合条件的加一个标识 - } - }); - }) - /* jshint ignore:end */ - } - } - } - var nodes = DOC.getElementsByTagName("*") //实现节点排序 - var alls = [] - ap.forEach.call(nodes, function (el) { - if (el._avalon) { - alls.push(el._avalon) - el._avalon = "" - el.removeAttribute("_avalon") - } - }) - if (special === "up") { - alls.reverse() - } - for (i = 0; callback = alls[i++]; ) { - if (callback.$fire.apply(callback, detail) === false) { - break - } - } - } else { - var callbacks = events[type] || [] - var all = events.$all || [] - for (i = 0; callback = callbacks[i++]; ) { - if (isFunction(callback)) - callback.apply(this, args) - } - for (i = 0; callback = all[i++]; ) { - if (isFunction(callback)) - callback.apply(this, arguments) - } - } - } -} - -/********************************************************************* - * modelFactory * - **********************************************************************/ -//avalon最核心的方法的两个方法之一(另一个是avalon.scan),返回一个ViewModel(VM) -var VMODELS = avalon.vmodels = {} //所有vmodel都储存在这里 -avalon.define = function (id, factory) { - var $id = id.$id || id - if (!$id) { - log("warning: vm必须指定$id") - } - if (VMODELS[$id]) { - log("warning: " + $id + " 已经存在于avalon.vmodels中") - } - if (typeof id === "object") { - var model = modelFactory(id) - } else { - var scope = { - $watch: noop - } - factory(scope) //得到所有定义 - - model = modelFactory(scope) //偷天换日,将scope换为model - stopRepeatAssign = true - factory(model) - stopRepeatAssign = false - } - model.$id = $id - return VMODELS[$id] = model -} - -//一些不需要被监听的属性 -var $$skipArray = String("$id,$watch,$unwatch,$fire,$events,$model,$skipArray,$proxy,$reinitialize,$propertyNames").match(rword) -var defineProperty = Object.defineProperty -var canHideOwn = true -//如果浏览器不支持ecma262v5的Object.defineProperties或者存在BUG,比如IE8 -//标准浏览器使用__defineGetter__, __defineSetter__实现 -try { - defineProperty({}, "_", { - value: "x" - }) - var defineProperties = Object.defineProperties -} catch (e) { - canHideOwn = false -} - -function modelFactory(source, $special, $model) { - if (Array.isArray(source)) { - var arr = source.concat() - source.length = 0 - var collection = arrayFactory(source) - collection.pushArray(arr) - return collection - } - //0 null undefined || Node || VModel(fix IE6-8 createWithProxy $val: val引发的BUG) - if (!source || source.nodeType > 0 || (source.$id && source.$events)) { - return source - } - var $skipArray = Array.isArray(source.$skipArray) ? source.$skipArray : [] - $skipArray.$special = $special || {} //强制要监听的属性 - var $vmodel = {} //要返回的对象, 它在IE6-8下可能被偷龙转凤 - $model = $model || {} //vmodels.$model属性 - var $events = {} //vmodel.$events属性 - var accessors = {} //监控属性 - var computed = [] - $$skipArray.forEach(function (name) { - delete source[name] - }) - var names = Object.keys(source) - /* jshint ignore:start */ - names.forEach(function (name, accessor) { - var val = source[name] - $model[name] = val - if (isObservable(name, val, $skipArray)) { - //总共产生三种accessor - $events[name] = [] - var valueType = avalon.type(val) - //总共产生三种accessor - if (valueType === "object" && isFunction(val.get) && Object.keys(val).length <= 2) { - accessor = makeComputedAccessor(name, val) - computed.push(accessor) - } else if (rcomplexType.test(valueType)) { - accessor = makeComplexAccessor(name, val, valueType, $events[name]) - } else { - accessor = makeSimpleAccessor(name, val) - } - accessors[name] = accessor - } - }) - /* jshint ignore:end */ - - $vmodel = defineProperties($vmodel, descriptorFactory(accessors), source) //生成一个空的ViewModel - for (var i = 0; i < names.length; i++) { - var name = names[i] - if (!accessors[name]) { - $vmodel[name] = source[name] - } - } - //添加$id, $model, $events, $watch, $unwatch, $fire - $vmodel.$propertyNames = names.join("­") - $vmodel.$id = generateID() - $vmodel.$model = $model - $vmodel.$events = $events - for (i in EventBus) { - var fn = EventBus[i] - if (!W3C) { //在IE6-8下,VB对象的方法里的this并不指向自身,需要用bind处理一下 - fn = fn.bind($vmodel) - } - $vmodel[i] = fn - } - if (canHideOwn) { - Object.defineProperty($vmodel, "hasOwnProperty", hasOwnDescriptor) - } else { - /* jshint ignore:start */ - $vmodel.hasOwnProperty = function (name) { - return name in $vmodel.$model - } - /* jshint ignore:end */ - } - - $vmodel.$reinitialize = function () { - computed.forEach(function (accessor) { - delete accessor._value - delete accessor.oldArgs - accessor.digest = function () { - accessor.call($vmodel) - } - dependencyDetection.begin({ - callback: function (vm, dependency) {//dependency为一个accessor - var name = dependency._name - if (dependency !== accessor) { - var list = vm.$events[name] - injectDependency(list, accessor.digest) - } - } - }) - try { - accessor.get.call($vmodel) - } finally { - dependencyDetection.end() - } - }) - } - $vmodel.$reinitialize() - return $vmodel -} - -var hasOwnDescriptor = { - value: function (name) { - return name in this.$model - }, - writable: false, - enumerable: false, - configurable: true -} -//创建一个简单访问器 -function makeSimpleAccessor(name, value) { - function accessor(value) { - var oldValue = accessor._value - if (arguments.length > 0) { - if (!stopRepeatAssign && !isEqual(value, oldValue)) { - accessor.updateValue(this, value) - accessor.notify(this, value, oldValue) - } - return this - } else { - dependencyDetection.collectDependency(this, accessor) - return oldValue - } - } - accessorFactory(accessor, name) - accessor._value = value - return accessor; -} - -//创建一个计算访问器 -function makeComputedAccessor(name, options) { - function accessor(value) {//计算属性 - var oldValue = accessor._value - var init = ("_value" in accessor) - if (arguments.length > 0) { - if (stopRepeatAssign) { - return this - } - if (typeof accessor.set === "function") { - if (accessor.oldArgs !== value) { - accessor.oldArgs = value - var $events = this.$events - var lock = $events[name] - $events[name] = [] //清空回调,防止内部冒泡而触发多次$fire - accessor.set.call(this, value) - $events[name] = lock - value = accessor.get.call(this) - if (value !== oldValue) { - accessor.updateValue(this, value) - accessor.notify(this, value, oldValue) //触发$watch回调 - } - } - } - return this - } else { - //将依赖于自己的高层访问器或视图刷新函数(以绑定对象形式)放到自己的订阅数组中 - //将自己注入到低层访问器的订阅数组中 - value = accessor.get.call(this) - accessor.updateValue(this, value) - if (init && oldValue !== value) { - accessor.notify(this, value, oldValue) //触发$watch回调 - } - return value - } - } - accessor.set = options.set - accessor.get = options.get - accessorFactory(accessor, name) - return accessor -} - -//创建一个复杂访问器 -function makeComplexAccessor(name, initValue, valueType, list) { - function accessor(value) { - var oldValue = accessor._value - - var son = accessor._vmodel - if (arguments.length > 0) { - if (stopRepeatAssign) { - return this - } - if (valueType === "array") { - var a = son, b = value, - an = a.length, - bn = b.length - a.$lock = true - if (an > bn) { - a.splice(bn, an - bn) - } else if (bn > an) { - a.push.apply(a, b.slice(an)) - } - var n = Math.min(an, bn) - for (var i = 0; i < n; i++) { - a.set(i, b[i]) - } - delete a.$lock - a._fire("set") - } else if (valueType === "object") { - var newPropertyNames = Object.keys(value).join("­") - if (son.$propertyNames === newPropertyNames) { - for (i in value) { - son[i] = value[i] - } - } else { - var sson = accessor._vmodel = modelFactory(value) - var sevent = sson.$events - var oevent = son.$events - for (var i in sevent) { - var arr = sevent[i] - if (Array.isArray(arr)) { - arr = arr.concat(oevent[i]) - } - } - sevent[subscribers] = oevent[subscribers] - sson.$proxy = son.$proxy - son = sson - } - } - accessor.updateValue(this, son.$model) - accessor.notify(this, this._value, oldValue) - return this - } else { - dependencyDetection.collectDependency(this, accessor) - return son - } - } - accessorFactory(accessor, name) - var son = accessor._vmodel = modelFactory(initValue) - son.$events[subscribers] = list - return accessor -} - -function globalUpdateValue(vmodel, value) { - vmodel.$model[this._name] = this._value = value -} - -function globalNotify(vmodel, value, oldValue) { - var name = this._name - var array = vmodel.$events[name] //刷新值 - if (array) { - fireDependencies(array) //同步视图 - EventBus.$fire.call(vmodel, name, value, oldValue) //触发$watch回调 - } -} - -function accessorFactory(accessor, name) { - accessor._name = name - //同时更新_value与model - accessor.updateValue = globalUpdateValue - accessor.notify = globalNotify -} - -//比较两个值是否相等 -var isEqual = Object.is || function (v1, v2) { - if (v1 === 0 && v2 === 0) { - return 1 / v1 === 1 / v2 - } else if (v1 !== v1) { - return v2 !== v2 - } else { - return v1 === v2 - } -} - -function isObservable(name, value, $skipArray) { - if (isFunction(value) || value && value.nodeType) { - return false - } - if ($skipArray.indexOf(name) !== -1) { - return false - } - var $special = $skipArray.$special - if (name && name.charAt(0) === "$" && !$special[name]) { - return false - } - return true -} - -var descriptorFactory = W3C ? function (obj) { - var descriptors = {} - for (var i in obj) { - descriptors[i] = { - get: obj[i], - set: obj[i], - enumerable: true, - configurable: true - } - } - return descriptors -} : function (a) { - return a -} - -//===================修复浏览器对Object.defineProperties的支持================= -if (!canHideOwn) { - if ("__defineGetter__" in avalon) { - defineProperty = function (obj, prop, desc) { - if ('value' in desc) { - obj[prop] = desc.value - } - if ("get" in desc) { - obj.__defineGetter__(prop, desc.get) - } - if ('set' in desc) { - obj.__defineSetter__(prop, desc.set) - } - return obj - } - defineProperties = function (obj, descs) { - for (var prop in descs) { - if (descs.hasOwnProperty(prop)) { - defineProperty(obj, prop, descs[prop]) - } - } - return obj - } - } - if (IEVersion) { - var VBClassPool = {} - window.execScript([// jshint ignore:line - "Function parseVB(code)", - "\tExecuteGlobal(code)", - "End Function" //转换一段文本为VB代码 - ].join("\n"), "VBScript") - function VBMediator(instance, accessors, name, value) {// jshint ignore:line - var accessor = accessors[name] - if (arguments.length === 4) { - accessor.call(instance, value) - } else { - return accessor.call(instance) - } - } - defineProperties = function (name, accessors, properties) { - // jshint ignore:line - var buffer = [] - buffer.push( - "\r\n\tPrivate [__data__], [__proxy__]", - "\tPublic Default Function [__const__](d, p)", - "\t\tSet [__data__] = d: set [__proxy__] = p", - "\t\tSet [__const__] = Me", //链式调用 - "\tEnd Function") - //添加普通属性,因为VBScript对象不能像JS那样随意增删属性,必须在这里预先定义好 - for (name in properties) { - if (!accessors.hasOwnProperty(name)) { - buffer.push("\tPublic [" + name + "]") - } - } - $$skipArray.forEach(function (name) { - if (!accessors.hasOwnProperty(name)) { - buffer.push("\tPublic [" + name + "]") - } - }) - buffer.push("\tPublic [" + 'hasOwnProperty' + "]") - //添加访问器属性 - for (name in accessors) { - buffer.push( - //由于不知对方会传入什么,因此set, let都用上 - "\tPublic Property Let [" + name + "](val" + expose + ")", //setter - "\t\tCall [__proxy__](Me,[__data__], \"" + name + "\", val" + expose + ")", - "\tEnd Property", - "\tPublic Property Set [" + name + "](val" + expose + ")", //setter - "\t\tCall [__proxy__](Me,[__data__], \"" + name + "\", val" + expose + ")", - "\tEnd Property", - "\tPublic Property Get [" + name + "]", //getter - "\tOn Error Resume Next", //必须优先使用set语句,否则它会误将数组当字符串返回 - "\t\tSet[" + name + "] = [__proxy__](Me,[__data__],\"" + name + "\")", - "\tIf Err.Number <> 0 Then", - "\t\t[" + name + "] = [__proxy__](Me,[__data__],\"" + name + "\")", - "\tEnd If", - "\tOn Error Goto 0", - "\tEnd Property") - - } - - buffer.push("End Class") - var body = buffer.join("\r\n") - var className =VBClassPool[body] - if (!className) { - className = generateID("VBClass") - window.parseVB("Class " + className + body) - window.parseVB([ - "Function " + className + "Factory(a, b)", //创建实例并传入两个关键的参数 - "\tDim o", - "\tSet o = (New " + className + ")(a, b)", - "\tSet " + className + "Factory = o", - "End Function" - ].join("\r\n")) - VBClassPool[body] = className - } - var ret = window[className + "Factory"](accessors, VBMediator) //得到其产品 - return ret //得到其产品 - } - } -} - -/********************************************************************* - * 监控数组(与ms-each, ms-repeat配合使用) * - **********************************************************************/ - -function arrayFactory(model) { - var array = [] - array.$id = generateID() - array.$model = model //数据模型 - array.$events = {} - array.$events[subscribers] = [] - array._ = modelFactory({ - length: model.length - }) - array._.$watch("length", function (a, b) { - array.$fire("length", a, b) - }) - for (var i in EventBus) { - array[i] = EventBus[i] - } - avalon.mix(array, arrayPrototype) - return array -} - -function mutateArray(method, pos, n, index, method2, pos2, n2) { - var oldLen = this.length, loop = 2 - while (--loop) { - switch (method) { - case "add": - /* jshint ignore:start */ - var array = this.$model.slice(pos, pos + n).map(function (el) { - if (rcomplexType.test(avalon.type(el))) { - return el.$id ? el : modelFactory(el, 0, el) - } else { - return el - } - }) - /* jshint ignore:end */ - _splice.apply(this, [pos, 0].concat(array)) - this._fire("add", pos, n) - break - case "del": - var ret = this._splice(pos, n) - this._fire("del", pos, n) - break - } - if (method2) { - method = method2 - pos = pos2 - n = n2 - loop = 2 - method2 = 0 - } - } - this._fire("index", index) - if (this.length !== oldLen) { - this._.length = this.length - } - return ret -} - -var _splice = ap.splice -var arrayPrototype = { - _splice: _splice, - _fire: function (method, a, b) { - fireDependencies(this.$events[subscribers], method, a, b) - }, - size: function () { //取得数组长度,这个函数可以同步视图,length不能 - return this._.length - }, - pushArray: function (array) { - var m = array.length, n = this.length - if (m) { - ap.push.apply(this.$model, array) - mutateArray.call(this, "add", n, m, Math.max(0, n - 1)) - } - return m + n - }, - push: function () { - //http://jsperf.com/closure-with-arguments - var array = [] - var i, n = arguments.length - for (i = 0; i < n; i++) { - array[i] = arguments[i] - } - return this.pushArray(array) - }, - unshift: function () { - var m = arguments.length, n = this.length - if (m) { - ap.unshift.apply(this.$model, arguments) - mutateArray.call(this, "add", 0, m, 0) - } - return m + n //IE67的unshift不会返回长度 - }, - shift: function () { - if (this.length) { - var el = this.$model.shift() - mutateArray.call(this, "del", 0, 1, 0) - return el //返回被移除的元素 - } - }, - pop: function () { - var n = this.length - if (n) { - var el = this.$model.pop() - mutateArray.call(this, "del", n - 1, 1, Math.max(0, n - 2)) - return el //返回被移除的元素 - } - }, - splice: function (start) { - var m = arguments.length, args = [], change - var removed = _splice.apply(this.$model, arguments) - if (removed.length) { //如果用户删掉了元素 - args.push("del", start, removed.length, 0) - change = true - } - if (m > 2) { //如果用户添加了元素 - if (change) { - args.splice(3, 1, 0, "add", start, m - 2) - } else { - args.push("add", start, m - 2, 0) - } - change = true - } - if (change) { //返回被移除的元素 - return mutateArray.apply(this, args) - } else { - return [] - } - }, - contains: function (el) { //判定是否包含 - return this.indexOf(el) !== -1 - }, - remove: function (el) { //移除第一个等于给定值的元素 - return this.removeAt(this.indexOf(el)) - }, - removeAt: function (index) { //移除指定索引上的元素 - if (index >= 0) { - this.$model.splice(index, 1) - return mutateArray.call(this, "del", index, 1, 0) - } - return [] - }, - clear: function () { - this.$model.length = this.length = this._.length = 0 //清空数组 - this._fire("clear", 0) - return this - }, - removeAll: function (all) { //移除N个元素 - if (Array.isArray(all)) { - for (var i = this.length - 1; i >= 0; i--) { - if (all.indexOf(this[i]) !== -1) { - this.removeAt(i) - } - } - } else if (typeof all === "function") { - for ( i = this.length - 1; i >= 0; i--) { - var el = this[i] - if (all(el, i)) { - this.removeAt(i) - } - } - } else { - this.clear() - } - }, - ensure: function (el) { - if (!this.contains(el)) { //只有不存在才push - this.push(el) - } - return this - }, - set: function (index, val) { - if (index >= 0) { - var valueType = avalon.type(val) - if (val && val.$model) { - val = val.$model - } - var target = this[index] - if (valueType === "object") { - for (var i in val) { - if (target.hasOwnProperty(i)) { - target[i] = val[i] - } - } - } else if (valueType === "array") { - target.clear().push.apply(target, val) - } else if (target !== val) { - this[index] = val - this.$model[index] = val - this._fire("set", index, val) - } - } - return this - } -} -//相当于原来bindingExecutors.repeat 的index分支 -function resetIndex(array, pos) { - var last = array.length - 1 - for (var el; el = array[pos]; pos++) { - el.$index = pos - el.$first = pos === 0 - el.$last = pos === last - } -} - -function sortByIndex(array, indexes) { - var map = {}; - for (var i = 0, n = indexes.length; i < n; i++) { - map[i] = array[i] // preserve - var j = indexes[i] - if (j in map) { - array[i] = map[j] - delete map[j] - } else { - array[i] = array[j] - } - } -} - -"sort,reverse".replace(rword, function (method) { - arrayPrototype[method] = function () { - var newArray = this.$model//这是要排序的新数组 - var oldArray = newArray.concat() //保持原来状态的旧数组 - var mask = Math.random() - var indexes = [] - var hasSort - ap[method].apply(newArray, arguments) //排序 - for (var i = 0, n = oldArray.length; i < n; i++) { - var neo = newArray[i] - var old = oldArray[i] - if (isEqual(neo, old)) { - indexes.push(i) - } else { - var index = oldArray.indexOf(neo) - indexes.push(index)//得到新数组的每个元素在旧数组对应的位置 - oldArray[index] = mask //屏蔽已经找过的元素 - hasSort = true - } - } - if (hasSort) { - sortByIndex(this, indexes) - // sortByIndex(this.$proxy, indexes) - this._fire("move", indexes) - this._fire("index", 0) - } - return this - } -}) - - -/********************************************************************* - * 依赖调度系统 * - **********************************************************************/ -//检测两个对象间的依赖关系 -var dependencyDetection = (function () { - var outerFrames = [] - var currentFrame - return { - begin: function (accessorObject) { - //accessorObject为一个拥有callback的对象 - outerFrames.push(currentFrame) - currentFrame = accessorObject - }, - end: function () { - currentFrame = outerFrames.pop() - }, - collectDependency: function (vmodel, accessor) { - if (currentFrame) { - //被dependencyDetection.begin调用 - currentFrame.callback(vmodel, accessor); - } - } - }; -})() -//将绑定对象注入到其依赖项的订阅数组中 -var ronduplex = /^(duplex|on)$/ -avalon.injectBinding = function (data) { - var valueFn = data.evaluator - if (valueFn) { //如果是求值函数 - dependencyDetection.begin({ - callback: function (vmodel, dependency) { - injectDependency(vmodel.$events[dependency._name], data) - } - }) - try { - var value = ronduplex.test(data.type) ? data : valueFn.apply(0, data.args) - if(value === void 0){ - delete data.evaluator - } - data.handler(value, data.element, data) - } catch (e) { - //log("warning:exception throwed in [avalon.injectBinding] " + e) - delete data.evaluator - var node = data.element - if (node.nodeType === 3) { - var parent = node.parentNode - if (kernel.commentInterpolate) { - parent.replaceChild(DOC.createComment(data.value), node) - } else { - node.data = openTag + (data.oneTime ? "::" : "") + data.value + closeTag - } - } - } finally { - dependencyDetection.end() - } - } -} - -//将依赖项(比它高层的访问器或构建视图刷新函数的绑定对象)注入到订阅者数组 -function injectDependency(list, data) { - if (data.oneTime) - return - if (list && avalon.Array.ensure(list, data) && data.element) { - injectDisposeQueue(data, list) - } -} - -//通知依赖于这个访问器的订阅者更新自身 -function fireDependencies(list) { - if (list && list.length) { - if (new Date() - beginTime > 444 && typeof list[0] === "object") { - rejectDisposeQueue() - } - var args = aslice.call(arguments, 1) - for (var i = list.length, fn; fn = list[--i]; ) { - var el = fn.element - if (el && el.parentNode) { - try { - var valueFn = fn.evaluator - if (fn.$repeat) { - fn.handler.apply(fn, args) //处理监控数组的方法 - }else if("$repeat" in fn || !valueFn ){//如果没有eval,先eval - bindingHandlers[fn.type](fn, fn.vmodels) - } else if (fn.type !== "on") { //事件绑定只能由用户触发,不能由程序触发 - var value = valueFn.apply(0, fn.args || []) - fn.handler(value, el, fn) - } - } catch (e) { } - } - } - } -} -/********************************************************************* - * 定时GC回收机制 * - **********************************************************************/ -var disposeCount = 0 -var disposeQueue = avalon.$$subscribers = [] -var beginTime = new Date() -var oldInfo = {} -var uuid2Node = {} -function getUid(obj, makeID) { //IE9+,标准浏览器 - if (!obj.uuid && !makeID) { - obj.uuid = ++disposeCount - uuid2Node[obj.uuid] = obj - } - return obj.uuid -} -function getNode(uuid) { - return uuid2Node[uuid] -} -//添加到回收列队中 -function injectDisposeQueue(data, list) { - var elem = data.element - if (!data.uuid) { - if (elem.nodeType !== 1) { - data.uuid = data.type + (data.pos || 0) + "-" + getUid(elem.parentNode) - } else { - data.uuid = data.name + "-" + getUid(elem) - } - } - var lists = data.lists || (data.lists = []) - avalon.Array.ensure(lists, list) - list.$uuid = list.$uuid || generateID() - if (!disposeQueue[data.uuid]) { - disposeQueue[data.uuid] = 1 - disposeQueue.push(data) - } -} - -function rejectDisposeQueue(data) { - if (avalon.optimize) - return - var i = disposeQueue.length - var n = i - var allTypes = [] - var iffishTypes = {} - var newInfo = {} - //对页面上所有绑定对象进行分门别类, 只检测个数发生变化的类型 - while (data = disposeQueue[--i]) { - var type = data.type - if (newInfo[type]) { - newInfo[type]++ - } else { - newInfo[type] = 1 - allTypes.push(type) - } - } - var diff = false - allTypes.forEach(function (type) { - if (oldInfo[type] !== newInfo[type]) { - iffishTypes[type] = 1 - diff = true - } - }) - i = n - if (diff) { - while (data = disposeQueue[--i]) { - if (!data.element) - continue - if (iffishTypes[data.type] && shouldDispose(data.element)) { //如果它没有在DOM树 - disposeQueue.splice(i, 1) - delete disposeQueue[data.uuid] - delete uuid2Node[data.element.uuid] - var lists = data.lists - for (var k = 0, list; list = lists[k++]; ) { - avalon.Array.remove(lists, list) - avalon.Array.remove(list, data) - } - disposeData(data) - } - } - } - oldInfo = newInfo - beginTime = new Date() -} - -function disposeData(data) { - data.element = null - data.rollback && data.rollback() - for (var key in data) { - data[key] = null - } -} - -function shouldDispose(el) { - try {//IE下,如果文本节点脱离DOM树,访问parentNode会报错 - if (!el.parentNode) { - return true - } - } catch (e) { - return true - } - - return el.msRetain ? 0 : (el.nodeType === 1 ? !root.contains(el) : !avalon.contains(root, el)) -} - -/************************************************************************ - * HTML处理(parseHTML, innerHTML, clearHTML) * - ************************************************************************/ -// We have to close these tags to support XHTML -var tagHooks = { - area: [1, "", ""], - param: [1, "", ""], - col: [2, "", "
    "], - legend: [1, "
    ", "
    "], - option: [1, ""], - thead: [1, "", "
    "], - tr: [2, "", "
    "], - td: [3, "", "
    "], - g: [1, '', ''], - //IE6-8在用innerHTML生成节点时,不能直接创建no-scope元素与HTML5的新标签 - _default: W3C ? [0, "", ""] : [1, "X
    ", "
    "] //div可以不用闭合 -} -tagHooks.th = tagHooks.td -tagHooks.optgroup = tagHooks.option -tagHooks.tbody = tagHooks.tfoot = tagHooks.colgroup = tagHooks.caption = tagHooks.thead -String("circle,defs,ellipse,image,line,path,polygon,polyline,rect,symbol,text,use").replace(rword, function (tag) { - tagHooks[tag] = tagHooks.g //处理SVG -}) -var rtagName = /<([\w:]+)/ //取得其tagName -var rxhtml = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig -var rcreate = W3C ? /[^\d\D]/ : /(<(?:script|link|style|meta|noscript))/ig -var scriptTypes = oneObject(["", "text/javascript", "text/ecmascript", "application/ecmascript", "application/javascript"]) -var rnest = /<(?:tb|td|tf|th|tr|col|opt|leg|cap|area)/ //需要处理套嵌关系的标签 -var script = DOC.createElement("script") -var rhtml = /<|&#?\w+;/ -avalon.parseHTML = function (html) { - var fragment = avalonFragment.cloneNode(false) - if (typeof html !== "string") { - return fragment - } - if (!rhtml.test(html)) { - fragment.appendChild(DOC.createTextNode(html)) - return fragment - } - html = html.replace(rxhtml, "<$1>").trim() - var tag = (rtagName.exec(html) || ["", ""])[1].toLowerCase(), - //取得其标签名 - wrap = tagHooks[tag] || tagHooks._default, - wrapper = cinerator, - firstChild, neo - if (!W3C) { //fix IE - html = html.replace(rcreate, "
    $1") //在link style script等标签之前添加一个补丁 - } - wrapper.innerHTML = wrap[1] + html + wrap[2] - var els = wrapper.getElementsByTagName("script") - if (els.length) { //使用innerHTML生成的script节点不会发出请求与执行text属性 - for (var i = 0, el; el = els[i++]; ) { - if (scriptTypes[el.type]) { - //以偷龙转凤方式恢复执行脚本功能 - neo = script.cloneNode(false) //FF不能省略参数 - ap.forEach.call(el.attributes, function (attr) { - if (attr && attr.specified) { - neo[attr.name] = attr.value //复制其属性 - neo.setAttribute(attr.name, attr.value) - } - }) // jshint ignore:line - neo.text = el.text - el.parentNode.replaceChild(neo, el) //替换节点 - } - } - } - if (!W3C) { //fix IE - var target = wrap[1] === "X
    " ? wrapper.lastChild.firstChild : wrapper.lastChild - if (target && target.tagName === "TABLE" && tag !== "tbody") { - //IE6-7处理 --> , - // --> , - // -->
    - for (els = target.childNodes, i = 0; el = els[i++]; ) { - if (el.tagName === "TBODY" && !el.innerHTML) { - target.removeChild(el) - break - } - } - } - els = wrapper.getElementsByTagName("br") - var n = els.length - while (el = els[--n]) { - if (el.className === "msNoScope") { - el.parentNode.removeChild(el) - } - } - for (els = wrapper.all, i = 0; el = els[i++]; ) { //fix VML - if (isVML(el)) { - fixVML(el) - } - } - } - //移除我们为了符合套嵌关系而添加的标签 - for (i = wrap[0]; i--; wrapper = wrapper.lastChild) { - } - while (firstChild = wrapper.firstChild) { // 将wrapper上的节点转移到文档碎片上! - fragment.appendChild(firstChild) - } - return fragment -} - -function isVML(src) { - var nodeName = src.nodeName - return nodeName.toLowerCase() === nodeName && src.scopeName && src.outerText === "" -} - -function fixVML(node) { - if (node.currentStyle.behavior !== "url(#default#VML)") { - node.style.behavior = "url(#default#VML)" - node.style.display = "inline-block" - node.style.zoom = 1 //hasLayout - } -} -avalon.innerHTML = function (node, html) { - if (!W3C && (!rcreate.test(html) && !rnest.test(html))) { - try { - node.innerHTML = html - return - } catch (e) { - } - } - var a = this.parseHTML(html) - this.clearHTML(node).appendChild(a) -} -avalon.clearHTML = function (node) { - node.textContent = "" - while (node.firstChild) { - node.removeChild(node.firstChild) - } - return node -} - -/********************************************************************* - * avalon的原型方法定义区 * - **********************************************************************/ - -function hyphen(target) { - //转换为连字符线风格 - return target.replace(/([a-z\d])([A-Z]+)/g, "$1-$2").toLowerCase() -} - -function camelize(target) { - //提前判断,提高getStyle等的效率 - if (!target || target.indexOf("-") < 0 && target.indexOf("_") < 0) { - return target - } - //转换为驼峰风格 - return target.replace(/[-_][^-_]/g, function(match) { - return match.charAt(1).toUpperCase() - }) -} - -var fakeClassListMethods = { - _toString: function() { - var node = this.node - var cls = node.className - var str = typeof cls === "string" ? cls : cls.baseVal - return str.split(/\s+/).join(" ") - }, - _contains: function(cls) { - return (" " + this + " ").indexOf(" " + cls + " ") > -1 - }, - _add: function(cls) { - if (!this.contains(cls)) { - this._set(this + " " + cls) - } - }, - _remove: function(cls) { - this._set((" " + this + " ").replace(" " + cls + " ", " ")) - }, - __set: function(cls) { - cls = cls.trim() - var node = this.node - if (rsvg.test(node)) { - //SVG元素的className是一个对象 SVGAnimatedString { baseVal="", animVal=""},只能通过set/getAttribute操作 - node.setAttribute("class", cls) - } else { - node.className = cls - } - } //toggle存在版本差异,因此不使用它 -} - - function fakeClassList(node) { - if (!("classList" in node)) { - node.classList = { - node: node - } - for (var k in fakeClassListMethods) { - node.classList[k.slice(1)] = fakeClassListMethods[k] - } - } - return node.classList - } - - - "add,remove".replace(rword, function(method) { - avalon.fn[method + "Class"] = function(cls) { - var el = this[0] - //https://developer.mozilla.org/zh-CN/docs/Mozilla/Firefox/Releases/26 - if (cls && typeof cls === "string" && el && el.nodeType === 1) { - cls.replace(/\S+/g, function(c) { - fakeClassList(el)[method](c) - }) - } - return this - } - }) - avalon.fn.mix({ - hasClass: function(cls) { - var el = this[0] || {} - return el.nodeType === 1 && fakeClassList(el).contains(cls) - }, - toggleClass: function(value, stateVal) { - var className, i = 0 - var classNames = String(value).split(/\s+/) - var isBool = typeof stateVal === "boolean" - while ((className = classNames[i++])) { - var state = isBool ? stateVal : !this.hasClass(className) - this[state ? "addClass" : "removeClass"](className) - } - return this - }, - attr: function(name, value) { - if (arguments.length === 2) { - this[0].setAttribute(name, value) - return this - } else { - return this[0].getAttribute(name) - } - }, - data: function(name, value) { - name = "data-" + hyphen(name || "") - switch (arguments.length) { - case 2: - this.attr(name, value) - return this - case 1: - var val = this.attr(name) - return parseData(val) - case 0: - var ret = {} - ap.forEach.call(this[0].attributes, function(attr) { - if (attr) { - name = attr.name - if (!name.indexOf("data-")) { - name = camelize(name.slice(5)) - ret[name] = parseData(attr.value) - } - } - }) - return ret - } - }, - removeData: function(name) { - name = "data-" + hyphen(name) - this[0].removeAttribute(name) - return this - }, - css: function(name, value) { - if (avalon.isPlainObject(name)) { - for (var i in name) { - avalon.css(this, i, name[i]) - } - } else { - var ret = avalon.css(this, name, value) - } - return ret !== void 0 ? ret : this - }, - position: function() { - var offsetParent, offset, - elem = this[0], - parentOffset = { - top: 0, - left: 0 - } - if (!elem) { - return - } - if (this.css("position") === "fixed") { - offset = elem.getBoundingClientRect() - } else { - offsetParent = this.offsetParent() //得到真正的offsetParent - offset = this.offset() // 得到正确的offsetParent - if (offsetParent[0].tagName !== "HTML") { - parentOffset = offsetParent.offset() - } - parentOffset.top += avalon.css(offsetParent[0], "borderTopWidth", true) - parentOffset.left += avalon.css(offsetParent[0], "borderLeftWidth", true) - - // Subtract offsetParent scroll positions - parentOffset.top -= offsetParent.scrollTop() - parentOffset.left -= offsetParent.scrollLeft() - } - return { - top: offset.top - parentOffset.top - avalon.css(elem, "marginTop", true), - left: offset.left - parentOffset.left - avalon.css(elem, "marginLeft", true) - } - }, - offsetParent: function() { - var offsetParent = this[0].offsetParent - while (offsetParent && avalon.css(offsetParent, "position") === "static") { - offsetParent = offsetParent.offsetParent; - } - return avalon(offsetParent || root) - }, - bind: function(type, fn, phase) { - if (this[0]) { //此方法不会链 - return avalon.bind(this[0], type, fn, phase) - } - }, - unbind: function(type, fn, phase) { - if (this[0]) { - avalon.unbind(this[0], type, fn, phase) - } - return this - }, - val: function(value) { - var node = this[0] - if (node && node.nodeType === 1) { - var get = arguments.length === 0 - var access = get ? ":get" : ":set" - var fn = valHooks[getValType(node) + access] - if (fn) { - var val = fn(node, value) - } else if (get) { - return (node.value || "").replace(/\r/g, "") - } else { - node.value = value - } - } - return get ? val : this - } - }) - - function parseData(data) { - try { - if (typeof data === "object") - return data - data = data === "true" ? true : - data === "false" ? false : - data === "null" ? null : +data + "" === data ? +data : rbrace.test(data) ? avalon.parseJSON(data) : data - } catch (e) {} - return data - } -var rbrace = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/, - rvalidchars = /^[\],:{}\s]*$/, - rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g, - rvalidescape = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g, - rvalidtokens = /"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g -avalon.parseJSON = window.JSON ? JSON.parse : function(data) { - if (typeof data === "string") { - data = data.trim(); - if (data) { - if (rvalidchars.test(data.replace(rvalidescape, "@") - .replace(rvalidtokens, "]") - .replace(rvalidbraces, ""))) { - return (new Function("return " + data))() // jshint ignore:line - } - } - avalon.error("Invalid JSON: " + data) - } - return data -} - -//生成avalon.fn.scrollLeft, avalon.fn.scrollTop方法 -avalon.each({ - scrollLeft: "pageXOffset", - scrollTop: "pageYOffset" -}, function(method, prop) { - avalon.fn[method] = function(val) { - var node = this[0] || {}, win = getWindow(node), - top = method === "scrollTop" - if (!arguments.length) { - return win ? (prop in win) ? win[prop] : root[method] : node[method] - } else { - if (win) { - win.scrollTo(!top ? val : avalon(win).scrollLeft(), top ? val : avalon(win).scrollTop()) - } else { - node[method] = val - } - } - } -}) - -function getWindow(node) { - return node.window && node.document ? node : node.nodeType === 9 ? node.defaultView || node.parentWindow : false; -} -//=============================css相关======================= -var cssHooks = avalon.cssHooks = {} -var prefixes = ["", "-webkit-", "-o-", "-moz-", "-ms-"] -var cssMap = { - "float": W3C ? "cssFloat" : "styleFloat" -} -avalon.cssNumber = oneObject("columnCount,order,fillOpacity,fontWeight,lineHeight,opacity,orphans,widows,zIndex,zoom") - -avalon.cssName = function(name, host, camelCase) { - if (cssMap[name]) { - return cssMap[name] - } - host = host || root.style - for (var i = 0, n = prefixes.length; i < n; i++) { - camelCase = camelize(prefixes[i] + name) - if (camelCase in host) { - return (cssMap[name] = camelCase) - } - } - return null -} -cssHooks["@:set"] = function(node, name, value) { - try { //node.style.width = NaN;node.style.width = "xxxxxxx";node.style.width = undefine 在旧式IE下会抛异常 - node.style[name] = value - } catch (e) {} -} -if (window.getComputedStyle) { - cssHooks["@:get"] = function(node, name) { - if (!node || !node.style) { - throw new Error("getComputedStyle要求传入一个节点 " + node) - } - var ret, styles = getComputedStyle(node, null) - if (styles) { - ret = name === "filter" ? styles.getPropertyValue(name) : styles[name] - if (ret === "") { - ret = node.style[name] //其他浏览器需要我们手动取内联样式 - } - } - return ret - } - cssHooks["opacity:get"] = function(node) { - var ret = cssHooks["@:get"](node, "opacity") - return ret === "" ? "1" : ret - } -} else { - var rnumnonpx = /^-?(?:\d*\.)?\d+(?!px)[^\d\s]+$/i - var rposition = /^(top|right|bottom|left)$/ - var ralpha = /alpha\([^)]*\)/i - var ie8 = !! window.XDomainRequest - var salpha = "DXImageTransform.Microsoft.Alpha" - var border = { - thin: ie8 ? '1px' : '2px', - medium: ie8 ? '3px' : '4px', - thick: ie8 ? '5px' : '6px' - } - cssHooks["@:get"] = function(node, name) { - //取得精确值,不过它有可能是带em,pc,mm,pt,%等单位 - var currentStyle = node.currentStyle - var ret = currentStyle[name] - if ((rnumnonpx.test(ret) && !rposition.test(ret))) { - //①,保存原有的style.left, runtimeStyle.left, - var style = node.style, - left = style.left, - rsLeft = node.runtimeStyle.left - //②由于③处的style.left = xxx会影响到currentStyle.left, - //因此把它currentStyle.left放到runtimeStyle.left, - //runtimeStyle.left拥有最高优先级,不会style.left影响 - node.runtimeStyle.left = currentStyle.left - //③将精确值赋给到style.left,然后通过IE的另一个私有属性 style.pixelLeft - //得到单位为px的结果;fontSize的分支见http://bugs.jquery.com/ticket/760 - style.left = name === 'fontSize' ? '1em' : (ret || 0) - ret = style.pixelLeft + "px" - //④还原 style.left,runtimeStyle.left - style.left = left - node.runtimeStyle.left = rsLeft - } - if (ret === "medium") { - name = name.replace("Width", "Style") - //border width 默认值为medium,即使其为0" - if (currentStyle[name] === "none") { - ret = "0px" - } - } - return ret === "" ? "auto" : border[ret] || ret - } - cssHooks["opacity:set"] = function(node, name, value) { - var style = node.style - var opacity = isFinite(value) && value <= 1 ? "alpha(opacity=" + value * 100 + ")" : "" - var filter = style.filter || ""; - style.zoom = 1 - //不能使用以下方式设置透明度 - //node.filters.alpha.opacity = value * 100 - style.filter = (ralpha.test(filter) ? - filter.replace(ralpha, opacity) : - filter + " " + opacity).trim() - if (!style.filter) { - style.removeAttribute("filter") - } - } - cssHooks["opacity:get"] = function(node) { - //这是最快的获取IE透明值的方式,不需要动用正则了! - var alpha = node.filters.alpha || node.filters[salpha], - op = alpha && alpha.enabled ? alpha.opacity : 100 - return (op / 100) + "" //确保返回的是字符串 - } -} - -"top,left".replace(rword, function(name) { - cssHooks[name + ":get"] = function(node) { - var computed = cssHooks["@:get"](node, name) - return /px$/.test(computed) ? computed : - avalon(node).position()[name] + "px" - } -}) - -var cssShow = { - position: "absolute", - visibility: "hidden", - display: "block" -} - -var rdisplayswap = /^(none|table(?!-c[ea]).+)/ - - function showHidden(node, array) { - //http://www.cnblogs.com/rubylouvre/archive/2012/10/27/2742529.html - if (node.offsetWidth <= 0) { //opera.offsetWidth可能小于0 - if (rdisplayswap.test(cssHooks["@:get"](node, "display"))) { - var obj = { - node: node - } - for (var name in cssShow) { - obj[name] = node.style[name] - node.style[name] = cssShow[name] - } - array.push(obj) - } - var parent = node.parentNode - if (parent && parent.nodeType === 1) { - showHidden(parent, array) - } - } - } - "Width,Height".replace(rword, function(name) { //fix 481 - var method = name.toLowerCase(), - clientProp = "client" + name, - scrollProp = "scroll" + name, - offsetProp = "offset" + name - cssHooks[method + ":get"] = function(node, which, override) { - var boxSizing = -4 - if (typeof override === "number") { - boxSizing = override - } - which = name === "Width" ? ["Left", "Right"] : ["Top", "Bottom"] - var ret = node[offsetProp] // border-box 0 - if (boxSizing === 2) { // margin-box 2 - return ret + avalon.css(node, "margin" + which[0], true) + avalon.css(node, "margin" + which[1], true) - } - if (boxSizing < 0) { // padding-box -2 - ret = ret - avalon.css(node, "border" + which[0] + "Width", true) - avalon.css(node, "border" + which[1] + "Width", true) - } - if (boxSizing === -4) { // content-box -4 - ret = ret - avalon.css(node, "padding" + which[0], true) - avalon.css(node, "padding" + which[1], true) - } - return ret - } - cssHooks[method + "&get"] = function(node) { - var hidden = []; - showHidden(node, hidden); - var val = cssHooks[method + ":get"](node) - for (var i = 0, obj; obj = hidden[i++];) { - node = obj.node - for (var n in obj) { - if (typeof obj[n] === "string") { - node.style[n] = obj[n] - } - } - } - return val; - } - avalon.fn[method] = function(value) { //会忽视其display - var node = this[0] - if (arguments.length === 0) { - if (node.setTimeout) { //取得窗口尺寸,IE9后可以用node.innerWidth /innerHeight代替 - return node["inner" + name] || node.document.documentElement[clientProp] - } - if (node.nodeType === 9) { //取得页面尺寸 - var doc = node.documentElement - //FF chrome html.scrollHeight< body.scrollHeight - //IE 标准模式 : html.scrollHeight> body.scrollHeight - //IE 怪异模式 : html.scrollHeight 最大等于可视窗口多一点? - return Math.max(node.body[scrollProp], doc[scrollProp], node.body[offsetProp], doc[offsetProp], doc[clientProp]) - } - return cssHooks[method + "&get"](node) - } else { - return this.css(method, value) - } - } - avalon.fn["inner" + name] = function() { - return cssHooks[method + ":get"](this[0], void 0, -2) - } - avalon.fn["outer" + name] = function(includeMargin) { - return cssHooks[method + ":get"](this[0], void 0, includeMargin === true ? 2 : 0) - } - }) - avalon.fn.offset = function() { //取得距离页面左右角的坐标 - var node = this[0], - box = { - left: 0, - top: 0 - } - if (!node || !node.tagName || !node.ownerDocument) { - return box - } - var doc = node.ownerDocument, - body = doc.body, - root = doc.documentElement, - win = doc.defaultView || doc.parentWindow - if (!avalon.contains(root, node)) { - return box - } - //http://hkom.blog1.fc2.com/?mode=m&no=750 body的偏移量是不包含margin的 - //我们可以通过getBoundingClientRect来获得元素相对于client的rect. - //http://msdn.microsoft.com/en-us/library/ms536433.aspx - if (node.getBoundingClientRect) { - box = node.getBoundingClientRect() // BlackBerry 5, iOS 3 (original iPhone) - } - //chrome/IE6: body.scrollTop, firefox/other: root.scrollTop - var clientTop = root.clientTop || body.clientTop, - clientLeft = root.clientLeft || body.clientLeft, - scrollTop = Math.max(win.pageYOffset || 0, root.scrollTop, body.scrollTop), - scrollLeft = Math.max(win.pageXOffset || 0, root.scrollLeft, body.scrollLeft) - // 把滚动距离加到left,top中去。 - // IE一些版本中会自动为HTML元素加上2px的border,我们需要去掉它 - // http://msdn.microsoft.com/en-us/library/ms533564(VS.85).aspx - return { - top: box.top + scrollTop - clientTop, - left: box.left + scrollLeft - clientLeft - } - } - - //==================================val相关============================ - - function getValType(elem) { - var ret = elem.tagName.toLowerCase() - return ret === "input" && /checkbox|radio/.test(elem.type) ? "checked" : ret - } -var roption = /^]+))?)*\s+value[\s=]/i -var valHooks = { - "option:get": IEVersion ? function(node) { - //在IE11及W3C,如果没有指定value,那么node.value默认为node.text(存在trim作),但IE9-10则是取innerHTML(没trim操作) - //specified并不可靠,因此通过分析outerHTML判定用户有没有显示定义value - return roption.test(node.outerHTML) ? node.value : node.text.trim() - } : function(node) { - return node.value - }, - "select:get": function(node, value) { - var option, options = node.options, - index = node.selectedIndex, - getter = valHooks["option:get"], - one = node.type === "select-one" || index < 0, - values = one ? null : [], - max = one ? index + 1 : options.length, - i = index < 0 ? max : one ? index : 0 - for (; i < max; i++) { - option = options[i] - //旧式IE在reset后不会改变selected,需要改用i === index判定 - //我们过滤所有disabled的option元素,但在safari5下,如果设置select为disable,那么其所有孩子都disable - //因此当一个元素为disable,需要检测其是否显式设置了disable及其父节点的disable情况 - if ((option.selected || i === index) && !option.disabled) { - value = getter(option) - if (one) { - return value - } - //收集所有selected值组成数组返回 - values.push(value) - } - } - return values - }, - "select:set": function(node, values, optionSet) { - values = [].concat(values) //强制转换为数组 - var getter = valHooks["option:get"] - for (var i = 0, el; el = node.options[i++];) { - if ((el.selected = values.indexOf(getter(el)) > -1)) { - optionSet = true - } - } - if (!optionSet) { - node.selectedIndex = -1 - } - } -} - -/********************************************************************* - * 编译系统 * - **********************************************************************/ -var meta = { - '\b': '\\b', - '\t': '\\t', - '\n': '\\n', - '\f': '\\f', - '\r': '\\r', - '"': '\\"', - '\\': '\\\\' -} -var quote = window.JSON && JSON.stringify || function(str) { - return '"' + str.replace(/[\\\"\x00-\x1f]/g, function(a) { - var c = meta[a]; - return typeof c === 'string' ? c : - '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); - }) + '"' -} - -var keywords = [ - "break,case,catch,continue,debugger,default,delete,do,else,false", - "finally,for,function,if,in,instanceof,new,null,return,switch,this", - "throw,true,try,typeof,var,void,while,with", /* 关键字*/ - "abstract,boolean,byte,char,class,const,double,enum,export,extends", - "final,float,goto,implements,import,int,interface,long,native", - "package,private,protected,public,short,static,super,synchronized", - "throws,transient,volatile", /*保留字*/ - "arguments,let,yield,undefined" /* ECMA 5 - use strict*/].join(",") -var rrexpstr = /\/\*[\w\W]*?\*\/|\/\/[^\n]*\n|\/\/[^\n]*$|"(?:[^"\\]|\\[\w\W])*"|'(?:[^'\\]|\\[\w\W])*'|[\s\t\n]*\.[\s\t\n]*[$\w\.]+/g -var rsplit = /[^\w$]+/g -var rkeywords = new RegExp(["\\b" + keywords.replace(/,/g, '\\b|\\b') + "\\b"].join('|'), 'g') -var rnumber = /\b\d[^,]*/g -var rcomma = /^,+|,+$/g -var variablePool = new Cache(512) -var getVariables = function (code) { - var key = "," + code.trim() - var ret = variablePool.get(key) - if (ret) { - return ret - } - var match = code - .replace(rrexpstr, "") - .replace(rsplit, ",") - .replace(rkeywords, "") - .replace(rnumber, "") - .replace(rcomma, "") - .split(/^$|,+/) - return variablePool.put(key, uniqSet(match)) -} -/*添加赋值语句*/ - -function addAssign(vars, scope, name, data) { - var ret = [], - prefix = " = " + name + "." - for (var i = vars.length, prop; prop = vars[--i]; ) { - if (scope.hasOwnProperty(prop)) { - ret.push(prop + prefix + prop) - data.vars.push(prop) - if (data.type === "duplex") { - vars.get = name + "." + prop - } - vars.splice(i, 1) - } - } - return ret -} - -function uniqSet(array) { - var ret = [], - unique = {} - for (var i = 0; i < array.length; i++) { - var el = array[i] - var id = el && typeof el.$id === "string" ? el.$id : el - if (!unique[id]) { - unique[id] = ret.push(el) - } - } - return ret -} -//缓存求值函数,以便多次利用 -var evaluatorPool = new Cache(128) -//取得求值函数及其传参 -var rduplex = /\w\[.*\]|\w\.\w/ -var rproxy = /(\$proxy\$[a-z]+)\d+$/ -var rthimRightParentheses = /\)\s*$/ -var rthimOtherParentheses = /\)\s*\|/g -var rquoteFilterName = /\|\s*([$\w]+)/g -var rpatchBracket = /"\s*\["/g -var rthimLeftParentheses = /"\s*\(/g -function parseFilter(val, filters) { - filters = filters - .replace(rthimRightParentheses, "")//处理最后的小括号 - .replace(rthimOtherParentheses, function () {//处理其他小括号 - return "],|" - }) - .replace(rquoteFilterName, function (a, b) { //处理|及它后面的过滤器的名字 - return "[" + quote(b) - }) - .replace(rpatchBracket, function () { - return '"],["' - }) - .replace(rthimLeftParentheses, function () { - return '",' - }) + "]" - return "return avalon.filters.$filter(" + val + ", " + filters + ")" -} - -function parseExpr(code, scopes, data) { - var dataType = data.type - var filters = data.filters || "" - var exprId = scopes.map(function (el) { - return String(el.$id).replace(rproxy, "$1") - }) + code + dataType + filters - var vars = getVariables(code).concat(), - assigns = [], - names = [], - args = [], - prefix = "" - //args 是一个对象数组, names 是将要生成的求值函数的参数 - scopes = uniqSet(scopes) - data.vars = [] - for (var i = 0, sn = scopes.length; i < sn; i++) { - if (vars.length) { - var name = "vm" + expose + "_" + i - names.push(name) - args.push(scopes[i]) - assigns.push.apply(assigns, addAssign(vars, scopes[i], name, data)) - } - } - if (!assigns.length && dataType === "duplex") { - return - } - if (dataType !== "duplex" && (code.indexOf("||") > -1 || code.indexOf("&&") > -1)) { - //https://github.com/RubyLouvre/avalon/issues/583 - data.vars.forEach(function (v) { - var reg = new RegExp("\\b" + v + "(?:\\.\\w+|\\[\\w+\\])+", "ig") - code = code.replace(reg, function (_) { - var c = _.charAt(v.length) - var r = IEVersion ? code.slice(arguments[1] + _.length) : RegExp.rightContext - var method = /^\s*\(/.test(r) - if (c === "." || c === "[" || method) {//比如v为aa,我们只匹配aa.bb,aa[cc],不匹配aaa.xxx - var name = "var" + String(Math.random()).replace(/^0\./, "") - if (method) {//array.size() - var array = _.split(".") - if (array.length > 2) { - var last = array.pop() - assigns.push(name + " = " + array.join(".")) - return name + "." + last - } else { - return _ - } - } - assigns.push(name + " = " + _) - return name - } else { - return _ - } - }) - }) - } - //---------------args---------------- - data.args = args - //---------------cache---------------- - delete data.vars - var fn = evaluatorPool.get(exprId) //直接从缓存,免得重复生成 - if (fn) { - data.evaluator = fn - return - } - prefix = assigns.join(", ") - if (prefix) { - prefix = "var " + prefix - } - if (/\S/.test(filters)) { //文本绑定,双工绑定才有过滤器 - if (!/text|html/.test(data.type)) { - throw Error("ms-" + data.type + "不支持过滤器") - } - code = "\nvar ret" + expose + " = " + code + ";\r\n" - code += parseFilter("ret" + expose, filters) - } else if (dataType === "duplex") { //双工绑定 - var _body = "'use strict';\nreturn function(vvv){\n\t" + - prefix + - ";\n\tif(!arguments.length){\n\t\treturn " + - code + - "\n\t}\n\t" + (!rduplex.test(code) ? vars.get : code) + - "= vvv;\n} " - try { - fn = Function.apply(noop, names.concat(_body)) - data.evaluator = evaluatorPool.put(exprId, fn) - } catch (e) { - log("debug: parse error," + e.message) - } - return - } else if (dataType === "on") { //事件绑定 - if (code.indexOf("(") === -1) { - code += ".call(this, $event)" - } else { - code = code.replace("(", ".call(this,") - } - names.push("$event") - code = "\nreturn " + code + ";" //IE全家 Function("return ")出错,需要Function("return ;") - var lastIndex = code.lastIndexOf("\nreturn") - var header = code.slice(0, lastIndex) - var footer = code.slice(lastIndex) - code = header + "\n" + footer - } else { //其他绑定 - code = "\nreturn " + code + ";" //IE全家 Function("return ")出错,需要Function("return ;") - } - try { - fn = Function.apply(noop, names.concat("'use strict';\n" + prefix + code)) - data.evaluator = evaluatorPool.put(exprId, fn) - } catch (e) { - log("debug: parse error," + e.message) - } finally { - vars = assigns = names = null //释放内存 - } -} - - -//parseExpr的智能引用代理 - -function parseExprProxy(code, scopes, data, tokens, noRegister) { - if (Array.isArray(tokens)) { - code = tokens.map(function (el) { - return el.expr ? "(" + el.value + ")" : quote(el.value) - }).join(" + ") - } - parseExpr(code, scopes, data) - if (data.evaluator && !noRegister) { - data.handler = bindingExecutors[data.handlerName || data.type] - //方便调试 - //这里非常重要,我们通过判定视图刷新函数的element是否在DOM树决定 - //将它移出订阅者列表 - avalon.injectBinding(data) - } -} -avalon.parseExprProxy = parseExprProxy -/********************************************************************* - * 扫描系统 * - **********************************************************************/ - -avalon.scan = function(elem, vmodel) { - elem = elem || root - var vmodels = vmodel ? [].concat(vmodel) : [] - scanTag(elem, vmodels) -} - -//http://www.w3.org/TR/html5/syntax.html#void-elements -var stopScan = oneObject("area,base,basefont,br,col,command,embed,hr,img,input,link,meta,param,source,track,wbr,noscript,script,style,textarea".toUpperCase()) - -function checkScan(elem, callback, innerHTML) { - var id = setTimeout(function() { - var currHTML = elem.innerHTML - clearTimeout(id) - if (currHTML === innerHTML) { - callback() - } else { - checkScan(elem, callback, currHTML) - } - }) -} - - -function createSignalTower(elem, vmodel) { - var id = elem.getAttribute("avalonctrl") || vmodel.$id - elem.setAttribute("avalonctrl", id) - vmodel.$events.expr = elem.tagName + '[avalonctrl="' + id + '"]' -} - -var getBindingCallback = function(elem, name, vmodels) { - var callback = elem.getAttribute(name) - if (callback) { - for (var i = 0, vm; vm = vmodels[i++]; ) { - if (vm.hasOwnProperty(callback) && typeof vm[callback] === "function") { - return vm[callback] - } - } - } -} - -function executeBindings(bindings, vmodels) { - for (var i = 0, data; data = bindings[i++]; ) { - data.vmodels = vmodels - bindingHandlers[data.type](data, vmodels) - if (data.evaluator && data.element && data.element.nodeType === 1) { //移除数据绑定,防止被二次解析 - //chrome使用removeAttributeNode移除不存在的特性节点时会报错 https://github.com/RubyLouvre/avalon/issues/99 - data.element.removeAttribute(data.name) - } - } - bindings.length = 0 -} - -//https://github.com/RubyLouvre/avalon/issues/636 -var mergeTextNodes = IEVersion && window.MutationObserver ? function (elem) { - var node = elem.firstChild, text - while (node) { - var aaa = node.nextSibling - if (node.nodeType === 3) { - if (text) { - text.nodeValue += node.nodeValue - elem.removeChild(node) - } else { - text = node - } - } else { - text = null - } - node = aaa - } -} : 0 -var roneTime = /^\s*::/ -var rmsAttr = /ms-(\w+)-?(.*)/ -var priorityMap = { - "if": 10, - "repeat": 90, - "data": 100, - "widget": 110, - "each": 1400, - "with": 1500, - "duplex": 2000, - "on": 3000 -} - -var events = oneObject("animationend,blur,change,input,click,dblclick,focus,keydown,keypress,keyup,mousedown,mouseenter,mouseleave,mousemove,mouseout,mouseover,mouseup,scan,scroll,submit") -var obsoleteAttrs = oneObject("value,title,alt,checked,selected,disabled,readonly,enabled") -function bindingSorter(a, b) { - return a.priority - b.priority -} - -function scanAttr(elem, vmodels, match) { - var scanNode = true - if (vmodels.length) { - var attributes = getAttributes ? getAttributes(elem) : elem.attributes - var bindings = [] - var fixAttrs = [] - var msData = {} - for (var i = 0, attr; attr = attributes[i++]; ) { - if (attr.specified) { - if (match = attr.name.match(rmsAttr)) { - //如果是以指定前缀命名的 - var type = match[1] - var param = match[2] || "" - var value = attr.value - var name = attr.name - if (events[type]) { - param = type - type = "on" - } else if (obsoleteAttrs[type]) { - if (type === "enabled") {//吃掉ms-enabled绑定,用ms-disabled代替 - log("warning!ms-enabled或ms-attr-enabled已经被废弃") - type = "disabled" - value = "!(" + value + ")" - } - param = type - type = "attr" - name = "ms-" + type + "-"+ param - fixAttrs.push([attr.name, name, value]) - } - msData[name] = value - if (typeof bindingHandlers[type] === "function") { - var newValue = value.replace(roneTime, "") - var oneTime = value !== newValue - var binding = { - type: type, - param: param, - element: elem, - name: name, - value: newValue, - oneTime: oneTime, - uuid: name+"-"+getUid(elem), - //chrome与firefox下Number(param)得到的值不一样 #855 - priority: (priorityMap[type] || type.charCodeAt(0) * 10 )+ (Number(param.replace(/\D/g, "")) || 0) - } - if (type === "html" || type === "text") { - var token = getToken(value) - avalon.mix(binding, token) - binding.filters = binding.filters.replace(rhasHtml, function () { - binding.type = "html" - binding.group = 1 - return "" - })// jshint ignore:line - } else if (type === "duplex") { - var hasDuplex = name - } else if (name === "ms-if-loop") { - binding.priority += 100 - } - bindings.push(binding) - if (type === "widget") { - elem.msData = elem.msData || msData - } - } - } - } - } - if (bindings.length) { - bindings.sort(bindingSorter) - fixAttrs.forEach(function (arr) { - log("warning!请改用" + arr[1] + "代替" + arr[0] + "!") - elem.removeAttribute(arr[0]) - elem.setAttribute(arr[1], arr[2]) - }) - //http://bugs.jquery.com/ticket/7071 - //在IE下对VML读取type属性,会让此元素所有属性都变成 - if (hasDuplex) { - if (msData["ms-attr-checked"]) { - log("warning!一个控件不能同时定义ms-attr-checked与" + hasDuplex) - } - if (msData["ms-attr-value"]) { - log("warning!一个控件不能同时定义ms-attr-value与" + hasDuplex) - } - } - for (i = 0; binding = bindings[i]; i++) { - type = binding.type - if (rnoscanAttrBinding.test(type)) { - return executeBindings(bindings.slice(0, i + 1), vmodels) - } else if (scanNode) { - scanNode = !rnoscanNodeBinding.test(type) - } - } - executeBindings(bindings, vmodels) - } - } - if (scanNode && !stopScan[elem.tagName] && rbind.test(elem.innerHTML.replace(rlt, "<").replace(rgt, ">"))) { - mergeTextNodes && mergeTextNodes(elem) - scanNodeList(elem, vmodels) //扫描子孙元素 - } -} -var rnoscanAttrBinding = /^if|widget|repeat$/ -var rnoscanNodeBinding = /^each|with|html|include$/ -//IE67下,在循环绑定中,一个节点如果是通过cloneNode得到,自定义属性的specified为false,无法进入里面的分支, -//但如果我们去掉scanAttr中的attr.specified检测,一个元素会有80+个特性节点(因为它不区分固有属性与自定义属性),很容易卡死页面 -if (!"1" [0]) { - var attrPool = new Cache(512) - var rattrs = /\s+(ms-[^=\s]+)(?:=("[^"]*"|'[^']*'|[^\s>]+))?/g, - rquote = /^['"]/, - rtag = /<\w+\b(?:(["'])[^"]*?(\1)|[^>])*>/i, - ramp = /&/g - //IE6-8解析HTML5新标签,会将它分解两个元素节点与一个文本节点 - //
    ddd
    - // window.onload = function() { - // var body = document.body - // for (var i = 0, el; el = body.children[i++]; ) { - // avalon.log(el.outerHTML) - // } - // } - //依次输出
    ,
    - var getAttributes = function (elem) { - var html = elem.outerHTML - //处理IE6-8解析HTML5新标签的情况,及
    等半闭合标签outerHTML为空的情况 - if (html.slice(0, 2) === " ms-important(1) --> ms-controller(2) --> ms-if(10) --> ms-repeat(100) - //--> ms-if-loop(110) --> ms-attr(970) ...--> ms-each(1400)-->ms-with(1500)--〉ms-duplex(2000)垫后 - var a = elem.getAttribute("ms-skip") - //#360 在旧式IE中 Object标签在引入Flash等资源时,可能出现没有getAttributeNode,innerHTML的情形 - if (!elem.getAttributeNode) { - return log("warning " + elem.tagName + " no getAttributeNode method") - } - var b = elem.getAttributeNode("ms-important") - var c = elem.getAttributeNode("ms-controller") - if (typeof a === "string") { - return - } else if (node = b || c) { - var newVmodel = avalon.vmodels[node.value] - if (!newVmodel) { - return - } - //ms-important不包含父VM,ms-controller相反 - vmodels = node === b ? [newVmodel] : [newVmodel].concat(vmodels) - var name = node.name - elem.removeAttribute(name) //removeAttributeNode不会刷新[ms-controller]样式规则 - avalon(elem).removeClass(name) - createSignalTower(elem, newVmodel) - } - scanAttr(elem, vmodels) //扫描特性节点 -} -var rhasHtml = /\|\s*html(?:\b|$)/, - r11a = /\|\|/g, - rlt = /</g, - rgt = />/g, - rstringLiteral = /(['"])(\\\1|.)+?\1/g -function getToken(value) { - if (value.indexOf("|") > 0) { - var scapegoat = value.replace(rstringLiteral, function (_) { - return Array(_.length + 1).join("1")// jshint ignore:line - }) - var index = scapegoat.replace(r11a, "\u1122\u3344").indexOf("|") //干掉所有短路或 - if (index > -1) { - return { - filters: value.slice(index), - value: value.slice(0, index), - expr: true - } - } - } - return { - value: value, - filters: "", - expr: true - } -} - -function scanExpr(str) { - var tokens = [], - value, start = 0, - stop - do { - stop = str.indexOf(openTag, start) - if (stop === -1) { - break - } - value = str.slice(start, stop) - if (value) { // {{ 左边的文本 - tokens.push({ - value: value, - filters: "", - expr: false - }) - } - start = stop + openTag.length - stop = str.indexOf(closeTag, start) - if (stop === -1) { - break - } - value = str.slice(start, stop) - if (value) { //处理{{ }}插值表达式 - tokens.push(getToken(value, start)) - } - start = stop + closeTag.length - } while (1) - value = str.slice(start) - if (value) { //}} 右边的文本 - tokens.push({ - value: value, - expr: false, - filters: "" - }) - } - return tokens -} - -function scanText(textNode, vmodels, index) { - var bindings = [] - tokens = scanExpr(textNode.data) - if (tokens.length) { - for (var i = 0; token = tokens[i++]; ) { - var node = DOC.createTextNode(token.value) //将文本转换为文本节点,并替换原来的文本节点 - if (token.expr) { - token.value = token.value.replace(roneTime, function () { - token.oneTime = true - return "" - }) - token.type = "text" - token.element = node - token.filters = token.filters.replace(rhasHtml, function (a, b,c) { - token.type = "html" - return "" - })// jshint ignore:line - token.pos = index * 1000 + i - bindings.push(token) //收集带有插值表达式的文本 - } - avalonFragment.appendChild(node) - } - textNode.parentNode.replaceChild(avalonFragment, textNode) - if (bindings.length) - executeBindings(bindings, vmodels) - } -} - -var bools = ["autofocus,autoplay,async,allowTransparency,checked,controls", - "declare,disabled,defer,defaultChecked,defaultSelected", - "contentEditable,isMap,loop,multiple,noHref,noResize,noShade", - "open,readOnly,selected" -].join(",") -var boolMap = {} -bools.replace(rword, function(name) { - boolMap[name.toLowerCase()] = name -}) - -var propMap = { //属性名映射 - "accept-charset": "acceptCharset", - "char": "ch", - "charoff": "chOff", - "class": "className", - "for": "htmlFor", - "http-equiv": "httpEquiv" -} - -var anomaly = ["accessKey,bgColor,cellPadding,cellSpacing,codeBase,codeType,colSpan", - "dateTime,defaultValue,frameBorder,longDesc,maxLength,marginWidth,marginHeight", - "rowSpan,tabIndex,useMap,vSpace,valueType,vAlign" -].join(",") -anomaly.replace(rword, function(name) { - propMap[name.toLowerCase()] = name -}) - -var rnoscripts = /(?:[\s\S]+?)<\/noscript>/img -var rnoscriptText = /([\s\S]+?)<\/noscript>/im - -var getXHR = function() { - return new(window.XMLHttpRequest || ActiveXObject)("Microsoft.XMLHTTP") // jshint ignore:line -} - -var templatePool = avalon.templateCache = {} - -bindingHandlers.attr = function(data, vmodels) { - var text = data.value.trim(), - simple = true - if (text.indexOf(openTag) > -1 && text.indexOf(closeTag) > 2) { - simple = false - if (rexpr.test(text) && RegExp.rightContext === "" && RegExp.leftContext === "") { - simple = true - text = RegExp.$1 - } - } - if (data.type === "include") { - var elem = data.element - data.includeRendered = getBindingCallback(elem, "data-include-rendered", vmodels) - data.includeLoaded = getBindingCallback(elem, "data-include-loaded", vmodels) - var outer = data.includeReplace = !! avalon(elem).data("includeReplace") - if (avalon(elem).data("includeCache")) { - data.templateCache = {} - } - data.startInclude = DOC.createComment("ms-include") - data.endInclude = DOC.createComment("ms-include-end") - if (outer) { - data.element = data.startInclude - elem.parentNode.insertBefore(data.startInclude, elem) - elem.parentNode.insertBefore(data.endInclude, elem.nextSibling) - } else { - elem.insertBefore(data.startInclude, elem.firstChild) - elem.appendChild(data.endInclude) - } - } - data.handlerName = "attr" //handleName用于处理多种绑定共用同一种bindingExecutor的情况 - parseExprProxy(text, vmodels, data, (simple ? 0 : scanExpr(data.value))) -} - -bindingExecutors.attr = function(val, elem, data) { - var method = data.type, - attrName = data.param - if (method === "css") { - avalon(elem).css(attrName, val) - } else if (method === "attr") { - - // ms-attr-class="xxx" vm.xxx="aaa bbb ccc"将元素的className设置为aaa bbb ccc - // ms-attr-class="xxx" vm.xxx=false 清空元素的所有类名 - // ms-attr-name="yyy" vm.yyy="ooo" 为元素设置name属性 - var toRemove = (val === false) || (val === null) || (val === void 0) - - if (!W3C && propMap[attrName]) { //旧式IE下需要进行名字映射 - attrName = propMap[attrName] - } - var bool = boolMap[attrName] - if (typeof elem[bool] === "boolean") { - elem[bool] = !! val //布尔属性必须使用el.xxx = true|false方式设值 - if (!val) { //如果为false, IE全系列下相当于setAttribute(xxx,''),会影响到样式,需要进一步处理 - toRemove = true - } - } - if (toRemove) { - return elem.removeAttribute(attrName) - } - //SVG只能使用setAttribute(xxx, yyy), VML只能使用elem.xxx = yyy ,HTML的固有属性必须elem.xxx = yyy - var isInnate = rsvg.test(elem) ? false : (DOC.namespaces && isVML(elem)) ? true : attrName in elem.cloneNode(false) - if (isInnate) { - elem[attrName] = val+"" - } else { - elem.setAttribute(attrName, val) - } - } else if (method === "include" && val) { - var vmodels = data.vmodels - var rendered = data.includeRendered - var loaded = data.includeLoaded - var replace = data.includeReplace - var target = replace ? elem.parentNode : elem - var scanTemplate = function(text) { - if (loaded) { - var newText = loaded.apply(target, [text].concat(vmodels)) - if (typeof newText === "string") - text = newText - } - if (rendered) { - checkScan(target, function() { - rendered.call(target) - }, NaN) - } - var lastID = data.includeLastID - if (data.templateCache && lastID && lastID !== val) { - var lastTemplate = data.templateCache[lastID] - if (!lastTemplate) { - lastTemplate = data.templateCache[lastID] = DOC.createElement("div") - ifGroup.appendChild(lastTemplate) - } - } - data.includeLastID = val - while (true) { - var node = data.startInclude.nextSibling - if (node && node !== data.endInclude) { - target.removeChild(node) - if (lastTemplate) - lastTemplate.appendChild(node) - } else { - break - } - } - var dom = getTemplateNodes(data, val, text) - var nodes = avalon.slice(dom.childNodes) - target.insertBefore(dom, data.endInclude) - scanNodeArray(nodes, vmodels) - } - - if (data.param === "src") { - if (typeof templatePool[val] === "string") { - avalon.nextTick(function() { - scanTemplate(templatePool[val]) - }) - } else if (Array.isArray(templatePool[val])) { //#805 防止在循环绑定中发出许多相同的请求 - templatePool[val].push(scanTemplate) - } else { - var xhr = getXHR() - xhr.onreadystatechange = function() { - if (xhr.readyState === 4) { - var s = xhr.status - if (s >= 200 && s < 300 || s === 304 || s === 1223) { - var text = xhr.responseText - for (var f = 0, fn; fn = templatePool[val][f++];) { - fn(text) - } - templatePool[val] = text - } - } - } - templatePool[val] = [scanTemplate] - xhr.open("GET", val, true) - if ("withCredentials" in xhr) { - xhr.withCredentials = true - } - xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest") - xhr.send(null) - } - } else { - //IE系列与够新的标准浏览器支持通过ID取得元素(firefox14+) - //http://tjvantoll.com/2012/07/19/dom-element-references-as-global-variables/ - var el = val && val.nodeType === 1 ? val : DOC.getElementById(val) - if (el) { - if (el.tagName === "NOSCRIPT" && !(el.innerHTML || el.fixIE78)) { //IE7-8 innerText,innerHTML都无法取得其内容,IE6能取得其innerHTML - xhr = getXHR() //IE9-11与chrome的innerHTML会得到转义的内容,它们的innerText可以 - xhr.open("GET", location, false) //谢谢Nodejs 乱炖群 深圳-纯属虚构 - xhr.send(null) - //http://bbs.csdn.net/topics/390349046?page=1#post-393492653 - var noscripts = DOC.getElementsByTagName("noscript") - var array = (xhr.responseText || "").match(rnoscripts) || [] - var n = array.length - for (var i = 0; i < n; i++) { - var tag = noscripts[i] - if (tag) { //IE6-8中noscript标签的innerHTML,innerText是只读的 - tag.style.display = "none" //http://haslayout.net/css/noscript-Ghost-Bug - tag.fixIE78 = (array[i].match(rnoscriptText) || ["", " "])[1] - } - } - } - avalon.nextTick(function() { - scanTemplate(el.fixIE78 || el.value || el.innerText || el.innerHTML) - }) - } - } - } else { - if (!root.hasAttribute && typeof val === "string" && (method === "src" || method === "href")) { - val = val.replace(/&/g, "&") //处理IE67自动转义的问题 - } - elem[method] = val - if (window.chrome && elem.tagName === "EMBED") { - var parent = elem.parentNode //#525 chrome1-37下embed标签动态设置src不能发生请求 - var comment = document.createComment("ms-src") - parent.replaceChild(comment, elem) - parent.replaceChild(elem, comment) - } - } -} - -function getTemplateNodes(data, id, text) { - var div = data.templateCache && data.templateCache[id] - if (div) { - var dom = DOC.createDocumentFragment(), - firstChild - while (firstChild = div.firstChild) { - dom.appendChild(firstChild) - } - return dom - } - return avalon.parseHTML(text) -} - -//这几个指令都可以使用插值表达式,如ms-src="aaa/{{b}}/{{c}}.html" -"title,alt,src,value,css,include,href".replace(rword, function(name) { - bindingHandlers[name] = bindingHandlers.attr -}) -//根据VM的属性值或表达式的值切换类名,ms-class="xxx yyy zzz:flag" -//http://www.cnblogs.com/rubylouvre/archive/2012/12/17/2818540.html -bindingHandlers["class"] = function(data, vmodels) { - var oldStyle = data.param, - text = data.value, - rightExpr - data.handlerName = "class" - if (!oldStyle || isFinite(oldStyle)) { - data.param = "" //去掉数字 - var noExpr = text.replace(rexprg, function(a) { - return a.replace(/./g, "0") - //return Math.pow(10, a.length - 1) //将插值表达式插入10的N-1次方来占位 - }) - var colonIndex = noExpr.indexOf(":") //取得第一个冒号的位置 - if (colonIndex === -1) { // 比如 ms-class="aaa bbb ccc" 的情况 - var className = text - } else { // 比如 ms-class-1="ui-state-active:checked" 的情况 - className = text.slice(0, colonIndex) - rightExpr = text.slice(colonIndex + 1) - parseExpr(rightExpr, vmodels, data) //决定是添加还是删除 - if (!data.evaluator) { - log("debug: ms-class '" + (rightExpr || "").trim() + "' 不存在于VM中") - return false - } else { - data._evaluator = data.evaluator - data._args = data.args - } - } - var hasExpr = rexpr.test(className) //比如ms-class="width{{w}}"的情况 - if (!hasExpr) { - data.immobileClass = className - } - parseExprProxy("", vmodels, data, (hasExpr ? scanExpr(className) : 0)) - } else { - data.immobileClass = data.oldStyle = data.param - parseExprProxy(text, vmodels, data) - } -} - -bindingExecutors["class"] = function(val, elem, data) { - var $elem = avalon(elem), - method = data.type - if (method === "class" && data.oldStyle) { //如果是旧风格 - $elem.toggleClass(data.oldStyle, !! val) - } else { - //如果存在冒号就有求值函数 - data.toggleClass = data._evaluator ? !! data._evaluator.apply(elem, data._args) : true - data.newClass = data.immobileClass || val - if (data.oldClass && data.newClass !== data.oldClass) { - $elem.removeClass(data.oldClass) - } - data.oldClass = data.newClass - switch (method) { - case "class": - $elem.toggleClass(data.newClass, data.toggleClass) - break - case "hover": - case "active": - if (!data.hasBindEvent) { //确保只绑定一次 - var activate = "mouseenter" //在移出移入时切换类名 - var abandon = "mouseleave" - if (method === "active") { //在聚焦失焦中切换类名 - elem.tabIndex = elem.tabIndex || -1 - activate = "mousedown" - abandon = "mouseup" - var fn0 = $elem.bind("mouseleave", function() { - data.toggleClass && $elem.removeClass(data.newClass) - }) - } - var fn1 = $elem.bind(activate, function() { - data.toggleClass && $elem.addClass(data.newClass) - }) - var fn2 = $elem.bind(abandon, function() { - data.toggleClass && $elem.removeClass(data.newClass) - }) - data.rollback = function() { - $elem.unbind("mouseleave", fn0) - $elem.unbind(activate, fn1) - $elem.unbind(abandon, fn2) - } - data.hasBindEvent = true - } - break; - } - } -} - -"hover,active".replace(rword, function(method) { - bindingHandlers[method] = bindingHandlers["class"] -}) -//ms-controller绑定已经在scanTag 方法中实现 -//ms-css绑定已由ms-attr绑定实现 - - -// bindingHandlers.data 定义在if.js -bindingExecutors.data = function(val, elem, data) { - var key = "data-" + data.param - if (val && typeof val === "object") { - elem[key] = val - } else { - elem.setAttribute(key, String(val)) - } -} -//双工绑定 -var duplexBinding = bindingHandlers.duplex = function(data, vmodels) { - var elem = data.element, - hasCast - parseExprProxy(data.value, vmodels, data, 0, 1) - - data.changed = getBindingCallback(elem, "data-duplex-changed", vmodels) || noop - if (data.evaluator && data.args) { - var params = [] - var casting = oneObject("string,number,boolean,checked") - if (elem.type === "radio" && data.param === "") { - data.param = "checked" - } - if (elem.msData) { - elem.msData["ms-duplex"] = data.value - } - data.param.replace(/\w+/g, function(name) { - if (/^(checkbox|radio)$/.test(elem.type) && /^(radio|checked)$/.test(name)) { - if (name === "radio") - log("ms-duplex-radio已经更名为ms-duplex-checked") - name = "checked" - data.isChecked = true - } - if (name === "bool") { - name = "boolean" - log("ms-duplex-bool已经更名为ms-duplex-boolean") - } else if (name === "text") { - name = "string" - log("ms-duplex-text已经更名为ms-duplex-string") - } - if (casting[name]) { - hasCast = true - } - avalon.Array.ensure(params, name) - }) - if (!hasCast) { - params.push("string") - } - data.param = params.join("-") - data.bound = function(type, callback) { - if (elem.addEventListener) { - elem.addEventListener(type, callback, false) - } else { - elem.attachEvent("on" + type, callback) - } - var old = data.rollback - data.rollback = function() { - elem.avalonSetter = null - avalon.unbind(elem, type, callback) - old && old() - } - } - for (var i in avalon.vmodels) { - var v = avalon.vmodels[i] - v.$fire("avalon-ms-duplex-init", data) - } - var cpipe = data.pipe || (data.pipe = pipe) - cpipe(null, data, "init") - var tagName = elem.tagName - duplexBinding[tagName] && duplexBinding[tagName](elem, data.evaluator.apply(null, data.args), data) - } -} -//不存在 bindingExecutors.duplex - - function fixNull(val) { - return val == null ? "" : val - } -avalon.duplexHooks = { - checked: { - get: function(val, data) { - return !data.element.oldValue - } - }, - string: { - get: function(val) { //同步到VM - return val - }, - set: fixNull - }, - "boolean": { - get: function(val) { - return val === "true" - }, - set: fixNull - }, - number: { - get: function(val, data) { - var number = parseFloat(val) - if (-val === -number) { - return number - } - var arr = /strong|medium|weak/.exec(data.element.getAttribute("data-duplex-number")) || ["medium"] - switch (arr[0]) { - case "strong": - return 0 - case "medium": - return val === "" ? "" : 0 - case "weak": - return val - } - }, - set: fixNull - } -} - -function pipe(val, data, action, e) { - data.param.replace(/\w+/g, function(name) { - var hook = avalon.duplexHooks[name] - if (hook && typeof hook[action] === "function") { - val = hook[action](val, data) - } - }) - return val -} - -var TimerID, ribbon = [] - - avalon.tick = function(fn) { - if (ribbon.push(fn) === 1) { - TimerID = setInterval(ticker, 60) - } - } - - function ticker() { - for (var n = ribbon.length - 1; n >= 0; n--) { - var el = ribbon[n] - if (el() === false) { - ribbon.splice(n, 1) - } - } - if (!ribbon.length) { - clearInterval(TimerID) - } - } - -var watchValueInTimer = noop -var rmsinput = /text|password|hidden/ -new function() { // jshint ignore:line - try { //#272 IE9-IE11, firefox - var setters = {} - var aproto = HTMLInputElement.prototype - var bproto = HTMLTextAreaElement.prototype - function newSetter(value) { // jshint ignore:line - setters[this.tagName].call(this, value) - if (rmsinput.test(this.type) && !this.msFocus && this.avalonSetter) { - this.avalonSetter() - } - } - var inputProto = HTMLInputElement.prototype - Object.getOwnPropertyNames(inputProto) //故意引发IE6-8等浏览器报错 - setters["INPUT"] = Object.getOwnPropertyDescriptor(aproto, "value").set - - Object.defineProperty(aproto, "value", { - set: newSetter - }) - setters["TEXTAREA"] = Object.getOwnPropertyDescriptor(bproto, "value").set - Object.defineProperty(bproto, "value", { - set: newSetter - }) - } catch (e) { - //在chrome 43中 ms-duplex终于不需要使用定时器实现双向绑定了 - // http://updates.html5rocks.com/2015/04/DOM-attributes-now-on-the-prototype - // https://docs.google.com/document/d/1jwA8mtClwxI-QJuHT7872Z0pxpZz8PBkf2bGAbsUtqs/edit?pli=1 - watchValueInTimer = avalon.tick - } -} // jshint ignore:line -if (IEVersion) { - avalon.bind(DOC, "selectionchange", function(e) { - var el = DOC.activeElement - if (el && typeof el.avalonSetter === "function") { - el.avalonSetter() - } - }) -} - -//处理radio, checkbox, text, textarea, password -duplexBinding.INPUT = function(element, evaluator, data) { - var $type = element.type, - bound = data.bound, - $elem = avalon(element), - composing = false - - function callback(value) { - data.changed.call(this, value, data) - } - - function compositionStart() { - composing = true - } - - function compositionEnd() { - composing = false - } - //当value变化时改变model的值 - var updateVModel = function() { - if (composing) //处理中文输入法在minlengh下引发的BUG - return - var val = element.oldValue = element.value //防止递归调用形成死循环 - var lastValue = data.pipe(val, data, "get") - if ($elem.data("duplexObserve") !== false) { - evaluator(lastValue) - callback.call(element, lastValue) - if ($elem.data("duplex-focus")) { - avalon.nextTick(function() { - element.focus() - }) - } - } - } - //当model变化时,它就会改变value的值 - data.handler = function() { - var val = data.pipe(evaluator(), data, "set") + "" //fix #673 - if (val !== element.oldValue) { - element.value = val - } - } - if (data.isChecked || $type === "radio") { - var IE6 = IEVersion === 6 - updateVModel = function() { - if ($elem.data("duplexObserve") !== false) { - var lastValue = data.pipe(element.value, data, "get") - evaluator(lastValue) - callback.call(element, lastValue) - } - } - data.handler = function() { - var val = evaluator() - var checked = data.isChecked ? !! val : val + "" === element.value - element.oldValue = checked - if (IE6) { - setTimeout(function() { - //IE8 checkbox, radio是使用defaultChecked控制选中状态, - //并且要先设置defaultChecked后设置checked - //并且必须设置延迟 - element.defaultChecked = checked - element.checked = checked - }, 31) - } else { - element.checked = checked - } - } - bound("click", updateVModel) - } else if ($type === "checkbox") { - updateVModel = function() { - if ($elem.data("duplexObserve") !== false) { - var method = element.checked ? "ensure" : "remove" - var array = evaluator() - if (!Array.isArray(array)) { - log("ms-duplex应用于checkbox上要对应一个数组") - array = [array] - } - var val = data.pipe(element.value, data, "get") - avalon.Array[method](array, val) - callback.call(element, array) - } - } - - data.handler = function() { - var array = [].concat(evaluator()) //强制转换为数组 - var val = data.pipe(element.value, data, "get") - element.checked = array.indexOf(val) > -1 - } - bound(W3C ? "change" : "click", updateVModel) - } else { - var events = element.getAttribute("data-duplex-event") || "input" - if (element.attributes["data-event"]) { - log("data-event指令已经废弃,请改用data-duplex-event") - } - - function delay(e) { // jshint ignore:line - setTimeout(function() { - updateVModel(e) - }) - } - events.replace(rword, function(name) { - switch (name) { - case "input": - if (!IEVersion) { // W3C - bound("input", updateVModel) - //非IE浏览器才用这个 - bound("compositionstart", compositionStart) - bound("compositionend", compositionEnd) - bound("DOMAutoComplete", updateVModel) - } else { //onpropertychange事件无法区分是程序触发还是用户触发 - // IE下通过selectionchange事件监听IE9+点击input右边的X的清空行为,及粘贴,剪切,删除行为 - if (IEVersion > 8) { - bound("input", updateVModel) //IE9使用propertychange无法监听中文输入改动 - } else { - bound("propertychange", function(e) { //IE6-8下第一次修改时不会触发,需要使用keydown或selectionchange修正 - if (e.propertyName === "value") { - updateVModel() - } - }) - } - bound("dragend", delay) - //http://www.cnblogs.com/rubylouvre/archive/2013/02/17/2914604.html - //http://www.matts411.com/post/internet-explorer-9-oninput/ - } - break - default: - bound(name, updateVModel) - break - } - }) - bound("focus", function() { - element.msFocus = true - }) - bound("blur", function() { - element.msFocus = false - }) - - if (rmsinput.test($type)) { - watchValueInTimer(function() { - if (root.contains(element)) { - if (!element.msFocus && element.oldValue !== element.value) { - updateVModel() - } - } else if (!element.msRetain) { - return false - } - }) - } - - element.avalonSetter = updateVModel //#765 - } - - element.oldValue = element.value - avalon.injectBinding(data) - callback.call(element, element.value) -} -duplexBinding.TEXTAREA = duplexBinding.INPUT -duplexBinding.SELECT = function(element, evaluator, data) { - var $elem = avalon(element) - - function updateVModel() { - if ($elem.data("duplexObserve") !== false) { - var val = $elem.val() //字符串或字符串数组 - if (Array.isArray(val)) { - val = val.map(function(v) { - return data.pipe(v, data, "get") - }) - } else { - val = data.pipe(val, data, "get") - } - if (val + "" !== element.oldValue) { - evaluator(val) - } - data.changed.call(element, val, data) - } - } - data.handler = function() { - var val = evaluator() - val = val && val.$model || val - if (Array.isArray(val)) { - if (!element.multiple) { - log("ms-duplex在不能对应一个数组") - } - } - //必须变成字符串后才能比较 - val = Array.isArray(val) ? val.map(String) : val + "" - if (val + "" !== element.oldValue) { - $elem.val(val) - element.oldValue = val + "" - } - } - data.bound("change", updateVModel) - element.msCallback = function() { - avalon.injectBinding(data) - data.changed.call(element, evaluator(), data) - } -} -// bindingHandlers.html 定义在if.js -bindingExecutors.html = function (val, elem, data) { - var isHtmlFilter = elem.nodeType !== 1 - var parent = isHtmlFilter ? elem.parentNode : elem - if (!parent) - return - val = val == null ? "" : val - if (data.oldText !== val) { - data.oldText = val - } else { - return - } - if (elem.nodeType === 3) { - var signature = generateID("html") - parent.insertBefore(DOC.createComment(signature), elem) - data.element = DOC.createComment(signature + ":end") - parent.replaceChild(data.element, elem) - elem = data.element - } - if (typeof val !== "object") {//string, number, boolean - var fragment = avalon.parseHTML(String(val)) - } else if (val.nodeType === 11) { //将val转换为文档碎片 - fragment = val - } else if (val.nodeType === 1 || val.item) { - var nodes = val.nodeType === 1 ? val.childNodes : val.item - fragment = avalonFragment.cloneNode(true) - while (nodes[0]) { - fragment.appendChild(nodes[0]) - } - } - - nodes = avalon.slice(fragment.childNodes) - //插入占位符, 如果是过滤器,需要有节制地移除指定的数量,如果是html指令,直接清空 - if (isHtmlFilter) { - var endValue = elem.nodeValue.slice(0, -4) - while (true) { - var node = elem.previousSibling - if (!node || node.nodeType === 8 && node.nodeValue === endValue) { - break - } else { - parent.removeChild(node) - } - } - parent.insertBefore(fragment, elem) - } else { - avalon.clearHTML(elem).appendChild(fragment) - } - scanNodeArray(nodes, data.vmodels) -} -bindingHandlers["if"] = - bindingHandlers.data = - bindingHandlers.text = - bindingHandlers.html = - function(data, vmodels) { - parseExprProxy(data.value, vmodels, data) -} - -bindingExecutors["if"] = function(val, elem, data) { - try { - if(!elem.parentNode) return - } catch(e) {return} - if (val) { //插回DOM树 - if (elem.nodeType === 8) { - elem.parentNode.replaceChild(data.template, elem) - // animate.enter(data.template, elem.parentNode) - elem = data.element = data.template //这时可能为null - } - if (elem.getAttribute(data.name)) { - elem.removeAttribute(data.name) - scanAttr(elem, data.vmodels) - } - data.rollback = null - } else { //移出DOM树,并用注释节点占据原位置 - if (elem.nodeType === 1) { - var node = data.element = DOC.createComment("ms-if") - elem.parentNode.replaceChild(node, elem) - // animate.leave(elem, node.parentNode, node) - data.template = elem //元素节点 - ifGroup.appendChild(elem) - data.rollback = function() { - if (elem.parentNode === ifGroup) { - ifGroup.removeChild(elem) - } - } - } - } -} -//ms-important绑定已经在scanTag 方法中实现 -//ms-include绑定已由ms-attr绑定实现 - -var rdash = /\(([^)]*)\)/ -bindingHandlers.on = function(data, vmodels) { - var value = data.value - data.type = "on" - var eventType = data.param.replace(/-\d+$/, "") // ms-on-mousemove-10 - if (typeof bindingHandlers.on[eventType + "Hook"] === "function") { - bindingHandlers.on[eventType + "Hook"](data) - } - if (value.indexOf("(") > 0 && value.indexOf(")") > -1) { - var matched = (value.match(rdash) || ["", ""])[1].trim() - if (matched === "" || matched === "$event") { // aaa() aaa($event)当成aaa处理 - value = value.replace(rdash, "") - } - } - parseExprProxy(value, vmodels, data) -} - -bindingExecutors.on = function(callback, elem, data) { - callback = function(e) { - var fn = data.evaluator || noop - return fn.apply(this, data.args.concat(e)) - } - var eventType = data.param.replace(/-\d+$/, "") // ms-on-mousemove-10 - if (eventType === "scan") { - callback.call(elem, { - type: eventType - }) - } else if (typeof data.specialBind === "function") { - data.specialBind(elem, callback) - } else { - var removeFn = avalon.bind(elem, eventType, callback) - } - data.rollback = function() { - if (typeof data.specialUnbind === "function") { - data.specialUnbind() - } else { - avalon.unbind(elem, eventType, removeFn) - } - } -} -bindingHandlers.repeat = function (data, vmodels) { - var type = data.type - parseExprProxy(data.value, vmodels, data, 0, 1) - data.proxies = [] - var freturn = false - try { - var $repeat = data.$repeat = data.evaluator.apply(0, data.args || []) - var xtype = avalon.type($repeat) - if (xtype !== "object" && xtype !== "array") { - freturn = true - avalon.log("warning:" + data.value + "只能是对象或数组") - } - } catch (e) { - freturn = true - } - var arr = data.value.split(".") || [] - if (arr.length > 1) { - arr.pop() - var n = arr[0] - for (var i = 0, v; v = vmodels[i++]; ) { - if (v && v.hasOwnProperty(n)) { - var events = v[n].$events || {} - events[subscribers] = events[subscribers] || [] - events[subscribers].push(data) - break - } - } - } - - var elem = data.element - if (elem.nodeType === 1) { - elem.removeAttribute(data.name) - data.sortedCallback = getBindingCallback(elem, "data-with-sorted", vmodels) - data.renderedCallback = getBindingCallback(elem, "data-" + type + "-rendered", vmodels) - var signature = generateID(type) - var start = DOC.createComment(signature) - var end = DOC.createComment(signature + ":end") - data.signature = signature - data.template = avalonFragment.cloneNode(false) - if (type === "repeat") { - var parent = elem.parentNode - parent.replaceChild(end, elem) - parent.insertBefore(start, end) - data.template.appendChild(elem) - } else { - while (elem.firstChild) { - data.template.appendChild(elem.firstChild) - } - elem.appendChild(start) - elem.appendChild(end) - } - data.element = end - data.handler = bindingExecutors.repeat - data.rollback = function () { - var elem = data.element - if (!elem) - return - data.handler("clear") - } - } - - if (freturn) { - return - } - - data.$outer = {} - var check0 = "$key" - var check1 = "$val" - if (Array.isArray($repeat)) { - check0 = "$first" - check1 = "$last" - } - - for (i = 0; v = vmodels[i++]; ) { - if (v.hasOwnProperty(check0) && v.hasOwnProperty(check1)) { - data.$outer = v - break - } - } - var $events = $repeat.$events - var $list = ($events || {})[subscribers] - injectDependency($list, data) - if (xtype === "object") { - data.$with = true - $repeat.$proxy || ($repeat.$proxy = {}) - data.handler("append", $repeat) - } else if ($repeat.length) { - data.handler("add", 0, $repeat.length) - } -} - -bindingExecutors.repeat = function (method, pos, el) { - if (!method && this.$with) { - method = "append" - var flag = "update" - } - if (method) { - var data = this, start, fragment - var end = data.element - var comments = getComments(data) - var parent = end.parentNode - var proxies = data.proxies - var transation = avalonFragment.cloneNode(false) - switch (method) { - case "add": //在pos位置后添加el数组(pos为插入位置,el为要插入的个数) - var n = pos + el - var fragments = [] - for (var i = pos; i < n; i++) { - var proxy = eachProxyAgent(i, data) - proxies.splice(i, 0, proxy) - shimController(data, transation, proxy, fragments) - } - var now = new Date() - 0 - avalon.optimize = avalon.optimize || now - for (i = 0; fragment = fragments[i++]; ) { - scanNodeArray(fragment.nodes, fragment.vmodels) - fragment.nodes = fragment.vmodels = null - } - if (avalon.optimize === now) { - avalon.optimize = null - } - parent.insertBefore(transation, comments[pos] || end) - avalon.profile("插入操作花费了 " + (new Date - now)) - break - case "del": //将pos后的el个元素删掉(pos, el都是数字) - sweepNodes(comments[pos], comments[pos + el] || end) - var removed = proxies.splice(pos, el) - recycleProxies(removed, "each") - break - case "clear": - start = comments[0] - if (start) { - sweepNodes(start, end) - if (data.$with) { - parent.insertBefore(start, end) - } - } - recycleProxies(proxies, "each") - break - case "move": - start = comments[0] - if (start) { - var signature = start.nodeValue - var rooms = [] - var room = [], - node - sweepNodes(start, end, function () { - room.unshift(this) - if (this.nodeValue === signature) { - rooms.unshift(room) - room = [] - } - }) - sortByIndex(rooms, pos) - sortByIndex(proxies, pos) - while (room = rooms.shift()) { - while (node = room.shift()) { - transation.appendChild(node) - } - } - parent.insertBefore(transation, end) - } - break - case "index": //将proxies中的第pos个起的所有元素重新索引 - var last = proxies.length - 1 - for (; el = proxies[pos]; pos++) { - el.$index = pos - el.$first = pos === 0 - el.$last = pos === last - } - return - case "set": //将proxies中的第pos个元素的VM设置为el(pos为数字,el任意) - proxy = proxies[pos] - if (proxy) { - fireDependencies(proxy.$events[data.param || "el"]) - } - break - case "append": - var object = data.$repeat //原来第2参数, 被循环对象 - var oldProxy = object.$proxy //代理对象组成的hash - var keys = [] - now = new Date() - 0 - avalon.optimize = avalon.optimize || now - if (flag === "update") { - if (!data.evaluator) { - parseExprProxy(data.value, data.vmodels, data, 0, 1) - } - object = data.$repeat = data.evaluator.apply(0, data.args || []) - object.$proxy = oldProxy - } - var pool = object.$proxy || {} - removed = [] - var nodes = data.element.parentNode.childNodes - var add = false - for (i = 0; node = nodes[i++]; ) { - if (node.nodeValue === data.signature) { - add = true - } else if (node.nodeValue === data.signature + ":end") { - add = false - } - if (add) { - removed.push(node) - } - } - - var indexNode = [], item - var keyIndex = data.keyIndex || (data.keyIndex = {}) - //将现有的节点全部移出DOM树 - for ( i = 0; i < removed.length; i++) { - el = removed[i] - if (el.nodeValue === data.signature) { - item = avalonFragment.cloneNode(false) - indexNode.push(item) - } - item.appendChild(el) - } - - - for (var key in object) { //当前对象的所有键名 - if (object.hasOwnProperty(key) && key !== "hasOwnProperty" && key !== "$proxy") { - keys.push(key) - } - } - - for (var i = 0; key = keys[i++]; ) { - if (!pool.hasOwnProperty(key)) {//添加缺失的代理VM - pool[key] = withProxyAgent(pool[key], key, data) - } else { - pool[key].$val = object[key] - } - } - - for ( key in pool) { - if (keys.indexOf(key) === -1) {//删除没用的代理VM - proxyRecycler(pool[key], withProxyPool) //去掉之前的代理VM - delete pool[key] - } - } - var fragments = [] - var renderKeys = keys //需要渲染到DOM树去的键名 - var end = data.element - if (data.sortedCallback) { //如果有回调,则让它们排序 - var keys2 = data.sortedCallback.call(parent, keys) - if (keys2 && Array.isArray(keys2)) { - renderKeys = keys2 - } - } - - for (i = 0; i < renderKeys.length; i++) { - key = renderKeys[i] - if (typeof keyIndex[key] === "number") { - transation.appendChild(indexNode[keyIndex[key]]) - fragments.push({}) - } else { - shimController(data, transation, pool[key], fragments) - } - } - - for (i = 0; i < renderKeys.length; i++) { - keyIndex[renderKeys[i]] = i - } - - for (i = 0; fragment = fragments[i++]; ) { - if (fragment.nodes) { - scanNodeArray(fragment.nodes, fragment.vmodels) - fragment.nodes = fragment.vmodels = null - } - } - if (avalon.optimize === now) { - avalon.optimize = null - } - parent.insertBefore(transation, end) - avalon.profile("插入操作花费了 " + (new Date - now)) - break - } - if (!data.$repeat || data.$repeat.hasOwnProperty("$lock")) //IE6-8 VBScript对象会报错, 有时候data.$repeat不存在 - return - if (method === "clear") - method = "del" - var callback = data.renderedCallback || noop, - args = arguments - if (parent.oldValue && parent.tagName === "SELECT") { //fix #503 - avalon(parent).val(parent.oldValue.split(",")) - } - callback.apply(parent, args) - } -} -"with,each".replace(rword, function (name) { - bindingHandlers[name] = bindingHandlers.repeat -}) - -function shimController(data, transation, proxy, fragments) { - var content = data.template.cloneNode(true) - var nodes = avalon.slice(content.childNodes) - content.insertBefore(DOC.createComment(data.signature), content.firstChild) - transation.appendChild(content) - var nv = [proxy].concat(data.vmodels) - var fragment = { - nodes: nodes, - vmodels: nv - } - fragments.push(fragment) -} - -function getComments(data) { - var ret = [] - var nodes = data.element.parentNode.childNodes - for(var i= 0, node; node = nodes[i++];){ - if(node.nodeValue === data.signature){ - ret.push( node ) - }else if(node.nodeValue === data.signature+":end"){ - break - } - } - return ret -} - - -//移除掉start与end之间的节点(保留end) -function sweepNodes(start, end, callback) { - while (true) { - var node = end.previousSibling - if (!node) - break - node.parentNode.removeChild(node) - callback && callback.call(node) - if (node === start) { - break - } - } -} - -// 为ms-each,ms-with, ms-repeat会创建一个代理VM, -// 通过它们保持一个下上文,让用户能调用$index,$first,$last,$remove,$key,$val,$outer等属性与方法 -// 所有代理VM的产生,消费,收集,存放通过xxxProxyFactory,xxxProxyAgent, recycleProxies,xxxProxyPool实现 -var withProxyPool = [] -function withProxyFactory() { - var proxy = modelFactory({ - $key: "", - $outer: {}, - $host: {}, - $val: { - get: function () { - return this.$host[this.$key] - }, - set: function (val) { - this.$host[this.$key] = val - } - } - }, { - $val: 1 - }) - proxy.$id = generateID("$proxy$with") - return proxy -} - -function withProxyAgent(proxy, key, data) { - proxy = proxy || withProxyPool.pop() - if (!proxy) { - proxy = withProxyFactory() - } else { - proxy.$reinitialize() - } - var host = data.$repeat - proxy.$key = key - proxy.$host = host - proxy.$outer = data.$outer - if (host.$events) { - proxy.$events.$val = host.$events[key] - } else { - proxy.$events = {} - } - return proxy -} - - -function recycleProxies(proxies) { - eachProxyRecycler(proxies) -} -function eachProxyRecycler(proxies) { - proxies.forEach(function (proxy) { - proxyRecycler(proxy, eachProxyPool) - }) - proxies.length = 0 -} - - -var eachProxyPool = [] -function eachProxyFactory(name) { - var source = { - $host: [], - $outer: {}, - $index: 0, - $first: false, - $last: false, - $remove: avalon.noop - } - source[name] = { - get: function () { - var e = this.$events - var array = e.$index - e.$index = e[name] //#817 通过$index为el收集依赖 - try { - return this.$host[this.$index] - } finally { - e.$index = array - } - }, - set: function (val) { - try { - var e = this.$events - var array = e.$index - e.$index = [] - this.$host.set(this.$index, val) - } finally { - e.$index = array - } - } - } - var second = { - $last: 1, - $first: 1, - $index: 1 - } - var proxy = modelFactory(source, second) - proxy.$id = generateID("$proxy$each") - return proxy -} - -function eachProxyAgent(index, data) { - var param = data.param || "el", - proxy - for (var i = 0, n = eachProxyPool.length; i < n; i++) { - var candidate = eachProxyPool[i] - if (candidate && candidate.hasOwnProperty(param)) { - proxy = candidate - eachProxyPool.splice(i, 1) - } - } - if (!proxy) { - proxy = eachProxyFactory(param) - } - var host = data.$repeat - var last = host.length - 1 - proxy.$index = index - proxy.$first = index === 0 - proxy.$last = index === last - proxy.$host = host - proxy.$outer = data.$outer - proxy.$remove = function () { - return host.removeAt(proxy.$index) - } - return proxy -} - - -function proxyRecycler(proxy, proxyPool) { - for (var i in proxy.$events) { - if (Array.isArray(proxy.$events[i])) { - proxy.$events[i].forEach(function (data) { - if (typeof data === "object") - disposeData(data) - })// jshint ignore:line - proxy.$events[i].length = 0 - } - } - proxy.$host = proxy.$outer = {} - if (proxyPool.unshift(proxy) > kernel.maxRepeatSize) { - proxyPool.pop() - } -} -/********************************************************************* - * 各种指令 * - **********************************************************************/ -//ms-skip绑定已经在scanTag 方法中实现 -// bindingHandlers.text 定义在if.js -bindingExecutors.text = function(val, elem) { - val = val == null ? "" : val //不在页面上显示undefined null - if (elem.nodeType === 3) { //绑定在文本节点上 - try { //IE对游离于DOM树外的节点赋值会报错 - elem.data = val - } catch (e) {} - } else { //绑定在特性节点上 - if ("textContent" in elem) { - elem.textContent = val - } else { - elem.innerText = val - } - } -} -function parseDisplay(nodeName, val) { - //用于取得此类标签的默认display值 - var key = "_" + nodeName - if (!parseDisplay[key]) { - var node = DOC.createElement(nodeName) - root.appendChild(node) - if (W3C) { - val = getComputedStyle(node, null).display - } else { - val = node.currentStyle.display - } - root.removeChild(node) - parseDisplay[key] = val - } - return parseDisplay[key] -} - -avalon.parseDisplay = parseDisplay - -bindingHandlers.visible = function(data, vmodels) { - var elem = data.element - var display = elem.style.display - if(display === "none"){ - display = parseDisplay(elem.nodeName) - } - data.display = display - parseExprProxy(data.value, vmodels, data) -} - -bindingExecutors.visible = function(val, elem, data) { - elem.style.display = val ? data.display : "none" -} -bindingHandlers.widget = function(data, vmodels) { - var args = data.value.match(rword) - var elem = data.element - var widget = args[0] - var id = args[1] - if (!id || id === "$") { //没有定义或为$时,取组件名+随机数 - id = generateID(widget) - } - var optName = args[2] || widget //没有定义,取组件名 - var constructor = avalon.ui[widget] - if (typeof constructor === "function") { //ms-widget="tabs,tabsAAA,optname" - vmodels = elem.vmodels || vmodels - for (var i = 0, v; v = vmodels[i++];) { - if (v.hasOwnProperty(optName) && typeof v[optName] === "object") { - var vmOptions = v[optName] - vmOptions = vmOptions.$model || vmOptions - break - } - } - if (vmOptions) { - var wid = vmOptions[widget + "Id"] - if (typeof wid === "string") { - log("warning!不再支持" + widget + "Id") - id = wid - } - } - //抽取data-tooltip-text、data-tooltip-attr属性,组成一个配置对象 - var widgetData = avalon.getWidgetData(elem, widget) - data.value = [widget, id, optName].join(",") - data[widget + "Id"] = id - data.evaluator = noop - elem.msData["ms-widget-id"] = id - var options = data[widget + "Options"] = avalon.mix({}, constructor.defaults, vmOptions || {}, widgetData) - elem.removeAttribute("ms-widget") - var vmodel = constructor(elem, data, vmodels) || {} //防止组件不返回VM - if (vmodel.$id) { - avalon.vmodels[id] = vmodel - createSignalTower(elem, vmodel) - try { - vmodel.$init(function() { - avalon.scan(elem, [vmodel].concat(vmodels)) - if (typeof options.onInit === "function") { - options.onInit.call(elem, vmodel, options, vmodels) - } - }) - } catch (e) {} - data.rollback = function() { - try { - vmodel.widgetElement = null - vmodel.$remove() - } catch (e) {} - elem.msData = {} - delete avalon.vmodels[vmodel.$id] - } - injectDisposeQueue(data, widgetList) - if (window.chrome) { - elem.addEventListener("DOMNodeRemovedFromDocument", function() { - setTimeout(rejectDisposeQueue) - }) - } - } else { - avalon.scan(elem, vmodels) - } - } else if (vmodels.length) { //如果该组件还没有加载,那么保存当前的vmodels - elem.vmodels = vmodels - } -} -var widgetList = [] -//不存在 bindingExecutors.widget -/********************************************************************* - * 自带过滤器 * - **********************************************************************/ -var rscripts = /]*>([\S\s]*?)<\/script\s*>/gim -var ron = /\s+(on[^=\s]+)(?:=("[^"]*"|'[^']*'|[^\s>]+))?/g -var ropen = /<\w+\b(?:(["'])[^"]*?(\1)|[^>])*>/ig -var rsanitize = { - a: /\b(href)\=("javascript[^"]*"|'javascript[^']*')/ig, - img: /\b(src)\=("javascript[^"]*"|'javascript[^']*')/ig, - form: /\b(action)\=("javascript[^"]*"|'javascript[^']*')/ig -} -var rsurrogate = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g -var rnoalphanumeric = /([^\#-~| |!])/g; - -function numberFormat(number, decimals, point, thousands) { - //form http://phpjs.org/functions/number_format/ - //number 必需,要格式化的数字 - //decimals 可选,规定多少个小数位。 - //point 可选,规定用作小数点的字符串(默认为 . )。 - //thousands 可选,规定用作千位分隔符的字符串(默认为 , ),如果设置了该参数,那么所有其他参数都是必需的。 - number = (number + '') - .replace(/[^0-9+\-Ee.]/g, '') - var n = !isFinite(+number) ? 0 : +number, - prec = !isFinite(+decimals) ? 3 : Math.abs(decimals), - sep = thousands || ",", - dec = point || ".", - s = '', - toFixedFix = function(n, prec) { - var k = Math.pow(10, prec) - return '' + (Math.round(n * k) / k) - .toFixed(prec) - } - // Fix for IE parseFloat(0.55).toFixed(0) = 0; - s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)) - .split('.') - if (s[0].length > 3) { - s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep) - } - if ((s[1] || '') - .length < prec) { - s[1] = s[1] || '' - s[1] += new Array(prec - s[1].length + 1) - .join('0') - } - return s.join(dec) -} - - -var filters = avalon.filters = { - uppercase: function(str) { - return str.toUpperCase() - }, - lowercase: function(str) { - return str.toLowerCase() - }, - truncate: function(str, length, truncation) { - //length,新字符串长度,truncation,新字符串的结尾的字段,返回新字符串 - length = length || 30 - truncation = typeof truncation === "string" ? truncation : "..." - return str.length > length ? str.slice(0, length - truncation.length) + truncation : String(str) - }, - $filter: function(val) { - for (var i = 1, n = arguments.length; i < n; i++) { - var array = arguments[i] - var fn = avalon.filters[array.shift()] - if (typeof fn === "function") { - var arr = [val].concat(array) - val = fn.apply(null, arr) - } - } - return val - }, - camelize: camelize, - //https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet - // chrome - // chrome - // IE67chrome - // IE67chrome - // IE67chrome - sanitize: function(str) { - return str.replace(rscripts, "").replace(ropen, function(a, b) { - var match = a.toLowerCase().match(/<(\w+)\s/) - if (match) { //处理a标签的href属性,img标签的src属性,form标签的action属性 - var reg = rsanitize[match[1]] - if (reg) { - a = a.replace(reg, function(s, name, value) { - var quote = value.charAt(0) - return name + "=" + quote + "javascript:void(0)" + quote// jshint ignore:line - }) - } - } - return a.replace(ron, " ").replace(/\s+/g, " ") //移除onXXX事件 - }) - }, - escape: function(str) { - //将字符串经过 str 转义得到适合在页面中显示的内容, 例如替换 < 为 < - return String(str). - replace(/&/g, '&'). - replace(rsurrogate, function(value) { - var hi = value.charCodeAt(0) - var low = value.charCodeAt(1) - return '&#' + (((hi - 0xD800) * 0x400) + (low - 0xDC00) + 0x10000) + ';' - }). - replace(rnoalphanumeric, function(value) { - return '&#' + value.charCodeAt(0) + ';' - }). - replace(//g, '>') - }, - currency: function(amount, symbol, fractionSize) { - return (symbol || "\uFFE5") + numberFormat(amount, isFinite(fractionSize) ? fractionSize : 2) - }, - number: numberFormat -} -/* - 'yyyy': 4 digit representation of year (e.g. AD 1 => 0001, AD 2010 => 2010) - 'yy': 2 digit representation of year, padded (00-99). (e.g. AD 2001 => 01, AD 2010 => 10) - 'y': 1 digit representation of year, e.g. (AD 1 => 1, AD 199 => 199) - 'MMMM': Month in year (January-December) - 'MMM': Month in year (Jan-Dec) - 'MM': Month in year, padded (01-12) - 'M': Month in year (1-12) - 'dd': Day in month, padded (01-31) - 'd': Day in month (1-31) - 'EEEE': Day in Week,(Sunday-Saturday) - 'EEE': Day in Week, (Sun-Sat) - 'HH': Hour in day, padded (00-23) - 'H': Hour in day (0-23) - 'hh': Hour in am/pm, padded (01-12) - 'h': Hour in am/pm, (1-12) - 'mm': Minute in hour, padded (00-59) - 'm': Minute in hour (0-59) - 'ss': Second in minute, padded (00-59) - 's': Second in minute (0-59) - 'a': am/pm marker - 'Z': 4 digit (+sign) representation of the timezone offset (-1200-+1200) - format string can also be one of the following predefined localizable formats: - - 'medium': equivalent to 'MMM d, y h:mm:ss a' for en_US locale (e.g. Sep 3, 2010 12:05:08 pm) - 'short': equivalent to 'M/d/yy h:mm a' for en_US locale (e.g. 9/3/10 12:05 pm) - 'fullDate': equivalent to 'EEEE, MMMM d,y' for en_US locale (e.g. Friday, September 3, 2010) - 'longDate': equivalent to 'MMMM d, y' for en_US locale (e.g. September 3, 2010 - 'mediumDate': equivalent to 'MMM d, y' for en_US locale (e.g. Sep 3, 2010) - 'shortDate': equivalent to 'M/d/yy' for en_US locale (e.g. 9/3/10) - 'mediumTime': equivalent to 'h:mm:ss a' for en_US locale (e.g. 12:05:08 pm) - 'shortTime': equivalent to 'h:mm a' for en_US locale (e.g. 12:05 pm) - */ -new function() {// jshint ignore:line - function toInt(str) { - return parseInt(str, 10) || 0 - } - - function padNumber(num, digits, trim) { - var neg = "" - if (num < 0) { - neg = '-' - num = -num - } - num = "" + num - while (num.length < digits) - num = "0" + num - if (trim) - num = num.substr(num.length - digits) - return neg + num - } - - function dateGetter(name, size, offset, trim) { - return function(date) { - var value = date["get" + name]() - if (offset > 0 || value > -offset) - value += offset - if (value === 0 && offset === -12) { - value = 12 - } - return padNumber(value, size, trim) - } - } - - function dateStrGetter(name, shortForm) { - return function(date, formats) { - var value = date["get" + name]() - var get = (shortForm ? ("SHORT" + name) : name).toUpperCase() - return formats[get][value] - } - } - - function timeZoneGetter(date) { - var zone = -1 * date.getTimezoneOffset() - var paddedZone = (zone >= 0) ? "+" : "" - paddedZone += padNumber(Math[zone > 0 ? "floor" : "ceil"](zone / 60), 2) + padNumber(Math.abs(zone % 60), 2) - return paddedZone - } - //取得上午下午 - - function ampmGetter(date, formats) { - return date.getHours() < 12 ? formats.AMPMS[0] : formats.AMPMS[1] - } - var DATE_FORMATS = { - yyyy: dateGetter("FullYear", 4), - yy: dateGetter("FullYear", 2, 0, true), - y: dateGetter("FullYear", 1), - MMMM: dateStrGetter("Month"), - MMM: dateStrGetter("Month", true), - MM: dateGetter("Month", 2, 1), - M: dateGetter("Month", 1, 1), - dd: dateGetter("Date", 2), - d: dateGetter("Date", 1), - HH: dateGetter("Hours", 2), - H: dateGetter("Hours", 1), - hh: dateGetter("Hours", 2, -12), - h: dateGetter("Hours", 1, -12), - mm: dateGetter("Minutes", 2), - m: dateGetter("Minutes", 1), - ss: dateGetter("Seconds", 2), - s: dateGetter("Seconds", 1), - sss: dateGetter("Milliseconds", 3), - EEEE: dateStrGetter("Day"), - EEE: dateStrGetter("Day", true), - a: ampmGetter, - Z: timeZoneGetter - } - var rdateFormat = /((?:[^yMdHhmsaZE']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z))(.*)/ - var raspnetjson = /^\/Date\((\d+)\)\/$/ - filters.date = function(date, format) { - var locate = filters.date.locate, - text = "", - parts = [], - fn, match - format = format || "mediumDate" - format = locate[format] || format - if (typeof date === "string") { - if (/^\d+$/.test(date)) { - date = toInt(date) - } else if (raspnetjson.test(date)) { - date = +RegExp.$1 - } else { - var trimDate = date.trim() - var dateArray = [0, 0, 0, 0, 0, 0, 0] - var oDate = new Date(0) - //取得年月日 - trimDate = trimDate.replace(/^(\d+)\D(\d+)\D(\d+)/, function(_, a, b, c) { - var array = c.length === 4 ? [c, a, b] : [a, b, c] - dateArray[0] = toInt(array[0]) //å¹´ - dateArray[1] = toInt(array[1]) - 1 //月 - dateArray[2] = toInt(array[2]) //日 - return "" - }) - var dateSetter = oDate.setFullYear - var timeSetter = oDate.setHours - trimDate = trimDate.replace(/[T\s](\d+):(\d+):?(\d+)?\.?(\d)?/, function(_, a, b, c, d) { - dateArray[3] = toInt(a) //小时 - dateArray[4] = toInt(b) //分钟 - dateArray[5] = toInt(c) //秒 - if (d) { //毫秒 - dateArray[6] = Math.round(parseFloat("0." + d) * 1000) - } - return "" - }) - var tzHour = 0 - var tzMin = 0 - trimDate = trimDate.replace(/Z|([+-])(\d\d):?(\d\d)/, function(z, symbol, c, d) { - dateSetter = oDate.setUTCFullYear - timeSetter = oDate.setUTCHours - if (symbol) { - tzHour = toInt(symbol + c) - tzMin = toInt(symbol + d) - } - return "" - }) - - dateArray[3] -= tzHour - dateArray[4] -= tzMin - dateSetter.apply(oDate, dateArray.slice(0, 3)) - timeSetter.apply(oDate, dateArray.slice(3)) - date = oDate - } - } - if (typeof date === "number") { - date = new Date(date) - } - if (avalon.type(date) !== "date") { - return - } - while (format) { - match = rdateFormat.exec(format) - if (match) { - parts = parts.concat(match.slice(1)) - format = parts.pop() - } else { - parts.push(format) - format = null - } - } - parts.forEach(function(value) { - fn = DATE_FORMATS[value] - text += fn ? fn(date, locate) : value.replace(/(^'|'$)/g, "").replace(/''/g, "'") - }) - return text - } - var locate = { - AMPMS: { - 0: "上午", - 1: "下午" - }, - DAY: { - 0: "星期日", - 1: "星期一", - 2: "星期二", - 3: "星期三", - 4: "星期四", - 5: "星期五", - 6: "星期六" - }, - MONTH: { - 0: "1月", - 1: "2月", - 2: "3月", - 3: "4月", - 4: "5月", - 5: "6月", - 6: "7月", - 7: "8月", - 8: "9月", - 9: "10月", - 10: "11月", - 11: "12月" - }, - SHORTDAY: { - "0": "周日", - "1": "周一", - "2": "周二", - "3": "周三", - "4": "周四", - "5": "周五", - "6": "周六" - }, - fullDate: "yå¹´M月d日EEEE", - longDate: "yå¹´M月d日", - medium: "yyyy-M-d H:mm:ss", - mediumDate: "yyyy-M-d", - mediumTime: "H:mm:ss", - "short": "yy-M-d ah:mm", - shortDate: "yy-M-d", - shortTime: "ah:mm" - } - locate.SHORTMONTH = locate.MONTH - filters.date.locate = locate -}// jshint ignore:line -/********************************************************************* - * AMD加载器 * - **********************************************************************/ -//https://www.devbridge.com/articles/understanding-amd-requirejs/ -//http://maxogden.com/nested-dependencies.html -var modules = avalon.modules = { - "domReady!": { - exports: avalon, - state: 3 - }, - "avalon": { - exports: avalon, - state: 4 - } -} -//Object(modules[id]).state拥有如下值 -// undefined 没有定义 -// 1(send) 已经发出请求 -// 2(loading) 已经被执行但还没有执行完成,在这个阶段define方法会被执行 -// 3(loaded) 执行完毕,通过onload/onreadystatechange回调判定,在这个阶段checkDeps方法会执行 -// 4(execute) 其依赖也执行完毕, 值放到exports对象上,在这个阶段fireFactory方法会执行 -modules.exports = modules.avalon - -new function () {// jshint ignore:line - var loadings = [] //正在加载中的模块列表 - var factorys = [] //放置define方法的factory函数 - var rjsext = /\.js$/i - function makeRequest(name, config) { -//1. 去掉资源前缀 - var res = "js" - name = name.replace(/^(\w+)\!/, function (a, b) { - res = b - return "" - }) - if (res === "ready") { - log("debug: ready!已经被废弃,请使用domReady!") - res = "domReady" - } -//2. 去掉querystring, hash - var query = "" - name = name.replace(rquery, function (a) { - query = a - return "" - }) - //3. 去掉扩展名 - var suffix = "." + res - var ext = /js|css/.test(suffix) ? suffix : "" - name = name.replace(/\.[a-z0-9]+$/g, function (a) { - if (a === suffix) { - ext = a - return "" - } else { - return a - } - }) - var req = avalon.mix({ - query: query, - ext: ext, - res: res, - name: name, - toUrl: toUrl - }, config) - req.toUrl(name) - return req - } - - function fireRequest(req) { - var name = req.name - var res = req.res - //1. 如果该模块已经发出请求,直接返回 - var module = modules[name] - var urlNoQuery = name && req.urlNoQuery - if (module && module.state >= 1) { - return name - } - module = modules[urlNoQuery] - if (module && module.state >= 3) { - innerRequire(module.deps || [], module.factory, urlNoQuery) - return urlNoQuery - } - if (name && !module) { - module = modules[urlNoQuery] = { - id: urlNoQuery, - state: 1 //send - } - var wrap = function (obj) { - resources[res] = obj - obj.load(name, req, function (a) { - if (arguments.length && a !== void 0) { - module.exports = a - } - module.state = 4 - checkDeps() - }) - } - - if (!resources[res]) { - innerRequire([res], wrap) - } else { - wrap(resources[res]) - } - } - return name ? urlNoQuery : res + "!" - } - -//核心API之一 require - var requireQueue = [] - var isUserFirstRequire = false - innerRequire = avalon.require = function (array, factory, parentUrl, defineConfig) { - if (!isUserFirstRequire) { - requireQueue.push(avalon.slice(arguments)) - if (arguments.length <= 2) { - isUserFirstRequire = true - var queue = requireQueue.splice(0, requireQueue.length), args - while (args = queue.shift()) { - innerRequire.apply(null, args) - } - } - return - } - - if (!Array.isArray(array)) { - avalon.error("require方法的第一个参数应为数组 " + array) - } - var deps = [] // 放置所有依赖项的完整路径 - var uniq = {} - var id = parentUrl || "callback" + setTimeout("1")// jshint ignore:line - defineConfig = defineConfig || {} - defineConfig.baseUrl = kernel.baseUrl - var isBuilt = !!defineConfig.built - if (parentUrl) { - defineConfig.parentUrl = parentUrl.substr(0, parentUrl.lastIndexOf("/")) - defineConfig.mapUrl = parentUrl.replace(rjsext, "") - } - if (isBuilt) { - var req = makeRequest(defineConfig.defineName, defineConfig) - id = req.urlNoQuery - } else { - array.forEach(function (name) { - var req = makeRequest(name, defineConfig) - var url = fireRequest(req) //加载资源,并返回该资源的完整地址 - if (url) { - if (!uniq[url]) { - deps.push(url) - uniq[url] = "司徒正美" //去重 - } - } - }) - } - - var module = modules[id] - if (!module || module.state !== 4) { - modules[id] = { - id: id, - deps: isBuilt ? array.concat() : deps, - factory: factory || noop, - state: 3 - } - } - if (!module) { - //如果此模块是定义在另一个JS文件中, 那必须等该文件加载完毕, 才能放到检测列队中 - loadings.push(id) - } - checkDeps() - } - -//核心API之二 require - innerRequire.define = function (name, deps, factory) { //模块名,依赖列表,模块本身 - if (typeof name !== "string") { - factory = deps - deps = name - name = "anonymous" - } - if (!Array.isArray(deps)) { - factory = deps - deps = [] - } - var config = { - built: !isUserFirstRequire, //用r.js打包后,所有define会放到requirejs之前 - defineName: name - } - var args = [deps, factory, config] - factory.require = function (url) { - args.splice(2, 0, url) - if (modules[url]) { - modules[url].state = 3 //loaded - var isCycle = false - try { - isCycle = checkCycle(modules[url].deps, url) - } catch (e) { - } - if (isCycle) { - avalon.error(url + "模块与之前的模块存在循环依赖,请不要直接用script标签引入" + url + "模块") - } - } - delete factory.require //释放内存 - innerRequire.apply(null, args) //0,1,2 --> 1,2,0 - } -//根据标准,所有遵循W3C标准的浏览器,script标签会按标签的出现顺序执行。 -//老的浏览器中,加载也是按顺序的:一个文件下载完成后,才开始下载下一个文件。 -//较新的浏览器中(IE8+ 、FireFox3.5+ 、Chrome4+ 、Safari4+),为了减小请求时间以优化体验, -//下载可以是并行的,但是执行顺序还是按照标签出现的顺序。 -//但如果script标签是动态插入的, 就未必按照先请求先执行的原则了,目测只有firefox遵守 -//唯一比较一致的是,IE10+及其他标准浏览器,一旦开始解析脚本, 就会一直堵在那里,直接脚本解析完毕 -//亦即,先进入loading阶段的script标签(模块)必然会先进入loaded阶段 - var url = config.built ? "unknown" : getCurrentScript() - if (url) { - var module = modules[url] - if (module) { - module.state = 2 - } - factory.require(url) - } else {//合并前后的safari,合并后的IE6-9走此分支 - factorys.push(factory) - } - } -//核心API之三 require.config(settings) - innerRequire.config = kernel - //核心API之四 define.amd 标识其符合AMD规范 - innerRequire.define.amd = modules - - //==========================对用户配置项进行再加工========================== - var allpaths = kernel["orig.paths"] = {} - var allmaps = kernel["orig.map"] = {} - var allpackages = kernel["packages"] = [] - var allargs = kernel["orig.args"] = {} - avalon.mix(plugins, { - paths: function (hash) { - avalon.mix(allpaths, hash) - kernel.paths = makeIndexArray(allpaths) - }, - map: function (hash) { - avalon.mix(allmaps, hash) - var list = makeIndexArray(allmaps, 1, 1) - avalon.each(list, function (_, item) { - item.val = makeIndexArray(item.val) - }) - kernel.map = list - }, - packages: function (array) { - array = array.concat(allpackages) - var uniq = {} - var ret = [] - for (var i = 0, pkg; pkg = array[i++]; ) { - pkg = typeof pkg === "string" ? {name: pkg} : pkg - var name = pkg.name - if (!uniq[name]) { - var url = joinPath(pkg.location || name, pkg.main || "main") - url = url.replace(rjsext, "") - ret.push(pkg) - uniq[name] = pkg.location = url - pkg.reg = makeMatcher(name) - } - } - kernel.packages = ret.sort() - }, - urlArgs: function (hash) { - if (typeof hash === "string") { - hash = {"*": hash} - } - avalon.mix(allargs, hash) - kernel.urlArgs = makeIndexArray(allargs, 1) - }, - baseUrl: function (url) { - if (!isAbsUrl(url)) { - var baseElement = head.getElementsByTagName("base")[0] - if (baseElement) { - head.removeChild(baseElement) - } - var node = DOC.createElement("a") - node.href = url - url = getFullUrl(node, "href") - if (baseElement) { - head.insertBefore(baseElement, head.firstChild) - } - } - if (url.length > 3) - kernel.baseUrl = url - }, - shim: function (obj) { - for (var i in obj) { - var value = obj[i] - if (Array.isArray(value)) { - value = obj[i] = { - deps: value - } - } - if (!value.exportsFn && (value.exports || value.init)) { - value.exportsFn = makeExports(value) - } - } - kernel.shim = obj - } - - }) - - - //==============================内部方法================================= - function checkCycle(deps, nick) { - //检测是否存在循环依赖 - for (var i = 0, id; id = deps[i++]; ) { - if (modules[id].state !== 4 && - (id === nick || checkCycle(modules[id].deps, nick))) { - return true - } - } - } - - function checkFail(node, onError, fuckIE) { - var id = trimQuery(node.src) //检测是否死链 - node.onload = node.onreadystatechange = node.onerror = null - if (onError || (fuckIE && modules[id] && !modules[id].state)) { - setTimeout(function () { - head.removeChild(node) - node = null // 处理旧式IE下的循环引用问题 - }) - log("debug: 加载 " + id + " 失败" + onError + " " + (!modules[id].state)) - } else { - return true - } - } - - function checkDeps() { - //检测此JS模块的依赖是否都已安装完毕,是则安装自身 - loop: for (var i = loadings.length, id; id = loadings[--i]; ) { - var obj = modules[id], - deps = obj.deps - if (!deps) - continue - for (var j = 0, key; key = deps[j]; j++) { - if (Object(modules[key]).state !== 4) { - continue loop - } - } - //如果deps是空对象或者其依赖的模块的状态都是2 - if (obj.state !== 4) { - loadings.splice(i, 1) //必须先移除再安装,防止在IE下DOM树建完后手动刷新页面,会多次执行它 - fireFactory(obj.id, obj.deps, obj.factory) - checkDeps() //如果成功,则再执行一次,以防有些模块就差本模块没有安装好 - } - } - } - - var rreadyState = /complete|loaded/ - function loadJS(url, id, callback) { - //通过script节点加载目标模块 - var node = DOC.createElement("script") - node.className = subscribers //让getCurrentScript只处理类名为subscribers的script节点 - var supportLoad = "onload" in node - var onEvent = supportLoad ? "onload" : "onreadystatechange" - function onload() { - var factory = factorys.pop() - factory && factory.require(id) - if (callback) { - callback() - } - if (checkFail(node, false, !supportLoad)) { - log("debug: 已成功加载 " + url) - id && loadings.push(id) - checkDeps() - } - } - var index = 0, loadID - node[onEvent] = supportLoad ? onload : function () { - if (rreadyState.test(node.readyState)) { - ++index - if (index === 1) { - loadID = setTimeout(onload, 500) - } else { - clearTimeout(loadID) - onload() - } - } - } - node.onerror = function () { - checkFail(node, true) - } - - head.insertBefore(node, head.firstChild) //chrome下第二个参数不能为null - node.src = url //插入到head的第一个节点前,防止IE6下head标签没闭合前使用appendChild抛错 - log("debug: 正准备加载 " + url) //更重要的是IE6下可以收窄getCurrentScript的寻找范围 - } - - var resources = innerRequire.plugins = { - //三大常用资源插件 js!, css!, text!, ready! - ready: { - load: noop - }, - js: { - load: function (name, req, onLoad) { - var url = req.url - var id = req.urlNoQuery - var shim = kernel.shim[name.replace(rjsext, "")] - if (shim) { //shim机制 - innerRequire(shim.deps || [], function () { - var args = avalon.slice(arguments) - loadJS(url, id, function () { - onLoad(shim.exportsFn ? shim.exportsFn.apply(0, args) : void 0) - }) - }) - } else { - loadJS(url, id) - } - } - }, - css: { - load: function (name, req, onLoad) { - var url = req.url - var node = DOC.createElement("link") - node.rel = "stylesheet" - node.href = url - head.insertBefore(node, head.firstChild) - log("debug: 已成功加载 " + url) - onLoad() - } - }, - text: { - load: function (name, req, onLoad) { - var url = req.url - var xhr = getXHR() - xhr.onreadystatechange = function () { - if (xhr.readyState === 4) { - var status = xhr.status; - if (status > 399 && status < 600) { - avalon.error(url + " 对应资源不存在或没有开启 CORS") - } else { - log("debug: 已成功加载 " + url) - onLoad(xhr.responseText) - } - } - } - var time = "_=" + (new Date() - 0) - var _url = url.indexOf("?") === -1 ? url + "?" + time : url + "&" + time - xhr.open("GET", _url, true) - if ("withCredentials" in xhr) {//这是处理跨域 - xhr.withCredentials = true - } - xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest")//告诉后端这是AJAX请求 - xhr.send() - log("debug: 正准备加载 " + url) - } - } - } - innerRequire.checkDeps = checkDeps - - var rquery = /(\?[^#]*)$/ - function trimQuery(url) { - return (url || "").replace(rquery, "") - } - - function isAbsUrl(path) { - //http://stackoverflow.com/questions/10687099/how-to-test-if-a-url-string-is-absolute-or-relative - return /^(?:[a-z]+:)?\/\//i.test(String(path)) - } - - function getFullUrl(node, src) { - return"1"[0] ? node[src] : node.getAttribute(src, 4) - } - - function getCurrentScript() { - // inspireb by https://github.com/samyk/jiagra/blob/master/jiagra.js - var stack - try { - a.b.c() //强制报错,以便捕获e.stack - } catch (e) { //safari5的sourceURL,firefox的fileName,它们的效果与e.stack不一样 - stack = e.stack - if (!stack && window.opera) { - //opera 9没有e.stack,但有e.Backtrace,但不能直接取得,需要对e对象转字符串进行抽取 - stack = (String(e).match(/of linked script \S+/g) || []).join(" ") - } - } - if (stack) { - /**e.stack最后一行在所有支持的浏览器大致如下: - *chrome23: - * at http://113.93.50.63/data.js:4:1 - *firefox17: - *@http://113.93.50.63/query.js:4 - *opera12:http://www.oldapps.com/opera.php?system=Windows_XP - *@http://113.93.50.63/data.js:4 - *IE10: - * at Global code (http://113.93.50.63/data.js:4:1) - * //firefox4+ 可以用document.currentScript - */ - stack = stack.split(/[@ ]/g).pop() //取得最后一行,最后一个空格或@之后的部分 - stack = stack[0] === "(" ? stack.slice(1, -1) : stack.replace(/\s/, "") //去掉换行符 - return trimQuery(stack.replace(/(:\d+)?:\d+$/i, "")) //去掉行号与或许存在的出错字符起始位置 - } - var nodes = head.getElementsByTagName("script") //只在head标签中寻找 - for (var i = nodes.length, node; node = nodes[--i]; ) { - if (node.className === subscribers && node.readyState === "interactive") { - var url = getFullUrl(node, "src") - return node.className = trimQuery(url) - } - } - } - - var rcallback = /^callback\d+$/ - function fireFactory(id, deps, factory) { - var module = Object(modules[id]) - module.state = 4 - for (var i = 0, array = [], d; d = deps[i++]; ) { - if (d === "exports") { - var obj = module.exports || (module.exports = {}) - array.push(obj) - } else { - array.push(modules[d].exports) - } - } - try { - var ret = factory.apply(window, array) - } catch (e) { - log("执行[" + id + "]模块的factory抛错: ", e) - } - if (ret !== void 0) { - module.exports = ret - } - if (rcallback.test(id)) { - delete modules[id] - } - delete module.factory - return ret - } - function toUrl(id) { - if (id.indexOf(this.res + "!") === 0) { - id = id.slice(this.res.length + 1) //处理define("css!style",[], function(){})的情况 - } - var url = id - //1. 是否命中paths配置项 - var usePath = 0 - var baseUrl = this.baseUrl - var rootUrl = this.parentUrl || baseUrl - eachIndexArray(id, kernel.paths, function (value, key) { - url = url.replace(key, value) - usePath = 1 - }) - //2. 是否命中packages配置项 - if (!usePath) { - eachIndexArray(id, kernel.packages, function (value, key, item) { - url = url.replace(item.name, item.location) - }) - } - //3. 是否命中map配置项 - if (this.mapUrl) { - eachIndexArray(this.mapUrl, kernel.map, function (array) { - eachIndexArray(url, array, function (mdValue, mdKey) { - url = url.replace(mdKey, mdValue) - rootUrl = baseUrl - }) - }) - } - var ext = this.ext - if (ext && usePath && url.slice(-ext.length) === ext) { - url = url.slice(0, -ext.length) - } - //4. 转换为绝对路径 - if (!isAbsUrl(url)) { - rootUrl = this.built || /^\w/.test(url) ? baseUrl : rootUrl - url = joinPath(rootUrl, url) - } - //5. 还原扩展名,query - var urlNoQuery = url + ext - url = urlNoQuery + this.query - //6. 处理urlArgs - eachIndexArray(id, kernel.urlArgs, function (value) { - url += (url.indexOf("?") === -1 ? "?" : "&") + value; - }) - this.url = url - return this.urlNoQuery = urlNoQuery - } - - function makeIndexArray(hash, useStar, part) { - //创建一个经过特殊算法排好序的数组 - var index = hash2array(hash, useStar, part) - index.sort(descSorterByName) - return index - } - - function makeMatcher(prefix) { - return new RegExp('^' + prefix + '(/|$)') - } - - function makeExports(value) { - return function () { - var ret - if (value.init) { - ret = value.init.apply(window, arguments) - } - return ret || (value.exports && getGlobal(value.exports)) - } - } - - - function hash2array(hash, useStar, part) { - var array = []; - for (var key in hash) { - if (ohasOwn.call(hash, key)) { - var item = { - name: key, - val: hash[key] - } - array.push(item) - item.reg = key === "*" && useStar ? /^/ : makeMatcher(key) - if (part && key !== "*") { - item.reg = new RegExp('\/' + key.replace(/^\//, "") + '(/|$)') - } - } - } - return array - } - - function eachIndexArray(moduleID, array, matcher) { - array = array || [] - for (var i = 0, el; el = array[i++]; ) { - if (el.reg.test(moduleID)) { - matcher(el.val, el.name, el) - return false - } - } - } - // 根据元素的name项进行数组字符数逆序的排序函数 - function descSorterByName(a, b) { - var aaa = a.name - var bbb = b.name - if (bbb === "*") { - return -1 - } - if (aaa === "*") { - return 1 - } - return bbb.length - aaa.length - } - - var rdeuce = /\/\w+\/\.\./ - function joinPath(a, b) { - if (a.charAt(a.length - 1) !== "/") { - a += "/" - } - if (b.slice(0, 2) === "./") { //相对于兄弟路径 - return a + b.slice(2) - } - if (b.slice(0, 2) === "..") { //相对于父路径 - a += b - while (rdeuce.test(a)) { - a = a.replace(rdeuce, "") - } - return a - } - if (b.slice(0, 1) === "/") { - return a + b.slice(1) - } - return a + b - } - - function getGlobal(value) { - if (!value) { - return value - } - var g = window - value.split(".").forEach(function (part) { - g = g[part] - }) - return g - } - - var mainNode = DOC.scripts[DOC.scripts.length - 1] - var dataMain = mainNode.getAttribute("data-main") - if (dataMain) { - plugins.baseUrl(dataMain) - var href = kernel.baseUrl - kernel.baseUrl = href.slice(0, href.lastIndexOf("/") + 1) - loadJS(href.replace(rjsext, "") + ".js") - } else { - var loaderUrl = trimQuery(getFullUrl(mainNode, "src")) - kernel.baseUrl = loaderUrl.slice(0, loaderUrl.lastIndexOf("/") + 1) - } -}// jshint ignore:line - -/********************************************************************* - * DOMReady * - **********************************************************************/ - -var readyList = [], isReady -var fireReady = function(fn) { - isReady = true - if (innerRequire) { - modules["domReady!"].state = 4 - innerRequire.checkDeps() - } - while(fn = readyList.shift()){ - fn(avalon) - } -} - -function doScrollCheck() { - try { //IE下通过doScrollCheck检测DOM树是否建完 - root.doScroll("left") - fireReady() - } catch (e) { - setTimeout(doScrollCheck) - } -} - -if (DOC.readyState === "complete") { - setTimeout(fireReady) //如果在domReady之外加载 -} else if (W3C) { - DOC.addEventListener("DOMContentLoaded", fireReady) -} else { - DOC.attachEvent("onreadystatechange", function() { - if (DOC.readyState === "complete") { - fireReady() - } - }) - try { - var isTop = window.frameElement === null - } catch (e) { - } - if (root.doScroll && isTop && window.external) {//fix IE iframe BUG - doScrollCheck() - } -} -avalon.bind(window, "load", fireReady) - -avalon.ready = function(fn) { - if (!isReady) { - readyList.push(fn) - } else { - fn(avalon) - } -} - -avalon.config({ - loader: true -}) - -avalon.ready(function() { - avalon.scan(DOC.body) -}) - -// Register as a named AMD module, since avalon can be concatenated with other -// files that may use define, but not via a proper concatenation script that -// understands anonymous AMD modules. A named AMD is safest and most robust -// way to register. Lowercase avalon is used because AMD module names are -// derived from file names, and Avalon is normally delivered in a lowercase -// file name. Do this after creating the global so that if an AMD module wants -// to call noConflict to hide this version of avalon, it will work. - -// Note that for maximum portability, libraries that are not avalon should -// declare themselves as anonymous modules, and avoid setting a global if an -// AMD loader is present. avalon is a special case. For more information, see -// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon - if (typeof define === "function" && define.amd) { - define("avalon", [], function() { - return avalon - }) - } -// Map over avalon in case of overwrite - var _avalon = window.avalon - avalon.noConflict = function(deep) { - if (deep && window.avalon === avalon) { - window.avalon = _avalon - } - return avalon - } -// Expose avalon identifiers, even in AMD -// and CommonJS for browser emulators - if (noGlobal === void 0) { - window.avalon = avalon - } - return avalon - -})); \ No newline at end of file diff --git a/portal-common/src/main/webapp/common/thirdparty/avalon/avalon.modern.js b/portal-common/src/main/webapp/common/thirdparty/avalon/avalon.modern.js deleted file mode 100644 index 7c37393f..00000000 --- a/portal-common/src/main/webapp/common/thirdparty/avalon/avalon.modern.js +++ /dev/null @@ -1,4935 +0,0 @@ -/*================================================== - Copyright (c) 2013-2015 司徒正美 and other contributors - http://www.cnblogs.com/rubylouvre/ - https://github.com/RubyLouvre - http://weibo.com/jslouvre/ - - Released under the MIT license - avalon.modern.js 1.43 built in 2015.5.21 - support IE10+ and other browsers - ==================================================*/ -(function (global, factory) { - - if (typeof module === "object" && typeof module.exports === "object") { - // For CommonJS and CommonJS-like environments where a proper `window` - // is present, execute the factory and get avalon. - // For environments that do not have a `window` with a `document` - // (such as Node.js), expose a factory as module.exports. - // This accentuates the need for the creation of a real `window`. - // e.g. var avalon = require("avalon")(window); - module.exports = global.document ? factory(global, true) : function (w) { - if (!w.document) { - throw new Error("Avalon requires a window with a document") - } - return factory(w) - } - } else { - factory(global) - } - -// Pass this if window is not defined yet -}(typeof window !== "undefined" ? window : this, function (window, noGlobal) { - - /********************************************************************* - * 全局变量及方法 * - **********************************************************************/ - var expose = Date.now() -//http://stackoverflow.com/questions/7290086/javascript-use-strict-and-nicks-find-global-function - var DOC = window.document - var head = DOC.head //HEAD元素 - head.insertAdjacentHTML("afterBegin", '') - var ifGroup = head.firstChild - - function log() { - if (avalon.config.debug) { -// http://stackoverflow.com/questions/8785624/how-to-safely-wrap-console-log - console.log.apply(console, arguments) - } - } - - /** - * Creates a new object without a prototype. This object is useful for lookup without having to - * guard against prototypically inherited properties via hasOwnProperty. - * - * Related micro-benchmarks: - * - http://jsperf.com/object-create2 - * - http://jsperf.com/proto-map-lookup/2 - * - http://jsperf.com/for-in-vs-object-keys2 - */ - function createMap() { - return Object.create(null) - } - - var subscribers = "$" + expose - var otherRequire = window.require - var otherDefine = window.define - var innerRequire - var stopRepeatAssign = false - var rword = /[^, ]+/g //切割字符串为一个个小块,以空格或豆号分开它们,结合replace实现字符串的forEach - var rcomplexType = /^(?:object|array)$/ - var rsvg = /^\[object SVG\w*Element\]$/ - var rwindow = /^\[object (?:Window|DOMWindow|global)\]$/ - var oproto = Object.prototype - var ohasOwn = oproto.hasOwnProperty - var serialize = oproto.toString - var ap = Array.prototype - var aslice = ap.slice - var Registry = {} //将函数曝光到此对象上,方便访问器收集依赖 - var W3C = window.dispatchEvent - var root = DOC.documentElement - var hyperspace = DOC.createDocumentFragment() - var cinerator = DOC.createElement("div") - var class2type = {} - "Boolean Number String Function Array Date RegExp Object Error".replace(rword, function (name) { - class2type["[object " + name + "]"] = name.toLowerCase() - }) - - - function noop() { - } - - - function oneObject(array, val) { - if (typeof array === "string") { - array = array.match(rword) || [] - } - var result = {}, - value = val !== void 0 ? val : 1 - for (var i = 0, n = array.length; i < n; i++) { - result[array[i]] = value - } - return result - } - -//生成UUID http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript - var generateID = function (prefix) { - prefix = prefix || "avalon" - return String(Math.random() + Math.random()).replace(/\d\.\d{4}/, prefix) - } - - function IE() { - if (window.VBArray) { - var mode = document.documentMode - return mode ? mode : window.XMLHttpRequest ? 7 : 6 - } else { - return 0 - } - } - - var IEVersion = IE() - - avalon = function (el) { //创建jQuery式的无new 实例化结构 - return new avalon.init(el) - } - - /*视浏览器情况采用最快的异步回调*/ - avalon.nextTick = new function () {// jshint ignore:line - var tickImmediate = window.setImmediate - var tickObserver = window.MutationObserver - var tickPost = W3C && window.postMessage - if (tickImmediate) { - return tickImmediate.bind(window) - } - - var queue = [] - - function callback() { - var n = queue.length - for (var i = 0; i < n; i++) { - queue[i]() - } - queue = queue.slice(n) - } - - if (tickObserver) { - var node = document.createTextNode("avalon") - new tickObserver(callback).observe(node, {characterData: true})// jshint ignore:line - return function (fn) { - queue.push(fn) - node.data = Math.random() - } - } - - if (tickPost) { - window.addEventListener("message", function (e) { - var source = e.source - if ((source === window || source === null) && e.data === "process-tick") { - e.stopPropagation() - callback() - } - }) - - return function (fn) { - queue.push(fn) - window.postMessage('process-tick', '*') - } - } - - return function (fn) { - setTimeout(fn, 0) - } - }// jshint ignore:line - /********************************************************************* - * avalon的静态方法定义区 * - **********************************************************************/ - avalon.init = function (el) { - this[0] = this.element = el - } - avalon.fn = avalon.prototype = avalon.init.prototype - - avalon.type = function (obj) { //取得目标的类型 - if (obj == null) { - return String(obj) - } - // 早期的webkit内核浏览器实现了已废弃的ecma262v4标准,可以将正则字面量当作函数使用,因此typeof在判定正则时会返回function - return typeof obj === "object" || typeof obj === "function" ? - class2type[serialize.call(obj)] || "object" : - typeof obj - } - - var isFunction = function (fn) { - return serialize.call(fn) === "[object Function]" - } - - avalon.isFunction = isFunction - - avalon.isWindow = function (obj) { - return rwindow.test(serialize.call(obj)) - } - - /*判定是否是一个朴素的javascript对象(Object),不是DOM对象,不是BOM对象,不是自定义类的实例*/ - - avalon.isPlainObject = function (obj) { - // 简单的 typeof obj === "object"检测,会致使用isPlainObject(window)在opera下通不过 - return serialize.call(obj) === "[object Object]" && Object.getPrototypeOf(obj) === oproto - } - -//与jQuery.extend方法,可用于浅拷贝,深拷贝 - avalon.mix = avalon.fn.mix = function () { - var options, name, src, copy, copyIsArray, clone, - target = arguments[0] || {}, - i = 1, - length = arguments.length, - deep = false - - // 如果第一个参数为布尔,判定是否深拷贝 - if (typeof target === "boolean") { - deep = target - target = arguments[1] || {} - i++ - } - - //确保接受方为一个复杂的数据类型 - if (typeof target !== "object" && !isFunction(target)) { - target = {} - } - - //如果只有一个参数,那么新成员添加于mix所在的对象上 - if (i === length) { - target = this - i-- - } - - for (; i < length; i++) { - //只处理非空参数 - if ((options = arguments[i]) != null) { - for (name in options) { - src = target[name] - copy = options[name] - // 防止环引用 - if (target === copy) { - continue - } - if (deep && copy && (avalon.isPlainObject(copy) || (copyIsArray = Array.isArray(copy)))) { - - if (copyIsArray) { - copyIsArray = false - clone = src && Array.isArray(src) ? src : [] - - } else { - clone = src && avalon.isPlainObject(src) ? src : {} - } - - target[name] = avalon.mix(deep, clone, copy) - } else if (copy !== void 0) { - target[name] = copy - } - } - } - } - return target - } - - function _number(a, len) { //用于模拟slice, splice的效果 - a = Math.floor(a) || 0 - return a < 0 ? Math.max(len + a, 0) : Math.min(a, len); - } - - avalon.mix({ - rword: rword, - subscribers: subscribers, - version: 1.43, - ui: {}, - log: log, - slice: function (nodes, start, end) { - return aslice.call(nodes, start, end) - }, - noop: noop, - /*如果不用Error对象封装一下,str在控制台下可能会乱码*/ - error: function (str, e) { - throw new (e || Error)(str)// jshint ignore:line - }, - /*将一个以空格或逗号隔开的字符串或数组,转换成一个键值都为1的对象*/ - oneObject: oneObject, - /* avalon.range(10) - => [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] - avalon.range(1, 11) - => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] - avalon.range(0, 30, 5) - => [0, 5, 10, 15, 20, 25] - avalon.range(0, -10, -1) - => [0, -1, -2, -3, -4, -5, -6, -7, -8, -9] - avalon.range(0) - => []*/ - range: function (start, end, step) { // 用于生成整数数组 - step || (step = 1) - if (end == null) { - end = start || 0 - start = 0 - } - var index = -1, - length = Math.max(0, Math.ceil((end - start) / step)), - result = new Array(length) - while (++index < length) { - result[index] = start - start += step - } - return result - }, - eventHooks: {}, - /*绑定事件*/ - bind: function (el, type, fn, phase) { - var hooks = avalon.eventHooks - var hook = hooks[type] - if (typeof hook === "object") { - type = hook.type - if (hook.deel) { - fn = hook.deel(el, type, fn, phase) - } - } - if (!fn.unbind) - el.addEventListener(type, fn, !!phase) - return fn - }, - /*卸载事件*/ - unbind: function (el, type, fn, phase) { - var hooks = avalon.eventHooks - var hook = hooks[type] - var callback = fn || noop - if (typeof hook === "object") { - type = hook.type - if (hook.deel) { - fn = hook.deel(el, type, fn, false) - } - } - el.removeEventListener(type, callback, !!phase) - }, - /*读写删除元素节点的样式*/ - css: function (node, name, value) { - if (node instanceof avalon) { - node = node[0] - } - var prop = /[_-]/.test(name) ? camelize(name) : name, fn - name = avalon.cssName(prop) || prop - if (value === void 0 || typeof value === "boolean") { //获取样式 - fn = cssHooks[prop + ":get"] || cssHooks["@:get"] - if (name === "background") { - name = "backgroundColor" - } - var val = fn(node, name) - return value === true ? parseFloat(val) || 0 : val - } else if (value === "") { //请除样式 - node.style[name] = "" - } else { //设置样式 - if (value == null || value !== value) { - return - } - if (isFinite(value) && !avalon.cssNumber[prop]) { - value += "px" - } - fn = cssHooks[prop + ":set"] || cssHooks["@:set"] - fn(node, name, value) - } - }, - /*遍历数组与对象,回调的第一个参数为索引或键名,第二个或元素或键值*/ - each: function (obj, fn) { - if (obj) { //排除null, undefined - var i = 0 - if (isArrayLike(obj)) { - for (var n = obj.length; i < n; i++) { - if (fn(i, obj[i]) === false) - break - } - } else { - for (i in obj) { - if (obj.hasOwnProperty(i) && fn(i, obj[i]) === false) { - break - } - } - } - } - }, - //收集元素的data-{{prefix}}-*属性,并转换为对象 - getWidgetData: function (elem, prefix) { - var raw = avalon(elem).data() - var result = {} - for (var i in raw) { - if (i.indexOf(prefix) === 0) { - result[i.replace(prefix, "").replace(/\w/, function (a) { - return a.toLowerCase() - })] = raw[i] - } - } - return result - }, - Array: { - /*只有当前数组不存在此元素时只添加它*/ - ensure: function (target, item) { - if (target.indexOf(item) === -1) { - return target.push(item) - } - }, - /*移除数组中指定位置的元素,返回布尔表示成功与否*/ - removeAt: function (target, index) { - return !!target.splice(index, 1).length - }, - /*移除数组中第一个匹配传参的那个元素,返回布尔表示成功与否*/ - remove: function (target, item) { - var index = target.indexOf(item) - if (~index) - return avalon.Array.removeAt(target, index) - return false - } - } - }) - - var bindingHandlers = avalon.bindingHandlers = {} - var bindingExecutors = avalon.bindingExecutors = {} - - /*判定是否类数组,如节点集合,纯数组,arguments与拥有非负整数的length属性的纯JS对象*/ - function isArrayLike(obj) { - if (obj && typeof obj === "object") { - var n = obj.length, - str = serialize.call(obj) - if (/(Array|List|Collection|Map|Arguments)\]$/.test(str)) { - return true - } else if (str === "[object Object]" && n === (n >>> 0)) { - return true //由于ecma262v5能修改对象属性的enumerable,因此不能用propertyIsEnumerable来判定了 - } - } - return false - } - - -// https://github.com/rsms/js-lru - var Cache = new function () {// jshint ignore:line - function LRU(maxLength) { - this.size = 0 - this.limit = maxLength - this.head = this.tail = void 0 - this._keymap = {} - } - - var p = LRU.prototype - - p.put = function (key, value) { - var entry = { - key: key, - value: value - } - this._keymap[key] = entry - if (this.tail) { - this.tail.newer = entry - entry.older = this.tail - } else { - this.head = entry - } - this.tail = entry - if (this.size === this.limit) { - this.shift() - } else { - this.size++ - } - return value - } - - p.shift = function () { - var entry = this.head - if (entry) { - this.head = this.head.newer - this.head.older = - entry.newer = - entry.older = - this._keymap[entry.key] = void 0 - } - } - p.get = function (key) { - var entry = this._keymap[key] - if (entry === void 0) - return - if (entry === this.tail) { - return entry.value - } - // HEAD--------------TAIL - // <.older .newer> - // <--- add direction -- - // A B C E - if (entry.newer) { - if (entry === this.head) { - this.head = entry.newer - } - entry.newer.older = entry.older // C <-- E. - } - if (entry.older) { - entry.older.newer = entry.newer // C. --> E - } - entry.newer = void 0 // D --x - entry.older = this.tail // D. --> E - if (this.tail) { - this.tail.newer = entry // E. <-- D - } - this.tail = entry - return entry.value - } - return LRU - }// jshint ignore:line - - /********************************************************************* - * DOM 底层补丁 * - **********************************************************************/ -//safari5+是把contains方法放在Element.prototype上而不是Node.prototype - if (!DOC.contains) { - Node.prototype.contains = function (arg) { - return !!(this.compareDocumentPosition(arg) & 16) - } - } - avalon.contains = function (root, el) { - try { - while ((el = el.parentNode)) - if (el === root) - return true - return false - } catch (e) { - return false - } - } - - if (window.SVGElement) { - var svgns = "http://www.w3.org/2000/svg" - var svg = DOC.createElementNS(svgns, "svg") - svg.innerHTML = '' - if (!rsvg.test(svg.firstChild)) {// #409 - /* jshint ignore:start */ - function enumerateNode(node, targetNode) { - if (node && node.childNodes) { - var nodes = node.childNodes - for (var i = 0, el; el = nodes[i++];) { - if (el.tagName) { - var svg = DOC.createElementNS(svgns, - el.tagName.toLowerCase()) - // copy attrs - ap.forEach.call(el.attributes, function (attr) { - svg.setAttribute(attr.name, attr.value) - }) - // 递归处理子节点 - enumerateNode(el, svg) - targetNode.appendChild(svg) - } - } - } - } - - /* jshint ignore:end */ - Object.defineProperties(SVGElement.prototype, { - "outerHTML": {//IE9-11,firefox不支持SVG元素的innerHTML,outerHTML属性 - enumerable: true, - configurable: true, - get: function () { - return new XMLSerializer().serializeToString(this) - }, - set: function (html) { - var tagName = this.tagName.toLowerCase(), - par = this.parentNode, - frag = avalon.parseHTML(html) - // 操作的svg,直接插入 - if (tagName === "svg") { - par.insertBefore(frag, this) - // svg节点的子节点类似 - } else { - var newFrag = DOC.createDocumentFragment() - enumerateNode(frag, newFrag) - par.insertBefore(newFrag, this) - } - par.removeChild(this) - } - }, - "innerHTML": { - enumerable: true, - configurable: true, - get: function () { - var s = this.outerHTML - var ropen = new RegExp("<" + this.nodeName + '\\b(?:(["\'])[^"]*?(\\1)|[^>])*>', "i") - var rclose = new RegExp("<\/" + this.nodeName + ">$", "i") - return s.replace(ropen, "").replace(rclose, "") - }, - set: function (html) { - if (avalon.clearHTML) { - avalon.clearHTML(this) - var frag = avalon.parseHTML(html) - enumerateNode(frag, this) - } - } - } - }) - } - } -//========================= event binding ==================== - var eventHooks = avalon.eventHooks -//针对firefox, chrome修正mouseenter, mouseleave(chrome30+) - if (!("onmouseenter" in root)) { - avalon.each({ - mouseenter: "mouseover", - mouseleave: "mouseout" - }, function (origType, fixType) { - eventHooks[origType] = { - type: fixType, - deel: function (elem, _, fn) { - return function (e) { - var t = e.relatedTarget - if (!t || (t !== elem && !(elem.compareDocumentPosition(t) & 16))) { - delete e.type - e.type = origType - return fn.call(elem, e) - } - } - } - } - }) - } -//针对IE9+, w3c修正animationend - avalon.each({ - AnimationEvent: "animationend", - WebKitAnimationEvent: "webkitAnimationEnd" - }, function (construct, fixType) { - if (window[construct] && !eventHooks.animationend) { - eventHooks.animationend = { - type: fixType - } - } - }) - - if (DOC.onmousewheel === void 0) { - /* IE6-11 chrome mousewheel wheelDetla 下 -120 上 120 - firefox DOMMouseScroll detail 下3 上-3 - firefox wheel detlaY 下3 上-3 - IE9-11 wheel deltaY 下40 上-40 - chrome wheel deltaY 下100 上-100 */ - eventHooks.mousewheel = { - type: "wheel", - deel: function (elem, _, fn) { - return function (e) { - e.wheelDeltaY = e.wheelDelta = e.deltaY > 0 ? -120 : 120 - e.wheelDeltaX = 0 - Object.defineProperty(e, "type", { - value: "mousewheel" - }) - fn.call(elem, e) - } - } - } - } - - /********************************************************************* - * 配置系统 * - **********************************************************************/ - - function kernel(settings) { - for (var p in settings) { - if (!ohasOwn.call(settings, p)) - continue - var val = settings[p] - if (typeof kernel.plugins[p] === "function") { - kernel.plugins[p](val) - } else if (typeof kernel[p] === "object") { - avalon.mix(kernel[p], val) - } else { - kernel[p] = val - } - } - return this - } - - var openTag, closeTag, rexpr, rexprg, rbind, rregexp = /[-.*+?^${}()|[\]\/\\]/g - - function escapeRegExp(target) { - //http://stevenlevithan.com/regex/xregexp/ - //将字符串安全格式化为正则表达式的源码 - return (target + "").replace(rregexp, "\\$&") - } - - var plugins = { - loader: function (builtin) { - var flag = innerRequire && builtin - window.require = flag ? innerRequire : otherRequire - window.define = flag ? innerRequire.define : otherDefine - }, - interpolate: function (array) { - openTag = array[0] - closeTag = array[1] - if (openTag === closeTag) { - throw new SyntaxError("openTag!==closeTag") - } else if (array + "" === "") { - kernel.commentInterpolate = true - } else { - var test = openTag + "test" + closeTag - cinerator.innerHTML = test - if (cinerator.innerHTML !== test && cinerator.innerHTML.indexOf("<") > -1) { - throw new SyntaxError("此定界符不合法") - } - cinerator.innerHTML = "" - } - var o = escapeRegExp(openTag), - c = escapeRegExp(closeTag) - rexpr = new RegExp(o + "(.*?)" + c) - rexprg = new RegExp(o + "(.*?)" + c, "g") - rbind = new RegExp(o + ".*?" + c + "|\\sms-") - } - } - - kernel.debug = true - kernel.plugins = plugins - kernel.plugins['interpolate'](["{{", "}}"]) - kernel.paths = {} - kernel.shim = {} - kernel.maxRepeatSize = 100 - avalon.config = kernel - var ravalon = /(\w+)\[(avalonctrl)="(\S+)"\]/ - var findNodes = function (str) { - return DOC.querySelectorAll(str) - } - /********************************************************************* - * 事件总线 * - **********************************************************************/ - var EventBus = { - $watch: function (type, callback) { - if (typeof callback === "function") { - var callbacks = this.$events[type] - if (callbacks) { - callbacks.push(callback) - } else { - this.$events[type] = [callback] - } - } else { //重新开始监听此VM的第一重简单属性的变动 - this.$events = this.$watch.backup - } - return this - }, - $unwatch: function (type, callback) { - var n = arguments.length - if (n === 0) { //让此VM的所有$watch回调无效化 - this.$watch.backup = this.$events - this.$events = {} - } else if (n === 1) { - this.$events[type] = [] - } else { - var callbacks = this.$events[type] || [] - var i = callbacks.length - while (~--i < 0) { - if (callbacks[i] === callback) { - return callbacks.splice(i, 1) - } - } - } - return this - }, - $fire: function (type) { - var special, i, v, callback - if (/^(\w+)!(\S+)$/.test(type)) { - special = RegExp.$1 - type = RegExp.$2 - } - var events = this.$events - if (!events) - return - var args = aslice.call(arguments, 1) - var detail = [type].concat(args) - if (special === "all") { - for (i in avalon.vmodels) { - v = avalon.vmodels[i] - if (v !== this) { - v.$fire.apply(v, detail) - } - } - } else if (special === "up" || special === "down") { - var elements = events.expr ? findNodes(events.expr) : [] - if (elements.length === 0) - return - for (i in avalon.vmodels) { - v = avalon.vmodels[i] - if (v !== this) { - if (v.$events.expr) { - var eventNodes = findNodes(v.$events.expr) - if (eventNodes.length === 0) { - continue - } - //循环两个vmodel中的节点,查找匹配(向上匹配或者向下匹配)的节点并设置标识 - /* jshint ignore:start */ - Array.prototype.forEach.call(eventNodes, function (node) { - Array.prototype.forEach.call(elements, function (element) { - var ok = special === "down" ? element.contains(node) : //向下捕获 - node.contains(element) //向上冒泡 - if (ok) { - node._avalon = v //符合条件的加一个标识 - } - }); - }) - /* jshint ignore:end */ - } - } - } - var nodes = DOC.getElementsByTagName("*") //实现节点排序 - var alls = [] - Array.prototype.forEach.call(nodes, function (el) { - if (el._avalon) { - alls.push(el._avalon) - el._avalon = "" - el.removeAttribute("_avalon") - } - }) - if (special === "up") { - alls.reverse() - } - for (i = 0; callback = alls[i++];) { - if (callback.$fire.apply(callback, detail) === false) { - break - } - } - } else { - var callbacks = events[type] || [] - var all = events.$all || [] - for (i = 0; callback = callbacks[i++];) { - if (isFunction(callback)) - callback.apply(this, args) - } - for (i = 0; callback = all[i++];) { - if (isFunction(callback)) - callback.apply(this, arguments) - } - } - } - } - - /********************************************************************* - * modelFactory * - **********************************************************************/ -//avalon最核心的方法的两个方法之一(另一个是avalon.scan),返回一个ViewModel(VM) - var VMODELS = avalon.vmodels = createMap() //所有vmodel都储存在这里 - avalon.define = function (id, factory) { - var $id = id.$id || id - if (!$id) { - log("warning: vm必须指定$id") - } - if (VMODELS[$id]) { - log("warning: " + $id + " 已经存在于avalon.vmodels中") - } - if (typeof id === "object") { - var model = modelFactory(id) - } else { - var scope = { - $watch: noop - } - factory(scope) //得到所有定义 - model = modelFactory(scope) //偷天换日,将scope换为model - stopRepeatAssign = true - factory(model) - stopRepeatAssign = false - } - model.$id = $id - return VMODELS[$id] = model - } - -//一些不需要被监听的属性 - var $$skipArray = String("$id,$watch,$unwatch,$fire,$events,$model,$skipArray").match(rword) - - function isObservable(name, value, $skipArray) { - if (isFunction(value) || value && value.nodeType) { - return false - } - if ($skipArray.indexOf(name) !== -1) { - return false - } - if ($$skipArray.indexOf(name) !== -1) { - return false - } - var $special = $skipArray.$special - if (name && name.charAt(0) === "$" && !$special[name]) { - return false - } - return true - } - -//ms-with,ms-each, ms-repeat绑定生成的代理对象储存池 - var midway = createMap() - - function getNewValue(accessor, name, value, $vmodel) { - switch (accessor.type) { - case 0://计算属性 - var getter = accessor.get - var setter = accessor.set - if (isFunction(setter)) { - var $events = $vmodel.$events - var lock = $events[name] - $events[name] = [] //清空回调,防止内部冒泡而触发多次$fire - setter.call($vmodel, value) - $events[name] = lock - } - return getter.call($vmodel) //同步$model - case 1://监控属性 - return value - case 2://对象属性(包括数组与哈希) - if (value !== $vmodel.$model[name]) { - var svmodel = accessor.svmodel = objectFactory($vmodel, name, value, accessor.valueType) - value = svmodel.$model //同步$model - var fn = midway[svmodel.$id] - fn && fn() //同步视图 - } - return value - } - } - - function modelFactory(source, $special, $model) { - if (Array.isArray(source)) { - var arr = source.concat() - source.length = 0 - var collection = Collection(source)// jshint ignore:line - collection.pushArray(arr) - return collection - } - //0 null undefined || Node || VModel - if (!source || source.nodeType > 0 || (source.$id && source.$events)) { - return source - } - if (!Array.isArray(source.$skipArray)) { - source.$skipArray = [] - } - source.$skipArray.$special = $special || createMap() //强制要监听的属性 - var $vmodel = {} //要返回的对象, 它在IE6-8下可能被偷龙转凤 - $model = $model || {} //vmodels.$model属性 - var $events = createMap() //vmodel.$events属性 - var watchedProperties = createMap() //监控属性 - var initCallbacks = [] //初始化才执行的函数 - for (var i in source) { - (function (name, val) { - $model[name] = val - if (!isObservable(name, val, source.$skipArray)) { - return //过滤所有非监控属性 - } - //总共产生三种accessor - $events[name] = [] - var valueType = avalon.type(val) - var accessor = function (newValue) { - var name = accessor._name - var $vmodel = this - var $model = $vmodel.$model - var oldValue = $model[name] - var $events = $vmodel.$events - - if (arguments.length) { - if (stopRepeatAssign) { - return - } - //计算属性与对象属性需要重新计算newValue - if (accessor.type !== 1) { - newValue = getNewValue(accessor, name, newValue, $vmodel) - if (!accessor.type) - return - } - if (!isEqual(oldValue, newValue)) { - $model[name] = newValue - notifySubscribers($events[name]) //同步视图 - safeFire($vmodel, name, newValue, oldValue) //触发$watch回调 - } - } else { - if (accessor.type === 0) { //type 0 计算属性 1 监控属性 2 对象属性 - //计算属性不需要收集视图刷新函数,都是由其他监控属性代劳 - newValue = accessor.get.call($vmodel) - if (oldValue !== newValue) { - $model[name] = newValue - //这里不用同步视图 - safeFire($vmodel, name, newValue, oldValue) //触发$watch回调 - } - return newValue - } else { - collectSubscribers($events[name]) //收集视图函数 - return accessor.svmodel || oldValue - } - } - } - //总共产生三种accessor - if (valueType === "object" && isFunction(val.get) && Object.keys(val).length <= 2) { - //第1种为计算属性, 因变量,通过其他监控属性触发其改变 - accessor.set = val.set - accessor.get = val.get - accessor.type = 0 - initCallbacks.push(function () { - var data = { - evaluator: function () { - data.type = Math.random(), - data.element = null - $model[name] = accessor.get.call($vmodel) - }, - element: head, - type: Math.random(), - handler: noop, - args: [] - } - Registry[expose] = data - accessor.call($vmodel) - delete Registry[expose] - }) - } else if (rcomplexType.test(valueType)) { - //第2种为对象属性,产生子VM与监控数组 - accessor.type = 2 - accessor.valueType = valueType - initCallbacks.push(function () { - var svmodel = modelFactory(val, 0, $model[name]) - accessor.svmodel = svmodel - svmodel.$events[subscribers] = $events[name] - }) - } else { - accessor.type = 1 - //第3种为监控属性,对应简单的数据类型,自变量 - } - accessor._name = name - watchedProperties[name] = accessor - })(i, source[i])// jshint ignore:line - } - - $$skipArray.forEach(function (name) { - delete source[name] - delete $model[name] //这些特殊属性不应该在$model中出现 - }) - - $vmodel = Object.defineProperties($vmodel, descriptorFactory(watchedProperties), source) //生成一个空的ViewModel - for (var name in source) { - if (!watchedProperties[name]) { - $vmodel[name] = source[name] - } - } - //添加$id, $model, $events, $watch, $unwatch, $fire - $vmodel.$id = generateID() - $vmodel.$model = $model - $vmodel.$events = $events - for (i in EventBus) { - $vmodel[i] = EventBus[i] - } - - Object.defineProperty($vmodel, "hasOwnProperty", { - value: function (name) { - return name in this.$model - }, - writable: false, - enumerable: false, - configurable: true - }) - - initCallbacks.forEach(function (cb) { //收集依赖 - cb() - }) - return $vmodel - } - -//比较两个值是否相等 - var isEqual = Object.is || function (v1, v2) { - if (v1 === 0 && v2 === 0) { - return 1 / v1 === 1 / v2 - } else if (v1 !== v1) { - return v2 !== v2 - } else { - return v1 === v2 - } - } - - function safeFire(a, b, c, d) { - if (a.$events) { - EventBus.$fire.call(a, b, c, d) - } - } - - var descriptorFactory = function (obj) { - var descriptors = createMap() - for (var i in obj) { - descriptors[i] = { - get: obj[i], - set: obj[i], - enumerable: true, - configurable: true - } - } - return descriptors - } - -//应用于第2种accessor - function objectFactory(parent, name, value, valueType) { - //a为原来的VM, b为新数组或新对象 - var son = parent[name] - if (valueType === "array") { - if (!Array.isArray(value) || son === value) { - return son //fix https://github.com/RubyLouvre/avalon/issues/261 - } - son._.$unwatch() - son.clear() - son._.$watch() - son.pushArray(value.concat()) - return son - } else { - var iterators = parent.$events[name] - var ret = modelFactory(value) - ret.$events[subscribers] = iterators - midway[ret.$id] = function (data) { - while (data = iterators.shift()) { - (function (el) { - avalon.nextTick(function () { - var type = el.type - if (type && bindingHandlers[type]) { //#753 - el.rollback && el.rollback() //还原 ms-with ms-on - bindingHandlers[type](el, el.vmodels) - } - }) - })(data)// jshint ignore:line - } - delete midway[ret.$id] - } - return ret - } - } - - /********************************************************************* - * 监控数组(与ms-each, ms-repeat配合使用) * - **********************************************************************/ - - function Collection(model) { - var array = [] - array.$id = generateID() - array.$model = model //数据模型 - array.$events = {} - array.$events[subscribers] = [] - array._ = modelFactory({ - length: model.length - }) - array._.$watch("length", function (a, b) { - array.$fire("length", a, b) - }) - for (var i in EventBus) { - array[i] = EventBus[i] - } - array.$map = { - el: 1 - } - array.$proxy = [] - avalon.mix(array, CollectionPrototype) - return array - } - - function mutateArray(method, pos, n, index, method2, pos2, n2) { - var oldLen = this.length, loop = 2 - while (--loop) { - switch (method) { - case "add": - /* jshint ignore:start */ - var m = pos + n - var array = this.$model.slice(pos, m).map(function (el) { - if (rcomplexType.test(avalon.type(el))) {//转换为VM - return el.$id ? el : modelFactory(el, 0, el) - } else { - return el - } - }) - /* jshint ignore:end */ - for (var i = pos; i < m; i++) {//生成代理VM - var proxy = eachProxyAgent(i, this) - this.$proxy.splice(i, 0, proxy) - } - _splice.apply(this, [pos, 0].concat(array)) - this._fire("add", pos, n) - break - case "del": - var ret = this._splice(pos, n) - var removed = this.$proxy.splice(pos, n) //回收代理VM - recycleProxies(removed, "each") - this._fire("del", pos, n) - break - } - if (method2) { - method = method2 - pos = pos2 - n = n2 - loop = 2 - method2 = 0 - } - } - resetIndex(this.$proxy, index) - if (this.length !== oldLen) { - this._.length = this.length - } - return ret - } - - var _splice = ap.splice - var CollectionPrototype = { - _splice: _splice, - _fire: function (method, a, b) { - notifySubscribers(this.$events[subscribers], method, a, b) - }, - size: function () { //取得数组长度,这个函数可以同步视图,length不能 - return this._.length - }, - pushArray: function (array) { - var m = array.length, n = this.length - if (m) { - ap.push.apply(this.$model, array) - mutateArray.call(this, "add", n, m, Math.max(0, n - 1)) - } - return m + n - }, - push: function () { - //http://jsperf.com/closure-with-arguments - var array = [] - var i, n = arguments.length - for (i = 0; i < n; i++) { - array[i] = arguments[i] - } - return this.pushArray(array) - }, - unshift: function () { - var m = arguments.length, n = this.length - if (m) { - ap.unshift.apply(this.$model, arguments) - mutateArray.call(this, "add", 0, m, 0) - } - return m + n //IE67的unshift不会返回长度 - }, - shift: function () { - if (this.length) { - var el = this.$model.shift() - mutateArray.call(this, "del", 0, 1, 0) - return el //返回被移除的元素 - } - }, - pop: function () { - var n = this.length - if (n) { - var el = this.$model.pop() - mutateArray.call(this, "del", n - 1, 1, Math.max(0, n - 2)) - return el //返回被移除的元素 - } - }, - splice: function (start) { - var m = arguments.length, args = [], change - var removed = _splice.apply(this.$model, arguments) - if (removed.length) { //如果用户删掉了元素 - args.push("del", start, removed.length, 0) - change = true - } - if (m > 2) { //如果用户添加了元素 - if (change) { - args.splice(3, 1, 0, "add", start, m - 2) - } else { - args.push("add", start, m - 2, 0) - } - change = true - } - if (change) { //返回被移除的元素 - return mutateArray.apply(this, args) - } else { - return [] - } - }, - contains: function (el) { //判定是否包含 - return this.indexOf(el) !== -1 - }, - remove: function (el) { //移除第一个等于给定值的元素 - return this.removeAt(this.indexOf(el)) - }, - removeAt: function (index) { //移除指定索引上的元素 - if (index >= 0) { - this.$model.splice(index, 1) - return mutateArray.call(this, "del", index, 1, 0) - } - return [] - }, - clear: function () { - recycleProxies(this.$proxy, "each") - this.$model.length = this.$proxy.length = this.length = this._.length = 0 //清空数组 - this._fire("clear", 0) - return this - }, - removeAll: function (all) { //移除N个元素 - if (Array.isArray(all)) { - all.forEach(function (el) { - this.remove(el) - }, this) - } else if (typeof all === "function") { - for (var i = this.length - 1; i >= 0; i--) { - var el = this[i] - if (all(el, i)) { - this.removeAt(i) - } - } - } else { - this.clear() - } - }, - ensure: function (el) { - if (!this.contains(el)) { //只有不存在才push - this.push(el) - } - return this - }, - set: function (index, val) { - if (index >= 0) { - var valueType = avalon.type(val) - if (val && val.$model) { - val = val.$model - } - var target = this[index] - if (valueType === "object") { - for (var i in val) { - if (target.hasOwnProperty(i)) { - target[i] = val[i] - } - } - } else if (valueType === "array") { - target.clear().push.apply(target, val) - } else if (target !== val) { - this[index] = val - this.$model[index] = val - var proxy = this.$proxy[index] - if (proxy) { - notifySubscribers(proxy.$events.el) - } - // this._fire("set", index, val) - } - } - return this - } - } -//相当于原来bindingExecutors.repeat 的index分支 - function resetIndex(array, pos) { - var last = array.length - 1 - for (var el; el = array[pos]; pos++) { - el.$index = pos - el.$first = pos === 0 - el.$last = pos === last - } - } - - function sortByIndex(array, indexes) { - var map = {}; - for (var i = 0, n = indexes.length; i < n; i++) { - map[i] = array[i] // preserve - var j = indexes[i] - if (j in map) { - array[i] = map[j] - delete map[j] - } else { - array[i] = array[j] - } - } - } - - "sort,reverse".replace(rword, function (method) { - CollectionPrototype[method] = function () { - var newArray = this.$model//这是要排序的新数组 - var oldArray = newArray.concat() //保持原来状态的旧数组 - var mask = Math.random() - var indexes = [] - var hasSort - ap[method].apply(newArray, arguments) //排序 - for (var i = 0, n = oldArray.length; i < n; i++) { - var neo = newArray[i] - var old = oldArray[i] - if (isEqual(neo, old)) { - indexes.push(i) - } else { - var index = oldArray.indexOf(neo) - indexes.push(index)//得到新数组的每个元素在旧数组对应的位置 - oldArray[index] = mask //屏蔽已经找过的元素 - hasSort = true - } - } - if (hasSort) { - sortByIndex(this, indexes) - sortByIndex(this.$proxy, indexes) - this._fire("move", indexes) - resetIndex(this.$proxy, 0) - } - return this - } - }) - - /********************************************************************* - * 依赖调度系统 * - **********************************************************************/ - var ronduplex = /^(duplex|on)$/ - - avalon.injectBinding = function (data) { - Registry[expose] = data //暴光此函数,方便collectSubscribers收集 - avalon.openComputedCollect = true - var fn = data.evaluator - if (fn) { //如果是求值函数 - try { - var c = ronduplex.test(data.type) ? data : fn.apply(0, data.args) - if (!data.noRefresh) - data.handler(c, data.element, data) - } catch (e) { - //log("warning:exception throwed in [avalon.injectBinding] " + e) - delete data.evaluator - var node = data.element - if (node.nodeType === 3) { - var parent = node.parentNode - if (kernel.commentInterpolate) { - parent.replaceChild(DOC.createComment(data.value), node) - } else { - node.data = openTag + data.value + closeTag - } - } - } - } - avalon.openComputedCollect = false - delete Registry[expose] - } - - function collectSubscribers(list) { //收集依赖于这个访问器的订阅者 - var data = Registry[expose] - if (list && data && avalon.Array.ensure(list, data) && data.element) { //只有数组不存在此元素才push进去 - addSubscribers(data, list) - } - } - - - function addSubscribers(data, list) { - data.$uuid = data.$uuid || generateID() - list.$uuid = list.$uuid || generateID() - var obj = { - data: data, - list: list, - $$uuid: data.$uuid + list.$uuid - } - if (!$$subscribers[obj.$$uuid]) { - $$subscribers[obj.$$uuid] = 1 - $$subscribers.push(obj) - } - } - - function disposeData(data) { - data.element = null - data.rollback && data.rollback() - for (var key in data) { - data[key] = null - } - } - - function isRemove(el) { - try {//IE下,如果文本节点脱离DOM树,访问parentNode会报错 - if (!el.parentNode) { - return true - } - } catch (e) { - return true - } - return el.msRetain ? 0 : (el.nodeType === 1 ? typeof el.sourceIndex === "number" ? - el.sourceIndex === 0 : !root.contains(el) : !avalon.contains(root, el)) - } - - var $$subscribers = avalon.$$subscribers = [] - var beginTime = new Date() - var oldInfo = {} - - function removeSubscribers() { - var i = $$subscribers.length - var n = i - var k = 0 - var obj - var types = [] - var newInfo = {} - var needTest = {} - while (obj = $$subscribers[--i]) { - var data = obj.data - var type = data.type - if (newInfo[type]) { - newInfo[type]++ - } else { - newInfo[type] = 1 - types.push(type) - } - } - var diff = false - types.forEach(function (type) { - if (oldInfo[type] !== newInfo[type]) { - needTest[type] = 1 - diff = true - } - }) - i = n - //avalon.log("需要检测的个数 " + i) - if (diff) { - //avalon.log("有需要移除的元素") - while (obj = $$subscribers[--i]) { - data = obj.data - if (data.element === void 0) - continue - if (needTest[data.type] && isRemove(data.element)) { //如果它没有在DOM树 - k++ - $$subscribers.splice(i, 1) - delete $$subscribers[obj.$$uuid] - avalon.Array.remove(obj.list, data) - //log("debug: remove " + data.type) - disposeData(data) - obj.data = obj.list = null - } - } - } - oldInfo = newInfo - // avalon.log("已经移除的个数 " + k) - beginTime = new Date() - } - - function notifySubscribers(list) { //通知依赖于这个访问器的订阅者更新自身 - if (list && list.length) { - if (new Date() - beginTime > 444 && typeof list[0] === "object") { - removeSubscribers() - } - var args = aslice.call(arguments, 1) - for (var i = list.length, fn; fn = list[--i];) { - var el = fn.element - if (el && el.parentNode) { - if (fn.$repeat) { - fn.handler.apply(fn, args) //处理监控数组的方法 - } else if (fn.type !== "on") { //事件绑定只能由用户触发,不能由程序触发 - var fun = fn.evaluator || noop - fn.handler(fun.apply(0, fn.args || []), el, fn) - } - } - } - } - } - - /************************************************************************ - * HTML处理(parseHTML, innerHTML, clearHTML) * - **************************************************************************/ -//parseHTML的辅助变量 - var tagHooks = new function () {// jshint ignore:line - avalon.mix(this, { - option: DOC.createElement("select"), - thead: DOC.createElement("table"), - td: DOC.createElement("tr"), - area: DOC.createElement("map"), - tr: DOC.createElement("tbody"), - col: DOC.createElement("colgroup"), - legend: DOC.createElement("fieldset"), - _default: DOC.createElement("div"), - "g": DOC.createElementNS("http://www.w3.org/2000/svg", "svg") - }) - this.optgroup = this.option - this.tbody = this.tfoot = this.colgroup = this.caption = this.thead - this.th = this.td - }// jshint ignore:line - - String("circle,defs,ellipse,image,line,path,polygon,polyline,rect,symbol,text,use").replace(rword, function (tag) { - tagHooks[tag] = tagHooks.g //处理SVG - }) - var rtagName = /<([\w:]+)/ - var rxhtml = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig - var scriptTypes = oneObject(["", "text/javascript", "text/ecmascript", "application/ecmascript", "application/javascript"]) - var script = DOC.createElement("script") - var rhtml = /<|&#?\w+;/ - avalon.parseHTML = function (html) { - var fragment = hyperspace.cloneNode(false) - if (typeof html !== "string") { - return fragment - } - if (!rhtml.test(html)) { - fragment.appendChild(DOC.createTextNode(html)) - return fragment - } - html = html.replace(rxhtml, "<$1>").trim() - var tag = (rtagName.exec(html) || ["", ""])[1].toLowerCase(), - //取得其标签名 - wrapper = tagHooks[tag] || tagHooks._default, - firstChild - wrapper.innerHTML = html - var els = wrapper.getElementsByTagName("script") - if (els.length) { //使用innerHTML生成的script节点不会发出请求与执行text属性 - for (var i = 0, el; el = els[i++];) { - if (scriptTypes[el.type]) { - var neo = script.cloneNode(false) //FF不能省略参数 - ap.forEach.call(el.attributes, function (attr) { - neo.setAttribute(attr.name, attr.value) - })// jshint ignore:line - neo.text = el.text - el.parentNode.replaceChild(neo, el) - } - } - } - - while (firstChild = wrapper.firstChild) { // 将wrapper上的节点转移到文档碎片上! - fragment.appendChild(firstChild) - } - return fragment - } - - avalon.innerHTML = function (node, html) { - var a = this.parseHTML(html) - this.clearHTML(node).appendChild(a) - } - - avalon.clearHTML = function (node) { - node.textContent = "" - while (node.firstChild) { - node.removeChild(node.firstChild) - } - return node - } - - /********************************************************************* - * 扫描系统 * - **********************************************************************/ - - avalon.scan = function (elem, vmodel) { - elem = elem || root - var vmodels = vmodel ? [].concat(vmodel) : [] - scanTag(elem, vmodels) - } - -//http://www.w3.org/TR/html5/syntax.html#void-elements - var stopScan = oneObject("area,base,basefont,br,col,command,embed,hr,img,input,link,meta,param,source,track,wbr,noscript,script,style,textarea".toUpperCase()) - - function checkScan(elem, callback, innerHTML) { - var id = setTimeout(function () { - var currHTML = elem.innerHTML - clearTimeout(id) - if (currHTML === innerHTML) { - callback() - } else { - checkScan(elem, callback, currHTML) - } - }) - } - - - function createSignalTower(elem, vmodel) { - var id = elem.getAttribute("avalonctrl") || vmodel.$id - elem.setAttribute("avalonctrl", id) - vmodel.$events.expr = elem.tagName + '[avalonctrl="' + id + '"]' - } - - var getBindingCallback = function (elem, name, vmodels) { - var callback = elem.getAttribute(name) - if (callback) { - for (var i = 0, vm; vm = vmodels[i++];) { - if (vm.hasOwnProperty(callback) && typeof vm[callback] === "function") { - return vm[callback] - } - } - } - } - - function executeBindings(bindings, vmodels) { - for (var i = 0, data; data = bindings[i++];) { - data.vmodels = vmodels - bindingHandlers[data.type](data, vmodels) - if (data.evaluator && data.element && data.element.nodeType === 1) { //移除数据绑定,防止被二次解析 - //chrome使用removeAttributeNode移除不存在的特性节点时会报错 https://github.com/RubyLouvre/avalon/issues/99 - data.element.removeAttribute(data.name) - } - } - bindings.length = 0 - } - -//https://github.com/RubyLouvre/avalon/issues/636 - var mergeTextNodes = IEVersion && window.MutationObserver ? function (elem) { - var node = elem.firstChild, text - while (node) { - var aaa = node.nextSibling - if (node.nodeType === 3) { - if (text) { - text.nodeValue += node.nodeValue - elem.removeChild(node) - } else { - text = node - } - } else { - text = null - } - node = aaa - } - } : 0 - - var rmsAttr = /ms-(\w+)-?(.*)/ - var priorityMap = { - "if": 10, - "repeat": 90, - "data": 100, - "widget": 110, - "each": 1400, - "with": 1500, - "duplex": 2000, - "on": 3000 - } - - var events = oneObject("animationend,blur,change,input,click,dblclick,focus,keydown,keypress,keyup,mousedown,mouseenter,mouseleave,mousemove,mouseout,mouseover,mouseup,scan,scroll,submit") - var obsoleteAttrs = oneObject("value,title,alt,checked,selected,disabled,readonly,enabled") - - function bindingSorter(a, b) { - return a.priority - b.priority - } - - function scanAttr(elem, vmodels) { - //防止setAttribute, removeAttribute时 attributes自动被同步,导致for循环出错 - var attributes = elem.hasAttributes() ? avalon.slice(elem.attributes) : [] - var bindings = [], - msData = createMap(), - match - for (var i = 0, attr; attr = attributes[i++];) { - if (attr.specified) { - if (match = attr.name.match(rmsAttr)) { - //如果是以指定前缀命名的 - var type = match[1] - var param = match[2] || "" - var value = attr.value - var name = attr.name - msData[name] = value - if (events[type]) { - param = type - type = "on" - } else if (obsoleteAttrs[type]) { - log("warning!请改用ms-attr-" + type + "代替ms-" + type + "!") - if (type === "enabled") {//吃掉ms-enabled绑定,用ms-disabled代替 - log("warning!ms-enabled或ms-attr-enabled已经被废弃") - type = "disabled" - value = "!(" + value + ")" - } - param = type - type = "attr" - elem.removeAttribute(name) - name = "ms-attr-" + param - elem.setAttribute(name, value) - match = [name] - msData[name] = value - } - if (typeof bindingHandlers[type] === "function") { - var binding = { - type: type, - param: param, - element: elem, - name: match[0], - value: value, - priority: type in priorityMap ? priorityMap[type] : type.charCodeAt(0) * 10 + (Number(param) || 0) - } - if (type === "html" || type === "text") { - var token = getToken(value) - avalon.mix(binding, token) - binding.filters = binding.filters.replace(rhasHtml, function () { - binding.type = "html" - binding.group = 1 - return "" - })// jshint ignore:line - } - if (name === "ms-if-loop") { - binding.priority += 100 - } - if (vmodels.length) { - bindings.push(binding) - if (type === "widget") { - elem.msData = elem.msData || msData - } - } - } - } - } - } - var control = elem.type - if (control && msData["ms-duplex"]) { - if (msData["ms-attr-checked"] && /radio|checkbox/.test(control)) { - log("warning!" + control + "控件不能同时定义ms-attr-checked与ms-duplex") - } - if (msData["ms-attr-value"] && /text|password/.test(control)) { - log("warning!" + control + "控件不能同时定义ms-attr-value与ms-duplex") - } - } - bindings.sort(bindingSorter) - var scanNode = true - for (i = 0; binding = bindings[i]; i++) { - type = binding.type - if (rnoscanAttrBinding.test(type)) { - return executeBindings(bindings.slice(0, i + 1), vmodels) - } else if (scanNode) { - scanNode = !rnoscanNodeBinding.test(type) - } - } - executeBindings(bindings, vmodels) - if (scanNode && !stopScan[elem.tagName] && rbind.test(elem.innerHTML + elem.textContent)) { - mergeTextNodes && mergeTextNodes(elem) - scanNodeList(elem, vmodels) //扫描子孙元素 - } - } - - var rnoscanAttrBinding = /^if|widget|repeat$/ - var rnoscanNodeBinding = /^each|with|html|include$/ - - function scanNodeList(parent, vmodels) { - var node = parent.firstChild - while (node) { - var nextNode = node.nextSibling - scanNode(node, node.nodeType, vmodels) - node = nextNode - } - } - - function scanNodeArray(nodes, vmodels) { - for (var i = 0, node; node = nodes[i++];) { - scanNode(node, node.nodeType, vmodels) - } - } - - function scanNode(node, nodeType, vmodels) { - if (nodeType === 1) { - scanTag(node, vmodels) //扫描元素节点 - if (node.msCallback) { - node.msCallback() - node.msCallback = void 0 - } - } else if (nodeType === 3 && rexpr.test(node.data)) { - scanText(node, vmodels) //扫描文本节点 - } else if (kernel.commentInterpolate && nodeType === 8 && !rexpr.test(node.nodeValue)) { - scanText(node, vmodels) //扫描注释节点 - } - } - - function scanTag(elem, vmodels, node) { - //扫描顺序 ms-skip(0) --> ms-important(1) --> ms-controller(2) --> ms-if(10) --> ms-repeat(100) - //--> ms-if-loop(110) --> ms-attr(970) ...--> ms-each(1400)-->ms-with(1500)--〉ms-duplex(2000)垫后 - var a = elem.getAttribute("ms-skip") - var b = elem.getAttributeNode("ms-important") - var c = elem.getAttributeNode("ms-controller") - if (typeof a === "string") { - return - } else if (node = b || c) { - var newVmodel = avalon.vmodels[node.value] - if (!newVmodel) { - return - } - //ms-important不包含父VM,ms-controller相反 - vmodels = node === b ? [newVmodel] : [newVmodel].concat(vmodels) - elem.removeAttribute(node.name) //removeAttributeNode不会刷新[ms-controller]样式规则 - elem.classList.remove(node.name) - createSignalTower(elem, newVmodel) - } - scanAttr(elem, vmodels) //扫描特性节点 - } - - var rhasHtml = /\|\s*html\s*/, - r11a = /\|\|/g, - rlt = /</g, - rgt = />/g, - rstringLiteral = /(['"])(\\\1|.)+?\1/g - - function getToken(value) { - if (value.indexOf("|") > 0) { - var scapegoat = value.replace(rstringLiteral, function (_) { - return Array(_.length + 1).join("1")// jshint ignore:line - }) - var index = scapegoat.replace(r11a, "\u1122\u3344").indexOf("|") //干掉所有短路或 - if (index > -1) { - return { - filters: value.slice(index), - value: value.slice(0, index), - expr: true - } - } - } - return { - value: value, - filters: "", - expr: true - } - } - - function scanExpr(str) { - var tokens = [], - value, start = 0, - stop - do { - stop = str.indexOf(openTag, start) - if (stop === -1) { - break - } - value = str.slice(start, stop) - if (value) { // {{ 左边的文本 - tokens.push({ - value: value, - filters: "", - expr: false - }) - } - start = stop + openTag.length - stop = str.indexOf(closeTag, start) - if (stop === -1) { - break - } - value = str.slice(start, stop) - if (value) { //处理{{ }}插值表达式 - tokens.push(getToken(value)) - } - start = stop + closeTag.length - } while (1) - value = str.slice(start) - if (value) { //}} 右边的文本 - tokens.push({ - value: value, - expr: false, - filters: "" - }) - } - return tokens - } - - function scanText(textNode, vmodels) { - var bindings = [] - if (textNode.nodeType === 8) { - var token = getToken(textNode.nodeValue) - var tokens = [token] - } else { - tokens = scanExpr(textNode.data) - } - if (tokens.length) { - for (var i = 0; token = tokens[i++];) { - var node = DOC.createTextNode(token.value) //将文本转换为文本节点,并替换原来的文本节点 - if (token.expr) { - token.type = "text" - token.element = node - token.filters = token.filters.replace(rhasHtml, function () { - token.type = "html" - token.group = 1 - return "" - })// jshint ignore:line - bindings.push(token) //收集带有插值表达式的文本 - } - hyperspace.appendChild(node) - } - textNode.parentNode.replaceChild(hyperspace, textNode) - if (bindings.length) - executeBindings(bindings, vmodels) - } - } - - /********************************************************************* - * avalon的原型方法定义区 * - **********************************************************************/ - - function hyphen(target) { - //转换为连字符线风格 - return target.replace(/([a-z\d])([A-Z]+)/g, "$1-$2").toLowerCase() - } - - function camelize(target) { - //转换为驼峰风格 - if (target.indexOf("-") < 0 && target.indexOf("_") < 0) { - return target //提前判断,提高getStyle等的效率 - } - return target.replace(/[-_][^-_]/g, function (match) { - return match.charAt(1).toUpperCase() - }) - } - - "add,remove".replace(rword, function (method) { - avalon.fn[method + "Class"] = function (cls) { - var el = this[0] - //https://developer.mozilla.org/zh-CN/docs/Mozilla/Firefox/Releases/26 - if (cls && typeof cls === "string" && el && el.nodeType === 1) { - cls.replace(/\S+/g, function (c) { - el.classList[method](c) - }) - } - return this - } - }) - - avalon.fn.mix({ - hasClass: function (cls) { - var el = this[0] || {} //IE10+, chrome8+, firefox3.6+, safari5.1+,opera11.5+支持classList,chrome24+,firefox26+支持classList2.0 - return el.nodeType === 1 && el.classList.contains(cls) - }, - toggleClass: function (value, stateVal) { - var className, i = 0 - var classNames = String(value).split(/\s+/) - var isBool = typeof stateVal === "boolean" - while ((className = classNames[i++])) { - var state = isBool ? stateVal : !this.hasClass(className) - this[state ? "addClass" : "removeClass"](className) - } - return this - }, - attr: function (name, value) { - if (arguments.length === 2) { - this[0].setAttribute(name, value) - return this - } else { - return this[0].getAttribute(name) - } - }, - data: function (name, value) { - name = "data-" + hyphen(name || "") - switch (arguments.length) { - case 2: - this.attr(name, value) - return this - case 1: - var val = this.attr(name) - return parseData(val) - case 0: - var ret = {} - ap.forEach.call(this[0].attributes, function (attr) { - if (attr) { - name = attr.name - if (!name.indexOf("data-")) { - name = camelize(name.slice(5)) - ret[name] = parseData(attr.value) - } - } - }) - return ret - } - }, - removeData: function (name) { - name = "data-" + hyphen(name) - this[0].removeAttribute(name) - return this - }, - css: function (name, value) { - if (avalon.isPlainObject(name)) { - for (var i in name) { - avalon.css(this, i, name[i]) - } - } else { - var ret = avalon.css(this, name, value) - } - return ret !== void 0 ? ret : this - }, - position: function () { - var offsetParent, offset, - elem = this[0], - parentOffset = { - top: 0, - left: 0 - }; - if (!elem) { - return - } - if (this.css("position") === "fixed") { - offset = elem.getBoundingClientRect() - } else { - offsetParent = this.offsetParent() //得到真正的offsetParent - offset = this.offset() // 得到正确的offsetParent - if (offsetParent[0].tagName !== "HTML") { - parentOffset = offsetParent.offset() - } - parentOffset.top += avalon.css(offsetParent[0], "borderTopWidth", true) - parentOffset.left += avalon.css(offsetParent[0], "borderLeftWidth", true) - // Subtract offsetParent scroll positions - parentOffset.top -= offsetParent.scrollTop() - parentOffset.left -= offsetParent.scrollLeft() - } - return { - top: offset.top - parentOffset.top - avalon.css(elem, "marginTop", true), - left: offset.left - parentOffset.left - avalon.css(elem, "marginLeft", true) - } - }, - offsetParent: function () { - var offsetParent = this[0].offsetParent - while (offsetParent && avalon.css(offsetParent, "position") === "static") { - offsetParent = offsetParent.offsetParent; - } - return avalon(offsetParent || root) - }, - bind: function (type, fn, phase) { - if (this[0]) { //此方法不会链 - return avalon.bind(this[0], type, fn, phase) - } - }, - unbind: function (type, fn, phase) { - if (this[0]) { - avalon.unbind(this[0], type, fn, phase) - } - return this - }, - val: function (value) { - var node = this[0] - if (node && node.nodeType === 1) { - var get = arguments.length === 0 - var access = get ? ":get" : ":set" - var fn = valHooks[getValType(node) + access] - if (fn) { - var val = fn(node, value) - } else if (get) { - return (node.value || "").replace(/\r/g, "") - } else { - node.value = value - } - } - return get ? val : this - } - }) - - if (root.dataset) { - avalon.fn.data = function (name, val) { - name = name && camelize(name) - var dataset = this[0].dataset - switch (arguments.length) { - case 2: - dataset[name] = val - return this - case 1: - val = dataset[name] - return parseData(val) - case 0: - var ret = createMap() - for (name in dataset) { - ret[name] = parseData(dataset[name]) - } - return ret - } - } - } - var rbrace = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/ - avalon.parseJSON = JSON.parse - - function parseData(data) { - try { - if (typeof data === "object") - return data - data = data === "true" ? true : - data === "false" ? false : - data === "null" ? null : +data + "" === data ? +data : rbrace.test(data) ? JSON.parse(data) : data - } catch (e) { - } - return data - } - - avalon.each({ - scrollLeft: "pageXOffset", - scrollTop: "pageYOffset" - }, function (method, prop) { - avalon.fn[method] = function (val) { - var node = this[0] || {}, win = getWindow(node), - top = method === "scrollTop" - if (!arguments.length) { - return win ? win[prop] : node[method] - } else { - if (win) { - win.scrollTo(!top ? val : win[prop], top ? val : win[prop]) - } else { - node[method] = val - } - } - } - }) - - function getWindow(node) { - return node.window && node.document ? node : node.nodeType === 9 ? node.defaultView : false - } - -//=============================css相关================================== - var cssHooks = avalon.cssHooks = createMap() - var prefixes = ["", "-webkit-", "-moz-", "-ms-"] //去掉opera-15的支持 - var cssMap = { - "float": "cssFloat" - } - avalon.cssNumber = oneObject("columnCount,order,fillOpacity,fontWeight,lineHeight,opacity,orphans,widows,zIndex,zoom") - - avalon.cssName = function (name, host, camelCase) { - if (cssMap[name]) { - return cssMap[name] - } - host = host || root.style - for (var i = 0, n = prefixes.length; i < n; i++) { - camelCase = camelize(prefixes[i] + name) - if (camelCase in host) { - return (cssMap[name] = camelCase) - } - } - return null - } - cssHooks["@:set"] = function (node, name, value) { - node.style[name] = value - } - - cssHooks["@:get"] = function (node, name) { - if (!node || !node.style) { - throw new Error("getComputedStyle要求传入一个节点 " + node) - } - var ret, computed = getComputedStyle(node) - if (computed) { - ret = name === "filter" ? computed.getPropertyValue(name) : computed[name] - if (ret === "") { - ret = node.style[name] //其他浏览器需要我们手动取内联样式 - } - } - return ret - } - cssHooks["opacity:get"] = function (node) { - var ret = cssHooks["@:get"](node, "opacity") - return ret === "" ? "1" : ret - } - - "top,left".replace(rword, function (name) { - cssHooks[name + ":get"] = function (node) { - var computed = cssHooks["@:get"](node, name) - return /px$/.test(computed) ? computed : - avalon(node).position()[name] + "px" - } - }) - var cssShow = { - position: "absolute", - visibility: "hidden", - display: "block" - } - var rdisplayswap = /^(none|table(?!-c[ea]).+)/ - - function showHidden(node, array) { - //http://www.cnblogs.com/rubylouvre/archive/2012/10/27/2742529.html - if (node.offsetWidth <= 0) { //opera.offsetWidth可能小于0 - var styles = getComputedStyle(node, null) - if (rdisplayswap.test(styles["display"])) { - var obj = { - node: node - } - for (var name in cssShow) { - obj[name] = styles[name] - node.style[name] = cssShow[name] - } - array.push(obj) - } - var parent = node.parentNode - if (parent && parent.nodeType === 1) { - showHidden(parent, array) - } - } - } - - "Width,Height".replace(rword, function (name) { //fix 481 - var method = name.toLowerCase(), - clientProp = "client" + name, - scrollProp = "scroll" + name, - offsetProp = "offset" + name - cssHooks[method + ":get"] = function (node, which, override) { - var boxSizing = -4 - if (typeof override === "number") { - boxSizing = override - } - which = name === "Width" ? ["Left", "Right"] : ["Top", "Bottom"] - var ret = node[offsetProp] // border-box 0 - if (boxSizing === 2) { // margin-box 2 - return ret + avalon.css(node, "margin" + which[0], true) + avalon.css(node, "margin" + which[1], true) - } - if (boxSizing < 0) { // padding-box -2 - ret = ret - avalon.css(node, "border" + which[0] + "Width", true) - avalon.css(node, "border" + which[1] + "Width", true) - } - if (boxSizing === -4) { // content-box -4 - ret = ret - avalon.css(node, "padding" + which[0], true) - avalon.css(node, "padding" + which[1], true) - } - return ret - } - cssHooks[method + "&get"] = function (node) { - var hidden = []; - showHidden(node, hidden); - var val = cssHooks[method + ":get"](node) - for (var i = 0, obj; obj = hidden[i++];) { - node = obj.node - for (var n in obj) { - if (typeof obj[n] === "string") { - node.style[n] = obj[n] - } - } - } - return val; - } - avalon.fn[method] = function (value) { //会忽视其display - var node = this[0] - if (arguments.length === 0) { - if (node.setTimeout) { //取得窗口尺寸,IE9后可以用node.innerWidth /innerHeight代替 - return node["inner" + name] - } - if (node.nodeType === 9) { //取得页面尺寸 - var doc = node.documentElement - //FF chrome html.scrollHeight< body.scrollHeight - //IE 标准模式 : html.scrollHeight> body.scrollHeight - //IE 怪异模式 : html.scrollHeight 最大等于可视窗口多一点? - return Math.max(node.body[scrollProp], doc[scrollProp], node.body[offsetProp], doc[offsetProp], doc[clientProp]) - } - return cssHooks[method + "&get"](node) - } else { - return this.css(method, value) - } - } - avalon.fn["inner" + name] = function () { - return cssHooks[method + ":get"](this[0], void 0, -2) - } - avalon.fn["outer" + name] = function (includeMargin) { - return cssHooks[method + ":get"](this[0], void 0, includeMargin === true ? 2 : 0) - } - }) - avalon.fn.offset = function () { //取得距离页面左右角的坐标 - var node = this[0] - try { - var rect = node.getBoundingClientRect() - // Make sure element is not hidden (display: none) or disconnected - // https://github.com/jquery/jquery/pull/2043/files#r23981494 - if (rect.width || rect.height || node.getClientRects().length) { - var doc = node.ownerDocument - var root = doc.documentElement - var win = doc.defaultView - return { - top: rect.top + win.pageYOffset - root.clientTop, - left: rect.left + win.pageXOffset - root.clientLeft - } - } - } catch (e) { - return { - left: 0, - top: 0 - } - } - } - //=============================val相关======================= - - function getValType(elem) { - var ret = elem.tagName.toLowerCase() - return ret === "input" && /checkbox|radio/.test(elem.type) ? "checked" : ret - } - - var valHooks = { - "select:get": function (node, value) { - var option, options = node.options, - index = node.selectedIndex, - one = node.type === "select-one" || index < 0, - values = one ? null : [], - max = one ? index + 1 : options.length, - i = index < 0 ? max : one ? index : 0 - for (; i < max; i++) { - option = options[i] - //旧式IE在reset后不会改变selected,需要改用i === index判定 - //我们过滤所有disabled的option元素,但在safari5下,如果设置select为disable,那么其所有孩子都disable - //因此当一个元素为disable,需要检测其是否显式设置了disable及其父节点的disable情况 - if ((option.selected || i === index) && !option.disabled) { - value = option.value - if (one) { - return value - } - //收集所有selected值组成数组返回 - values.push(value) - } - } - return values - }, - "select:set": function (node, values, optionSet) { - values = [].concat(values) //强制转换为数组 - for (var i = 0, el; el = node.options[i++];) { - if ((el.selected = values.indexOf(el.value) > -1)) { - optionSet = true - } - } - if (!optionSet) { - node.selectedIndex = -1 - } - } - } - /********************************************************************* - * 编译系统 * - **********************************************************************/ - var quote = JSON.stringify - - var keywords = [ - "break,case,catch,continue,debugger,default,delete,do,else,false", - "finally,for,function,if,in,instanceof,new,null,return,switch,this", - "throw,true,try,typeof,var,void,while,with", /* 关键字*/ - "abstract,boolean,byte,char,class,const,double,enum,export,extends", - "final,float,goto,implements,import,int,interface,long,native", - "package,private,protected,public,short,static,super,synchronized", - "throws,transient,volatile", /*保留字*/ - "arguments,let,yield,undefined" /* ECMA 5 - use strict*/].join(",") - var rrexpstr = /\/\*[\w\W]*?\*\/|\/\/[^\n]*\n|\/\/[^\n]*$|"(?:[^"\\]|\\[\w\W])*"|'(?:[^'\\]|\\[\w\W])*'|[\s\t\n]*\.[\s\t\n]*[$\w\.]+/g - var rsplit = /[^\w$]+/g - var rkeywords = new RegExp(["\\b" + keywords.replace(/,/g, '\\b|\\b') + "\\b"].join('|'), 'g') - var rnumber = /\b\d[^,]*/g - var rcomma = /^,+|,+$/g - var cacheVars = new Cache(512) - var getVariables = function (code) { - var key = "," + code.trim() - var ret = cacheVars.get(key) - if (ret) { - return ret - } - var match = code - .replace(rrexpstr, "") - .replace(rsplit, ",") - .replace(rkeywords, "") - .replace(rnumber, "") - .replace(rcomma, "") - .split(/^$|,+/) - return cacheVars.put(key, uniqSet(match)) - } - /*添加赋值语句*/ - - function addAssign(vars, scope, name, data) { - var ret = [], - prefix = " = " + name + "." - var isProxy = /\$proxy\$each/.test(scope.$id) - for (var i = vars.length, prop; prop = vars[--i];) { - var el = isProxy && scope.$map[prop] ? "el" : prop - if (scope.hasOwnProperty(el)) { - ret.push(prop + prefix + el) - data.vars.push(prop) - if (data.type === "duplex") { - vars.get = name + "." + el - } - vars.splice(i, 1) - } - } - return ret - } - - function uniqSet(array) { - var ret = [], - unique = {} - for (var i = 0; i < array.length; i++) { - var el = array[i] - var id = el && typeof el.$id === "string" ? el.$id : el - if (!unique[id]) { - unique[id] = ret.push(el) - } - } - return ret - } - -//缓存求值函数,以便多次利用 - var cacheExprs = new Cache(128) -//取得求值函数及其传参 - var rduplex = /\w\[.*\]|\w\.\w/ - var rproxy = /(\$proxy\$[a-z]+)\d+$/ - var rthimRightParentheses = /\)\s*$/ - var rthimOtherParentheses = /\)\s*\|/g - var rquoteFilterName = /\|\s*([$\w]+)/g - var rpatchBracket = /"\s*\["/g - var rthimLeftParentheses = /"\s*\(/g - - function parseFilter(val, filters) { - filters = filters - .replace(rthimRightParentheses, "")//处理最后的小括号 - .replace(rthimOtherParentheses, function () {//处理其他小括号 - return "],|" - }) - .replace(rquoteFilterName, function (a, b) { //处理|及它后面的过滤器的名字 - return "[" + quote(b) - }) - .replace(rpatchBracket, function () { - return '"],["' - }) - .replace(rthimLeftParentheses, function () { - return '",' - }) + "]" - return "return avalon.filters.$filter(" + val + ", " + filters + ")" - } - - function parseExpr(code, scopes, data) { - var dataType = data.type - var filters = data.filters || "" - var exprId = scopes.map(function (el) { - return String(el.$id).replace(rproxy, "$1") - }) + code + dataType + filters - var vars = getVariables(code).concat(), - assigns = [], - names = [], - args = [], - prefix = "" - //args 是一个对象数组, names 是将要生成的求值函数的参数 - scopes = uniqSet(scopes) - data.vars = [] - for (var i = 0, sn = scopes.length; i < sn; i++) { - if (vars.length) { - var name = "vm" + expose + "_" + i - names.push(name) - args.push(scopes[i]) - assigns.push.apply(assigns, addAssign(vars, scopes[i], name, data)) - } - } - if (!assigns.length && dataType === "duplex") { - return - } - if (dataType !== "duplex" && (code.indexOf("||") > -1 || code.indexOf("&&") > -1)) { - //https://github.com/RubyLouvre/avalon/issues/583 - data.vars.forEach(function (v) { - var reg = new RegExp("\\b" + v + "(?:\\.\\w+|\\[\\w+\\])+", "ig") - code = code.replace(reg, function (_) { - var c = _.charAt(v.length) - var r = IEVersion ? code.slice(arguments[1] + _.length) : RegExp.rightContext - var method = /^\s*\(/.test(r) - if (c === "." || c === "[" || method) {//比如v为aa,我们只匹配aa.bb,aa[cc],不匹配aaa.xxx - var name = "var" + String(Math.random()).replace(/^0\./, "") - if (method) {//array.size() - var array = _.split(".") - if (array.length > 2) { - var last = array.pop() - assigns.push(name + " = " + array.join(".")) - return name + "." + last - } else { - return _ - } - } - assigns.push(name + " = " + _) - return name - } else { - return _ - } - }) - }) - } - //---------------args---------------- - data.args = args - //---------------cache---------------- - var fn = cacheExprs.get(exprId) //直接从缓存,免得重复生成 - if (fn) { - data.evaluator = fn - return - } - prefix = assigns.join(", ") - if (prefix) { - prefix = "var " + prefix - } - if (/\S/.test(filters)) { //文本绑定,双工绑定才有过滤器 - if (!/text|html/.test(data.type)) { - throw Error("ms-" + data.type + "不支持过滤器") - } - code = "\nvar ret" + expose + " = " + code + ";\r\n" - code += parseFilter("ret" + expose, filters) - } else if (dataType === "duplex") { //双工绑定 - var _body = "'use strict';\nreturn function(vvv){\n\t" + - prefix + - ";\n\tif(!arguments.length){\n\t\treturn " + - code + - "\n\t}\n\t" + (!rduplex.test(code) ? vars.get : code) + - "= vvv;\n} " - try { - fn = Function.apply(noop, names.concat(_body)) - data.evaluator = cacheExprs.put(exprId, fn) - } catch (e) { - log("debug: parse error," + e.message) - } - return - } else if (dataType === "on") { //事件绑定 - if (code.indexOf("(") === -1) { - code += ".call(this, $event)" - } else { - code = code.replace("(", ".call(this,") - } - names.push("$event") - code = "\nreturn " + code + ";" //IE全家 Function("return ")出错,需要Function("return ;") - var lastIndex = code.lastIndexOf("\nreturn") - var header = code.slice(0, lastIndex) - var footer = code.slice(lastIndex) - code = header + "\n" + footer - } else { //其他绑定 - code = "\nreturn " + code + ";" //IE全家 Function("return ")出错,需要Function("return ;") - } - try { - fn = Function.apply(noop, names.concat("'use strict';\n" + prefix + code)) - data.evaluator = cacheExprs.put(exprId, fn) - } catch (e) { - log("debug: parse error," + e.message) - } finally { - vars = assigns = names = null //释放内存 - } - } - - -//parseExpr的智能引用代理 - - function parseExprProxy(code, scopes, data, tokens, noRegister) { - if (Array.isArray(tokens)) { - code = tokens.map(function (el) { - return el.expr ? "(" + el.value + ")" : quote(el.value) - }).join(" + ") - } - parseExpr(code, scopes, data) - if (data.evaluator && !noRegister) { - data.handler = bindingExecutors[data.handlerName || data.type] - //方便调试 - //这里非常重要,我们通过判定视图刷新函数的element是否在DOM树决定 - //将它移出订阅者列表 - avalon.injectBinding(data) - } - } - - avalon.parseExprProxy = parseExprProxy - var bools = ["autofocus,autoplay,async,allowTransparency,checked,controls", - "declare,disabled,defer,defaultChecked,defaultSelected", - "contentEditable,isMap,loop,multiple,noHref,noResize,noShade", - "open,readOnly,selected" - ].join(",") - var boolMap = {} - bools.replace(rword, function (name) { - boolMap[name.toLowerCase()] = name - }) - - var propMap = { //属性名映射 - "accept-charset": "acceptCharset", - "char": "ch", - "charoff": "chOff", - "class": "className", - "for": "htmlFor", - "http-equiv": "httpEquiv" - } - - var anomaly = ["accessKey,bgColor,cellPadding,cellSpacing,codeBase,codeType,colSpan", - "dateTime,defaultValue,frameBorder,longDesc,maxLength,marginWidth,marginHeight", - "rowSpan,tabIndex,useMap,vSpace,valueType,vAlign" - ].join(",") - anomaly.replace(rword, function (name) { - propMap[name.toLowerCase()] = name - }) - - var rnoscripts = /(?:[\s\S]+?)<\/noscript>/img - var rnoscriptText = /([\s\S]+?)<\/noscript>/im - - var getXHR = function () { - return new (window.XMLHttpRequest || ActiveXObject)("Microsoft.XMLHTTP") // jshint ignore:line - } - - var cacheTmpls = avalon.templateCache = {} - - bindingHandlers.attr = function (data, vmodels) { - var text = data.value.trim(), - simple = true - if (text.indexOf(openTag) > -1 && text.indexOf(closeTag) > 2) { - simple = false - if (rexpr.test(text) && RegExp.rightContext === "" && RegExp.leftContext === "") { - simple = true - text = RegExp.$1 - } - } - if (data.type === "include") { - var elem = data.element - data.includeRendered = getBindingCallback(elem, "data-include-rendered", vmodels) - data.includeLoaded = getBindingCallback(elem, "data-include-loaded", vmodels) - var outer = data.includeReplace = !!avalon(elem).data("includeReplace") - if (avalon(elem).data("includeCache")) { - data.templateCache = {} - } - data.startInclude = DOC.createComment("ms-include") - data.endInclude = DOC.createComment("ms-include-end") - if (outer) { - data.element = data.startInclude - elem.parentNode.insertBefore(data.startInclude, elem) - elem.parentNode.insertBefore(data.endInclude, elem.nextSibling) - } else { - elem.insertBefore(data.startInclude, elem.firstChild) - elem.appendChild(data.endInclude) - } - } - data.handlerName = "attr" //handleName用于处理多种绑定共用同一种bindingExecutor的情况 - parseExprProxy(text, vmodels, data, (simple ? 0 : scanExpr(data.value))) - } - - bindingExecutors.attr = function (val, elem, data) { - var method = data.type, - attrName = data.param - if (method === "css") { - avalon(elem).css(attrName, val) - } else if (method === "attr") { - // ms-attr-class="xxx" vm.xxx="aaa bbb ccc"将元素的className设置为aaa bbb ccc - // ms-attr-class="xxx" vm.xxx=false 清空元素的所有类名 - // ms-attr-name="yyy" vm.yyy="ooo" 为元素设置name属性 - var toRemove = (val === false) || (val === null) || (val === void 0) - - if (!W3C && propMap[attrName]) { //旧式IE下需要进行名字映射 - attrName = propMap[attrName] - } - var bool = boolMap[attrName] - if (typeof elem[bool] === "boolean") { - elem[bool] = !!val //布尔属性必须使用el.xxx = true|false方式设值 - if (!val) { //如果为false, IE全系列下相当于setAttribute(xxx,''),会影响到样式,需要进一步处理 - toRemove = true - } - } - if (toRemove) { - return elem.removeAttribute(attrName) - } - - //SVG只能使用setAttribute(xxx, yyy), VML只能使用elem.xxx = yyy ,HTML的固有属性必须elem.xxx = yyy - var isInnate = rsvg.test(elem) ? false : (DOC.namespaces && isVML(elem)) ? true : attrName in elem.cloneNode(false) - if (isInnate) { - elem[attrName] = val - } else { - elem.setAttribute(attrName, val) - } - } else if (method === "include" && val) { - var vmodels = data.vmodels - var rendered = data.includeRendered - var loaded = data.includeLoaded - var replace = data.includeReplace - var target = replace ? elem.parentNode : elem - var scanTemplate = function (text) { - if (loaded) { - var newText = loaded.apply(target, [text].concat(vmodels)) - if (typeof newText === "string") - text = newText - } - if (rendered) { - checkScan(target, function () { - rendered.call(target) - }, NaN) - } - var lastID = data.includeLastID - if (data.templateCache && lastID && lastID !== val) { - var lastTemplate = data.templateCache[lastID] - if (!lastTemplate) { - lastTemplate = data.templateCache[lastID] = DOC.createElement("div") - ifGroup.appendChild(lastTemplate) - } - } - data.includeLastID = val - while (true) { - var node = data.startInclude.nextSibling - if (node && node !== data.endInclude) { - target.removeChild(node) - if (lastTemplate) - lastTemplate.appendChild(node) - } else { - break - } - } - var dom = getTemplateNodes(data, val, text) - var nodes = avalon.slice(dom.childNodes) - target.insertBefore(dom, data.endInclude) - scanNodeArray(nodes, vmodels) - } - - if (data.param === "src") { - if (typeof cacheTmpls[val] === "string") { - avalon.nextTick(function () { - scanTemplate(cacheTmpls[val]) - }) - } else if (Array.isArray(cacheTmpls[val])) { //#805 防止在循环绑定中发出许多相同的请求 - cacheTmpls[val].push(scanTemplate) - } else { - var xhr = getXHR() - xhr.onreadystatechange = function () { - if (xhr.readyState === 4) { - var s = xhr.status - if (s >= 200 && s < 300 || s === 304 || s === 1223) { - var text = xhr.responseText - for (var f = 0, fn; fn = cacheTmpls[val][f++];) { - fn(text) - } - cacheTmpls[val] = text - } - } - } - cacheTmpls[val] = [scanTemplate] - xhr.open("GET", val, true) - if ("withCredentials" in xhr) { - xhr.withCredentials = true - } - xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest") - xhr.send(null) - } - } else { - //IE系列与够新的标准浏览器支持通过ID取得元素(firefox14+) - //http://tjvantoll.com/2012/07/19/dom-element-references-as-global-variables/ - var el = val && val.nodeType === 1 ? val : DOC.getElementById(val) - if (el) { - if (el.tagName === "NOSCRIPT" && !(el.innerHTML || el.fixIE78)) { //IE7-8 innerText,innerHTML都无法取得其内容,IE6能取得其innerHTML - xhr = getXHR() //IE9-11与chrome的innerHTML会得到转义的内容,它们的innerText可以 - xhr.open("GET", location, false) //谢谢Nodejs 乱炖群 深圳-纯属虚构 - xhr.send(null) - //http://bbs.csdn.net/topics/390349046?page=1#post-393492653 - var noscripts = DOC.getElementsByTagName("noscript") - var array = (xhr.responseText || "").match(rnoscripts) || [] - var n = array.length - for (var i = 0; i < n; i++) { - var tag = noscripts[i] - if (tag) { //IE6-8中noscript标签的innerHTML,innerText是只读的 - tag.style.display = "none" //http://haslayout.net/css/noscript-Ghost-Bug - tag.fixIE78 = (array[i].match(rnoscriptText) || ["", " "])[1] - } - } - } - avalon.nextTick(function () { - scanTemplate(el.fixIE78 || el.value || el.innerText || el.innerHTML) - }) - } - } - } else { - if (!root.hasAttribute && typeof val === "string" && (method === "src" || method === "href")) { - val = val.replace(/&/g, "&") //处理IE67自动转义的问题 - } - elem[method] = val - if (window.chrome && elem.tagName === "EMBED") { - var parent = elem.parentNode //#525 chrome1-37下embed标签动态设置src不能发生请求 - var comment = document.createComment("ms-src") - parent.replaceChild(comment, elem) - parent.replaceChild(elem, comment) - } - } - } - - function getTemplateNodes(data, id, text) { - var div = data.templateCache && data.templateCache[id] - if (div) { - var dom = DOC.createDocumentFragment(), - firstChild - while (firstChild = div.firstChild) { - dom.appendChild(firstChild) - } - return dom - } - return avalon.parseHTML(text) - } - -//这几个指令都可以使用插值表达式,如ms-src="aaa/{{b}}/{{c}}.html" - "title,alt,src,value,css,include,href".replace(rword, function (name) { - bindingHandlers[name] = bindingHandlers.attr - }) -//根据VM的属性值或表达式的值切换类名,ms-class="xxx yyy zzz:flag" -//http://www.cnblogs.com/rubylouvre/archive/2012/12/17/2818540.html - bindingHandlers["class"] = function (data, vmodels) { - var oldStyle = data.param, - text = data.value, - rightExpr - data.handlerName = "class" - if (!oldStyle || isFinite(oldStyle)) { - data.param = "" //去掉数字 - var noExpr = text.replace(rexprg, function (a) { - return a.replace(/./g, "0") - //return Math.pow(10, a.length - 1) //将插值表达式插入10的N-1次方来占位 - }) - var colonIndex = noExpr.indexOf(":") //取得第一个冒号的位置 - if (colonIndex === -1) { // 比如 ms-class="aaa bbb ccc" 的情况 - var className = text - } else { // 比如 ms-class-1="ui-state-active:checked" 的情况 - className = text.slice(0, colonIndex) - rightExpr = text.slice(colonIndex + 1) - parseExpr(rightExpr, vmodels, data) //决定是添加还是删除 - if (!data.evaluator) { - log("debug: ms-class '" + (rightExpr || "").trim() + "' 不存在于VM中") - return false - } else { - data._evaluator = data.evaluator - data._args = data.args - } - } - var hasExpr = rexpr.test(className) //比如ms-class="width{{w}}"的情况 - if (!hasExpr) { - data.immobileClass = className - } - parseExprProxy("", vmodels, data, (hasExpr ? scanExpr(className) : 0)) - } else { - data.immobileClass = data.oldStyle = data.param - parseExprProxy(text, vmodels, data) - } - } - - bindingExecutors["class"] = function (val, elem, data) { - var $elem = avalon(elem), - method = data.type - if (method === "class" && data.oldStyle) { //如果是旧风格 - $elem.toggleClass(data.oldStyle, !!val) - } else { - //如果存在冒号就有求值函数 - data.toggleClass = data._evaluator ? !!data._evaluator.apply(elem, data._args) : true - data.newClass = data.immobileClass || val - if (data.oldClass && data.newClass !== data.oldClass) { - $elem.removeClass(data.oldClass) - } - data.oldClass = data.newClass - switch (method) { - case "class": - $elem.toggleClass(data.newClass, data.toggleClass) - break - case "hover": - case "active": - if (!data.hasBindEvent) { //确保只绑定一次 - var activate = "mouseenter" //在移出移入时切换类名 - var abandon = "mouseleave" - if (method === "active") { //在聚焦失焦中切换类名 - elem.tabIndex = elem.tabIndex || -1 - activate = "mousedown" - abandon = "mouseup" - var fn0 = $elem.bind("mouseleave", function () { - data.toggleClass && $elem.removeClass(data.newClass) - }) - } - var fn1 = $elem.bind(activate, function () { - data.toggleClass && $elem.addClass(data.newClass) - }) - var fn2 = $elem.bind(abandon, function () { - data.toggleClass && $elem.removeClass(data.newClass) - }) - data.rollback = function () { - $elem.unbind("mouseleave", fn0) - $elem.unbind(activate, fn1) - $elem.unbind(abandon, fn2) - } - data.hasBindEvent = true - } - break; - } - } - } - - "hover,active".replace(rword, function (method) { - bindingHandlers[method] = bindingHandlers["class"] - }) -//ms-controller绑定已经在scanTag 方法中实现 -//ms-css绑定已由ms-attr绑定实现 - - -// bindingHandlers.data 定义在if.js - bindingExecutors.data = function (val, elem, data) { - var key = "data-" + data.param - if (val && typeof val === "object") { - elem[key] = val - } else { - elem.setAttribute(key, String(val)) - } - } -//双工绑定 - var duplexBinding = bindingHandlers.duplex = function (data, vmodels) { - var elem = data.element, - hasCast - parseExprProxy(data.value, vmodels, data, 0, 1) - - data.changed = getBindingCallback(elem, "data-duplex-changed", vmodels) || noop - if (data.evaluator && data.args) { - var params = [] - var casting = oneObject("string,number,boolean,checked") - if (elem.type === "radio" && data.param === "") { - data.param = "checked" - } - if (elem.msData) { - elem.msData["ms-duplex"] = data.value - } - data.param.replace(/\w+/g, function (name) { - if (/^(checkbox|radio)$/.test(elem.type) && /^(radio|checked)$/.test(name)) { - if (name === "radio") - log("ms-duplex-radio已经更名为ms-duplex-checked") - name = "checked" - data.isChecked = true - } - if (name === "bool") { - name = "boolean" - log("ms-duplex-bool已经更名为ms-duplex-boolean") - } else if (name === "text") { - name = "string" - log("ms-duplex-text已经更名为ms-duplex-string") - } - if (casting[name]) { - hasCast = true - } - avalon.Array.ensure(params, name) - }) - if (!hasCast) { - params.push("string") - } - data.param = params.join("-") - data.bound = function (type, callback) { - if (elem.addEventListener) { - elem.addEventListener(type, callback, false) - } else { - elem.attachEvent("on" + type, callback) - } - var old = data.rollback - data.rollback = function () { - elem.avalonSetter = null - avalon.unbind(elem, type, callback) - old && old() - } - } - for (var i in avalon.vmodels) { - var v = avalon.vmodels[i] - v.$fire("avalon-ms-duplex-init", data) - } - var cpipe = data.pipe || (data.pipe = pipe) - cpipe(null, data, "init") - var tagName = elem.tagName - duplexBinding[tagName] && duplexBinding[tagName](elem, data.evaluator.apply(null, data.args), data) - } - } -//不存在 bindingExecutors.duplex - - function fixNull(val) { - return val == null ? "" : val - } - - avalon.duplexHooks = { - checked: { - get: function (val, data) { - return !data.element.oldValue - } - }, - string: { - get: function (val) { //同步到VM - return val - }, - set: fixNull - }, - "boolean": { - get: function (val) { - return val === "true" - }, - set: fixNull - }, - number: { - get: function (val, data) { - var number = parseFloat(val) - if (-val === -number) { - return number - } - var arr = /strong|medium|weak/.exec(data.element.getAttribute("data-duplex-number")) || ["medium"] - switch (arr[0]) { - case "strong": - return 0 - case "medium": - return val === "" ? "" : 0 - case "weak": - return val - } - }, - set: fixNull - } - } - - function pipe(val, data, action, e) { - data.param.replace(/\w+/g, function (name) { - var hook = avalon.duplexHooks[name] - if (hook && typeof hook[action] === "function") { - val = hook[action](val, data) - } - }) - return val - } - - var TimerID, ribbon = [] - - avalon.tick = function (fn) { - if (ribbon.push(fn) === 1) { - TimerID = setInterval(ticker, 60) - } - } - - function ticker() { - for (var n = ribbon.length - 1; n >= 0; n--) { - var el = ribbon[n] - if (el() === false) { - ribbon.splice(n, 1) - } - } - if (!ribbon.length) { - clearInterval(TimerID) - } - } - - var watchValueInTimer = noop - var rmsinput = /text|password|hidden/ - new function () { // jshint ignore:line - try { //#272 IE9-IE11, firefox - var setters = {} - var aproto = HTMLInputElement.prototype - var bproto = HTMLTextAreaElement.prototype - - function newSetter(value) { // jshint ignore:line - if (avalon.contains(root, this)) { - setters[this.tagName].call(this, value) - if (!rmsinput.test(this.type)) - return - if (!this.msFocus && this.avalonSetter) { - this.avalonSetter() - } - } - } - - var inputProto = HTMLInputElement.prototype - Object.getOwnPropertyNames(inputProto) //故意引发IE6-8等浏览器报错 - setters["INPUT"] = Object.getOwnPropertyDescriptor(aproto, "value").set - Object.defineProperty(aproto, "value", { - set: newSetter - }) - setters["TEXTAREA"] = Object.getOwnPropertyDescriptor(bproto, "value").set - Object.defineProperty(bproto, "value", { - set: newSetter - }) - } catch (e) { - //在chrome 43中 ms-duplex终于不需要使用定时器实现双向绑定了 - // http://updates.html5rocks.com/2015/04/DOM-attributes-now-on-the-prototype - // https://docs.google.com/document/d/1jwA8mtClwxI-QJuHT7872Z0pxpZz8PBkf2bGAbsUtqs/edit?pli=1 - watchValueInTimer = avalon.tick - } - } // jshint ignore:line -//处理radio, checkbox, text, textarea, password - duplexBinding.INPUT = function (element, evaluator, data) { - var $type = element.type, - bound = data.bound, - $elem = avalon(element), - composing = false - - function callback(value) { - data.changed.call(this, value, data) - } - - function compositionStart() { - composing = true - } - - function compositionEnd() { - composing = false - } - - //当value变化时改变model的值 - - var updateVModel = function () { - if (composing) //处理中文输入法在minlengh下引发的BUG - return - var val = element.oldValue = element.value //防止递归调用形成死循环 - var lastValue = data.pipe(val, data, "get") - if ($elem.data("duplexObserve") !== false) { - evaluator(lastValue) - callback.call(element, lastValue) - if ($elem.data("duplex-focus")) { - avalon.nextTick(function () { - element.focus() - }) - } - } - } - //当model变化时,它就会改变value的值 - data.handler = function () { - var val = data.pipe(evaluator(), data, "set") + "" - if (val !== element.oldValue) { - element.value = val - } - } - if (data.isChecked || $type === "radio") { - updateVModel = function () { - if ($elem.data("duplexObserve") !== false) { - var lastValue = data.pipe(element.value, data, "get") - evaluator(lastValue) - callback.call(element, lastValue) - } - } - data.handler = function () { - var val = evaluator() - var checked = data.isChecked ? !!val : val + "" === element.value - element.checked = element.oldValue = checked - } - bound("click", updateVModel) - } else if ($type === "checkbox") { - updateVModel = function () { - if ($elem.data("duplexObserve") !== false) { - var method = element.checked ? "ensure" : "remove" - var array = evaluator() - if (!Array.isArray(array)) { - log("ms-duplex应用于checkbox上要对应一个数组") - array = [array] - } - avalon.Array[method](array, data.pipe(element.value, data, "get")) - callback.call(element, array) - } - } - data.handler = function () { - var array = [].concat(evaluator()) //强制转换为数组 - element.checked = array.indexOf(data.pipe(element.value, data, "get")) > -1 - } - bound("change", updateVModel) - } else { - var events = element.getAttribute("data-duplex-event") || "input" - if (element.attributes["data-event"]) { - log("data-event指令已经废弃,请改用data-duplex-event") - } - events.replace(rword, function (name) { - switch (name) { - case "input": - bound("input", updateVModel) - bound("DOMAutoComplete", updateVModel) - if (!IEVersion) { - bound("compositionstart", compositionStart) - bound("compositionend", compositionEnd) - } - break - default: - bound(name, updateVModel) - break - } - }) - bound("focus", function () { - element.msFocus = true - }) - bound("blur", function () { - element.msFocus = false - }) - if (rmsinput.test($type)) { - watchValueInTimer(function () { - if (root.contains(element)) { - if (!element.msFocus && element.oldValue !== element.value) { - updateVModel() - } - } else if (!element.msRetain) { - return false - } - }) - } - - element.avalonSetter = updateVModel - } - - element.oldValue = element.value - avalon.injectBinding(data) - callback.call(element, element.value) - } - duplexBinding.TEXTAREA = duplexBinding.INPUT - duplexBinding.SELECT = function (element, evaluator, data) { - var $elem = avalon(element) - - function updateVModel() { - if ($elem.data("duplexObserve") !== false) { - var val = $elem.val() //字符串或字符串数组 - if (Array.isArray(val)) { - val = val.map(function (v) { - return data.pipe(v, data, "get") - }) - } else { - val = data.pipe(val, data, "get") - } - if (val + "" !== element.oldValue) { - evaluator(val) - } - data.changed.call(element, val, data) - } - } - - data.handler = function () { - var val = evaluator() - val = val && val.$model || val - if (Array.isArray(val)) { - if (!element.multiple) { - log("ms-duplex在不能对应一个数组") - } - } - //必须变成字符串后才能比较 - val = Array.isArray(val) ? val.map(String) : val + "" - if (val + "" !== element.oldValue) { - $elem.val(val) - element.oldValue = val + "" - } - } - data.bound("change", updateVModel) - element.msCallback = function () { - avalon.injectBinding(data) - data.changed.call(element, evaluator(), data) - } - } -// bindingHandlers.html 定义在if.js - bindingExecutors.html = function (val, elem, data) { - val = val == null ? "" : val - var isHtmlFilter = "group" in data - var parent = isHtmlFilter ? elem.parentNode : elem - if (!parent) - return - if (typeof val === "string") { - var fragment = avalon.parseHTML(val) - } else if (val.nodeType === 11) { //将val转换为文档碎片 - fragment = val - } else if (val.nodeType === 1 || val.item) { - var nodes = val.nodeType === 1 ? val.childNodes : val.item - fragment = hyperspace.cloneNode(true) - while (nodes[0]) { - fragment.appendChild(nodes[0]) - } - } - if (!fragment.firstChild) { - fragment.appendChild(DOC.createComment("ms-html")) - } - nodes = avalon.slice(fragment.childNodes) - //插入占位符, 如果是过滤器,需要有节制地移除指定的数量,如果是html指令,直接清空 - if (isHtmlFilter) { - var n = data.group, - i = 1 - - data.group = nodes.length - data.element = nodes[0] - - while (i < n) { - var node = elem.nextSibling - if (node) { - parent.removeChild(node) - i++ - } - } - parent.replaceChild(fragment, elem) - } else { - avalon.clearHTML(parent).appendChild(fragment) - } - scanNodeArray(nodes, data.vmodels) - } - bindingHandlers["if"] = - bindingHandlers.data = - bindingHandlers.text = - bindingHandlers.html = - function (data, vmodels) { - parseExprProxy(data.value, vmodels, data) - } - - bindingExecutors["if"] = function (val, elem, data) { - if (val) { //插回DOM树 - if (elem.nodeType === 8) { - elem.parentNode.replaceChild(data.template, elem) - elem = data.element = data.template //这时可能为null - } - if (elem.getAttribute(data.name)) { - elem.removeAttribute(data.name) - scanAttr(elem, data.vmodels) - } - data.rollback = null - } else { //移出DOM树,并用注释节点占据原位置 - if (elem.nodeType === 1) { - var node = data.element = DOC.createComment("ms-if") - elem.parentNode.replaceChild(node, elem) - data.template = elem //元素节点 - ifGroup.appendChild(elem) - data.rollback = function () { - if (elem.parentNode === ifGroup) { - ifGroup.removeChild(elem) - } - } - } - } - } -//ms-important绑定已经在scanTag 方法中实现 -//ms-include绑定已由ms-attr绑定实现 - - var rdash = /\(([^)]*)\)/ - bindingHandlers.on = function (data, vmodels) { - var value = data.value - data.type = "on" - var eventType = data.param.replace(/-\d+$/, "") // ms-on-mousemove-10 - if (typeof bindingHandlers.on[eventType + "Hook"] === "function") { - bindingHandlers.on[eventType + "Hook"](data) - } - if (value.indexOf("(") > 0 && value.indexOf(")") > -1) { - var matched = (value.match(rdash) || ["", ""])[1].trim() - if (matched === "" || matched === "$event") { // aaa() aaa($event)当成aaa处理 - value = value.replace(rdash, "") - } - } - parseExprProxy(value, vmodels, data) - } - - bindingExecutors.on = function (callback, elem, data) { - callback = function (e) { - var fn = data.evaluator || noop - return fn.apply(this, data.args.concat(e)) - } - var eventType = data.param.replace(/-\d+$/, "") // ms-on-mousemove-10 - if (eventType === "scan") { - callback.call(elem, { - type: eventType - }) - } else if (typeof data.specialBind === "function") { - data.specialBind(elem, callback) - } else { - var removeFn = avalon.bind(elem, eventType, callback) - } - data.rollback = function () { - if (typeof data.specialUnbind === "function") { - data.specialUnbind() - } else { - avalon.unbind(elem, eventType, removeFn) - } - } - } - bindingHandlers.repeat = function (data, vmodels) { - var type = data.type - parseExprProxy(data.value, vmodels, data, 0, 1) - var freturn = false - try { - var $repeat = data.$repeat = data.evaluator.apply(0, data.args || []) - var xtype = avalon.type($repeat) - if (xtype !== "object" && xtype !== "array") { - freturn = true - avalon.log("warning:" + data.value + "只能是对象或数组") - } - } catch (e) { - freturn = true - } - - var arr = data.value.split(".") || [] - if (arr.length > 1) { - arr.pop() - var n = arr[0] - for (var i = 0, v; v = vmodels[i++];) { - if (v && v.hasOwnProperty(n)) { - var events = v[n].$events || {} - events[subscribers] = events[subscribers] || [] - events[subscribers].push(data) - break - } - } - } - var elem = data.element - elem.removeAttribute(data.name) - - data.sortedCallback = getBindingCallback(elem, "data-with-sorted", vmodels) - data.renderedCallback = getBindingCallback(elem, "data-" + type + "-rendered", vmodels) - var signature = generateID(type) - var comment = data.element = DOC.createComment(signature + ":end") - data.clone = DOC.createComment(signature) - hyperspace.appendChild(comment) - - if (type === "each" || type === "with") { - data.template = elem.innerHTML.trim() - avalon.clearHTML(elem).appendChild(comment) - } else { - data.template = elem.outerHTML.trim() - elem.parentNode.replaceChild(comment, elem) - } - data.template = avalon.parseHTML(data.template) - data.rollback = function () { - var elem = data.element - if (!elem) - return - bindingExecutors.repeat.call(data, "clear") - var parentNode = elem.parentNode - var content = data.template - var target = content.firstChild - parentNode.replaceChild(content, elem) - var start = data.$with - start && start.parentNode && start.parentNode.removeChild(start) - target = data.element = data.type === "repeat" ? target : parentNode - } - if (freturn) { - return - } - data.handler = bindingExecutors.repeat - data.$outer = {} - var check0 = "$key" - var check1 = "$val" - if (Array.isArray($repeat)) { - $repeat.$map[data.param || "el"] = 1 - check0 = "$first" - check1 = "$last" - } - for (i = 0; v = vmodels[i++];) { - if (v.hasOwnProperty(check0) && v.hasOwnProperty(check1)) { - data.$outer = v - break - } - } - var $events = $repeat.$events - var $list = ($events || {})[subscribers] - if ($list && avalon.Array.ensure($list, data)) { - addSubscribers(data, $list) - } - if (xtype === "object") { - data.$with = true - var pool = !$events ? {} : $events.$withProxyPool || ($events.$withProxyPool = {}) - data.handler("append", $repeat, pool) - } else if ($repeat.length) { - data.handler("add", 0, $repeat.length) - } - } - - bindingExecutors.repeat = function (method, pos, el) { - if (method) { - var data = this, start, fragment - var end = data.element - var comments = getComments(data) - var parent = end.parentNode - var transation = hyperspace.cloneNode(false) - switch (method) { - case "add": //在pos位置后添加el数组(pos为插入位置,el为要插入的个数) - var n = pos + el - var fragments = [] - var array = data.$repeat - for (var i = pos; i < n; i++) { - var proxy = array.$proxy[i] - proxy.$outer = data.$outer - shimController(data, transation, proxy, fragments) - } - parent.insertBefore(transation, comments[pos] || end) - for (i = 0; fragment = fragments[i++];) { - scanNodeArray(fragment.nodes, fragment.vmodels) - fragment.nodes = fragment.vmodels = null - } - break - case "del": //将pos后的el个元素删掉(pos, el都是数字) - sweepNodes(comments[pos], comments[pos + el] || end) - break - case "clear": - start = comments[0] - if (start) { - sweepNodes(start, end) - } - break - case "move": - start = comments[0] - if (start) { - var signature = start.nodeValue - var rooms = [] - var room = [], - node - sweepNodes(start, end, function () { - room.unshift(this) - if (this.nodeValue === signature) { - rooms.unshift(room) - room = [] - } - }) - sortByIndex(rooms, pos) - while (room = rooms.shift()) { - while (node = room.shift()) { - transation.appendChild(node) - } - } - parent.insertBefore(transation, end) - } - break - case "append": //将pos的键值对从el中取出(pos为一个普通对象,el为预先生成好的代理VM对象池) - var pool = el - var keys = [] - fragments = [] - for (var key in pos) { //得到所有键名 - if (pos.hasOwnProperty(key) && key !== "hasOwnProperty") { - keys.push(key) - } - } - if (data.sortedCallback) { //如果有回调,则让它们排序 - var keys2 = data.sortedCallback.call(parent, keys) - if (keys2 && Array.isArray(keys2) && keys2.length) { - keys = keys2 - } - } - for (i = 0; key = keys[i++];) { - if (key !== "hasOwnProperty") { - if (!pool[key]) { - pool[key] = withProxyAgent(key, data) - } - shimController(data, transation, pool[key], fragments) - } - } - var comment = data.$with = data.clone - parent.insertBefore(comment, end) - parent.insertBefore(transation, end) - for (i = 0; fragment = fragments[i++];) { - scanNodeArray(fragment.nodes, fragment.vmodels) - fragment.nodes = fragment.vmodels = null - } - break - } - if (method === "clear") - method = "del" - var callback = data.renderedCallback || noop, - args = arguments - checkScan(parent, function () { - callback.apply(parent, args) - if (parent.oldValue && parent.tagName === "SELECT") { //fix #503 - avalon(parent).val(parent.oldValue.split(",")) - } - }, NaN) - } - } - - "with,each".replace(rword, function (name) { - bindingHandlers[name] = bindingHandlers.repeat - }) - - function shimController(data, transation, proxy, fragments) { - var content = data.template.cloneNode(true) - var nodes = avalon.slice(content.childNodes) - if (!data.$with) { - content.insertBefore(data.clone.cloneNode(false), content.firstChild) - } - transation.appendChild(content) - var nv = [proxy].concat(data.vmodels) - var fragment = { - nodes: nodes, - vmodels: nv - } - fragments.push(fragment) - } - - function getComments(data) { - var end = data.element - var signature = end.nodeValue.replace(":end", "") - var node = end.previousSibling - var array = [] - while (node) { - if (node.nodeValue === signature) { - array.unshift(node) - } - node = node.previousSibling - } - return array - } - - -//移除掉start与end之间的节点(保留end) - function sweepNodes(start, end, callback) { - while (true) { - var node = end.previousSibling - if (!node) - break - node.parentNode.removeChild(node) - callback && callback.call(node) - if (node === start) { - break - } - } - } - -// 为ms-each,ms-with, ms-repeat会创建一个代理VM, -// 通过它们保持一个下上文,让用户能调用$index,$first,$last,$remove,$key,$val,$outer等属性与方法 -// 所有代理VM的产生,消费,收集,存放通过xxxProxyFactory,xxxProxyAgent, recycleProxies,xxxProxyPool实现 - var eachProxyPool = [] - var withProxyPool = [] - - function eachProxyFactory() { - var source = { - $index: 0, - $first: false, - $last: false, - $map: {}, - $host: [], - $outer: {}, - $remove: avalon.noop, - el: { - get: function () { - var e = this.$events - var array = e.$index - e.$index = e.el //#817 通过$index为el收集依赖 - try { - return this.$host[this.$index] - } finally { - e.$index = array - } - }, - set: function (val) { - this.$host.set(this.$index, val) - } - } - } - - var second = { - $last: 1, - $first: 1, - $index: 1 - } - var proxy = modelFactory(source, second) - proxy.$id = generateID("$proxy$each") - return proxy - } - - function eachProxyAgent(index, host) { - var proxy = eachProxyPool.shift() - if (!proxy) { - proxy = eachProxyFactory() - } - var last = host.length - 1 - proxy.$index = index - proxy.$first = index === 0 - proxy.$last = index === last - proxy.$map = host.$map - proxy.$host = host - proxy.$remove = function () { - return host.removeAt(proxy.$index) - } - return proxy - } - - function withProxyFactory() { - var proxy = modelFactory({ - $key: "", - $outer: {}, - $host: {}, - $val: { - get: function () { - return this.$host[this.$key] - }, - set: function (val) { - this.$host[this.$key] = val - } - } - }, { - $val: 1 - }) - proxy.$id = generateID("$proxy$with") - return proxy - } - - function withProxyAgent(key, data) { - var proxy = withProxyPool.pop() - if (!proxy) { - proxy = withProxyFactory() - } - var host = data.$repeat - proxy.$key = key - proxy.$host = host - proxy.$outer = data.$outer - if (host.$events) { - proxy.$events.$val = host.$events[key] - } else { - proxy.$events = {} - } - return proxy - } - - function recycleProxies(proxies, type) { - var proxyPool = type === "each" ? eachProxyPool : withProxyPool - avalon.each(proxies, function (key, proxy) { - if (proxy.$events) { - for (var i in proxy.$events) { - if (Array.isArray(proxy.$events[i])) { - proxy.$events[i].forEach(function (data) { - if (typeof data === "object") - disposeData(data) - }) // jshint ignore:line - proxy.$events[i].length = 0 - } - } - proxy.$host = proxy.$outer = {} - if (proxyPool.unshift(proxy) > kernel.maxRepeatSize) { - proxyPool.pop() - } - } - }) - if (type === "each") - proxies.length = 0 - } - - /********************************************************************* - * 各种指令 * - **********************************************************************/ -//ms-skip绑定已经在scanTag 方法中实现 -// bindingHandlers.text 定义在if.js - bindingExecutors.text = function (val, elem) { - val = val == null ? "" : val //不在页面上显示undefined null - if (elem.nodeType === 3) { //绑定在文本节点上 - try { //IE对游离于DOM树外的节点赋值会报错 - elem.data = val - } catch (e) { - } - } else { //绑定在特性节点上 - elem.textContent = val - } - } - function parseDisplay(nodeName, val) { - //用于取得此类标签的默认display值 - var key = "_" + nodeName - if (!parseDisplay[key]) { - var node = DOC.createElement(nodeName) - root.appendChild(node) - if (W3C) { - val = getComputedStyle(node, null).display - } else { - val = node.currentStyle.display - } - root.removeChild(node) - parseDisplay[key] = val - } - return parseDisplay[key] - } - - avalon.parseDisplay = parseDisplay - - bindingHandlers.visible = function (data, vmodels) { - var elem = avalon(data.element) - var display = elem.css("display") - if (display === "none") { - var style = elem[0].style - var has = /visibility/i.test(style.cssText) - var visible = elem.css("visibility") - style.display = "" - style.visibility = "hidden" - display = elem.css("display") - if (display === "none") { - display = parseDisplay(elem[0].nodeName) - } - style.visibility = has ? visible : "" - } - data.display = display - parseExprProxy(data.value, vmodels, data) - } - - bindingExecutors.visible = function (val, elem, data) { - elem.style.display = val ? data.display : "none" - } - bindingHandlers.widget = function (data, vmodels) { - var args = data.value.match(rword) - var elem = data.element - var widget = args[0] - var id = args[1] - if (!id || id === "$") { //没有定义或为$时,取组件名+随机数 - id = generateID(widget) - } - var optName = args[2] || widget //没有定义,取组件名 - var constructor = avalon.ui[widget] - if (typeof constructor === "function") { //ms-widget="tabs,tabsAAA,optname" - vmodels = elem.vmodels || vmodels - for (var i = 0, v; v = vmodels[i++];) { - if (v.hasOwnProperty(optName) && typeof v[optName] === "object") { - var vmOptions = v[optName] - vmOptions = vmOptions.$model || vmOptions - break - } - } - if (vmOptions) { - var wid = vmOptions[widget + "Id"] - if (typeof wid === "string") { - log("warning!不再支持" + widget + "Id") - id = wid - } - } - //抽取data-tooltip-text、data-tooltip-attr属性,组成一个配置对象 - var widgetData = avalon.getWidgetData(elem, widget) - data.value = [widget, id, optName].join(",") - data[widget + "Id"] = id - data.evaluator = noop - elem.msData["ms-widget-id"] = id - var options = data[widget + "Options"] = avalon.mix({}, constructor.defaults, vmOptions || {}, widgetData) - elem.removeAttribute("ms-widget") - var vmodel = constructor(elem, data, vmodels) || {} //防止组件不返回VM - if (vmodel.$id) { - avalon.vmodels[id] = vmodel - createSignalTower(elem, vmodel) - try { - vmodel.$init(function () { - avalon.scan(elem, [vmodel].concat(vmodels)) - if (typeof options.onInit === "function") { - options.onInit.call(elem, vmodel, options, vmodels) - } - }) - } catch (e) { - } - data.rollback = function () { - try { - vmodel.widgetElement = null - vmodel.$remove() - } catch (e) { - } - elem.msData = {} - delete avalon.vmodels[vmodel.$id] - } - addSubscribers(data, widgetList) - if (window.chrome) { - elem.addEventListener("DOMNodeRemovedFromDocument", function () { - setTimeout(removeSubscribers) - }) - } - } else { - avalon.scan(elem, vmodels) - } - } else if (vmodels.length) { //如果该组件还没有加载,那么保存当前的vmodels - elem.vmodels = vmodels - } - } - var widgetList = [] -//不存在 bindingExecutors.widget - /********************************************************************* - * 自带过滤器 * - **********************************************************************/ - var rscripts = /]*>([\S\s]*?)<\/script\s*>/gim - var ron = /\s+(on[^=\s]+)(?:=("[^"]*"|'[^']*'|[^\s>]+))?/g - var ropen = /<\w+\b(?:(["'])[^"]*?(\1)|[^>])*>/ig - var rsanitize = { - a: /\b(href)\=("javascript[^"]*"|'javascript[^']*')/ig, - img: /\b(src)\=("javascript[^"]*"|'javascript[^']*')/ig, - form: /\b(action)\=("javascript[^"]*"|'javascript[^']*')/ig - } - var rsurrogate = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g - var rnoalphanumeric = /([^\#-~| |!])/g; - - function numberFormat(number, decimals, point, thousands) { - //form http://phpjs.org/functions/number_format/ - //number 必需,要格式化的数字 - //decimals 可选,规定多少个小数位。 - //point 可选,规定用作小数点的字符串(默认为 . )。 - //thousands 可选,规定用作千位分隔符的字符串(默认为 , ),如果设置了该参数,那么所有其他参数都是必需的。 - number = (number + '') - .replace(/[^0-9+\-Ee.]/g, '') - var n = !isFinite(+number) ? 0 : +number, - prec = !isFinite(+decimals) ? 3 : Math.abs(decimals), - sep = thousands || ",", - dec = point || ".", - s = '', - toFixedFix = function (n, prec) { - var k = Math.pow(10, prec) - return '' + (Math.round(n * k) / k) - .toFixed(prec) - } - // Fix for IE parseFloat(0.55).toFixed(0) = 0; - s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)) - .split('.') - if (s[0].length > 3) { - s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep) - } - if ((s[1] || '') - .length < prec) { - s[1] = s[1] || '' - s[1] += new Array(prec - s[1].length + 1) - .join('0') - } - return s.join(dec) - } - - - var filters = avalon.filters = { - uppercase: function (str) { - return str.toUpperCase() - }, - lowercase: function (str) { - return str.toLowerCase() - }, - truncate: function (str, length, truncation) { - //length,新字符串长度,truncation,新字符串的结尾的字段,返回新字符串 - length = length || 30 - truncation = truncation === void(0) ? "..." : truncation - return str.length > length ? str.slice(0, length - truncation.length) + truncation : String(str) - }, - $filter: function (val) { - for (var i = 1, n = arguments.length; i < n; i++) { - var array = arguments[i] - var fn = avalon.filters[array.shift()] - if (typeof fn === "function") { - var arr = [val].concat(array) - val = fn.apply(null, arr) - } - } - return val - }, - camelize: camelize, - //https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet - // chrome - // chrome - // IE67chrome - // IE67chrome - // IE67chrome - sanitize: function (str) { - return str.replace(rscripts, "").replace(ropen, function (a, b) { - var match = a.toLowerCase().match(/<(\w+)\s/) - if (match) { //处理a标签的href属性,img标签的src属性,form标签的action属性 - var reg = rsanitize[match[1]] - if (reg) { - a = a.replace(reg, function (s, name, value) { - var quote = value.charAt(0) - return name + "=" + quote + "javascript:void(0)" + quote// jshint ignore:line - }) - } - } - return a.replace(ron, " ").replace(/\s+/g, " ") //移除onXXX事件 - }) - }, - escape: function (str) { - //将字符串经过 str 转义得到适合在页面中显示的内容, 例如替换 < 为 < - return String(str). - replace(/&/g, '&'). - replace(rsurrogate, function (value) { - var hi = value.charCodeAt(0) - var low = value.charCodeAt(1) - return '&#' + (((hi - 0xD800) * 0x400) + (low - 0xDC00) + 0x10000) + ';' - }). - replace(rnoalphanumeric, function (value) { - return '&#' + value.charCodeAt(0) + ';' - }). - replace(//g, '>') - }, - currency: function (amount, symbol, fractionSize) { - return (symbol || "\uFFE5") + numberFormat(amount, isFinite(fractionSize) ? fractionSize : 2) - }, - number: numberFormat - } - /* - 'yyyy': 4 digit representation of year (e.g. AD 1 => 0001, AD 2010 => 2010) - 'yy': 2 digit representation of year, padded (00-99). (e.g. AD 2001 => 01, AD 2010 => 10) - 'y': 1 digit representation of year, e.g. (AD 1 => 1, AD 199 => 199) - 'MMMM': Month in year (January-December) - 'MMM': Month in year (Jan-Dec) - 'MM': Month in year, padded (01-12) - 'M': Month in year (1-12) - 'dd': Day in month, padded (01-31) - 'd': Day in month (1-31) - 'EEEE': Day in Week,(Sunday-Saturday) - 'EEE': Day in Week, (Sun-Sat) - 'HH': Hour in day, padded (00-23) - 'H': Hour in day (0-23) - 'hh': Hour in am/pm, padded (01-12) - 'h': Hour in am/pm, (1-12) - 'mm': Minute in hour, padded (00-59) - 'm': Minute in hour (0-59) - 'ss': Second in minute, padded (00-59) - 's': Second in minute (0-59) - 'a': am/pm marker - 'Z': 4 digit (+sign) representation of the timezone offset (-1200-+1200) - format string can also be one of the following predefined localizable formats: - - 'medium': equivalent to 'MMM d, y h:mm:ss a' for en_US locale (e.g. Sep 3, 2010 12:05:08 pm) - 'short': equivalent to 'M/d/yy h:mm a' for en_US locale (e.g. 9/3/10 12:05 pm) - 'fullDate': equivalent to 'EEEE, MMMM d,y' for en_US locale (e.g. Friday, September 3, 2010) - 'longDate': equivalent to 'MMMM d, y' for en_US locale (e.g. September 3, 2010 - 'mediumDate': equivalent to 'MMM d, y' for en_US locale (e.g. Sep 3, 2010) - 'shortDate': equivalent to 'M/d/yy' for en_US locale (e.g. 9/3/10) - 'mediumTime': equivalent to 'h:mm:ss a' for en_US locale (e.g. 12:05:08 pm) - 'shortTime': equivalent to 'h:mm a' for en_US locale (e.g. 12:05 pm) - */ - new function () {// jshint ignore:line - function toInt(str) { - return parseInt(str, 10) || 0 - } - - function padNumber(num, digits, trim) { - var neg = "" - if (num < 0) { - neg = '-' - num = -num - } - num = "" + num - while (num.length < digits) - num = "0" + num - if (trim) - num = num.substr(num.length - digits) - return neg + num - } - - function dateGetter(name, size, offset, trim) { - return function (date) { - var value = date["get" + name]() - if (offset > 0 || value > -offset) - value += offset - if (value === 0 && offset === -12) { - value = 12 - } - return padNumber(value, size, trim) - } - } - - function dateStrGetter(name, shortForm) { - return function (date, formats) { - var value = date["get" + name]() - var get = (shortForm ? ("SHORT" + name) : name).toUpperCase() - return formats[get][value] - } - } - - function timeZoneGetter(date) { - var zone = -1 * date.getTimezoneOffset() - var paddedZone = (zone >= 0) ? "+" : "" - paddedZone += padNumber(Math[zone > 0 ? "floor" : "ceil"](zone / 60), 2) + padNumber(Math.abs(zone % 60), 2) - return paddedZone - } - - //取得上午下午 - - function ampmGetter(date, formats) { - return date.getHours() < 12 ? formats.AMPMS[0] : formats.AMPMS[1] - } - - var DATE_FORMATS = { - yyyy: dateGetter("FullYear", 4), - yy: dateGetter("FullYear", 2, 0, true), - y: dateGetter("FullYear", 1), - MMMM: dateStrGetter("Month"), - MMM: dateStrGetter("Month", true), - MM: dateGetter("Month", 2, 1), - M: dateGetter("Month", 1, 1), - dd: dateGetter("Date", 2), - d: dateGetter("Date", 1), - HH: dateGetter("Hours", 2), - H: dateGetter("Hours", 1), - hh: dateGetter("Hours", 2, -12), - h: dateGetter("Hours", 1, -12), - mm: dateGetter("Minutes", 2), - m: dateGetter("Minutes", 1), - ss: dateGetter("Seconds", 2), - s: dateGetter("Seconds", 1), - sss: dateGetter("Milliseconds", 3), - EEEE: dateStrGetter("Day"), - EEE: dateStrGetter("Day", true), - a: ampmGetter, - Z: timeZoneGetter - } - var rdateFormat = /((?:[^yMdHhmsaZE']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z))(.*)/ - var raspnetjson = /^\/Date\((\d+)\)\/$/ - filters.date = function (date, format) { - var locate = filters.date.locate, - text = "", - parts = [], - fn, match - format = format || "mediumDate" - format = locate[format] || format - if (typeof date === "string") { - if (/^\d+$/.test(date)) { - date = toInt(date) - } else if (raspnetjson.test(date)) { - date = +RegExp.$1 - } else { - var trimDate = date.trim() - var dateArray = [0, 0, 0, 0, 0, 0, 0] - var oDate = new Date(0) - //取得年月日 - trimDate = trimDate.replace(/^(\d+)\D(\d+)\D(\d+)/, function (_, a, b, c) { - var array = c.length === 4 ? [c, a, b] : [a, b, c] - dateArray[0] = toInt(array[0]) //å¹´ - dateArray[1] = toInt(array[1]) - 1 //月 - dateArray[2] = toInt(array[2]) //日 - return "" - }) - var dateSetter = oDate.setFullYear - var timeSetter = oDate.setHours - trimDate = trimDate.replace(/[T\s](\d+):(\d+):?(\d+)?\.?(\d)?/, function (_, a, b, c, d) { - dateArray[3] = toInt(a) //小时 - dateArray[4] = toInt(b) //分钟 - dateArray[5] = toInt(c) //秒 - if (d) { //毫秒 - dateArray[6] = Math.round(parseFloat("0." + d) * 1000) - } - return "" - }) - var tzHour = 0 - var tzMin = 0 - trimDate = trimDate.replace(/Z|([+-])(\d\d):?(\d\d)/, function (z, symbol, c, d) { - dateSetter = oDate.setUTCFullYear - timeSetter = oDate.setUTCHours - if (symbol) { - tzHour = toInt(symbol + c) - tzMin = toInt(symbol + d) - } - return "" - }) - - dateArray[3] -= tzHour - dateArray[4] -= tzMin - dateSetter.apply(oDate, dateArray.slice(0, 3)) - timeSetter.apply(oDate, dateArray.slice(3)) - date = oDate - } - } - if (typeof date === "number") { - date = new Date(date) - } - if (avalon.type(date) !== "date") { - return - } - while (format) { - match = rdateFormat.exec(format) - if (match) { - parts = parts.concat(match.slice(1)) - format = parts.pop() - } else { - parts.push(format) - format = null - } - } - parts.forEach(function (value) { - fn = DATE_FORMATS[value] - text += fn ? fn(date, locate) : value.replace(/(^'|'$)/g, "").replace(/''/g, "'") - }) - return text - } - var locate = { - AMPMS: { - 0: "上午", - 1: "下午" - }, - DAY: { - 0: "星期日", - 1: "星期一", - 2: "星期二", - 3: "星期三", - 4: "星期四", - 5: "星期五", - 6: "星期六" - }, - MONTH: { - 0: "1月", - 1: "2月", - 2: "3月", - 3: "4月", - 4: "5月", - 5: "6月", - 6: "7月", - 7: "8月", - 8: "9月", - 9: "10月", - 10: "11月", - 11: "12月" - }, - SHORTDAY: { - "0": "周日", - "1": "周一", - "2": "周二", - "3": "周三", - "4": "周四", - "5": "周五", - "6": "周六" - }, - fullDate: "yå¹´M月d日EEEE", - longDate: "yå¹´M月d日", - medium: "yyyy-M-d H:mm:ss", - mediumDate: "yyyy-M-d", - mediumTime: "H:mm:ss", - "short": "yy-M-d ah:mm", - shortDate: "yy-M-d", - shortTime: "ah:mm" - } - locate.SHORTMONTH = locate.MONTH - filters.date.locate = locate - }// jshint ignore:line - /********************************************************************* - * AMD加载器 * - **********************************************************************/ -//https://www.devbridge.com/articles/understanding-amd-requirejs/ -//http://maxogden.com/nested-dependencies.html - var modules = avalon.modules = { - "domReady!": { - exports: avalon, - state: 3 - }, - "avalon": { - exports: avalon, - state: 4 - } - } -//Object(modules[id]).state拥有如下值 -// undefined 没有定义 -// 1(send) 已经发出请求 -// 2(loading) 已经被执行但还没有执行完成,在这个阶段define方法会被执行 -// 3(loaded) 执行完毕,通过onload/onreadystatechange回调判定,在这个阶段checkDeps方法会执行 -// 4(execute) 其依赖也执行完毕, 值放到exports对象上,在这个阶段fireFactory方法会执行 - modules.exports = modules.avalon - - new function () {// jshint ignore:line - var loadings = [] //正在加载中的模块列表 - var factorys = [] //放置define方法的factory函数 - var rjsext = /\.js$/i - - function makeRequest(name, config) { -//1. 去掉资源前缀 - var res = "js" - name = name.replace(/^(\w+)\!/, function (a, b) { - res = b - return "" - }) - if (res === "ready") { - log("debug: ready!已经被废弃,请使用domReady!") - res = "domReady" - } -//2. 去掉querystring, hash - var query = "" - name = name.replace(rquery, function (a) { - query = a - return "" - }) - //3. 去掉扩展名 - var suffix = "." + res - var ext = /js|css/.test(suffix) ? suffix : "" - name = name.replace(/\.[a-z0-9]+$/g, function (a) { - if (a === suffix) { - ext = a - return "" - } else { - return a - } - }) - var req = avalon.mix({ - query: query, - ext: ext, - res: res, - name: name, - toUrl: toUrl - }, config) - req.toUrl(name) - return req - } - - function fireRequest(req) { - var name = req.name - var res = req.res - //1. 如果该模块已经发出请求,直接返回 - var module = modules[name] - var urlNoQuery = name && req.urlNoQuery - if (module && module.state >= 1) { - return name - } - module = modules[urlNoQuery] - if (module && module.state >= 3) { - innerRequire(module.deps || [], module.factory, urlNoQuery) - return urlNoQuery - } - if (name && !module) { - module = modules[urlNoQuery] = { - id: urlNoQuery, - state: 1 //send - } - var wrap = function (obj) { - resources[res] = obj - obj.load(name, req, function (a) { - if (arguments.length && a !== void 0) { - module.exports = a - } - module.state = 4 - checkDeps() - }) - } - - if (!resources[res]) { - innerRequire([res], wrap) - } else { - wrap(resources[res]) - } - } - return name ? urlNoQuery : res + "!" - } - -//核心API之一 require - var requireQueue = [] - var isUserFirstRequire = false - innerRequire = avalon.require = function (array, factory, parentUrl, defineConfig) { - if (!isUserFirstRequire) { - requireQueue.push(avalon.slice(arguments)) - if (arguments.length <= 2) { - isUserFirstRequire = true - var queue = requireQueue.splice(0, requireQueue.length), args - while (args = queue.shift()) { - innerRequire.apply(null, args) - } - } - return - } - - if (!Array.isArray(array)) { - avalon.error("require方法的第一个参数应为数组 " + array) - } - var deps = [] // 放置所有依赖项的完整路径 - var uniq = createMap() - var id = parentUrl || "callback" + setTimeout("1")// jshint ignore:line - defineConfig = defineConfig || createMap() - defineConfig.baseUrl = kernel.baseUrl - var isBuilt = !!defineConfig.built - if (parentUrl) { - defineConfig.parentUrl = parentUrl.substr(0, parentUrl.lastIndexOf("/")) - defineConfig.mapUrl = parentUrl.replace(rjsext, "") - } - if (isBuilt) { - var req = makeRequest(defineConfig.defineName, defineConfig) - id = req.urlNoQuery - } else { - array.forEach(function (name) { - var req = makeRequest(name, defineConfig) - var url = fireRequest(req) //加载资源,并返回该资源的完整地址 - if (url) { - if (!uniq[url]) { - deps.push(url) - uniq[url] = "司徒正美" //去重 - } - } - }) - } - - var module = modules[id] - if (!module || module.state !== 4) { - modules[id] = { - id: id, - deps: isBuilt ? array.concat() : deps, - factory: factory || noop, - state: 3 - } - } - if (!module) { - //如果此模块是定义在另一个JS文件中, 那必须等该文件加载完毕, 才能放到检测列队中 - loadings.push(id) - } - checkDeps() - } - -//核心API之二 require - innerRequire.define = function (name, deps, factory) { //模块名,依赖列表,模块本身 - if (typeof name !== "string") { - factory = deps - deps = name - name = "anonymous" - } - if (!Array.isArray(deps)) { - factory = deps - deps = [] - } - var config = { - built: !isUserFirstRequire, //用r.js打包后,所有define会放到requirejs之前 - defineName: name - } - var args = [deps, factory, config] - factory.require = function (url) { - args.splice(2, 0, url) - if (modules[url]) { - modules[url].state = 3 //loaded - var isCycle = false - try { - isCycle = checkCycle(modules[url].deps, url) - } catch (e) { - } - if (isCycle) { - avalon.error(url + "模块与之前的模块存在循环依赖,请不要直接用script标签引入" + url + "模块") - } - } - delete factory.require //释放内存 - innerRequire.apply(null, args) //0,1,2 --> 1,2,0 - } -//根据标准,所有遵循W3C标准的浏览器,script标签会按标签的出现顺序执行。 -//老的浏览器中,加载也是按顺序的:一个文件下载完成后,才开始下载下一个文件。 -//较新的浏览器中(IE8+ 、FireFox3.5+ 、Chrome4+ 、Safari4+),为了减小请求时间以优化体验, -//下载可以是并行的,但是执行顺序还是按照标签出现的顺序。 -//但如果script标签是动态插入的, 就未必按照先请求先执行的原则了,目测只有firefox遵守 -//唯一比较一致的是,IE10+及其他标准浏览器,一旦开始解析脚本, 就会一直堵在那里,直接脚本解析完毕 -//亦即,先进入loading阶段的script标签(模块)必然会先进入loaded阶段 - var url = config.built ? "unknown" : getCurrentScript() - if (url) { - var module = modules[url] - if (module) { - module.state = 2 - } - factory.require(url) - } else {//合并前后的safari,合并后的IE6-9走此分支 - factorys.push(factory) - } - } -//核心API之三 require.config(settings) - innerRequire.config = kernel - //核心API之四 define.amd 标识其符合AMD规范 - innerRequire.define.amd = modules - - //==========================对用户配置项进行再加工========================== - var allpaths = kernel["orig.paths"] = createMap() - var allmaps = kernel["orig.map"] = createMap() - var allpackages = kernel["packages"] = [] - var allargs = kernel["orig.args"] = createMap() - avalon.mix(plugins, { - paths: function (hash) { - avalon.mix(allpaths, hash) - kernel.paths = makeIndexArray(allpaths) - }, - map: function (hash) { - avalon.mix(allmaps, hash) - var list = makeIndexArray(allmaps, 1, 1) - avalon.each(list, function (_, item) { - item.val = makeIndexArray(item.val) - }) - kernel.map = list - }, - packages: function (array) { - array = array.concat(allpackages) - var uniq = createMap() - var ret = [] - for (var i = 0, pkg; pkg = array[i++];) { - pkg = typeof pkg === "string" ? {name: pkg} : pkg - var name = pkg.name - if (!uniq[name]) { - var url = joinPath(pkg.location || name, pkg.main || "main") - url = url.replace(rjsext, "") - ret.push(pkg) - uniq[name] = pkg.location = url - pkg.reg = makeMatcher(name) - } - } - kernel.packages = ret.sort() - }, - urlArgs: function (hash) { - if (typeof hash === "string") { - hash = {"*": hash} - } - avalon.mix(allargs, hash) - kernel.urlArgs = makeIndexArray(allargs, 1) - }, - baseUrl: function (url) { - if (!isAbsUrl(url)) { - var baseElement = head.getElementsByTagName("base")[0] - if (baseElement) { - head.removeChild(baseElement) - } - var node = DOC.createElement("a") - node.href = url - url = node.href - if (baseElement) { - head.insertBefore(baseElement, head.firstChild) - } - } - if (url.length > 3) - kernel.baseUrl = url - }, - shim: function (obj) { - for (var i in obj) { - var value = obj[i] - if (Array.isArray(value)) { - value = obj[i] = { - deps: value - } - } - if (!value.exportsFn && (value.exports || value.init)) { - value.exportsFn = makeExports(value) - } - } - kernel.shim = obj - } - - }) - - - //==============================内部方法================================= - function checkCycle(deps, nick) { - //检测是否存在循环依赖 - for (var i = 0, id; id = deps[i++];) { - if (modules[id].state !== 4 && - (id === nick || checkCycle(modules[id].deps, nick))) { - return true - } - } - } - - function checkFail(node, onError) { - var id = trimQuery(node.src) //检测是否死链 - node.onload = node.onerror = null - if (onError) { - setTimeout(function () { - head.removeChild(node) - node = null // 处理旧式IE下的循环引用问题 - }) - log("debug: 加载 " + id + " 失败" + onError + " " + (!modules[id].state)) - } else { - return true - } - } - - function checkDeps() { - //检测此JS模块的依赖是否都已安装完毕,是则安装自身 - loop: for (var i = loadings.length, id; id = loadings[--i];) { - var obj = modules[id], - deps = obj.deps - if (!deps) - continue - for (var j = 0, key; key = deps[j]; j++) { - if (Object(modules[key]).state !== 4) { - continue loop - } - } - //如果deps是空对象或者其依赖的模块的状态都是2 - if (obj.state !== 4) { - loadings.splice(i, 1) //必须先移除再安装,防止在IE下DOM树建完后手动刷新页面,会多次执行它 - fireFactory(obj.id, obj.deps, obj.factory) - checkDeps() //如果成功,则再执行一次,以防有些模块就差本模块没有安装好 - } - } - } - - function loadJS(url, id, callback) { - //通过script节点加载目标模块 - var node = DOC.createElement("script") - node.className = subscribers //让getCurrentScript只处理类名为subscribers的script节点 - node.onload = function () { - var factory = factorys.pop() - factory && factory.require(id) - if (callback) { - callback() - } - log("debug: 已成功加载 " + url) - id && loadings.push(id) - checkDeps() - } - node.onerror = function () { - checkFail(node, true) - } - - head.insertBefore(node, head.firstChild) //chrome下第二个参数不能为null - node.src = url //插入到head的第一个节点前,防止IE6下head标签没闭合前使用appendChild抛错 - log("debug: 正准备加载 " + url) //更重要的是IE6下可以收窄getCurrentScript的寻找范围 - } - - var resources = innerRequire.plugins = { - //三大常用资源插件 js!, css!, text!, ready! - ready: { - load: noop - }, - js: { - load: function (name, req, onLoad) { - var url = req.url - var id = req.urlNoQuery - var shim = kernel.shim[name.replace(rjsext, "")] - if (shim) { //shim机制 - innerRequire(shim.deps || [], function () { - var args = avalon.slice(arguments) - loadJS(url, id, function () { - onLoad(shim.exportsFn ? shim.exportsFn.apply(0, args) : void 0) - }) - }) - } else { - loadJS(url, id) - } - } - }, - css: { - load: function (name, req, onLoad) { - var url = req.url - head.insertAdjacentHTML("afterBegin", '') - log("debug: 已成功加载 " + url) - onLoad() - } - }, - text: { - load: function (name, req, onLoad) { - var url = req.url - var xhr = getXHR() - xhr.onload = function () { - var status = xhr.status; - if (status > 399 && status < 600) { - avalon.error(url + " 对应资源不存在或没有开启 CORS") - } else { - log("debug: 已成功加载 " + url) - onLoad(xhr.responseText) - } - } - xhr.open("GET", url, true) - if ("withCredentials" in xhr) {//这是处理跨域 - xhr.withCredentials = true - } - xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest")//告诉后端这是AJAX请求 - xhr.send() - log("debug: 正准备加载 " + url) - } - } - } - innerRequire.checkDeps = checkDeps - - var rquery = /(\?[^#]*)$/ - - function trimQuery(url) { - return (url || "").replace(rquery, "") - } - - function isAbsUrl(path) { - //http://stackoverflow.com/questions/10687099/how-to-test-if-a-url-string-is-absolute-or-relative - return /^(?:[a-z]+:)?\/\//i.test(String(path)) - } - - - function getCurrentScript() { - // inspireb by https://github.com/samyk/jiagra/blob/master/jiagra.js - var stack - try { - a.b.c() //强制报错,以便捕获e.stack - } catch (e) { //safari5的sourceURL,firefox的fileName,它们的效果与e.stack不一样 - stack = e.stack - } - if (stack) { - /**e.stack最后一行在所有支持的浏览器大致如下: - *chrome23: - * at http://113.93.50.63/data.js:4:1 - *firefox17: - *@http://113.93.50.63/query.js:4 - *opera12:http://www.oldapps.com/opera.php?system=Windows_XP - *@http://113.93.50.63/data.js:4 - *IE10: - * at Global code (http://113.93.50.63/data.js:4:1) - * //firefox4+ 可以用document.currentScript - */ - stack = stack.split(/[@ ]/g).pop() //取得最后一行,最后一个空格或@之后的部分 - stack = stack[0] === "(" ? stack.slice(1, -1) : stack.replace(/\s/, "") //去掉换行符 - return trimQuery(stack.replace(/(:\d+)?:\d+$/i, "")) //去掉行号与或许存在的出错字符起始位置 - } - var nodes = head.getElementsByTagName("script") //只在head标签中寻找 - for (var i = nodes.length, node; node = nodes[--i];) { - if (node.className === subscribers && node.readyState === "interactive") { - var url = node.src - return node.className = trimQuery(url) - } - } - } - - var rcallback = /^callback\d+$/ - - function fireFactory(id, deps, factory) { - var module = Object(modules[id]) - module.state = 4 - for (var i = 0, array = [], d; d = deps[i++];) { - if (d === "exports") { - var obj = module.exports || (module.exports = createMap()) - array.push(obj) - } else { - array.push(modules[d].exports) - } - } - try { - var ret = factory.apply(window, array) - } catch (e) { - log("执行[" + id + "]模块的factory抛错: " + e) - } - if (ret !== void 0) { - module.exports = ret - } - if (rcallback.test(id)) { - delete modules[id] - } - delete module.factory - return ret - } - - function toUrl(id) { - if (id.indexOf(this.res + "!") === 0) { - id = id.slice(this.res.length + 1) //处理define("css!style",[], function(){})的情况 - } - var url = id - //1. 是否命中paths配置项 - var usePath = 0 - var baseUrl = this.baseUrl - var rootUrl = this.parentUrl || baseUrl - eachIndexArray(id, kernel.paths, function (value, key) { - url = url.replace(key, value) - usePath = 1 - }) - //2. 是否命中packages配置项 - if (!usePath) { - eachIndexArray(id, kernel.packages, function (value, key, item) { - url = url.replace(item.name, item.location) - }) - } - //3. 是否命中map配置项 - if (this.mapUrl) { - eachIndexArray(this.mapUrl, kernel.map, function (array) { - eachIndexArray(url, array, function (mdValue, mdKey) { - url = url.replace(mdKey, mdValue) - rootUrl = baseUrl - }) - }) - } - var ext = this.ext - if (ext && usePath && url.slice(-ext.length) === ext) { - url = url.slice(0, -ext.length) - } - //4. 转换为绝对路径 - if (!isAbsUrl(url)) { - rootUrl = this.built || /^\w/.test(url) ? baseUrl : rootUrl - url = joinPath(rootUrl, url) - } - //5. 还原扩展名,query - var urlNoQuery = url + ext - url = urlNoQuery + this.query - //6. 处理urlArgs - eachIndexArray(id, kernel.urlArgs, function (value) { - url += (url.indexOf("?") === -1 ? "?" : "&") + value; - }) - this.url = url - return this.urlNoQuery = urlNoQuery - } - - function makeIndexArray(hash, useStar, part) { - //创建一个经过特殊算法排好序的数组 - var index = hash2array(hash, useStar, part) - index.sort(descSorterByName) - return index - } - - function makeMatcher(prefix) { - return new RegExp('^' + prefix + '(/|$)') - } - - function makeExports(value) { - return function () { - var ret - if (value.init) { - ret = value.init.apply(window, arguments) - } - return ret || (value.exports && getGlobal(value.exports)) - } - } - - - function hash2array(hash, useStar, part) { - var array = []; - for (var key in hash) { - // if (hash.hasOwnProperty(key)) {//hash是由createMap创建没有hasOwnProperty - var item = { - name: key, - val: hash[key] - } - array.push(item) - item.reg = key === "*" && useStar ? /^/ : makeMatcher(key) - if (part && key !== "*") { - item.reg = new RegExp('\/' + key.replace(/^\//, "") + '(/|$)') - } - // } - } - return array - } - - function eachIndexArray(moduleID, array, matcher) { - array = array || [] - for (var i = 0, el; el = array[i++];) { - if (el.reg.test(moduleID)) { - matcher(el.val, el.name, el) - return false - } - } - } - - // 根据元素的name项进行数组字符数逆序的排序函数 - function descSorterByName(a, b) { - var aaa = a.name - var bbb = b.name - if (bbb === "*") { - return -1 - } - if (aaa === "*") { - return 1 - } - return bbb.length - aaa.length - } - - var rdeuce = /\/\w+\/\.\./ - - function joinPath(a, b) { - if (a.charAt(a.length - 1) !== "/") { - a += "/" - } - if (b.slice(0, 2) === "./") { //相对于兄弟路径 - return a + b.slice(2) - } - if (b.slice(0, 2) === "..") { //相对于父路径 - a += b - while (rdeuce.test(a)) { - a = a.replace(rdeuce, "") - } - return a - } - if (b.slice(0, 1) === "/") { - return a + b.slice(1) - } - return a + b - } - - function getGlobal(value) { - if (!value) { - return value - } - var g = window - value.split(".").forEach(function (part) { - g = g[part] - }) - return g - } - - var mainNode = DOC.scripts[DOC.scripts.length - 1] - var dataMain = mainNode.getAttribute("data-main") - if (dataMain) { - plugins.baseUrl(dataMain) - var href = kernel.baseUrl - kernel.baseUrl = href.slice(0, href.lastIndexOf("/") + 1) - loadJS(href.replace(rjsext, "") + ".js") - } else { - var loaderUrl = trimQuery(mainNode.src) - kernel.baseUrl = loaderUrl.slice(0, loaderUrl.lastIndexOf("/") + 1) - } - }// jshint ignore:line - - /********************************************************************* - * DOMReady * - **********************************************************************/ - var readyList = [], isReady - var fireReady = function (fn) { - isReady = true - if (innerRequire) { - modules["domReady!"].state = 4 - innerRequire.checkDeps() - } - while (fn = readyList.shift()) { - fn(avalon) - } - } - - - if (DOC.readyState === "complete") { - setTimeout(fireReady) //如果在domReady之外加载 - } else { - DOC.addEventListener("DOMContentLoaded", fireReady) - } - window.addEventListener("load", fireReady) - avalon.ready = function (fn) { - if (!isReady) { - readyList.push(fn) - } else { - fn(avalon) - } - } - avalon.config({ - loader: true - }) - avalon.ready(function () { - avalon.scan(DOC.body) - }) - -// Register as a named AMD module, since avalon can be concatenated with other -// files that may use define, but not via a proper concatenation script that -// understands anonymous AMD modules. A named AMD is safest and most robust -// way to register. Lowercase avalon is used because AMD module names are -// derived from file names, and Avalon is normally delivered in a lowercase -// file name. Do this after creating the global so that if an AMD module wants -// to call noConflict to hide this version of avalon, it will work. - -// Note that for maximum portability, libraries that are not avalon should -// declare themselves as anonymous modules, and avoid setting a global if an -// AMD loader is present. avalon is a special case. For more information, see -// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon - if (typeof define === "function" && define.amd) { - define("avalon", [], function () { - return avalon - }) - } -// Map over avalon in case of overwrite - var _avalon = window.avalon - avalon.noConflict = function (deep) { - if (deep && window.avalon === avalon) { - window.avalon = _avalon - } - return avalon - } -// Expose avalon identifiers, even in AMD -// and CommonJS for browser emulators - if (noGlobal === void 0) { - window.avalon = avalon - } - - window._injectTer = function (code) { - return eval(code) - } - - return avalon - -})); \ No newline at end of file diff --git a/portal-common/src/main/webapp/common/thirdparty/backstretch/jquery.backstretch.min.js b/portal-common/src/main/webapp/common/thirdparty/backstretch/jquery.backstretch.min.js deleted file mode 100644 index 4b14f7ab..00000000 --- a/portal-common/src/main/webapp/common/thirdparty/backstretch/jquery.backstretch.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/*! Backstretch - v2.0.3 - 2012-11-30 -* http://srobbin.com/jquery-plugins/backstretch/ -* Copyright (c) 2012 Scott Robbin; Licensed MIT */ -(function(e,t,n){"use strict";e.fn.backstretch=function(r,s){return(r===n||r.length===0)&&e.error("No images were supplied for Backstretch"),e(t).scrollTop()===0&&t.scrollTo(0,0),this.each(function(){var t=e(this),n=t.data("backstretch");n&&(s=e.extend(n.options,s),n.destroy(!0)),n=new i(this,r,s),t.data("backstretch",n)})},e.backstretch=function(t,n){return e("body").backstretch(t,n).data("backstretch")},e.expr[":"].backstretch=function(t){return e(t).data("backstretch")!==n},e.fn.backstretch.defaults={centeredX:!0,centeredY:!0,duration:5e3,fade:0};var r={wrap:{left:0,top:0,overflow:"hidden",margin:0,padding:0,height:"100%",width:"100%",zIndex:-999999},img:{position:"absolute",display:"none",margin:0,padding:0,border:"none",width:"auto",height:"auto",maxWidth:"none",zIndex:-999999}},i=function(n,i,o){this.options=e.extend({},e.fn.backstretch.defaults,o||{}),this.images=e.isArray(i)?i:[i],e.each(this.images,function(){e("")[0].src=this}),this.isBody=n===document.body,this.$container=e(n),this.$wrap=e('
    ').css(r.wrap).appendTo(this.$container),this.$root=this.isBody?s?e(t):e(document):this.$container;if(!this.isBody){var u=this.$container.css("position"),a=this.$container.css("zIndex");this.$container.css({position:u==="static"?"relative":u,zIndex:a==="auto"?0:a,background:"none"}),this.$wrap.css({zIndex:-999998})}this.$wrap.css({position:this.isBody&&s?"fixed":"absolute"}),this.index=0,this.show(this.index),e(t).on("resize.backstretch",e.proxy(this.resize,this)).on("orientationchange.backstretch",e.proxy(function(){this.isBody&&t.pageYOffset===0&&(t.scrollTo(0,1),this.resize())},this))};i.prototype={resize:function(){try{var e={left:0,top:0},n=this.isBody?this.$root.width():this.$root.innerWidth(),r=n,i=this.isBody?t.innerHeight?t.innerHeight:this.$root.height():this.$root.innerHeight(),s=r/this.$img.data("ratio"),o;s>=i?(o=(s-i)/2,this.options.centeredY&&(e.top="-"+o+"px")):(s=i,r=s*this.$img.data("ratio"),o=(r-n)/2,this.options.centeredX&&(e.left="-"+o+"px")),this.$wrap.css({width:n,height:i}).find("img:not(.deleteable)").css({width:r,height:s}).css(e)}catch(u){}return this},show:function(t){if(Math.abs(t)>this.images.length-1)return;this.index=t;var n=this,i=n.$wrap.find("img").addClass("deleteable"),s=e.Event("backstretch.show",{relatedTarget:n.$container[0]});return clearInterval(n.interval),n.$img=e("").css(r.img).bind("load",function(t){var r=this.width||e(t.target).width(),o=this.height||e(t.target).height();e(this).data("ratio",r/o),e(this).fadeIn(n.options.speed||n.options.fade,function(){i.remove(),n.paused||n.cycle(),n.$container.trigger(s,n)}),n.resize()}).appendTo(n.$wrap),n.$img.attr("src",n.images[t]),n},next:function(){return this.show(this.index1&&(clearInterval(this.interval),this.interval=setInterval(e.proxy(function(){this.paused||this.next()},this),this.options.duration)),this},destroy:function(n){e(t).off("resize.backstretch orientationchange.backstretch"),clearInterval(this.interval),n||this.$wrap.remove(),this.$container.removeData("backstretch")}};var s=function(){var e=navigator.userAgent,n=navigator.platform,r=e.match(/AppleWebKit\/([0-9]+)/),i=!!r&&r[1],s=e.match(/Fennec\/([0-9]+)/),o=!!s&&s[1],u=e.match(/Opera Mobi\/([0-9]+)/),a=!!u&&u[1],f=e.match(/MSIE ([0-9]+)/),l=!!f&&f[1];return!((n.indexOf("iPhone")>-1||n.indexOf("iPad")>-1||n.indexOf("iPod")>-1)&&i&&i<534||t.operamini&&{}.toString.call(t.operamini)==="[object OperaMini]"||u&&a<7458||e.indexOf("Android")>-1&&i&&i<533||o&&o<6||"palmGetResource"in t&&i&&i<534||e.indexOf("MeeGo")>-1&&e.indexOf("NokiaBrowser/8.5.0")>-1||l&&l<=6)}()})(jQuery,window); \ No newline at end of file diff --git a/portal-common/src/main/webapp/common/thirdparty/bootbox/LICENSE.md b/portal-common/src/main/webapp/common/thirdparty/bootbox/LICENSE.md deleted file mode 100644 index 4c723486..00000000 --- a/portal-common/src/main/webapp/common/thirdparty/bootbox/LICENSE.md +++ /dev/null @@ -1,23 +0,0 @@ -# License - -(The MIT License) - -Copyright (C) 2011-2014 by Nick Payne - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE diff --git a/portal-common/src/main/webapp/common/thirdparty/bootbox/README.md b/portal-common/src/main/webapp/common/thirdparty/bootbox/README.md deleted file mode 100644 index 700fd6f7..00000000 --- a/portal-common/src/main/webapp/common/thirdparty/bootbox/README.md +++ /dev/null @@ -1,91 +0,0 @@ -# Bootbox - Bootstrap powered alert, confirm and flexible dialog boxes - -Please see http://bootboxjs.com for full usage instructions, or head over to http://paynedigital.com/bootbox for -the original writeup about the project. - -## Contact - -The easiest thing is to [find me on twitter @makeusabrew](http://twitter.com/makeusabrew). - -## Contributing - -Please see the [CONTRIBUTING](https://github.com/makeusabrew/bootbox/blob/master/CONTRIBUTING.md) file for guidelines. - -## Running Tests [![Build Status](https://api.travis-ci.org/makeusabrew/bootbox.svg)](http://travis-ci.org/makeusabrew/bootbox) - -Tests are run using [Karma](http://karma-runner.github.io/0.8/index.html) using the Mocha test adapter. -To run the tests yourself, simply run ```npm install``` within the project followed by ```npm test```. -Please note that this will require [PhantomJS](http://phantomjs.org/) being installed and in your path - if -it is not, you may run the tests and capture browsers manually by running ```karma start``` from the root -of the project. - -The project is also hosted on [Travis CI](https://travis-ci.org/makeusabrew/bootbox) - when submitting -pull requests **please** ensure your tests pass as failing requests will be rejected. See the -[CONTRIBUTING](https://github.com/makeusabrew/bootbox/blob/master/CONTRIBUTING.md) file for more information. - -## Building a minified release - -The repository no longer contains a minified bootbox.min.js file - this is now only generated -[for releases](https://github.com/makeusabrew/bootbox/releases). To build your own minified copy -for use in development simply run ```npm install``` if you haven't already, followed by ```grunt uglify```. -This will generate a bootbox.min.js file in your working directory. - -## A note on Bootstrap dependencies - -Bootbox **4.0.0** is the first release to support Bootstrap 3.0.0. - -Bootbox **3.3.0** is the *last* release to support Bootstrap 2.2.x. - -Much more dependency information can be found [on the Bootbox website](http://bootboxjs.com/#dependencies). - -### Roadmap - -The latest major release of Bootbox - 4.0.0 - involved a total rewrite of the -internal code and introduced an entirely new public API. It has not re-implemented -some functionality from the 3.x series as of yet; this will be addressed in the -coming weeks in the form of new minor releases; -[a task list for 4.3.0 is available](https://github.com/makeusabrew/bootbox/issues/220) - -please feel free to add feedback and requests. - -There is no new major (e.g. 5.x) release on the roadmap at present. - -## Latest Release: 4.2.0 - -* Add Swedish locale -* Add Latvian locale -* Add Turkish locale -* Add Hebrew locale -* Add password input type -* Add textarea input type -* Add date input type -* Add time input type -* Add number input type -* Support DOM selectors for container argument -* UMD support -* Better support on mobile devices - -For a full list of releases and changes please see [the changelog](https://github.com/makeusabrew/bootbox/blob/master/CHANGELOG.md). - -## License - -(The MIT License) - -Copyright (C) 2011-2014 by Nick Payne - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE diff --git a/portal-common/src/main/webapp/common/thirdparty/bootbox/bootbox.min.js b/portal-common/src/main/webapp/common/thirdparty/bootbox/bootbox.min.js deleted file mode 100644 index a5d01a50..00000000 --- a/portal-common/src/main/webapp/common/thirdparty/bootbox/bootbox.min.js +++ /dev/null @@ -1,6 +0,0 @@ -/** - * bootbox.js v4.3.0 - * - * http://bootboxjs.com/license.txt - */ -!function(a,b){"use strict";"function"==typeof define&&define.amd?define(["jquery"],b):"object"==typeof exports?module.exports=b(require("jquery")):a.bootbox=b(a.jQuery)}(this,function a(b,c){"use strict";function d(a){var b=q[o.locale];return b?b[a]:q.en[a]}function e(a,c,d){a.stopPropagation(),a.preventDefault();var e=b.isFunction(d)&&d(a)===!1;e||c.modal("hide")}function f(a){var b,c=0;for(b in a)c++;return c}function g(a,c){var d=0;b.each(a,function(a,b){c(a,b,d++)})}function h(a){var c,d;if("object"!=typeof a)throw new Error("Please supply an object of options");if(!a.message)throw new Error("Please specify a message");return a=b.extend({},o,a),a.buttons||(a.buttons={}),a.backdrop=a.backdrop?"static":!1,c=a.buttons,d=f(c),g(c,function(a,e,f){if(b.isFunction(e)&&(e=c[a]={callback:e}),"object"!==b.type(e))throw new Error("button with key "+a+" must be an object");e.label||(e.label=a),e.className||(e.className=2>=d&&f===d-1?"btn-primary":"btn-default")}),a}function i(a,b){var c=a.length,d={};if(1>c||c>2)throw new Error("Invalid argument length");return 2===c||"string"==typeof a[0]?(d[b[0]]=a[0],d[b[1]]=a[1]):d=a[0],d}function j(a,c,d){return b.extend(!0,{},a,i(c,d))}function k(a,b,c,d){var e={className:"bootbox-"+a,buttons:l.apply(null,b)};return m(j(e,d,c),b)}function l(){for(var a={},b=0,c=arguments.length;c>b;b++){var e=arguments[b],f=e.toLowerCase(),g=e.toUpperCase();a[f]={label:d(g)}}return a}function m(a,b){var d={};return g(b,function(a,b){d[b]=!0}),g(a.buttons,function(a){if(d[a]===c)throw new Error("button key "+a+" is not allowed (options are "+b.join("\n")+")")}),a}var n={dialog:"",header:"",footer:"",closeButton:"",form:"
    ",inputs:{text:"",textarea:"",email:"",select:"",checkbox:"
    ",date:"",time:"",number:"",password:""}},o={locale:"en",backdrop:!0,animate:!0,className:null,closeButton:!0,show:!0,container:"body"},p={};p.alert=function(){var a;if(a=k("alert",["ok"],["message","callback"],arguments),a.callback&&!b.isFunction(a.callback))throw new Error("alert requires callback property to be a function when provided");return a.buttons.ok.callback=a.onEscape=function(){return b.isFunction(a.callback)?a.callback():!0},p.dialog(a)},p.confirm=function(){var a;if(a=k("confirm",["cancel","confirm"],["message","callback"],arguments),a.buttons.cancel.callback=a.onEscape=function(){return a.callback(!1)},a.buttons.confirm.callback=function(){return a.callback(!0)},!b.isFunction(a.callback))throw new Error("confirm requires a callback");return p.dialog(a)},p.prompt=function(){var a,d,e,f,h,i,k;if(f=b(n.form),d={className:"bootbox-prompt",buttons:l("cancel","confirm"),value:"",inputType:"text"},a=m(j(d,arguments,["title","callback"]),["cancel","confirm"]),i=a.show===c?!0:a.show,a.message=f,a.buttons.cancel.callback=a.onEscape=function(){return a.callback(null)},a.buttons.confirm.callback=function(){var c;switch(a.inputType){case"text":case"textarea":case"email":case"select":case"date":case"time":case"number":case"password":c=h.val();break;case"checkbox":var d=h.find("input:checked");c=[],g(d,function(a,d){c.push(b(d).val())})}return a.callback(c)},a.show=!1,!a.title)throw new Error("prompt requires a title");if(!b.isFunction(a.callback))throw new Error("prompt requires a callback");if(!n.inputs[a.inputType])throw new Error("invalid prompt type");switch(h=b(n.inputs[a.inputType]),a.inputType){case"text":case"textarea":case"email":case"date":case"time":case"number":case"password":h.val(a.value);break;case"select":var o={};if(k=a.inputOptions||[],!k.length)throw new Error("prompt with select requires options");g(k,function(a,d){var e=h;if(d.value===c||d.text===c)throw new Error("given options in wrong format");d.group&&(o[d.group]||(o[d.group]=b("").attr("label",d.group)),e=o[d.group]),e.append("")}),g(o,function(a,b){h.append(b)}),h.val(a.value);break;case"checkbox":var q=b.isArray(a.value)?a.value:[a.value];if(k=a.inputOptions||[],!k.length)throw new Error("prompt with checkbox requires options");if(!k[0].value||!k[0].text)throw new Error("given options in wrong format");h=b("
    "),g(k,function(c,d){var e=b(n.inputs[a.inputType]);e.find("input").attr("value",d.value),e.find("label").append(d.text),g(q,function(a,b){b===d.value&&e.find("input").prop("checked",!0)}),h.append(e)})}return a.placeholder&&h.attr("placeholder",a.placeholder),a.pattern&&h.attr("pattern",a.pattern),f.append(h),f.on("submit",function(a){a.preventDefault(),a.stopPropagation(),e.find(".btn-primary").click()}),e=p.dialog(a),e.off("shown.bs.modal"),e.on("shown.bs.modal",function(){h.focus()}),i===!0&&e.modal("show"),e},p.dialog=function(a){a=h(a);var c=b(n.dialog),d=c.find(".modal-dialog"),f=c.find(".modal-body"),i=a.buttons,j="",k={onEscape:a.onEscape};if(g(i,function(a,b){j+="",k[a]=b.callback}),f.find(".bootbox-body").html(a.message),a.animate===!0&&c.addClass("fade"),a.className&&c.addClass(a.className),"large"===a.size&&d.addClass("modal-lg"),"small"===a.size&&d.addClass("modal-sm"),a.title&&f.before(n.header),a.closeButton){var l=b(n.closeButton);a.title?c.find(".modal-header").prepend(l):l.css("margin-top","-10px").prependTo(f)}return a.title&&c.find(".modal-title").html(a.title),j.length&&(f.after(n.footer),c.find(".modal-footer").html(j)),c.on("hidden.bs.modal",function(a){a.target===this&&c.remove()}),c.on("shown.bs.modal",function(){c.find(".btn-primary:first").focus()}),c.on("escape.close.bb",function(a){k.onEscape&&e(a,c,k.onEscape)}),c.on("click",".modal-footer button",function(a){var d=b(this).data("bb-handler");e(a,c,k[d])}),c.on("click",".bootbox-close-button",function(a){e(a,c,k.onEscape)}),c.on("keyup",function(a){27===a.which&&c.trigger("escape.close.bb")}),b(a.container).append(c),c.modal({backdrop:a.backdrop,keyboard:!1,show:!1}),a.show&&c.modal("show"),c},p.setDefaults=function(){var a={};2===arguments.length?a[arguments[0]]=arguments[1]:a=arguments[0],b.extend(o,a)},p.hideAll=function(){return b(".bootbox").modal("hide"),p};var q={br:{OK:"OK",CANCEL:"Cancelar",CONFIRM:"Sim"},cs:{OK:"OK",CANCEL:"Zrušit",CONFIRM:"Potvrdit"},da:{OK:"OK",CANCEL:"Annuller",CONFIRM:"Accepter"},de:{OK:"OK",CANCEL:"Abbrechen",CONFIRM:"Akzeptieren"},el:{OK:"Εντάξει",CANCEL:"Ακύρωση",CONFIRM:"Επιβεβαίωση"},en:{OK:"OK",CANCEL:"Cancel",CONFIRM:"OK"},es:{OK:"OK",CANCEL:"Cancelar",CONFIRM:"Aceptar"},et:{OK:"OK",CANCEL:"Katkesta",CONFIRM:"OK"},fi:{OK:"OK",CANCEL:"Peruuta",CONFIRM:"OK"},fr:{OK:"OK",CANCEL:"Annuler",CONFIRM:"D'accord"},he:{OK:"אישור",CANCEL:"ביטול",CONFIRM:"אישור"},id:{OK:"OK",CANCEL:"Batal",CONFIRM:"OK"},it:{OK:"OK",CANCEL:"Annulla",CONFIRM:"Conferma"},ja:{OK:"OK",CANCEL:"キャンセル",CONFIRM:"確認"},lt:{OK:"Gerai",CANCEL:"Atšaukti",CONFIRM:"Patvirtinti"},lv:{OK:"Labi",CANCEL:"Atcelt",CONFIRM:"Apstiprināt"},nl:{OK:"OK",CANCEL:"Annuleren",CONFIRM:"Accepteren"},no:{OK:"OK",CANCEL:"Avbryt",CONFIRM:"OK"},pl:{OK:"OK",CANCEL:"Anuluj",CONFIRM:"Potwierdź"},pt:{OK:"OK",CANCEL:"Cancelar",CONFIRM:"Confirmar"},ru:{OK:"OK",CANCEL:"Отмена",CONFIRM:"Применить"},sv:{OK:"OK",CANCEL:"Avbryt",CONFIRM:"OK"},tr:{OK:"Tamam",CANCEL:"İptal",CONFIRM:"Onayla"},zh_CN:{OK:"OK",CANCEL:"取消",CONFIRM:"确认"},zh_TW:{OK:"OK",CANCEL:"取消",CONFIRM:"確認"}};return p.init=function(c){return a(c||b)},p}); \ No newline at end of file diff --git a/portal-common/src/main/webapp/common/thirdparty/bootstrap-daterangepicker/daterangepicker-bs3.css b/portal-common/src/main/webapp/common/thirdparty/bootstrap-daterangepicker/daterangepicker-bs3.css deleted file mode 100644 index 8df7b075..00000000 --- a/portal-common/src/main/webapp/common/thirdparty/bootstrap-daterangepicker/daterangepicker-bs3.css +++ /dev/null @@ -1,319 +0,0 @@ -/*! - * Stylesheet for the Date Range Picker, for use with Bootstrap 3.x - * - * Copyright 2013-2015 Dan Grossman ( http://www.dangrossman.info ) - * Licensed under the MIT license. See http://www.opensource.org/licenses/mit-license.php - * - * Built for http://www.improvely.com - */ - - .daterangepicker.dropdown-menu { - max-width: none; - z-index: 3000; -} - -.daterangepicker.opensleft .ranges, .daterangepicker.opensleft .calendar { - float: left; - margin: 4px; -} - -.daterangepicker.opensright .ranges, .daterangepicker.opensright .calendar, -.daterangepicker.openscenter .ranges, .daterangepicker.openscenter .calendar { - float: right; - margin: 4px; -} - -.daterangepicker.single .ranges, .daterangepicker.single .calendar { - float: none; -} - -.daterangepicker .ranges { - width: 165px; - text-align: left; -} - -.daterangepicker .ranges .range_inputs>div { - float: left; -} - -.daterangepicker .ranges .range_inputs>div:nth-child(2) { - padding-left: 11px; -} - -.daterangepicker .calendar { - display: none; - max-width: 270px; -} - -.daterangepicker.show-calendar .calendar { - display: block; -} - -.daterangepicker .calendar.single .calendar-date { - border: none; -} - -.daterangepicker .calendar th, .daterangepicker .calendar td { - font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; - white-space: nowrap; - text-align: center; - min-width: 32px; -} - -.daterangepicker .daterangepicker_start_input label, -.daterangepicker .daterangepicker_end_input label { - color: #333; - display: block; - font-size: 11px; - font-weight: normal; - height: 20px; - line-height: 20px; - margin-bottom: 2px; - text-shadow: #fff 1px 1px 0px; - text-transform: uppercase; - width: 74px; -} - -.daterangepicker .ranges input { - font-size: 11px; -} - -.daterangepicker .ranges .input-mini { - border: 1px solid #ccc; - border-radius: 4px; - color: #555; - display: block; - font-size: 11px; - height: 30px; - line-height: 30px; - vertical-align: middle; - margin: 0 0 10px 0; - padding: 0 6px; - width: 77px; -} - -.daterangepicker .ranges ul { - list-style: none; - margin: 0; - padding: 0; -} - -.daterangepicker .ranges li { - font-size: 13px; - background: #f5f5f5; - border: 1px solid #f5f5f5; - color: #08c; - padding: 3px 12px; - margin-bottom: 8px; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - border-radius: 5px; - cursor: pointer; -} - -.daterangepicker .ranges li.active, .daterangepicker .ranges li:hover { - background: #08c; - border: 1px solid #08c; - color: #fff; -} - -.daterangepicker .calendar-date { - border: 1px solid #ddd; - padding: 4px; - border-radius: 4px; - background: #fff; -} - -.daterangepicker .calendar-time { - text-align: center; - margin: 8px auto 0 auto; - line-height: 30px; -} - -.daterangepicker { - position: absolute; - background: #fff; - top: 100px; - left: 20px; - padding: 4px; - margin-top: 1px; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} - -.daterangepicker.opensleft:before { - position: absolute; - top: -7px; - right: 9px; - display: inline-block; - border-right: 7px solid transparent; - border-bottom: 7px solid #ccc; - border-left: 7px solid transparent; - border-bottom-color: rgba(0, 0, 0, 0.2); - content: ''; -} - -.daterangepicker.opensleft:after { - position: absolute; - top: -6px; - right: 10px; - display: inline-block; - border-right: 6px solid transparent; - border-bottom: 6px solid #fff; - border-left: 6px solid transparent; - content: ''; -} - -.daterangepicker.openscenter:before { - position: absolute; - top: -7px; - left: 0; - right: 0; - width: 0; - margin-left: auto; - margin-right: auto; - display: inline-block; - border-right: 7px solid transparent; - border-bottom: 7px solid #ccc; - border-left: 7px solid transparent; - border-bottom-color: rgba(0, 0, 0, 0.2); - content: ''; -} - -.daterangepicker.openscenter:after { - position: absolute; - top: -6px; - left: 0; - right: 0; - width: 0; - margin-left: auto; - margin-right: auto; - display: inline-block; - border-right: 6px solid transparent; - border-bottom: 6px solid #fff; - border-left: 6px solid transparent; - content: ''; -} - -.daterangepicker.opensright:before { - position: absolute; - top: -7px; - left: 9px; - display: inline-block; - border-right: 7px solid transparent; - border-bottom: 7px solid #ccc; - border-left: 7px solid transparent; - border-bottom-color: rgba(0, 0, 0, 0.2); - content: ''; -} - -.daterangepicker.opensright:after { - position: absolute; - top: -6px; - left: 10px; - display: inline-block; - border-right: 6px solid transparent; - border-bottom: 6px solid #fff; - border-left: 6px solid transparent; - content: ''; -} - -.daterangepicker table { - width: 100%; - margin: 0; -} - -.daterangepicker td, .daterangepicker th { - text-align: center; - width: 20px; - height: 20px; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - cursor: pointer; - white-space: nowrap; -} - -.daterangepicker td.off { - color: #999; -} - -.daterangepicker td.disabled, .daterangepicker option.disabled { - color: #999; -} - -.daterangepicker td.available:hover, .daterangepicker th.available:hover { - background: #eee; -} - -.daterangepicker td.in-range { - background: #ebf4f8; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} - -.daterangepicker td.start-date { - -webkit-border-radius: 4px 0 0 4px; - -moz-border-radius: 4px 0 0 4px; - border-radius: 4px 0 0 4px; -} - -.daterangepicker td.end-date { - -webkit-border-radius: 0 4px 4px 0; - -moz-border-radius: 0 4px 4px 0; - border-radius: 0 4px 4px 0; -} - -.daterangepicker td.start-date.end-date { - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} - -.daterangepicker td.active, .daterangepicker td.active:hover { - background-color: #357ebd; - border-color: #3071a9; - color: #fff; -} - -.daterangepicker td.week, .daterangepicker th.week { - font-size: 80%; - color: #ccc; -} - -.daterangepicker select.monthselect, .daterangepicker select.yearselect { - font-size: 12px; - padding: 1px; - height: auto; - margin: 0; - cursor: default; -} - -.daterangepicker select.monthselect { - margin-right: 2%; - width: 56%; -} - -.daterangepicker select.yearselect { - width: 40%; -} - -.daterangepicker select.hourselect, .daterangepicker select.minuteselect, .daterangepicker select.secondselect, .daterangepicker select.ampmselect { - width: 50px; - margin-bottom: 0; -} - -.daterangepicker_start_input { - float: left; -} - -.daterangepicker_end_input { - float: left; - padding-left: 11px -} - -.daterangepicker th.month { - width: auto; -} diff --git a/portal-common/src/main/webapp/common/thirdparty/bootstrap-daterangepicker/daterangepicker.js b/portal-common/src/main/webapp/common/thirdparty/bootstrap-daterangepicker/daterangepicker.js deleted file mode 100644 index e2bc86d7..00000000 --- a/portal-common/src/main/webapp/common/thirdparty/bootstrap-daterangepicker/daterangepicker.js +++ /dev/null @@ -1,1257 +0,0 @@ -/** -* @version: 1.3.17 -* @author: Dan Grossman http://www.dangrossman.info/ -* @date: 2014-11-25 -* @copyright: Copyright (c) 2012-2014 Dan Grossman. All rights reserved. -* @license: Licensed under the MIT license. See http://www.opensource.org/licenses/mit-license.php -* @website: http://www.improvely.com/ -*/ - -(function(root, factory) { - - if (typeof define === 'function' && define.amd) { - define(['moment', 'jquery', 'exports'], function(momentjs, $, exports) { - root.daterangepicker = factory(root, exports, momentjs, $); - }); - - } else if (typeof exports !== 'undefined') { - var momentjs = require('moment'); - var jQuery; - try { - jQuery = require('jquery'); - } catch (err) { - jQuery = window.jQuery; - if (!jQuery) throw new Error('jQuery dependency not found'); - } - - factory(root, exports, momentjs, jQuery); - - // Finally, as a browser global. - } else { - root.daterangepicker = factory(root, {}, root.moment, (root.jQuery || root.Zepto || root.ender || root.$)); - } - -}(this, function(root, daterangepicker, moment, $) { - - var DateRangePicker = function (element, options, cb) { - - // by default, the daterangepicker element is placed at the bottom of HTML body - this.parentEl = 'body'; - - //element that triggered the date range picker - this.element = $(element); - - //tracks visible state - this.isShowing = false; - - //create the picker HTML object - var DRPTemplate = ''; - - //custom options - if (typeof options !== 'object' || options === null) - options = {}; - - this.parentEl = (typeof options === 'object' && options.parentEl && $(options.parentEl).length) ? $(options.parentEl) : $(this.parentEl); - this.container = $(DRPTemplate).appendTo(this.parentEl); - - this.setOptions(options, cb); - - //apply CSS classes and labels to buttons - var c = this.container; - $.each(this.buttonClasses, function (idx, val) { - c.find('button').addClass(val); - }); - this.container.find('.daterangepicker_start_input label').html(this.locale.fromLabel); - this.container.find('.daterangepicker_end_input label').html(this.locale.toLabel); - if (this.applyClass.length) - this.container.find('.applyBtn').addClass(this.applyClass); - if (this.cancelClass.length) - this.container.find('.cancelBtn').addClass(this.cancelClass); - this.container.find('.applyBtn').html(this.locale.applyLabel); - this.container.find('.cancelBtn').html(this.locale.cancelLabel); - - //event listeners - - this.container.find('.calendar') - .on('click.daterangepicker', '.prev', $.proxy(this.clickPrev, this)) - .on('click.daterangepicker', '.next', $.proxy(this.clickNext, this)) - .on('click.daterangepicker', 'td.available', $.proxy(this.clickDate, this)) - .on('mouseenter.daterangepicker', 'td.available', $.proxy(this.hoverDate, this)) - .on('mouseleave.daterangepicker', 'td.available', $.proxy(this.updateFormInputs, this)) - .on('change.daterangepicker', 'select.yearselect', $.proxy(this.updateMonthYear, this)) - .on('change.daterangepicker', 'select.monthselect', $.proxy(this.updateMonthYear, this)) - .on('change.daterangepicker', 'select.hourselect,select.minuteselect,select.secondselect,select.ampmselect', $.proxy(this.updateTime, this)); - - this.container.find('.ranges') - .on('click.daterangepicker', 'button.applyBtn', $.proxy(this.clickApply, this)) - .on('click.daterangepicker', 'button.cancelBtn', $.proxy(this.clickCancel, this)) - .on('click.daterangepicker', '.daterangepicker_start_input,.daterangepicker_end_input', $.proxy(this.showCalendars, this)) - .on('change.daterangepicker', '.daterangepicker_start_input,.daterangepicker_end_input', $.proxy(this.inputsChanged, this)) - .on('keydown.daterangepicker', '.daterangepicker_start_input,.daterangepicker_end_input', $.proxy(this.inputsKeydown, this)) - .on('click.daterangepicker', 'li', $.proxy(this.clickRange, this)) - .on('mouseenter.daterangepicker', 'li', $.proxy(this.enterRange, this)) - .on('mouseleave.daterangepicker', 'li', $.proxy(this.updateFormInputs, this)); - - if (this.element.is('input')) { - this.element.on({ - 'click.daterangepicker': $.proxy(this.show, this), - 'focus.daterangepicker': $.proxy(this.show, this), - 'keyup.daterangepicker': $.proxy(this.updateFromControl, this) - }); - } else { - this.element.on('click.daterangepicker', $.proxy(this.toggle, this)); - } - - }; - - DateRangePicker.prototype = { - - constructor: DateRangePicker, - - setOptions: function(options, callback) { - - this.startDate = moment().startOf('day'); - this.endDate = moment().endOf('day'); - this.timeZone = moment().zone(); - this.minDate = false; - this.maxDate = false; - this.dateLimit = false; - - this.showDropdowns = false; - this.showWeekNumbers = false; - this.timePicker = false; - this.timePickerSeconds = false; - this.timePickerIncrement = 30; - this.timePicker12Hour = true; - this.singleDatePicker = false; - this.ranges = {}; - - this.opens = 'right'; - if (this.element.hasClass('pull-right')) - this.opens = 'left'; - - this.buttonClasses = ['btn', 'btn-small btn-sm']; - this.applyClass = 'btn-success'; - this.cancelClass = 'btn-default'; - - this.format = 'MM/DD/YYYY'; - this.separator = ' - '; - - this.locale = { - applyLabel: 'Apply', - cancelLabel: 'Cancel', - fromLabel: 'From', - toLabel: 'To', - weekLabel: 'W', - customRangeLabel: 'Custom Range', - daysOfWeek: moment.weekdaysMin(), - monthNames: moment.monthsShort(), - firstDay: moment.localeData()._week.dow - }; - - this.cb = function () { }; - - if (typeof options.format === 'string') - this.format = options.format; - - if (typeof options.separator === 'string') - this.separator = options.separator; - - if (typeof options.startDate === 'string') - this.startDate = moment(options.startDate, this.format); - - if (typeof options.endDate === 'string') - this.endDate = moment(options.endDate, this.format); - - if (typeof options.minDate === 'string') - this.minDate = moment(options.minDate, this.format); - - if (typeof options.maxDate === 'string') - this.maxDate = moment(options.maxDate, this.format); - - if (typeof options.startDate === 'object') - this.startDate = moment(options.startDate); - - if (typeof options.endDate === 'object') - this.endDate = moment(options.endDate); - - if (typeof options.minDate === 'object') - this.minDate = moment(options.minDate); - - if (typeof options.maxDate === 'object') - this.maxDate = moment(options.maxDate); - - if (typeof options.applyClass === 'string') - this.applyClass = options.applyClass; - - if (typeof options.cancelClass === 'string') - this.cancelClass = options.cancelClass; - - if (typeof options.dateLimit === 'object') - this.dateLimit = options.dateLimit; - - if (typeof options.locale === 'object') { - - if (typeof options.locale.daysOfWeek === 'object') { - // Create a copy of daysOfWeek to avoid modification of original - // options object for reusability in multiple daterangepicker instances - this.locale.daysOfWeek = options.locale.daysOfWeek.slice(); - } - - if (typeof options.locale.monthNames === 'object') { - this.locale.monthNames = options.locale.monthNames.slice(); - } - - if (typeof options.locale.firstDay === 'number') { - this.locale.firstDay = options.locale.firstDay; - } - - if (typeof options.locale.applyLabel === 'string') { - this.locale.applyLabel = options.locale.applyLabel; - } - - if (typeof options.locale.cancelLabel === 'string') { - this.locale.cancelLabel = options.locale.cancelLabel; - } - - if (typeof options.locale.fromLabel === 'string') { - this.locale.fromLabel = options.locale.fromLabel; - } - - if (typeof options.locale.toLabel === 'string') { - this.locale.toLabel = options.locale.toLabel; - } - - if (typeof options.locale.weekLabel === 'string') { - this.locale.weekLabel = options.locale.weekLabel; - } - - if (typeof options.locale.customRangeLabel === 'string') { - this.locale.customRangeLabel = options.locale.customRangeLabel; - } - } - - if (typeof options.opens === 'string') - this.opens = options.opens; - - if (typeof options.showWeekNumbers === 'boolean') { - this.showWeekNumbers = options.showWeekNumbers; - } - - if (typeof options.buttonClasses === 'string') { - this.buttonClasses = [options.buttonClasses]; - } - - if (typeof options.buttonClasses === 'object') { - this.buttonClasses = options.buttonClasses; - } - - if (typeof options.showDropdowns === 'boolean') { - this.showDropdowns = options.showDropdowns; - } - - if (typeof options.singleDatePicker === 'boolean') { - this.singleDatePicker = options.singleDatePicker; - if (this.singleDatePicker) { - this.endDate = this.startDate.clone(); - } - } - - if (typeof options.timePicker === 'boolean') { - this.timePicker = options.timePicker; - } - - if (typeof options.timePickerSeconds === 'boolean') { - this.timePickerSeconds = options.timePickerSeconds; - } - - if (typeof options.timePickerIncrement === 'number') { - this.timePickerIncrement = options.timePickerIncrement; - } - - if (typeof options.timePicker12Hour === 'boolean') { - this.timePicker12Hour = options.timePicker12Hour; - } - - // update day names order to firstDay - if (this.locale.firstDay != 0) { - var iterator = this.locale.firstDay; - while (iterator > 0) { - this.locale.daysOfWeek.push(this.locale.daysOfWeek.shift()); - iterator--; - } - } - - var start, end, range; - - //if no start/end dates set, check if an input element contains initial values - if (typeof options.startDate === 'undefined' && typeof options.endDate === 'undefined') { - if ($(this.element).is('input[type=text]')) { - var val = $(this.element).val(), - split = val.split(this.separator); - - start = end = null; - - if (split.length == 2) { - start = moment(split[0], this.format); - end = moment(split[1], this.format); - } else if (this.singleDatePicker && val !== "") { - start = moment(val, this.format); - end = moment(val, this.format); - } - if (start !== null && end !== null) { - this.startDate = start; - this.endDate = end; - } - } - } - - // bind the time zone used to build the calendar to either the timeZone passed in through the options or the zone of the startDate (which will be the local time zone by default) - if (typeof options.timeZone === 'string' || typeof options.timeZone === 'number') { - this.timeZone = options.timeZone; - this.startDate.zone(this.timeZone); - this.endDate.zone(this.timeZone); - } else { - this.timeZone = moment(this.startDate).zone(); - } - - if (typeof options.ranges === 'object') { - for (range in options.ranges) { - - if (typeof options.ranges[range][0] === 'string') - start = moment(options.ranges[range][0], this.format); - else - start = moment(options.ranges[range][0]); - - if (typeof options.ranges[range][1] === 'string') - end = moment(options.ranges[range][1], this.format); - else - end = moment(options.ranges[range][1]); - - // If we have a min/max date set, bound this range - // to it, but only if it would otherwise fall - // outside of the min/max. - if (this.minDate && start.isBefore(this.minDate)) - start = moment(this.minDate); - - if (this.maxDate && end.isAfter(this.maxDate)) - end = moment(this.maxDate); - - // If the end of the range is before the minimum (if min is set) OR - // the start of the range is after the max (also if set) don't display this - // range option. - if ((this.minDate && end.isBefore(this.minDate)) || (this.maxDate && start.isAfter(this.maxDate))) { - continue; - } - - this.ranges[range] = [start, end]; - } - - var list = '
      '; - for (range in this.ranges) { - list += '
    • ' + range + '
    • '; - } - list += '
    • ' + this.locale.customRangeLabel + '
    • '; - list += '
    '; - this.container.find('.ranges ul').remove(); - this.container.find('.ranges').prepend(list); - } - - if (typeof callback === 'function') { - this.cb = callback; - } - - if (!this.timePicker) { - this.startDate = this.startDate.startOf('day'); - this.endDate = this.endDate.endOf('day'); - } - - if (this.singleDatePicker) { - this.opens = 'right'; - this.container.addClass('single'); - this.container.find('.calendar.right').show(); - this.container.find('.calendar.left').hide(); - if (!this.timePicker) { - this.container.find('.ranges').hide(); - } else { - this.container.find('.ranges .daterangepicker_start_input, .ranges .daterangepicker_end_input').hide(); - } - if (!this.container.find('.calendar.right').hasClass('single')) - this.container.find('.calendar.right').addClass('single'); - } else { - this.container.removeClass('single'); - this.container.find('.calendar.right').removeClass('single'); - this.container.find('.ranges').show(); - } - - this.oldStartDate = this.startDate.clone(); - this.oldEndDate = this.endDate.clone(); - this.oldChosenLabel = this.chosenLabel; - - this.leftCalendar = { - month: moment([this.startDate.year(), this.startDate.month(), 1, this.startDate.hour(), this.startDate.minute(), this.startDate.second()]), - calendar: [] - }; - - this.rightCalendar = { - month: moment([this.endDate.year(), this.endDate.month(), 1, this.endDate.hour(), this.endDate.minute(), this.endDate.second()]), - calendar: [] - }; - - if (this.opens == 'right' || this.opens == 'center') { - //swap calendar positions - var first = this.container.find('.calendar.first'); - var second = this.container.find('.calendar.second'); - - if (second.hasClass('single')) { - second.removeClass('single'); - first.addClass('single'); - } - - first.removeClass('left').addClass('right'); - second.removeClass('right').addClass('left'); - - if (this.singleDatePicker) { - first.show(); - second.hide(); - } - } - - if (typeof options.ranges === 'undefined' && !this.singleDatePicker) { - this.container.addClass('show-calendar'); - } - - this.container.addClass('opens' + this.opens); - - this.updateView(); - this.updateCalendars(); - - }, - - setStartDate: function(startDate) { - if (typeof startDate === 'string') - this.startDate = moment(startDate, this.format).zone(this.timeZone); - - if (typeof startDate === 'object') - this.startDate = moment(startDate); - - if (!this.timePicker) - this.startDate = this.startDate.startOf('day'); - - this.oldStartDate = this.startDate.clone(); - - this.updateView(); - this.updateCalendars(); - this.updateInputText(); - }, - - setEndDate: function(endDate) { - if (typeof endDate === 'string') - this.endDate = moment(endDate, this.format).zone(this.timeZone); - - if (typeof endDate === 'object') - this.endDate = moment(endDate); - - if (!this.timePicker) - this.endDate = this.endDate.endOf('day'); - - this.oldEndDate = this.endDate.clone(); - - this.updateView(); - this.updateCalendars(); - this.updateInputText(); - }, - - updateView: function () { - this.leftCalendar.month.month(this.startDate.month()).year(this.startDate.year()).hour(this.startDate.hour()).minute(this.startDate.minute()); - this.rightCalendar.month.month(this.endDate.month()).year(this.endDate.year()).hour(this.endDate.hour()).minute(this.endDate.minute()); - this.updateFormInputs(); - }, - - updateFormInputs: function () { - this.container.find('input[name=daterangepicker_start]').val(this.startDate.format(this.format)); - this.container.find('input[name=daterangepicker_end]').val(this.endDate.format(this.format)); - - if (this.startDate.isSame(this.endDate) || this.startDate.isBefore(this.endDate)) { - this.container.find('button.applyBtn').removeAttr('disabled'); - } else { - this.container.find('button.applyBtn').attr('disabled', 'disabled'); - } - }, - - updateFromControl: function () { - if (!this.element.is('input')) return; - if (!this.element.val().length) return; - - var dateString = this.element.val().split(this.separator), - start = null, - end = null; - - if(dateString.length === 2) { - start = moment(dateString[0], this.format).zone(this.timeZone); - end = moment(dateString[1], this.format).zone(this.timeZone); - } - - if (this.singleDatePicker || start === null || end === null) { - start = moment(this.element.val(), this.format).zone(this.timeZone); - end = start; - } - - if (end.isBefore(start)) return; - - this.oldStartDate = this.startDate.clone(); - this.oldEndDate = this.endDate.clone(); - - this.startDate = start; - this.endDate = end; - - if (!this.startDate.isSame(this.oldStartDate) || !this.endDate.isSame(this.oldEndDate)) - this.notify(); - - this.updateCalendars(); - }, - - notify: function () { - this.updateView(); - this.cb(this.startDate, this.endDate, this.chosenLabel); - }, - - move: function () { - var parentOffset = { top: 0, left: 0 }; - var parentRightEdge = $(window).width(); - if (!this.parentEl.is('body')) { - parentOffset = { - top: this.parentEl.offset().top - this.parentEl.scrollTop(), - left: this.parentEl.offset().left - this.parentEl.scrollLeft() - }; - parentRightEdge = this.parentEl[0].clientWidth + this.parentEl.offset().left; - } - - if (this.opens == 'left') { - this.container.css({ - top: this.element.offset().top + this.element.outerHeight() - parentOffset.top, - right: parentRightEdge - this.element.offset().left - this.element.outerWidth(), - left: 'auto' - }); - if (this.container.offset().left < 0) { - this.container.css({ - right: 'auto', - left: 9 - }); - } - } else if (this.opens == 'center') { - this.container.css({ - top: this.element.offset().top + this.element.outerHeight() - parentOffset.top, - left: this.element.offset().left - parentOffset.left + this.element.outerWidth() / 2 - - this.container.outerWidth() / 2, - right: 'auto' - }); - if (this.container.offset().left < 0) { - this.container.css({ - right: 'auto', - left: 9 - }); - } - } else { - this.container.css({ - top: this.element.offset().top + this.element.outerHeight() - parentOffset.top, - left: this.element.offset().left - parentOffset.left, - right: 'auto' - }); - if (this.container.offset().left + this.container.outerWidth() > $(window).width()) { - this.container.css({ - left: 'auto', - right: 0 - }); - } - } - }, - - toggle: function (e) { - if (this.element.hasClass('active')) { - this.hide(); - } else { - this.show(); - } - }, - - show: function (e) { - if (this.isShowing) return; - - this.element.addClass('active'); - this.container.show(); - this.move(); - - // Create a click proxy that is private to this instance of datepicker, for unbinding - this._outsideClickProxy = $.proxy(function (e) { this.outsideClick(e); }, this); - // Bind global datepicker mousedown for hiding and - $(document) - .on('mousedown.daterangepicker', this._outsideClickProxy) - // also support mobile devices - .on('touchend.daterangepicker', this._outsideClickProxy) - // also explicitly play nice with Bootstrap dropdowns, which stopPropagation when clicking them - .on('click.daterangepicker', '[data-toggle=dropdown]', this._outsideClickProxy) - // and also close when focus changes to outside the picker (eg. tabbing between controls) - .on('focusin.daterangepicker', this._outsideClickProxy); - - this.isShowing = true; - this.element.trigger('show.daterangepicker', this); - }, - - outsideClick: function (e) { - var target = $(e.target); - // if the page is clicked anywhere except within the daterangerpicker/button - // itself then call this.hide() - if ( - // ie modal dialog fix - e.type == "focusin" || - target.closest(this.element).length || - target.closest(this.container).length || - target.closest('.calendar-date').length - ) return; - this.hide(); - }, - - hide: function (e) { - if (!this.isShowing) return; - - $(document) - .off('.daterangepicker'); - - this.element.removeClass('active'); - this.container.hide(); - - if (!this.startDate.isSame(this.oldStartDate) || !this.endDate.isSame(this.oldEndDate)) - this.notify(); - - this.oldStartDate = this.startDate.clone(); - this.oldEndDate = this.endDate.clone(); - - this.isShowing = false; - this.element.trigger('hide.daterangepicker', this); - }, - - enterRange: function (e) { - // mouse pointer has entered a range label - var label = e.target.innerHTML; - if (label == this.locale.customRangeLabel) { - this.updateView(); - } else { - var dates = this.ranges[label]; - this.container.find('input[name=daterangepicker_start]').val(dates[0].format(this.format)); - this.container.find('input[name=daterangepicker_end]').val(dates[1].format(this.format)); - } - }, - - showCalendars: function() { - this.container.addClass('show-calendar'); - this.move(); - this.element.trigger('showCalendar.daterangepicker', this); - }, - - hideCalendars: function() { - this.container.removeClass('show-calendar'); - this.element.trigger('hideCalendar.daterangepicker', this); - }, - - // when a date is typed into the start to end date textboxes - inputsChanged: function (e) { - var el = $(e.target); - var date = moment(el.val(), this.format); - if (!date.isValid()) return; - - var startDate, endDate; - if (el.attr('name') === 'daterangepicker_start') { - startDate = date; - endDate = this.endDate; - } else { - startDate = this.startDate; - endDate = date; - } - this.setCustomDates(startDate, endDate); - }, - - inputsKeydown: function(e) { - if (e.keyCode === 13) { - this.inputsChanged(e); - this.notify(); - } - }, - - updateInputText: function() { - if (this.element.is('input') && !this.singleDatePicker) { - this.element.val(this.startDate.format(this.format) + this.separator + this.endDate.format(this.format)); - } else if (this.element.is('input')) { - this.element.val(this.endDate.format(this.format)); - } - }, - - clickRange: function (e) { - var label = e.target.innerHTML; - this.chosenLabel = label; - if (label == this.locale.customRangeLabel) { - this.showCalendars(); - } else { - var dates = this.ranges[label]; - - this.startDate = dates[0]; - this.endDate = dates[1]; - - if (!this.timePicker) { - this.startDate.startOf('day'); - this.endDate.endOf('day'); - } - - this.leftCalendar.month.month(this.startDate.month()).year(this.startDate.year()).hour(this.startDate.hour()).minute(this.startDate.minute()); - this.rightCalendar.month.month(this.endDate.month()).year(this.endDate.year()).hour(this.endDate.hour()).minute(this.endDate.minute()); - this.updateCalendars(); - - this.updateInputText(); - - this.hideCalendars(); - this.hide(); - this.element.trigger('apply.daterangepicker', this); - } - }, - - clickPrev: function (e) { - var cal = $(e.target).parents('.calendar'); - if (cal.hasClass('left')) { - this.leftCalendar.month.subtract(1, 'month'); - } else { - this.rightCalendar.month.subtract(1, 'month'); - } - this.updateCalendars(); - }, - - clickNext: function (e) { - var cal = $(e.target).parents('.calendar'); - if (cal.hasClass('left')) { - this.leftCalendar.month.add(1, 'month'); - } else { - this.rightCalendar.month.add(1, 'month'); - } - this.updateCalendars(); - }, - - hoverDate: function (e) { - var title = $(e.target).attr('data-title'); - var row = title.substr(1, 1); - var col = title.substr(3, 1); - var cal = $(e.target).parents('.calendar'); - - if (cal.hasClass('left')) { - this.container.find('input[name=daterangepicker_start]').val(this.leftCalendar.calendar[row][col].format(this.format)); - } else { - this.container.find('input[name=daterangepicker_end]').val(this.rightCalendar.calendar[row][col].format(this.format)); - } - }, - - setCustomDates: function(startDate, endDate) { - this.chosenLabel = this.locale.customRangeLabel; - if (startDate.isAfter(endDate)) { - var difference = this.endDate.diff(this.startDate); - endDate = moment(startDate).add(difference, 'ms'); - if (this.maxDate && endDate.isAfter(this.maxDate)) { - endDate = this.maxDate; - } - } - this.startDate = startDate; - this.endDate = endDate; - - this.updateView(); - this.updateCalendars(); - }, - - clickDate: function (e) { - var title = $(e.target).attr('data-title'); - var row = title.substr(1, 1); - var col = title.substr(3, 1); - var cal = $(e.target).parents('.calendar'); - - var startDate, endDate; - if (cal.hasClass('left')) { - startDate = this.leftCalendar.calendar[row][col]; - endDate = this.endDate; - if (typeof this.dateLimit === 'object') { - var maxDate = moment(startDate).add(this.dateLimit).startOf('day'); - if (endDate.isAfter(maxDate)) { - endDate = maxDate; - } - } - } else { - startDate = this.startDate; - endDate = this.rightCalendar.calendar[row][col]; - if (typeof this.dateLimit === 'object') { - var minDate = moment(endDate).subtract(this.dateLimit).startOf('day'); - if (startDate.isBefore(minDate)) { - startDate = minDate; - } - } - } - - if (this.singleDatePicker && cal.hasClass('left')) { - endDate = startDate.clone(); - } else if (this.singleDatePicker && cal.hasClass('right')) { - startDate = endDate.clone(); - } - - cal.find('td').removeClass('active'); - - $(e.target).addClass('active'); - - this.setCustomDates(startDate, endDate); - - if (!this.timePicker) - endDate.endOf('day'); - - if (this.singleDatePicker && !this.timePicker) - this.clickApply(); - }, - - clickApply: function (e) { - this.updateInputText(); - this.hide(); - this.element.trigger('apply.daterangepicker', this); - }, - - clickCancel: function (e) { - this.startDate = this.oldStartDate; - this.endDate = this.oldEndDate; - this.chosenLabel = this.oldChosenLabel; - this.updateView(); - this.updateCalendars(); - this.hide(); - this.element.trigger('cancel.daterangepicker', this); - }, - - updateMonthYear: function (e) { - var isLeft = $(e.target).closest('.calendar').hasClass('left'), - leftOrRight = isLeft ? 'left' : 'right', - cal = this.container.find('.calendar.'+leftOrRight); - - // Month must be Number for new moment versions - var month = parseInt(cal.find('.monthselect').val(), 10); - var year = cal.find('.yearselect').val(); - - this[leftOrRight+'Calendar'].month.month(month).year(year); - this.updateCalendars(); - }, - - updateTime: function(e) { - - var cal = $(e.target).closest('.calendar'), - isLeft = cal.hasClass('left'); - - var hour = parseInt(cal.find('.hourselect').val(), 10); - var minute = parseInt(cal.find('.minuteselect').val(), 10); - var second = 0; - - if (this.timePickerSeconds) { - second = parseInt(cal.find('.secondselect').val(), 10); - } - - if (this.timePicker12Hour) { - var ampm = cal.find('.ampmselect').val(); - if (ampm === 'PM' && hour < 12) - hour += 12; - if (ampm === 'AM' && hour === 12) - hour = 0; - } - - if (isLeft) { - var start = this.startDate.clone(); - start.hour(hour); - start.minute(minute); - start.second(second); - this.startDate = start; - this.leftCalendar.month.hour(hour).minute(minute).second(second); - if (this.singleDatePicker) - this.endDate = start.clone(); - } else { - var end = this.endDate.clone(); - end.hour(hour); - end.minute(minute); - end.second(second); - this.endDate = end; - if (this.singleDatePicker) - this.startDate = end.clone(); - this.rightCalendar.month.hour(hour).minute(minute).second(second); - } - - this.updateView(); - this.updateCalendars(); - }, - - updateCalendars: function () { - this.leftCalendar.calendar = this.buildCalendar(this.leftCalendar.month.month(), this.leftCalendar.month.year(), this.leftCalendar.month.hour(), this.leftCalendar.month.minute(), this.leftCalendar.month.second(), 'left'); - this.rightCalendar.calendar = this.buildCalendar(this.rightCalendar.month.month(), this.rightCalendar.month.year(), this.rightCalendar.month.hour(), this.rightCalendar.month.minute(), this.rightCalendar.month.second(), 'right'); - this.container.find('.calendar.left').empty().html(this.renderCalendar(this.leftCalendar.calendar, this.startDate, this.minDate, this.maxDate, 'left')); - this.container.find('.calendar.right').empty().html(this.renderCalendar(this.rightCalendar.calendar, this.endDate, this.singleDatePicker ? this.minDate : this.startDate, this.maxDate, 'right')); - - this.container.find('.ranges li').removeClass('active'); - var customRange = true; - var i = 0; - for (var range in this.ranges) { - if (this.timePicker) { - if (this.startDate.isSame(this.ranges[range][0]) && this.endDate.isSame(this.ranges[range][1])) { - customRange = false; - this.chosenLabel = this.container.find('.ranges li:eq(' + i + ')') - .addClass('active').html(); - } - } else { - //ignore times when comparing dates if time picker is not enabled - if (this.startDate.format('YYYY-MM-DD') == this.ranges[range][0].format('YYYY-MM-DD') && this.endDate.format('YYYY-MM-DD') == this.ranges[range][1].format('YYYY-MM-DD')) { - customRange = false; - this.chosenLabel = this.container.find('.ranges li:eq(' + i + ')') - .addClass('active').html(); - } - } - i++; - } - if (customRange) { - this.chosenLabel = this.container.find('.ranges li:last').addClass('active').html(); - this.showCalendars(); - } - }, - - buildCalendar: function (month, year, hour, minute, second, side) { - var daysInMonth = moment([year, month]).daysInMonth(); - var firstDay = moment([year, month, 1]); - var lastDay = moment([year, month, daysInMonth]); - var lastMonth = moment(firstDay).subtract(1, 'month').month(); - var lastYear = moment(firstDay).subtract(1, 'month').year(); - - var daysInLastMonth = moment([lastYear, lastMonth]).daysInMonth(); - - var dayOfWeek = firstDay.day(); - - var i; - - //initialize a 6 rows x 7 columns array for the calendar - var calendar = []; - calendar.firstDay = firstDay; - calendar.lastDay = lastDay; - - for (i = 0; i < 6; i++) { - calendar[i] = []; - } - - //populate the calendar with date objects - var startDay = daysInLastMonth - dayOfWeek + this.locale.firstDay + 1; - if (startDay > daysInLastMonth) - startDay -= 7; - - if (dayOfWeek == this.locale.firstDay) - startDay = daysInLastMonth - 6; - - var curDate = moment([lastYear, lastMonth, startDay, 12, minute, second]).zone(this.timeZone); - - var col, row; - for (i = 0, col = 0, row = 0; i < 42; i++, col++, curDate = moment(curDate).add(24, 'hour')) { - if (i > 0 && col % 7 === 0) { - col = 0; - row++; - } - calendar[row][col] = curDate.clone().hour(hour); - curDate.hour(12); - - if (this.minDate && calendar[row][col].format('YYYY-MM-DD') == this.minDate.format('YYYY-MM-DD') && calendar[row][col].isBefore(this.minDate) && side == 'left') { - calendar[row][col] = this.minDate.clone(); - } - - if (this.maxDate && calendar[row][col].format('YYYY-MM-DD') == this.maxDate.format('YYYY-MM-DD') && calendar[row][col].isAfter(this.maxDate) && side == 'right') { - calendar[row][col] = this.maxDate.clone(); - } - - } - - return calendar; - }, - - renderDropdowns: function (selected, minDate, maxDate) { - var currentMonth = selected.month(); - var currentYear = selected.year(); - var maxYear = (maxDate && maxDate.year()) || (currentYear + 5); - var minYear = (minDate && minDate.year()) || (currentYear - 50); - - var monthHtml = '"; - - var yearHtml = ''; - - return monthHtml + yearHtml; - }, - - renderCalendar: function (calendar, selected, minDate, maxDate, side) { - - var html = '
    '; - html += ''; - html += ''; - html += ''; - - // add empty cell for week number - if (this.showWeekNumbers) - html += ''; - - if (!minDate || minDate.isBefore(calendar.firstDay)) { - html += ''; - } else { - html += ''; - } - - var dateHtml = this.locale.monthNames[calendar[1][1].month()] + calendar[1][1].format(" YYYY"); - - if (this.showDropdowns) { - dateHtml = this.renderDropdowns(calendar[1][1], minDate, maxDate); - } - - html += ''; - if (!maxDate || maxDate.isAfter(calendar.lastDay)) { - html += ''; - } else { - html += ''; - } - - html += ''; - html += ''; - - // add week number label - if (this.showWeekNumbers) - html += ''; - - $.each(this.locale.daysOfWeek, function (index, dayOfWeek) { - html += ''; - }); - - html += ''; - html += ''; - html += ''; - - for (var row = 0; row < 6; row++) { - html += ''; - - // add week number - if (this.showWeekNumbers) - html += ''; - - for (var col = 0; col < 7; col++) { - var cname = 'available '; - cname += (calendar[row][col].month() == calendar[1][1].month()) ? '' : 'off'; - - if ((minDate && calendar[row][col].isBefore(minDate, 'day')) || (maxDate && calendar[row][col].isAfter(maxDate, 'day'))) { - cname = ' off disabled '; - } else if (calendar[row][col].format('YYYY-MM-DD') == selected.format('YYYY-MM-DD')) { - cname += ' active '; - if (calendar[row][col].format('YYYY-MM-DD') == this.startDate.format('YYYY-MM-DD')) { - cname += ' start-date '; - } - if (calendar[row][col].format('YYYY-MM-DD') == this.endDate.format('YYYY-MM-DD')) { - cname += ' end-date '; - } - } else if (calendar[row][col] >= this.startDate && calendar[row][col] <= this.endDate) { - cname += ' in-range '; - if (calendar[row][col].isSame(this.startDate)) { cname += ' start-date '; } - if (calendar[row][col].isSame(this.endDate)) { cname += ' end-date '; } - } - - var title = 'r' + row + 'c' + col; - html += ''; - } - html += ''; - } - - html += ''; - html += '
    ' + dateHtml + '
    ' + this.locale.weekLabel + '' + dayOfWeek + '
    ' + calendar[row][0].week() + '' + calendar[row][col].date() + '
    '; - html += '
    '; - - var i; - if (this.timePicker) { - - html += '
    '; - html += ' : '; - - html += ' '; - - if (this.timePickerSeconds) { - html += ': '; - } - - if (this.timePicker12Hour) { - html += ''; - } - - html += '
    '; - - } - - return html; - - }, - - remove: function() { - - this.container.remove(); - this.element.off('.daterangepicker'); - this.element.removeData('daterangepicker'); - - } - - }; - - $.fn.daterangepicker = function (options, cb) { - this.each(function () { - var el = $(this); - if (el.data('daterangepicker')) - el.data('daterangepicker').remove(); - el.data('daterangepicker', new DateRangePicker(el, options, cb)); - }); - return this; - }; - -})); diff --git a/portal-common/src/main/webapp/common/thirdparty/bootstrap-daterangepicker/moment.js b/portal-common/src/main/webapp/common/thirdparty/bootstrap-daterangepicker/moment.js deleted file mode 100644 index 6d94b173..00000000 --- a/portal-common/src/main/webapp/common/thirdparty/bootstrap-daterangepicker/moment.js +++ /dev/null @@ -1,2808 +0,0 @@ -//! moment.js -//! version : 2.8.1 -//! authors : Tim Wood, Iskren Chernev, Moment.js contributors -//! license : MIT -//! momentjs.com - -(function (undefined) { - /************************************ - Constants - ************************************/ - - var moment, - VERSION = '2.8.1', - // the global-scope this is NOT the global object in Node.js - globalScope = typeof global !== 'undefined' ? global : this, - oldGlobalMoment, - round = Math.round, - i, - - YEAR = 0, - MONTH = 1, - DATE = 2, - HOUR = 3, - MINUTE = 4, - SECOND = 5, - MILLISECOND = 6, - - // internal storage for locale config files - locales = {}, - - // extra moment internal properties (plugins register props here) - momentProperties = [], - - // check for nodeJS - hasModule = (typeof module !== 'undefined' && module.exports), - - // ASP.NET json date format regex - aspNetJsonRegex = /^\/?Date\((\-?\d+)/i, - aspNetTimeSpanJsonRegex = /(\-)?(?:(\d*)\.)?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/, - - // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html - // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere - isoDurationRegex = /^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/, - - // format tokens - formattingTokens = /(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Q|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,4}|X|zz?|ZZ?|.)/g, - localFormattingTokens = /(\[[^\[]*\])|(\\)?(LT|LL?L?L?|l{1,4})/g, - - // parsing token regexes - parseTokenOneOrTwoDigits = /\d\d?/, // 0 - 99 - parseTokenOneToThreeDigits = /\d{1,3}/, // 0 - 999 - parseTokenOneToFourDigits = /\d{1,4}/, // 0 - 9999 - parseTokenOneToSixDigits = /[+\-]?\d{1,6}/, // -999,999 - 999,999 - parseTokenDigits = /\d+/, // nonzero number of digits - parseTokenWord = /[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i, // any word (or two) characters or numbers including two/three word month in arabic. - parseTokenTimezone = /Z|[\+\-]\d\d:?\d\d/gi, // +00:00 -00:00 +0000 -0000 or Z - parseTokenT = /T/i, // T (ISO separator) - parseTokenTimestampMs = /[\+\-]?\d+(\.\d{1,3})?/, // 123456789 123456789.123 - parseTokenOrdinal = /\d{1,2}/, - - //strict parsing regexes - parseTokenOneDigit = /\d/, // 0 - 9 - parseTokenTwoDigits = /\d\d/, // 00 - 99 - parseTokenThreeDigits = /\d{3}/, // 000 - 999 - parseTokenFourDigits = /\d{4}/, // 0000 - 9999 - parseTokenSixDigits = /[+-]?\d{6}/, // -999,999 - 999,999 - parseTokenSignedNumber = /[+-]?\d+/, // -inf - inf - - // iso 8601 regex - // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00) - isoRegex = /^\s*(?:[+-]\d{6}|\d{4})-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/, - - isoFormat = 'YYYY-MM-DDTHH:mm:ssZ', - - isoDates = [ - ['YYYYYY-MM-DD', /[+-]\d{6}-\d{2}-\d{2}/], - ['YYYY-MM-DD', /\d{4}-\d{2}-\d{2}/], - ['GGGG-[W]WW-E', /\d{4}-W\d{2}-\d/], - ['GGGG-[W]WW', /\d{4}-W\d{2}/], - ['YYYY-DDD', /\d{4}-\d{3}/] - ], - - // iso time formats and regexes - isoTimes = [ - ['HH:mm:ss.SSSS', /(T| )\d\d:\d\d:\d\d\.\d+/], - ['HH:mm:ss', /(T| )\d\d:\d\d:\d\d/], - ['HH:mm', /(T| )\d\d:\d\d/], - ['HH', /(T| )\d\d/] - ], - - // timezone chunker "+10:00" > ["10", "00"] or "-1530" > ["-15", "30"] - parseTimezoneChunker = /([\+\-]|\d\d)/gi, - - // getter and setter names - proxyGettersAndSetters = 'Date|Hours|Minutes|Seconds|Milliseconds'.split('|'), - unitMillisecondFactors = { - 'Milliseconds' : 1, - 'Seconds' : 1e3, - 'Minutes' : 6e4, - 'Hours' : 36e5, - 'Days' : 864e5, - 'Months' : 2592e6, - 'Years' : 31536e6 - }, - - unitAliases = { - ms : 'millisecond', - s : 'second', - m : 'minute', - h : 'hour', - d : 'day', - D : 'date', - w : 'week', - W : 'isoWeek', - M : 'month', - Q : 'quarter', - y : 'year', - DDD : 'dayOfYear', - e : 'weekday', - E : 'isoWeekday', - gg: 'weekYear', - GG: 'isoWeekYear' - }, - - camelFunctions = { - dayofyear : 'dayOfYear', - isoweekday : 'isoWeekday', - isoweek : 'isoWeek', - weekyear : 'weekYear', - isoweekyear : 'isoWeekYear' - }, - - // format function strings - formatFunctions = {}, - - // default relative time thresholds - relativeTimeThresholds = { - s: 45, // seconds to minute - m: 45, // minutes to hour - h: 22, // hours to day - d: 26, // days to month - M: 11 // months to year - }, - - // tokens to ordinalize and pad - ordinalizeTokens = 'DDD w W M D d'.split(' '), - paddedTokens = 'M D H h m s w W'.split(' '), - - formatTokenFunctions = { - M : function () { - return this.month() + 1; - }, - MMM : function (format) { - return this.localeData().monthsShort(this, format); - }, - MMMM : function (format) { - return this.localeData().months(this, format); - }, - D : function () { - return this.date(); - }, - DDD : function () { - return this.dayOfYear(); - }, - d : function () { - return this.day(); - }, - dd : function (format) { - return this.localeData().weekdaysMin(this, format); - }, - ddd : function (format) { - return this.localeData().weekdaysShort(this, format); - }, - dddd : function (format) { - return this.localeData().weekdays(this, format); - }, - w : function () { - return this.week(); - }, - W : function () { - return this.isoWeek(); - }, - YY : function () { - return leftZeroFill(this.year() % 100, 2); - }, - YYYY : function () { - return leftZeroFill(this.year(), 4); - }, - YYYYY : function () { - return leftZeroFill(this.year(), 5); - }, - YYYYYY : function () { - var y = this.year(), sign = y >= 0 ? '+' : '-'; - return sign + leftZeroFill(Math.abs(y), 6); - }, - gg : function () { - return leftZeroFill(this.weekYear() % 100, 2); - }, - gggg : function () { - return leftZeroFill(this.weekYear(), 4); - }, - ggggg : function () { - return leftZeroFill(this.weekYear(), 5); - }, - GG : function () { - return leftZeroFill(this.isoWeekYear() % 100, 2); - }, - GGGG : function () { - return leftZeroFill(this.isoWeekYear(), 4); - }, - GGGGG : function () { - return leftZeroFill(this.isoWeekYear(), 5); - }, - e : function () { - return this.weekday(); - }, - E : function () { - return this.isoWeekday(); - }, - a : function () { - return this.localeData().meridiem(this.hours(), this.minutes(), true); - }, - A : function () { - return this.localeData().meridiem(this.hours(), this.minutes(), false); - }, - H : function () { - return this.hours(); - }, - h : function () { - return this.hours() % 12 || 12; - }, - m : function () { - return this.minutes(); - }, - s : function () { - return this.seconds(); - }, - S : function () { - return toInt(this.milliseconds() / 100); - }, - SS : function () { - return leftZeroFill(toInt(this.milliseconds() / 10), 2); - }, - SSS : function () { - return leftZeroFill(this.milliseconds(), 3); - }, - SSSS : function () { - return leftZeroFill(this.milliseconds(), 3); - }, - Z : function () { - var a = -this.zone(), - b = '+'; - if (a < 0) { - a = -a; - b = '-'; - } - return b + leftZeroFill(toInt(a / 60), 2) + ':' + leftZeroFill(toInt(a) % 60, 2); - }, - ZZ : function () { - var a = -this.zone(), - b = '+'; - if (a < 0) { - a = -a; - b = '-'; - } - return b + leftZeroFill(toInt(a / 60), 2) + leftZeroFill(toInt(a) % 60, 2); - }, - z : function () { - return this.zoneAbbr(); - }, - zz : function () { - return this.zoneName(); - }, - X : function () { - return this.unix(); - }, - Q : function () { - return this.quarter(); - } - }, - - deprecations = {}, - - lists = ['months', 'monthsShort', 'weekdays', 'weekdaysShort', 'weekdaysMin']; - - // Pick the first defined of two or three arguments. dfl comes from - // default. - function dfl(a, b, c) { - switch (arguments.length) { - case 2: return a != null ? a : b; - case 3: return a != null ? a : b != null ? b : c; - default: throw new Error('Implement me'); - } - } - - function defaultParsingFlags() { - // We need to deep clone this object, and es5 standard is not very - // helpful. - return { - empty : false, - unusedTokens : [], - unusedInput : [], - overflow : -2, - charsLeftOver : 0, - nullInput : false, - invalidMonth : null, - invalidFormat : false, - userInvalidated : false, - iso: false - }; - } - - function printMsg(msg) { - if (moment.suppressDeprecationWarnings === false && - typeof console !== 'undefined' && console.warn) { - console.warn("Deprecation warning: " + msg); - } - } - - function deprecate(msg, fn) { - var firstTime = true; - return extend(function () { - if (firstTime) { - printMsg(msg); - firstTime = false; - } - return fn.apply(this, arguments); - }, fn); - } - - function deprecateSimple(name, msg) { - if (!deprecations[name]) { - printMsg(msg); - deprecations[name] = true; - } - } - - function padToken(func, count) { - return function (a) { - return leftZeroFill(func.call(this, a), count); - }; - } - function ordinalizeToken(func, period) { - return function (a) { - return this.localeData().ordinal(func.call(this, a), period); - }; - } - - while (ordinalizeTokens.length) { - i = ordinalizeTokens.pop(); - formatTokenFunctions[i + 'o'] = ordinalizeToken(formatTokenFunctions[i], i); - } - while (paddedTokens.length) { - i = paddedTokens.pop(); - formatTokenFunctions[i + i] = padToken(formatTokenFunctions[i], 2); - } - formatTokenFunctions.DDDD = padToken(formatTokenFunctions.DDD, 3); - - - /************************************ - Constructors - ************************************/ - - function Locale() { - } - - // Moment prototype object - function Moment(config, skipOverflow) { - if (skipOverflow !== false) { - checkOverflow(config); - } - copyConfig(this, config); - this._d = new Date(+config._d); - } - - // Duration Constructor - function Duration(duration) { - var normalizedInput = normalizeObjectUnits(duration), - years = normalizedInput.year || 0, - quarters = normalizedInput.quarter || 0, - months = normalizedInput.month || 0, - weeks = normalizedInput.week || 0, - days = normalizedInput.day || 0, - hours = normalizedInput.hour || 0, - minutes = normalizedInput.minute || 0, - seconds = normalizedInput.second || 0, - milliseconds = normalizedInput.millisecond || 0; - - // representation for dateAddRemove - this._milliseconds = +milliseconds + - seconds * 1e3 + // 1000 - minutes * 6e4 + // 1000 * 60 - hours * 36e5; // 1000 * 60 * 60 - // Because of dateAddRemove treats 24 hours as different from a - // day when working around DST, we need to store them separately - this._days = +days + - weeks * 7; - // It is impossible translate months into days without knowing - // which months you are are talking about, so we have to store - // it separately. - this._months = +months + - quarters * 3 + - years * 12; - - this._data = {}; - - this._locale = moment.localeData(); - - this._bubble(); - } - - /************************************ - Helpers - ************************************/ - - - function extend(a, b) { - for (var i in b) { - if (b.hasOwnProperty(i)) { - a[i] = b[i]; - } - } - - if (b.hasOwnProperty('toString')) { - a.toString = b.toString; - } - - if (b.hasOwnProperty('valueOf')) { - a.valueOf = b.valueOf; - } - - return a; - } - - function copyConfig(to, from) { - var i, prop, val; - - if (typeof from._isAMomentObject !== 'undefined') { - to._isAMomentObject = from._isAMomentObject; - } - if (typeof from._i !== 'undefined') { - to._i = from._i; - } - if (typeof from._f !== 'undefined') { - to._f = from._f; - } - if (typeof from._l !== 'undefined') { - to._l = from._l; - } - if (typeof from._strict !== 'undefined') { - to._strict = from._strict; - } - if (typeof from._tzm !== 'undefined') { - to._tzm = from._tzm; - } - if (typeof from._isUTC !== 'undefined') { - to._isUTC = from._isUTC; - } - if (typeof from._offset !== 'undefined') { - to._offset = from._offset; - } - if (typeof from._pf !== 'undefined') { - to._pf = from._pf; - } - if (typeof from._locale !== 'undefined') { - to._locale = from._locale; - } - - if (momentProperties.length > 0) { - for (i in momentProperties) { - prop = momentProperties[i]; - val = from[prop]; - if (typeof val !== 'undefined') { - to[prop] = val; - } - } - } - - return to; - } - - function absRound(number) { - if (number < 0) { - return Math.ceil(number); - } else { - return Math.floor(number); - } - } - - // left zero fill a number - // see http://jsperf.com/left-zero-filling for performance comparison - function leftZeroFill(number, targetLength, forceSign) { - var output = '' + Math.abs(number), - sign = number >= 0; - - while (output.length < targetLength) { - output = '0' + output; - } - return (sign ? (forceSign ? '+' : '') : '-') + output; - } - - function positiveMomentsDifference(base, other) { - var res = {milliseconds: 0, months: 0}; - - res.months = other.month() - base.month() + - (other.year() - base.year()) * 12; - if (base.clone().add(res.months, 'M').isAfter(other)) { - --res.months; - } - - res.milliseconds = +other - +(base.clone().add(res.months, 'M')); - - return res; - } - - function momentsDifference(base, other) { - var res; - other = makeAs(other, base); - if (base.isBefore(other)) { - res = positiveMomentsDifference(base, other); - } else { - res = positiveMomentsDifference(other, base); - res.milliseconds = -res.milliseconds; - res.months = -res.months; - } - - return res; - } - - // TODO: remove 'name' arg after deprecation is removed - function createAdder(direction, name) { - return function (val, period) { - var dur, tmp; - //invert the arguments, but complain about it - if (period !== null && !isNaN(+period)) { - deprecateSimple(name, "moment()." + name + "(period, number) is deprecated. Please use moment()." + name + "(number, period)."); - tmp = val; val = period; period = tmp; - } - - val = typeof val === 'string' ? +val : val; - dur = moment.duration(val, period); - addOrSubtractDurationFromMoment(this, dur, direction); - return this; - }; - } - - function addOrSubtractDurationFromMoment(mom, duration, isAdding, updateOffset) { - var milliseconds = duration._milliseconds, - days = duration._days, - months = duration._months; - updateOffset = updateOffset == null ? true : updateOffset; - - if (milliseconds) { - mom._d.setTime(+mom._d + milliseconds * isAdding); - } - if (days) { - rawSetter(mom, 'Date', rawGetter(mom, 'Date') + days * isAdding); - } - if (months) { - rawMonthSetter(mom, rawGetter(mom, 'Month') + months * isAdding); - } - if (updateOffset) { - moment.updateOffset(mom, days || months); - } - } - - // check if is an array - function isArray(input) { - return Object.prototype.toString.call(input) === '[object Array]'; - } - - function isDate(input) { - return Object.prototype.toString.call(input) === '[object Date]' || - input instanceof Date; - } - - // compare two arrays, return the number of differences - function compareArrays(array1, array2, dontConvert) { - var len = Math.min(array1.length, array2.length), - lengthDiff = Math.abs(array1.length - array2.length), - diffs = 0, - i; - for (i = 0; i < len; i++) { - if ((dontConvert && array1[i] !== array2[i]) || - (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) { - diffs++; - } - } - return diffs + lengthDiff; - } - - function normalizeUnits(units) { - if (units) { - var lowered = units.toLowerCase().replace(/(.)s$/, '$1'); - units = unitAliases[units] || camelFunctions[lowered] || lowered; - } - return units; - } - - function normalizeObjectUnits(inputObject) { - var normalizedInput = {}, - normalizedProp, - prop; - - for (prop in inputObject) { - if (inputObject.hasOwnProperty(prop)) { - normalizedProp = normalizeUnits(prop); - if (normalizedProp) { - normalizedInput[normalizedProp] = inputObject[prop]; - } - } - } - - return normalizedInput; - } - - function makeList(field) { - var count, setter; - - if (field.indexOf('week') === 0) { - count = 7; - setter = 'day'; - } - else if (field.indexOf('month') === 0) { - count = 12; - setter = 'month'; - } - else { - return; - } - - moment[field] = function (format, index) { - var i, getter, - method = moment._locale[field], - results = []; - - if (typeof format === 'number') { - index = format; - format = undefined; - } - - getter = function (i) { - var m = moment().utc().set(setter, i); - return method.call(moment._locale, m, format || ''); - }; - - if (index != null) { - return getter(index); - } - else { - for (i = 0; i < count; i++) { - results.push(getter(i)); - } - return results; - } - }; - } - - function toInt(argumentForCoercion) { - var coercedNumber = +argumentForCoercion, - value = 0; - - if (coercedNumber !== 0 && isFinite(coercedNumber)) { - if (coercedNumber >= 0) { - value = Math.floor(coercedNumber); - } else { - value = Math.ceil(coercedNumber); - } - } - - return value; - } - - function daysInMonth(year, month) { - return new Date(Date.UTC(year, month + 1, 0)).getUTCDate(); - } - - function weeksInYear(year, dow, doy) { - return weekOfYear(moment([year, 11, 31 + dow - doy]), dow, doy).week; - } - - function daysInYear(year) { - return isLeapYear(year) ? 366 : 365; - } - - function isLeapYear(year) { - return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; - } - - function checkOverflow(m) { - var overflow; - if (m._a && m._pf.overflow === -2) { - overflow = - m._a[MONTH] < 0 || m._a[MONTH] > 11 ? MONTH : - m._a[DATE] < 1 || m._a[DATE] > daysInMonth(m._a[YEAR], m._a[MONTH]) ? DATE : - m._a[HOUR] < 0 || m._a[HOUR] > 23 ? HOUR : - m._a[MINUTE] < 0 || m._a[MINUTE] > 59 ? MINUTE : - m._a[SECOND] < 0 || m._a[SECOND] > 59 ? SECOND : - m._a[MILLISECOND] < 0 || m._a[MILLISECOND] > 999 ? MILLISECOND : - -1; - - if (m._pf._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) { - overflow = DATE; - } - - m._pf.overflow = overflow; - } - } - - function isValid(m) { - if (m._isValid == null) { - m._isValid = !isNaN(m._d.getTime()) && - m._pf.overflow < 0 && - !m._pf.empty && - !m._pf.invalidMonth && - !m._pf.nullInput && - !m._pf.invalidFormat && - !m._pf.userInvalidated; - - if (m._strict) { - m._isValid = m._isValid && - m._pf.charsLeftOver === 0 && - m._pf.unusedTokens.length === 0; - } - } - return m._isValid; - } - - function normalizeLocale(key) { - return key ? key.toLowerCase().replace('_', '-') : key; - } - - // pick the locale from the array - // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each - // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root - function chooseLocale(names) { - var i = 0, j, next, locale, split; - - while (i < names.length) { - split = normalizeLocale(names[i]).split('-'); - j = split.length; - next = normalizeLocale(names[i + 1]); - next = next ? next.split('-') : null; - while (j > 0) { - locale = loadLocale(split.slice(0, j).join('-')); - if (locale) { - return locale; - } - if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) { - //the next array item is better than a shallower substring of this one - break; - } - j--; - } - i++; - } - return null; - } - - function loadLocale(name) { - var oldLocale = null; - if (!locales[name] && hasModule) { - try { - oldLocale = moment.locale(); - require('./locale/' + name); - // because defineLocale currently also sets the global locale, we want to undo that for lazy loaded locales - moment.locale(oldLocale); - } catch (e) { } - } - return locales[name]; - } - - // Return a moment from input, that is local/utc/zone equivalent to model. - function makeAs(input, model) { - return model._isUTC ? moment(input).zone(model._offset || 0) : - moment(input).local(); - } - - /************************************ - Locale - ************************************/ - - - extend(Locale.prototype, { - - set : function (config) { - var prop, i; - for (i in config) { - prop = config[i]; - if (typeof prop === 'function') { - this[i] = prop; - } else { - this['_' + i] = prop; - } - } - }, - - _months : '1_2_3_4_May_June_July_August_September_October_November_December'.split('_'), - months : function (m) { - return this._months[m.month()]; - }, - - _monthsShort : '1_2_3_4_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), - monthsShort : function (m) { - return this._monthsShort[m.month()]; - }, - - monthsParse : function (monthName) { - var i, mom, regex; - - if (!this._monthsParse) { - this._monthsParse = []; - } - - for (i = 0; i < 12; i++) { - // make the regex if we don't have it already - if (!this._monthsParse[i]) { - mom = moment.utc([2000, i]); - regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, ''); - this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i'); - } - // test the regex - if (this._monthsParse[i].test(monthName)) { - return i; - } - } - }, - - _weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), - weekdays : function (m) { - return this._weekdays[m.day()]; - }, - - _weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), - weekdaysShort : function (m) { - return this._weekdaysShort[m.day()]; - }, - - _weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), - weekdaysMin : function (m) { - return this._weekdaysMin[m.day()]; - }, - - weekdaysParse : function (weekdayName) { - var i, mom, regex; - - if (!this._weekdaysParse) { - this._weekdaysParse = []; - } - - for (i = 0; i < 7; i++) { - // make the regex if we don't have it already - if (!this._weekdaysParse[i]) { - mom = moment([2000, 1]).day(i); - regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, ''); - this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i'); - } - // test the regex - if (this._weekdaysParse[i].test(weekdayName)) { - return i; - } - } - }, - - _longDateFormat : { - LT : 'h:mm A', - L : 'MM/DD/YYYY', - LL : 'MMMM D, YYYY', - LLL : 'MMMM D, YYYY LT', - LLLL : 'dddd, MMMM D, YYYY LT' - }, - longDateFormat : function (key) { - var output = this._longDateFormat[key]; - if (!output && this._longDateFormat[key.toUpperCase()]) { - output = this._longDateFormat[key.toUpperCase()].replace(/MMMM|MM|DD|dddd/g, function (val) { - return val.slice(1); - }); - this._longDateFormat[key] = output; - } - return output; - }, - - isPM : function (input) { - // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays - // Using charAt should be more compatible. - return ((input + '').toLowerCase().charAt(0) === 'p'); - }, - - _meridiemParse : /[ap]\.?m?\.?/i, - meridiem : function (hours, minutes, isLower) { - if (hours > 11) { - return isLower ? 'pm' : 'PM'; - } else { - return isLower ? 'am' : 'AM'; - } - }, - - _calendar : { - sameDay : '[Today at] LT', - nextDay : '[Tomorrow at] LT', - nextWeek : 'dddd [at] LT', - lastDay : '[Yesterday at] LT', - lastWeek : '[Last] dddd [at] LT', - sameElse : 'L' - }, - calendar : function (key, mom) { - var output = this._calendar[key]; - return typeof output === 'function' ? output.apply(mom) : output; - }, - - _relativeTime : { - future : 'in %s', - past : '%s ago', - s : 'a few seconds', - m : 'a minute', - mm : '%d minutes', - h : 'an hour', - hh : '%d hours', - d : 'a day', - dd : '%d days', - M : 'a month', - MM : '%d months', - y : 'a year', - yy : '%d years' - }, - - relativeTime : function (number, withoutSuffix, string, isFuture) { - var output = this._relativeTime[string]; - return (typeof output === 'function') ? - output(number, withoutSuffix, string, isFuture) : - output.replace(/%d/i, number); - }, - - pastFuture : function (diff, output) { - var format = this._relativeTime[diff > 0 ? 'future' : 'past']; - return typeof format === 'function' ? format(output) : format.replace(/%s/i, output); - }, - - ordinal : function (number) { - return this._ordinal.replace('%d', number); - }, - _ordinal : '%d', - - preparse : function (string) { - return string; - }, - - postformat : function (string) { - return string; - }, - - week : function (mom) { - return weekOfYear(mom, this._week.dow, this._week.doy).week; - }, - - _week : { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 1st is the first week of the year. - }, - - _invalidDate: 'Invalid date', - invalidDate: function () { - return this._invalidDate; - } - }); - - /************************************ - Formatting - ************************************/ - - - function removeFormattingTokens(input) { - if (input.match(/\[[\s\S]/)) { - return input.replace(/^\[|\]$/g, ''); - } - return input.replace(/\\/g, ''); - } - - function makeFormatFunction(format) { - var array = format.match(formattingTokens), i, length; - - for (i = 0, length = array.length; i < length; i++) { - if (formatTokenFunctions[array[i]]) { - array[i] = formatTokenFunctions[array[i]]; - } else { - array[i] = removeFormattingTokens(array[i]); - } - } - - return function (mom) { - var output = ''; - for (i = 0; i < length; i++) { - output += array[i] instanceof Function ? array[i].call(mom, format) : array[i]; - } - return output; - }; - } - - // format date using native date object - function formatMoment(m, format) { - if (!m.isValid()) { - return m.localeData().invalidDate(); - } - - format = expandFormat(format, m.localeData()); - - if (!formatFunctions[format]) { - formatFunctions[format] = makeFormatFunction(format); - } - - return formatFunctions[format](m); - } - - function expandFormat(format, locale) { - var i = 5; - - function replaceLongDateFormatTokens(input) { - return locale.longDateFormat(input) || input; - } - - localFormattingTokens.lastIndex = 0; - while (i >= 0 && localFormattingTokens.test(format)) { - format = format.replace(localFormattingTokens, replaceLongDateFormatTokens); - localFormattingTokens.lastIndex = 0; - i -= 1; - } - - return format; - } - - - /************************************ - Parsing - ************************************/ - - - // get the regex to find the next token - function getParseRegexForToken(token, config) { - var a, strict = config._strict; - switch (token) { - case 'Q': - return parseTokenOneDigit; - case 'DDDD': - return parseTokenThreeDigits; - case 'YYYY': - case 'GGGG': - case 'gggg': - return strict ? parseTokenFourDigits : parseTokenOneToFourDigits; - case 'Y': - case 'G': - case 'g': - return parseTokenSignedNumber; - case 'YYYYYY': - case 'YYYYY': - case 'GGGGG': - case 'ggggg': - return strict ? parseTokenSixDigits : parseTokenOneToSixDigits; - case 'S': - if (strict) { - return parseTokenOneDigit; - } - /* falls through */ - case 'SS': - if (strict) { - return parseTokenTwoDigits; - } - /* falls through */ - case 'SSS': - if (strict) { - return parseTokenThreeDigits; - } - /* falls through */ - case 'DDD': - return parseTokenOneToThreeDigits; - case 'MMM': - case 'MMMM': - case 'dd': - case 'ddd': - case 'dddd': - return parseTokenWord; - case 'a': - case 'A': - return config._locale._meridiemParse; - case 'X': - return parseTokenTimestampMs; - case 'Z': - case 'ZZ': - return parseTokenTimezone; - case 'T': - return parseTokenT; - case 'SSSS': - return parseTokenDigits; - case 'MM': - case 'DD': - case 'YY': - case 'GG': - case 'gg': - case 'HH': - case 'hh': - case 'mm': - case 'ss': - case 'ww': - case 'WW': - return strict ? parseTokenTwoDigits : parseTokenOneOrTwoDigits; - case 'M': - case 'D': - case 'd': - case 'H': - case 'h': - case 'm': - case 's': - case 'w': - case 'W': - case 'e': - case 'E': - return parseTokenOneOrTwoDigits; - case 'Do': - return parseTokenOrdinal; - default : - a = new RegExp(regexpEscape(unescapeFormat(token.replace('\\', '')), 'i')); - return a; - } - } - - function timezoneMinutesFromString(string) { - string = string || ''; - var possibleTzMatches = (string.match(parseTokenTimezone) || []), - tzChunk = possibleTzMatches[possibleTzMatches.length - 1] || [], - parts = (tzChunk + '').match(parseTimezoneChunker) || ['-', 0, 0], - minutes = +(parts[1] * 60) + toInt(parts[2]); - - return parts[0] === '+' ? -minutes : minutes; - } - - // function to convert string input to date - function addTimeToArrayFromToken(token, input, config) { - var a, datePartArray = config._a; - - switch (token) { - // QUARTER - case 'Q': - if (input != null) { - datePartArray[MONTH] = (toInt(input) - 1) * 3; - } - break; - // MONTH - case 'M' : // fall through to MM - case 'MM' : - if (input != null) { - datePartArray[MONTH] = toInt(input) - 1; - } - break; - case 'MMM' : // fall through to MMMM - case 'MMMM' : - a = config._locale.monthsParse(input); - // if we didn't find a month name, mark the date as invalid. - if (a != null) { - datePartArray[MONTH] = a; - } else { - config._pf.invalidMonth = input; - } - break; - // DAY OF MONTH - case 'D' : // fall through to DD - case 'DD' : - if (input != null) { - datePartArray[DATE] = toInt(input); - } - break; - case 'Do' : - if (input != null) { - datePartArray[DATE] = toInt(parseInt(input, 10)); - } - break; - // DAY OF YEAR - case 'DDD' : // fall through to DDDD - case 'DDDD' : - if (input != null) { - config._dayOfYear = toInt(input); - } - - break; - // YEAR - case 'YY' : - datePartArray[YEAR] = moment.parseTwoDigitYear(input); - break; - case 'YYYY' : - case 'YYYYY' : - case 'YYYYYY' : - datePartArray[YEAR] = toInt(input); - break; - // AM / PM - case 'a' : // fall through to A - case 'A' : - config._isPm = config._locale.isPM(input); - break; - // 24 HOUR - case 'H' : // fall through to hh - case 'HH' : // fall through to hh - case 'h' : // fall through to hh - case 'hh' : - datePartArray[HOUR] = toInt(input); - break; - // MINUTE - case 'm' : // fall through to mm - case 'mm' : - datePartArray[MINUTE] = toInt(input); - break; - // SECOND - case 's' : // fall through to ss - case 'ss' : - datePartArray[SECOND] = toInt(input); - break; - // MILLISECOND - case 'S' : - case 'SS' : - case 'SSS' : - case 'SSSS' : - datePartArray[MILLISECOND] = toInt(('0.' + input) * 1000); - break; - // UNIX TIMESTAMP WITH MS - case 'X': - config._d = new Date(parseFloat(input) * 1000); - break; - // TIMEZONE - case 'Z' : // fall through to ZZ - case 'ZZ' : - config._useUTC = true; - config._tzm = timezoneMinutesFromString(input); - break; - // WEEKDAY - human - case 'dd': - case 'ddd': - case 'dddd': - a = config._locale.weekdaysParse(input); - // if we didn't get a weekday name, mark the date as invalid - if (a != null) { - config._w = config._w || {}; - config._w['d'] = a; - } else { - config._pf.invalidWeekday = input; - } - break; - // WEEK, WEEK DAY - numeric - case 'w': - case 'ww': - case 'W': - case 'WW': - case 'd': - case 'e': - case 'E': - token = token.substr(0, 1); - /* falls through */ - case 'gggg': - case 'GGGG': - case 'GGGGG': - token = token.substr(0, 2); - if (input) { - config._w = config._w || {}; - config._w[token] = toInt(input); - } - break; - case 'gg': - case 'GG': - config._w = config._w || {}; - config._w[token] = moment.parseTwoDigitYear(input); - } - } - - function dayOfYearFromWeekInfo(config) { - var w, weekYear, week, weekday, dow, doy, temp; - - w = config._w; - if (w.GG != null || w.W != null || w.E != null) { - dow = 1; - doy = 4; - - // TODO: We need to take the current isoWeekYear, but that depends on - // how we interpret now (local, utc, fixed offset). So create - // a now version of current config (take local/utc/offset flags, and - // create now). - weekYear = dfl(w.GG, config._a[YEAR], weekOfYear(moment(), 1, 4).year); - week = dfl(w.W, 1); - weekday = dfl(w.E, 1); - } else { - dow = config._locale._week.dow; - doy = config._locale._week.doy; - - weekYear = dfl(w.gg, config._a[YEAR], weekOfYear(moment(), dow, doy).year); - week = dfl(w.w, 1); - - if (w.d != null) { - // weekday -- low day numbers are considered next week - weekday = w.d; - if (weekday < dow) { - ++week; - } - } else if (w.e != null) { - // local weekday -- counting starts from begining of week - weekday = w.e + dow; - } else { - // default to begining of week - weekday = dow; - } - } - temp = dayOfYearFromWeeks(weekYear, week, weekday, doy, dow); - - config._a[YEAR] = temp.year; - config._dayOfYear = temp.dayOfYear; - } - - // convert an array to a date. - // the array should mirror the parameters below - // note: all values past the year are optional and will default to the lowest possible value. - // [year, month, day , hour, minute, second, millisecond] - function dateFromConfig(config) { - var i, date, input = [], currentDate, yearToUse; - - if (config._d) { - return; - } - - currentDate = currentDateArray(config); - - //compute day of the year from weeks and weekdays - if (config._w && config._a[DATE] == null && config._a[MONTH] == null) { - dayOfYearFromWeekInfo(config); - } - - //if the day of the year is set, figure out what it is - if (config._dayOfYear) { - yearToUse = dfl(config._a[YEAR], currentDate[YEAR]); - - if (config._dayOfYear > daysInYear(yearToUse)) { - config._pf._overflowDayOfYear = true; - } - - date = makeUTCDate(yearToUse, 0, config._dayOfYear); - config._a[MONTH] = date.getUTCMonth(); - config._a[DATE] = date.getUTCDate(); - } - - // Default to current date. - // * if no year, month, day of month are given, default to today - // * if day of month is given, default month and year - // * if month is given, default only year - // * if year is given, don't default anything - for (i = 0; i < 3 && config._a[i] == null; ++i) { - config._a[i] = input[i] = currentDate[i]; - } - - // Zero out whatever was not defaulted, including time - for (; i < 7; i++) { - config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i]; - } - - config._d = (config._useUTC ? makeUTCDate : makeDate).apply(null, input); - // Apply timezone offset from input. The actual zone can be changed - // with parseZone. - if (config._tzm != null) { - config._d.setUTCMinutes(config._d.getUTCMinutes() + config._tzm); - } - } - - function dateFromObject(config) { - var normalizedInput; - - if (config._d) { - return; - } - - normalizedInput = normalizeObjectUnits(config._i); - config._a = [ - normalizedInput.year, - normalizedInput.month, - normalizedInput.day, - normalizedInput.hour, - normalizedInput.minute, - normalizedInput.second, - normalizedInput.millisecond - ]; - - dateFromConfig(config); - } - - function currentDateArray(config) { - var now = new Date(); - if (config._useUTC) { - return [ - now.getUTCFullYear(), - now.getUTCMonth(), - now.getUTCDate() - ]; - } else { - return [now.getFullYear(), now.getMonth(), now.getDate()]; - } - } - - // date from string and format string - function makeDateFromStringAndFormat(config) { - if (config._f === moment.ISO_8601) { - parseISO(config); - return; - } - - config._a = []; - config._pf.empty = true; - - // This array is used to make a Date, either with `new Date` or `Date.UTC` - var string = '' + config._i, - i, parsedInput, tokens, token, skipped, - stringLength = string.length, - totalParsedInputLength = 0; - - tokens = expandFormat(config._f, config._locale).match(formattingTokens) || []; - - for (i = 0; i < tokens.length; i++) { - token = tokens[i]; - parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0]; - if (parsedInput) { - skipped = string.substr(0, string.indexOf(parsedInput)); - if (skipped.length > 0) { - config._pf.unusedInput.push(skipped); - } - string = string.slice(string.indexOf(parsedInput) + parsedInput.length); - totalParsedInputLength += parsedInput.length; - } - // don't parse if it's not a known token - if (formatTokenFunctions[token]) { - if (parsedInput) { - config._pf.empty = false; - } - else { - config._pf.unusedTokens.push(token); - } - addTimeToArrayFromToken(token, parsedInput, config); - } - else if (config._strict && !parsedInput) { - config._pf.unusedTokens.push(token); - } - } - - // add remaining unparsed input length to the string - config._pf.charsLeftOver = stringLength - totalParsedInputLength; - if (string.length > 0) { - config._pf.unusedInput.push(string); - } - - // handle am pm - if (config._isPm && config._a[HOUR] < 12) { - config._a[HOUR] += 12; - } - // if is 12 am, change hours to 0 - if (config._isPm === false && config._a[HOUR] === 12) { - config._a[HOUR] = 0; - } - - dateFromConfig(config); - checkOverflow(config); - } - - function unescapeFormat(s) { - return s.replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (matched, p1, p2, p3, p4) { - return p1 || p2 || p3 || p4; - }); - } - - // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript - function regexpEscape(s) { - return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); - } - - // date from string and array of format strings - function makeDateFromStringAndArray(config) { - var tempConfig, - bestMoment, - - scoreToBeat, - i, - currentScore; - - if (config._f.length === 0) { - config._pf.invalidFormat = true; - config._d = new Date(NaN); - return; - } - - for (i = 0; i < config._f.length; i++) { - currentScore = 0; - tempConfig = copyConfig({}, config); - tempConfig._pf = defaultParsingFlags(); - tempConfig._f = config._f[i]; - makeDateFromStringAndFormat(tempConfig); - - if (!isValid(tempConfig)) { - continue; - } - - // if there is any input that was not parsed add a penalty for that format - currentScore += tempConfig._pf.charsLeftOver; - - //or tokens - currentScore += tempConfig._pf.unusedTokens.length * 10; - - tempConfig._pf.score = currentScore; - - if (scoreToBeat == null || currentScore < scoreToBeat) { - scoreToBeat = currentScore; - bestMoment = tempConfig; - } - } - - extend(config, bestMoment || tempConfig); - } - - // date from iso format - function parseISO(config) { - var i, l, - string = config._i, - match = isoRegex.exec(string); - - if (match) { - config._pf.iso = true; - for (i = 0, l = isoDates.length; i < l; i++) { - if (isoDates[i][1].exec(string)) { - // match[5] should be "T" or undefined - config._f = isoDates[i][0] + (match[6] || ' '); - break; - } - } - for (i = 0, l = isoTimes.length; i < l; i++) { - if (isoTimes[i][1].exec(string)) { - config._f += isoTimes[i][0]; - break; - } - } - if (string.match(parseTokenTimezone)) { - config._f += 'Z'; - } - makeDateFromStringAndFormat(config); - } else { - config._isValid = false; - } - } - - // date from iso format or fallback - function makeDateFromString(config) { - parseISO(config); - if (config._isValid === false) { - delete config._isValid; - moment.createFromInputFallback(config); - } - } - - function makeDateFromInput(config) { - var input = config._i, matched; - if (input === undefined) { - config._d = new Date(); - } else if (isDate(input)) { - config._d = new Date(+input); - } else if ((matched = aspNetJsonRegex.exec(input)) !== null) { - config._d = new Date(+matched[1]); - } else if (typeof input === 'string') { - makeDateFromString(config); - } else if (isArray(input)) { - config._a = input.slice(0); - dateFromConfig(config); - } else if (typeof(input) === 'object') { - dateFromObject(config); - } else if (typeof(input) === 'number') { - // from milliseconds - config._d = new Date(input); - } else { - moment.createFromInputFallback(config); - } - } - - function makeDate(y, m, d, h, M, s, ms) { - //can't just apply() to create a date: - //http://stackoverflow.com/questions/181348/instantiating-a-javascript-object-by-calling-prototype-constructor-apply - var date = new Date(y, m, d, h, M, s, ms); - - //the date constructor doesn't accept years < 1970 - if (y < 1970) { - date.setFullYear(y); - } - return date; - } - - function makeUTCDate(y) { - var date = new Date(Date.UTC.apply(null, arguments)); - if (y < 1970) { - date.setUTCFullYear(y); - } - return date; - } - - function parseWeekday(input, locale) { - if (typeof input === 'string') { - if (!isNaN(input)) { - input = parseInt(input, 10); - } - else { - input = locale.weekdaysParse(input); - if (typeof input !== 'number') { - return null; - } - } - } - return input; - } - - /************************************ - Relative Time - ************************************/ - - - // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize - function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) { - return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture); - } - - function relativeTime(posNegDuration, withoutSuffix, locale) { - var duration = moment.duration(posNegDuration).abs(), - seconds = round(duration.as('s')), - minutes = round(duration.as('m')), - hours = round(duration.as('h')), - days = round(duration.as('d')), - months = round(duration.as('M')), - years = round(duration.as('y')), - - args = seconds < relativeTimeThresholds.s && ['s', seconds] || - minutes === 1 && ['m'] || - minutes < relativeTimeThresholds.m && ['mm', minutes] || - hours === 1 && ['h'] || - hours < relativeTimeThresholds.h && ['hh', hours] || - days === 1 && ['d'] || - days < relativeTimeThresholds.d && ['dd', days] || - months === 1 && ['M'] || - months < relativeTimeThresholds.M && ['MM', months] || - years === 1 && ['y'] || ['yy', years]; - - args[2] = withoutSuffix; - args[3] = +posNegDuration > 0; - args[4] = locale; - return substituteTimeAgo.apply({}, args); - } - - - /************************************ - Week of Year - ************************************/ - - - // firstDayOfWeek 0 = sun, 6 = sat - // the day of the week that starts the week - // (usually sunday or monday) - // firstDayOfWeekOfYear 0 = sun, 6 = sat - // the first week is the week that contains the first - // of this day of the week - // (eg. ISO weeks use thursday (4)) - function weekOfYear(mom, firstDayOfWeek, firstDayOfWeekOfYear) { - var end = firstDayOfWeekOfYear - firstDayOfWeek, - daysToDayOfWeek = firstDayOfWeekOfYear - mom.day(), - adjustedMoment; - - - if (daysToDayOfWeek > end) { - daysToDayOfWeek -= 7; - } - - if (daysToDayOfWeek < end - 7) { - daysToDayOfWeek += 7; - } - - adjustedMoment = moment(mom).add(daysToDayOfWeek, 'd'); - return { - week: Math.ceil(adjustedMoment.dayOfYear() / 7), - year: adjustedMoment.year() - }; - } - - //http://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday - function dayOfYearFromWeeks(year, week, weekday, firstDayOfWeekOfYear, firstDayOfWeek) { - var d = makeUTCDate(year, 0, 1).getUTCDay(), daysToAdd, dayOfYear; - - d = d === 0 ? 7 : d; - weekday = weekday != null ? weekday : firstDayOfWeek; - daysToAdd = firstDayOfWeek - d + (d > firstDayOfWeekOfYear ? 7 : 0) - (d < firstDayOfWeek ? 7 : 0); - dayOfYear = 7 * (week - 1) + (weekday - firstDayOfWeek) + daysToAdd + 1; - - return { - year: dayOfYear > 0 ? year : year - 1, - dayOfYear: dayOfYear > 0 ? dayOfYear : daysInYear(year - 1) + dayOfYear - }; - } - - /************************************ - Top Level Functions - ************************************/ - - function makeMoment(config) { - var input = config._i, - format = config._f; - - config._locale = config._locale || moment.localeData(config._l); - - if (input === null || (format === undefined && input === '')) { - return moment.invalid({nullInput: true}); - } - - if (typeof input === 'string') { - config._i = input = config._locale.preparse(input); - } - - if (moment.isMoment(input)) { - return new Moment(input, true); - } else if (format) { - if (isArray(format)) { - makeDateFromStringAndArray(config); - } else { - makeDateFromStringAndFormat(config); - } - } else { - makeDateFromInput(config); - } - - return new Moment(config); - } - - moment = function (input, format, locale, strict) { - var c; - - if (typeof(locale) === "boolean") { - strict = locale; - locale = undefined; - } - // object construction must be done this way. - // https://github.com/moment/moment/issues/1423 - c = {}; - c._isAMomentObject = true; - c._i = input; - c._f = format; - c._l = locale; - c._strict = strict; - c._isUTC = false; - c._pf = defaultParsingFlags(); - - return makeMoment(c); - }; - - moment.suppressDeprecationWarnings = false; - - moment.createFromInputFallback = deprecate( - 'moment construction falls back to js Date. This is ' + - 'discouraged and will be removed in upcoming major ' + - 'release. Please refer to ' + - 'https://github.com/moment/moment/issues/1407 for more info.', - function (config) { - config._d = new Date(config._i); - } - ); - - // Pick a moment m from moments so that m[fn](other) is true for all - // other. This relies on the function fn to be transitive. - // - // moments should either be an array of moment objects or an array, whose - // first element is an array of moment objects. - function pickBy(fn, moments) { - var res, i; - if (moments.length === 1 && isArray(moments[0])) { - moments = moments[0]; - } - if (!moments.length) { - return moment(); - } - res = moments[0]; - for (i = 1; i < moments.length; ++i) { - if (moments[i][fn](res)) { - res = moments[i]; - } - } - return res; - } - - moment.min = function () { - var args = [].slice.call(arguments, 0); - - return pickBy('isBefore', args); - }; - - moment.max = function () { - var args = [].slice.call(arguments, 0); - - return pickBy('isAfter', args); - }; - - // creating with utc - moment.utc = function (input, format, locale, strict) { - var c; - - if (typeof(locale) === "boolean") { - strict = locale; - locale = undefined; - } - // object construction must be done this way. - // https://github.com/moment/moment/issues/1423 - c = {}; - c._isAMomentObject = true; - c._useUTC = true; - c._isUTC = true; - c._l = locale; - c._i = input; - c._f = format; - c._strict = strict; - c._pf = defaultParsingFlags(); - - return makeMoment(c).utc(); - }; - - // creating with unix timestamp (in seconds) - moment.unix = function (input) { - return moment(input * 1000); - }; - - // duration - moment.duration = function (input, key) { - var duration = input, - // matching against regexp is expensive, do it on demand - match = null, - sign, - ret, - parseIso, - diffRes; - - if (moment.isDuration(input)) { - duration = { - ms: input._milliseconds, - d: input._days, - M: input._months - }; - } else if (typeof input === 'number') { - duration = {}; - if (key) { - duration[key] = input; - } else { - duration.milliseconds = input; - } - } else if (!!(match = aspNetTimeSpanJsonRegex.exec(input))) { - sign = (match[1] === '-') ? -1 : 1; - duration = { - y: 0, - d: toInt(match[DATE]) * sign, - h: toInt(match[HOUR]) * sign, - m: toInt(match[MINUTE]) * sign, - s: toInt(match[SECOND]) * sign, - ms: toInt(match[MILLISECOND]) * sign - }; - } else if (!!(match = isoDurationRegex.exec(input))) { - sign = (match[1] === '-') ? -1 : 1; - parseIso = function (inp) { - // We'd normally use ~~inp for this, but unfortunately it also - // converts floats to ints. - // inp may be undefined, so careful calling replace on it. - var res = inp && parseFloat(inp.replace(',', '.')); - // apply sign while we're at it - return (isNaN(res) ? 0 : res) * sign; - }; - duration = { - y: parseIso(match[2]), - M: parseIso(match[3]), - d: parseIso(match[4]), - h: parseIso(match[5]), - m: parseIso(match[6]), - s: parseIso(match[7]), - w: parseIso(match[8]) - }; - } else if (typeof duration === 'object' && - ('from' in duration || 'to' in duration)) { - diffRes = momentsDifference(moment(duration.from), moment(duration.to)); - - duration = {}; - duration.ms = diffRes.milliseconds; - duration.M = diffRes.months; - } - - ret = new Duration(duration); - - if (moment.isDuration(input) && input.hasOwnProperty('_locale')) { - ret._locale = input._locale; - } - - return ret; - }; - - // version number - moment.version = VERSION; - - // default format - moment.defaultFormat = isoFormat; - - // constant that refers to the ISO standard - moment.ISO_8601 = function () {}; - - // Plugins that add properties should also add the key here (null value), - // so we can properly clone ourselves. - moment.momentProperties = momentProperties; - - // This function will be called whenever a moment is mutated. - // It is intended to keep the offset in sync with the timezone. - moment.updateOffset = function () {}; - - // This function allows you to set a threshold for relative time strings - moment.relativeTimeThreshold = function (threshold, limit) { - if (relativeTimeThresholds[threshold] === undefined) { - return false; - } - if (limit === undefined) { - return relativeTimeThresholds[threshold]; - } - relativeTimeThresholds[threshold] = limit; - return true; - }; - - moment.lang = deprecate( - "moment.lang is deprecated. Use moment.locale instead.", - function (key, value) { - return moment.locale(key, value); - } - ); - - // This function will load locale and then set the global locale. If - // no arguments are passed in, it will simply return the current global - // locale key. - moment.locale = function (key, values) { - var data; - if (key) { - if (typeof(values) !== "undefined") { - data = moment.defineLocale(key, values); - } - else { - data = moment.localeData(key); - } - - if (data) { - moment.duration._locale = moment._locale = data; - } - } - - return moment._locale._abbr; - }; - - moment.defineLocale = function (name, values) { - if (values !== null) { - values.abbr = name; - if (!locales[name]) { - locales[name] = new Locale(); - } - locales[name].set(values); - - // backwards compat for now: also set the locale - moment.locale(name); - - return locales[name]; - } else { - // useful for testing - delete locales[name]; - return null; - } - }; - - moment.langData = deprecate( - "moment.langData is deprecated. Use moment.localeData instead.", - function (key) { - return moment.localeData(key); - } - ); - - // returns locale data - moment.localeData = function (key) { - var locale; - - if (key && key._locale && key._locale._abbr) { - key = key._locale._abbr; - } - - if (!key) { - return moment._locale; - } - - if (!isArray(key)) { - //short-circuit everything else - locale = loadLocale(key); - if (locale) { - return locale; - } - key = [key]; - } - - return chooseLocale(key); - }; - - // compare moment object - moment.isMoment = function (obj) { - return obj instanceof Moment || - (obj != null && obj.hasOwnProperty('_isAMomentObject')); - }; - - // for typechecking Duration objects - moment.isDuration = function (obj) { - return obj instanceof Duration; - }; - - for (i = lists.length - 1; i >= 0; --i) { - makeList(lists[i]); - } - - moment.normalizeUnits = function (units) { - return normalizeUnits(units); - }; - - moment.invalid = function (flags) { - var m = moment.utc(NaN); - if (flags != null) { - extend(m._pf, flags); - } - else { - m._pf.userInvalidated = true; - } - - return m; - }; - - moment.parseZone = function () { - return moment.apply(null, arguments).parseZone(); - }; - - moment.parseTwoDigitYear = function (input) { - return toInt(input) + (toInt(input) > 68 ? 1900 : 2000); - }; - - /************************************ - Moment Prototype - ************************************/ - - - extend(moment.fn = Moment.prototype, { - - clone : function () { - return moment(this); - }, - - valueOf : function () { - return +this._d + ((this._offset || 0) * 60000); - }, - - unix : function () { - return Math.floor(+this / 1000); - }, - - toString : function () { - return this.clone().locale('en').format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ"); - }, - - toDate : function () { - return this._offset ? new Date(+this) : this._d; - }, - - toISOString : function () { - var m = moment(this).utc(); - if (0 < m.year() && m.year() <= 9999) { - return formatMoment(m, 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]'); - } else { - return formatMoment(m, 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'); - } - }, - - toArray : function () { - var m = this; - return [ - m.year(), - m.month(), - m.date(), - m.hours(), - m.minutes(), - m.seconds(), - m.milliseconds() - ]; - }, - - isValid : function () { - return isValid(this); - }, - - isDSTShifted : function () { - if (this._a) { - return this.isValid() && compareArrays(this._a, (this._isUTC ? moment.utc(this._a) : moment(this._a)).toArray()) > 0; - } - - return false; - }, - - parsingFlags : function () { - return extend({}, this._pf); - }, - - invalidAt: function () { - return this._pf.overflow; - }, - - utc : function (keepLocalTime) { - return this.zone(0, keepLocalTime); - }, - - local : function (keepLocalTime) { - if (this._isUTC) { - this.zone(0, keepLocalTime); - this._isUTC = false; - - if (keepLocalTime) { - this.add(this._d.getTimezoneOffset(), 'm'); - } - } - return this; - }, - - format : function (inputString) { - var output = formatMoment(this, inputString || moment.defaultFormat); - return this.localeData().postformat(output); - }, - - add : createAdder(1, 'add'), - - subtract : createAdder(-1, 'subtract'), - - diff : function (input, units, asFloat) { - var that = makeAs(input, this), - zoneDiff = (this.zone() - that.zone()) * 6e4, - diff, output; - - units = normalizeUnits(units); - - if (units === 'year' || units === 'month') { - // average number of days in the months in the given dates - diff = (this.daysInMonth() + that.daysInMonth()) * 432e5; // 24 * 60 * 60 * 1000 / 2 - // difference in months - output = ((this.year() - that.year()) * 12) + (this.month() - that.month()); - // adjust by taking difference in days, average number of days - // and dst in the given months. - output += ((this - moment(this).startOf('month')) - - (that - moment(that).startOf('month'))) / diff; - // same as above but with zones, to negate all dst - output -= ((this.zone() - moment(this).startOf('month').zone()) - - (that.zone() - moment(that).startOf('month').zone())) * 6e4 / diff; - if (units === 'year') { - output = output / 12; - } - } else { - diff = (this - that); - output = units === 'second' ? diff / 1e3 : // 1000 - units === 'minute' ? diff / 6e4 : // 1000 * 60 - units === 'hour' ? diff / 36e5 : // 1000 * 60 * 60 - units === 'day' ? (diff - zoneDiff) / 864e5 : // 1000 * 60 * 60 * 24, negate dst - units === 'week' ? (diff - zoneDiff) / 6048e5 : // 1000 * 60 * 60 * 24 * 7, negate dst - diff; - } - return asFloat ? output : absRound(output); - }, - - from : function (time, withoutSuffix) { - return moment.duration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix); - }, - - fromNow : function (withoutSuffix) { - return this.from(moment(), withoutSuffix); - }, - - calendar : function (time) { - // We want to compare the start of today, vs this. - // Getting start-of-today depends on whether we're zone'd or not. - var now = time || moment(), - sod = makeAs(now, this).startOf('day'), - diff = this.diff(sod, 'days', true), - format = diff < -6 ? 'sameElse' : - diff < -1 ? 'lastWeek' : - diff < 0 ? 'lastDay' : - diff < 1 ? 'sameDay' : - diff < 2 ? 'nextDay' : - diff < 7 ? 'nextWeek' : 'sameElse'; - return this.format(this.localeData().calendar(format, this)); - }, - - isLeapYear : function () { - return isLeapYear(this.year()); - }, - - isDST : function () { - return (this.zone() < this.clone().month(0).zone() || - this.zone() < this.clone().month(5).zone()); - }, - - day : function (input) { - var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); - if (input != null) { - input = parseWeekday(input, this.localeData()); - return this.add(input - day, 'd'); - } else { - return day; - } - }, - - month : makeAccessor('Month', true), - - startOf : function (units) { - units = normalizeUnits(units); - // the following switch intentionally omits break keywords - // to utilize falling through the cases. - switch (units) { - case 'year': - this.month(0); - /* falls through */ - case 'quarter': - case 'month': - this.date(1); - /* falls through */ - case 'week': - case 'isoWeek': - case 'day': - this.hours(0); - /* falls through */ - case 'hour': - this.minutes(0); - /* falls through */ - case 'minute': - this.seconds(0); - /* falls through */ - case 'second': - this.milliseconds(0); - /* falls through */ - } - - // weeks are a special case - if (units === 'week') { - this.weekday(0); - } else if (units === 'isoWeek') { - this.isoWeekday(1); - } - - // quarters are also special - if (units === 'quarter') { - this.month(Math.floor(this.month() / 3) * 3); - } - - return this; - }, - - endOf: function (units) { - units = normalizeUnits(units); - return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms'); - }, - - isAfter: function (input, units) { - units = typeof units !== 'undefined' ? units : 'millisecond'; - return +this.clone().startOf(units) > +moment(input).startOf(units); - }, - - isBefore: function (input, units) { - units = typeof units !== 'undefined' ? units : 'millisecond'; - return +this.clone().startOf(units) < +moment(input).startOf(units); - }, - - isSame: function (input, units) { - units = units || 'ms'; - return +this.clone().startOf(units) === +makeAs(input, this).startOf(units); - }, - - min: deprecate( - 'moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548', - function (other) { - other = moment.apply(null, arguments); - return other < this ? this : other; - } - ), - - max: deprecate( - 'moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548', - function (other) { - other = moment.apply(null, arguments); - return other > this ? this : other; - } - ), - - // keepLocalTime = true means only change the timezone, without - // affecting the local hour. So 5:31:26 +0300 --[zone(2, true)]--> - // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist int zone - // +0200, so we adjust the time as needed, to be valid. - // - // Keeping the time actually adds/subtracts (one hour) - // from the actual represented time. That is why we call updateOffset - // a second time. In case it wants us to change the offset again - // _changeInProgress == true case, then we have to adjust, because - // there is no such time in the given timezone. - zone : function (input, keepLocalTime) { - var offset = this._offset || 0, - localAdjust; - if (input != null) { - if (typeof input === 'string') { - input = timezoneMinutesFromString(input); - } - if (Math.abs(input) < 16) { - input = input * 60; - } - if (!this._isUTC && keepLocalTime) { - localAdjust = this._d.getTimezoneOffset(); - } - this._offset = input; - this._isUTC = true; - if (localAdjust != null) { - this.subtract(localAdjust, 'm'); - } - if (offset !== input) { - if (!keepLocalTime || this._changeInProgress) { - addOrSubtractDurationFromMoment(this, - moment.duration(offset - input, 'm'), 1, false); - } else if (!this._changeInProgress) { - this._changeInProgress = true; - moment.updateOffset(this, true); - this._changeInProgress = null; - } - } - } else { - return this._isUTC ? offset : this._d.getTimezoneOffset(); - } - return this; - }, - - zoneAbbr : function () { - return this._isUTC ? 'UTC' : ''; - }, - - zoneName : function () { - return this._isUTC ? 'Coordinated Universal Time' : ''; - }, - - parseZone : function () { - if (this._tzm) { - this.zone(this._tzm); - } else if (typeof this._i === 'string') { - this.zone(this._i); - } - return this; - }, - - hasAlignedHourOffset : function (input) { - if (!input) { - input = 0; - } - else { - input = moment(input).zone(); - } - - return (this.zone() - input) % 60 === 0; - }, - - daysInMonth : function () { - return daysInMonth(this.year(), this.month()); - }, - - dayOfYear : function (input) { - var dayOfYear = round((moment(this).startOf('day') - moment(this).startOf('year')) / 864e5) + 1; - return input == null ? dayOfYear : this.add((input - dayOfYear), 'd'); - }, - - quarter : function (input) { - return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3); - }, - - weekYear : function (input) { - var year = weekOfYear(this, this.localeData()._week.dow, this.localeData()._week.doy).year; - return input == null ? year : this.add((input - year), 'y'); - }, - - isoWeekYear : function (input) { - var year = weekOfYear(this, 1, 4).year; - return input == null ? year : this.add((input - year), 'y'); - }, - - week : function (input) { - var week = this.localeData().week(this); - return input == null ? week : this.add((input - week) * 7, 'd'); - }, - - isoWeek : function (input) { - var week = weekOfYear(this, 1, 4).week; - return input == null ? week : this.add((input - week) * 7, 'd'); - }, - - weekday : function (input) { - var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; - return input == null ? weekday : this.add(input - weekday, 'd'); - }, - - isoWeekday : function (input) { - // behaves the same as moment#day except - // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6) - // as a setter, sunday should belong to the previous week. - return input == null ? this.day() || 7 : this.day(this.day() % 7 ? input : input - 7); - }, - - isoWeeksInYear : function () { - return weeksInYear(this.year(), 1, 4); - }, - - weeksInYear : function () { - var weekInfo = this.localeData()._week; - return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); - }, - - get : function (units) { - units = normalizeUnits(units); - return this[units](); - }, - - set : function (units, value) { - units = normalizeUnits(units); - if (typeof this[units] === 'function') { - this[units](value); - } - return this; - }, - - // If passed a locale key, it will set the locale for this - // instance. Otherwise, it will return the locale configuration - // variables for this instance. - locale : function (key) { - if (key === undefined) { - return this._locale._abbr; - } else { - this._locale = moment.localeData(key); - return this; - } - }, - - lang : deprecate( - "moment().lang() is deprecated. Use moment().localeData() instead.", - function (key) { - if (key === undefined) { - return this.localeData(); - } else { - this._locale = moment.localeData(key); - return this; - } - } - ), - - localeData : function () { - return this._locale; - } - }); - - function rawMonthSetter(mom, value) { - var dayOfMonth; - - // TODO: Move this out of here! - if (typeof value === 'string') { - value = mom.localeData().monthsParse(value); - // TODO: Another silent failure? - if (typeof value !== 'number') { - return mom; - } - } - - dayOfMonth = Math.min(mom.date(), - daysInMonth(mom.year(), value)); - mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth); - return mom; - } - - function rawGetter(mom, unit) { - return mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit](); - } - - function rawSetter(mom, unit, value) { - if (unit === 'Month') { - return rawMonthSetter(mom, value); - } else { - return mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value); - } - } - - function makeAccessor(unit, keepTime) { - return function (value) { - if (value != null) { - rawSetter(this, unit, value); - moment.updateOffset(this, keepTime); - return this; - } else { - return rawGetter(this, unit); - } - }; - } - - moment.fn.millisecond = moment.fn.milliseconds = makeAccessor('Milliseconds', false); - moment.fn.second = moment.fn.seconds = makeAccessor('Seconds', false); - moment.fn.minute = moment.fn.minutes = makeAccessor('Minutes', false); - // Setting the hour should keep the time, because the user explicitly - // specified which hour he wants. So trying to maintain the same hour (in - // a new timezone) makes sense. Adding/subtracting hours does not follow - // this rule. - moment.fn.hour = moment.fn.hours = makeAccessor('Hours', true); - // moment.fn.month is defined separately - moment.fn.date = makeAccessor('Date', true); - moment.fn.dates = deprecate('dates accessor is deprecated. Use date instead.', makeAccessor('Date', true)); - moment.fn.year = makeAccessor('FullYear', true); - moment.fn.years = deprecate('years accessor is deprecated. Use year instead.', makeAccessor('FullYear', true)); - - // add plural methods - moment.fn.days = moment.fn.day; - moment.fn.months = moment.fn.month; - moment.fn.weeks = moment.fn.week; - moment.fn.isoWeeks = moment.fn.isoWeek; - moment.fn.quarters = moment.fn.quarter; - - // add aliased format methods - moment.fn.toJSON = moment.fn.toISOString; - - /************************************ - Duration Prototype - ************************************/ - - - function daysToYears (days) { - // 400 years have 146097 days (taking into account leap year rules) - return days * 400 / 146097; - } - - function yearsToDays (years) { - // years * 365 + absRound(years / 4) - - // absRound(years / 100) + absRound(years / 400); - return years * 146097 / 400; - } - - extend(moment.duration.fn = Duration.prototype, { - - _bubble : function () { - var milliseconds = this._milliseconds, - days = this._days, - months = this._months, - data = this._data, - seconds, minutes, hours, years = 0; - - // The following code bubbles up values, see the tests for - // examples of what that means. - data.milliseconds = milliseconds % 1000; - - seconds = absRound(milliseconds / 1000); - data.seconds = seconds % 60; - - minutes = absRound(seconds / 60); - data.minutes = minutes % 60; - - hours = absRound(minutes / 60); - data.hours = hours % 24; - - days += absRound(hours / 24); - - // Accurately convert days to years, assume start from year 0. - years = absRound(daysToYears(days)); - days -= absRound(yearsToDays(years)); - - // 30 days to a month - // TODO (iskren): Use anchor date (like 1st Jan) to compute this. - months += absRound(days / 30); - days %= 30; - - // 12 months -> 1 year - years += absRound(months / 12); - months %= 12; - - data.days = days; - data.months = months; - data.years = years; - }, - - abs : function () { - this._milliseconds = Math.abs(this._milliseconds); - this._days = Math.abs(this._days); - this._months = Math.abs(this._months); - - this._data.milliseconds = Math.abs(this._data.milliseconds); - this._data.seconds = Math.abs(this._data.seconds); - this._data.minutes = Math.abs(this._data.minutes); - this._data.hours = Math.abs(this._data.hours); - this._data.months = Math.abs(this._data.months); - this._data.years = Math.abs(this._data.years); - - return this; - }, - - weeks : function () { - return absRound(this.days() / 7); - }, - - valueOf : function () { - return this._milliseconds + - this._days * 864e5 + - (this._months % 12) * 2592e6 + - toInt(this._months / 12) * 31536e6; - }, - - humanize : function (withSuffix) { - var output = relativeTime(this, !withSuffix, this.localeData()); - - if (withSuffix) { - output = this.localeData().pastFuture(+this, output); - } - - return this.localeData().postformat(output); - }, - - add : function (input, val) { - // supports only 2.0-style add(1, 's') or add(moment) - var dur = moment.duration(input, val); - - this._milliseconds += dur._milliseconds; - this._days += dur._days; - this._months += dur._months; - - this._bubble(); - - return this; - }, - - subtract : function (input, val) { - var dur = moment.duration(input, val); - - this._milliseconds -= dur._milliseconds; - this._days -= dur._days; - this._months -= dur._months; - - this._bubble(); - - return this; - }, - - get : function (units) { - units = normalizeUnits(units); - return this[units.toLowerCase() + 's'](); - }, - - as : function (units) { - var days, months; - units = normalizeUnits(units); - - days = this._days + this._milliseconds / 864e5; - if (units === 'month' || units === 'year') { - months = this._months + daysToYears(days) * 12; - return units === 'month' ? months : months / 12; - } else { - days += yearsToDays(this._months / 12); - switch (units) { - case 'week': return days / 7; - case 'day': return days; - case 'hour': return days * 24; - case 'minute': return days * 24 * 60; - case 'second': return days * 24 * 60 * 60; - case 'millisecond': return days * 24 * 60 * 60 * 1000; - default: throw new Error('Unknown unit ' + units); - } - } - }, - - lang : moment.fn.lang, - locale : moment.fn.locale, - - toIsoString : deprecate( - "toIsoString() is deprecated. Please use toISOString() instead " + - "(notice the capitals)", - function () { - return this.toISOString(); - } - ), - - toISOString : function () { - // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js - var years = Math.abs(this.years()), - months = Math.abs(this.months()), - days = Math.abs(this.days()), - hours = Math.abs(this.hours()), - minutes = Math.abs(this.minutes()), - seconds = Math.abs(this.seconds() + this.milliseconds() / 1000); - - if (!this.asSeconds()) { - // this is the same as C#'s (Noda) and python (isodate)... - // but not other JS (goog.date) - return 'P0D'; - } - - return (this.asSeconds() < 0 ? '-' : '') + - 'P' + - (years ? years + 'Y' : '') + - (months ? months + 'M' : '') + - (days ? days + 'D' : '') + - ((hours || minutes || seconds) ? 'T' : '') + - (hours ? hours + 'H' : '') + - (minutes ? minutes + 'M' : '') + - (seconds ? seconds + 'S' : ''); - }, - - localeData : function () { - return this._locale; - } - }); - - function makeDurationGetter(name) { - moment.duration.fn[name] = function () { - return this._data[name]; - }; - } - - for (i in unitMillisecondFactors) { - if (unitMillisecondFactors.hasOwnProperty(i)) { - makeDurationGetter(i.toLowerCase()); - } - } - - moment.duration.fn.asMilliseconds = function () { - return this.as('ms'); - }; - moment.duration.fn.asSeconds = function () { - return this.as('s'); - }; - moment.duration.fn.asMinutes = function () { - return this.as('m'); - }; - moment.duration.fn.asHours = function () { - return this.as('h'); - }; - moment.duration.fn.asDays = function () { - return this.as('d'); - }; - moment.duration.fn.asWeeks = function () { - return this.as('weeks'); - }; - moment.duration.fn.asMonths = function () { - return this.as('M'); - }; - moment.duration.fn.asYears = function () { - return this.as('y'); - }; - - /************************************ - Default Locale - ************************************/ - - - // Set default locale, other locale will inherit from English. - moment.locale('en', { - ordinal : function (number) { - var b = number % 10, - output = (toInt(number % 100 / 10) === 1) ? 'th' : - (b === 1) ? 'st' : - (b === 2) ? 'nd' : - (b === 3) ? 'rd' : 'th'; - return number + output; - } - }); - - /* EMBED_LOCALES */ - - /************************************ - Exposing Moment - ************************************/ - - function makeGlobal(shouldDeprecate) { - /*global ender:false */ - if (typeof ender !== 'undefined') { - return; - } - oldGlobalMoment = globalScope.moment; - if (shouldDeprecate) { - globalScope.moment = deprecate( - 'Accessing Moment through the global scope is ' + - 'deprecated, and will be removed in an upcoming ' + - 'release.', - moment); - } else { - globalScope.moment = moment; - } - } - - // CommonJS module is defined - if (hasModule) { - module.exports = moment; - } else if (typeof define === 'function' && define.amd) { - define('moment', function (require, exports, module) { - if (module.config && module.config() && module.config().noGlobal === true) { - // release the global variable - globalScope.moment = oldGlobalMoment; - } - - return moment; - }); - makeGlobal(true); - } else { - makeGlobal(); - } -}).call(this); \ No newline at end of file diff --git a/portal-common/src/main/webapp/common/thirdparty/bootstrap-daterangepicker/moment.min.js b/portal-common/src/main/webapp/common/thirdparty/bootstrap-daterangepicker/moment.min.js deleted file mode 100644 index 197b5488..00000000 --- a/portal-common/src/main/webapp/common/thirdparty/bootstrap-daterangepicker/moment.min.js +++ /dev/null @@ -1,6 +0,0 @@ -//! moment.js -//! version : 2.8.1 -//! authors : Tim Wood, Iskren Chernev, Moment.js contributors -//! license : MIT -//! momentjs.com -(function(a){function b(a,b,c){switch(arguments.length){case 2:return null!=a?a:b;case 3:return null!=a?a:null!=b?b:c;default:throw new Error("Implement me")}}function c(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1}}function d(a){rb.suppressDeprecationWarnings===!1&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+a)}function e(a,b){var c=!0;return l(function(){return c&&(d(a),c=!1),b.apply(this,arguments)},b)}function f(a,b){nc[a]||(d(b),nc[a]=!0)}function g(a,b){return function(c){return o(a.call(this,c),b)}}function h(a,b){return function(c){return this.localeData().ordinal(a.call(this,c),b)}}function i(){}function j(a,b){b!==!1&&E(a),m(this,a),this._d=new Date(+a._d)}function k(a){var b=x(a),c=b.year||0,d=b.quarter||0,e=b.month||0,f=b.week||0,g=b.day||0,h=b.hour||0,i=b.minute||0,j=b.second||0,k=b.millisecond||0;this._milliseconds=+k+1e3*j+6e4*i+36e5*h,this._days=+g+7*f,this._months=+e+3*d+12*c,this._data={},this._locale=rb.localeData(),this._bubble()}function l(a,b){for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c]);return b.hasOwnProperty("toString")&&(a.toString=b.toString),b.hasOwnProperty("valueOf")&&(a.valueOf=b.valueOf),a}function m(a,b){var c,d,e;if("undefined"!=typeof b._isAMomentObject&&(a._isAMomentObject=b._isAMomentObject),"undefined"!=typeof b._i&&(a._i=b._i),"undefined"!=typeof b._f&&(a._f=b._f),"undefined"!=typeof b._l&&(a._l=b._l),"undefined"!=typeof b._strict&&(a._strict=b._strict),"undefined"!=typeof b._tzm&&(a._tzm=b._tzm),"undefined"!=typeof b._isUTC&&(a._isUTC=b._isUTC),"undefined"!=typeof b._offset&&(a._offset=b._offset),"undefined"!=typeof b._pf&&(a._pf=b._pf),"undefined"!=typeof b._locale&&(a._locale=b._locale),Fb.length>0)for(c in Fb)d=Fb[c],e=b[d],"undefined"!=typeof e&&(a[d]=e);return a}function n(a){return 0>a?Math.ceil(a):Math.floor(a)}function o(a,b,c){for(var d=""+Math.abs(a),e=a>=0;d.lengthd;d++)(c&&a[d]!==b[d]||!c&&z(a[d])!==z(b[d]))&&g++;return g+f}function w(a){if(a){var b=a.toLowerCase().replace(/(.)s$/,"$1");a=gc[a]||hc[b]||b}return a}function x(a){var b,c,d={};for(c in a)a.hasOwnProperty(c)&&(b=w(c),b&&(d[b]=a[c]));return d}function y(b){var c,d;if(0===b.indexOf("week"))c=7,d="day";else{if(0!==b.indexOf("month"))return;c=12,d="month"}rb[b]=function(e,f){var g,h,i=rb._locale[b],j=[];if("number"==typeof e&&(f=e,e=a),h=function(a){var b=rb().utc().set(d,a);return i.call(rb._locale,b,e||"")},null!=f)return h(f);for(g=0;c>g;g++)j.push(h(g));return j}}function z(a){var b=+a,c=0;return 0!==b&&isFinite(b)&&(c=b>=0?Math.floor(b):Math.ceil(b)),c}function A(a,b){return new Date(Date.UTC(a,b+1,0)).getUTCDate()}function B(a,b,c){return fb(rb([a,11,31+b-c]),b,c).week}function C(a){return D(a)?366:365}function D(a){return a%4===0&&a%100!==0||a%400===0}function E(a){var b;a._a&&-2===a._pf.overflow&&(b=a._a[yb]<0||a._a[yb]>11?yb:a._a[zb]<1||a._a[zb]>A(a._a[xb],a._a[yb])?zb:a._a[Ab]<0||a._a[Ab]>23?Ab:a._a[Bb]<0||a._a[Bb]>59?Bb:a._a[Cb]<0||a._a[Cb]>59?Cb:a._a[Db]<0||a._a[Db]>999?Db:-1,a._pf._overflowDayOfYear&&(xb>b||b>zb)&&(b=zb),a._pf.overflow=b)}function F(a){return null==a._isValid&&(a._isValid=!isNaN(a._d.getTime())&&a._pf.overflow<0&&!a._pf.empty&&!a._pf.invalidMonth&&!a._pf.nullInput&&!a._pf.invalidFormat&&!a._pf.userInvalidated,a._strict&&(a._isValid=a._isValid&&0===a._pf.charsLeftOver&&0===a._pf.unusedTokens.length)),a._isValid}function G(a){return a?a.toLowerCase().replace("_","-"):a}function H(a){for(var b,c,d,e,f=0;f0;){if(d=I(e.slice(0,b).join("-")))return d;if(c&&c.length>=b&&v(e,c,!0)>=b-1)break;b--}f++}return null}function I(a){var b=null;if(!Eb[a]&&Gb)try{b=rb.locale(),require("./locale/"+a),rb.locale(b)}catch(c){}return Eb[a]}function J(a,b){return b._isUTC?rb(a).zone(b._offset||0):rb(a).local()}function K(a){return a.match(/\[[\s\S]/)?a.replace(/^\[|\]$/g,""):a.replace(/\\/g,"")}function L(a){var b,c,d=a.match(Kb);for(b=0,c=d.length;c>b;b++)d[b]=mc[d[b]]?mc[d[b]]:K(d[b]);return function(e){var f="";for(b=0;c>b;b++)f+=d[b]instanceof Function?d[b].call(e,a):d[b];return f}}function M(a,b){return a.isValid()?(b=N(b,a.localeData()),ic[b]||(ic[b]=L(b)),ic[b](a)):a.localeData().invalidDate()}function N(a,b){function c(a){return b.longDateFormat(a)||a}var d=5;for(Lb.lastIndex=0;d>=0&&Lb.test(a);)a=a.replace(Lb,c),Lb.lastIndex=0,d-=1;return a}function O(a,b){var c,d=b._strict;switch(a){case"Q":return Wb;case"DDDD":return Yb;case"YYYY":case"GGGG":case"gggg":return d?Zb:Ob;case"Y":case"G":case"g":return _b;case"YYYYYY":case"YYYYY":case"GGGGG":case"ggggg":return d?$b:Pb;case"S":if(d)return Wb;case"SS":if(d)return Xb;case"SSS":if(d)return Yb;case"DDD":return Nb;case"MMM":case"MMMM":case"dd":case"ddd":case"dddd":return Rb;case"a":case"A":return b._locale._meridiemParse;case"X":return Ub;case"Z":case"ZZ":return Sb;case"T":return Tb;case"SSSS":return Qb;case"MM":case"DD":case"YY":case"GG":case"gg":case"HH":case"hh":case"mm":case"ss":case"ww":case"WW":return d?Xb:Mb;case"M":case"D":case"d":case"H":case"h":case"m":case"s":case"w":case"W":case"e":case"E":return Mb;case"Do":return Vb;default:return c=new RegExp(X(W(a.replace("\\","")),"i"))}}function P(a){a=a||"";var b=a.match(Sb)||[],c=b[b.length-1]||[],d=(c+"").match(ec)||["-",0,0],e=+(60*d[1])+z(d[2]);return"+"===d[0]?-e:e}function Q(a,b,c){var d,e=c._a;switch(a){case"Q":null!=b&&(e[yb]=3*(z(b)-1));break;case"M":case"MM":null!=b&&(e[yb]=z(b)-1);break;case"MMM":case"MMMM":d=c._locale.monthsParse(b),null!=d?e[yb]=d:c._pf.invalidMonth=b;break;case"D":case"DD":null!=b&&(e[zb]=z(b));break;case"Do":null!=b&&(e[zb]=z(parseInt(b,10)));break;case"DDD":case"DDDD":null!=b&&(c._dayOfYear=z(b));break;case"YY":e[xb]=rb.parseTwoDigitYear(b);break;case"YYYY":case"YYYYY":case"YYYYYY":e[xb]=z(b);break;case"a":case"A":c._isPm=c._locale.isPM(b);break;case"H":case"HH":case"h":case"hh":e[Ab]=z(b);break;case"m":case"mm":e[Bb]=z(b);break;case"s":case"ss":e[Cb]=z(b);break;case"S":case"SS":case"SSS":case"SSSS":e[Db]=z(1e3*("0."+b));break;case"X":c._d=new Date(1e3*parseFloat(b));break;case"Z":case"ZZ":c._useUTC=!0,c._tzm=P(b);break;case"dd":case"ddd":case"dddd":d=c._locale.weekdaysParse(b),null!=d?(c._w=c._w||{},c._w.d=d):c._pf.invalidWeekday=b;break;case"w":case"ww":case"W":case"WW":case"d":case"e":case"E":a=a.substr(0,1);case"gggg":case"GGGG":case"GGGGG":a=a.substr(0,2),b&&(c._w=c._w||{},c._w[a]=z(b));break;case"gg":case"GG":c._w=c._w||{},c._w[a]=rb.parseTwoDigitYear(b)}}function R(a){var c,d,e,f,g,h,i;c=a._w,null!=c.GG||null!=c.W||null!=c.E?(g=1,h=4,d=b(c.GG,a._a[xb],fb(rb(),1,4).year),e=b(c.W,1),f=b(c.E,1)):(g=a._locale._week.dow,h=a._locale._week.doy,d=b(c.gg,a._a[xb],fb(rb(),g,h).year),e=b(c.w,1),null!=c.d?(f=c.d,g>f&&++e):f=null!=c.e?c.e+g:g),i=gb(d,e,f,h,g),a._a[xb]=i.year,a._dayOfYear=i.dayOfYear}function S(a){var c,d,e,f,g=[];if(!a._d){for(e=U(a),a._w&&null==a._a[zb]&&null==a._a[yb]&&R(a),a._dayOfYear&&(f=b(a._a[xb],e[xb]),a._dayOfYear>C(f)&&(a._pf._overflowDayOfYear=!0),d=bb(f,0,a._dayOfYear),a._a[yb]=d.getUTCMonth(),a._a[zb]=d.getUTCDate()),c=0;3>c&&null==a._a[c];++c)a._a[c]=g[c]=e[c];for(;7>c;c++)a._a[c]=g[c]=null==a._a[c]?2===c?1:0:a._a[c];a._d=(a._useUTC?bb:ab).apply(null,g),null!=a._tzm&&a._d.setUTCMinutes(a._d.getUTCMinutes()+a._tzm)}}function T(a){var b;a._d||(b=x(a._i),a._a=[b.year,b.month,b.day,b.hour,b.minute,b.second,b.millisecond],S(a))}function U(a){var b=new Date;return a._useUTC?[b.getUTCFullYear(),b.getUTCMonth(),b.getUTCDate()]:[b.getFullYear(),b.getMonth(),b.getDate()]}function V(a){if(a._f===rb.ISO_8601)return void Z(a);a._a=[],a._pf.empty=!0;var b,c,d,e,f,g=""+a._i,h=g.length,i=0;for(d=N(a._f,a._locale).match(Kb)||[],b=0;b0&&a._pf.unusedInput.push(f),g=g.slice(g.indexOf(c)+c.length),i+=c.length),mc[e]?(c?a._pf.empty=!1:a._pf.unusedTokens.push(e),Q(e,c,a)):a._strict&&!c&&a._pf.unusedTokens.push(e);a._pf.charsLeftOver=h-i,g.length>0&&a._pf.unusedInput.push(g),a._isPm&&a._a[Ab]<12&&(a._a[Ab]+=12),a._isPm===!1&&12===a._a[Ab]&&(a._a[Ab]=0),S(a),E(a)}function W(a){return a.replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(a,b,c,d,e){return b||c||d||e})}function X(a){return a.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function Y(a){var b,d,e,f,g;if(0===a._f.length)return a._pf.invalidFormat=!0,void(a._d=new Date(0/0));for(f=0;fg)&&(e=g,d=b));l(a,d||b)}function Z(a){var b,c,d=a._i,e=ac.exec(d);if(e){for(a._pf.iso=!0,b=0,c=cc.length;c>b;b++)if(cc[b][1].exec(d)){a._f=cc[b][0]+(e[6]||" ");break}for(b=0,c=dc.length;c>b;b++)if(dc[b][1].exec(d)){a._f+=dc[b][0];break}d.match(Sb)&&(a._f+="Z"),V(a)}else a._isValid=!1}function $(a){Z(a),a._isValid===!1&&(delete a._isValid,rb.createFromInputFallback(a))}function _(b){var c,d=b._i;d===a?b._d=new Date:u(d)?b._d=new Date(+d):null!==(c=Hb.exec(d))?b._d=new Date(+c[1]):"string"==typeof d?$(b):t(d)?(b._a=d.slice(0),S(b)):"object"==typeof d?T(b):"number"==typeof d?b._d=new Date(d):rb.createFromInputFallback(b)}function ab(a,b,c,d,e,f,g){var h=new Date(a,b,c,d,e,f,g);return 1970>a&&h.setFullYear(a),h}function bb(a){var b=new Date(Date.UTC.apply(null,arguments));return 1970>a&&b.setUTCFullYear(a),b}function cb(a,b){if("string"==typeof a)if(isNaN(a)){if(a=b.weekdaysParse(a),"number"!=typeof a)return null}else a=parseInt(a,10);return a}function db(a,b,c,d,e){return e.relativeTime(b||1,!!c,a,d)}function eb(a,b,c){var d=rb.duration(a).abs(),e=wb(d.as("s")),f=wb(d.as("m")),g=wb(d.as("h")),h=wb(d.as("d")),i=wb(d.as("M")),j=wb(d.as("y")),k=e0,k[4]=c,db.apply({},k)}function fb(a,b,c){var d,e=c-b,f=c-a.day();return f>e&&(f-=7),e-7>f&&(f+=7),d=rb(a).add(f,"d"),{week:Math.ceil(d.dayOfYear()/7),year:d.year()}}function gb(a,b,c,d,e){var f,g,h=bb(a,0,1).getUTCDay();return h=0===h?7:h,c=null!=c?c:e,f=e-h+(h>d?7:0)-(e>h?7:0),g=7*(b-1)+(c-e)+f+1,{year:g>0?a:a-1,dayOfYear:g>0?g:C(a-1)+g}}function hb(b){var c=b._i,d=b._f;return b._locale=b._locale||rb.localeData(b._l),null===c||d===a&&""===c?rb.invalid({nullInput:!0}):("string"==typeof c&&(b._i=c=b._locale.preparse(c)),rb.isMoment(c)?new j(c,!0):(d?t(d)?Y(b):V(b):_(b),new j(b)))}function ib(a,b){var c,d;if(1===b.length&&t(b[0])&&(b=b[0]),!b.length)return rb();for(c=b[0],d=1;d=0?"+":"-";return b+o(Math.abs(a),6)},gg:function(){return o(this.weekYear()%100,2)},gggg:function(){return o(this.weekYear(),4)},ggggg:function(){return o(this.weekYear(),5)},GG:function(){return o(this.isoWeekYear()%100,2)},GGGG:function(){return o(this.isoWeekYear(),4)},GGGGG:function(){return o(this.isoWeekYear(),5)},e:function(){return this.weekday()},E:function(){return this.isoWeekday()},a:function(){return this.localeData().meridiem(this.hours(),this.minutes(),!0)},A:function(){return this.localeData().meridiem(this.hours(),this.minutes(),!1)},H:function(){return this.hours()},h:function(){return this.hours()%12||12},m:function(){return this.minutes()},s:function(){return this.seconds()},S:function(){return z(this.milliseconds()/100)},SS:function(){return o(z(this.milliseconds()/10),2)},SSS:function(){return o(this.milliseconds(),3)},SSSS:function(){return o(this.milliseconds(),3)},Z:function(){var a=-this.zone(),b="+";return 0>a&&(a=-a,b="-"),b+o(z(a/60),2)+":"+o(z(a)%60,2)},ZZ:function(){var a=-this.zone(),b="+";return 0>a&&(a=-a,b="-"),b+o(z(a/60),2)+o(z(a)%60,2)},z:function(){return this.zoneAbbr()},zz:function(){return this.zoneName()},X:function(){return this.unix()},Q:function(){return this.quarter()}},nc={},oc=["months","monthsShort","weekdays","weekdaysShort","weekdaysMin"];kc.length;)tb=kc.pop(),mc[tb+"o"]=h(mc[tb],tb);for(;lc.length;)tb=lc.pop(),mc[tb+tb]=g(mc[tb],2);mc.DDDD=g(mc.DDD,3),l(i.prototype,{set:function(a){var b,c;for(c in a)b=a[c],"function"==typeof b?this[c]=b:this["_"+c]=b},_months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),months:function(a){return this._months[a.month()]},_monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),monthsShort:function(a){return this._monthsShort[a.month()]},monthsParse:function(a){var b,c,d;for(this._monthsParse||(this._monthsParse=[]),b=0;12>b;b++)if(this._monthsParse[b]||(c=rb.utc([2e3,b]),d="^"+this.months(c,"")+"|^"+this.monthsShort(c,""),this._monthsParse[b]=new RegExp(d.replace(".",""),"i")),this._monthsParse[b].test(a))return b},_weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdays:function(a){return this._weekdays[a.day()]},_weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysShort:function(a){return this._weekdaysShort[a.day()]},_weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),weekdaysMin:function(a){return this._weekdaysMin[a.day()]},weekdaysParse:function(a){var b,c,d;for(this._weekdaysParse||(this._weekdaysParse=[]),b=0;7>b;b++)if(this._weekdaysParse[b]||(c=rb([2e3,1]).day(b),d="^"+this.weekdays(c,"")+"|^"+this.weekdaysShort(c,"")+"|^"+this.weekdaysMin(c,""),this._weekdaysParse[b]=new RegExp(d.replace(".",""),"i")),this._weekdaysParse[b].test(a))return b},_longDateFormat:{LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY LT",LLLL:"dddd, MMMM D, YYYY LT"},longDateFormat:function(a){var b=this._longDateFormat[a];return!b&&this._longDateFormat[a.toUpperCase()]&&(b=this._longDateFormat[a.toUpperCase()].replace(/MMMM|MM|DD|dddd/g,function(a){return a.slice(1)}),this._longDateFormat[a]=b),b},isPM:function(a){return"p"===(a+"").toLowerCase().charAt(0)},_meridiemParse:/[ap]\.?m?\.?/i,meridiem:function(a,b,c){return a>11?c?"pm":"PM":c?"am":"AM"},_calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},calendar:function(a,b){var c=this._calendar[a];return"function"==typeof c?c.apply(b):c},_relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},relativeTime:function(a,b,c,d){var e=this._relativeTime[c];return"function"==typeof e?e(a,b,c,d):e.replace(/%d/i,a)},pastFuture:function(a,b){var c=this._relativeTime[a>0?"future":"past"];return"function"==typeof c?c(b):c.replace(/%s/i,b)},ordinal:function(a){return this._ordinal.replace("%d",a)},_ordinal:"%d",preparse:function(a){return a},postformat:function(a){return a},week:function(a){return fb(a,this._week.dow,this._week.doy).week},_week:{dow:0,doy:6},_invalidDate:"Invalid date",invalidDate:function(){return this._invalidDate}}),rb=function(b,d,e,f){var g;return"boolean"==typeof e&&(f=e,e=a),g={},g._isAMomentObject=!0,g._i=b,g._f=d,g._l=e,g._strict=f,g._isUTC=!1,g._pf=c(),hb(g)},rb.suppressDeprecationWarnings=!1,rb.createFromInputFallback=e("moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to https://github.com/moment/moment/issues/1407 for more info.",function(a){a._d=new Date(a._i)}),rb.min=function(){var a=[].slice.call(arguments,0);return ib("isBefore",a)},rb.max=function(){var a=[].slice.call(arguments,0);return ib("isAfter",a)},rb.utc=function(b,d,e,f){var g;return"boolean"==typeof e&&(f=e,e=a),g={},g._isAMomentObject=!0,g._useUTC=!0,g._isUTC=!0,g._l=e,g._i=b,g._f=d,g._strict=f,g._pf=c(),hb(g).utc()},rb.unix=function(a){return rb(1e3*a)},rb.duration=function(a,b){var c,d,e,f,g=a,h=null;return rb.isDuration(a)?g={ms:a._milliseconds,d:a._days,M:a._months}:"number"==typeof a?(g={},b?g[b]=a:g.milliseconds=a):(h=Ib.exec(a))?(c="-"===h[1]?-1:1,g={y:0,d:z(h[zb])*c,h:z(h[Ab])*c,m:z(h[Bb])*c,s:z(h[Cb])*c,ms:z(h[Db])*c}):(h=Jb.exec(a))?(c="-"===h[1]?-1:1,e=function(a){var b=a&&parseFloat(a.replace(",","."));return(isNaN(b)?0:b)*c},g={y:e(h[2]),M:e(h[3]),d:e(h[4]),h:e(h[5]),m:e(h[6]),s:e(h[7]),w:e(h[8])}):"object"==typeof g&&("from"in g||"to"in g)&&(f=q(rb(g.from),rb(g.to)),g={},g.ms=f.milliseconds,g.M=f.months),d=new k(g),rb.isDuration(a)&&a.hasOwnProperty("_locale")&&(d._locale=a._locale),d},rb.version=ub,rb.defaultFormat=bc,rb.ISO_8601=function(){},rb.momentProperties=Fb,rb.updateOffset=function(){},rb.relativeTimeThreshold=function(b,c){return jc[b]===a?!1:c===a?jc[b]:(jc[b]=c,!0)},rb.lang=e("moment.lang is deprecated. Use moment.locale instead.",function(a,b){return rb.locale(a,b)}),rb.locale=function(a,b){var c;return a&&(c="undefined"!=typeof b?rb.defineLocale(a,b):rb.localeData(a),c&&(rb.duration._locale=rb._locale=c)),rb._locale._abbr},rb.defineLocale=function(a,b){return null!==b?(b.abbr=a,Eb[a]||(Eb[a]=new i),Eb[a].set(b),rb.locale(a),Eb[a]):(delete Eb[a],null)},rb.langData=e("moment.langData is deprecated. Use moment.localeData instead.",function(a){return rb.localeData(a)}),rb.localeData=function(a){var b;if(a&&a._locale&&a._locale._abbr&&(a=a._locale._abbr),!a)return rb._locale;if(!t(a)){if(b=I(a))return b;a=[a]}return H(a)},rb.isMoment=function(a){return a instanceof j||null!=a&&a.hasOwnProperty("_isAMomentObject")},rb.isDuration=function(a){return a instanceof k};for(tb=oc.length-1;tb>=0;--tb)y(oc[tb]);rb.normalizeUnits=function(a){return w(a)},rb.invalid=function(a){var b=rb.utc(0/0);return null!=a?l(b._pf,a):b._pf.userInvalidated=!0,b},rb.parseZone=function(){return rb.apply(null,arguments).parseZone()},rb.parseTwoDigitYear=function(a){return z(a)+(z(a)>68?1900:2e3)},l(rb.fn=j.prototype,{clone:function(){return rb(this)},valueOf:function(){return+this._d+6e4*(this._offset||0)},unix:function(){return Math.floor(+this/1e3)},toString:function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},toDate:function(){return this._offset?new Date(+this):this._d},toISOString:function(){var a=rb(this).utc();return 00:!1},parsingFlags:function(){return l({},this._pf)},invalidAt:function(){return this._pf.overflow},utc:function(a){return this.zone(0,a)},local:function(a){return this._isUTC&&(this.zone(0,a),this._isUTC=!1,a&&this.add(this._d.getTimezoneOffset(),"m")),this},format:function(a){var b=M(this,a||rb.defaultFormat);return this.localeData().postformat(b)},add:r(1,"add"),subtract:r(-1,"subtract"),diff:function(a,b,c){var d,e,f=J(a,this),g=6e4*(this.zone()-f.zone());return b=w(b),"year"===b||"month"===b?(d=432e5*(this.daysInMonth()+f.daysInMonth()),e=12*(this.year()-f.year())+(this.month()-f.month()),e+=(this-rb(this).startOf("month")-(f-rb(f).startOf("month")))/d,e-=6e4*(this.zone()-rb(this).startOf("month").zone()-(f.zone()-rb(f).startOf("month").zone()))/d,"year"===b&&(e/=12)):(d=this-f,e="second"===b?d/1e3:"minute"===b?d/6e4:"hour"===b?d/36e5:"day"===b?(d-g)/864e5:"week"===b?(d-g)/6048e5:d),c?e:n(e)},from:function(a,b){return rb.duration({to:this,from:a}).locale(this.locale()).humanize(!b)},fromNow:function(a){return this.from(rb(),a)},calendar:function(a){var b=a||rb(),c=J(b,this).startOf("day"),d=this.diff(c,"days",!0),e=-6>d?"sameElse":-1>d?"lastWeek":0>d?"lastDay":1>d?"sameDay":2>d?"nextDay":7>d?"nextWeek":"sameElse";return this.format(this.localeData().calendar(e,this))},isLeapYear:function(){return D(this.year())},isDST:function(){return this.zone()+rb(a).startOf(b)},isBefore:function(a,b){return b="undefined"!=typeof b?b:"millisecond",+this.clone().startOf(b)<+rb(a).startOf(b)},isSame:function(a,b){return b=b||"ms",+this.clone().startOf(b)===+J(a,this).startOf(b)},min:e("moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548",function(a){return a=rb.apply(null,arguments),this>a?this:a}),max:e("moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548",function(a){return a=rb.apply(null,arguments),a>this?this:a}),zone:function(a,b){var c,d=this._offset||0;return null==a?this._isUTC?d:this._d.getTimezoneOffset():("string"==typeof a&&(a=P(a)),Math.abs(a)<16&&(a=60*a),!this._isUTC&&b&&(c=this._d.getTimezoneOffset()),this._offset=a,this._isUTC=!0,null!=c&&this.subtract(c,"m"),d!==a&&(!b||this._changeInProgress?s(this,rb.duration(d-a,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,rb.updateOffset(this,!0),this._changeInProgress=null)),this)},zoneAbbr:function(){return this._isUTC?"UTC":""},zoneName:function(){return this._isUTC?"Coordinated Universal Time":""},parseZone:function(){return this._tzm?this.zone(this._tzm):"string"==typeof this._i&&this.zone(this._i),this},hasAlignedHourOffset:function(a){return a=a?rb(a).zone():0,(this.zone()-a)%60===0},daysInMonth:function(){return A(this.year(),this.month())},dayOfYear:function(a){var b=wb((rb(this).startOf("day")-rb(this).startOf("year"))/864e5)+1;return null==a?b:this.add(a-b,"d")},quarter:function(a){return null==a?Math.ceil((this.month()+1)/3):this.month(3*(a-1)+this.month()%3)},weekYear:function(a){var b=fb(this,this.localeData()._week.dow,this.localeData()._week.doy).year;return null==a?b:this.add(a-b,"y")},isoWeekYear:function(a){var b=fb(this,1,4).year;return null==a?b:this.add(a-b,"y")},week:function(a){var b=this.localeData().week(this);return null==a?b:this.add(7*(a-b),"d")},isoWeek:function(a){var b=fb(this,1,4).week;return null==a?b:this.add(7*(a-b),"d")},weekday:function(a){var b=(this.day()+7-this.localeData()._week.dow)%7;return null==a?b:this.add(a-b,"d")},isoWeekday:function(a){return null==a?this.day()||7:this.day(this.day()%7?a:a-7)},isoWeeksInYear:function(){return B(this.year(),1,4)},weeksInYear:function(){var a=this.localeData()._week;return B(this.year(),a.dow,a.doy)},get:function(a){return a=w(a),this[a]()},set:function(a,b){return a=w(a),"function"==typeof this[a]&&this[a](b),this},locale:function(b){return b===a?this._locale._abbr:(this._locale=rb.localeData(b),this)},lang:e("moment().lang() is deprecated. Use moment().localeData() instead.",function(b){return b===a?this.localeData():(this._locale=rb.localeData(b),this)}),localeData:function(){return this._locale}}),rb.fn.millisecond=rb.fn.milliseconds=mb("Milliseconds",!1),rb.fn.second=rb.fn.seconds=mb("Seconds",!1),rb.fn.minute=rb.fn.minutes=mb("Minutes",!1),rb.fn.hour=rb.fn.hours=mb("Hours",!0),rb.fn.date=mb("Date",!0),rb.fn.dates=e("dates accessor is deprecated. Use date instead.",mb("Date",!0)),rb.fn.year=mb("FullYear",!0),rb.fn.years=e("years accessor is deprecated. Use year instead.",mb("FullYear",!0)),rb.fn.days=rb.fn.day,rb.fn.months=rb.fn.month,rb.fn.weeks=rb.fn.week,rb.fn.isoWeeks=rb.fn.isoWeek,rb.fn.quarters=rb.fn.quarter,rb.fn.toJSON=rb.fn.toISOString,l(rb.duration.fn=k.prototype,{_bubble:function(){var a,b,c,d=this._milliseconds,e=this._days,f=this._months,g=this._data,h=0;g.milliseconds=d%1e3,a=n(d/1e3),g.seconds=a%60,b=n(a/60),g.minutes=b%60,c=n(b/60),g.hours=c%24,e+=n(c/24),h=n(nb(e)),e-=n(ob(h)),f+=n(e/30),e%=30,h+=n(f/12),f%=12,g.days=e,g.months=f,g.years=h},abs:function(){return this._milliseconds=Math.abs(this._milliseconds),this._days=Math.abs(this._days),this._months=Math.abs(this._months),this._data.milliseconds=Math.abs(this._data.milliseconds),this._data.seconds=Math.abs(this._data.seconds),this._data.minutes=Math.abs(this._data.minutes),this._data.hours=Math.abs(this._data.hours),this._data.months=Math.abs(this._data.months),this._data.years=Math.abs(this._data.years),this},weeks:function(){return n(this.days()/7)},valueOf:function(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*z(this._months/12)},humanize:function(a){var b=eb(this,!a,this.localeData());return a&&(b=this.localeData().pastFuture(+this,b)),this.localeData().postformat(b)},add:function(a,b){var c=rb.duration(a,b);return this._milliseconds+=c._milliseconds,this._days+=c._days,this._months+=c._months,this._bubble(),this},subtract:function(a,b){var c=rb.duration(a,b);return this._milliseconds-=c._milliseconds,this._days-=c._days,this._months-=c._months,this._bubble(),this},get:function(a){return a=w(a),this[a.toLowerCase()+"s"]()},as:function(a){var b,c;if(a=w(a),b=this._days+this._milliseconds/864e5,"month"===a||"year"===a)return c=this._months+12*nb(b),"month"===a?c:c/12;switch(b+=ob(this._months/12),a){case"week":return b/7;case"day":return b;case"hour":return 24*b;case"minute":return 24*b*60;case"second":return 24*b*60*60;case"millisecond":return 24*b*60*60*1e3;default:throw new Error("Unknown unit "+a)}},lang:rb.fn.lang,locale:rb.fn.locale,toIsoString:e("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",function(){return this.toISOString()}),toISOString:function(){var a=Math.abs(this.years()),b=Math.abs(this.months()),c=Math.abs(this.days()),d=Math.abs(this.hours()),e=Math.abs(this.minutes()),f=Math.abs(this.seconds()+this.milliseconds()/1e3);return this.asSeconds()?(this.asSeconds()<0?"-":"")+"P"+(a?a+"Y":"")+(b?b+"M":"")+(c?c+"D":"")+(d||e||f?"T":"")+(d?d+"H":"")+(e?e+"M":"")+(f?f+"S":""):"P0D"},localeData:function(){return this._locale}});for(tb in fc)fc.hasOwnProperty(tb)&&pb(tb.toLowerCase());rb.duration.fn.asMilliseconds=function(){return this.as("ms")},rb.duration.fn.asSeconds=function(){return this.as("s")},rb.duration.fn.asMinutes=function(){return this.as("m")},rb.duration.fn.asHours=function(){return this.as("h")},rb.duration.fn.asDays=function(){return this.as("d")},rb.duration.fn.asWeeks=function(){return this.as("weeks")},rb.duration.fn.asMonths=function(){return this.as("M")},rb.duration.fn.asYears=function(){return this.as("y")},rb.locale("en",{ordinal:function(a){var b=a%10,c=1===z(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c}}),Gb?module.exports=rb:"function"==typeof define&&define.amd?(define("moment",function(a,b,c){return c.config&&c.config()&&c.config().noGlobal===!0&&(vb.moment=sb),rb}),qb(!0)):qb()}).call(this); \ No newline at end of file diff --git a/portal-common/src/main/webapp/common/thirdparty/bootstrap-fileinput/css/fileinput.min.css b/portal-common/src/main/webapp/common/thirdparty/bootstrap-fileinput/css/fileinput.min.css deleted file mode 100644 index 924a7fe9..00000000 --- a/portal-common/src/main/webapp/common/thirdparty/bootstrap-fileinput/css/fileinput.min.css +++ /dev/null @@ -1,11 +0,0 @@ -/*! - * @copyright Copyright © Kartik Visweswaran, Krajee.com, 2014 - 2015 - * @package bootstrap-fileinput - * @version 4.2.3 - * - * File input styling for Bootstrap 3.0 - * Built for Yii Framework 2.0 - * Author: Kartik Visweswaran - * Year: 2015 - * For more Yii related demos visit http://demos.krajee.com - */.file-input{overflow-x:auto}.file-loading{top:0;right:0;width:25px;height:25px;font-size:999px;text-align:right;color:#fff;background:transparent url(../image/loading.gif) top left no-repeat;border:none}.btn-file{position:relative;overflow:hidden}.btn-file input[type=file]{position:absolute;top:0;right:0;min-width:100%;min-height:100%;text-align:right;filter:alpha(opacity=0);opacity:0;background:none repeat scroll 0 0 transparent;cursor:inherit;display:block}.file-caption .glyphicon{display:inline-block;min-width:18px;margin-top:2px}.file-caption-name{display:inline-block;overflow:hidden;max-height:20px;padding-right:10px;word-break:break-all}.file-caption-ellipsis{position:absolute;right:10px;margin-top:-6px;font-size:1.2em;display:none;font-weight:700;cursor:default}.kv-has-ellipsis .file-caption-ellipsis{display:inline}.kv-has-ellipsis{padding-right:17px}.kv-search-container .kv-search-clear{position:absolute;padding:10px;right:0}.file-error-message{background-color:#f2dede;color:#a94442;text-align:center;border-radius:5px;padding:5px}.file-error-message pre,.file-error-message ul{margin:5px 0;text-align:left}.file-caption-disabled{background-color:#EEE;cursor:not-allowed;opacity:1}.file-input .btn .disabled,.file-input .btn[disabled]{cursor:not-allowed}.file-preview{border-radius:5px;border:1px solid #ddd;padding:5px;width:100%;margin-bottom:5px}.file-preview-frame{display:table;margin:8px;height:100px;border:1px solid #ddd;box-shadow:1px 1px 5px 0 #a2958a;padding:6px;float:left;text-align:center;vertical-align:middle}.file-preview-frame:hover{box-shadow:3px 3px 5px 0 #333}.file-preview-image{height:160px;vertical-align:text-center}.file-preview-text{width:160px;color:#428bca;font-size:11px;text-align:center}.file-preview-other{padding-top:20px;text-align:center}.file-preview-other i{font-size:2.4em}.file-other-error{width:100%;padding-top:30px;text-align:right}.file-input-ajax-new .fileinput-remove-button,.file-input-ajax-new .fileinput-upload-button,.file-input-new .close,.file-input-new .file-preview,.file-input-new .fileinput-remove-button,.file-input-new .fileinput-upload-button,.file-input-new .glyphicon-file{display:none}.loading{background:transparent url(../image/loading.gif) no-repeat scroll center center content-box!important}.wrap-indicator{font-weight:700;color:#245269;cursor:pointer}.file-actions{text-align:left}.file-footer-buttons{float:right}.file-thumbnail-footer .file-caption-name{padding-top:4px;font-size:11px;color:#777}.file-upload-indicator{padding-top:2px;cursor:default}.file-upload-indicator:hover{font-size:1.2em;font-weight:700;padding-top:0}.file-drop-zone{border:1px dashed #aaa;border-radius:4px;height:100%;text-align:center;vertical-align:middle;margin:12px 15px 12px 12px;padding:5px}.file-drop-zone-title{color:#aaa;font-size:30px;padding:20px 10px}.highlighted{border:2px dashed #999!important;background-color:#f0f0f0}.file-uploading{background-image:url(../image/loading-sm.gif);background-position:center bottom 10px;background-repeat:no-repeat;opacity:.6}.file-icon-large{font-size:1.2em} \ No newline at end of file diff --git a/portal-common/src/main/webapp/common/thirdparty/bootstrap-fileinput/img/loading-sm.gif b/portal-common/src/main/webapp/common/thirdparty/bootstrap-fileinput/img/loading-sm.gif deleted file mode 100644 index 44e3b7a0f702aa1d301468b1d6c1d74d45dfdfa4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2670 zcmb`Je@v5i9>LSr1(@@0hFth{;0&ijQR3npb})ArbBQ}PvxUrk9==i>-je&{`bYn0 zn)LJfykDR9({*{d^3^65#=>kEmYR~<(cUp}W8&ez9`;@Cv+TEYecW~T-rd+qu-ktq^cI?{N#Y-2bznz}@Wlou^?0COp;`YSDe?RQ|Tc54YcCq*3v~POu z=Q)qt<8AOhdGZ9Ce@UMNZ%`E#<|wqPl%!-T1wNGi6v$*^VoXMUfgA&)8H|&=avY{@ zJeN-^xjCUe&M)59EweXtoViM;a-1?pz|8ANLRhI=H=wp@r|+lJt@60`I1L>ikf9d z0~~r>SYAh`8ncKP#Y`em&991Ki+9$D<+Ah`h8ABLvp^+Tq&fmry95!A4*~{!r(W{r|twO<9E6hwX}% z)F~4zBCfrDD2L!G=moq=Ocm!kf(>!j#MWki`kE{G-BYoHbydNkr`YYfzkHJ}sdz&Z z8KyFYGObizP&mFNfL9$Pkl^BMW@H7Mj~&{~Y}&^@Em8az7i38?{{@hom-`@R{}EIl zuKr(+p!%I^SP+EozXRAQx&zv)Q;+jLkH^n1bF~-lxqi~zs6M>$2b`E?bDR1(oHROR zaB7GXUJ{zi)G5043^#qed;40J-ClCQog6(Hud5xphOP%&4#R>m7Bck%Y7iX-)s;GnT=AX8I6;x z*Ol?b-#BAm+c8m@;Zg6;uE=_2%jzUWr*x2ox8%paAn8qLY^bd(b;)ctlkU^fu=Vc3 zz;SN~k7AeP8RH2m;z z2CX1gkPsDhP~gugYVl&ptMm6Li~=Mu93%mmkyQ%qyHLgm8|ug3#{dSLkO}}pC4+2m z`Abd|+`DA@$4K%kR+rDRtj=pVseWU_SosF`XJ_(Mv(56PPTS5aAL87zteO7ON2zXW zXJVy1^(Mx0!G&0`_T@yc7N3_Iz0+VN*C^fuY4rdK8WyJhb56^W6%| zhv|@e@GJq}V9C%h00$|+q%bv<3=9s$WESlms9VW!FOl?MEbIgN3J@Vy2p1xL+O3%* z4%2yvY0~i3-n5pgHjU@SvC&L^4Rsa4mb2FHx-acsLminpiEGcb4^avWjB6bs?yxHv zFP>OoZm&@)|E$XG{cHFN;rjRP&k2G>fr0d>;EjE|0c(GfTT-1_oMa2pu0v=?C ziWR6(s{%i;LARh*1pqiF)TclTcn}}b?&(F5kHB?rd-LMljI3nO?V@)3zQ#dO-513t ztjcsEGqLW@n}vqVK-aY$rTULTyjJV(hyiVw^9O}%O%TO%-BuBoT7PVy_KKNUTkL36 z?~x1XsVjwnVnJz^Up>+9s|T|{G?2yf>OloQZy$sL`TErZnkDwpwn;{pv6^-mtgcw9 z_E@9A+pHJ039kOw(VR1!{Fzhc9qk-wO9+x3Qyrg@1UN60rpBE1jKy*kvzjY8GMB%rN zWSO@Pl7v*3SO+Q5wzobgsdpIf?Qr=duPeH-rgHWhu znosfxTsJ3QpXcCF1>~qGXs@ZJ zyw~IM73y!A^G>VZ8R)gNG&BU|KuYo)y+(NV^DdAFW5LeVJBBCMNfRtuR+y^ER&<(X zE7%B&e5#Z^`o7-@nEg_P~LI*N!rA^h{|;%@7gdIe0+9 zL6FPmK*NXRK=)=Qr!7yn1(?oIuvujqni9B8`-RfJ#pzQFR*0=zw6NbXTj0F1BLlZh zfVly?4JS*30beAWg%&SoyRsrS%M*Y;RQ^0c<0TpwHaFY zz6r{%O%_#7fe{VKyK@(naSJIeRCsx4aYAE48*ixFGRdMll6*@GUTc0%``>`o8j#V4 zg9*c-O~)LSJSTE&n6)s0!!ECt)zd(wL!wvC+k6wRhYtI}PTi7bt)^yIDG`AshjlL| qtmsHM!1PnVu#-b#!*qv!K4",i=1===t.getElementsByTagName("i").length,document.body.appendChild(t),t.parentNode.removeChild(t),i},t={data:{},init:function(e){var i=e.initialPreview,a=e.id;i.length>0&&!z(i)&&(i=i.split(e.initialPreviewDelimiter)),t.data[a]={content:i,config:e.initialPreviewConfig,tags:e.initialPreviewThumbTags,delimiter:e.initialPreviewDelimiter,template:e.previewGenericTemplate,msg:function(i){return e.getMsgSelected(i)},initId:e.previewInitId,footer:e.getLayoutTemplate("footer"),isDelete:e.initialPreviewShowDelete,caption:e.initialCaption,actions:function(i,t,a,n,r){return e.renderFileActions(i,t,a,n,r)}}},fetch:function(e){return t.data[e].content.filter(function(e){return null!==e})},count:function(e,i){return t.data[e]&&t.data[e].content?i?t.data[e].content.length:t.fetch(e).length:0},get:function(i,a,n){var r,l,o="init_"+a,s=t.data[i],d=s.config[a],c=s.initId+"-"+o,p=" file-preview-initial";return n=void 0===n?!0:n,null===s.content[a]?"":(R(d)||R(d.frameClass)||(p+=" "+d.frameClass),r=s.template.repl("{previewId}",c).repl("{frameClass}",p).repl("{fileindex}",o).repl("{content}",s.content[a]).repl("{footer}",t.footer(i,a,n)),s.tags.length&&s.tags[a]&&(r=H(r,s.tags[a])),R(d)||R(d.frameAttr)||(l=e(document.createElement("div")).html(r),l.find(".file-preview-initial").attr(d.frameAttr),r=l.html(),l.remove()),r)},add:function(i,a,n,r,l){var o,s=e.extend(!0,{},t.data[i]);return z(a)||(a=a.split(s.delimiter)),l?(o=s.content.push(a)-1,s.config[o]=n,s.tags[o]=r):(o=a.length,s.content=a,s.config=n,s.tags=r),t.data[i]=s,o},set:function(i,a,n,r,l){var o,s=e.extend(!0,{},t.data[i]);if(z(a)||(a=a.split(s.delimiter)),l){for(o=0;ol;l++)a+=t.get(e,l);return i=n.msg(t.count(e)),{content:a,caption:i}},footer:function(e,i,a){var n=t.data[e];if(a=void 0===a?!0:a,0===n.config.length||R(n.config[i]))return"";var r=n.config[i],l=M("caption",r)?r.caption:"",o=M("width",r)?r.width:"auto",s=M("url",r)?r.url:!1,d=M("key",r)?r.key:null,c=s===!1&&a,p=n.isDelete?n.actions(!1,!0,c,s,d):"",u=n.footer.repl("{actions}",p);return u.repl("{caption}",l).repl("{width}",o).repl("{indicator}","").repl("{indicatorTitle}","")}},a=function(e,i){return i=i||0,"number"==typeof e?e:("string"==typeof e&&(e=parseFloat(e)),isNaN(e)?i:e)},n=function(){return window.File&&window.FileReader},r=function(){var e=document.createElement("div");return!i(9)&&(void 0!==e.draggable||void 0!==e.ondragstart&&void 0!==e.ondrop)},l=function(){return n()&&window.FormData},o=function(e,i){e.removeClass(i).addClass(i)},s='style="width:{width};height:{height};"',d=' \n \n \n \n \n \n',c='
    \n {previewFileIcon}\n
    ',p={removeIcon:'',removeClass:"btn btn-xs btn-default",removeTitle:"Remove file",uploadIcon:'',uploadClass:"btn btn-xs btn-default",uploadTitle:"Upload file",indicatorNew:'',indicatorSuccess:'',indicatorError:'',indicatorLoading:'',indicatorNewTitle:"Not uploaded yet",indicatorSuccessTitle:"Uploaded",indicatorErrorTitle:"Upload Error",indicatorLoadingTitle:"Uploading ..."},u='{preview}\n
    \n
    \n {caption}\n
    \n {remove}\n {cancel}\n {upload}\n {browse}\n
    \n
    ',f='{preview}\n
    \n{remove}\n{cancel}\n{upload}\n{browse}\n',v='
    \n
    ×
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    ',h='',m='
    \n \n
    \n
    ',g='',w='
    \n
    \n {percent}%\n
    \n
    ',b='',x='
    \n \n
    {indicator}
    \n
    \n
    ',C='\n',y='\n',T='
    \n {content}\n {footer}\n
    \n',E='
    \n \n '+c+"\n \n {footer}\n
    ",k='
    \n {caption}\n {footer}\n
    \n",F='
    \n
    \n {data}\n
    \n {footer}\n
    ",$='
    \n \n {footer}\n
    \n",I='
    \n \n {footer}\n
    ",D='
    \n \n'+d+" "+c+"\n \n {footer}\n
    \n",P='
    \n \n \n'+d+" "+c+"\n \n {footer}\n
    ",S='
    \n "+c+"\n {footer}\n
    ",U={main1:u,main2:f,preview:v,icon:h,caption:m,modal:g,progress:w,footer:b,actions:x,actionDelete:C,actionUpload:y},j={generic:T,html:E,image:k,text:F,video:$,audio:I,flash:D,object:P,other:S},A=["image","html","text","video","audio","flash","object"],L={image:{width:"auto",height:"160px"},html:{width:"213px",height:"160px"},text:{width:"160px",height:"160px"},video:{width:"213px",height:"160px"},audio:{width:"213px",height:"80px"},flash:{width:"213px",height:"160px"},object:{width:"160px",height:"160px"},other:{width:"160px",height:"160px"}},O={image:function(e,i){return void 0!==e?e.match("image.*"):i.match(/\.(gif|png|jpe?g)$/i)},html:function(e,i){return void 0!==e?"text/html"===e:i.match(/\.(htm|html)$/i)},text:function(e,i){return void 0!==e&&e.match("text.*")||i.match(/\.(txt|md|csv|nfo|php|ini)$/i)},video:function(e,i){return void 0!==e&&e.match(/\.video\/(ogg|mp4|webm)$/i)||i.match(/\.(og?|mp4|webm)$/i)},audio:function(e,i){return void 0!==e&&e.match(/\.audio\/(ogg|mp3|wav)$/i)||i.match(/\.(ogg|mp3|wav)$/i)},flash:function(e,i){return void 0!==e&&"application/x-shockwave-flash"===e||i.match(/\.(swf)$/i)},object:function(){return!0},other:function(){return!0}},R=function(i,t){return null===i||void 0===i||0===i.length||t&&""===e.trim(i)},z=function(e){return Array.isArray(e)||"[object Array]"===Object.prototype.toString.call(e)},M=function(e,i){return"object"==typeof i&&e in i},N=function(i,t,a){return R(i)||R(i[t])?a:e(i[t])},B=function(){return Math.round((new Date).getTime()+100*Math.random())},Z=function(e){return String(e).repl("&","&").repl('"',""").repl("'","'").repl("<","<").repl(">",">")},H=function(i,t){var a=i;return t=t||{},e.each(t,function(e,i){"function"==typeof i&&(i=i()),a=a.repl(e,i)}),a},W=window.URL||window.webkitURL,_=function(t,a){var r=this;r.$element=e(t),r.validate()&&(r.isPreviewable=n(),r.isIE9=i(9),r.isIE10=i(10),r.isPreviewable||r.isIE9?(r.init(a),r.listen()):r.$element.removeClass("file-loading"))};_.prototype={constructor:_,validate:function(){var e,i=this;return"file"===i.$element.attr("type")?!0:(e='

    Invalid Input Type

    You must set an input type = file for bootstrap-fileinput plugin to initialize.
    ',i.$element.after(e),!1)},init:function(i){var n,s=this,d=s.$element;e.each(i,function(e,i){s[e]="maxFileCount"===e||"maxFileSize"===e?a(i):i}),s.fileInputCleared=!1,s.fileBatchCompleted=!0,R(s.allowedPreviewTypes)&&(s.allowedPreviewTypes=A),s.isPreviewable||(s.showPreview=!1),s.uploadFileAttr=R(d.attr("name"))?"file_data":d.attr("name"),s.reader=null,s.formdata={},s.filestack=[],s.ajaxRequests=[],s.isError=!1,s.ajaxAborted=!1,s.dropZoneEnabled=r()&&s.dropZoneEnabled,s.isDisabled=s.$element.attr("disabled")||s.$element.attr("readonly"),s.isUploadable=l()&&!R(s.uploadUrl),s.slug="function"==typeof i.slugCallback?i.slugCallback:s.slugDefault,s.mainTemplate=s.getLayoutTemplate(s.showCaption?"main1":"main2"),s.captionTemplate=s.getLayoutTemplate("caption"),s.previewGenericTemplate=s.getPreviewTemplate("generic"),R(s.$element.attr("id"))&&s.$element.attr("id",B()),void 0===s.$container?s.$container=s.createContainer():s.refreshContainer(),s.$progress=s.$container.find(".kv-upload-progress"),s.$btnUpload=s.$container.find(".kv-fileinput-upload"),s.$captionContainer=N(i,"elCaptionContainer",s.$container.find(".file-caption")),s.$caption=N(i,"elCaptionText",s.$container.find(".file-caption-name")),s.$previewContainer=N(i,"elPreviewContainer",s.$container.find(".file-preview")),s.$preview=N(i,"elPreviewImage",s.$container.find(".file-preview-thumbnails")),s.$previewStatus=N(i,"elPreviewStatus",s.$container.find(".file-preview-status")),s.$errorContainer=N(i,"elErrorContainer",s.$previewContainer.find(".kv-fileinput-error")),R(s.msgErrorClass)||o(s.$errorContainer,s.msgErrorClass),s.$errorContainer.hide(),s.fileActionSettings=e.extend(p,i.fileActionSettings),s.previewInitId="preview-"+B(),s.id=s.$element.attr("id"),t.init(s),s.initPreview(!0),s.initPreviewDeletes(),s.options=i,s.setFileDropZoneTitle(),s.uploadCount=0,s.uploadPercent=0,s.$element.removeClass("file-loading"),n=s.getLayoutTemplate("progress"),s.progressTemplate=n.replace("{class}",s.progressClass),s.progressCompleteTemplate=n.replace("{class}",s.progressCompleteClass),s.setEllipsis()},parseError:function(i,t,a){var n=this,r=e.trim(t+""),l="."===r.slice(-1)?"":".",o=void 0!==i.responseJSON&&void 0!==i.responseJSON.error?i.responseJSON.error:i.responseText;return n.showAjaxErrorDetails?(o=e.trim(o.replace(/\n\s*\n/g,"\n")),o=o.length>0?"
    "+o+"
    ":"",r+=l+o):r+=l,a?""+a+": "+i:r},raise:function(i,t){var a=this,n=e.Event(i);if(void 0!==t?a.$element.trigger(n,t):a.$element.trigger(n),!n.result)return n.result;switch(i){case"filebatchuploadcomplete":case"filebatchuploadsuccess":case"fileuploaded":case"fileclear":case"filecleared":case"filereset":case"fileerror":case"filefoldererror":case"fileuploaderror":case"filebatchuploaderror":case"filedeleteerror":case"filecustomerror":case"filesuccessremove":break;default:a.ajaxAborted=n.result}return!0},getLayoutTemplate:function(e){var i=this,t=M(e,i.layoutTemplates)?i.layoutTemplates[e]:U[e];return R(i.customLayoutTags)?t:H(t,i.customLayoutTags)},getPreviewTemplate:function(e){var i=this,t=M(e,i.previewTemplates)?i.previewTemplates[e]:j[e];return t=t.repl("{previewFileIcon}",i.previewFileIcon),R(i.customPreviewTags)?t:H(t,i.customPreviewTags)},getOutData:function(e,i,t){var a=this;return e=e||{},i=i||{},t=t||a.filestack.slice(0)||{},{form:a.formdata,files:t,extra:a.getExtraData(),response:i,reader:a.reader,jqXHR:e}},setEllipsis:function(){var e=this,i=e.$captionContainer,t=e.$caption,a=t.clone().css("height","auto").hide();i.parent().before(a),i.removeClass("kv-has-ellipsis"),a.outerWidth()>t.outerWidth()&&i.addClass("kv-has-ellipsis"),a.remove()},listen:function(){var i=this,t=i.$element,a=i.$captionContainer,n=i.$btnFile,r=t.closest("form");t.on("change",e.proxy(i.change,i)),e(window).on("resize",function(){i.setEllipsis()}),n.off("click").on("click",function(){i.raise("filebrowse"),i.isError&&!i.isUploadable&&i.clear(),a.focus()}),r.off("reset").on("reset",e.proxy(i.reset,i)),i.$container.off("click").on("click",".fileinput-remove:not([disabled])",e.proxy(i.clear,i)).on("click",".fileinput-cancel",e.proxy(i.cancel,i)),i.isUploadable&&i.dropZoneEnabled&&i.showPreview&&i.initDragDrop(),i.isUploadable||r.on("submit",e.proxy(i.submitForm,i)),i.$container.find(".kv-fileinput-upload").off("click").on("click",function(t){var a,n=e(this),r=!n.hasClass("disabled")&&R(n.attr("disabled"));return i.isUploadable?(t.preventDefault(),void(r&&i.upload())):void(r&&"submit"!==n.attr("type")&&(a=n.closest("form"),a.length&&a.trigger("submit"),t.preventDefault()))})},submitForm:function(){var e=this,i=e.$element,t=i.get(0).files;return t&&t.length0?(e.noFilesError({}),!1):!e.abort({})},abort:function(i){var t,a=this;return a.ajaxAborted&&"object"==typeof a.ajaxAborted&&void 0!==a.ajaxAborted.message?(t=e.extend(a.getOutData(),i),t.abortData=a.ajaxAborted.data||{},t.abortMessage=a.ajaxAborted.message,a.showUploadError(a.ajaxAborted.message,t,"filecustomerror"),!0):!1},noFilesError:function(e){var i=this,t=i.minFileCount>1?i.filePlural:i.fileSingle,a=i.msgFilesTooLess.replace("{n}",i.minFileCount).replace("{files}",t),n=i.$errorContainer;n.html(a),i.isError=!0,i.updateFileDetails(0),n.fadeIn(800),i.raise("fileerror",[e]),i.clearFileInput(),o(i.$container,"has-error")},setProgress:function(e){var i=this,t=Math.min(e,100),a=100>t?i.progressTemplate:i.progressCompleteTemplate;R(a)||i.$progress.html(a.repl("{percent}",t))},upload:function(){var i,t,a,n=this,r=n.getFileStack().length,l={},o=!e.isEmptyObject(n.getExtraData());if(r0)return void n.noFilesError(l);if(n.isUploadable&&!n.isDisabled&&(0!==r||o)){if(n.resetUpload(),n.$progress.removeClass("hide"),n.uploadCount=0,n.uploadPercent=0,n.lock(),n.setProgress(0),0===r&&o)return void n.uploadExtraOnly();if(a=n.filestack.length,n.hasInitData=!1,n.uploadAsync&&n.showPreview)for(t=n.getOutData(),n.raise("filebatchpreupload",[t]),n.fileBatchCompleted=!1,n.uploadCache={content:[],config:[],tags:[],append:!0},i=0;a>i;i+=1)void 0!==n.filestack[i]&&n.uploadSingle(i,n.filestack,!0);else n.uploadBatch()}},lock:function(){var e=this;e.resetErrors(),e.disable(),e.showRemove&&o(e.$container.find(".fileinput-remove"),"hide"),e.showCancel&&e.$container.find(".fileinput-cancel").removeClass("hide"),e.raise("filelock",[e.filestack,e.getExtraData()])},unlock:function(e){var i=this;void 0===e&&(e=!0),i.enable(),i.showCancel&&o(i.$container.find(".fileinput-cancel"),"hide"),i.showRemove&&i.$container.find(".fileinput-remove").removeClass("hide"),e&&i.resetFileStack(),i.raise("fileunlock",[i.filestack,i.getExtraData()])},resetFileStack:function(){var i=this,t=0,a=[];i.getThumbs().each(function(){var n=e(this),r=n.attr("data-fileindex"),l=i.filestack[r];-1!==r&&(void 0!==l?(a[t]=l,n.attr({id:i.previewInitId+"-"+t,"data-fileindex":t}),t+=1):n.attr({id:"uploaded-"+B(),"data-fileindex":"-1"}))}),i.filestack=a},refresh:function(i){var t,a=this,n=a.$element,r=arguments.length?e.extend(a.options,i):a.options;n.off(),a.init(r),t=a.$container.find(".file-drop-zone"),t.off("dragenter dragover dragleave drop"),e(document).off("dragenter dragover drop"),a.listen(),a.setFileDropZoneTitle()},initDragDrop:function(){var i=this,t=i.$container.find(".file-drop-zone");t.off("dragenter dragover dragleave drop"),e(document).off("dragenter dragover drop"),t.on("dragenter dragover",function(t){var a=e.inArray("Files",t.originalEvent.dataTransfer.types)>-1;return t.stopPropagation(),t.preventDefault(),i.isDisabled||!a?(t.originalEvent.dataTransfer.effectAllowed="none",void(t.originalEvent.dataTransfer.dropEffect="none")):void o(e(this),"highlighted")}),t.on("dragleave",function(t){t.stopPropagation(),t.preventDefault(),i.isDisabled||e(this).removeClass("highlighted")}),t.on("drop",function(t){t.preventDefault(),i.isDisabled||R(t.originalEvent.dataTransfer.files)||(i.change(t,"dragdrop"),e(this).removeClass("highlighted"))}),e(document).on("dragenter dragover drop",function(e){e.stopPropagation(),e.preventDefault()})},setFileDropZoneTitle:function(){var e=this,i=e.$container.find(".file-drop-zone");i.find("."+e.dropZoneTitleClass).remove(),e.isUploadable&&e.showPreview&&0!==i.length&&!(e.getFileStack().length>0)&&e.dropZoneEnabled&&(0===i.find(".file-preview-frame").length&&i.prepend('
    '+e.dropZoneTitle+"
    "),e.$container.removeClass("file-input-new"),o(e.$container,"file-input-ajax-new"))},initFileActions:function(){var i=this;i.$preview.find(".kv-file-remove").each(function(){var a,n,r=e(this),l=r.closest(".file-preview-frame"),o=l.attr("data-fileindex");r.off("click").on("click",function(){i.cleanMemory(l),l.fadeOut("slow",function(){i.filestack[o]=void 0,i.clearObjects(l),l.remove();var e=i.getFileStack(!0),r=e.length,s=t.count(i.id);i.clearFileInput(),0===r&&0===s?i.reset():(a=s+r,n=a>1?i.getMsgSelected(a):e[0]?e[0].name:"",i.setCaption(n))})})}),i.$preview.find(".kv-file-upload").each(function(){var t=e(this);t.off("click").on("click",function(){var e=t.closest(".file-preview-frame"),a=e.attr("data-fileindex");i.uploadSingle(a,i.filestack,!1)})})},getMsgSelected:function(e){var i=this,t=1===e?i.fileSingle:i.filePlural;return i.msgSelected.replace("{n}",e).replace("{files}",t)},renderFileFooter:function(e,i){var t,a,n=this,r=n.fileActionSettings,l=n.getLayoutTemplate("footer");return n.isUploadable?(t=l.repl("{actions}",n.renderFileActions(!0,!0,!1,!1,!1)),a=t.repl("{caption}",e).repl("{width}",i).repl("{indicator}",r.indicatorNew).repl("{indicatorTitle}",r.indicatorNewTitle)):a=l.repl("{actions}","").repl("{caption}",e).repl("{width}",i).repl("{indicator}","").repl("{indicatorTitle}",""),a=H(a,n.previewThumbTags)},renderFileActions:function(e,i,t,a,n){if(!e&&!i)return"";var r=this,l=a===!1?"":' data-url="'+a+'"',o=n===!1?"":' data-key="'+n+'"',s=r.getLayoutTemplate("actionDelete"),d="",c=r.getLayoutTemplate("actions"),p=r.otherActionButtons.repl("{dataKey}",o),u=r.fileActionSettings,f=t?u.removeClass+" disabled":u.removeClass;return s=s.repl("{removeClass}",f).repl("{removeIcon}",u.removeIcon).repl("{removeTitle}",u.removeTitle).repl("{dataUrl}",l).repl("{dataKey}",o),e&&(d=r.getLayoutTemplate("actionUpload").repl("{uploadClass}",u.uploadClass).repl("{uploadIcon}",u.uploadIcon).repl("{uploadTitle}",u.uploadTitle)),c.repl("{delete}",s).repl("{upload}",d).repl("{other}",p)},setThumbStatus:function(e,i){var t=this,a="indicator"+i,n=a+"Title",r="file-preview-"+i.toLowerCase(),l=e.find(".file-upload-indicator"),o=t.fileActionSettings;e.removeClass("file-preview-success file-preview-error file-preview-loading"),l.html(o[a]),l.attr("title",o[n]),e.addClass(r)},clearPreview:function(){var e=this,i=e.$preview.find(e.showUploadedThumbs?".file-preview-frame:not(.file-preview-success)":".file-preview-frame");i.remove(),e.$preview.find(".file-preview-frame").length&&e.showPreview||e.resetUpload()},initPreview:function(e){var i,a=this,n=a.initialCaption||"";return t.count(a.id)?(i=t.out(a.id),n=e&&a.initialCaption?a.initialCaption:i.caption,a.$preview.html(i.content),a.setCaption(n),void(R(i.content)||a.$container.removeClass("file-input-new"))):(a.clearPreview(),void(e?a.setCaption(n):a.initCaption()))},initPreviewDeletes:function(){var i=this,a=i.deleteExtraData||{},n=function(){0===i.$preview.find(".kv-file-remove").length&&(i.reset(),i.initialCaption="")};i.$preview.find(".kv-file-remove").each(function(){var r=e(this),l=r.data("url")||i.deleteUrl,s=r.data("key");if(!R(l)&&void 0!==s){var d,c,p,u,f=r.closest(".file-preview-frame"),v=t.data[i.id],h=f.data("fileindex");h=parseInt(h.replace("init_","")),p=R(v.config)&&R(v.config[h])?null:v.config[h],u=R(p)||R(p.extra)?a:p.extra,"function"==typeof u&&(u=u()),c={id:r.attr("id"),key:s,extra:u},d=e.extend({url:l,type:"DELETE",dataType:"json",data:e.extend({key:s},u),beforeSend:function(e){i.ajaxAborted=!1,i.raise("filepredelete",[s,e,u]),i.ajaxAborted?e.abort():(o(f,"file-uploading"),o(r,"disabled"))},success:function(e,a,l){var o,d;return R(e)||R(e.error)?(t.unset(i.id,h),o=t.count(i.id),d=o>0?i.getMsgSelected(o):"",i.raise("filedeleted",[s,l,u]),i.setCaption(d),f.removeClass("file-uploading").addClass("file-deleted"),void f.fadeOut("slow",function(){i.clearObjects(f),f.remove(),n(),o||0!==i.getFileStack().length||(i.setCaption(""),i.reset())})):(c.jqXHR=l,c.response=e,i.showError(e.error,c,"filedeleteerror"),f.removeClass("file-uploading"),r.removeClass("disabled"),void n())},error:function(e,t,a){var r=i.parseError(e,a);c.jqXHR=e,c.response={},i.showError(r,c,"filedeleteerror"),f.removeClass("file-uploading"),n()}},i.ajaxDeleteSettings),r.off("click").on("click",function(){e.ajax(d)})}})},clearObjects:function(i){i.find("video audio").each(function(){this.pause(),e(this).remove()}),i.find("img object div").each(function(){e(this).remove()})},clearFileInput:function(){var i,t,a,n=this,r=n.$element;R(r.val())||(n.isIE9||n.isIE10?(i=r.closest("form"),t=e(document.createElement("form")),a=e(document.createElement("div")),r.before(a),i.length?i.after(t):a.after(t),t.append(r).trigger("reset"),a.before(r).remove(),t.remove()):r.val(""),n.fileInputCleared=!0)},resetUpload:function(){var e=this;e.uploadCache={content:[],config:[],tags:[],append:!0},e.uploadCount=0,e.uploadPercent=0,e.$btnUpload.removeAttr("disabled"),e.setProgress(0),o(e.$progress,"hide"),e.resetErrors(!1),e.ajaxAborted=!1,e.ajaxRequests=[]},cancel:function(){var i,t=this,a=t.ajaxRequests,n=a.length;if(n>0)for(i=0;n>i;i+=1)a[i].abort();t.getThumbs().each(function(){var i=e(this),a=i.attr("data-fileindex");i.removeClass("file-uploading"),void 0!==t.filestack[a]&&(i.find(".kv-file-upload").removeClass("disabled").removeAttr("disabled"),i.find(".kv-file-remove").removeClass("disabled").removeAttr("disabled")),t.unlock()})},cleanMemory:function(e){var i=e.is("img")?e.attr("src"):e.find("source").attr("src");W.revokeObjectURL(i)},hasInitialPreview:function(){var e=this;return!e.overwriteInitial&&t.count(e.id)},clear:function(){var i,t=this;t.$btnUpload.removeAttr("disabled"),t.getThumbs().find("video,audio,img").each(function(){t.cleanMemory(e(this))}),t.resetUpload(),t.filestack=[],t.clearFileInput(),t.resetErrors(!0),t.raise("fileclear"),t.hasInitialPreview()?(t.showFileIcon(),t.resetPreview(),t.setEllipsis(),t.initPreviewDeletes(),t.$container.removeClass("file-input-new")):(t.getThumbs().each(function(){t.clearObjects(e(this))}),t.$preview.html(""),i=!t.overwriteInitial&&t.initialCaption.length>0?t.initialCaption:"",t.setCaption(i),t.setEllipsis(),t.$caption.attr("title",""),o(t.$container,"file-input-new")),0===t.$container.find(".file-preview-frame").length&&(t.initCaption()||t.$captionContainer.find(".kv-caption-icon").hide(),t.setEllipsis()),t.hideFileIcon(),t.raise("filecleared"),t.$captionContainer.focus(),t.setFileDropZoneTitle()},resetPreview:function(){var e,i=this;t.count(i.id)?(e=t.out(i.id),i.$preview.html(e.content),i.setCaption(e.caption)):(i.clearPreview(),i.initCaption())},reset:function(){var e=this;e.resetPreview(),e.setEllipsis(),e.$container.find(".fileinput-filename").text(""),e.raise("filereset"),e.initialPreview.length>0&&e.$container.removeClass("file-input-new"),e.setFileDropZoneTitle(),e.filestack=[],e.formdata={}},disable:function(){var e=this;e.isDisabled=!0,e.raise("filedisabled"),e.$element.attr("disabled","disabled"),e.$container.find(".kv-fileinput-caption").addClass("file-caption-disabled"),e.$container.find(".btn-file, .fileinput-remove, .kv-fileinput-upload").attr("disabled",!0),e.initDragDrop()},enable:function(){var e=this;e.isDisabled=!1,e.raise("fileenabled"),e.$element.removeAttr("disabled"),e.$container.find(".kv-fileinput-caption").removeClass("file-caption-disabled"),e.$container.find(".btn-file, .fileinput-remove, .kv-fileinput-upload").removeAttr("disabled"),e.initDragDrop()},getThumbs:function(e){return e=e||"",this.$preview.find(".file-preview-frame:not(.file-preview-initial)"+e)},getExtraData:function(){var e=this,i=e.uploadExtraData;return"function"==typeof e.uploadExtraData&&(i=e.uploadExtraData()),i},uploadExtra:function(){var i=this,t=i.getExtraData();0!==t.length&&e.each(t,function(e,t){i.formdata.append(e,t)})},initXhr:function(e,i){var t=this;return e.upload&&e.upload.addEventListener("progress",function(e){var a=0,n=e.loaded||e.position,r=e.total;e.lengthComputable&&(a=Math.ceil(n/r*i)),t.uploadPercent=Math.max(a,t.uploadPercent),t.setProgress(t.uploadPercent)},!1),e},ajaxSubmit:function(i,t,a,n){var r,l=this;l.uploadExtra(),r=e.extend({xhr:function(){var i=e.ajaxSettings.xhr();return l.initXhr(i,98)},url:l.uploadUrl,type:"POST",dataType:"json",data:l.formdata,cache:!1,processData:!1,contentType:!1,beforeSend:i,success:t,complete:a,error:n},l.ajaxSettings),l.ajaxRequests.push(e.ajax(r))},initUploadSuccess:function(i,a,n){var r,l,o,s,d,c,p,u=this;"object"!=typeof i||e.isEmptyObject(i)||void 0!==i.initialPreview&&i.initialPreview.length>0&&(u.hasInitData=!0,d=i.initialPreview||[],c=i.initialPreviewConfig||[],p=i.initialPreviewThumbTags||[],r=void 0===i.append||i.append?!0:!1,u.overwriteInitial=!1,void 0===a||n?n?(u.uploadCache.content.push(d[0]),u.uploadCache.config.push(c[0]),u.uploadCache.tags.push(p[0]),u.uploadCache.append=r):(t.set(u.id,d,c,p,r),u.initPreview(),u.initPreviewDeletes()):(o=t.add(u.id,d,c[0],p[0],r),l=t.get(u.id,o,!1),s=e(l).hide(),a.after(s).fadeOut("slow",function(){s.fadeIn("slow").css("display:inline-block"),u.initPreviewDeletes(),u.clearFileInput(),a.remove()})))},initSuccessThumbs:function(){var i=this;i.getThumbs(".file-preview-success").each(function(){var t=e(this),a=t.find(".kv-file-remove");a.removeAttr("disabled").off("click").on("click",function(){var e=i.raise("filesuccessremove",[t.attr("id"),t.data("fileindex")]);i.cleanMemory(t),e!==!1&&t.fadeOut("slow",function(){t.remove(),i.$preview.find(".file-preview-frame").length||i.reset()})})})},uploadSingle:function(i,a,n){var r,l,s,d,c,p,u,f,v,h=this,m=h.getFileStack().length,g=new FormData,w=h.previewInitId+"-"+i,b=e("#"+w+":not(.file-preview-initial)"),x=b.find(".kv-file-upload"),C=b.find(".kv-file-remove"),y=h.filestack.length>0||!e.isEmptyObject(h.uploadExtraData),T={id:w,index:i};h.formdata=g,0===m||!y||x.hasClass("disabled")||h.abort(T)||(s=function(){var e=h.getThumbs(".file-uploading");e.length>0||h.fileBatchCompleted||(h.fileBatchCompleted=!0,setTimeout(function(){t.set(h.id,h.uploadCache.content,h.uploadCache.config,h.uploadCache.tags,h.uploadCache.append),h.hasInitData&&(h.initPreview(),h.initPreviewDeletes()),h.setProgress(100),h.unlock(),h.clearFileInput(),h.raise("filebatchuploadcomplete",[h.filestack,h.getExtraData()])},100))},d=function(){!n||0===m||h.uploadPercent>=100||(h.uploadCount+=1,l=80+Math.ceil(20*h.uploadCount/m),h.uploadPercent=Math.max(l,h.uploadPercent),h.setProgress(h.uploadPercent),h.initPreviewDeletes())},c=function(){x.removeAttr("disabled"),C.removeAttr("disabled"),b.removeClass("file-uploading")},p=function(t){r=h.getOutData(t),b.hasClass("file-preview-success")||(h.setThumbStatus(b,"Loading"),o(b,"file-uploading")),x.attr("disabled",!0),C.attr("disabled",!0),n||h.lock(),h.raise("filepreupload",[r,w,i]),T=e.extend(T,r),h.abort(T)&&(t.abort(),h.setProgress(100))},u=function(t,a,l){r=h.getOutData(l,t),T=e.extend(T,r),setTimeout(function(){R(t)||R(t.error)?(h.setThumbStatus(b,"Success"),x.hide(),h.filestack[i]=void 0,h.raise("fileuploaded",[r,w,i]),h.initUploadSuccess(t,b,n),n||h.resetFileStack()):(h.setThumbStatus(b,"Error"),h.showUploadError(t.error,T))},100)},f=function(){setTimeout(function(){d(),c(),n?s():h.unlock(!1),h.initSuccessThumbs()},100)},v=function(t,r,l){var o=h.parseError(t,l,n?a[i].name:null);h.setThumbStatus(b,"Error"),T=e.extend(T,h.getOutData(t)),h.showUploadError(o,T)},g.append(h.uploadFileAttr,a[i]),g.append("file_id",i),h.ajaxSubmit(p,u,f,v))},uploadBatch:function(){var i,t,a,n,r,l=this,s=l.filestack,d=s.length,c=l.filestack.length>0||!e.isEmptyObject(l.uploadExtraData),p={};l.formdata=new FormData,0!==d&&c&&!l.abort(p)&&(i=function(){e.each(s,function(e){l.filestack[e]=void 0}),l.clearFileInput()},t=function(i){l.lock();var t=l.getOutData(i);l.showPreview&&l.getThumbs().each(function(){var i=e(this),t=i.find(".kv-file-upload"),a=i.find(".kv-file-remove");i.hasClass("file-preview-success")||(l.setThumbStatus(i,"Loading"),o(i,"file-uploading")),t.attr("disabled",!0),a.attr("disabled",!0)}),l.raise("filebatchpreupload",[t]),l.abort(t)&&i.abort()},a=function(t,a,n){var r=l.getOutData(n,t),o=l.getThumbs(),s=R(t.errorkeys)?[]:t.errorkeys;R(t)||R(t.error)?(l.raise("filebatchuploadsuccess",[r]),i(),l.showPreview?(o.each(function(){var i=e(this),t=i.find(".kv-file-upload");i.find(".kv-file-upload").hide(),l.setThumbStatus(i,"Success"),i.removeClass("file-uploading"),t.removeAttr("disabled")}),l.initUploadSuccess(t)):l.reset()):(l.showPreview&&(o.each(function(){var i=e(this),t=i.find(".kv-file-remove"),a=i.find(".kv-file-upload");return i.removeClass("file-uploading"),a.removeAttr("disabled"),t.removeAttr("disabled"),0===s.length?void l.setThumbStatus(i,"Error"):void(-1!==e.inArray(key,s)?l.setThumbStatus(i,"Error"):(i.find(".kv-file-upload").hide(),l.setThumbStatus(i,"Success"),l.filestack[key]=void 0)); - -}),l.initUploadSuccess(t)),l.showUploadError(t.error,r,"filebatchuploaderror"))},n=function(){l.setProgress(100),l.unlock(),l.initSuccessThumbs(),l.raise("filebatchuploadcomplete",[l.filestack,l.getExtraData()]),l.clearFileInput()},r=function(i,t,a){var n=l.getOutData(i),r=l.parseError(i,a);l.showUploadError(r,n,"filebatchuploaderror"),l.uploadFileCount=d-1,l.showPreview&&(l.getThumbs().each(function(){var i=e(this),t=i.attr("data-fileindex");i.removeClass("file-uploading"),void 0!==l.filestack[t]&&l.setThumbStatus(i,"Error")}),l.getThumbs().removeClass("file-uploading"),l.getThumbs(" .kv-file-upload").removeAttr("disabled"),l.getThumbs(" .kv-file-delete").removeAttr("disabled"))},e.each(s,function(e,i){R(s[e])||l.formdata.append(l.uploadFileAttr,i)}),l.ajaxSubmit(t,a,n,r))},uploadExtraOnly:function(){var e,i,t,a,n=this,r={};n.formdata=new FormData,n.abort(r)||(e=function(e){n.lock();var i=n.getOutData(e);n.raise("filebatchpreupload",[i]),n.setProgress(50),r.data=i,r.xhr=e,n.abort(r)&&(e.abort(),n.setProgress(100))},i=function(e,i,t){var a=n.getOutData(t,e);R(e)||R(e.error)?(n.raise("filebatchuploadsuccess",[a]),n.clearFileInput(),n.initUploadSuccess(e)):n.showUploadError(e.error,a,"filebatchuploaderror")},t=function(){n.setProgress(100),n.unlock(),n.raise("filebatchuploadcomplete",[n.filestack,n.getExtraData()]),n.clearFileInput()},a=function(e,i,t){var a=n.getOutData(e),l=n.parseError(e,t);r.data=a,n.showUploadError(l,a,"filebatchuploaderror")},n.ajaxSubmit(e,i,t,a))},hideFileIcon:function(){this.overwriteInitial&&this.$captionContainer.find(".kv-caption-icon").hide()},showFileIcon:function(){this.$captionContainer.find(".kv-caption-icon").show()},resetErrors:function(e){var i=this,t=i.$errorContainer;i.isError=!1,i.$container.removeClass("has-error"),t.html(""),e?t.fadeOut("slow"):t.hide()},showFolderError:function(e){var i=this,t=i.$errorContainer;e&&(t.html(i.msgFoldersNotAllowed.repl("{n}",e)),t.fadeIn(800),o(i.$container,"has-error"),i.raise("filefoldererror",[e]))},showUploadError:function(e,i,t){var a=this,n=a.$errorContainer,r=t||"fileuploaderror";return 0===n.find("ul").length?n.html("
    • "+e+"
    "):n.find("ul").append("
  • "+e+"
  • "),n.fadeIn(800),a.raise(r,[i]),o(a.$container,"has-error"),!0},showError:function(e,i,t){var a=this,n=a.$errorContainer,r=t||"fileerror";return i=i||{},i.reader=a.reader,n.html(e),n.fadeIn(800),a.raise(r,[i]),a.isUploadable||a.clearFileInput(),o(a.$container,"has-error"),a.$btnUpload.attr("disabled",!0),!0},errorHandler:function(e,i){var t=this,a=e.target.error;switch(a.code){case a.NOT_FOUND_ERR:t.showError(t.msgFileNotFound.replace("{name}",i));break;case a.SECURITY_ERR:t.showError(t.msgFileSecured.replace("{name}",i));break;case a.NOT_READABLE_ERR:t.showError(t.msgFileNotReadable.replace("{name}",i));break;case a.ABORT_ERR:t.showError(t.msgFilePreviewAborted.replace("{name}",i));break;default:t.showError(t.msgFilePreviewError.replace("{name}",i))}},parseFileType:function(e){var i,t,a,n,r=this;for(n=0;n=0,b=R(f)||!R(f)&&-1!==f.indexOf(i.type),x=d.renderFileFooter(p,h.width),C="",y=a.slice(a.lastIndexOf("-")+1);w&&b?("text"===c?(l=Z(t.target.result),l.length>m&&(o="text-"+B(),s=.75*window.innerHeight,C=d.getLayoutTemplate("modal").repl("{id}",o).repl("{title}",p).repl("{height}",s).repl("{body}",l),g=g.repl("{title}",p).repl("{dialog}","$('#"+o+"').modal('show')"),l=l.substring(0,m-1)+g),r=v.repl("{previewId}",a).repl("{caption}",p).repl("{frameClass}","").repl("{type}",i.type).repl("{width}",h.width).repl("{height}",h.height).repl("{data}",l).repl("{footer}",x).repl("{fileindex}",y)+C):r=v.repl("{previewId}",a).repl("{caption}",p).repl("{frameClass}","").repl("{type}",i.type).repl("{data}",n).repl("{width}",h.width).repl("{height}",h.height).repl("{footer}",x).repl("{fileindex}",y),d.$preview.append("\n"+r),d.validateImage(e,a)):d.previewDefault(i,a)}},slugDefault:function(e){return R(e)?"":e.split(/(\\|\/)/g).pop().replace(/[^\w\u00C0-\u017F\-.\\\/ ]+/g,"")},getFileStack:function(e){var i=this;return i.filestack.filter(function(i){return e?void 0!==i:void 0!==i&&null!==i})},readFiles:function(i){function t(e){if(R(n.attr("multiple"))&&(u=1),e>=u)return a.isUploadable&&a.filestack.length>0?a.raise("filebatchselected",[a.getFileStack()]):a.raise("filebatchselected",[i]),o.removeClass("loading"),void s.html("");var m,g,w,b,x,C,y=v+e,T=p+"-"+y,E=i[e],k=a.slug(E.name),F=(E.size||0)/1e3,$="",I=W.createObjectURL(E),D=0,P=a.allowedFileTypes,S=R(P)?"":P.join(", "),U=a.allowedFileExtensions,j=R(U)?"":U.join(", ");if(R(U)||($=new RegExp("\\.("+U.join("|")+")$","i")),F=F.toFixed(2),a.maxFileSize>0&&F>a.maxFileSize)return b=a.msgSizeTooLarge.replace("{name}",k).replace("{size}",F).replace("{maxSize}",a.maxFileSize),void(a.isError=h(b,E,T,e));if(!R(P)&&z(P)){for(w=0;w0&&void 0!==FileReader?(s.html(d.replace("{index}",e+1).replace("{files}",u)),o.addClass("loading"),l.onerror=function(e){a.errorHandler(e,k)},l.onload=function(i){a.previewFile(e,E,i,T,I),a.initFileActions()},l.onloadend=function(){b=c.replace("{index}",e+1).replace("{files}",u).replace("{percent}",50).replace("{name}",k),setTimeout(function(){s.html(b),t(e+1),a.updateFileDetails(u)},100),a.raise("fileloaded",[E,T,e,l])},l.onprogress=function(i){if(i.lengthComputable){var t=i.loaded/i.total*100,a=Math.ceil(t);b=c.replace("{index}",e+1).replace("{files}",u).replace("{percent}",a).replace("{name}",k),setTimeout(function(){s.html(b)},100)}},m=M("text",f)?f.text:O.text,m(E.type,k)?l.readAsText(E,a.textEncoding):l.readAsArrayBuffer(E)):(a.previewDefault(E,T),setTimeout(function(){t(e+1),a.updateFileDetails(u)},100),a.raise("fileloaded",[E,T,e,l])),void a.filestack.push(E)):(a.filestack.push(E),setTimeout(t(e+1),100),void a.raise("fileloaded",[E,T,e,l])):(b=a.msgInvalidFileExtension.replace("{name}",k).replace("{extensions}",j),void(a.isError=h(b,E,T,e)))}this.reader=new FileReader;var a=this,n=a.$element,r=a.$preview,l=a.reader,o=a.$previewContainer,s=a.$previewStatus,d=a.msgLoading,c=a.msgProgress,p=a.previewInitId,u=i.length,f=a.fileTypeSettings,v=a.filestack.length,h=function(t,n,r,l){var o=e.extend(a.getOutData({},{},i),{id:r,index:l}),s={id:r,index:l,file:n,files:i};return a.previewDefault(n,r,!0),a.isUploadable?a.showUploadError(t,o):a.showError(t,s)};t(0),a.updateFileDetails(u,!1)},updateFileDetails:function(e){var i=this,a=i.$element,n=i.getFileStack(),r=a.val()||n.length&&n[0].name||"",l=i.slug(r),o=i.isUploadable?n.length:e,s=t.count(i.id)+o,d=o>1?i.getMsgSelected(s):l;i.isError?(i.$previewContainer.removeClass("loading"),i.$previewStatus.html(""),i.$captionContainer.find(".kv-caption-icon").hide()):i.showFileIcon(),i.setCaption(d,i.isError),i.$container.removeClass("file-input-new file-input-ajax-new"),1===arguments.length&&i.raise("fileselect",[e,l]),t.count(i.id)&&i.initPreviewDeletes()},change:function(i){var a=this,n=a.$element;if(!a.isUploadable&&R(n.val())&&a.fileInputCleared)return void(a.fileInputCleared=!1);a.fileInputCleared=!1;var r,l,o,s,d=a.$preview,c=arguments.length>1,p=c?i.originalEvent.dataTransfer.files:n.get(0).files,u=R(n.attr("multiple")),f=0,v=0,h=a.filestack.length,m=a.isUploadable,g=function(i,t,n,r){var l=e.extend(a.getOutData({},{},p),{id:n,index:r}),o={id:n,index:r,file:t,files:p};return a.isUploadable?a.showUploadError(i,l):a.showError(i,o)};if(a.reader=null,a.resetUpload(),a.hideFileIcon(),a.isUploadable&&a.$container.find(".file-drop-zone ."+a.dropZoneTitleClass).remove(),c)for(r=[];p[f];)s=p[f],s.type||s.size%4096!==0?r.push(s):v++,f++;else r=void 0===i.target.files?i.target&&i.target.value?[{name:i.target.value.replace(/^.+\\/,"")}]:[]:i.target.files;if(R(r)||0===r.length)return m||a.clear(),a.showFolderError(v),void a.raise("fileselectnone");if(a.resetErrors(),o=a.isUploadable?a.getFileStack().length+r.length:r.length,a.maxFileCount>0&&o>a.maxFileCount)return l=a.msgFilesTooMany.replace("{m}",a.maxFileCount).replace("{n}",o),a.isError=g(l,null,null,null),a.$captionContainer.find(".kv-caption-icon").hide(),a.setCaption("",!0),a.setEllipsis(),void a.$container.removeClass("file-input-new file-input-ajax-new");if(!m||u&&h>0){if(a.hasInitialPreview()){var w=t.out(a.id);d.html(w.content),a.setCaption(w.caption),a.initPreviewDeletes()}else a.clearPreview();u&&h>0&&(a.filestack=[])}else!m||0!==h||t.count(a.id)&&!a.overwriteInitial||(a.clearPreview(),a.filestack=[]);a.isPreviewable?a.readFiles(r):a.updateFileDetails(1),a.showFolderError(v)},validateImage:function(e,i){var t,a,n,r,l=this,o=l.$preview,s=o.find("#"+i),d="Untitled",c=s.find("img");c.length&&c.on("load",function(){a=s.width(),n=o.width(),a>n&&(c.css("width","100%"),s.css("width","97%")),r=c.closest(".file-preview-frame").find(".file-caption-name"),r.length&&(r.width(c.width()),d=r.text(),r.attr("title",d)),t={ind:e,id:i},l.checkDimensions(e,"Small",c,s,d,"Width",t),l.checkDimensions(e,"Small",c,s,d,"Height",t),l.checkDimensions(e,"Large",c,s,d,"Width",t),l.checkDimensions(e,"Large",c,s,d,"Height",t),l.raise("fileimageloaded",[i]),W.revokeObjectURL(c.attr("src"))})},checkDimensions:function(e,i,t,a,n,r,l){var o,s,d,c,p=this,u="Small"===i?"min":"max",f=p[u+"Image"+r];!R(f)&&t.length&&(d=t[0],s="Width"===r?d.naturalWidth||d.width:d.naturalHeight||d.height,c="Small"===i?s>=f:f>=s,c||(o=p["msgImage"+r+i].replace("{name}",n).replace("{size}",f),p.showUploadError(o,l),p.setThumbStatus(a,"Error"),p.filestack[e]=null))},initCaption:function(){var e=this,i=e.initialCaption||"";return e.overwriteInitial||R(i)?(e.$caption.html(""),!1):(e.setCaption(i),!0)},setCaption:function(i,t){var a,n,r=this;if(t)a=e("
    "+r.msgValidationError+"
    ").text(),n=''+r.msgValidationErrorIcon+a+"";else{if(R(i)||0===r.$caption.length)return;a=e("
    "+i+"
    ").text(),n=r.getLayoutTemplate("icon")+a}r.$caption.html(n),r.$caption.attr("title",a),r.$captionContainer.find(".file-caption-ellipsis").attr("title",a),r.setEllipsis()},initBrowse:function(e){var i=this;i.$btnFile=e.find(".btn-file"),i.$btnFile.append(i.$element)},createContainer:function(){var i=this,t=e(document.createElement("span")).attr({"class":"file-input file-input-new"}).html(i.renderMain());return i.$element.before(t),i.initBrowse(t),t},refreshContainer:function(){var e=this,i=e.$container;i.before(e.$element),i.html(e.renderMain()),e.initBrowse(i)},renderMain:function(){var e=this,i=e.isUploadable&&e.dropZoneEnabled?" file-drop-zone":"",t=e.showPreview?e.getLayoutTemplate("preview").repl("{class}",e.previewClass).repl("{dropClass}",i):"",a=e.isDisabled?e.captionClass+" file-caption-disabled":e.captionClass,n=e.captionTemplate.repl("{class}",a+" kv-fileinput-caption");return e.mainTemplate.repl("{class}",e.mainClass).repl("{preview}",t).repl("{caption}",n).repl("{upload}",e.renderUpload()).repl("{remove}",e.renderRemove()).repl("{cancel}",e.renderCancel()).repl("{browse}",e.renderBrowse())},renderBrowse:function(){var e=this,i=e.browseClass+" btn-file",t="";return e.isDisabled&&(t=" disabled "),'
    "+e.browseIcon+e.browseLabel+"
    "},renderRemove:function(){var e=this,i=e.removeClass+" fileinput-remove fileinput-remove-button",t="";return e.showRemove?(e.isDisabled&&(t=" disabled "),'"):""},renderCancel:function(){var e=this,i=e.cancelClass+" fileinput-cancel fileinput-cancel-button";return e.showCancel?'":""},renderUpload:function(){var e=this,i=e.uploadClass+" kv-fileinput-upload fileinput-upload-button",t="",a="";return e.showUpload?(e.isDisabled&&(a=" disabled "),t=!e.isUploadable||e.isDisabled?'":'"+e.uploadIcon+e.uploadLabel+""):""}},e.fn.fileinput=function(t){if(n()||i(9)){var a=Array.apply(null,arguments);return a.shift(),this.each(function(){var i,n=e(this),r=n.data("fileinput"),l="object"==typeof t&&t,o=l.language||n.data("language")||"en";r||(i=e.extend({},e.fn.fileinput.defaults),"en"===o||R(e.fn.fileinputLocales[o])||(i=e.extend(i,e.fn.fileinputLocales[o])),r=new _(this,e.extend(i,l,n.data())),n.data("fileinput",r)),"string"==typeof t&&r[t].apply(r,a)})}},e.fn.fileinput.defaults={language:"en",showCaption:!0,showPreview:!0,showRemove:!0,showUpload:!0,showCancel:!0,showUploadedThumbs:!0,mainClass:"",previewClass:"",captionClass:"",mainTemplate:null,initialCaption:"",initialPreview:[],initialPreviewDelimiter:"*$$*",initialPreviewConfig:[],initialPreviewThumbTags:[],previewThumbTags:{},initialPreviewShowDelete:!0,deleteUrl:"",deleteExtraData:{},overwriteInitial:!0,layoutTemplates:U,previewTemplates:j,allowedPreviewTypes:A,allowedPreviewMimeTypes:null,allowedFileTypes:null,allowedFileExtensions:null,customLayoutTags:{},customPreviewTags:{},previewSettings:L,fileTypeSettings:O,previewFileIcon:'',browseIcon:'  ',browseClass:"btn btn-primary",removeIcon:' ',removeClass:"btn btn-default",cancelIcon:' ',cancelClass:"btn btn-default",uploadIcon:' ',uploadClass:"btn btn-default",uploadUrl:null,uploadAsync:!0,uploadExtraData:{},minImageWidth:null,minImageHeight:null,maxImageWidth:null,maxImageHeight:null,maxFileSize:0,minFileCount:0,maxFileCount:0,msgValidationErrorClass:"text-danger",msgValidationErrorIcon:' ',msgErrorClass:"file-error-message",progressClass:"progress-bar progress-bar-success progress-bar-striped active",progressCompleteClass:"progress-bar progress-bar-success",previewFileType:"image",wrapTextLength:250,wrapIndicator:' […]',elCaptionContainer:null,elCaptionText:null,elPreviewContainer:null,elPreviewImage:null,elPreviewStatus:null,elErrorContainer:null,slugCallback:null,dropZoneEnabled:!0,dropZoneTitleClass:"file-drop-zone-title",fileActionSettings:{},otherActionButtons:"",textEncoding:"UTF-8",ajaxSettings:{},ajaxDeleteSettings:{},showAjaxErrorDetails:!0},e.fn.fileinputLocales.en={fileSingle:"file",filePlural:"files",browseLabel:"Browse …",removeLabel:"Remove",removeTitle:"Clear selected files",cancelLabel:"Cancel",cancelTitle:"Abort ongoing upload",uploadLabel:"Upload",uploadTitle:"Upload selected files",msgSizeTooLarge:'File "{name}" ({size} KB) exceeds maximum allowed upload size of {maxSize} KB. Please retry your upload!',msgFilesTooLess:"You must select at least {n} {files} to upload. Please retry your upload!",msgFilesTooMany:"Number of files selected for upload ({n}) exceeds maximum allowed limit of {m}. Please retry your upload!",msgFileNotFound:'File "{name}" not found!',msgFileSecured:'Security restrictions prevent reading the file "{name}".',msgFileNotReadable:'File "{name}" is not readable.',msgFilePreviewAborted:'File preview aborted for "{name}".',msgFilePreviewError:'An error occurred while reading the file "{name}".',msgInvalidFileType:'Invalid type for file "{name}". Only "{types}" files are supported.',msgInvalidFileExtension:'Invalid extension for file "{name}". Only "{extensions}" files are supported.',msgValidationError:"File Upload Error",msgLoading:"Loading file {index} of {files} …",msgProgress:"Loading file {index} of {files} - {name} - {percent}% completed.",msgSelected:"{n} {files} selected",msgFoldersNotAllowed:"Drag & drop files only! {n} folder(s) dropped were skipped.",msgImageWidthSmall:'Width of image file "{name}" must be at least {size} px.',msgImageHeightSmall:'Height of image file "{name}" must be at least {size} px.',msgImageWidthLarge:'Width of image file "{name}" cannot exceed {size} px.',msgImageHeightLarge:'Height of image file "{name}" cannot exceed {size} px.',dropZoneTitle:"Drag & drop files here …"},e.extend(e.fn.fileinput.defaults,e.fn.fileinputLocales.en),e.fn.fileinput.Constructor=_,e(document).ready(function(){var i=e("input.file[type=file]");i.length&&i.fileinput()})}(window.jQuery); \ No newline at end of file diff --git a/portal-common/src/main/webapp/common/thirdparty/bootstrap-fileinput/js/fileinput_locale_LANG.js b/portal-common/src/main/webapp/common/thirdparty/bootstrap-fileinput/js/fileinput_locale_LANG.js deleted file mode 100644 index 492d8c4d..00000000 --- a/portal-common/src/main/webapp/common/thirdparty/bootstrap-fileinput/js/fileinput_locale_LANG.js +++ /dev/null @@ -1,45 +0,0 @@ -/*! - * FileInput <_LANG_> Translations - * - * This file must be loaded after 'fileinput.js'. Patterns in braces '{}', or - * any HTML markup tags in the messages must not be converted or translated. - * - * @see http://github.com/kartik-v/bootstrap-fileinput - * - * NOTE: this file must be saved in UTF-8 encoding. - */ -(function ($) { - "use strict"; - - $.fn.fileinputLocales['_LANG_'] = { - fileSingle: 'file', - filePlural: 'files', - browseLabel: 'Browse …', - removeLabel: 'Remove', - removeTitle: 'Clear selected files', - cancelLabel: 'Cancel', - cancelTitle: 'Abort ongoing upload', - uploadLabel: 'Upload', - uploadTitle: 'Upload selected files', - msgSizeTooLarge: 'File "{name}" ({size} KB) exceeds maximum allowed upload size of {maxSize} KB. Please retry your upload!', - msgFilesTooLess: 'You must select at least {n} {files} to upload. Please retry your upload!', - msgFilesTooMany: 'Number of files selected for upload ({n}) exceeds maximum allowed limit of {m}. Please retry your upload!', - msgFileNotFound: 'File "{name}" not found!', - msgFileSecured: 'Security restrictions prevent reading the file "{name}".', - msgFileNotReadable: 'File "{name}" is not readable.', - msgFilePreviewAborted: 'File preview aborted for "{name}".', - msgFilePreviewError: 'An error occurred while reading the file "{name}".', - msgInvalidFileType: 'Invalid type for file "{name}". Only "{types}" files are supported.', - msgInvalidFileExtension: 'Invalid extension for file "{name}". Only "{extensions}" files are supported.', - msgValidationError: 'File Upload Error', - msgLoading: 'Loading file {index} of {files} …', - msgProgress: 'Loading file {index} of {files} - {name} - {percent}% completed.', - msgSelected: '{n} {files} selected', - msgFoldersNotAllowed: 'Drag & drop files only! Skipped {n} dropped folder(s).', - msgImageWidthSmall: 'Width of image file "{name}" must be at least {size} px.', - msgImageHeightSmall: 'Height of image file "{name}" must be at least {size} px.', - msgImageWidthLarge: 'Width of image file "{name}" cannot exceed {size} px.', - msgImageHeightLarge: 'Height of image file "{name}" cannot exceed {size} px.', - dropZoneTitle: 'Drag & drop files here …' - }; -})(window.jQuery); \ No newline at end of file diff --git a/portal-common/src/main/webapp/common/thirdparty/bootstrap-fileinput/js/fileinput_locale_zh.js b/portal-common/src/main/webapp/common/thirdparty/bootstrap-fileinput/js/fileinput_locale_zh.js deleted file mode 100644 index 12d83710..00000000 --- a/portal-common/src/main/webapp/common/thirdparty/bootstrap-fileinput/js/fileinput_locale_zh.js +++ /dev/null @@ -1,49 +0,0 @@ -/*! - * FileInput Chinese Translations - * - * This file must be loaded after 'fileinput.js'. Patterns in braces '{}', or - * any HTML markup tags in the messages must not be converted or translated. - * - * @see http://github.com/kartik-v/bootstrap-fileinput - * @author kangqf - * - * NOTE: this file must be saved in UTF-8 encoding. - */ -(function ($) { - "use strict"; - - $.fn.fileinputLocales['zh'] = { - fileSingle: '文件', - filePlural: '多个文件', - browseLabel: '选择 …', - removeLabel: '移除', - removeTitle: '清除选中文件', - cancelLabel: '取消', - cancelTitle: '取消进行中的上传', - uploadLabel: '上传', - uploadTitle: '上传选中文件', - msgSizeTooLarge: '文件 "{name}" ({size} KB) 超过了允许大小 {maxSize} KB. 请重新上传!', - msgFilesTooLess: '你必须选择最少 {n} {files} 来上传. 请重新上传!', - msgFilesTooMany: '选择的上传文件个数 ({n}) 超出最大文件的限制个数 {m}. 请重新上传!', - msgFileNotFound: '文件 "{name}" 未找到!', - msgFileSecured: '安全限制,为了防止读取文件 "{name}".', - msgFileNotReadable: '文件 "{name}" 不可读.', - msgFilePreviewAborted: '取消 "{name}" 的预览.', - msgFilePreviewError: '读取 "{name}" 时出现了一个错误.', - msgInvalidFileType: '不正确的类型 "{name}". 只支持 "{types}" 类型的文件.', - msgInvalidFileExtension: '不正确的文件扩展名 "{name}". 只支持 "{extensions}" 的文件扩展名.', - msgValidationError: '文件上传错误', - msgLoading: '加载第 {index} 文件 共 {files} …', - msgProgress: '加载第 {index} 文件 共 {files} - {name} - {percent}% 完成.', - msgSelected: '{n} {files} 选中', - msgFoldersNotAllowed: '只支持拖拽文件! 跳过 {n} 拖拽的文件夹.', - msgImageWidthSmall: '宽度的图像文件的"{name}"的必须是至少{size}像素.', - msgImageHeightSmall: '图像文件的"{name}"的高度必须至少为{size}像素.', - msgImageWidthLarge: '宽度的图像文件"{name}"不能超过{size}像素.', - msgImageHeightLarge: '图像文件"{name}"的高度不能超过{size}像素.', - dropZoneTitle: '拖拽文件到这里 …', - slugCallback: function(text) { - return text ? text.split(/(\\|\/)/g).pop().replace(/[^\w\u4e00-\u9fa5\-.\\\/ ]+/g, '') : ''; - } - }; -})(window.jQuery); \ No newline at end of file diff --git a/portal-common/src/main/webapp/common/thirdparty/bootstrap-growl/bootstrap-growl.min.js b/portal-common/src/main/webapp/common/thirdparty/bootstrap-growl/bootstrap-growl.min.js deleted file mode 100644 index 40642941..00000000 --- a/portal-common/src/main/webapp/common/thirdparty/bootstrap-growl/bootstrap-growl.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/* Project: Bootstrap Growl - v2.0.0 | Author: Mouse0270 aka Robert McIntosh | License: MIT License | Website: https://github.com/mouse0270/bootstrap-growl */ -(function(e,t,n,r){var i="growl",s="plugin_"+i,o={element:"body",type:"info",allow_dismiss:true,placement:{from:"top",align:"right"},offset:20,spacing:10,z_index:1031,delay:5e3,timer:1e3,url_target:"_blank",mouse_over:false,animate:{enter:"animated fadeInDown",exit:"animated fadeOutUp"},icon_type:"class",template:''};var u=function(t,n){o=e.extend(true,{},o,n)},a=function(t,n,r){var n={content:{message:typeof n=="object"?n.message:n,title:n.title?n.title:null,icon:n.icon?n.icon:null,url:n.url?n.url:null}};r=e.extend(true,{},n,r);this.settings=e.extend(true,{},o,r);plugin=this;f(r,this.settings,plugin);this.$template=$template},f=function(t,n,r){var i={settings:n,$element:e(n.element),template:n.template};$template=l(i);c($template,i.settings);h($template,i.settings);p($template,i.settings,r)},l=function(t){var n=e(t.settings.template);n.addClass("alert-"+t.settings.type);n.attr("data-growl-position",t.settings.placement.from+"-"+t.settings.placement.align);n.find('[data-growl="dismiss"]').css("display","none");if(t.settings.allow_dismiss){n.find('[data-growl="dismiss"]').css("display","inline-block")}return n},c=function(e,t){e.find('[data-growl="dismiss"]').css({position:"absolute",top:"5px",right:"10px","z-index":t.z_index-1>=1?t.z_index-1:1});if(t.content.icon){if(t.icon_type.toLowerCase()=="class"){e.find('[data-growl="icon"]').addClass(t.content.icon)}else{if(e.find('[data-growl="icon"]').is("img")){e.find('[data-growl="icon"]').attr("src",t.content.icon)}else{e.find('[data-growl="icon"]').append('')}}}if(t.content.title){e.find('[data-growl="title"]').html(t.content.title)}if(t.content.message){e.find('[data-growl="message"]').html(t.content.message)}if(t.content.url){e.find('[data-growl="url"]').attr("href",t.content.url).attr("target",t.url_target);e.find('[data-growl="url"]').css({position:"absolute",top:"0px",left:"0px",width:"100%",height:"100%","z-index":t.z_index-2>=1?t.z_index-2:1})}},h=function(t,n){var r=n.offset,i={position:n.element==="body"?"fixed":"absolute",margin:0,"z-index":n.z_index,display:"inline-block"};e('[data-growl-position="'+n.placement.from+"-"+n.placement.align+'"]').each(function(){return r=Math.max(r,parseInt(e(this).css(n.placement.from))+e(this).outerHeight()+n.spacing)});i[n.placement.from]=r+"px";t.css(i);e(n.element).append(t);switch(n.placement.align){case"center":t.css({left:"50%",marginLeft:-(t.outerWidth()/2)+"px"});break;case"left":t.css("left",n.offset+"px");break;case"right":t.css("right",n.offset+"px");break}t.addClass("growl-animated")},p=function(e,t,n){e.addClass(t.animate.enter);e.find('[data-growl="dismiss"]').on("click",function(){n.close()});e.on("mouseover",function(t){e.addClass("hovering")}).on("mouseout",function(){e.removeClass("hovering")});if(t.delay>=1){e.data("growl-delay",t.delay);var r=setInterval(function(){var i=parseInt(e.data("growl-delay"))-t.timer;console.log();if(!e.hasClass("hovering")&&t.mouse_over=="pause"||t.mouse_over!="pause"){e.data("growl-delay",i)}if(i<=0){clearInterval(r);n.close()}},t.timer)}};a.prototype={update:function(e,t){switch(e){case"icon":if(this.settings.icon_type.toLowerCase()=="class"){this.$template.find('[data-growl="icon"]').removeClass(this.settings.content.icon);this.$template.find('[data-growl="icon"]').addClass(t)}else{if(this.$template.find('[data-growl="icon"]').is("img")){this.$template.find('[data-growl="icon"]')}else{this.$template.find('[data-growl="icon"]').find("img").attr().attr("src",t)}}break;case"url":this.$template.find('[data-growl="url"]').attr("href",t);break;case"type":this.$template.removeClass("alert-"+this.settings.type);this.$template.addClass("alert-"+t);break;default:this.$template.find('[data-growl="'+e+'"]').html(t)}return this},close:function(){var t=this.$template,n=this.settings,r=t.css(n.placement.from),i=false;t.addClass(this.settings.animate.exit);t.nextAll('[data-growl-position="'+this.settings.placement.from+"-"+this.settings.placement.align+'"]').each(function(){e(this).css(n.placement.from,r);r=parseInt(r)+n.spacing+e(this).outerHeight()});t.one("webkitAnimationStart oanimationstart MSAnimationStart animationstart",function(e){i=true});t.one("webkitAnimationEnd oanimationend MSAnimationEnd animationend",function(t){e(this).remove()});setTimeout(function(){console.log(i);if(!i){t.remove()}},100);return this}};e.growl=function(e,t){if(e==false){u(this,t);return false}var n=new a(this,e,t);return n}})(jQuery,window,document) \ No newline at end of file diff --git a/portal-common/src/main/webapp/common/thirdparty/bootstrap-growl/jquery.bootstrap-growl.min.js b/portal-common/src/main/webapp/common/thirdparty/bootstrap-growl/jquery.bootstrap-growl.min.js deleted file mode 100644 index 0936670e..00000000 --- a/portal-common/src/main/webapp/common/thirdparty/bootstrap-growl/jquery.bootstrap-growl.min.js +++ /dev/null @@ -1 +0,0 @@ -(function(){var c;c=jQuery;c.bootstrapGrowl=function(f,a){var b,e,d;a=c.extend({},c.bootstrapGrowl.default_options,a);b=c("
    ");b.attr("class","bootstrap-growl alert");a.type&&b.addClass("alert-"+a.type);a.allow_dismiss&&(b.addClass("alert-dismissible"),b.append(''));b.append(f);a.top_offset&&(a.offset={from:"top",amount:a.top_offset});d=a.offset.amount;c(".bootstrap-growl").each(function(){return d= Math.max(d,parseInt(c(this).css(a.offset.from))+c(this).outerHeight()+a.stackup_spacing)});e={position:"body"===a.ele?"fixed":"absolute",margin:0,"z-index":"9999",display:"none"};e[a.offset.from]=d+"px";b.css(e);"auto"!==a.width&&b.css("width",a.width+"px");c(a.ele).append(b);switch(a.align){case "center":b.css({left:"50%","margin-left":"-"+b.outerWidth()/2+"px"});break;case "left":b.css("left","20px");break;default:b.css("right","20px")}b.fadeIn();0 - - - -``` - -## Usage - -Just like in Bootstrap you can activate it without any JavaScript, just by adding a data-attribute, you can make it automatically work. - -Add `data-hover="dropdown"` in addition (or in place of) Bootstrap's `data-toggle="dropdown"`. - -You can set options via data-attributes, too, via `data-delay` and `data-close-others`. Here's an example of markup: - -```html - -``` - -Alternatively, you can initialize via JavaScript: - -```javascript -$('.dropdown-toggle').dropdownHover(options); -``` - -This also works with submenus without any other configuring since Bootstrap already supports this feature. Just use the markup like you were using before. Only the top level anchor tag needs any special markup for my plugin to work (see demo for proper markup). - -## Options - -* **delay**: *(optional)* The delay in miliseconds. This is the time to wait before closing a dropdown when the mouse is no longer over the dropdown or the button/nav item that activated it. Defaults to `500`. -* **instantlyCloseOthers**: *(optional)* A boolean value that when true, will instantly close all other dropdowns matched by the selector used when you activate a new navigation. This is nice for when you have dropdowns close together that may overlap. Default is `true`. - -## Demo - -You can view a demo for this plugin on my site: http://cameronspear.com/demos/bootstrap-hover-dropdown/ - -### A Note on Choosing a Selector - -This plugin purposedly lets you choose a selector (as opposed to apply this to everything with the class of `.dropdown-toggle`). This is so that you can selectively apply it where you want. Maybe you only want to use it for the main nav, and not have it activate for dropdown buttons in the main content. You can add a class to the item that normally gets `.dropdown-toggle` and use that class with this plugin to easily achieve that, or use a selector such as `.main-nav .dropdown-toggle`. - -**Important:** Bootstrap relies on styles associated with the class `.dropdown-toggle` (for stuff like the caret color), and it is recommended you leave that class alone. - -## Changes/Bug Fixes - -I'm a slacker and only started keeping track of changes/bug fixes starting in March of 2013. - -* **2014-01-27** Fixed an issue where chaining could break on mobile and cleaned up the the way the plugin triggered events. Also cleaned up the demo (fixed navbar appearance). -* **2013-12-05** Change all references of *Twitter Bootstrap* to *Bootstrap* to reflect Bootstrap's name change. -* **2013-11-09** Disable this plugin for devices that support touch. The plugin was causing issues with some mobile devices, and it's not necessary for them. -* **2013-08-02** Add support for Bootstrap 3. For Bootstrap 2.x.x, use the `bootstrap-2.x.x` branch. -* **2013-06-10** Always instantly close submenu siblings when opening a new one. Issue #19. -* **2013-06-10** A fix for my last fix that would sometimes cause the correct item to not trigger when it should. Issue #18. -* **2013-05-08** Fix issue where a sibling could open a drop down that wasn't theirs. Issue #18. -* **2013-04-29** Added support for submenus: Submenus should now honor the delay option and way before closing. They do not abide by the `instantlyCloseOthers` option, as it's not really relevant. -* **2013-04-19** Fixed an issue where the conditional rule to disable hover on mobile wasn't working if you included the script in the header. -* **2013-04-03** Made it so if you're using the responsive CSS and in tablet/mobile view, disable the hover. -* **2013-03-16** Fixed an issue where the options you passed in via the method call were completely ignored. - -## Contributions - -[Mattia Larentis](https://github.com/nostalgiaz) helped me with the idea for the data-attributes and doing the options via an object. - -## Roadmap - -As this plugin, in its simplicity, is pretty much exactly what I intend it to be, I don't plan to implement any new features. ~~**One exception:** I would like to tweak it so that when you're in a submenu, it doesn't instantly close when you hover outside of it.~~ **Update:** I added this in late April 2013. - -If you have ideas for a new feature or something along those lines, you're welcome to share them with me, but I am not likely to implement it/merge your pull without a very compelling reason. You are absolutely free to create a fork and implement the feature yourself for your and others' use. - -This, of course, does not speak for bugs. If you have a bug, please bring it to my attention, and I will try and fix it. Note that 93.7% of people's issues are caused by incorrect markup, so please double check that first. - -## Me - -Follow me on Twitter: [@CWSpear](https://twitter.com/CWSpear) or check out my [blog](http://cameronspear.com/blog/). diff --git a/portal-common/src/main/webapp/common/thirdparty/bootstrap-hover-dropdown/bootstrap-hover-dropdown.js b/portal-common/src/main/webapp/common/thirdparty/bootstrap-hover-dropdown/bootstrap-hover-dropdown.js deleted file mode 100644 index 55c5aa21..00000000 --- a/portal-common/src/main/webapp/common/thirdparty/bootstrap-hover-dropdown/bootstrap-hover-dropdown.js +++ /dev/null @@ -1,14 +0,0 @@ -/** - * Project: Bootstrap Hover Dropdown - * Author: Cameron Spear - * Contributors: Mattia Larentis - * - * Dependencies: Bootstrap's Dropdown plugin, jQuery - * - * A simple plugin to enable Bootstrap dropdowns to active on hover and provide a nice user experience. - * - * License: MIT - * - * http://cameronspear.com/blog/bootstrap-dropdown-on-hover-plugin/ - */ -!function(e,n){var o=e();e.fn.dropdownHover=function(t){return"ontouchstart"in document?this:(o=o.add(this.parent()),this.each(function(){var i,r=e(this),s=r.parent(),d={delay:500,instantlyCloseOthers:!0},a={delay:e(this).data("delay"),instantlyCloseOthers:e(this).data("close-others")},h="show.bs.dropdown",u="hide.bs.dropdown",l=e.extend(!0,{},d,t,a);s.hover(function(e){return s.hasClass("open")||r.is(e.target)?(o.find(":focus").blur(),l.instantlyCloseOthers===!0&&o.removeClass("open"),n.clearTimeout(i),s.addClass("open"),void r.trigger(h)):!0},function(){i=n.setTimeout(function(){s.removeClass("open"),r.trigger(u)},l.delay)}),r.hover(function(){o.find(":focus").blur(),l.instantlyCloseOthers===!0&&o.removeClass("open"),n.clearTimeout(i),s.addClass("open"),r.trigger(h)}),s.find(".dropdown-submenu").each(function(){var o,t=e(this);t.hover(function(){n.clearTimeout(o),t.children(".dropdown-menu").show(),t.siblings().children(".dropdown-menu").hide()},function(){var e=t.children(".dropdown-menu");o=n.setTimeout(function(){e.hide()},l.delay)})})}))},e(document).ready(function(){e('[data-hover="dropdown"]').not(".hover-initialized").each(function(){e(this).dropdownHover(),e(this).addClass("hover-initialized")})})}(jQuery,this); diff --git a/portal-common/src/main/webapp/common/thirdparty/bootstrap-hover-dropdown/bootstrap-hover-dropdown.min.js b/portal-common/src/main/webapp/common/thirdparty/bootstrap-hover-dropdown/bootstrap-hover-dropdown.min.js deleted file mode 100644 index 25757af5..00000000 --- a/portal-common/src/main/webapp/common/thirdparty/bootstrap-hover-dropdown/bootstrap-hover-dropdown.min.js +++ /dev/null @@ -1,13 +0,0 @@ -/** - * Project: Bootstrap Hover Dropdown - * Author: Cameron Spear - * Contributors: Mattia Larentis - * - * Dependencies: Bootstrap's Dropdown plugin, jQuery - * - * A simple plugin to enable Bootstrap dropdowns to active on hover and provide a nice user experience. - * - * License: MIT - * - * http://cameronspear.com/blog/bootstrap-dropdown-on-hover-plugin/ - */(function(b,a,c){var d=b();b.fn.dropdownHover=function(e){if("ontouchstart" in document){return this}d=d.add(this.parent());return this.each(function(){var m=b(this),l=m.parent(),k={delay:500,instantlyCloseOthers:true},i={delay:b(this).data("delay"),instantlyCloseOthers:b(this).data("close-others")},f="show.bs.dropdown",j="hide.bs.dropdown",g=b.extend(true,{},k,e,i),h;l.hover(function(n){if(!l.hasClass("open")&&!m.is(n.target)){return true}d.find(":focus").blur();if(g.instantlyCloseOthers===true){d.removeClass("open")}a.clearTimeout(h);l.addClass("open");m.trigger(f)},function(){h=a.setTimeout(function(){l.removeClass("open");m.trigger(j)},g.delay)});m.hover(function(){d.find(":focus").blur();if(g.instantlyCloseOthers===true){d.removeClass("open")}a.clearTimeout(h);l.addClass("open");m.trigger(f)});l.find(".dropdown-submenu").each(function(){var o=b(this);var n;o.hover(function(){a.clearTimeout(n);o.children(".dropdown-menu").show();o.siblings().children(".dropdown-menu").hide()},function(){var p=o.children(".dropdown-menu");n=a.setTimeout(function(){p.hide()},g.delay)})})})};b(document).ready(function(){b('[data-hover="dropdown"]').dropdownHover()})})(jQuery,this); \ No newline at end of file diff --git a/portal-common/src/main/webapp/common/thirdparty/bootstrap-modal/css/bootstrap-modal-bs3patch.css b/portal-common/src/main/webapp/common/thirdparty/bootstrap-modal/css/bootstrap-modal-bs3patch.css deleted file mode 100644 index 9939f3ce..00000000 --- a/portal-common/src/main/webapp/common/thirdparty/bootstrap-modal/css/bootstrap-modal-bs3patch.css +++ /dev/null @@ -1,51 +0,0 @@ -/*! - * Bootstrap Modal - * - * Copyright Jordan Schroter - * Licensed under the Apache License v2.0 - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Boostrap 3 patch for for bootstrap-modal. Include BEFORE bootstrap-modal.css! - */ - -body.modal-open, -.modal-open .navbar-fixed-top, -.modal-open .navbar-fixed-bottom { - margin-right: 0; -} - -.modal { - left: 50%; - bottom: auto; - right: auto; - z-index: 1050; - padding: 0; - width: 600px; - margin-left: -300px; - background-color: #ffffff; - border: 1px solid #999999; - border: 1px solid rgba(0, 0, 0, 0.2); - border-radius: 6px; - -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); - box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); - background-clip: padding-box; -} - -.modal.container { - max-width: none; -} - -.modal-backdrop { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1040; -} - -.modal.bootbox { - border: none; - background: none; - box-shadow: none; -} \ No newline at end of file diff --git a/portal-common/src/main/webapp/common/thirdparty/bootstrap-modal/css/bootstrap-modal.css b/portal-common/src/main/webapp/common/thirdparty/bootstrap-modal/css/bootstrap-modal.css deleted file mode 100644 index bc62761a..00000000 --- a/portal-common/src/main/webapp/common/thirdparty/bootstrap-modal/css/bootstrap-modal.css +++ /dev/null @@ -1,214 +0,0 @@ -/*! - * Bootstrap Modal - * - * Copyright Jordan Schroter - * Licensed under the Apache License v2.0 - * http://www.apache.org/licenses/LICENSE-2.0 - * - */ - -.modal-open { - overflow: hidden; -} - - -/* add a scroll bar to stop page from jerking around */ -.modal-open.page-overflow .page-container, -.modal-open.page-overflow .page-container .navbar-fixed-top, -.modal-open.page-overflow .page-container .navbar-fixed-bottom, -.modal-open.page-overflow .modal-scrollable { - overflow-y: scroll; -} - -@media (max-width: 979px) { - .modal-open.page-overflow .page-container .navbar-fixed-top, - .modal-open.page-overflow .page-container .navbar-fixed-bottom { - overflow-y: visible; - } -} - - -.modal-scrollable { - position: fixed; - top: 0; - bottom: 0; - left: 0; - right: 0; - overflow: auto; -} - -.modal { - outline: none; - position: absolute; - margin-top: 0; - top: 50%; - overflow: visible; /* allow content to popup out (i.e tooltips) */ -} - -.modal.fade { - top: -100%; - -webkit-transition: opacity 0.3s linear, top 0.3s ease-out, bottom 0.3s ease-out, margin-top 0.3s ease-out; - -moz-transition: opacity 0.3s linear, top 0.3s ease-out, bottom 0.3s ease-out, margin-top 0.3s ease-out; - -o-transition: opacity 0.3s linear, top 0.3s ease-out, bottom 0.3s ease-out, margin-top 0.3s ease-out; - transition: opacity 0.3s linear, top 0.3s ease-out, bottom 0.3s ease-out, margin-top 0.3s ease-out; -} - -.modal.fade.in { - top: 50%; -} - -.modal-body { - max-height: none; - overflow: visible; -} - -.modal.modal-absolute { - position: absolute; - z-index: 950; -} - -.modal .loading-mask { - position: absolute; - top: 0; - bottom: 0; - left: 0; - right: 0; - background: #fff; - border-radius: 6px; -} - -.modal-backdrop.modal-absolute{ - position: absolute; - z-index: 940; -} - -.modal-backdrop, -.modal-backdrop.fade.in{ - opacity: 0.7; - filter: alpha(opacity=70); - background: #fff; -} - -.modal.container { - width: 940px; - margin-left: -470px; -} - -/* Modal Overflow */ - -.modal-overflow.modal { - top: 5%; -} - -.modal-overflow.modal.fade { - top: -100%; -} - -.modal-overflow.modal.fade.in { - top: 5%; -} - -.modal-overflow .modal-body { - overflow: auto; - -webkit-overflow-scrolling: touch; -} - -/* Responsive */ - -@media (min-width: 1200px) { - .modal.container { - width: 1170px; - margin-left: -585px; - } -} - -@media (max-width: 979px) { - .modal, - .modal.container, - .modal.modal-overflow { - top: 1%; - right: 1%; - left: 1%; - bottom: auto; - width: auto !important; - height: auto !important; - margin: 0 !important; - padding: 0 !important; - } - - .modal.fade.in, - .modal.container.fade.in, - .modal.modal-overflow.fade.in { - top: 1%; - bottom: auto; - } - - .modal-body, - .modal-overflow .modal-body { - position: static; - margin: 0; - height: auto !important; - max-height: none !important; - overflow: visible !important; - } - - .modal-footer, - .modal-overflow .modal-footer { - position: static; - } -} - -.loading-spinner { - position: absolute; - top: 50%; - left: 50%; - margin: -12px 0 0 -12px; -} - -/* -Animate.css - http://daneden.me/animate -Licensed under the ☺ license (http://licence.visualidiot.com/) - -Copyright (c) 2012 Dan Eden*/ - -.animated { - -webkit-animation-duration: 1s; - -moz-animation-duration: 1s; - -o-animation-duration: 1s; - animation-duration: 1s; - -webkit-animation-fill-mode: both; - -moz-animation-fill-mode: both; - -o-animation-fill-mode: both; - animation-fill-mode: both; -} - -@-webkit-keyframes shake { - 0%, 100% {-webkit-transform: translateX(0);} - 10%, 30%, 50%, 70%, 90% {-webkit-transform: translateX(-10px);} - 20%, 40%, 60%, 80% {-webkit-transform: translateX(10px);} -} - -@-moz-keyframes shake { - 0%, 100% {-moz-transform: translateX(0);} - 10%, 30%, 50%, 70%, 90% {-moz-transform: translateX(-10px);} - 20%, 40%, 60%, 80% {-moz-transform: translateX(10px);} -} - -@-o-keyframes shake { - 0%, 100% {-o-transform: translateX(0);} - 10%, 30%, 50%, 70%, 90% {-o-transform: translateX(-10px);} - 20%, 40%, 60%, 80% {-o-transform: translateX(10px);} -} - -@keyframes shake { - 0%, 100% {transform: translateX(0);} - 10%, 30%, 50%, 70%, 90% {transform: translateX(-10px);} - 20%, 40%, 60%, 80% {transform: translateX(10px);} -} - -.shake { - -webkit-animation-name: shake; - -moz-animation-name: shake; - -o-animation-name: shake; - animation-name: shake; -} diff --git a/portal-common/src/main/webapp/common/thirdparty/bootstrap-modal/img/ajax-loader.gif b/portal-common/src/main/webapp/common/thirdparty/bootstrap-modal/img/ajax-loader.gif deleted file mode 100644 index 4e651edc478b3db7ad5758bdb912e890e884aaf7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1737 zcmaLXeN0pL8o=>mVSNFFR?eYHw^G0X@>)6Uoc8qfwB-~EmKV=JuoeomNbTCui!i-L z=kN3!r(^bLoJMDK8l%x|IKbKHm<(nhIwM!-)#&x=G)AK_8jR7aG1oiqb^nq3{Q1k1 zUp~nzkUI+-`SAN5_T@8zv_wD=RBEZ{Ga)@#E>~>GS8$@7uR891gEtyY}qavsbTP z^>{osn{EI8{U=YJT(f4)_U+s6-MhDE&mN=E$Z_1!qeml=$m!Fk{eC||5Tm1`M~)n! zC<@2%hYuek@#4kHmoGnf@L*zMV#kghhYlSY931TH>pOVxU@#aA1OiT{GZu@POeVcvKQc0c zVc5XHKwVv(#bRk`X^BRojg5_3t+v0vzq-1*x3_oW#*I67?u7oF%-4y|a(c0qtSv7s zR>#fy<301=>DI8<)8p+>^>y_uS9$!NPXZxNM{!rs7lJZh#7h$X*eZPU!<&eZ=!;Jw zz(iP9k-eaZW5w^z&o2fTfwKvT@4a780&ukfV+6uEN)ChJ?ND4|YCmK!89;oJY!Ee@ zz&o?yK}c5)gvrPtP8xwIC2bJ4=zv%#A2eERKq8%+!RZRpC`L9aDHH#}` zFzs;XyCU}Z+OODBHbI!p1DvU-svCv~48&I(PEr)eU37XFMu6N&4ijy^LX}eSFl`=# zO!E44u0&w_31~~pDkTI_Qr@cgjUjUy3Y#+=Ru9e7+DiYo(yb6Tz(9goGXXcg1xgZ9 zyM*pS0S8${Rl=0y*-8EYt8sTOuR{=P{fZY{Kaku17HRcbV;I4}8NN}LFibJ_4>Cv^$JKBNg0W_6p4CF?%q7=3 zN}>q=OEu?c^AF~kbkVmuQ=U@l%naB$NGliR&g)$2cRE-yyCR^V43=dnHF}25Db;Yk zmTDc)HstY8MN%Aa6iQ;U6^$U^BVzEJ4?!p}$yMl+jO9Q~Dp<@>RO5m~JF(jpGgq-A& zWZ|$t9kcej0U{aYSBB#N)@J%Ut87{zU{D%HnS$KEBqp#Jr6xdeutyvVYEbp~01W+&U*-=m_&?a36sMhwFQDo6g^Oz(TyI~{Rn!!o ztLMq=uEeDC+pbQ3^ZVB`CjRVgV%%WT8Fg7|4kBoqL_k_Jby+NilprXCBf7jwb3|<* zID3Wz0XX_CU*{u-Fdo2*^o~W)G9?fe|I7;(=77?C_eiry1{BFIIj487`3f|z zDEg!wM$#HqyEUx1W>vU1ImQ21>y&q1iZEGK(Ryx)YNocI{}0FE1ce|J#xWR5!EH91 zfz9CvxLgM_') - .append(this.options.spinner) - .appendTo(this.$element); - - if (doAnimate) this.$loading[0].offsetWidth; // force reflow - - this.$loading.addClass('in'); - - this.isLoading = true; - - doAnimate ? - this.$loading.one($.support.transition.end, callback) : - callback(); - - } else if (this.isLoading && this.$loading) { - this.$loading.removeClass('in'); - - var that = this; - $.support.transition && this.$element.hasClass('fade')? - this.$loading.one($.support.transition.end, function () { that.removeLoading() }) : - that.removeLoading(); - - } else if (callback) { - callback(this.isLoading); - } - }, - - focus: function () { - var $focusElem = this.$element.find(this.options.focusOn); - - $focusElem = $focusElem.length ? $focusElem : this.$element; - - $focusElem.focus(); - }, - - attention: function (){ - // NOTE: transitionEnd with keyframes causes odd behaviour - - if (this.options.attentionAnimation){ - this.$element - .removeClass('animated') - .removeClass(this.options.attentionAnimation); - - var that = this; - - setTimeout(function () { - that.$element - .addClass('animated') - .addClass(that.options.attentionAnimation); - }, 0); - } - - - this.focus(); - }, - - - destroy: function () { - var e = $.Event('destroy'); - - this.$element.trigger(e); - - if (e.isDefaultPrevented()) return; - - this.$element - .off('.modal') - .removeData('modal') - .removeClass('in') - .attr('aria-hidden', true); - - if (this.$parent !== this.$element.parent()) { - this.$element.appendTo(this.$parent); - } else if (!this.$parent.length) { - // modal is not part of the DOM so remove it. - this.$element.remove(); - this.$element = null; - } - - this.$element.trigger('destroyed'); - } - }; - - - /* MODAL PLUGIN DEFINITION - * ======================= */ - - $.fn.modal = function (option, args) { - return this.each(function () { - var $this = $(this), - data = $this.data('modal'), - options = $.extend({}, $.fn.modal.defaults, $this.data(), typeof option == 'object' && option); - - if (!data) $this.data('modal', (data = new Modal(this, options))); - if (typeof option == 'string') data[option].apply(data, [].concat(args)); - else if (options.show) data.show() - }) - }; - - $.fn.modal.defaults = { - keyboard: true, - backdrop: true, - loading: false, - show: true, - width: null, - height: null, - maxHeight: null, - modalOverflow: false, - consumeTab: true, - focusOn: null, - replace: false, - resize: false, - attentionAnimation: 'shake', - manager: 'body', - spinner: '
    ', - backdropTemplate: '

    ZW5YPqv)#O%WoHXVT0DAt$-RVe8Hsd~5-B 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%0D)ru9!n*aB{iMY3oULApn{No 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 SrLP^_=F~RW|hd}Sj;Na8?T%5#@ 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 diff --git a/portal-common/src/main/webapp/common/image/page_left_disabled.png b/portal-common/src/main/webapp/common/image/page_left_disabled.png deleted file mode 100644 index f72a90bd13da22d357075bc1f7ac3198d6f9aa7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1066 zcmaJ=O-vI(6kc0V3L%1^Mx$i1Bqsi}yW3Jq7s^k&tu)dGOB0%SVY@rP26kuN9c;l% zk;GIuNYDd`iNVMX<=}xB6+zR3-X!s0j9xr?;b2VQVw^1$JXrUz^JemW-}~O1H+TEu zS8A%xR8bUF6YUWaWUaK~$|L0e;2qOSmeV+#!u@CnXG8;1-7-o;5LLxtn1G@@apMDQ zrzks6k|~^u_3{!@U803?WmTQ9DXP6QtBcYo#2^ia6)iw-y;`S%A_wRJZ;XxUAvmJ+ zOd7C%GMPoQv}``+UC3z|C?j!@3#H?c{vC$IY`W*!yUb&5(!qgb>-wMRoyt1Y@0N zm`o<)%6MGJ7-l%X-*0KS-A;mVniCopvrf%yDk%uilnh133ete3D5lXk4$#EuZV9Ts zFRPh*Z6Xb0vZBs#F4iik1dPT04^`EDw22e&!0$hW&E$j*nFKV^xFL~?8)~vr>3qn5 zB1T3Mp|MgI`$iB(<_OY3sNV|)6ir4Mvxttx_^4)LQIlX)2+)M@QWTlzIA3d!ZEg-W zhrApY_OuGDFB0KexNxY&8+M0FTmebrD%5a^D<5#ZWx3WMs5;3kKts6+<%oe)P%M~N z%6oB_)!XCB<-K^yav5TVv99&6Yc3s;*|Ea?p(UIBv4NauQwWw3oF6F+kXJy;8QXH diff --git a/portal-common/src/main/webapp/common/image/page_r.png b/portal-common/src/main/webapp/common/image/page_r.png deleted file mode 100644 index 2e637eeeef78aca25cdd9e4bd0efeab6697ce0a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1070 zcmaJ=Pe>F|7$4gbHLdMXks&^2g$}tpGyBJJr`_CjX4Qd4WL)`ImiZ0S2>QWS40zv2&B!p3sM2ETrA$aK`bP^;w^hRCn&^Cv8-+TOizwh^b?|ZjL zh6meP+FK}!YLkbgELoepxT%r+@4sPs$#M>7@^}r~ zf}(uD$mMZfxgu!D45=O_R5oqGrl>?;*;chFh(Q5P8dj42`D&F0hMuIyVhXF+A}kt1 z^9~%HAI@p>Q(9c7`!0h-Ss(%?#40G8)0Qiglk~2xKw|Hhp}{T$PbKL+Q+Z_sh{%B; z7Gi@M+rxq$F2qHmJkNK7Fw3zF8)mq0kmH3&SYTPO|Is9yqfZD~X<$DW*(K>B#Vu61#wh%j=C$OhtQ42&6;j!Nz>T2Tbqah-X)0xtK>mElcjX7{H>tp zw>K6ll_wpGfrXubuYLT;=B3oSZ|!C!-}I=;q_!Hrwq?8SEK^5c`&Lf+SE)^3s=KmG zJ%8W1*qJ^pKfOp*u8(B+$__hpD)9MiYo5B`-)Nj$XujKZ-p^DYo_SZzI5GbV-%8Nm z2h)++4*$o772lV^*6yLDYmXa_E#11erRXxR%MY5brq)~6KBa!2`2Ln^Xrz9$g2b=w QUeSBOa%Nas?jNuI0U88PGynhq diff --git a/portal-common/src/main/webapp/common/image/portlet-collapse-icon-white.png b/portal-common/src/main/webapp/common/image/portlet-collapse-icon-white.png deleted file mode 100644 index a415159f18616cbd40c3ca6ba99c9c163755e072..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 240 zcmeAS@N?(olHy`uVBq!ia0vp^d_XL~!3HGNrubO_DajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MUy;T978H@J(=Xl)u15Yy7n?lP^`-<7TI;qTUVIHE?6Lz z$MuFgUSMNW*~AZGeeX~6%#uhxGJEPD1r32Yj_gbJK4J7M-zLp!X3+3RE#$(+bwx*| zWD=NCRYE?!S)l#rFjs~_)1B4N*JN5L@$A|res1E#KGUbWH%6}6&@^vN;tQ=8x9(X6 oix$7Tw~KSnl&J)*JORe4o+16{}9>FVdQ&MBb@05T|A9RL6T diff --git a/portal-common/src/main/webapp/common/image/portlet-collapse-icon.png b/portal-common/src/main/webapp/common/image/portlet-collapse-icon.png deleted file mode 100644 index 5f4901f1c38d7012f6492a95f9d908c48dd9de04..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 269 zcmeAS@N?(olHy`uVBq!ia0vp^d_XL~!3HGNrubO_DajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9Me99X978H@CH?vT-=5jBp|jD)pv7d^0j3IDKPvP_H&}>uOl_zT7I>X}aS8v_;HFh~ znLa;uQ{ZDtGE|6TKC;VWR>{JoqySUti_Gc5SLPpb*u&Iex}btJM2BY;n~+6@ACsju zU&r)AK5VQk0`AUFKe(}Pnm;wM?obDxj3P%-kkFL}zBfb+_~yFs2_!I_D^^M^_~XC{ PbUK5ltDnm{r-UW|{4`uQ diff --git a/portal-common/src/main/webapp/common/image/portlet-config-icon-white.png b/portal-common/src/main/webapp/common/image/portlet-config-icon-white.png deleted file mode 100644 index 2f3a27211307ce19690d9628ea217f4545508417..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 320 zcmV-G0l)rk7RCwBy(!Z-gVHm*ia}FhC!7ZDO zB#XhHpcG{_P>ixDb-QKokJ#kTkj-fDYrl6?*FvbH&iy{OM@g@v^VVlM=lS)%J+|k0 zR*>UZ0Z-WHUkn9Auz>q6;R7usaKzGYq!c=6BKT5AC95> ze?kTgtt?}FA!-V~CrIl9&gjB^6)fbHR#@wsPvN_bQcYH%jE#Dm5NKQf1Q-CmE9SV` SUg6;Y00008}+ diff --git a/portal-common/src/main/webapp/common/image/portlet-config-icon.png b/portal-common/src/main/webapp/common/image/portlet-config-icon.png deleted file mode 100644 index f0451215541c96a4b7103ce661fe4bfc696c1bbe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 330 zcmeAS@N?(olHy`uVBq!ia0vp^JU}eK!3HFi66di4DajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MQ=P^978H@CH?vT-=0~sp|jEDz^1adQ87g}4r`c?ym6@E z>8NiuePHOr(vjR4!O>yQ{L!+;Pl)}Ii$Wh`l4Xi`;$}yI4()|q<&1@r0{7>mM&99tQc))x_D&TB&V+EfXubhJnP}-!$;fvymm){$Hh*fQB7T95(sk=-j~E(cM_VCh*uNL4kLA!w(~Y_w0|B{s2nOX`fZas%cTkzopr0IV)|>i_@% diff --git a/portal-common/src/main/webapp/common/image/portlet-expand-icon-white.png b/portal-common/src/main/webapp/common/image/portlet-expand-icon-white.png deleted file mode 100644 index f2ecf78ab7450039c8f05f57acb094204abe1666..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 239 zcmeAS@N?(olHy`uVBq!ia0vp^d_XL~!3HGNrubO_DajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MH4+;978H@J(=Xl)u15Yy7e+kV4TYD~N#yfdI#R;K2@&Bh6A+7c(c-WtB( z<$mGlSCwTY`b9a?py|`1=~v#AzPXUI<2*}9O3l%Gj_Wxd=N@R#D%3eRZ((?K;xoCU m&Kdz1tWV4TxfDSr z1<%~X^wgl##FWaylc_d9MTZ<3l#+74+)n}Uy$XHC2rK$u!Tz?fuV7c)=%m9*hrvj89ZJ6T-G@yGywop C7+FvN diff --git a/portal-common/src/main/webapp/common/image/portlet-reload-icon-white.png b/portal-common/src/main/webapp/common/image/portlet-reload-icon-white.png deleted file mode 100644 index a14730b8b13ee598b89a0890f73485c5e45ecf6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 324 zcmV-K0lWT*P)0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUy=1D|BRCwCF(mx9UaU93--yIefgH39!O%*Gbe-K~}XTW*FiC3$f>$3g{z+9x~EX&D|?wf}EkJBu1#Y{rRZl>^xS- z)+g;S_Gux4HsZR^*y>^SrSBFtSmTDg74(;fgM?O?qKMF!XRCV73td#0OT#Dh>fH_P zRg5Bm!G}N%X&tiH&s7^+EKt%U7)?e+fsUra3mv^vHs+)=YknA`?la&n>u*zj7hnJ{ WI9NhaXm_9h0000 diff --git a/portal-common/src/main/webapp/common/image/portlet-reload-icon.png b/portal-common/src/main/webapp/common/image/portlet-reload-icon.png deleted file mode 100644 index bdb0f08e28e8c623471d3f7e272c1f13f1138788..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 345 zcmV-f0jB0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUy`$lVXQ7&mp@t{|aSsqz zfM^z|4ImBkfu?OlbIA@62C4zMU^5U40P$5OsFUtv(ExKcE0C&zY5)OkCaCp0@%Xy{ zh;IV%4Iusv#O91-1v$`q7E(1au359@1~k-~f%qiQZ+~(4%>zi~1LZwIe)0>rDZ*y0b3tF^Ec@f9j}8;JJ-u{BT;w#e-Sr3#p)7eH(R r#IK-nmX9SF^}#fN1A=a;93a2|-uPG|G^l7-00000NkvXXu0mjf1!jiB diff --git a/portal-common/src/main/webapp/common/image/portlet-remove-icon-white.png b/portal-common/src/main/webapp/common/image/portlet-remove-icon-white.png deleted file mode 100644 index ddc6d2c17d90ac8dbed6b84d68cff957fd5e8cd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 260 zcmeAS@N?(olHy`uVBq!ia0vp^+(0bA!3HD`>}{8U}fi7AzZCsS>Jik5l0IEGZ*O8WEvzdiHDhR#M7hfR-C6y~uU$+5Vy!SU&2 z$%Z^2r@mo_+><(;9dcUsoJStEaWy#T&N>ve!op*o^lTT=DeI`1sDJ*f>xvCgG&+s0000< KMNUMnLSTa6_ diff --git a/portal-common/src/main/webapp/common/image/remove-icon-small.png b/portal-common/src/main/webapp/common/image/remove-icon-small.png deleted file mode 100644 index 382bb24182eb101e306034de7db2455d91285cd6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 193 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/NS.svg b/portal-common/src/main/webapp/common/image/ressvgs/NS.svg deleted file mode 100644 index 83c648bb..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/NS.svg +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/VDU.svg b/portal-common/src/main/webapp/common/image/ressvgs/VDU.svg deleted file mode 100644 index c4de7eda..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/VDU.svg +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/VIM.svg b/portal-common/src/main/webapp/common/image/ressvgs/VIM.svg deleted file mode 100644 index 32cda6f0..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/VIM.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/VNF.svg b/portal-common/src/main/webapp/common/image/ressvgs/VNF.svg deleted file mode 100644 index 0651d649..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/VNF.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/VNFC.svg b/portal-common/src/main/webapp/common/image/ressvgs/VNFC.svg deleted file mode 100644 index e20a53b6..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/VNFC.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/VNFM.svg b/portal-common/src/main/webapp/common/image/ressvgs/VNFM.svg deleted file mode 100644 index 3c8d9788..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/VNFM.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/breakLink.svg b/portal-common/src/main/webapp/common/image/ressvgs/breakLink.svg deleted file mode 100644 index 121bab33..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/breakLink.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/common_dc.svg b/portal-common/src/main/webapp/common/image/ressvgs/common_dc.svg deleted file mode 100644 index e1e6041c..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/common_dc.svg +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/common_ncd.svg b/portal-common/src/main/webapp/common/image/ressvgs/common_ncd.svg deleted file mode 100644 index 306d25ae..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/common_ncd.svg +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/common_sc.svg b/portal-common/src/main/webapp/common/image/ressvgs/common_sc.svg deleted file mode 100644 index d44eca4f..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/common_sc.svg +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/host.svg b/portal-common/src/main/webapp/common/image/ressvgs/host.svg deleted file mode 100644 index 67ddc915..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/host.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-Virtual network.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-Virtual network.svg deleted file mode 100644 index 769f80ba..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-Virtual network.svg +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-app-bind.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-app-bind.svg deleted file mode 100644 index 188e15c7..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-app-bind.svg +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-app-dns.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-app-dns.svg deleted file mode 100644 index 5983dcdd..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-app-dns.svg +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-app-ems.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-app-ems.svg deleted file mode 100644 index 2ffaf40c..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-app-ems.svg +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-app-mediator.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-app-mediator.svg deleted file mode 100644 index cf48e03b..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-app-mediator.svg +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - ME - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-app-netnumen.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-app-netnumen.svg deleted file mode 100644 index 34aeb5d8..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-app-netnumen.svg +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-app-ntp.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-app-ntp.svg deleted file mode 100644 index 379ce5a3..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-app-ntp.svg +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-app-ota.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-app-ota.svg deleted file mode 100644 index a2b18fc4..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-app-ota.svg +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-app-tomcat.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-app-tomcat.svg deleted file mode 100644 index ca672889..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-app-tomcat.svg +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - image/svg+xml - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-app-trend.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-app-trend.svg deleted file mode 100644 index e939b4a5..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-app-trend.svg +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-app-tsm.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-app-tsm.svg deleted file mode 100644 index 5a910ee6..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-app-tsm.svg +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-app-weblogic.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-app-weblogic.svg deleted file mode 100644 index 4bc81632..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-app-weblogic.svg +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-app.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-app.svg deleted file mode 100644 index b399b36f..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-app.svg +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-cluster-hacmp.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-cluster-hacmp.svg deleted file mode 100644 index 68a5ad63..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-cluster-hacmp.svg +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - - image/svg+xml - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-cluster-nec.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-cluster-nec.svg deleted file mode 100644 index 4236655e..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-cluster-nec.svg +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - - - - - - image/svg+xml - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-cluster-ns.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-cluster-ns.svg deleted file mode 100644 index f6d602b4..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-cluster-ns.svg +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-cluster-sg.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-cluster-sg.svg deleted file mode 100644 index 54400322..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-cluster-sg.svg +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-cluster-vcs.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-cluster-vcs.svg deleted file mode 100644 index dfec65ee..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-cluster-vcs.svg +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-cluster.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-cluster.svg deleted file mode 100644 index 29e8c256..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-cluster.svg +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-database-mssql.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-database-mssql.svg deleted file mode 100644 index aa9da92e..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-database-mssql.svg +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-database-oracle.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-database-oracle.svg deleted file mode 100644 index 99d5a5b3..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-database-oracle.svg +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-database-sybase.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-database-sybase.svg deleted file mode 100644 index 2fd9aacc..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-database-sybase.svg +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-database-sybaseiq.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-database-sybaseiq.svg deleted file mode 100644 index e9712b38..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-database-sybaseiq.svg +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-database.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-database.svg deleted file mode 100644 index 7329d5e0..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-database.svg +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-dellmd.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-dellmd.svg deleted file mode 100644 index 0db5029d..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-dellmd.svg +++ /dev/null @@ -1,199 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-emc.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-emc.svg deleted file mode 100644 index c57296df..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-emc.svg +++ /dev/null @@ -1,198 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-eternus.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-eternus.svg deleted file mode 100644 index 505fc65c..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-eternus.svg +++ /dev/null @@ -1,195 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-fujitsu.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-fujitsu.svg deleted file mode 100644 index 56a23abe..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-fujitsu.svg +++ /dev/null @@ -1,215 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-hds.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-hds.svg deleted file mode 100644 index 60c2e56a..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-hds.svg +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-hpaio.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-hpaio.svg deleted file mode 100644 index aa2c67b8..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-hpaio.svg +++ /dev/null @@ -1,203 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-hpeva.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-hpeva.svg deleted file mode 100644 index b9e6ae6e..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-hpeva.svg +++ /dev/null @@ -1,207 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-hpmsa.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-hpmsa.svg deleted file mode 100644 index 8b3a7bd9..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-hpmsa.svg +++ /dev/null @@ -1,203 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-ibm.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-ibm.svg deleted file mode 100644 index 12f6627c..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-ibm.svg +++ /dev/null @@ -1,203 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-ibmsm.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-ibmsm.svg deleted file mode 100644 index a8a113aa..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-ibmsm.svg +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-macrosan.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-macrosan.svg deleted file mode 100644 index 3dbf3b02..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-macrosan.svg +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-netapp.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-netapp.svg deleted file mode 100644 index bfe8c830..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-netapp.svg +++ /dev/null @@ -1,146 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-sun.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-sun.svg deleted file mode 100644 index 71b49c78..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-sun.svg +++ /dev/null @@ -1,146 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-zte.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-zte.svg deleted file mode 100644 index fe382335..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-zte.svg +++ /dev/null @@ -1,146 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-checkpoint.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-checkpoint.svg deleted file mode 100644 index fe5000e0..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-checkpoint.svg +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-cisco.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-cisco.svg deleted file mode 100644 index 601e923b..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-cisco.svg +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-cisco2.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-cisco2.svg deleted file mode 100644 index de7c0afd..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-cisco2.svg +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-h3c.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-h3c.svg deleted file mode 100644 index 5887e351..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-h3c.svg +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-juniper.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-juniper.svg deleted file mode 100644 index c223be01..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-juniper.svg +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-neteye.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-neteye.svg deleted file mode 100644 index 84186ec5..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-neteye.svg +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-zte.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-zte.svg deleted file mode 100644 index 4e11ceb7..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-zte.svg +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-ztemf.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-ztemf.svg deleted file mode 100644 index 6559b484..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-ztemf.svg +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-zteutm.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-zteutm.svg deleted file mode 100644 index 24f5288e..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-zteutm.svg +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-firewall.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-firewall.svg deleted file mode 100644 index daac742b..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-firewall.svg +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-gather.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-gather.svg deleted file mode 100644 index cbff7f40..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-gather.svg +++ /dev/null @@ -1,295 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-group-dev.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-group-dev.svg deleted file mode 100644 index 67a5784f..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-group-dev.svg +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-ibp-ibp2000.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-ibp-ibp2000.svg deleted file mode 100644 index 71f0dfeb..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-ibp-ibp2000.svg +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 2000 - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-ibp.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-ibp.svg deleted file mode 100644 index ce6cd3bc..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-ibp.svg +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-net.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-net.svg deleted file mode 100644 index 28c2e906..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-net.svg +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-other-alteon.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-other-alteon.svg deleted file mode 100644 index 14c35424..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-other-alteon.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-other-appdirector.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-other-appdirector.svg deleted file mode 100644 index e634b00d..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-other-appdirector.svg +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-other-atca-lb10.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-other-atca-lb10.svg deleted file mode 100644 index 61027b02..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-other-atca-lb10.svg +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-other-cisco-ucs.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-other-cisco-ucs.svg deleted file mode 100644 index c2659b8a..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-other-cisco-ucs.svg +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-other-dcs.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-other-dcs.svg deleted file mode 100644 index 1b855b01..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-other-dcs.svg +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-other-delta.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-other-delta.svg deleted file mode 100644 index 4be4ec00..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-other-delta.svg +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-other-dp.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-other-dp.svg deleted file mode 100644 index d95470c5..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-other-dp.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-other-f5bigip.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-other-f5bigip.svg deleted file mode 100644 index 70c371d1..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-other-f5bigip.svg +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-other-f5bigip2.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-other-f5bigip2.svg deleted file mode 100644 index 5713d8e7..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-other-f5bigip2.svg +++ /dev/null @@ -1,161 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-other-gbe2c.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-other-gbe2c.svg deleted file mode 100644 index 03dd3c58..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-other-gbe2c.svg +++ /dev/null @@ -1,166 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-other-hpblc.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-other-hpblc.svg deleted file mode 100644 index 66ff6674..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-other-hpblc.svg +++ /dev/null @@ -1,174 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-other-ibm-blade.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-other-ibm-blade.svg deleted file mode 100644 index 60d28fd2..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-other-ibm-blade.svg +++ /dev/null @@ -1,156 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-other-imm.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-other-imm.svg deleted file mode 100644 index 7b26f5b1..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-other-imm.svg +++ /dev/null @@ -1,160 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-other-secfox.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-other-secfox.svg deleted file mode 100644 index b0cbd540..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-other-secfox.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-other-secsis.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-other-secsis.svg deleted file mode 100644 index 00756e97..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-other-secsis.svg +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-other-segw.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-other-segw.svg deleted file mode 100644 index 0bc8c10e..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-other-segw.svg +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-other-vc.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-other-vc.svg deleted file mode 100644 index 7a42c2b5..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-other-vc.svg +++ /dev/null @@ -1,173 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-other-zteatca.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-other-zteatca.svg deleted file mode 100644 index b22a6976..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-other-zteatca.svg +++ /dev/null @@ -1,191 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-other-zteips.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-other-zteips.svg deleted file mode 100644 index 511411c5..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-other-zteips.svg +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-other-ztepower.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-other-ztepower.svg deleted file mode 100644 index 4c168e48..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-other-ztepower.svg +++ /dev/null @@ -1,223 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-other-ztesgs.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-other-ztesgs.svg deleted file mode 100644 index 9e0add21..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-other-ztesgs.svg +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-other-zxsdr-nt.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-other-zxsdr-nt.svg deleted file mode 100644 index 96ffa125..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-other-zxsdr-nt.svg +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-other.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-other.svg deleted file mode 100644 index ccdf1532..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-other.svg +++ /dev/null @@ -1,110 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-router-cisco.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-router-cisco.svg deleted file mode 100644 index 7b3ea331..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-router-cisco.svg +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-router-juniper.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-router-juniper.svg deleted file mode 100644 index 3094bafa..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-router-juniper.svg +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-router-zte.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-router-zte.svg deleted file mode 100644 index 8c23c762..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-router-zte.svg +++ /dev/null @@ -1,178 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-router.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-router.svg deleted file mode 100644 index 4a604382..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-router.svg +++ /dev/null @@ -1,175 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-sdn-controller.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-sdn-controller.svg deleted file mode 100644 index eeaf68ec..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-sdn-controller.svg +++ /dev/null @@ -1,176 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-sdn-host.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-sdn-host.svg deleted file mode 100644 index 5577c282..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-sdn-host.svg +++ /dev/null @@ -1,167 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-sdn-switch.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-sdn-switch.svg deleted file mode 100644 index da541ba3..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-sdn-switch.svg +++ /dev/null @@ -1,167 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-sdn-vnet.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-sdn-vnet.svg deleted file mode 100644 index ba73c4b6..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-sdn-vnet.svg +++ /dev/null @@ -1,167 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-server-aix.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-server-aix.svg deleted file mode 100644 index facb8b3d..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-server-aix.svg +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-server-hpux.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-server-hpux.svg deleted file mode 100644 index 5c669aaf..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-server-hpux.svg +++ /dev/null @@ -1,181 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-server-klinux.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-server-klinux.svg deleted file mode 100644 index 4e8098fe..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-server-klinux.svg +++ /dev/null @@ -1,191 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-server-redhat.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-server-redhat.svg deleted file mode 100644 index ed3eb1b4..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-server-redhat.svg +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-server-solaris.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-server-solaris.svg deleted file mode 100644 index ba66a1fa..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-server-solaris.svg +++ /dev/null @@ -1,173 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-server-suse.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-server-suse.svg deleted file mode 100644 index c8fcd18a..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-server-suse.svg +++ /dev/null @@ -1,185 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-server-windows.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-server-windows.svg deleted file mode 100644 index 967d48e2..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-server-windows.svg +++ /dev/null @@ -1,176 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-server-zxve.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-server-zxve.svg deleted file mode 100644 index be1011b3..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-server-zxve.svg +++ /dev/null @@ -1,179 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-server.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-server.svg deleted file mode 100644 index 314edb3b..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-server.svg +++ /dev/null @@ -1,195 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-storage-cisco-mds.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-storage-cisco-mds.svg deleted file mode 100644 index b7fee602..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-storage-cisco-mds.svg +++ /dev/null @@ -1,177 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-storage-md3000.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-storage-md3000.svg deleted file mode 100644 index 8b345f61..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-storage-md3000.svg +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-storage-netvault.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-storage-netvault.svg deleted file mode 100644 index 1c99075d..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-storage-netvault.svg +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-storage-ops.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-storage-ops.svg deleted file mode 100644 index 07f9642b..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-storage-ops.svg +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-storage-sanswitch-brocade.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-storage-sanswitch-brocade.svg deleted file mode 100644 index e3bb47d0..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-storage-sanswitch-brocade.svg +++ /dev/null @@ -1,187 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-storage-sanswitch-hp.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-storage-sanswitch-hp.svg deleted file mode 100644 index 8833e25d..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-storage-sanswitch-hp.svg +++ /dev/null @@ -1,187 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-storage-sanswitch-zte.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-storage-sanswitch-zte.svg deleted file mode 100644 index b5765c61..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-storage-sanswitch-zte.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-storage.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-storage.svg deleted file mode 100644 index 05cd4779..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-storage.svg +++ /dev/null @@ -1,183 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-switch-at.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-switch-at.svg deleted file mode 100644 index 6df9f224..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-switch-at.svg +++ /dev/null @@ -1,201 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-switch-cisco.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-switch-cisco.svg deleted file mode 100644 index aacd00cb..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-switch-cisco.svg +++ /dev/null @@ -1,176 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-switch-h3c.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-switch-h3c.svg deleted file mode 100644 index c0eb9459..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-switch-h3c.svg +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-switch-juniper.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-switch-juniper.svg deleted file mode 100644 index 87b950cd..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-switch-juniper.svg +++ /dev/null @@ -1,176 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-switch-zte.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-switch-zte.svg deleted file mode 100644 index e64ea626..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-switch-zte.svg +++ /dev/null @@ -1,177 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-switch.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-switch.svg deleted file mode 100644 index d24b524a..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-switch.svg +++ /dev/null @@ -1,182 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-tapelib-hpmsl.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-tapelib-hpmsl.svg deleted file mode 100644 index ef15e7d2..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-tapelib-hpmsl.svg +++ /dev/null @@ -1,176 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-tapelib-ibmts.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-tapelib-ibmts.svg deleted file mode 100644 index c771f701..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-tapelib-ibmts.svg +++ /dev/null @@ -1,183 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it-tapelib-sunts.svg b/portal-common/src/main/webapp/common/image/ressvgs/it-tapelib-sunts.svg deleted file mode 100644 index 7478e4a8..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it-tapelib-sunts.svg +++ /dev/null @@ -1,196 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/it.svg b/portal-common/src/main/webapp/common/image/ressvgs/it.svg deleted file mode 100644 index a1fa9f74..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/it.svg +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/networkTree.svg b/portal-common/src/main/webapp/common/image/ressvgs/networkTree.svg deleted file mode 100644 index 44739fec..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/networkTree.svg +++ /dev/null @@ -1,349 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/new.svg b/portal-common/src/main/webapp/common/image/ressvgs/new.svg deleted file mode 100644 index b02def09..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/new.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/popupmenufollower.svg b/portal-common/src/main/webapp/common/image/ressvgs/popupmenufollower.svg deleted file mode 100644 index b285c884..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/popupmenufollower.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/resourceType.svg b/portal-common/src/main/webapp/common/image/ressvgs/resourceType.svg deleted file mode 100644 index 4caf88a0..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/resourceType.svg +++ /dev/null @@ -1,211 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/stop.svg b/portal-common/src/main/webapp/common/image/ressvgs/stop.svg deleted file mode 100644 index 4938127a..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/stop.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/tree-icon.svg b/portal-common/src/main/webapp/common/image/ressvgs/tree-icon.svg deleted file mode 100644 index a6fcc03f..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/tree-icon.svg +++ /dev/null @@ -1,291 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/uep-moc-root.svg b/portal-common/src/main/webapp/common/image/ressvgs/uep-moc-root.svg deleted file mode 100644 index 23a7a739..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/uep-moc-root.svg +++ /dev/null @@ -1,355 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/uep-moc-uca-public.svg b/portal-common/src/main/webapp/common/image/ressvgs/uep-moc-uca-public.svg deleted file mode 100644 index ad51e7f8..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/uep-moc-uca-public.svg +++ /dev/null @@ -1,329 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/uep-topo-commongroup20x20.svg b/portal-common/src/main/webapp/common/image/ressvgs/uep-topo-commongroup20x20.svg deleted file mode 100644 index 2b3b2f4a..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/uep-topo-commongroup20x20.svg +++ /dev/null @@ -1,278 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/uep-topo-group20x20.svg b/portal-common/src/main/webapp/common/image/ressvgs/uep-topo-group20x20.svg deleted file mode 100644 index 5242752a..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/uep-topo-group20x20.svg +++ /dev/null @@ -1,277 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/uep-topo-root.svg b/portal-common/src/main/webapp/common/image/ressvgs/uep-topo-root.svg deleted file mode 100644 index 899d4e11..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/uep-topo-root.svg +++ /dev/null @@ -1,259 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/uep-topo-undefinedgroup20x20.svg b/portal-common/src/main/webapp/common/image/ressvgs/uep-topo-undefinedgroup20x20.svg deleted file mode 100644 index 4c0b3644..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/uep-topo-undefinedgroup20x20.svg +++ /dev/null @@ -1,342 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/uep-topo-virtual20x20.svg b/portal-common/src/main/webapp/common/image/ressvgs/uep-topo-virtual20x20.svg deleted file mode 100644 index 3b25a6b8..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/uep-topo-virtual20x20.svg +++ /dev/null @@ -1,355 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/uep-topo-wsf-disconnected8x8.svg b/portal-common/src/main/webapp/common/image/ressvgs/uep-topo-wsf-disconnected8x8.svg deleted file mode 100644 index 9c93fefd..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/uep-topo-wsf-disconnected8x8.svg +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/usf-amf-try-activate.svg b/portal-common/src/main/webapp/common/image/ressvgs/usf-amf-try-activate.svg deleted file mode 100644 index 0feced33..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/usf-amf-try-activate.svg +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/ressvgs/usf-amf-try-active-wait.svg b/portal-common/src/main/webapp/common/image/ressvgs/usf-amf-try-active-wait.svg deleted file mode 100644 index 28a38f6b..00000000 --- a/portal-common/src/main/webapp/common/image/ressvgs/usf-amf-try-active-wait.svg +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - diff --git a/portal-common/src/main/webapp/common/image/search-icon-blue.png b/portal-common/src/main/webapp/common/image/search-icon-blue.png deleted file mode 100644 index 345c3db083d0240ba15c698ddd70d31389e6a013..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 318 zcmeAS@N?(olHy`uVBq!ia0vp@Ak4uAB#T}@sR2@wC9V-A!TD(=<%vb942~)JNvR5+ zxryniL8*x;m4zo$ZGeg%c)B=-RNPAX^Z&m+Ge^YvT{+B4ni_6!c9=H)uo8IB{HWCZ za!J2|0;AfBHVK8Rd`J2lE#x{X7n*e3=bPHj?6!L5^qd7!L5*tn5*(Nvc%>Y&%ml&@ z<)k!OWy+fIDlmw~vxl;m&lA4#_QwIc6;?acW-R~M_&T7pz*mFGf}!i6&x^3f3>t9> zO_f4YUOW~~`W&nHgq|!o(R$3;DkMpM(qu=o7N(EB2^wmPT=W7GI5p%NBE&kxnLeg# z@IJcEv{CZH0~3+i9E=OtbQMY^I%FHfV${5ZLzGV}Q&KQvVu)(60=h Lu6{1-oD!MSQ755&As8pLmh%A)|rj$|tvsHRk)$v4my z05xdop__=20Dyu^K=A~` zvOv5Lh(AMV5Wg0P&47ldVc19r05xd=sl!0*0JP*X+(tqGsQ4PxMXP~^@DQyLs(BWW zIt#?pKztSk(f}v`&j4+WWgY&%ml&@ z<)k!OWy+fIDlmw~vxl;m&lA4#_QwIc6;?acW-R~M_&T7pz*mFGf}!i6&x^3f3>t9> zO_f4YUOW~~`W&nHgq|!o(R$3;DkMpM(qu=o7N(EB2^wmPT=W7GI5p%NBE&kxnLeg# z@IJcEv{CZH0~3+i9E=OtbQMY^I%FHfV${5ZLzGV}Q&KQvRS2_si8!TX4z{aa!D&3)- zXlCR%cMIQaHi3q&_06lAtI!J2n1LGY}CDR1(+Nz#_u$pu>HHyYYwd z6t<7qjW>8Q3Z%MxTNnbG#U@zs9N}}|))QXJxk@l4SWsX#1B(R1gT4L@0x7+cK)*70 My85}Sb4q9e0H70U7ytkO diff --git a/portal-common/src/main/webapp/common/image/search-icon-white.png b/portal-common/src/main/webapp/common/image/search-icon-white.png deleted file mode 100644 index c7532f4529597172821f273dc3a550fbb6f89ca0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 317 zcmV-D0mA-?P)p21*uqCJp z(jzp%kq`vnaR_t|fg(Zo2sK5v3Q^D;fdiB`;q9i|u!Wa=ne5NonVkumrct7*sv?90 z#9$0+kb^7?!>ejZ)38KH!4s^&fKk>d&#i*8EF&5=c=4_}f?m!)q;jNSDmtdG66kv`7x4%p@N~S%Sz6BTnr-D*MV`wrc P00000NkvXXu0mjfz diff --git a/portal-common/src/main/webapp/common/image/search-icon.png b/portal-common/src/main/webapp/common/image/search-icon.png deleted file mode 100644 index bae1d7303464744b66480453a1b32410054787b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1132 zcmeAS@N?(olHy`uVBq!ia0vp@Ak4uAB#T}@sR2@wC9V-A!TD(=<%vb942~)JNvR5+ zxryniL8*x;m4zo$Z5SAsl`=yjN+NuHtdjF{^%6m9^eS=-fVvqNZ0suv5|gu2OB9k) z(=+pImEP~(ucVNfVyhHx>TBRz;GCL~=}}db8eHWUl3bOYY?-2DZ>L~WVFffGH?<^D zp&~aYuh^=>Rtapb6_5=Q)>l#hD=EpgRf0Gw!Z$#{Ilm}X!Bo#!H`&0@P{GVh&(Orw z%*;?n!N|bSNZ$a6%ybP+tW3?UjLa3FKnZADQA(Oskc%7CE+EfVDWjyMz)D}gyu4hm z+*mKaC|%#s($W%ShLMpjP=#)BWnM{Qg>GK4GRy>*)Z*l#%z~24{5%DaiHS-1r6smX zK$k+ikXryZHm?{OOuzusuShJ=H`Fr#c?qV_*B8Ii++4Wo;*y|LgnO|XTpUtakg6Y) zTAW{6lnjixG-Z%g1y;^Qsfi`|MIrh5Ij~R+$jC3rFV4s>P;d@5Q_u*{%uC5HFV+OB z_w}{%%quQQ%u7!7bg@+enxL1NnPTPa=H%vN;ACKCZs}rZ=xXHT>Sko&yn>bnwy$e0@Is<&})cOFDNPG765H_NiE7OOHFYr%Fk5*d)X=zr&}CdaheC! zn}X9Vj&3;h>H{644~kf%h=vIPQxAv@}APq36;vdWQiV9?sfw~Ftbjrxk) z9~)}}N(+1q{2w!4U-;_5tN@k*29f5O7uFtQ4A^sk<+F;(6p4bCIDrsZl@pE=xqI77 zRvfWYQE$%SV0|?EK!A@+XUu{FLIE}m8+8QqSstAakUFxSHOY9v!AuP^K_&;@D2G=D r0@e(=JA9_7t#F&*>*|ohB#^+cRXZS5;Opi8p#1OY>gTe~DWM4fL=bai diff --git a/portal-common/src/main/webapp/common/image/select-caret.png b/portal-common/src/main/webapp/common/image/select-caret.png deleted file mode 100644 index c24827e3258fd9dd5b16caf1061a387ee3512296..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1027 zcmaJ=&ui0A91knP7!Jf;bixeT#i31_w9RN(Hrl4!3TBM9u;Qs{^18+?d0Fyivif79 zCqco>U>CuYIM9M3+hK<>a0C4V22Mdwiiqy$VWah>Yda6tkmSAh<@5P`f4&FPQxm;C z{XGOh^rk1J3|`OTZ=kyi|EuPQn|L{oQhAhxCFCkLAmSP<0y1qVvmgT$ZE4{h7$JxN zrRVY}FJBc@XwZs}p*_RGY=RgW^DIT31BfhwS=|(=gUv09)HRWsiOM0_N`kUJS+PO3 zGL=&+b81YZ#zx5zPrw2OKnm#@^QI$sBGu3p@ZL8w6xo2FIgvUJDlboyNoWHyN{54L zh-FEhr`br9=h-VH7h*XkgkL_$MuaFYaKmKtp|CewD+w8Cyy**{M5>ICB`}QZy0jan zp*_p6u~^L4;J6@01f3-lDPGWY23raea8z5jkPc1KS5%5{5s4Iz^f(2>YRj5VvrM>P zjHg%(ONacFT0mL;Kh!YVXa{A$Nxc6Qc5+J=U^2jgi?)gzR~qzPSwhkV3W9bH!ueJe zr^^sQrwlDJndQk#GrFlk*BNTyWm!m@4pK}Nq$QEU3bd|k!f+%JNyfS4FqgnpPjRuR z#K!PB#)hMOSmIh-395?*Fj0%Eop7a&Tz?b{3wxG;t=|CJxD5@mk+Pt7jwRkvugTRq z$CBvCWpFTz-`Kwz-7?|n@we@<#fSFb0~1fXjmP?NO?!*4gqxP)Id8vsRIiT(zTaKQ zeSE&Y{o?2QmCHZ&ULO8FxcIuKRQkHQdM=ep-CBP#db@({7TwpEEfk(stF$ul>+@Fq z%l7><>l+&zYimQV?gXxNzuDW}-QC$awfU{42A1nJak+N1{HYLGd3gQ8{65ijnwWX? T>@YFVFZkCootl!WiNd`<6uDKE diff --git a/portal-common/src/main/webapp/common/image/sidebar-menu-arrow-right.png b/portal-common/src/main/webapp/common/image/sidebar-menu-arrow-right.png deleted file mode 100644 index c5a8914cf67bd3e37e0824445b68790038b81625..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 247 zcmeAS@N?(olHy`uVBq!ia0vp^96&6|!3HFGTJyJpI3=zTCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XW_r3fhE&{2`t$$)egS6Y!`5su3@Z}s1dJaXQea|X;?%6* z+r%}WNg%@4gOQ^}An1cwhw2AShQ`tskp>4QMOOKS2q~cS4c4FoKjhc&sC%d{d0?c- z%J<`r0pon-dc)1#k&j%4t3^>bP0l+XkKWUf;6 diff --git a/portal-common/src/main/webapp/common/image/sidebar-menu-arrow-rtl.png b/portal-common/src/main/webapp/common/image/sidebar-menu-arrow-rtl.png deleted file mode 100644 index c5a8914cf67bd3e37e0824445b68790038b81625..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 247 zcmeAS@N?(olHy`uVBq!ia0vp^96&6|!3HFGTJyJpI3=zTCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XW_r3fhE&{2`t$$)egS6Y!`5su3@Z}s1dJaXQea|X;?%6* z+r%}WNg%@4gOQ^}An1cwhw2AShQ`tskp>4QMOOKS2q~cS4c4FoKjhc&sC%d{d0?c- z%J<`r0pon-dc)1#k&j%4t3^>bP0l+XkKWUf;6 diff --git a/portal-common/src/main/webapp/common/image/sidebar-menu-arrow.png b/portal-common/src/main/webapp/common/image/sidebar-menu-arrow.png deleted file mode 100644 index a02299abff2f26b47415ede9706d20f91365c13b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3007 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 Ib4q9e0Qy-p{r~^~ diff --git a/portal-common/src/main/webapp/common/image/sidebar-search-close-purple.png b/portal-common/src/main/webapp/common/image/sidebar-search-close-purple.png deleted file mode 100644 index 72d593bf931018311fe32251f3104fc9ecdeb43d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 163 zcmeAS@N?(olHy`uVBq!ia0vp^+#t-s1|(OmDOUqhk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XTs>VJLn>}1Sp?R8KL7v!e@TwS304-(6PyHkbw0?qJMFOW zVJLn>}1S=9acG5`Pn|HcA`6iN%&6k8RfA|KfEwH6f4 z5xVi?hR?4)pU0s+=RKdy<}nuZFn&~Od~u;;iN$20W(Gz!hNi&$mxrC+-2ocN;OXk; Jvd$@?2>_jhIA{O> diff --git a/portal-common/src/main/webapp/common/image/sidebar-toggler-grey.jpg b/portal-common/src/main/webapp/common/image/sidebar-toggler-grey.jpg deleted file mode 100644 index 83855dd5534572b776e8d057a25416245c6d7ca1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14801 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 Fe*qJ%6a@eP diff --git a/portal-common/src/main/webapp/common/image/sidebar-toggler-light.jpg b/portal-common/src/main/webapp/common/image/sidebar-toggler-light.jpg deleted file mode 100644 index d2c3d97e3ad3829dbd34dea0e0754513848c0473..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 538 zcmex=C5UDGKfoZ!!63^Z%giXqz$D1XEXer(2tz8+ z+02ZLKxe`MD;qlpC#n!gPJn@dg@u)o6RwV#MTC`sNtlgMP)Jl<$w)EfJHoR@gvnJ`HOwQ_1 zcOxsUMy*9RyH$3C@^5b_5!bAn_*?TyyzPOob-#aCZI6kz+mjQqa|0KxHtng9R* diff --git a/portal-common/src/main/webapp/common/image/sort_asc.png b/portal-common/src/main/webapp/common/image/sort_asc.png deleted file mode 100644 index a88d7975fe9017e4e5f2289a94bd1ed66a5f59dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1118 zcmbVLO=#0l98awuV{uMt6P_}u4rcI3idKFP2SpU%ZJIE?RL`X zK?Oyo=*5GG2SxDYK=7akJqV&hrl{aWJa`y*5xh+1%i2y4V}gO?edPc9{r;a9vjc}) zn|Cxb4AYwFmvVG%_ui)U^y_4!ujsO!qzYuv8YUIR!Aw%KiWp=JrG#@>(I!s4#N7H->?w+cxsH2#GA};A>g8lyFDGPKh!5)vuP_{)}*83+N zJUBU!S0_i+E{*Lu1iGsNB``2iK-CyCU7?y_mv{xb_pUh>ESZqe1Y2{eAZLMSIT%EO zFrdOH1W^=3p>Qk~I{J+k#s5zQ@j{%aIA!l^GQjJ zqA1Uc2%!{8qBKfMNh#9DCnKS_*uZ8?mnf!+8@f8xtz#prVg=E`3bCBLWsNmDAX~PG z<(4fQh=UOzE2?gKXRkc9XeI3Er?HlHECVd%SI}3`hy1_du3@$R$r(qT;k@Sft63UX zv;)2Ea_iH>^6+4jPK-lGM{Zw37Tz>~~zlHzO61x51(V4jcaKrcIVDG$-d>)z}S|7f!xxYhfUE}Kj zug_h&HZN}go22$5Ym1}P8~vYNx7-~$TWFJ;_nh!wFYSAQJF{CCo=xpK8^7?iY1^!H haOA^1D_`VC7fU=jcT diff --git a/portal-common/src/main/webapp/common/image/sort_both.png b/portal-common/src/main/webapp/common/image/sort_both.png deleted file mode 100644 index 18670406bc01ab2721781822dd6478917745ff54..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1136 zcmaJ>O=#0l98WD1Hz^GK+C=e@fhgE~b#2$Ux^~T`1v5)mw1NlIe}zC z+ge9alrMQeN|SYi`>tC{zIG}!O_oO7k;UC8kBf>8sknx65F`zy2d1H-4fel=trX>@ z^-LCL<%6P%3`TJ=Ov$hao1$9VN|vJbLJV@SM>nJN{L>dS(6uOiBq(#Tm4F5Pz>p2Q zhq^NAP_G)%=(c^JwImV&17Zb~j6Ty5OHq1RS0sD)n5Dro1ouYi-$7;N6i6T&f*`~B zRW8JV5YO;|=5RQ?2M8R`v7Es2f}anI0YT(Au=3Evo2})=wA8uci&#;*fUzaAY_V8m ziU9`MJuDxIL|hF)@DqgJ88op{@|#XmML~j&YU>u(kqKNyC5HxZlqQk>PQkENWld+L zOr&6JNwHX-;oOueKw17j)G$`j4o<^A@%~fT$qZVMO+yC_*eYpUzR7iEi3uAj7}*(w z`YKgS6%a;F0a+l?9R#wX>ZWTi<7HV)nhsV>6(*%9O%xbi*F?TK!383rh#(|*p6}q} zd?z25;!?0(hzA2Li3(Rj>VN@FT;Xbexbdo7cN7eZc$T28pMYAYjSR4yvZz;&C0tc+ zg{xJMrKKvDCBd+6WB+P&<%mp=yImbyVyq56G|9BvWUP^I>ms=lb4e+lDSgg;Us`JO zKB6{wH+j~F#-A4FY3K3qm~Z6m@V6}oQ%8?p-E$dw`#0C$PJfmCV8)v}3>Ydha%`fZ zJk~G*M^A3LGk$Td;R`icF67R~`sBOHv)Hlqlc%$jy~9_oZJcNyWxkbb_O9u#|7hLF z-<-NMLzh3S0YA@8gd1Pt(Df|3@16Y-n=aSvsF@AkI`ioeFg>&H3bXU&vBnE6gIChkL+(Ey+0iB4Z$Eze7t_CX>Hq)$ diff --git a/portal-common/src/main/webapp/common/image/sort_desc.png b/portal-common/src/main/webapp/common/image/sort_desc.png deleted file mode 100644 index def071ed5afd264a036f6d9e75856366fd6ad153..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1127 zcmbVMOK8+U7*1U&zKRu5sR)h{1;yRWWV^4}ShvZpU2*HWU2!iy(qy)cZ89;Lb+`3m zMbruv!GjkO!3qksP*5)lD)k}=Dp*ht-n@8G5m8XoN!zU+ih_Y;=AZe$?|)|~*Ri8v z(dtDU$2DZy)jV65`|pB!_H}d7Cv0h=sUqzpC0fy3%q0!dg+a#Bx^W(BM*oq=xP{{a zC9_bZ#q2IgCss)FbwX9kVQ7wPX{|b%-is;d!ri7V^Y8E8=YeU+{JuyQW*r6hnC$~D z?i}bS=mWia!r)uCftISo2rNuBP__DOPpZoN6tBeg{;|M=DHYl)^V3chvpJv;7lTL$ z26Y&PAc{gL+#HL=wg3?#C_qs_Vi3iouqZ(YW*(kdbB&UeSJN}Lm?ZN(lsb|iR4SEF zB^)Adw}29fgwG+0L8cM(`faLJgSNN6#-L(PcTI+l@K3y+Xf(g*^61+0|J+O6zN2mb?UNGh6GU@A{1+eF%d@N2(^XdVmhis(y25|iAr;gV=io5OsYy0 zB}Gv|2&GUGrBPB%s*yG^841Ug8a88lRI_zlvuiTDGuXsmv6A9qjS{y&NMEf3ay^6+ zuZK85>5PD^rkl1e`{kLAR>iJ)6dP%mSYRr@k~xQcDE=$%X{_--ITM&Og5Ml}G)wJ> zb)dhUZG9%p4iC23#JFrUCcmwHz{cugMoku~ue-kg{Mj0~%`FeCcz9jAdg}QET-kSG za`+2B_+lRTaeAVz>E`F1pN7h>B=BbGqcz13d%ywZR&4OjkNNrF_U}#EcXDGa@V52B z>JnIW7#s%CHi diff --git a/portal-common/src/main/webapp/common/image/syncfusion-icons-white.png b/portal-common/src/main/webapp/common/image/syncfusion-icons-white.png deleted file mode 100644 index 625dcc098c4811f81277ada857d887029eb355bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5550 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 diff --git a/portal-common/src/main/webapp/common/image/user.png b/portal-common/src/main/webapp/common/image/user.png deleted file mode 100644 index f9d5ac4bf2979a871b6d8fcd3858b12d6a022a07..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3100 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 _.length(this._area)) { m--; i--; }// in case of removeItem - } - return and || this; - }, - keys: function() { - return this.each(function(k, list){ list.push(k); }, []); - }, - get: function(key, alt) { - var s = _.get(this._area, this._in(key)); - return s !== null ? _.parse(s) : alt || s;// support alt for easy default mgmt - }, - getAll: function() { - return this.each(function(k, all){ all[k] = this.get(k); }, {}); - }, - set: function(key, data, overwrite) { - var d = this.get(key); - if (d != null && overwrite === false) { - return data; - } - return _.set(this._area, this._in(key), _.stringify(data), overwrite) || d; - }, - setAll: function(data, overwrite) { - var changed, val; - for (var key in data) { - val = data[key]; - if (this.set(key, val, overwrite) !== val) { - changed = true; - } - } - return changed; - }, - remove: function(key) { - var d = this.get(key); - _.remove(this._area, this._in(key)); - return d; - }, - clear: function() { - if (!this._ns) { - _.clear(this._area); - } else { - this.each(function(k){ _.remove(this._area, this._in(k)); }, 1); - } - return this; - }, - clearAll: function() { - var area = this._area; - for (var id in _.areas) { - if (_.areas.hasOwnProperty(id)) { - this._area = _.areas[id]; - this.clear(); - } - } - this._area = area; - return this; - }, - - // internal use functions - _in: function(k) { - if (typeof k !== "string"){ k = _.stringify(k); } - return this._ns ? this._ns + k : k; - }, - _out: function(k) { - return this._ns ? - k && k.indexOf(this._ns) === 0 ? - k.substring(this._ns.length) : - undefined : // so each() knows to skip it - k; - } - },// end _.storeAPI - storageAPI: { - length: 0, - has: function(k){ return this.items.hasOwnProperty(k); }, - key: function(i) { - var c = 0; - for (var k in this.items){ - if (this.has(k) && i === c++) { - return k; - } - } - }, - setItem: function(k, v) { - if (!this.has(k)) { - this.length++; - } - this.items[k] = v; - }, - removeItem: function(k) { - if (this.has(k)) { - delete this.items[k]; - this.length--; - } - }, - getItem: function(k){ return this.has(k) ? this.items[k] : null; }, - clear: function(){ for (var k in this.list){ this.removeItem(k); } }, - toString: function(){ return this.length+' items in '+this.name+'Storage'; } - }// end _.storageAPI - }; - - // setup the primary store fn - if (window.store){ _.conflict = window.store; } - var store = - // safely set this up (throws error in IE10/32bit mode for local files) - _.Store("local", (function(){try{ return localStorage; }catch(e){}})()); - store.local = store;// for completeness - store._ = _;// for extenders and debuggers... - // safely setup store.session (throws exception in FF for file:/// urls) - store.area("session", (function(){try{ return sessionStorage; }catch(e){}})()); - - //Expose store to the global object - window.store = store; - - if (typeof define === 'function' && define.amd !== undefined) { - define(function () { - return store; - }); - } else if (typeof module !== 'undefined' && module.exports) { - module.exports = store; - } - -})(this, null); - -// XHook - v1.3.3 - https://github.com/jpillora/xhook -// Jaime Pillora - MIT Copyright 2015 -(function(window,undefined) { -var AFTER, BEFORE, COMMON_EVENTS, EventEmitter, FIRE, FormData, NativeFormData, NativeXMLHttp, OFF, ON, READY_STATE, UPLOAD_EVENTS, XHookFormData, XHookHttpRequest, XMLHTTP, convertHeaders, depricatedProp, document, fakeEvent, mergeObjects, msie, proxyEvents, slice, xhook, _base, - __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }; - -document = window.document; - -BEFORE = 'before'; - -AFTER = 'after'; - -READY_STATE = 'readyState'; - -ON = 'addEventListener'; - -OFF = 'removeEventListener'; - -FIRE = 'dispatchEvent'; - -XMLHTTP = 'XMLHttpRequest'; - -FormData = 'FormData'; - -UPLOAD_EVENTS = ['load', 'loadend', 'loadstart']; - -COMMON_EVENTS = ['progress', 'abort', 'error', 'timeout']; - -msie = parseInt((/msie (\d+)/.exec(navigator.userAgent.toLowerCase()) || [])[1]); - -if (isNaN(msie)) { - msie = parseInt((/trident\/.*; rv:(\d+)/.exec(navigator.userAgent.toLowerCase()) || [])[1]); -} - -(_base = Array.prototype).indexOf || (_base.indexOf = function(item) { - var i, x, _i, _len; - for (i = _i = 0, _len = this.length; _i < _len; i = ++_i) { - x = this[i]; - if (x === item) { - return i; - } - } - return -1; -}); - -slice = function(o, n) { - return Array.prototype.slice.call(o, n); -}; - -depricatedProp = function(p) { - return p === "returnValue" || p === "totalSize" || p === "position"; -}; - -mergeObjects = function(src, dst) { - var k, v; - for (k in src) { - v = src[k]; - if (depricatedProp(k)) { - continue; - } - try { - dst[k] = src[k]; - } catch (_error) {} - } - return dst; -}; - -proxyEvents = function(events, src, dst) { - var event, p, _i, _len; - p = function(event) { - return function(e) { - var clone, k, val; - clone = {}; - for (k in e) { - if (depricatedProp(k)) { - continue; - } - val = e[k]; - clone[k] = val === src ? dst : val; - } - return dst[FIRE](event, clone); - }; - }; - for (_i = 0, _len = events.length; _i < _len; _i++) { - event = events[_i]; - if (dst._has(event)) { - src["on" + event] = p(event); - } - } -}; - -fakeEvent = function(type) { - var msieEventObject; - if (document.createEventObject != null) { - msieEventObject = document.createEventObject(); - msieEventObject.type = type; - return msieEventObject; - } else { - try { - return new Event(type); - } catch (_error) { - return { - type: type - }; - } - } -}; - -EventEmitter = function(nodeStyle) { - var emitter, events, listeners; - events = {}; - listeners = function(event) { - return events[event] || []; - }; - emitter = {}; - emitter[ON] = function(event, callback, i) { - events[event] = listeners(event); - if (events[event].indexOf(callback) >= 0) { - return; - } - i = i === undefined ? events[event].length : i; - events[event].splice(i, 0, callback); - }; - emitter[OFF] = function(event, callback) { - var i; - if (event === undefined) { - events = {}; - return; - } - if (callback === undefined) { - events[event] = []; - } - i = listeners(event).indexOf(callback); - if (i === -1) { - return; - } - listeners(event).splice(i, 1); - }; - emitter[FIRE] = function() { - var args, event, i, legacylistener, listener, _i, _len, _ref; - args = slice(arguments); - event = args.shift(); - if (!nodeStyle) { - args[0] = mergeObjects(args[0], fakeEvent(event)); - } - legacylistener = emitter["on" + event]; - if (legacylistener) { - legacylistener.apply(undefined, args); - } - _ref = listeners(event).concat(listeners("*")); - for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) { - listener = _ref[i]; - listener.apply(undefined, args); - } - }; - emitter._has = function(event) { - return !!(events[event] || emitter["on" + event]); - }; - if (nodeStyle) { - emitter.listeners = function(event) { - return slice(listeners(event)); - }; - emitter.on = emitter[ON]; - emitter.off = emitter[OFF]; - emitter.fire = emitter[FIRE]; - emitter.once = function(e, fn) { - var fire; - fire = function() { - emitter.off(e, fire); - return fn.apply(null, arguments); - }; - return emitter.on(e, fire); - }; - emitter.destroy = function() { - return events = {}; - }; - } - return emitter; -}; - -xhook = EventEmitter(true); - -xhook.EventEmitter = EventEmitter; - -xhook[BEFORE] = function(handler, i) { - if (handler.length < 1 || handler.length > 2) { - throw "invalid hook"; - } - return xhook[ON](BEFORE, handler, i); -}; - -xhook[AFTER] = function(handler, i) { - if (handler.length < 2 || handler.length > 3) { - throw "invalid hook"; - } - return xhook[ON](AFTER, handler, i); -}; - -xhook.enable = function() { - window[XMLHTTP] = XHookHttpRequest; - if (NativeFormData) { - window[FormData] = XHookFormData; - } -}; - -xhook.disable = function() { - window[XMLHTTP] = xhook[XMLHTTP]; - window[FormData] = NativeFormData; -}; - -convertHeaders = xhook.headers = function(h, dest) { - var header, headers, k, name, v, value, _i, _len, _ref; - if (dest == null) { - dest = {}; - } - switch (typeof h) { - case "object": - headers = []; - for (k in h) { - v = h[k]; - name = k.toLowerCase(); - headers.push("" + name + ":\t" + v); - } - return headers.join('\n'); - case "string": - headers = h.split('\n'); - for (_i = 0, _len = headers.length; _i < _len; _i++) { - header = headers[_i]; - if (/([^:]+):\s*(.+)/.test(header)) { - name = (_ref = RegExp.$1) != null ? _ref.toLowerCase() : void 0; - value = RegExp.$2; - if (dest[name] == null) { - dest[name] = value; - } - } - } - return dest; - } -}; - -NativeFormData = window[FormData]; - -XHookFormData = function(form) { - var entries; - this.fd = form ? new NativeFormData(form) : new NativeFormData(); - this.form = form; - entries = []; - Object.defineProperty(this, 'entries', { - get: function() { - var fentries; - fentries = !form ? [] : slice(form.querySelectorAll("input,select")).filter(function(e) { - var _ref; - return ((_ref = e.type) !== 'checkbox' && _ref !== 'radio') || e.checked; - }).map(function(e) { - return [e.name, e.type === "file" ? e.files : e.value]; - }); - return fentries.concat(entries); - } - }); - this.append = (function(_this) { - return function() { - var args; - args = slice(arguments); - entries.push(args); - return _this.fd.append.apply(_this.fd, args); - }; - })(this); -}; - -if (NativeFormData) { - xhook[FormData] = NativeFormData; - window[FormData] = XHookFormData; -} - -NativeXMLHttp = window[XMLHTTP]; - -xhook[XMLHTTP] = NativeXMLHttp; - -XHookHttpRequest = window[XMLHTTP] = function() { - var ABORTED, currentState, emitFinal, emitReadyState, facade, hasError, hasErrorHandler, readBody, readHead, request, response, setReadyState, status, transiting, writeBody, writeHead, xhr; - ABORTED = -1; - xhr = new xhook[XMLHTTP](); - request = {}; - status = null; - hasError = void 0; - transiting = void 0; - response = void 0; - readHead = function() { - var key, name, val, _ref; - response.status = status || xhr.status; - if (!(status === ABORTED && msie < 10)) { - response.statusText = xhr.statusText; - } - if (status !== ABORTED) { - _ref = convertHeaders(xhr.getAllResponseHeaders()); - for (key in _ref) { - val = _ref[key]; - if (!response.headers[key]) { - name = key.toLowerCase(); - response.headers[name] = val; - } - } - } - }; - readBody = function() { - if (!xhr.responseType || xhr.responseType === "text") { - response.text = xhr.responseText; - response.data = xhr.responseText; - } else if (xhr.responseType === "document") { - response.xml = xhr.responseXML; - response.data = xhr.responseXML; - } else { - response.data = xhr.response; - } - if ("responseURL" in xhr) { - response.finalUrl = xhr.responseURL; - } - }; - writeHead = function() { - facade.status = response.status; - facade.statusText = response.statusText; - }; - writeBody = function() { - if ('text' in response) { - facade.responseText = response.text; - } - if ('xml' in response) { - facade.responseXML = response.xml; - } - if ('data' in response) { - facade.response = response.data; - } - if ('finalUrl' in response) { - facade.responseURL = response.finalUrl; - } - }; - emitReadyState = function(n) { - while (n > currentState && currentState < 4) { - facade[READY_STATE] = ++currentState; - if (currentState === 1) { - facade[FIRE]("loadstart", {}); - } - if (currentState === 2) { - writeHead(); - } - if (currentState === 4) { - writeHead(); - writeBody(); - } - facade[FIRE]("readystatechange", {}); - if (currentState === 4) { - setTimeout(emitFinal, 0); - } - } - }; - emitFinal = function() { - if (!hasError) { - facade[FIRE]("load", {}); - } - facade[FIRE]("loadend", {}); - if (hasError) { - facade[READY_STATE] = 0; - } - }; - currentState = 0; - setReadyState = function(n) { - var hooks, process; - if (n !== 4) { - emitReadyState(n); - return; - } - hooks = xhook.listeners(AFTER); - process = function() { - var hook; - if (!hooks.length) { - return emitReadyState(4); - } - hook = hooks.shift(); - if (hook.length === 2) { - hook(request, response); - return process(); - } else if (hook.length === 3 && request.async) { - return hook(request, response, process); - } else { - return process(); - } - }; - process(); - }; - facade = request.xhr = EventEmitter(); - xhr.onreadystatechange = function(event) { - try { - if (xhr[READY_STATE] === 2) { - readHead(); - } - } catch (_error) {} - if (xhr[READY_STATE] === 4) { - transiting = false; - readHead(); - readBody(); - } - setReadyState(xhr[READY_STATE]); - }; - hasErrorHandler = function() { - hasError = true; - }; - facade[ON]('error', hasErrorHandler); - facade[ON]('timeout', hasErrorHandler); - facade[ON]('abort', hasErrorHandler); - facade[ON]('progress', function() { - if (currentState < 3) { - setReadyState(3); - } else { - facade[FIRE]("readystatechange", {}); - } - }); - if ('withCredentials' in xhr || xhook.addWithCredentials) { - facade.withCredentials = false; - } - facade.status = 0; - facade.open = function(method, url, async, user, pass) { - currentState = 0; - hasError = false; - transiting = false; - request.headers = {}; - request.headerNames = {}; - request.status = 0; - response = {}; - response.headers = {}; - request.method = method; - request.url = url; - request.async = async !== false; - request.user = user; - request.pass = pass; - setReadyState(1); - }; - facade.send = function(body) { - var hooks, k, modk, process, send, _i, _len, _ref; - _ref = ['type', 'timeout', 'withCredentials']; - if(navigator.userAgent.indexOf("Firefox/") != -1){http://atmosphere-framework.2306103.n4.nabble.com/Atmosphere-js-withCredentials-true-does-not-work-in-Firefox-td4656661.html - _ref = ['type', 'timeout']; - } - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - k = _ref[_i]; - modk = k === "type" ? "responseType" : k; - if (modk in facade) { - request[k] = facade[modk]; - } - } - request.body = body; - send = function() { - var header, value, _j, _len1, _ref1, _ref2; - proxyEvents(COMMON_EVENTS, xhr, facade); - if (facade.upload) { - proxyEvents(COMMON_EVENTS.concat(UPLOAD_EVENTS), xhr.upload, facade.upload); - } - transiting = true; - xhr.open(request.method, request.url, request.async, request.user, request.pass); - _ref1 = ['type', 'timeout', 'withCredentials']; - if(navigator.userAgent.indexOf("Firefox/") != -1){//http://atmosphere-framework.2306103.n4.nabble.com/Atmosphere-js-withCredentials-true-does-not-work-in-Firefox-td4656661.html - _ref1 = ['type', 'timeout']; - } - for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) { - k = _ref1[_j]; - modk = k === "type" ? "responseType" : k; - if (k in request) { - xhr[modk] = request[k]; - } - } - _ref2 = request.headers; - for (header in _ref2) { - value = _ref2[header]; - xhr.setRequestHeader(header, value); - } - if (request.body instanceof XHookFormData) { - request.body = request.body.fd; - } - xhr.send(request.body); - }; - hooks = xhook.listeners(BEFORE); - process = function() { - var done, hook; - if (!hooks.length) { - return send(); - } - done = function(userResponse) { - if (typeof userResponse === 'object' && (typeof userResponse.status === 'number' || typeof response.status === 'number')) { - mergeObjects(userResponse, response); - if (__indexOf.call(userResponse, 'data') < 0) { - userResponse.data = userResponse.response || userResponse.text; - } - setReadyState(4); - return; - } - process(); - }; - done.head = function(userResponse) { - mergeObjects(userResponse, response); - return setReadyState(2); - }; - done.progress = function(userResponse) { - mergeObjects(userResponse, response); - return setReadyState(3); - }; - hook = hooks.shift(); - if (hook.length === 1) { - return done(hook(request)); - } else if (hook.length === 2 && request.async) { - return hook(request, done); - } else { - return done(); - } - }; - process(); - }; - facade.abort = function() { - status = ABORTED; - if (transiting) { - xhr.abort(); - } else { - facade[FIRE]('abort', {}); - } - }; - facade.setRequestHeader = function(header, value) { - var lName, name; - lName = header != null ? header.toLowerCase() : void 0; - name = request.headerNames[lName] = request.headerNames[lName] || header; - if (request.headers[name]) { - value = request.headers[name] + ', ' + value; - } - request.headers[name] = value; - }; - facade.getResponseHeader = function(header) { - var name; - name = header != null ? header.toLowerCase() : void 0; - return response.headers[name]; - }; - facade.getAllResponseHeaders = function() { - return convertHeaders(response.headers); - }; - if (xhr.overrideMimeType) { - facade.overrideMimeType = function() { - return xhr.overrideMimeType.apply(xhr, arguments); - }; - } - if (xhr.upload) { - facade.upload = request.upload = EventEmitter(); - } - return facade; -}; -/* -if (typeof this.define === "function" && this.define.amd) { - define("xhook", [], function() { - return xhook; - }); -} else {*/ - (this.exports || this).xhook = xhook; -//} - -}.call(this,window)); - -xhook.before(function(request) { - var zte_headers = store('zte_http_headers'); - if (zte_headers && zte_headers.length > 0) { - for (i = 0; i < zte_headers.length; i++) { - if (zte_headers[i].store === true) { - if ( !! store(zte_headers[i].value)) { - request.headers[zte_headers[i].key] = store(zte_headers[i].value).toUpperCase() - } - } else { - request.headers[zte_headers[i].key] = zte_headers[i].value - } - } - } -}); \ No newline at end of file diff --git a/portal-common/src/main/webapp/common/js/core/load_menuList.js b/portal-common/src/main/webapp/common/js/core/load_menuList.js deleted file mode 100644 index 2c549fce..00000000 --- a/portal-common/src/main/webapp/common/js/core/load_menuList.js +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -var initLeftMenu = function() { - var i18nName = "openo_frame_left_menu_i18n"; - var parentMenus; - var childMenus; - - $.ajax({ - async : false, - "type" : "GET", - url : "json/menu_list.json", - dataType : "json", - "success" : function (res, textStatus, jqXHR) { - parentMenus = res.parentMenus; - childMenus = res.childMenus; - }, - error : function () { - } - }); - - var templateParent = "" + - "" + - "" + - "" + - "" + - ""; - - var templateChild = "

  • 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

    0pwb;rs@+tSUy42NxjWC{HhH@+id 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%0D!PWPR!c@_Sw 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 X?P&u(%tLFZ{94je<$d0Jzt8+1{=?zv diff --git a/openo-portal/portal-common/src/main/webapp/common/image/integration/openo_bg_2.jpg b/openo-portal/portal-common/src/main/webapp/common/image/integration/openo_bg_2.jpg deleted file mode 100644 index 59f2209a3c5c0fe732b1e3fc410053342e8fadf7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 143470 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 PvLARQ#93;FOvRa`M5KfvOvny1cmOEI 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 diff --git a/openo-portal/portal-common/src/main/webapp/common/image/integration/openo_bg_3.jpg b/openo-portal/portal-common/src/main/webapp/common/image/integration/openo_bg_3.jpg deleted file mode 100644 index f2949dfe3045a79a0c95ccb3f19b123b29b9b1ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 155899 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≥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

    #+auP(^@v?BlH2`Cyfmizu*kWc=5s#xC? z@nc>)y<)ZD?#B7YDqLWf)epEJVEqH1ygM28KEQba;N5_O9uMcN0Dc~_9Rk|{K7Y{- z8_>Y(-iZ_jHUhjKBa3VTUReNTNZ3k*GeA4=O8vH#g15j+dI)T8;K{ep>ifd^OR-r2 ztZ5h>1nLpEFMV#XFayy5UXd_}1Ceh6_}sPtz`OZn-P>o1PE-1TE$stfR@i!Po@|7@ zgo|A5i{+X~pLr95IJ0GNo1k~#Gx)=*(?h{dE1kg9V&VP@@&PenF;SSA-~fu#0|u+! zeJEXQOOQ`@Fe6C^1}9qpSlOW&4%c>9aINC*#Nrae^B);@KC4U|8j3!D$Pi! zr3f>$v~Hz#MI>^c&y2=Uq+R1qp^I9VMU51SBwE+OOfxR)GAJPvYTIwQL?KLcA))P} zZQK2y=cB&g-~aXMW!L!3=ks~a^PKaX^FHr$9?vB)^Z_O1400pju2WyAAnpX;6_zbDzDnB$FzdMN~MKf%8 zZ@%U~ITKj=+Ed!TCGXA+5!Jml?r&MB^xHYxN>)|(sPCxc|Du}je7js*UhbCqNzM;# z0XnYs-MbEFQD3WNwJ1L_Z%FwJpm^ZZSXyA}hHdes_m7S{D6Dd#U95NouiFU3oRpTN z;RX`tiOuA1>KB?sbo+FJVnW{P4}|)p(q?*jQ#IXfn0X8tG=#S9(c?9%v2|Gt9i zkweEyb#>hmjoA`A(odbg*{Y+jzmM6n)|otDDtYlQtAM1{&E(r3uWj*fmc3%#kRy(L=u6o!{6mvUYL`KB{z8ntfU*^JcnL_Asn_ zC&ut%Mg-%nP$ zT^?YV`LAm2O{(F1I-6}a9JR$rS|@`_E57o9^E_OUK2pZiXI?-5h<_qsg1vA5g>3b= zmsfOd+`ju@D|YEZX4!hq{%4VDeUr-VUfJazcdh^Rc^|p!-ktsxPCeNQlpWSj9TNj% zO^0HCzY<+nD|Bn!t$0cTJ0TgoILmhY6)k`MTT@G}cqH95{=JB@b;;wV%}k&r8EJ|8 z1aD!FM1BHHFTezdwS-o;25d_JL!w#NheeKz#Zs`nd5XOb=ZE1`rC39cX>lrUHl$EM z0%=WH;5hQp1nvmYDhH9jK?PtLArnA?^eR$fU`2uX02`J0CDLD_FT>YST;nkS(bh-* z6#SBkTr{9kF

    30!0;Sx(yma7TjqUQZcZ(Aamfpffh&4vg@3Y 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

    suD* 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 diff --git a/openo-portal/portal-common/src/main/webapp/common/image/integration/openo_logo_black.png b/openo-portal/portal-common/src/main/webapp/common/image/integration/openo_logo_black.png deleted file mode 100644 index f320af35582c1c8efb6440e42ce62692148f53c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27249 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 diff --git a/openo-portal/portal-common/src/main/webapp/common/image/integration/openo_logo_pantone.png b/openo-portal/portal-common/src/main/webapp/common/image/integration/openo_logo_pantone.png deleted file mode 100644 index 141350427ae9f2fb14d1b54783e1ed133e961558..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27702 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 diff --git a/openo-portal/portal-common/src/main/webapp/common/image/integration/openo_logo_white.png b/openo-portal/portal-common/src/main/webapp/common/image/integration/openo_logo_white.png deleted file mode 100644 index 7adc4ac35288807f911922422790d46547b465c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26677 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 boZ_aL@S0T9LRoz|{>D((M5kQq@2LL)H5|3Y diff --git a/openo-portal/portal-common/src/main/webapp/common/image/loading.gif b/openo-portal/portal-common/src/main/webapp/common/image/loading.gif deleted file mode 100644 index 29bbff008e5b09c6282abb797f7044b62608b5a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2906 zcmcJRZBSEZ8io^c5|R+UlaRzLBq3C-2O8O|MM^D!pr8@x608NZDW-_Xu!u3HB~U(& z2rRmYfas_L701%j){ofPTGl~8WLH*;Lu=Pj7lE!H%L?tVZnrY9cQ`_s!k_(NelU{^ zbLP3O=f27v2En>NZWmYj*&+r z6F*IKb##sYFg`Uk#hCsmr`+OWj7ibD#F)?!4U35%mH#Dp9ELlCbpC_$u?#|2eJrYP z?fP%d#s*%s#zt;ab(@aFT&R!!zTPF2)v>Q7r&1QH1w$S^aufqsRaRlP{%`uJ5()^I95dI})M9@7dv?t1 z9DZ`*_TAf583h&~)YjL|QcR=#@(=qhlPb2^p%;Ir>Fo-usA~;Ak?7Jmy2e}4u3-J( z=EAD!_GoN2ROuEAmmeT^xj%Gh*gl^cf)mGvtp{(e9^@S>XJ6v~@eOUfBKy(zXENmz z1V`*CurB8@eJg#LJmoVc*&L>b@Cb~LG1F4gFe3)f&dN5dHGqTGZ%#M&UhB2wS&Y9m zMy!ee%J86bUBJ!G$u`6r=)Hl}oME2N$KGJ-H^v`cE_+?UrG$s9p9F_`3mZr4j6}P_ zWeblJy#LPQ9mSH;n#Eo87WLECji0UGW?J^?i)RKu{C4cs*vbTM*&>Q7{zLTL zNOguue=1c#vGrCp(w z%jEqx`e}4P=vV92D)oF0?25giF?VUR&#$D(n%++1>I`FRYNB7`D3J%0POQhX;m$SY zyOPpSNetdL$95{QK% zv9uU$8pI2-{xX{X=XZ`ZviEZI(iLiT57n-=Xw+X7UplP`<1kHE{~hLa=t|&3PnD$D z5w5?Nx6EyiZ8A|pW}QFzFOD%Xz>;pYy}Ql7pwO$h#9EeR&v`%3!l$x)vs4wlMcx)a zKdDD%nUWP6l(NQdV~aJrpp1ju#cQTI$8qDC^psrB_v8ghS0%tosl^Al%T7H zUcnR$qBbZP^g#z1Lejm0Qxpl-&@=&G0C(hzBn0*Tr5ACAGHBI?Y8Px5J6RD$n$7D| zh9X9iUYBjDb5n9`{+rkXQzchbhh7m>gq7XAtef>2=X$Os(@Bmz;w{t*gLAxek_edeQ^&o>UgYcFlmIc%$%ii_IS26dBbQ1o9D zSCti6xBtz+7|>)K%x$=StlL^(qB`qX59}cy-n{i>k^I!nQCmPxJ|nNtLs7&Oika`_ z@7S49!}hl^H*qP6t8}loD?g3zru5;8T0|0=(vQbxE7;ziGieB1uu{_=;D>hT^meh$ zX`{ZDZWZLf7+owVf<|Yh3hmFtP9Iq~ny?7^;z60{R?#Q%b27=<*NT;lSZKUK}xydr8M=xbEF!{iFpBJBRGzmYcUqp9Ys-f5@T{L1bjIWS3k!im zC!7YKjH4egh(4iAXb;4pQgA`{31vbB(I;rdjRs|?8ePE!O|gvwG30QP?(oKt5@M!Qb3tZbBIpAaBh5wuGtVZ#d9+SWAOS!|uTY-3y9Y8Z z--SVvO*()C0p#nt--v^f>LURX29W(sQ>+;ve`ZxITT-s?b%KOQ9wcV{iEK#-KJ-&e z`gw-oa`;2#ZlQK)u=`bo^up-z0|HHvMBp<+GXE9N`A#~0bAkjxM%{totax`9Rsse@ z81`ur92>xJ#`f_Dg1;cZ>}k$UH8qjLLyG#1As+9zf2~dseZaL%YIMh661bRR4WxY~ zNDgYt^_?K$FG*MunRSwEc{6iM<;Ud5E6=sJ+zD^^(m(IzZN5wLE(J2q4D9gC4{;?p LWgH$$$#~^|IWJQ1 diff --git a/openo-portal/portal-common/src/main/webapp/common/image/mainpage/License.txt b/openo-portal/portal-common/src/main/webapp/common/image/mainpage/License.txt deleted file mode 100644 index d1ce787a..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/mainpage/License.txt +++ /dev/null @@ -1,362 +0,0 @@ -THIS LICENSE FILE CONTAINS THE LICENSE APPLICABLE DEPENDING ON THE TYPE OF CONTRIBUTIONS. - -APACHE LICENSE 2 IS APPLICABLE FOR SOURCE CODE, CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL FOR DOCUMENTATION - -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - - -Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - -"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - -"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - -"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - -"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - -"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - -"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - -"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - -"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - -"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - -"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - -2. Grant of Copyright License. - -Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. - -Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - -4. Redistribution. - -You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - -You must give any other recipients of the Work or Derivative Works a copy of this License; and You must cause any modified files to carry prominent notices stating that You changed the files; and You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - -5. Submission of Contributions. - -Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - -6. Trademarks. - -This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. - -Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. - -In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. - -While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS - -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - -Attribution 4.0 International - -https://creativecommons.org/licenses/by/4.0/legalcode - -Creative Commons Corporation ("Creative Commons") is not a law firm and does not provide legal services or legal advice. Distribution of Creative Commons public licenses does not create a lawyer-client or other relationship. Creative Commons makes its licenses and related information available on an "as-is" basis. Creative Commons gives no warranties regarding its licenses, any material licensed under their terms and conditions, or any related information. Creative Commons disclaims all liability for damages resulting from their use to the fullest extent possible. - -Using Creative Commons Public Licenses - -Creative Commons public licenses provide a standard set of terms and conditions that creators and other rights holders may use to share original works of authorship and other material subject to copyright and certain other rights specified in the public license below. The following considerations are for informational purposes only, are not exhaustive, and do not form part of our licenses. - - Considerations for licensors: Our public licenses are - intended for use by those authorized to give the public - permission to use material in ways otherwise restricted by - copyright and certain other rights. Our licenses are - irrevocable. Licensors should read and understand the terms - and conditions of the license they choose before applying it. - Licensors should also secure all rights necessary before - applying our licenses so that the public can reuse the - material as expected. Licensors should clearly mark any - material not subject to the license. This includes other CC- - licensed material, or material used under an exception or - limitation to copyright. More considerations for licensors: - wiki.creativecommons.org/Considerations_for_licensors - Considerations for the public: By using one of our public - licenses, a licensor grants the public permission to use the - licensed material under specified terms and conditions. If - the licensor's permission is not necessary for any reason--for - example, because of any applicable exception or limitation to - copyright--then that use is not regulated by the license. Our - licenses grant only permissions under copyright and certain - other rights that a licensor has authority to grant. Use of - the licensed material may still be restricted for other - reasons, including because others have copyright or other - rights in the material. A licensor may make special requests, - such as asking that all changes be marked or described. - Although not required by our licenses, you are encouraged to - respect those requests where reasonable. More_considerations - for the public: - wiki.creativecommons.org/Considerations_for_licensees -Creative Commons Attribution 4.0 International Public License - -By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions. - - -Section 1 -- Definitions. - - a. Adapted Material means material subject to Copyright and Similar - Rights that is derived from or based upon the Licensed Material - and in which the Licensed Material is translated, altered, - arranged, transformed, or otherwise modified in a manner requiring - permission under the Copyright and Similar Rights held by the - Licensor. For purposes of this Public License, where the Licensed - Material is a musical work, performance, or sound recording, - Adapted Material is always produced where the Licensed Material is - synched in timed relation with a moving image. - b. Adapter's License means the license You apply to Your Copyright - and Similar Rights in Your contributions to Adapted Material in - accordance with the terms and conditions of this Public License. - c. Copyright and Similar Rights means copyright and/or similar rights - closely related to copyright including, without limitation, - performance, broadcast, sound recording, and Sui Generis Database - Rights, without regard to how the rights are labeled or - categorized. For purposes of this Public License, the rights - specified in Section 2(b)(1)-(2) are not Copyright and Similar - Rights. - d. Effective Technological Measures means those measures that, in the - absence of proper authority, may not be circumvented under laws - fulfilling obligations under Article 11 of the WIPO Copyright - Treaty adopted on December 20, 1996, and/or similar international - agreements. - e. Exceptions and Limitations means fair use, fair dealing, and/or - any other exception or limitation to Copyright and Similar Rights - that applies to Your use of the Licensed Material. - f. Licensed Material means the artistic or literary work, database, - or other material to which the Licensor applied this Public - License. - g. Licensed Rights means the rights granted to You subject to the - terms and conditions of this Public License, which are limited to - all Copyright and Similar Rights that apply to Your use of the - Licensed Material and that the Licensor has authority to license. - h. Licensor means the individual(s) or entity(ies) granting rights - under this Public License. - i. Share means to provide material to the public by any means or - process that requires permission under the Licensed Rights, such - as reproduction, public display, public performance, distribution, - dissemination, communication, or importation, and to make material - available to the public including in ways that members of the - public may access the material from a place and at a time - individually chosen by them. - j. Sui Generis Database Rights means rights other than copyright - resulting from Directive 96/9/EC of the European Parliament and of - the Council of 11 March 1996 on the legal protection of databases, - as amended and/or succeeded, as well as other essentially - equivalent rights anywhere in the world. - k. You means the individual or entity exercising the Licensed Rights - under this Public License. Your has a corresponding meaning. - -Section 2 -- Scope. - - a. License grant. - 1. Subject to the terms and conditions of this Public License, - the Licensor hereby grants You a worldwide, royalty-free, - non-sublicensable, non-exclusive, irrevocable license to - exercise the Licensed Rights in the Licensed Material to: - a. reproduce and Share the Licensed Material, in whole or - in part; and - b. produce, reproduce, and Share Adapted Material. - 2. Exceptions and Limitations. For the avoidance of doubt, where - Exceptions and Limitations apply to Your use, this Public - License does not apply, and You do not need to comply with - its terms and conditions. - 3. Term. The term of this Public License is specified in Section - 6(a). - 4. Media and formats; technical modifications allowed. The - Licensor authorizes You to exercise the Licensed Rights in - all media and formats whether now known or hereafter created, - and to make technical modifications necessary to do so. The - Licensor waives and/or agrees not to assert any right or - authority to forbid You from making technical modifications - necessary to exercise the Licensed Rights, including - technical modifications necessary to circumvent Effective - Technological Measures. For purposes of this Public License, - simply making modifications authorized by this Section 2(a) - (4) never produces Adapted Material. - 5. Downstream recipients. - a. Offer from the Licensor -- Licensed Material. Every - recipient of the Licensed Material automatically - receives an offer from the Licensor to exercise the - Licensed Rights under the terms and conditions of this - Public License. - b. No downstream restrictions. You may not offer or impose - any additional or different terms or conditions on, or - apply any Effective Technological Measures to, the - Licensed Material if doing so restricts exercise of the - Licensed Rights by any recipient of the Licensed - Material. - 6. No endorsement. Nothing in this Public License constitutes or - may be construed as permission to assert or imply that You - are, or that Your use of the Licensed Material is, connected - with, or sponsored, endorsed, or granted official status by, - the Licensor or others designated to receive attribution as - provided in Section 3(a)(1)(A)(i). - b. Other rights. - 1. Moral rights, such as the right of integrity, are not - licensed under this Public License, nor are publicity, - privacy, and/or other similar personality rights; however, to - the extent possible, the Licensor waives and/or agrees not to - assert any such rights held by the Licensor to the limited - extent necessary to allow You to exercise the Licensed - Rights, but not otherwise. - 2. Patent and trademark rights are not licensed under this - Public License. - 3. To the extent possible, the Licensor waives any right to - collect royalties from You for the exercise of the Licensed - Rights, whether directly or through a collecting society - under any voluntary or waivable statutory or compulsory - licensing scheme. In all other cases the Licensor expressly - reserves any right to collect such royalties. - -Section 3 -- License Conditions. - -Your exercise of the Licensed Rights is expressly made subject to the following conditions. - - a. Attribution. - 1. If You Share the Licensed Material (including in modified - form), You must: - a. retain the following if it is supplied by the Licensor - with the Licensed Material: - i. identification of the creator(s) of the Licensed - Material and any others designated to receive - attribution, in any reasonable manner requested by - the Licensor (including by pseudonym if - designated); - ii. a copyright notice; - iii. a notice that refers to this Public License; - iv. a notice that refers to the disclaimer of - warranties; - v. a URI or hyperlink to the Licensed Material to the - extent reasonably practicable; - b. indicate if You modified the Licensed Material and - retain an indication of any previous modifications; and - c. indicate the Licensed Material is licensed under this - Public License, and include the text of, or the URI or - hyperlink to, this Public License. - 2. You may satisfy the conditions in Section 3(a)(1) in any - reasonable manner based on the medium, means, and context in - which You Share the Licensed Material. For example, it may be - reasonable to satisfy the conditions by providing a URI or - hyperlink to a resource that includes the required - information. - 3. If requested by the Licensor, You must remove any of the - information required by Section 3(a)(1)(A) to the extent - reasonably practicable. - 4. If You Share Adapted Material You produce, the Adapter's - License You apply must not prevent recipients of the Adapted - Material from complying with this Public License. - -Section 4 -- Sui Generis Database Rights. - -Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material: - - a. for the avoidance of doubt, Section 2(a)(1) grants You the right - to extract, reuse, reproduce, and Share all or a substantial - portion of the contents of the database; - b. if You include all or a substantial portion of the database - contents in a database in which You have Sui Generis Database - Rights, then the database in which You have Sui Generis Database - Rights (but not its individual contents) is Adapted Material; and - c. You must comply with the conditions in Section 3(a) if You Share - all or a substantial portion of the contents of the database. -For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights. - - -Section 5 -- Disclaimer of Warranties and Limitation of Liability. - - a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE - EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS - AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF - ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, - IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, - WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR - PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, - ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT - KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT - ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. - b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE - TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, - NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, - INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, - COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR - USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN - ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR - DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR - IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. - c. The disclaimer of warranties and limitation of liability provided - above shall be interpreted in a manner that, to the extent - possible, most closely approximates an absolute disclaimer and - waiver of all liability. - -Section 6 -- Term and Termination. - - a. This Public License applies for the term of the Copyright and - Similar Rights licensed here. However, if You fail to comply with - this Public License, then Your rights under this Public License - terminate automatically. - b. Where Your right to use the Licensed Material has terminated under - Section 6(a), it reinstates: - 1. automatically as of the date the violation is cured, provided - it is cured within 30 days of Your discovery of the - violation; or - 2. upon express reinstatement by the Licensor. - For the avoidance of doubt, this Section 6(b) does not affect any - right the Licensor may have to seek remedies for Your violations - of this Public License. - c. For the avoidance of doubt, the Licensor may also offer the - Licensed Material under separate terms or conditions or stop - distributing the Licensed Material at any time; however, doing so - will not terminate this Public License. - d. Sections 1, 5, 6, 7, and 8 survive termination of this Public - License. - -Section 7 -- Other Terms and Conditions. - - a. The Licensor shall not be bound by any additional or different - terms or conditions communicated by You unless expressly agreed. - b. Any arrangements, understandings, or agreements regarding the - Licensed Material not stated herein are separate from and - independent of the terms and conditions of this Public License. - -Section 8 -- Interpretation. - - a. For the avoidance of doubt, this Public License does not, and - shall not be interpreted to, reduce, limit, restrict, or impose - conditions on any use of the Licensed Material that could lawfully - be made without permission under this Public License. - b. To the extent possible, if any provision of this Public License is - deemed unenforceable, it shall be automatically reformed to the - minimum extent necessary to make it enforceable. If the provision - cannot be reformed, it shall be severed from this Public License - without affecting the enforceability of the remaining terms and - conditions. - c. No term or condition of this Public License will be waived and no - failure to comply consented to unless expressly agreed to by the - Licensor. - d. Nothing in this Public License constitutes or may be interpreted - as a limitation upon, or waiver of, any privileges and immunities - that apply to the Licensor or You, including from the legal - processes of any jurisdiction or authority. -Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the "Licensor." The text of the Creative Commons public licenses is dedicated to the public domain under the CC0 Public Domain Dedication. Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at creativecommons.org/policies, Creative Commons does not authorize the use of the trademark "Creative Commons" or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses. - -Creative Commons may be contacted at creativecommons.org. \ No newline at end of file diff --git a/openo-portal/portal-common/src/main/webapp/common/image/mainpage/icon/1.png b/openo-portal/portal-common/src/main/webapp/common/image/mainpage/icon/1.png deleted file mode 100644 index 59ba9a6343e0838ced017a3ffa91ed41733fc0bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4053 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 Ts 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 ZRtCP}Hfv=&;&|}K46Yhqsf9bl{0B~DS-$`P diff --git a/openo-portal/portal-common/src/main/webapp/common/image/mainpage/icon/3.png b/openo-portal/portal-common/src/main/webapp/common/image/mainpage/icon/3.png deleted file mode 100644 index 318efa6b8c11061b7a5d3f90eac232420987f676..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3948 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 diff --git a/openo-portal/portal-common/src/main/webapp/common/image/mainpage/icon/4.png b/openo-portal/portal-common/src/main/webapp/common/image/mainpage/icon/4.png deleted file mode 100644 index b8de07abb0ea178263af88032de67d1fb557356e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3927 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 diff --git a/openo-portal/portal-common/src/main/webapp/common/image/mainpage/icon/5.png b/openo-portal/portal-common/src/main/webapp/common/image/mainpage/icon/5.png deleted file mode 100644 index ae36671e6b4d880e3168e6e631174f511a089aed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3185 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 CqBaWv diff --git a/openo-portal/portal-common/src/main/webapp/common/image/mainpage/logo.png b/openo-portal/portal-common/src/main/webapp/common/image/mainpage/logo.png deleted file mode 100644 index f0acf46d97cc58d5d5abd1816d56627b704692d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16103 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

    ENn* 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
    pnGMNrr1C@*_JL|<=jy*GyM{4h1L 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

    8;Ig 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

    {Z=~lq0Tu`RJAM27+iWN)% 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 diff --git a/openo-portal/portal-common/src/main/webapp/common/image/mainpage/pic/3.png b/openo-portal/portal-common/src/main/webapp/common/image/mainpage/pic/3.png deleted file mode 100644 index 83d03656464eda95a98c8554d4dbbc3ee9233d37..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 65383 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

    7pu%n^(MW)bG7 z2(q&|mi3}pUw75aH$ENy)0IP#HWHM4#KAuyBK0TS&^LjFg7hm=z!;PK6 z#!i_RK6q*xwPnR%r!^fOapl1WOKGGXf^Z|gAqAWDY-Wpc&>LRvZLUEtZ1}_B-tFT0 z;lbU-Y*JNqs<}_Yr2rMv_tBst0%p!_u5Y~jkw;(l(93e`wl}vKbW!`t`{-kcN)R)o zEH49Ei!dy+Jj)y!tCY=+Lt`}oW3yo$Gp!D!dil~Vp#2D2$2$m3xNyh{e zK*w}W1U}_QrUDE|P3qPRC54TsQlgsyrmYA74f?}=S!S7QGf#r}IvngD`ldMxL^vhrW&_=I#Zi4H!myy)9C!&Nl3|@^PBtVkPNk1=vK?IFqQxMqfxz9fL z_kQ$8-}#<*^!sI54mzgJORIQ9#H0xMQx25;&fDHqmgW5qU2Z}Y#kNIBcPS?aZnPH9 zUAgF|`?1Jmf!gI5$Jkz&E0S3yV_x^V*A4PwF`s?pBOfWUj1s!VV)AlT!N&F;**~o$d1E48JV~h-x&1-ZD93hI7eYCX~fu7AJgA6SzR?~^pwX#;h-@JPl>Uq@! zXw4y%nvEDabgfhxO{Hc0a*d9NHmQS?2{8@$5zrMb?`QoY>p4?6bYKivmCW~g_AY;#*IB2jJ5XsxeJ?Hx1YOlornx2x^+>G*L&m~LT<^jS09$n zOaL_25Se7>ZhZpOT4IEVG}-OBYU)Wdt(w|50x=s%7-f{_Jt}fWWIcm%(Nj4<2Y^Gw z#GgB*C!P}eiO{*+7}x6$2K`~4Ws!q1PNPnbCg~Q+vrI*o%lK6JsH(LVK-XOMsz)CF z{ZHO{)3<+pmJ!$Wq7KewMeb%*ReN+6%F_DA_xoAqOjWTO?UfF#`OV*Y-%tF#zxl%T z&ke_81jE8DGgeHZ+q8UzUvz{cQ)!K9TinlX3@wZ9Amw< zHrm=;yM5>R>2!fCso_m^*OEK2?EQMf;p<-e8UXm@Q=fhQ>8CG^*9`y=apVw%!63Q3 zEER2F5j3V19*Hi=w2GMJoaLe+Ck-)enT9Fok{bj> zXeO2fSGcaQbj>f(#Q)T%Nz!cUciy$E_>T=y!)^JwZFcojt1i` zW)T)W%k)S$SUa~MO23mLasZIi#~@Oa{r#g~|CQhUli&6A*`SwZ^-18ai7}~~Ro*}O z@n=8qk-3PHXw-W;_zr+0%Dj2;{G$&)1OOj?@}u=+lJ8tVg%EsX@vJBFxd5)M^}UZ# zz-4)88s!MBjR;dkR8>`IY7jQYL_y<(C>IH2rO2`zF&EL?%_fs@e7E* zqy%7W4_(fbMV4x@VCI5Bv8fiq-dPwFE(m0~LDGoYcwbf3QpTV5G{Q`TgTbIE3u_G` zCD>-}GO|w5=2=cz(Hn1+!}YcCxUeQH=21g6pQ$PfTk3#P))I+9Lqu>Yy+gj>vw0nwXd@}?=1@F5$md|X&xJ9aplO^3=xtF;M57zVNeqmvqj)9MZuD)xoBck z#ms@TwkV1`&n+WHQBdDB%#vl9F$8jkv#hQAM;5`q@wE>>@ZclO`7id0)7hd4Xe~Ks zrd1H7zN4ZrbuD>eR7AuW7e@W!10Q(eZ~vXYR#hj1{@_$Ao>KBak?|gm$8t_?jEPZ< zHL3J6U9S9%>(BqEUwrE~{mF0Y4~LcatT8GnGcZSh@^~Sizfs>k1ZUA}BK@UqWceOk zK5*CWyLR=$MF9BN6CW{TkVqrftX1IM{k^)W*EY7i4^>t7hND&+j!S1o>znBJdc)B` z>jkJ5&NX6&y>NIisTv-x4VVT|Ff-M3_s(R0SD0f|Yw6(dFwACWs!dUaWd4cEg%z20 zbFwPTvyo$aRCI;Ivl4TmdPdD*t;w7t>jW{fA~UKwFe1W1z%m+CX03QyFOHA)B>3nX zjv_3;5+bt-A{xTh*x6|r3@sDrA!A3b=w`H&FmpyA5 zjdf+}77fy>T8PLJCBH_;HpI>spsGCg)t%|y!Qw7!?W~rheG9r)?jKZ-oqj7QL=AFO&xBj=I zlcT|Ks7gs>k|YM0@XIJ2f^QjH+#b|a`}q)zu}Bm{$n%`Yc;)NQ-TLK!|0`en&0ja% z*s7W+ARwYF%ut|ag{z0T9?bxZXh@qo?|mvGm+xOP<`u7a#c(icV)MyQeyS{b1UhZ% zXtG9|s%cQc7`$`)`e3-;8;)Qpxm0M)wjzKgFZ(LW0=}w8!=W+)bFY^%s7M@?5*mpT zY~h^7D#V0j2d8;RDl?PSU`ZcM zkF2$h$O>4Fo>VO=qREINbEp@p9ISC|m~Du@h8R){6oQ1nQIrKxV<$pS8APXwf0t#> zW^^Vj6|A+x{(!fz7>?GqFM)NeOu)XXBvc|%A<0}(RS+TVBb5{lc0f0jPOGG|Xv5*>pL@^l+N-{K(CgXKbEK1bEvloT1u#wJ`{h7YS+w7`KmQB=`M2Nk z_Tk#tI?EzNWQ}ErXW)OUKzHYujI|+n=Ny36^&H9CEbo;)U)S$^+i!pISAOO8 zefLH2s3Nh-*LPrN=iu(MO^D2X8I*NK)}=~Bmo8j*_~C~D;Dzfi?Cf;x;i$o3hJkE>9h zD1md<7;B7Os?ytAE-mpy5^*WLOp_+dP+LZ%AFq|zZW>ROvF+b2ku;S7qMp`Z06@l~ zwMrD2BZp`(N4A;}MoEYXkw6t=XneDf7zqRc7zm6p#u;)2+Wr{UBZsI_6v>#pD2qI^ zc5Q8~Uk*>B+*99a-DquNXk1?Qoy&~11hP1;X4B(XEx4($jX7sZEMg#osFW7hD>Zlm zi7OOjH@U#Nv{6)aPQ^_a?_*h;(4%UI(PH6jmKld=;6-%(6%PxfZz}*NBSh-#kiZb3 zA!7`4sOu_o&RCo78Ry)f-}l}(F=6gQ! zWLY}niqOn{>z9806F>8|fAX*X?Pxf>eRmpJkzu^+q2GPiEC1+MT)cWY zFniCvbL-*!){zKu2P*+s>bpAZDi6xuwfpbCa_I^HJn^xQQPd(Y>JX3|a{wZj_W+=2 z>R@W-NYE}a36j!TRDd-YI~Z&_LBRF3^-K3%J-@R903Z42N6u|-1r`=DA}kRA zTwYjfQVK$z<%Xzjq?k_$x5{Kobfv_=Xqw2m$zA56#Go<204?L1mQ0hDj@@}5S`yLeJBEx&=Oi^qA}TE%7~AeilK4!PDP`?hK>#v_2qT~u zKw*x`WHL&6S4Fi3Ged?4ydM1yDw*X-lH?6{m)z{6a+q=2%q~D%A72s&WiX zwaA^((eNu?``T~+wzpipaN(7Y)^E7FdEa^#cW*;kZfuW#Y3|WhIbw`SZH6%>*&MV5xB&uw@6|x{vC8kpWNkpIS6lRUGB(ba>7tpo?AR-_Xh1jm`grXvm5l{vIWB^u1 z1W_W12CSe&5%J!zBAF-}e5k6r30^>)0U`>aS2y95+L#$iOKl?xZu zX5*e*c-ezGKhVhm@9x8J6r<0wQfAcy+uPswjbHs!zw^O6$M(10{yU4m{1^V|zxc_` zooji&zm>^5-}PJ1?>CnpdfET)U;pc)>C_a(DhFrTArMheNds|EBruZlZ1fDGY1wp1 z8{^TgS(qbYQdR>R0zw5?%;%qa;$v%@Tc3&Ha8D}h7Q|8XlQqZL<>CByhLKOkiwhf7pELq#l#nehycxgxO zO05k?Uac>eWd9`UQBdo$JS!vyA2o^qfv6xOsu}X0N5bR6s;H22zpdj zWP!#nlDfeNlZvQRTjR+qABb{B{2qLBc({A(&K`4&(Kk(9S9S0aRY!x;7P$emWPGP_ zNY;S_c%W6(QA(y0wZ@vkz!(cfu4@aboAY9Nw#=O!I6Ew|UTzaf4fI}6%#wrLiHSR- z0-&g%G7CrM7z04srFu`s5jj+dTrH}Hzv!{IeA72yy?6-;S)u_1m-0uWafI^)We&zW z=;yt~;#(fQ_R!kezk2+`k3aRoAAIP2|BwIS&;FIa`ww69WpB>p=p!F`vNrtT4?OX^ z?|zTVa#~TsrhiDntrm-ODw1vW&wLi~u?)g)z1iI{3n5rbknUmUtaB+EZZ?@trYB}F z+Q`>gpj#qnia1Qm6ION3ZLF{NZT1Jh{kwPW-p$EWKIFZ@V6g5LICA2sxAUavIWV9> zWds#r1wcY!0R;ppdi|a4?Logko17Q}rhk%KCQ$W>E^5I_Z#RXwsc0jeM&fM;Q8MOFx?!oWc|7W18EaU795=q)6tJAiS!*?g+#Ta)cEih!5Spd)xgM{dvBhhFOh$YL>WqIUiU=|j62;y+AybveIHg$=@ zqFvO-3OA>nH{WB=GKQAURzz&?llEuXTG88a@bVgAO~4XeYCm0GZbPd`J!nWRn0TkD~dSmTP%z-WDt-#Xb_^d(Dinxttg_&p&1E?Oh3z1il%Oo zu-YJ@L6bRSEF!XS)p%cf4GdsT8OW-toD^wo;I$z_O9rhNBx3+E#UR==Fqhmw$`#npSgK3n;-w^-~Ew?AA0EFmp$+cKl5`pZd~sVd%~RDhf6X>`oXt?_MnJlEuuoy zsHzcE31~@*K2w05`Z}4J$Qa{{A!D7fCRzDI3?h-6dNH3LA0KaQZ7eSnZV!n9Kxy5% zwRLB(su#!8NzJgfd7&7L7j+FP9j47B)e?fRC}p{|Hpak_iIqVkbBqiK0%XzFtaTNw zDO2n6ORp=0MBv9$)eYe?q2X-pAg6>E z08#Z4ZEn`qhoiM&Z&>DK<}!;J8E37b+}U0~?+;6xnJ6Jhh#CTiD3LXVr+4euZmyMN z!`9d&9!{fKV@>W{-?}ntvsj$F|H@mw^;=)|z=Py0xAhH?Mi*ufgDPTwymR^5r}qy3 zU%&RY4}9>$&HjO?N|u`}^9<+LvcL2-UwUaYz|7scefvj$^zR<*?!W6j@9GW8R1~$= z;*~erD(7}-YB9#N45YJozE!Lq;u+wJbIuqmUF1eOLLr7~KIa&ZPL7tV_w?;0BufSX z*T&;PzZYXTJUsM)$Lm{pe^57#NL;4UwkaVkiwdoCtJ!DW=cn`v3}S+h#<0tZ{-7-K zd{7o;uj~&BYlNIMnBUqXj*?|AH(A*$$|6h67v9rkc4OSmIgxG>Lu5`%(8ODbZPC@` zVz;3S?FA~QUu(HPQAD)XGX>K!r66#K z>I9Y9GkYKfo0@h;B1KL;YvxRrJIFFbLxju{Lf|IIGRiAWh0|t=$XaYO`v{RJ%QE)C z)S+3_8<)?2=ePZdS3mS}>l}+x$H31uy7?jG14R=}>4uxHdgQ@9(YJl%W24RfBkKb# zh9tg-VKJlE?a+6;@#R1DJMRZekH7cbKk;Kfe&=XEFLMsOYN=n+0GGlaYfK2BDul*m zPE{iZJ=I2bZ=8;Bw~9wf3xzZcV&S%&6Y<_hjsQ^Cb(fhFRkhdajn54Ynx?6Hy%Lco zlatw^%6lUQn9b(aT0$m(>xQh$ zi!21OHfJI4Lo>Y*s(oYu;>@*b>=r@00`y(YFQl&SYMafoyD}@>bseGzNGXq0lv$$i zYC>Pzqi6(R0wpxgxw0JedyTIescLE>vrwCS*&?2l(WjA%LbCm)KhS~&L`D^jY0F7O zX(fsZ+Pd~zm{Q7DA#%=@!UReRMARsNHE6n+xFzmDMM;4G2`~jc<0%LWh!B+lv1$C| zWEy=_`KIjk#>1g8m{0-MS|k!AA}Wilbu5yJF;3>Q`AKzhIFXPt!<3_d0<{m4E(5^` z&cker@Byhwp#;yZ0Xd z$Y(Fz_rPFCjG1v|RzMZ>&5vGwVgIpb4ySK?@ESm6F$Y^CxEMmq#q8dVt8-zZHpd*T zCF_UEubF>m0BlIqAFu6KwJT#6DIqo#E9uTY>Y%k)9UnC*gD!+-yD=Z4$&EO z*2Ea*i<kbVKG4K0MTFo=5kOr zO(POQjG1#$<#=z`>^`OS6v!wNATl$VjJk-d{yI%XiaO1*57tg=%g`?m3+-;I%{ZDadatd5tj(0kP zWS4xNep!i^{u+DGnZ5Am!-1T@8^Za z_HIFA7F81!>bjX%H4(ZP6d^a{5Sf`dh8WwxM-~E$gh{uO9%@3AE=x1Xz^l484fOH? zB%(u5NH%6NB!ZKpqv`Q2jlmYiS#r*jS?(6Q*D0QskFe}mC|S4-r2+a%zKabUg?UB% z+(wfw^NUk5%W^Cxsj28JIM&)cFUq1{=Zl4#`=*Xb{RR+1XhPG(MuJC)07>>Kt;!Z` z8<7e|P*$#ZYJqYqd2`rSHH*Hw}WDrkPBRqePcEW(ZM4#Mg}?MDHPlH@xBXuX*IZzf)yz4I$dM5s zjr&BjYP=}cjR%AnqX?rhF3%Z_2!{}2@Tx+_sz{a@W35J6QYQi1lhR(3#^hPnb6^c- zwlKzp5SpfTd2S6IPZu|?KOg*Yo{`I3S!QMKRQc@GvrD#WGda5?hh$78d~v#y1!tmg zDs`4oAwr145}L@7RhhLr8p@pFH4}9Px;7@sinR;vgeVf#3kM7lIJWS|E`bQp8OjJy zNL39JFD=w6g2-*Y7p(kCET@xeW@aCJ9b+IuAA+**N`!pV_`{QvNmXMj2!*@(Nw3%y zRgU6gEc?Azyz+}KoIlUj1@>T^A!}@A$P5PFmA;qdDnQ0g7qg@333%^0D%i}p&CSig z^1|(#H=lma7*rJ`a?YOH+8FhU+Q;3)qoc{Jt|~BSoSoJ6`#I}x9sZ9xiJK)NM^XTJuY*MaXwqXpohkw3W%~8WH7lYEz+WjsszRuGLAyS zr(w&>bQh2$-VxyR3NWqX_Z}6Wih@0V@#4wx3AcX6HtGTZV&wUJKAB9CW~phKrfGt2 z8Xto9ZSqU-A%y1tZtKiqEX%U9yoSB^8SafS=d7;Gs-nj3a<`1#NHl^*SO{SOYFW^h zKmrR8FG#%5V2LN*5Ii(A5}>x!Psk4~kSxG52wGr+gfT5OgMn(-T$LF)#gq|o?>%P^ zYb_r3xi_N9e#%g$lo4_7-TUnQumAu4F^u7AH&#Fpt=2)Flk&EV+#d=;1Duv!kQVL8NHcJ}wa z`1V`-dwYx&ORPED&@}Tl%w}zp)P;tS%^;keethuBVzo>qGo!L+=T$YvI1GbxScRq# zT-$cDzH7a%R>RrZA{WUi17c{J4?p_o@Bia}_~(EA=YRI=KeMy7t!s>IeLXrZc5-Cn z2)--n`Rv8J&!5=~-J@^*!JoL<&xJ-45iRH&RV4P#x3NhS^QxpDKVJOso%b%x-?)7% zgs?d^eXd!cp0bb#*0><&*g40JG}Gr=j5iF(tM{DA0zKg{*XkLf_ukAz>|(KE_O0_M zHWALMy9^B2le4lM$8iauvwmiPF~-o&Dw~6um?#ToDa@`Gj!xj|&o;plhi<+lhG5dp zTOgA$f(Zx8X*DVzpDoUhAM5a(-1J;r3vsyCHt_0yxaR281UGFmQJ*usx_kHUJ$v%( zlTRMlT1%~(`LJA`93S^xAIDKuVv0GXQgSIJr&LObaV&9+F^=OHhjAEIF{Yf$wDDA< zvaL-3>#i(AT}!pP9tz{;u32NX6R-7(!S{3Q&B^vZT}I5X4mGrXSxp1XJa3y@^Ena% z+LM#>VazI$OG+`tI3Quy_l@&S31;TJ-`(Dx&)QP5f_6>gT_EC}y*(vcoS)SPz9ZK( z&B3E571eG^fFPpI(P|ii=Unt6#wZ2XBsEZV&K-RG>9@cAkACO9_x{4q{n?jayiZu0 z9)J+NjPdv|9v;%p9^KmKyZ89fyW7FLzWd`}`F$TfdQ^z5+tIe8#RcWW&by|uBEs~` z?>zji4-aOzifR19z5AO&qS_S!W)lz$Yr2!9NM#|g^XwdxD_Cp|3;vve@@jF~n#g?V zO&})AP}9prL=i6*s~AEEen=6t%!3C&=iE3Za(-)PhZt6?RnCQ-lU&j;ct^Fj5C9z_ znzd~^k!voybS7**8US+^SPcW@(lp*XWCKMc$8&GsW@ksMVR^xMg`s!Mo}EgKKmFe2 zIqTiE9_T((8E_d;G;_DF-MD}6rFVY(zM5X{`X z`=)88Ya*HRK><`z4b`)n19pZm#B`oU1Ux+-7KpZm1L)iKjr*?vf^*KXXL7k@=R()@F(&j55CqCuPU8@tG>xjRR;w{3 zcFubTNRo0IMiDzbJ^J2vzxV$8@BWp)^b22o`zw9d0XT!Gc~k@RVN~(++r!Bd8Di6I zl|kC;d-s@z;}bL!191ezfXL40hMkl@^`#fzdvthwVvint0swbke6hi%e#9#So2O$w z8ZsiGk(r7pdt%?P^PH1GnGj`byVqnKp7y4zHA$CqmCE3iB8cdmGXwz}Qyj+_(-?>4 zotrmr+_;f)S}qpLG4J2JwY9S|jDy6OVl26&VO5x_MqJGV=)7-RR09N6gXwAJYRML& zv1^)scf0l6dgpkIqcJt1K}545m;B(QoG;D-L2ymqQQOjLVTfQVR~Eqf&)TXX0!T=F zb&-6gQq#=!eShc9?Hf05z&m)g*<%=oqh|+;t>85`tPkpLN}Q&B&fyeJMp#V2ot+41tzoZ{)(SzJXhoJ8rA5#a8vn>+KK zCREYn6pV3D5nN{s5YTy7g=tkaHieQ)$~h5&NGUj(Lj`QLT3wP?t7ScB@4TAkluAkt z(Ru${zxl(%XD8qI#-I5UfAo*Nc=Jxf30BK?cY75=d-DZ<_syqE72e<3-Co`4b?Db|!8pg68LO}FvrQ70#&V*ohN!D`nM5QgB7$ZdJOQK_hvg#1m8d>BI`Lhv z2C3-z$)T#;xP5o4n`t)_wUVa>;1r{cL)DsaGRmzL?R8N)Vpadebz57z*D4bxC6R1s z0G`0WtWBc*@Hm`5Q8XY8ft$vq=tPQXF#rZ2qN&x(rjlu$9b&VrVHo2WJMZ_mwl5G@Bc{rY z)?%U>t{pXRYxm~4cgHCe$$@A;p58cn=i>1Ht`<*994Cds%+%r-uV1@<_ts7CT**1c zSO@2M;#!DVsoKPBHkuK+-r2iyA`pZ=`a1pfBntB{LMf2jjw)L4v(^oVYWj%cg6YBryuXc62m;)yo3Gj zAky5vE}n@IiOqWuhm-Swhvo8Xuip61U;pMW{lAOk{DAl0I!y*qT?pam@sr)X9YJzFu=l~aZaxRI=T9GBTwJIMak%+HO%bAFS6C6KiU~E)&rL@@ zn1NXV0}iYr{Cb1T&i?TC0X2!mds zTi5-7%A^=3T#7tUmbgqYpp)_~Ps= z536yt%u*21J13dI#S7}rp*t2ng&xp>8<$efa$pJDMTQ}cs{u^b_1v}^2O<)~AN}@k z_w)I%yy$2B-P?C&p+_+>NjXZ60O*`ovs?->G179ec>3(*TJOnV$d=-u>H)0IW7lwo zjR#fNT!K2b10q(zoFf9JMf$<7{Hr!Ee(uYES0v_`MmgRhTArVTql0BRDa_76>`h~ysPrm=(-~H(6qlc>U@++^lZ7U)r zWlE`YVVQos1sLEJA7`xx^wlCj$$9 zHtV;ESPe>wCPj_6cK709@$~6qax|N5HQgM@_kCA`+QEAhGV(yqq|_P>WW*`Ajff;> z&1{?5onH(L=7K|JhvX}glVLnci{-gNs$3vq&T2)~!Q^(^IGENIaVk<&g$XL({j=`r zYC=~b~nRGRWLxqm?FXj5h`fR zt@pm}MXu=(nSI-Y0Kh6HB5K7zrmn|Hi%B)gNoy((m>}Y8HtX8XGd?>yB*yK2etP=+ z;OUcW;+m!bn=!VvRRc`a#BvYTH-|giA45BeNG=A_+Vd@XPA(gB){;|_Qff2SVq7V~ ztna&~?YnM!)|;tk*R-t<0jB4J=9KHeTr{Rpr06tM^7I<&|F@9 z^R2$`2V2&7Ap&~u6SKgi7dphIY4YeR@L|$@D$A?p#4FTm69l3wGcKKEG^m_nvueLL zQ|D_Dn|bF_jFsmoDw=KY&fV2Go*W+*v2EnG1x+*#Lw%irD0DOLT@4r#qSd52SEB}+ zV7GT?duyvfXHXE0y|+?g9Q(dU(`D>6MpuzS7N+os_&>E)EY*e)vCr^l$&;fB5*Lk84ezRZFrN z7ziPVnU+OauEz1`=r{!LyeD!*9NKPcdv9xZuW4GaI+mR*$wkCUHZ2uJQh$sIIcn;= z?u)Oz{^d8{x_NEiF|93k)cSUJd*>@}zdeo>Bw5x-+)_k}iiu@`qMWrzVG%EeMP@eM z8&})U&(4mXJv%)=y;v?%Oa!zVhW-8Pool}M>T7`LnAFTM8zK_}8W8|EL=q9_d=(*7 zt!F?Ju*^g9Sb!0gz)W&kzZZapr4%NIp^OA~gV*9UeZO?Qg$u|K**Xos_e08YWC>P%WF&j$YR6A`uzW zG-xyv10=uy!W)iVNf}THfmjWhT~h=Iw4L=Xor^?vyM5QRO`BpgMib1ElUWA@jdQLGPvsYpiEP^G%mN=Y%r5_8FBTErHM)s5@7yLsO@ z7A=*PQoS(sHLCHOQcBhL>TVgD&{1zVy5c9eZ1>v?A_!?c zLs~;zNuhv&h^@SDCEJ5f;wS%aW)SxFBrczy9%n4~UVCNMc&9=jb;#hH(?SKA$Q8?y zijl*%bqFP;c_07YU;EQvxV8W7U;fok9z75$ufF;v=Vr_0N~Ac)&ijCxkZy=%9- z`F1O%NGT=P`Zb$8l(}W9&wQL-OumfCX$iCa{kyLsQc>{^2+4{hF+eg}(t|Dfh}uo# z&IyvB5&#oG?H~sLqkzO>fL_{}ySdxny0z>4wWQ4`z8YLQ$Fqi!OwFw|b=cUz)XY$( z(}I#tUS@+UIHTIYSzRzlHEvK>8aLigp2?}k70j@dVqi73TCIMfl2wK=hTyllc`Dgd z`lh>m<0h!_nrwbqx{aFw7TIMKXsx?mIsO(@Q$qtGEPT(MpU+LmQ8_ zzsuuDC6W{k4Y{drfPE+;MTb&QIJm7{1Ei9zB%jXz_Fw#yuf1^VTi^NK!v_bX?zOkx z?t56pNJPPhKs=*?Sk*@n&L{i%2PT)LRRuK8KJ(03(Mv&Trpt<~xhU1&WwL6M_$c z7?{aBcerw=5p;^$6EeplMJE@QnUP`LREcTouQM$A5y}AvlN5O^3>wUSz5!aNJZBS9^kOj7tVMWejCAo!z|mA^rL_*UVAh&Jn8M96)^UGNAdi%SA!&`f~E;ZHlS2iUdRI=;orJv}> zB`uE9?AY($pg15S^*d#8Vdtk-q97BJBTPBRluVVm@gZ0d?zceAtS}0d`O}X-9pd?y z-*{EtfB5j>BQ<>E&9{Q8nfa#S6eowCs3CF)N)eMH~b@I7$m*M12 z1<+Ems(K#~d3$f)IhTilop-(gVwYp3Gvqj?ap0L_;0n7)G3JtS;=%~lb#mELJ7vzu z%s~9ky{2oMdU0}Ia*8pxU0?z=Ig5C5a#qr^MRdfDNDLH>ikJwPh#4xPRgN$Mm`TxG z#DIP9>@G_PFIVXF1a<%Gqi0ES799o~#BbAfpRcoBqlPYgA84LCli4ta<_zXhJs4z1 zLuko83S|;&su1`dBQGm7hL0c=CupZIP_RHE=eF>H~UOSq0c5f*P`9zN>NV-*~>irm4TK`ZvV?Sz^XM4 z0LmJ;R?zir=%x24O%WXz2I!i`ArwM2Y?(#`G-brV4xBR|QW}QE1+l}9fM&zV@xS@O zfBOEv{`E&spU>z0t1sQ_LU{P-01;n%^R1W?05nZg!8G-(!`?aP6GbpVp1P#2TtV2e z;(C~kgcYGs7ZAJ3-7TeLW;VmN?Yr50TrR6M#|2NyDb=-yU{G~fW(I>4lc_R-5n7GG zJ7<8Kd)`K(B>?sPi?4lo-go0-QADs5Pk;z2sET0X%FwP3a5%=sHKA#PACyRt%!;Ui z5Goj&s1a0RYR)Ogh{R1dcTEe3BIOczjhib9IJf^(Ow^e5hRIBc9#J@31skDRy7@UH zTCwdM`Tsl>VjyBi0%oGdfILAOw89js+1@!|6;ks|h|b75r*#vRsffMCQ3@g;S;N`| z3{IG}Z(QH_c^kTbUBiLdJMs*U%#nH`$H2^vkP*N!5i%%psOsUS#Q`=I*1xOh13&xs zpKUg+B?Ls|QfMX2IfSO|X^o07RaA?s@q?!a&yJ4n-@diKx5vzDnwNcss6F`#r&aN} zf8EF_0tRXf5P|~?#DPdOdn8ovHD@>9(P2={&JijGW`d?5jF`;vxLTr7vG9W*{Fi_E zE5G``-~Eut&zrdda>=*$cL43-!-weH>ub*?2x^8Oe8Xue@r*;N%olv zNiqiR~dzBV4#3#ptczz s=A4Vjd~3e7v*()5^fRQttM`-t55tzPmRe9cyZ`_I07*qoM6N<$f_z53I{*Lx diff --git a/openo-portal/portal-common/src/main/webapp/common/image/mainpage/pic/4.png b/openo-portal/portal-common/src/main/webapp/common/image/mainpage/pic/4.png deleted file mode 100644 index 552cb1f2991df6d0910b7e417a59883442aef995..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 105028 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

  • " + - "" + - "" + - "" + - "" + - "
  • "; - - var menuContent = ""; - for (var i = 0; i < parentMenus.length; i++) { - var parentMenuContent = templateParent.replace("{id}", parentMenus[i].id) - .replace("{iconClass}", parentMenus[i].iconClass) - .replace("{i18nName}", i18nName); - - var childMenuContent = ""; - for (var j = 0; j < childMenus.length; j++) { - if (childMenus[j].parentId == parentMenus[i].id) { - childMenuContent = childMenuContent + templateChild.replace("{id}", childMenus[j].id) - .replace("{url}", childMenus[j].url) - .replace("{iconClass}", childMenus[j].iconClass) - .replace("{hrefId}", childMenus[j].id + "_href") - .replace("{i18nName}", i18nName); - } - } - childMenuContent = ""; - - menuContent = menuContent + "
  • " + parentMenuContent + childMenuContent + "
  • "; - } - - return menuContent; -} \ No newline at end of file diff --git a/openo-portal/portal-common/src/main/webapp/common/js/core/openoFrameWork.js b/openo-portal/portal-common/src/main/webapp/common/js/core/openoFrameWork.js deleted file mode 100644 index 78a7e615..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/js/core/openoFrameWork.js +++ /dev/null @@ -1,3701 +0,0 @@ -/* -主框架 -*/ -/*string类型的去前后空格和format方法*/ -String.prototype.trim = function() { - return this.replace(/(^\s*)|(\s*$)/g, ""); -}; -String.prototype.format=function() { - if(arguments.length==0) return this; - for(var s=this, i=0; i ul > li', panel).each(function () { - var color = $(this).attr("data-style"); - if (color == configColor) { - // 匹配上了才重设默认主题 - $(this).addClass("current"); - $('#style_color').attr("href", "css/themes/" + color + ".css"); - //if (store) { - store('style_color', color); - //} - } - }); -}; - -function setFrameWorkByConf() { - //设置用户相关的框架下拉菜单是否可用 - var helpMenuItem = openoFrameWork_conf.helpMenuItem; - var aboutMenuItem = openoFrameWork_conf.aboutMenuItem; - var flightMenuItem = openoFrameWork_conf.flightMenuItem; - var fullscreenMenuItem = openoFrameWork_conf.fullscreenMenuItem; - var logoutMenuItem = openoFrameWork_conf.logoutMenuItem; - var changePassMenuItem = openoFrameWork_conf.changePassMenuItem; - if (!helpMenuItem || helpMenuItem === "false") { - $('#uep_ict_help_url').parent('li').remove(); - } - if (!aboutMenuItem|| aboutMenuItem === "false") { - $('[data-target="#aboutDlg"]').parent('li').remove(); - } - if (!helpMenuItem && !aboutMenuItem) { - $('#uep_ict_help_div').remove(); - } - if (!flightMenuItem|| flightMenuItem === "false") { - $('#header_notification_bar').html("
          
    "); - } - if (!fullscreenMenuItem|| fullscreenMenuItem === "false") { - //$('#trigger_fullscreen').parent().css("display", "none"); - $('#trigger_fullscreen_div').html(""); - } - if (!logoutMenuItem || logoutMenuItem === "false") { - //$('#trigger_logout').parent().css("display", "none"); - $('#trigger_logout_div').html(""); - } - if ((!fullscreenMenuItem && !logoutMenuItem) || (fullscreenMenuItem === "false" && logoutMenuItem === "false")) { - $('#full_logout_divider').css("display", "none"); - } - if (!changePassMenuItem ) { - $('#changePwd_labellink').css('display','none'); - $('#full_logout_divider').css('display','none'); - } - - //设置二次开发者选择的框架皮肤 - var defaultColor = openoFrameWork_conf.defaultThemeColor; - var panel = $('.zte-theme-panel'); - $('ul > li', panel).removeClass("current"); - if (store && !store('style_color')) { // cookie没有才设置默认主题 - setThemeColor(defaultColor); - } else { - setThemeColor(store('style_color')); - } -}; - -/*新增的hashtabel实现类,用户后续iframe的缓存,前进后退时打开过的页面的菜单id的缓存等*/ -function Hashtable() -{ - this._hash = {}; - this._count = 0; - this.add = function(key, value) - { - if (this._hash.hasOwnProperty(key)) - return false; - else { - this._hash[key] = value; this._count++; return true; - } - } ; - this.hash = function() { return this._hash; }; - this.remove = function(key) { delete this._hash[key]; this._count--; } ; - this.count = function() { return this._count; }; - this.items = function(key) { if (this.contains(key)) return this._hash[key]; }; - this.contains = function(key) { return this._hash.hasOwnProperty(key); }; - this.clear = function() { this._hash = {}; this._count = 0; }; - this.replace = function(key, value) - { //有则删除后增加///相当于更新 - if(this.contains(key)){ - this.remove(key); - } - return this.add(key, value); - } ; -}; - -var fMenuSiderDivId = 'page-f-sidebar-menu'; -var fMenuMegaDivId = 'f_hormenu'; -var megaSiderDivId = 'page-megachild-sidebar-menu'; -var megaDivId = 'main_hormenu'; -var openoFrameWork_menu_horizontal = "horizontal"; -var openoFrameWork_menu_vertical = "vertical"; -var openoFrameWork_menu_fmenu = "fmenu"; -var openoFrameWork_showNav = "true"; -var openoFrameWork_smallView = 960;//原来为992,但是在投影仪上不准(投影仪设置为1024,但是实际尺寸比1024小),边栏菜单也会被移除,这个设置一个稍小的值。 - -/*下面是主框架的核心*/ -var openoFrameWork = function () { - var defaultLanage=getLanguage(); - var isRTL = false;//文档顺序 - var isTouch=function(){ - try { - document.createEvent("TouchEvent"); - return true; - } catch (e) { - return false; - } - }; - var isDesktop = !isTouch; - var isIE8 = false; - var isIE9 = false; - var isIE10 = false; - var gdocTitle=""; - var _sidebarWidth = 225; - var _sidebarCollapsedWidth = 35; - var responsiveHandlers = []; - var cachedIframes=new Hashtable(); - var cachedIframesObject=new Hashtable(); - var breadcrumbBtnMenus=new Hashtable(); - var _menuCategorys=new Hashtable(); - var _iframe="page-mainIframe"; //全局变量保存的是当前正在打开使用的iframe - var _sceneURLRootPath=""; - var _hashSource="";//信号量 - var _isClicked=false;//信号量 - //var _breadcrumbSource=false; - - // 皮肤颜色 - var layoutColorCodes = { - 'blue': '#4b8df8', - 'red': '#e02222', - 'green': '#35aa47', - 'purple': '#852b99', - 'grey': '#555555', - 'light-grey': '#fafafa', - 'yellow': '#ffb848', - 'ztebluelight': '#3366cc' - }; - // 获取真实的设备窗口大小,参考了 http://andylangton.co.uk/articles/javascript/get-viewport-size-javascript/ - var _getViewPort = function () { - var e = window, a = 'inner'; - if (!('innerWidth' in window)) { - a = 'client'; - e = document.documentElement || document.body; - } - return { - width: e[a + 'Width'], - height: e[a + 'Height'] - } - } - // 初始化 - var dealInit = function () { - var sence = '0'; - var menuSence = getUrlParam("menu"); - var confSence = 0; - if (menuSence) { - sence = menuSence; - } else { - sence = confSence; - } - switch (sence) { - case "1": - gdocTitle = $('#com_zte_ums_ict_framework_ui_page_title_1').text().trim(); - break; - case "2": - gdocTitle = $('#com_zte_ums_ict_framework_ui_page_title_2').text().trim(); - break; - case "3": - gdocTitle = $('#com_zte_ums_ict_framework_ui_page_title_3').text().trim(); - break; - case "0": - default: - gdocTitle = $('#com_zte_ums_ict_framework_ui_page_title').text().trim(); - break; - } - if ($('body').css('direction') === 'rtl') { - isRTL = true; - } - isIE8 = !! navigator.userAgent.match(/MSIE 8.0/); - isIE9 = !! navigator.userAgent.match(/MSIE 9.0/); - isIE10 = !! navigator.userAgent.match(/MSIE 10.0/); - if (isIE10) { - $('html').addClass('ie10'); // IE10 - } - if (isIE10 || isIE9 || isIE8) { - $('html').addClass('ie'); // IE10 - } - var deviceAgent = navigator.userAgent.toLowerCase(); - if (deviceAgent.match(/(iphone|ipod|ipad)/)) { - $(document).on('focus', 'input, textarea', function () { - $('.page-header').hide(); - if($('.page-footer')&&$('.page-footer').length>0) - $('.page-footer').hide(); - }); - $(document).on('blur', 'input, textarea', function () { - $('.page-header').show(); - if($('.page-footer')&&$('.page-footer').length>0) - $('.page-footer').show(); - }); - } else { - $(document).on('focus', 'input, textarea', function () { - if($('.page-footer')&&$('.page-footer').length>0) - $('.page-footer').hide(); - }); - $(document).on('blur', 'input, textarea', function () { - if($('.page-footer')&&$('.page-footer').length>0) - $('.page-footer').show(); - }); - } - } - //处理滚动到 - var dealScrollTo=function (el, offeset) { - - } - var dealstartPageLoading=function(message) { - $('.page-loading').remove(); - $('body').append('
      ' + (message ? message : $.i18n.prop('com_zte_ums_ict_framework_ui_loading')) + '
    '); - } - var dealstopPageLoading=function() { - $('.page-loading').remove(); - } - var dealSidebarState = function () { - // 窗体宽度小尺寸(平板和iphone模式下)时移出左边栏 - var viewport = _getViewPort(); - if (viewport.width < openoFrameWork_smallView) { - $('body').removeClass("page-sidebar-closed"); - }else{ - if (getCookie('sidebar_closed') === '1') { - $('body').addClass('page-sidebar-closed'); - } - } - } - // openoFrameWork.addResponsiveHandler()回调函数. - var runResponsiveHandlers = function () { - //重新初始化其他订阅的元素elements - for (var i = 0; i < responsiveHandlers.length; i++) { - var each = responsiveHandlers[i]; - each.call(); - } - } - // 窗体重新调整大小时初始化调整边栏状态高度 - var dealResponsive = function () { - dealSidebarState(); - ajustHorMenuDropDirection(); - dealSidebarAndContentHeight(); - dealFixedSidebar(); - runResponsiveHandlers(); - } - // 页面重载入时初始化调整内部布局 - var dealResponsiveOnInit = function () { - dealSidebarState(); - dealSidebarAndContentHeight(); - setTimeout(function () { - ajustHorMenuDropDirection(true); - }, 100); - } - // 窗体重新调整大小时初始化调整布局 - var dealResponsiveOnResize = function () { - var resize; - if (isIE8) { - var currheight; - $(window).resize(function () { - if (currheight == document.documentElement.clientHeight) { - return; - } - if (resize) { - clearTimeout(resize); - } - resize = setTimeout(function () { - dealResponsive(); - }, 50); - currheight = document.documentElement.clientHeight; - }); - } else { - $(window).resize(function () { - if (resize) { - clearTimeout(resize); - } - resize = setTimeout(function () { - dealResponsive(); - }, 50); - }); - } - } - var changeSiderBar = function(hideAllMenu){ - var siderbarpos = $(".nav-pos-direction", $(".zte-theme-panel")).val(); - var sidermenu = $("#page-sidebar-menu"); - var hormenu = $("#main_hormenu"); - var fhorMenu = $("#" + fMenuMegaDivId); - var fsiderMenu = $("#" + fMenuSiderDivId); - if(hideAllMenu){ - sidermenu.css('display','block');// 侧边栏显示 - hormenu.css("display", "none");//隐藏水平菜单栏 - fhorMenu.css('display','none'); - fsiderMenu.css('display','none'); - return; - } - - sidermenu.css('display','none'); - hormenu.css("display", "none"); - fhorMenu.css('display','block'); - fsiderMenu.css('display','block'); - //除了toggle按钮之外,是否还有其他儿子是要显示的,如果没有,那么竖菜单不显示;反之,显示。 - var lis = fsiderMenu.children(".sidebar-toggler-wrapper").siblings(); - if(lis.length > 0 && lis.css('display') != "none"){ - fsiderMenu.css('display','block'); - $("body").removeClass("page-full-width"); - if ($('body').hasClass("page-sidebar-closed")) { - $(".page-content").css("marginLeft", _sidebarCollapsedWidth); - } else { - $(".page-content").css("marginLeft", _sidebarWidth); - } - } - } - //根据当前菜单在屏幕的位置,和一级菜单下二级菜单的排列,来决定菜单是向左展开还是向右展开 - var ajustHorMenuDropDirection = function( isInit ){ - //获取屏幕宽度 - var bodyWidth = document.body.clientWidth; - //循环,获取每个一级菜单在屏幕中的位置 - var levelOneAdropdowns = $('a.dropdown-toggle', '#main_hormenu' ); - //每一个文字span的图标、他父亲的margin\padding等占用的位置 - var marginCount = 5 * 2 + 17.5 + 2 * 2 + 30 + 15 * 2 + 3; - for( var i = 0 ; i < levelOneAdropdowns.length ; i++ ){ - var a = $(levelOneAdropdowns[i]); - var leftOffset = a.offset().left; - //获取二级菜单的数量 - var ul = a.parent().children('.dropdown-menu'); - var groupDivs = $('.zteDivWidth' , ul); - var widthOfDropDownMenu = 0; - for(var j = 0 ; j < groupDivs.length && groupDivs.length >0 ; j++ ){//循环获取每个分组的宽度 - var eachDiv = groupDivs[j]; - var maxLengthText = ""; - var maxLength = 0; - var spans = $('span' , eachDiv).each(function(){ - var innerText = this.innerText; - if( innerText.length > maxLength ){ - maxLength= innerText.length; - maxLengthText = innerText; - } - }); - widthOfDropDownMenu = widthOfDropDownMenu + getStringWidth(maxLengthText , 14) + marginCount; - } - //预估每个组占宽度150PX,多预计一点 - if( widthOfDropDownMenu + leftOffset > bodyWidth ){ - console.log("ajust class dropdown-menu-right ,id = "+ a.attr("id") ); - ul.addClass('dropdown-menu-right'); - //var right = bodyWidth - (leftOffset + a.width() + 15); - //ul.attr('style' ,'right:' + right ); - }else{ - ul.removeClass('dropdown-menu-right'); - //ul.removeAttr('style'); - } - } - } - // 屏幕大小发生变化或者移动设备旋转屏幕时处理响应式布局. - var dealSidebarAndContentHeight = function (isToggler) { - var content = $('.page-content'); - var contentbody = $('.page-content-body'); - var sidebar = $('.page-sidebar'); - var body = $('body'); - var height; - var viewport = _getViewPort(); - var scrAvaHeight=Math.min(window.screen.availHeight,viewport.height)-5; - var footer=$('.footer'); - var pgbread=$('.page-breadcrumb'); - var pageableDiv=$('#pageableDiv'); - console.log("pageableDiv height:"+pageableDiv.outerHeight(true)); - var pheader=$('.header'); - var childPagetype=!!cachedIframesObject.items(_iframe)?cachedIframesObject.items(_iframe).childpageType:""; - if(childPagetype==="isc")//smartclient的子页面固定高度为视口可用内容区高度 - { - $('.sidebar-option', panel).val("fixed"); - } - dealShownav(); - var available_height =scrAvaHeight - ((!footer||footer.length<=0)?0:footer.outerHeight(true)) - pheader.outerHeight(true); - var _pageableDivHeight=(!pageableDiv||pageableDiv.length<=0||pageableDiv.is(":visible")==false)?0:pageableDiv.outerHeight(true); - var h= scrAvaHeight-pheader.outerHeight(true)-((!footer||footer.length<=0||footer.is(":visible")==false)?0:footer.outerHeight(true))-pgbread.outerHeight(true)-_pageableDivHeight-(contentbody.outerHeight(true)-contentbody.height()); - var miframe=_iframe==""?"page-mainIframe": _iframe; - var pagemyIframe=$('.page-content .page-content-body .'+miframe); //.page-mainIframe - if(pagemyIframe&&pagemyIframe.length>0){ - //处理iframe,下面计算中间iframe的高度 - var deviceAgent = navigator.userAgent.toLowerCase(); - if (deviceAgent.match(/(iphone|ipod|ipad)/)) { //||viewport.height<=480 - var w=viewport.width-content.offset().left-(pagemyIframe.offset().left-content.offset().left)*2;//宽度=总宽度-左边栏宽度-内容区内边距。左右两个 - pagemyIframe.width(w); - } - //对桌面必须计算高度 - var tmp_style = sidebar.attr('style');// firefox下执行 sidebar.height()会改变style样式,这里缓存下执行前的style样式,执行完后重新赋给页面元素 - console.log("pym:parent iframe "+miframe+" sidebar.height:"+sidebar.height()+" h:"+h); - h=sidebar.height()>h?sidebar.height():h; - //IE下,把iframe的高度再减掉7,因为IE10及以下版本,计算的高度会比IE实际显示区域大,导致出现IE滚动条。 - /*h=h-ICTFRAME_CONST_IFRAME_HEIGHT_AJUST; - if(isIE){ - h=h-ICTFRAME_CONST_IFRAME_HEIGHT_AJUST_IE; - }*/ - sidebar.attr('style',tmp_style); - if (isDesktop) { - //pagemyIframe.attr("height",h); - if(cachedIframesObject.items(miframe).setMinHeight){ - var minHeight=Math.min(scrAvaHeight,h); - console.log("pym:parent iframe "+miframe+" window.screen.availHeight:"+scrAvaHeight+" viewport.height:"+viewport.height+" h:"+h+" minHeight:"+minHeight); - cachedIframesObject.items(miframe).setMinHeight(minHeight); - } - }else{ - //pagemyIframe.attr("height","100%");//去掉这里错误的设置,ipad上测试高度不正确 - var _h=h; - try{ - _h=pagemyIframe.contents().height(); - }catch(e){} - h=_h>h?_h:h; - if(cachedIframesObject.items(miframe).setMinHeight){ - var minHeight=Math.min(scrAvaHeight,h); - console.log("pym:parent iframe "+miframe+" window.screen.availHeight:"+scrAvaHeight+" viewport.height:"+viewport.height+" h:"+h+" minHeight:"+minHeight); - cachedIframesObject.items(miframe).setMinHeight(minHeight); - } - } - } - - if (body.hasClass("page-footer-fixed") === true && body.hasClass("page-sidebar-fixed") === true) { - if (content.height() < available_height) { - //content.attr('style', 'min-height:' + available_height + 'px !important'); - dealAddStyle(content,'min-height',available_height + 'px',true); - } - } else{ - if (body.hasClass("page-footer-fixed") === true && body.hasClass("page-sidebar-fixed") === false) { - if (content.height() < available_height) { - //content.attr('style', 'min-height:' + available_height + 'px !important'); - dealAddStyle(content,'min-height',available_height + 'px',true); - } - } else { - if (body.hasClass('page-sidebar-fixed')) { - height = _calculateFixedSidebarViewportHeight(); - } else { - // firefox下执行 sidebar.height()会改变style样式,这里缓存下执行前的style样式,执行完后重新赋给页面元素 - var tmp_style = sidebar.attr('style'); - // height = sidebar.height() + 20; - sidebar.attr('style',tmp_style); - var headerHeight = pheader.outerHeight(true); - var footerHeight = (!footer||footer.length<=0)?0:footer.outerHeight(true); - if ($(window).width() > 1024 && (height + headerHeight + footerHeight) < scrAvaHeight) { - height = scrAvaHeight - headerHeight - footerHeight; - } - } - if (height <= content.height()) {//这里为了避免内容区域很小的时候出现内容区域无法充满屏幕,把min-height修改为height - //content.attr('style', 'min-height:' + height + 'px !important'); - dealAddStyle(content,'min-height',height + 'px',true); - } - } - } - // 屏幕小尺寸时会隐藏边栏,这时菜单由小屏幕右上图标控制,当屏幕变化到大尺寸屏幕时, - // 需要按原菜单出现方式恢复菜单显示。 - var screenwidth = $(window).width(); - if(screenwidth >= openoFrameWork_smallView){ - changeSiderBar(); - if($(".page-sidebar-menu li").css('display') != "none"){ - if ($('body').hasClass("page-sidebar-closed") && $(".sidebar-toggler").hasClass("close-by-viewportChange")) { - if( !isToggler ){ - $(".sidebar-toggler")[1].click(); - } - $(".sidebar-toggler").removeClass("close-by-viewportChange"); - } - } - } - else { - changeSiderBar(true); - } - } - var showIframe=function(iframe){ - var resize,pagemainIframe; - if (cachedIframes.count()>0) { - for (var i in cachedIframes.hash()) { - cachedIframes.replace(i,0); - var pagemyIframe=$('.page-content .page-content-body .'+i); - if(pagemyIframe&&pagemyIframe.length>0){ - if(iframe==i){ - pagemyIframe.show(); - cachedIframes.replace(i,1); - } else{ - if("page-mainIframe"===i){//2015年12月10日 wimax要求页面切换后删除没有配置cacheNum的缓存页面 - pagemainIframe=i; - pagemyIframe.attr("src",""); - pagemyIframe.remove(); - }else{ - pagemyIframe.hide(); - } - cachedIframes.replace(i,0); - } - } - } - } - if(pagemainIframe){ - delete cachedIframes._hash[pagemainIframe]; - delete cachedIframesObject._hash[pagemainIframe]; - } - if (!cachedIframes.contains(iframe)) { - cachedIframes.add(iframe,1); - //增加的iframe加载完毕后 停止加载中提示信息 - myIframe=$('.'+iframe); - myIframe.show(); - myIframe.load(function(){ - /*if (!isDesktop) { - if (resize) { - clearInterval(resize); - } - resize = setInterval(dealIframeHeight, 400,$(this)); - }*/ - openoFrameWork.stopPageLoading(); - }); - } - } - var hidemenu=function(){ - $('.hor-menu').hide(); - dealAddStyle($('.page-content'),'margin-left','0px',true); - dealAddStyle($('.page-sidebar'),'display','none',true); - var fsiderMenu = $("#" + fMenuSiderDivId); - fsiderMenu.children().css('display' , 'none'); - } - var hideAlarmLight=function(){ - //$('#header_notification_bar').hide(); - //$('#header_notification_bar').empty(); - $('#header_notification_bar').html("
          
    "); - } - var dealShownav=function(){ - var showNav=openoFrameWork.getLocationURLParameter('showNav'); - if( showNav=="false"){ - openoFrameWork_showNav = showNav; - hidemenu(); - hideAlarmLight(); - } - } - /* 点击菜单时,处理对应该菜单项的横,左菜单项 */ - var dealRelateMenu = function(source) { - // 点击子菜单时,对应的横竖菜单项也联动为选择样式,(高亮,箭头变化) - var panel = $('.zte-theme-panel'); - var navPosOption = $('.nav-pos-direction', panel).val(); - var targetsource = null; - var targetContainer = null; - if (navPosOption === "vertical") { - // 当前是左菜单,则处理对应的横菜单 - targetsource = $("#"+source.attr("id"), $("#main_hormenu")); - targetContainer = $(".header ul"); - } else if (navPosOption === "horizontal") { - var rtn = dealMgaBarRelated(source); - dealFMenuRelated(source , megaSiderDivId); - targetContainer = rtn[0]; - targetsource = rtn[1]; - }else if(navPosOption === openoFrameWork_menu_fmenu){ - dealFMenuRelated(source , fMenuSiderDivId); - } - if (targetContainer) { - // 移除原有菜单项的活动及箭头样式 - targetContainer.children('li.active').removeClass('active'); - targetContainer.find('.arrow.open').removeClass('open'); - } - if (targetsource) { - // 增加活动及箭头样式 - targetsource.parents('li').each(function () { - $(this).addClass('iframe active'); - $(this).find('a > span.arrow').addClass('open'); - }); - targetsource.parents('li').addClass('active'); - if (navPosOption === "horizontal") { - if (targetsource.parent().parent().parent().is("li")) { - $('.arrow', targetsource.parent().parent().parent()).addClass("open"); - } - } - } - } - var dealMgaBarRelated = function(source){ - // 当前是横菜单,则处理对应的左菜单 - targetsource = $("#"+source.attr("id"), $("[class='page-sidebar-menu']")); - targetContainer = $("#page-sidebar-menu ul"); - // 将先前左菜单展开的子菜单收缩 - $("li.open",targetContainer).each(function() { - var style = $("ul.sub-menu", this).attr("style"); - if (style) { - $("ul.sub-menu", this).removeAttr("style"); - $(this).removeClass('open'); - } - }); - // 当前是横菜单,但在屏幕缩小的情况下显示的是tip垂直菜单,而横菜单是隐藏的,所以需额外处理横菜单 - if (source.parent().parent().parent().parent().attr("class").indexOf("page-sidebar-menu") >= 0) { - var tiptargetsource = $("#"+source.attr("id"), $("#main_hormenu")); - var tiptargetContainer = $(".header ul"); - tiptargetContainer.children('li.active').removeClass('active'); - tiptargetContainer.find('.arrow.open').removeClass('open'); - tiptargetsource.parents('li').each(function () { - $(this).addClass('iframe active'); - $(this).find('a > span.arrow').addClass('open'); - }); - tiptargetsource.parents('li').addClass('active'); - } - return [targetContainer ,targetsource ]; - } - var dealFMenuRelated = function(source , siderDivId ){ - var fsiderMenu = $("#" + siderDivId); - if(isMoreMenuItemClick){//更多菜单点击 , 临时方案,增加信号量,使用之后就置为false - isMoreMenuItemClick = false - }else if($(source).parents('li').hasClass('mega-menu-dropdown')){//F的横向菜单的点击 - var id = source.attr('id'); - //非被点击的一级菜单的二级菜单都不显示 - $('#' + siderDivId + '>li').hide(); - var level2Lis = $("a[hparentid= " + id + "]" , fsiderMenu).parent(); - level2Lis.show(); - if(level2Lis.length > 0){//把竖向菜单的收起放大按钮显示出来 - $('#' + siderDivId + '>li.sidebar-toggler-wrapper').show(); - } - if($("a[hparentid= " + id + "]" , fsiderMenu).length > 0){ //有子孙菜单时,把F菜单的竖菜单显示出来 - dealFSidermenu(source ,siderDivId ); - }else{//否则隐藏竖菜单 - fsiderMenu.css('display','none'); - $("body").addClass("page-full-width"); - $(".page-content").css("marginLeft", _sidebarWidth); - } - - }else{//F菜单的竖向菜单点击 - //处理一种特殊情况,告警灯打开新页面,所有的菜单都不出现,因此,虽然这个source在竖菜单,但竖菜单这个时候实际上是没有显示的 - if( openoFrameWork_showNav == "true") { - $('#' + siderDivId + '>li').hide(); - var lis = $(source).parents('li'); - var id = lis.eq(lis.length-1).children( 'a' ).attr('hparentid'); - //var id = $(source).parents('li').children('a').attr('hparentId'); - var level2Lis = $("a[hparentid=" + id + "]" , fsiderMenu).parent(); - level2Lis.show(); - if(level2Lis.length > 0) {//把竖向菜单的收起放大按钮显示出来 - $('#'+ siderDivId + '>li.sidebar-toggler-wrapper').show(); - } - //$('#' + siderDivId + '>li')[0].show(); - dealFSidermenu(source , siderDivId); - } - } - } - var dealFSidermenu = function(source , siderDivId){ - var fsiderMenu = $("#" + siderDivId); - fsiderMenu.css('display','block'); - $('ul.sub-menu',fsiderMenu).css('display','block'); - $('.arrow',fsiderMenu).addClass('open'); - $("body").removeClass("page-full-width"); - if ($('body').hasClass("page-sidebar-closed")) { - $(".page-content").css("marginLeft", _sidebarCollapsedWidth); - } else { - $(".page-content").css("marginLeft", _sidebarWidth); - } - var href = source.attr("href"); - $('li.iframe' ,fsiderMenu ).removeClass('active'); - var selectedIframeLi = $("a[href ='" + href + "']" ,fsiderMenu ).parent(); - selectedIframeLi.addClass('active'); - selectedIframeLi.parent().parent().addClass("open").addClass("active"); - selectedIframeLi.parent().css('display','block'); - selectedIframeLi.parent().parent().children('a').children('.arrow').addClass('open'); - } - var dealMenuItemClick=function(source,e,menuContainerStr){ - var url = source.attr("href"); - if(!url||url.length<2) - return; - e.preventDefault(); - if(!_isClicked){//导航情况下,首先要模拟点开菜单分组 - _isClicked=true;//如果菜单有子菜单点击一次来展开子菜单,注意这个信号量的变化,避免死循环 - var mainMenu=source.parents('li').last(); - if(!mainMenu.hasClass('open')){ - dealLiAClick(mainMenu.children('a:eq(0)')); - } - } - if(menuContainerStr&&menuContainerStr.length>0){ - var menuContainer = $('.'+menuContainerStr+' ul'); - - menuContainer.children('li.active').removeClass('active'); - // menuContainer.children('arrow.open').removeClass('open'); - //menuContainer.find('.arrow.open').addClass('open'); - } - source.parents('li').each(function () { - $(this).addClass('iframe active'); - $(this).children('a > span.arrow').addClass('open'); - }); - source.parents('li').addClass('active'); - // 处理点击菜单对应的横或左菜单项的选择样式 - dealRelateMenu(source); - if(menuContainerStr&&menuContainerStr.length>0){ - if ($(window).width() <= 991 && $('.'+menuContainerStr).hasClass("in")) { - $('.navbar-toggle').click(); - } - } - if(dealMultTabPage(source)) - return true; - dealScrollTo(); - var breadmenuID=e.data&&e.data.breadcrumbBtnMenuItem&&e.data.breadcrumbBtnMenuItem.length>0?e.data.breadcrumbBtnMenuItem:""; - if(breadmenuID.length>0){//面包削导航来的,只需要重新生成面包削即可 - //找到更多菜单按钮 - var moreMenuItem = $('#' + breadmenuID , $('#pageableDiv')); - if( moreMenuItem.length == 0 ){ - moreMenuItem = $('#' + breadmenuID , $('.more-botton-zone')); - } - dealBreadcrumbBtnMenuItemClick(moreMenuItem,e); - //dealBreadcrumb(source,false,e); - }else{//非面包削导航来的, - dealstartPageLoading(); - if(dealIframe(source,e))//当返回true时说明是正常加载iframe了,否则面包削不能切换 - dealBreadcrumb(source,false,e); - } - //dealShownav(); - }; - var dealMenuItemGetFocus=function(source,e,menuContainerStr){ - var url = source.attr("href"); - if(!url||url.length<2) - return; - e.preventDefault(); - if(!_isClicked){//导航情况下,首先要模拟点开菜单分组 - _isClicked=true;//如果菜单有子菜单点击一次来展开子菜单,注意这个信号量的变化,避免死循环 - var mainMenu=source.parents('li').last(); - dealLiAClick(mainMenu.children('a:eq(0)')); - } - if(menuContainerStr&&menuContainerStr.length>0){ - var menuContainer = $('.'+menuContainerStr+' ul'); - - menuContainer.children('li.active').removeClass('active'); - menuContainer.children('arrow.open').removeClass('open'); - } - source.parents('li').each(function () { - $(this).addClass('iframe active'); - $(this).children('a > span.arrow').addClass('open'); - }); - source.parents('li').addClass('active'); - - if(menuContainerStr&&menuContainerStr.length>0){ - if ($(window).width() <= 991 && $('.'+menuContainerStr).hasClass("in")) { - $('.navbar-toggle').click(); - } - } - }; - //处理iframe的核心处理类,逻辑较为复杂,注意各种参数的处理 - var dealIframe=function(aObject,e){ - _hashSource=""; - var url = aObject.attr("href"); - if(!url||url.length<2) - return; - url=openoFrameWork.handlBaseURL(url); - //-----------2015年9月21日新增V5中大O需要的按照实例(根据选择的系统实例变化url的ip和端口地址)进行动态切换菜单的功能 - var category= aObject.attr("category");//处理菜单中定义的Category属性 - if(category&&category.length>0){//处理Category属性 - var newIpPort=_menuCategorys.items(category); - if(newIpPort&&newIpPort.ipPort&&newIpPort.ipPort.trim()!=""){//如果找到了 - var newIpPortstr=openoFrameWork.getDomainURL(newIpPort.ipPort);//去掉ip和port后多余的部分 - var urlipport=openoFrameWork.getDomainURL(url); - console.log("old url:"+url); - url=newIpPortstr+url.replace(urlipport,""); - console.log("newIpPort:"+newIpPortstr+" newURL:"+url); - } - } - //------------ - dealstartPageLoading(); - var cacheNum= aObject.attr("cacheNum");//当第三方应用需要框架缓存曾经打开过的页面时使用。 - var shiftJS= aObject.attr("shiftJS");//当第三方应用不需要后面的href页面进行重新加载仅仅执行某个脚本打开某个功能时使用 - var _iframeName= aObject.attr("iframeName");//对有些第三方应用设置了顶层frame名字的,这个必须设置 - var _iframeAutoScroll= aObject.attr("iframeAutoScroll");//设置iframe的滚动条是否出现,可以设置为auto,yes或者no,默认为no 不出现. - _iframeAutoScroll=!!_iframeAutoScroll?(_iframeAutoScroll==='yes'?'yes':_iframeAutoScroll==='auto'?'auto':'no'):'no'; - _xdomain= aObject.attr("xdomain");//对有些第三方应用如果跨域了,需要设置这个信任域属性,以便于来跨域通讯.这里取值是一个正则表达式 - _xdomain=_xdomain&&_xdomain.length>0?_xdomain:"*"; - var _cssfile= aObject.attr("cssSrc");//设置iframe中页面需要动态加载的css文件. - _cssfile=(_cssfile&&_cssfile.length>0)?_cssfile:""; - var _runShiftJS=""; - var pageContentBody=$('.page-content .page-content-body'); - var tabHtml=""; - var tabContentHtml=""; - var tabID=""; - var tabContentID=""; - var iframename=''; - function createIframe(pdiv,url,id,name,clsname,xdom,autoScroll){ - var pymParent = new pym.Parent(pdiv, url, {xdomain:xdom}); - pymParent.iframe.id=id; - pymParent.iframe.name=name; - //pymParent.iframe.setAttribute('display', "none"); - //pymParent.iframe.style.height="100%"; - //pymParent.iframe.setAttribute('height', "100%"); - pymParent.iframe.setAttribute('class', clsname); - pymParent.iframe.setAttribute('allowfullscreen',''); - pymParent.iframe.setAttribute('mozallowfullscreen',''); - pymParent.iframe.setAttribute('oallowfullscreen',''); - pymParent.iframe.setAttribute('msallowfullscreen',''); - pymParent.iframe.setAttribute('webkitallowfullscreen',''); - //pymParent.iframe.setAttribute('scrolling',autoScroll); - pymParent.iframe.setAttribute('onload', 'openoFrameWork.SyncCSS(this,0,"'+_cssfile+'");openoFrameWork.stopPageLoading();'); - cachedIframesObject.replace(id,pymParent);//缓存iframe对象实体 - pymParent.onMessage('height', function(he){ - console.log("The frame "+id+" receive message height is "+he); - var pagemyIframe=$('.page-content .page-content-body .'+id); - var h=Math.max(this.minHeight,he); - pagemyIframe.height(h); - }); - return pymParent; - }; - - if(cacheNum){//处理缓存iframe和iframename标签 - cacheNum="page-mainIframe"+cacheNum; - iframename="fraMain"+cacheNum; - }else{ - cacheNum="page-mainIframe"; - iframename="fraMain"; - } - iframename=!!_iframeName?_iframeName:iframename; - _iframe= cacheNum;//注意这里_iframe是一个全局变量 - - var miframe=_iframe==""?"page-mainIframe": _iframe; - var pagemyIframe=$('.page-content .page-content-body .'+miframe); - var nagivJS=e&&e.data&&e.data.action?e.data.action:""; - nagivJS=(!!nagivJS&&nagivJS.length>0)?(nagivJS.trim().toLowerCase()=="null"?nagivJS:"javascript:$('.page-content .page-content-body ."+miframe+"')[0].contentWindow."+nagivJS.trim()+";"):""; - nagivJS=nagivJS.trim(); - - _runShiftJS=(!!shiftJS&&shiftJS.length>0)?(shiftJS.trim().toLowerCase()=="null"?shiftJS:"javascript:$('.page-content .page-content-body ."+miframe+"')[0].contentWindow."+shiftJS+";"):""; - if(pagemyIframe&&pagemyIframe.length>0){//如果iframe已经添加了,则直接更改url或者执行切换或导航函数 - var src=pagemyIframe.attr("src"); - if((!!shiftJS||nagivJS.length>0)&&(src==url||src.split('?')[0]==url.split('?')[0])&& cacheNum!="page-mainIframe") { //url相同时,处理缓存shiftJS标签 - //这里shiftJS必须定义iframe中的页面定义到window上的函数; - //pagemyIframe.attr("scrolling",_iframeAutoScroll); - cachedIframesObject.items(miframe).settings.xdomain=_xdomain; - if(nagivJS.length>0&&nagivJS.toLowerCase()!="null") - _runShiftJS=nagivJS;//如果是nagivJS导航过来的,nagivJS优先级高于shiftJS,如果有nagivJS就用nagivJS替换_runShiftJS; 直接执行一次导航切换 - try{ - if(_runShiftJS.trim().toLowerCase()!="null") - eval(_runShiftJS); - }catch(e){ - if (e instanceof EvalError) { - console.log(e.name + " EvalError: " + e.message); - } else if (e instanceof SyntaxError) { - console.log(e.name + " SyntaxError: " + e.message); - }else if (e instanceof Error) { - if(e.name.toLowerCase().trim()=="typeerror") - { - //console.log($.i18n.prop('com_zte_ums_ict_framework_ui_clickTooFast')); - var parm={runShiftJS:_runShiftJS}; - pagemyIframe.one('load',parm,function(e){ - var runShiftJS=e&&e.data&&e.data.runShiftJS?e.data.runShiftJS:""; - if(runShiftJS.length>0&&runShiftJS.toLowerCase()!="null") - eval(runShiftJS);//点击太快了,页面没有加载完毕,那就加载完毕了再次执行 - }) - } - } - return false;//返回false 后续不再做其他动作了 - } - finally{ - openoFrameWork.stopPageLoading(); - } - }else{//否则url不同,或者url相同但没有shiftjs - if(nagivJS.length>0&&nagivJS.toLowerCase()!="null"){//如果是代码导航过来的去掉url参数中的默认action动作 - url=url.split('?')[0];//去掉?参数,防止默认执行动作,只响应nagivJS指定的动作; - } - if(src.split('#')[0]!=url.split('#')[0])//如果相等说明是通过锚点导航的,真实url没有变化,对SPA应用比较普遍 - { - pagemyIframe.attr("src","");//url和src不同说明更换了页面,需要清空重新加载 - }else //if (src.trim()==url.trim()) //没有shiftjs并且url相同,说明不需要再次加载了,已经加载过了 - { - openoFrameWork.stopPageLoading(); - } - pagemyIframe.attr("src",url); - - if(nagivJS.length>0&&nagivJS.toLowerCase()!="null"){//如果是nagivJS导航过来的,iframe加载完毕后执行一次导航切换脚本 - var parm={nagivJS:nagivJS}; - pagemyIframe.one('load',parm,function(e){ - var nagivJS=e&&e.data&&e.data.nagivJS?e.data.nagivJS:""; - if(nagivJS.length>0&&nagivJS.toLowerCase()!="null") - eval(nagivJS);//如果没有加载过,加载后也要执行跳转的函数 - }); - } - if(_cssfile.length>0&&_cssfile.toLowerCase()!="null"){//如果配置了cssSrc,每次切换都重新执行一边这个css文件,防止有遗漏 - parm={syncCSSJS:'openoFrameWork.SyncCSS(this,10,"'+_cssfile+'");openoFrameWork.stopPageLoading();'}; - pagemyIframe.one('load',parm,function(e){ - var syncCSSJS=e&&e.data&&e.data.syncCSSJS?e.data.syncCSSJS:""; - if(syncCSSJS.length>0&&syncCSSJS.toLowerCase()!="null") - eval(syncCSSJS); - }); - } - } - - }else{//否则添加新的iframe元素 overflow:visible; - if(nagivJS.length>0&&nagivJS.toLowerCase()!="null"){//如果是代码导航过来的去掉url参数中的默认action动作 - url=url.split('?')[0];//去掉?参数,防止默认执行动作,只响应nagivJS指定的动作; - } - var pdiv="pdiv_"+miframe; - if($("#"+pdiv).length<=0){//检查下,如果该div没有添加过就添加 - pageContentBody.append("
    "); - } - dealstartPageLoading(); - pymParent=createIframe(pdiv, url,miframe,miframe,miframe,_xdomain,_iframeAutoScroll); - pagemyIframe=$(pymParent.iframe); - - if(nagivJS.length>0&&nagivJS.toLowerCase()!="null"){//如果是nagivJS导航过来的,iframe加载完毕后执行一次导航切换 - var parm={nagivJS:nagivJS}; - pagemyIframe=$('.page-content .page-content-body .'+miframe); - if(pagemyIframe&&pagemyIframe.length>0){ - pagemyIframe.one('load',parm,function(e){ - var nagivJS=e&&e.data&&e.data.nagivJS?e.data.nagivJS:""; - if(nagivJS.length>0&&nagivJS.toLowerCase()!="null") - eval(nagivJS);//如果没有加载过,加载后也要执行跳转的函数 - }) - } - } - - } - showIframe(miframe); - openoFrameWork.fixContentHeight(); // 调整高度 - return true; - } - // 处理边栏菜单 - var dealLiAClick=function(source){ - if (source.next().hasClass('sub-menu') == false) { - if ($('.btn-navbar').hasClass('collapsed') == false) { - $('.btn-navbar').click(); - } - return; - } - - if (source.next().hasClass('sub-menu always-open')) { - return; - } - var parent = source.parent().parent(); - var the = source; - var menu = $('.page-sidebar-menu'); - var sub = source.next(); - var autoScroll = menu.data("auto-scroll") ? menu.data("auto-scroll") : true; - var slideSpeed = menu.data("slide-speed") ? parseInt(menu.data("slide-speed")) : 200; - parent.children('li.open').children('a').children('.arrow').removeClass('open'); - parent.children('li.open').children('.sub-menu:not(.always-open)').slideUp(200); - parent.children('li.open').removeClass('open'); - var slideOffeset = -200; - if (sub.is(":visible")) { - $('.arrow', source).removeClass("open"); - source.parent().removeClass("open"); - sub.slideUp(slideSpeed, function () { - if (autoScroll == true && $('body').hasClass('page-sidebar-closed') == false) { - if ($('body').hasClass('page-sidebar-fixed')) { - - } else { - dealScrollTo(the, slideOffeset); - } - } - dealSidebarAndContentHeight(); - }); - } else { - $('.arrow', source).addClass("open"); - source.parent().addClass("open"); - sub.slideDown(slideSpeed, function () { - if (autoScroll == true && $('body').hasClass('page-sidebar-closed') == false) { - if ($('body').hasClass('page-sidebar-fixed')) { - dealScrollTo(the, slideOffeset); - } - } - dealSidebarAndContentHeight(); - }); - } - } - var dealSidebarMenu = function () {//这里注册和处理边栏菜单的各类点击事件 - $('.page-sidebar').on('click', 'li > a', function (e) { - if ($(this).next().hasClass('sub-menu') == false) { - if ($('.btn-navbar').hasClass('collapsed') == false) { - $('.btn-navbar').click(); - } - return; - } - if ($(this).next().hasClass('sub-menu always-open')) { - return; - } - dealLiAClick($(this)); - e.preventDefault(); - }); - - // 处理左边导航中的菜单连接,显示在iframe中 - $('.page-sidebar').on('click', ' li > a.iframe', function (e) { - //dealMenuItemClick($(this),e,"page-sidebar") - e.preventDefault(); - var menuItemID=$(this).attr("id"); - if(!!menuItemID&&menuItemID.length>0){ - _setLocationHash(menuItemID); - _hashSource="dhByInterface"; - }//else{ - _isClicked=true; - dealMenuItemClick($(this),e,"page-sidebar"); - //} - }); - // 处理更多菜单的菜单连接,显示在iframe中dropdown-menu - $('.page-breadcrumb').on('click', ' li > a.iframe', function (e) { - var url = $(this).attr("href"); - if(url.length<2) - return; - e.preventDefault(); - dealBreadcrumbBtnMenuItemClick($(this),e); - }); - // 处理可翻页更多菜单中的菜单连接,显示在iframe中dropdown-menu - $('#pageableDiv').on('click', ' div > a.iframe', function (e) { - var url = $(this).attr("href"); - if(url.length<2) - return; - e.preventDefault(); - dealBreadcrumbBtnMenuItemClick($(this),e); - }); - // 处理可翻页更多菜单中的菜单连接,显示在iframe中dropdown-menu - $('#pageableDiv').on('click', ' li > a.iframe', function (e) { - var url = $(this).attr("href"); - if(url.length<2) - return; - e.preventDefault(); - if(e.target){ - var tg=$("span",e.target); - tg=tg.length>0?tg[0]:e.target; - $(".open a>div>span",e.target.parentNode.parentNode.parentNode.parentNode.parentNode).replaceWith(tg.outerHTML); - } - dealBreadcrumbBtnMenuItemClick($(this),e); - }); - - // 处理header下拉菜单中的菜单连接,显示在iframe中 - $('.dropdown').on('click', ' li > a.iframe', function (e) { - var url = $(this).attr("href"); - if(url.length<2) - return; - e.preventDefault(); - dealScrollTo(); - dealstartPageLoading(); - - dealIframe($(this),e) - dealBreadcrumb($(this),false,e); - }); - } - var getSceneURL=function(url){ - if(url&&url.trim().length>0){ - url=url.trim(); - //url= - _sceneURLRootPath=_sceneURLRootPath+url; - } - } - var gurl="";//临时全局变量,存储当前加载的more菜单,如果加载过了,就不再加载了。下面的方法中会用到 - var moreMenusisLoaded=true; - var waittime=null; - var getBreadcrumbRightButtons=function(url,e){ - if (url.length<2){ - return; - } - url=openoFrameWork.handlBaseURL(url); - if (gurl==url){ - if(e===true){ - $('#pageableDiv').show(); - }else if(e&&e.target&&e.currentTarget){ - var defaultDisplay=$(e.target).attr("defaultDisplay"); - defaultDisplay=(!defaultDisplay)?$(e.currentTarget).attr("defaultDisplay"):defaultDisplay; - if(defaultDisplay&&defaultDisplay.trim()=="false"){ - $('#pageableDiv').hide(); - }else{ - $('#pageableDiv').show(); - } - } - return; - - }else{ - gurl=url; - clearMoreOperations(); - } - //处理e参数,注意e可能为null - var breadmenuID=e&&e.data&&e.data.breadcrumbBtnMenuItem&&e.data.breadcrumbBtnMenuItem.length>0?e.data.breadcrumbBtnMenuItem:""; - breadmenuID=breadmenuID.length<=0?(e&&e.breadcrumbBtnMenuItem&&e.breadcrumbBtnMenuItem.length>0?e.breadcrumbBtnMenuItem:""):breadmenuID; - moreMenusisLoaded=false; - $.ajax({ - type: "GET", - cache: false, - url: url, - dataType: "html", - success: function (res) { - try{ - //$('.page-breadcrumb').append(res); - var resScriptsSriped = stripHtmlScripts(res); - //$('.page-breadcrumb').append(resScriptsSriped); - $('.more-botton-zone').children().remove(); - //V5新增逻辑,如果displayType = pageableDiv,那么就用滑动的DIV来显示更多菜单里面的内容,如果没有配置,或为其他值,就按原有方式显示 - var tempDiv = $('
    '); - tempDiv.children().remove(); - tempDiv.append(resScriptsSriped); - - //获取UL属性 - var displayType = $('.dropdown-menu',tempDiv).attr('displayType'); - if( displayType && displayType != 'pageableDiv'){ - $('.more-botton-zone').append(resScriptsSriped); - $('#pageableDiv').hide(); - }else{ - var tempUl = $('.dropdown-menu',tempDiv); - if(tempUl.length>0){ - moreOperations(tempUl[0]); - if(e&&e.target&&e.currentTarget){ - var defaultDisplay=$(e.target).attr("defaultDisplay"); - defaultDisplay=(!defaultDisplay)?$(e.currentTarget).attr("defaultDisplay"):defaultDisplay; - if(defaultDisplay&&defaultDisplay.trim()=="false"){ - $('#pageableDiv').hide(); - }else{ - $('#pageableDiv').show(); - } - } - } - } - runHtmlScripts(res); - }catch(ex){ - }finally{ - moreMenusisLoaded=true; - } - groupButtonAuthentication(); - if(breadmenuID.length>0){//面包削导航来的,只需要重新生成面包削即可 - var menuitem=undefined; - var panel = $('.zte-theme-panel'); - var navPosOption = $('.nav-pos-direction', panel).val(); - //var items=$("a[id='"+breadmenuID+"']"); - var items = undefined; - if (navPosOption === "vertical"){ //从垂直菜单里面找 - items=$("#page-sidebar-menu a[id='"+breadmenuID+"']"); - - }else{//从水平菜单里面找 - items=$(".hor-menu a[id='"+breadmenuID+"']"); - } - if (!items || items.length < 1) { - items=$(".page-content a[id='"+breadmenuID+"']"); - } - if(items.length>0){ - for(var i=0;i0) - dealBreadcrumbBtnMenuItemClick(menuitem,e); - } - }, - error: function (xhr, ajaxOptions, thrownError) {//加载操作菜单失败!com_zte_ums_ict_framework_ui_loadmenuerror - $('.page-breadcrumb').append('

    '+$.i18n.prop('com_zte_ums_ict_framework_ui_loadmenuerror')+'

    '); - moreMenusisLoaded=true; - } - }); - } - - //处理多tab也场景 ----redirect 该标签暂时保留,不建议使用了 - dealMultTabPage=function(clickedObject){ - var url = clickedObject.attr("href"); - if(!url||url.length<2) - return; - var redirect=clickedObject.attr("redirect"); //处理多tab页面的需求 - if (!!redirect&&redirect.length>0){ - var miframe=_iframe==""?"page-mainIframe": _iframe; - var pagemyIframe=$('.page-content .page-content-body .'+miframe); //.page-mainIframe - //var pagemyIframe=$('.page-content .page-content-body .page-mainIframe'); - var oldhref=""; - if(pagemyIframe&&pagemyIframe.length>0){ - oldhref=pagemyIframe.attr("src"); - if(url.split("?")[0]==oldhref.split("?")[0]) - { - eval(redirect); - dealBreadcrumb(clickedObject,false,e); - return true; - } - } - }; - return false; - }; - //处理主菜单面包削导航 - var globleCurrentBreadcrumb=""; - var globleCurrentMainMenuItemID=""; - var dhByBreadcrumb = false; - var dealBreadcrumb=function(clickedObject,notGenUID,e){//notGenUID为true就不重新生成id - var mbreadcrumb=$('.breadcrumbUl'); - openoFrameWork.setPageTitle(clickedObject.find('span').text().trim()); - var clieckedObj= clickedObject.parent('li'); - if(clieckedObj.length == 0){ //分页式更多菜单,a链接的父亲是div - clieckedObj= clickedObject.parent('div'); - } - //如果点击的是F菜单的竖菜单,还需要找到横菜单上的对应父亲加入到clieckedObj - var navPosOption = $('.nav-pos-direction', panel).val(); - var parentid = clickedObject.attr('hparentid'); - var breadcrumGroupButtonSrc=clickedObject.attr("breadcrumGroupButtonSrc"); - globleCurrentMainMenuItemID=clickedObject.attr("id"); - var mhmtl=""; - var url=""; - var tempObj=null; - //var breadChangeType = e? (e.data ? e.data.breadChangeType:null):null; - if( dhByBreadcrumb ){ - mhmtl = dealClickBreadcrumb(clieckedObj); - dhByBreadcrumb = ""; - }else{ - while (clieckedObj&&clieckedObj.length>0){ - if(clieckedObj.children('a')){ - if(!notGenUID){ - url=openoFrameWork.getUniqueID("aid");//+Math.floor(Math.random() * (new Date()).getTime()); - clieckedObj.children('a').attr("name",url); - }else{ - url=clieckedObj.children('a').attr("name"); - } - tempObj=clieckedObj.clone(); - tempObj.children('a').removeClass('iframe'); - tempObj.children('a').removeClass('active'); - tempObj.children('a').attr("href","javascript:openoFrameWork.goToURL('"+url+"');"); - var arrowdown = $(".fa-angle-down", tempObj.children('a')); - if (arrowdown) { - arrowdown.remove(); - } - if(tempObj.children('a').length>0){ - mhmtl=tempObj.children('a')[0].outerHTML+""+mhmtl; - } - //如果是F菜单和横菜单的子竖菜单点击,需要做特殊处理 - if( clieckedObj.parent('ul').attr('id') == fMenuSiderDivId || clieckedObj.parent('ul').attr('id') == megaSiderDivId){ - var id = clieckedObj.children( 'a' ).attr('hparentid'); - //判断是F菜单还是横菜单 - var megaMenu = null; - if(navPosOption == openoFrameWork_menu_horizontal){ - magaMenu = $('#'+megaDivId); - }else if(navPosOption == openoFrameWork_menu_fmenu){ - magaMenu = $('#'+fMenuMegaDivId); - } - clieckedObj = $("a[id=" + id + "]" , magaMenu).parent('li'); - }else{ - clieckedObj=clieckedObj.parents('li'); - } - } - } - if(clieckedObj[0]&&clieckedObj[0].length>0) { - mhmtl=clieckedObj.children('a')[0].outerHTML+""+mhmtl; - } - } - mbreadcrumb.empty(); - $('.more-botton-zone').empty(); - globleCurrentBreadcrumb=mhmtl; - store("globleCurrentBreadcrumb",globleCurrentBreadcrumb); - mbreadcrumb.append(mhmtl); - if(breadcrumGroupButtonSrc&&breadcrumGroupButtonSrc.length>0){ - getBreadcrumbRightButtons(breadcrumGroupButtonSrc,e); - }else{ - $('#pageableDiv').hide(); - } - - }; - //面包屑发起的点击,就不重新生成面包屑,只是把该面包屑的后续节点移出。 - var dealClickBreadcrumb = function(clieckedObj){ - var index = globleCurrentBreadcrumb.indexOf(clieckedObj.children('a').attr("name")); - if( index > -1 ){//截取 - var indexofSign = globleCurrentBreadcrumb.indexOf("",index); - var newBreadcrumb = globleCurrentBreadcrumb.substring(0,indexofSign) + ""; - return newBreadcrumb; - } - } - //处理面包削中菜单点击后的导航(更多菜单的面包屑) - var dealBreadcrumbBtnGroupMenus=function(clickedObject,notGenUID , e ){ - var mbreadcrumb=$('.breadcrumbUl'); - var clieckedObj= clickedObject.parent(); - var breadcrumGroupButtonSrc=clickedObject.attr("breadcrumGroupButtonSrc"); - var mhmtl=""; - var url=""; - var tempObj=null; - var menuid=clickedObject.attr("id"); - if (!breadcrumbBtnMenus.contains(menuid)) {//把当前面包削中的菜单id和该子菜单对应的父菜单关联缓存起来 - breadcrumbBtnMenus.add(menuid,globleCurrentMainMenuItemID); - } - while (clieckedObj&&clieckedObj.length>0){ - tempObj=clieckedObj.clone(); - if(tempObj.children('a')){ - tempObj.children('a').removeClass('iframe'); - url=tempObj.children('a').attr("href"); - tempObj.children('a').attr("onclick","openoFrameWork.openbreadcrumbLink($(this),event);"); - var tempdiv = tempObj.children('a').children('div'); - if( tempdiv.length > 0 ){ - var innerofDiv = tempdiv[0].innerHTML; - tempdiv.remove(); - tempObj.children('a')[0].innerHTML = innerofDiv; - } - if(tempObj.children('a').length>0){ - mhmtl=tempObj.children('a')[0].outerHTML+""+mhmtl; - } - clieckedObj=clieckedObj.parents('li'); - } - - } - if(clieckedObj[0]&&clieckedObj[0].length>0) { - mhmtl=clieckedObj.children('a')[0].outerHTML+""+mhmtl; - } - - if(breadcrumGroupButtonSrc&&breadcrumGroupButtonSrc.length>0){ - getBreadcrumbRightButtons(breadcrumGroupButtonSrc,true); - }else{ - $('#pageableDiv').hide(); - } - mbreadcrumb.empty(); - var category= clickedObject.attr("category");//处理菜单中定义的Category属性 - if(category&&category.length>0){//处理Category属性 - var newIpPort=_menuCategorys.items(category); - if(newIpPort&&newIpPort.ipTitle&&newIpPort.ipTitle.trim()!=""){//如果找到了 - mhmtl=newIpPort.ipTitle+''+mhmtl; - } - } - mhmtl=globleCurrentBreadcrumb+mhmtl; - mbreadcrumb.append(mhmtl); - }; - var isMoreMenuItemClick = false; - var dealBreadcrumbBtnMenuItemClick=function(clickObj,e){ - dealScrollTo(); - var menuItemID=clickObj.attr("id"); - if(!!menuItemID&&menuItemID.length>0){ - _setLocationHash(menuItemID); - var breadmenuID=e&&e.data&&e.data.breadcrumbBtnMenuItem&&e.data.breadcrumbBtnMenuItem.length>0?e.data.breadcrumbBtnMenuItem:""; - _hashSource=breadmenuID&&breadmenuID.length>0?"":"dhByInterface";//hash进来的,不是导航进来的。 - } - if(!(e&&e.breadcrumbBtnMenuItem&&e.breadcrumbBtnMenuItem.length>0)){//如果仅仅是tab跳转设置bread进来的,就框架不处理菜单点击,直接重新建立bread即可 - dealstartPageLoading(); - dealIframe(clickObj,e); - } - dealBreadcrumbBtnGroupMenus(clickObj,false,e); - } - // 固定边栏布局时计算边栏高度. - var _calculateFixedSidebarViewportHeight = function () { - var viewport = _getViewPort(); - var sidebarHeight =viewport.height - $('.header').height() + 1; - if ($('body').hasClass("page-footer-fixed")) { - sidebarHeight = sidebarHeight - (!$('.footer')||$('.footer').length<=0)?0:$('.footer').outerHeight(); - } - return sidebarHeight; - } - // 处理固定边栏 - var dealFixedSidebar = function () { - var menu = $('.page-sidebar-menu'); - if (menu.parent('.slimScrollDiv').size() === 1) { - menu.removeAttr('style'); - $('.page-sidebar').removeAttr('style'); - } - - if ($('.page-sidebar-fixed').size() === 0) { - dealSidebarAndContentHeight(); - return; - } - - var viewport = _getViewPort(); - if (viewport.width >= openoFrameWork_smallView) { - var sidebarHeight = _calculateFixedSidebarViewportHeight(); - dealSidebarAndContentHeight(); - } - } - // 固定边栏时处理菜单 hover 效果. - var dealFixedSidebarHoverable = function () { - if ($('body').hasClass('page-sidebar-fixed') === false) { - return; - } - $('.page-sidebar').off('mouseenter').on('mouseenter', function () { - dealSiderBarMouseenter(); - }); - $('.page-sidebar').off('mouseleave').on('mouseleave', function () { - dealSiderBarMouseLeave(); - }); - } - var dealSiderBarMouseenter=function(){ - var body = $('body'); - var siderbar=$('.page-sidebar'); - if ((body.hasClass('page-sidebar-closed') === false || body.hasClass('page-sidebar-fixed') === false) || $(this).hasClass('page-sidebar-hovering')) { - return; - } - body.removeClass('page-sidebar-closed').addClass('page-sidebar-hover-on'); - var siderbartoggle=$('.sidebar-toggler'); - - if (body.hasClass("page-sidebar-reversed")) { - siderbar.width(_sidebarWidth); - dealSiderBarWidthChange(); - } else { - siderbar.addClass('page-sidebar-hovering'); - siderbar.animate({ - width: _sidebarWidth - }, 350, '', function () { - siderbar.removeClass('page-sidebar-hovering'); - dealSiderBarWidthChange(); - }); - } - } - var dealSiderBarMouseLeave=function(){ - var body = $('body'); - if ((body.hasClass('page-sidebar-hover-on') === false || body.hasClass('page-sidebar-fixed') === false) || $(this).hasClass('page-sidebar-hovering')) { - return; - } - var siderbar=$('.page-sidebar'); - var siderbartoggle=$('.sidebar-toggler'); - if (body.hasClass("page-sidebar-reversed")) { - body.addClass('page-sidebar-closed').removeClass('page-sidebar-hover-on'); - siderbar.width(_sidebarCollapsedWidth); - if(siderbartoggle){ - siderbartoggle.removeAttr('style'); - } - dealSiderBarWidthChange(); - } else { - siderbar.addClass('page-sidebar-hovering'); - siderbar.animate({ - width: _sidebarCollapsedWidth - }, 350, '', function () { - body.addClass('page-sidebar-closed').removeClass('page-sidebar-hover-on'); - dealSiderBarWidthChange(); - siderbar.removeClass('page-sidebar-hovering'); - if(siderbartoggle){ - siderbartoggle.removeAttr('style'); - } - }); - } - - } - //处理style css - var dealAddStyle=function(element, property, value, important) { - var styleText=element.attr('style')?element.attr('style'):""; - styles=styleText.split(";"); - var find=""; - for(i=0;i=0){ - find=styles[i];//看是否已经添加过,如果添加过就需要替换掉 - break; - } - } - styleText=find.length>0?styleText.replace(find,""):styleText; - styleText=(styleText + ';'+property + ':' + value + ((important) ? ' !important' : '') + ';').replace(/;;/g,";"); - element.attr('style',styleText ); - } - var dealSiderBarWidthChange=function(){ - - } - // 处理边栏菜单切换时的关闭和隐藏. - var dealSidebarToggler = function () { - var viewport = _getViewPort(); - if (getCookie('sidebar_closed') === '1' && viewport.width >= openoFrameWork_smallView) { - $('body').addClass('page-sidebar-closed'); - } - $('.page-sidebar, .sidebar-toggler').on('click', '.sidebar-toggler', function (e) { - e.preventDefault(); - var body = $('body'); - var sidebar = $('.page-sidebar'); - if(body.hasClass('page-sidebar-closed')){ - $(this).removeAttr('style'); - } - } ); - $('.page-sidebar, .header').on('click', '.sidebar-toggler', function (e) { - var body = $('body'); - var sidebar = $('.page-sidebar'); - if ((body.hasClass("page-sidebar-hover-on") && body.hasClass('page-sidebar-fixed')) || sidebar.hasClass('page-sidebar-hovering')) { - body.removeClass('page-sidebar-hover-on'); - sidebar.css('width', '').hide().show(); - dealSidebarAndContentHeight(); //fix content & sidebar height - setCookie('sidebar_closed', '0'); - dealSiderBarWidthChange(); - e.stopPropagation(); - runResponsiveHandlers(); - return; - } - $(".sidebar-search", sidebar).removeClass("open"); - var panel = $('.zte-theme-panel'); - var sidebarPosOption = $('.sidebar-pos-option', panel).val(); - var pcontent = $("[class='page-content']"); - if (body.hasClass("page-sidebar-closed")) { - body.removeClass("page-sidebar-closed"); - if (body.hasClass('page-sidebar-fixed')) { - sidebar.css('width', ''); - } - setCookie('sidebar_closed', '0'); - pcontent.css("marginLeft",_sidebarWidth); - dealSiderBarWidthChange(); - } else { - body.addClass("page-sidebar-closed"); - $(this).removeAttr('style'); - setCookie('sidebar_closed', '1'); - pcontent.css("marginLeft", _sidebarCollapsedWidth); - dealSiderBarWidthChange(); - } - //针对侧边栏伸缩的情况需加入对.page-content的判断。 - dealSidebarAndContentHeight(true); - runResponsiveHandlers(); - }); - } - // 处理水平菜单 - var dealHorizontalMenu = function () { - $('.header').on('click', '.hor-menu .hor-menu-search-form-toggler', function (e) { - if ($(this).hasClass('off')) { - $(this).removeClass('off'); - $('.header .hor-menu .search-form').hide(); - } else { - $(this).addClass('off'); - $('.header .hor-menu .search-form').show(); - } - e.preventDefault(); - }); - // 处理水平菜单 处理header下拉菜单中的菜单连接,显示在iframe中 - $('.header').on('click', ' li > a.iframe', function (e) { - //dealMenuItemClick($(this),e,"header"); - e.preventDefault(); - var menuItemID=$(this).attr("id"); - if(!!menuItemID&&menuItemID.length>0){ - _setLocationHash(menuItemID); - _hashSource="dhByInterface"; - }//else{ - _isClicked=true; - dealMenuItemClick($(this),e,"header"); - //} - }); - //处理TAB点击 - $('.header').on('click', '.hor-menu a[data-toggle="tab"]', function (e) { - e.preventDefault(); - var nav = $(".hor-menu .nav"); - var active_link = nav.find('li.current'); - $('li.active', active_link).removeClass("active"); - $('.selected', active_link).remove(); - var new_link = $(this).parents('li').last(); - new_link.addClass("current"); - new_link.find("a:first").append(''); - }); - } - // 增加一个对服务端的心跳 - var doHeartbeat = function() { - //心跳超时次数 - var heartBeatTimes = 0; - return setInterval(function() { - var userName; - if( userName == null ){ - var userName = openoFrameWork_conf.userName; - } - var heartUrl = FrameConst.REST_HEARTBEAT + "?username=" + encodeURIComponent(userName); - $.ajax(heartUrl, { - dataType : "text", - cache : false - }).done(function(data) { - // if (data != "true") { //收到不属于取值范围内的回复,说明出现不可预知情况,取消心跳。是原framework.js中的逻辑,比较奇怪,先保留注释。 - // disableHeartbeat(); - // } - //收到心跳回应消息,心跳超时次数置0 - if( data == "true" ){ - heartBeatTimes = 0; - } - }); - heartBeatTimes++; - //心跳超时6次即1分钟,转到登录界面,认为链路断。 - if(heartBeatTimes >= 6){ - disableHeartbeat(); - //console.log(com_zte_ums_aos_framework_ui_heartbeat_timeout); - bootbox.alert($.i18n.prop('com_zte_ums_aos_framework_ui_heartbeat_fail'), function () { - window.location.replace("login.html"); - }); - } - }, 10000); - }; - if( FrameConst.do_heartbeat ){ - var heartbeatTimer = doHeartbeat(); - } - window.enableHeartbeat = function() { - if (!heartbeatTimer) { - //重新启动心跳功能,心跳超时次数置0 - heartBeatTimes = 0; - heartbeatTimer = doHeartbeat(); - return "Enabled"; - } - return "Already enabled!"; - }; - window.disableHeartbeat = function() { - if (heartbeatTimer) { - clearInterval(heartbeatTimer); - heartbeatTimer = null; - return "Disabled"; - } - return "Already disabled!"; - }; - window.doLogout = function(){ - logoutSubmit(); - }; - //处理ict注销确认 - $('#trigger_logout').click(function(){ - bootbox.confirm($.i18n.prop('com_zte_ums_ict_framework_ui_confirmlogout'), function(result) { //你确认要注销吗? - if(result){ - doLogout(); - } - }); - }); - // Handle full screen mode toggle - var isscreenFull=false; - var dealFullScreenMode = function() { - // 处理全屏事件 - function toggleFullScreen() { - if(!screenfull.supportsFullScreen){//不支持全屏 - if (isIE&&typeof window.ActiveXObject !== "undefined") { // Older IE. - var wscript = new ActiveXObject("WScript.Shell"); - if (wscript !== null) { - wscript.SendKeys("{F11}"); - isscreenFull=!isscreenFull; - } - }else{ - isscreenFull=screenfull.supportsFullScreen; - }; - }else{ - screenfull.isFullScreen?screenfull.exitFullScreen():screenfull.requestFullScreen(); - isscreenFull= screenfull.isFullscreen; - } - setTimeout(function(){ - if(isscreenFull){ - $("#fullscreen_label").text($.i18n.prop('com_zte_ums_ict_framework_ui_group_exitfullscreen')); - }else{ - $("#fullscreen_label").text($.i18n.prop('com_zte_ums_ict_framework_ui_group_fullscreen')); - } - },500); - } - - $('#trigger_fullscreen').click(function() { - toggleFullScreen(); - }); - } - //清理当前正在显示的iframe之外缓存的iframe, - var dealClearCachedIframes=function(isall){ - if (cachedIframes.count()>0) { - for (var i in cachedIframes.hash()) { - var pagemyIframe=$('.page-content .page-content-body .'+i); - if(pagemyIframe&&pagemyIframe.length>0){ - if(isall==true){ - pagemyIframe.attr("src",""); - pagemyIframe.remove(); - }else if(i!=_iframe) - pagemyIframe.attr("src",""); - pagemyIframe.remove(); - } - } - } - cachedIframes.clear(); - if (cachedIframesObject.count()>0) {//清理缓存的iframe实体对象。 - for (var i in cachedIframesObject.hash()) { - if(i!=_iframe) - cachedIframesObject.remove(i); - } - } - } - var lastSelectedLayout = ''; - var dealTheme = function () { - var panel = $('.zte-theme-panel'); - if ($('body').hasClass('page-boxed') == false) { - $('.layout-option', panel).val("fluid"); - } - $('.sidebar-option', panel).val("default"); - $('.language-option', panel).val(defaultLanage); - $('.header-option', panel).val("fixed"); - $('.footer-option', panel).val("default"); - if ( $('.sidebar-pos-option').attr("disabled") === false) { - $('.sidebar-pos-option', panel).val(openoFrameWork.isRTL() ? 'right' : 'left'); - } - var _resetLayout = function () { - dealResetLayout(); - } - var _setLayout = function () { - dealSetLayout(); - } - var setColor = function (color) { - var color_ = (openoFrameWork.isRTL() ? color + '-rtl' : color); - $('#style_color').attr("href", ICTFRAME_CONST_THEME_COLOR_CSS_PREFFIX + color_ + ".css"); - setCookie('style_color', color); - syncColorCSS(); - } - $('.toggler', panel).click(function () { - $('.toggler').hide(); - $('.toggler-close').show(); - $('.zte-theme-panel > .theme-options').show(); - }); - - $('.toggler-close', panel).click(function () { - $('.toggler').show(); - $('.toggler-close').hide(); - $('.zte-theme-panel > .theme-options').hide(); - }); - $('.theme-colors > ul > li', panel).click(function () { - var color = $(this).attr("data-style"); - setColor(color); - $('ul > li', panel).removeClass("current"); - $(this).addClass("current"); - }); - $('.layout-option,.header-option, .sidebar-option, .footer-option, .sidebar-pos-option, .nav-pos-direction', panel).change(_setLayout); - if (getCookie('style_color') != undefined) { - setColor(getCookie('style_color')); - } - $('.language-option', panel).change(function(){ - var languageOption = $('.language-option', panel).val(); - setCookie('language-option', languageOption); - window.location.reload(); - }); - } - var dealResetLayout = function () { - $("body"). - removeClass("page-boxed"). - removeClass("page-footer-fixed"). - removeClass("page-sidebar-fixed"). - removeClass("page-header-fixed"). - removeClass("page-sidebar-reversed"); - $('.header > .header-inner').removeClass("container"); - if ($('.page-container').parent(".container").size() === 1) { - $('.page-container').insertAfter('body > .clearfix'); - } - if ($('.footer > .container').size() === 1) { - $('.footer').html($('.footer > .container').html()); - } else if ($('.footer').parent(".container").size() === 1) { - $('.footer').insertAfter('.page-container'); - } - $('body > .container').remove(); - } - /* - * 此方法在客户端初始化和设置面板上选择菜单方向的时候用。 - * param navPosOption - */ - var dealNavPos = function(navPosOption) { - // 横竖边栏切换功能禁用,则返回 - var panel = $('.zte-theme-panel'); - if ($('.nav-pos-direction', panel).attr("disabled") == "disabled") { - return; - } - var sidermenu = $("#page-sidebar-menu"); - var hormenu = $("#main_hormenu"); - var sidermenu = $("#page-sidebar-menu"); - var hormenu = $("#main_hormenu"); - var horSiderMenu = $('#' + megaSiderDivId ); - var fhorMenu = $("#" + fMenuMegaDivId); - var fsiderMenu = $("#" + fMenuSiderDivId); - var pcontent = $("[class='page-content']"); - if (sidermenu && sidermenu.length > 0 && hormenu && hormenu.length > 0 && fhorMenu && fhorMenu.length > 0) { - if (navPosOption === openoFrameWork_menu_horizontal) { - sidermenu.css('display','none');// 侧边栏隐藏 - fhorMenu.css('display','none'); - fsiderMenu.css('display','none'); - pcontent.css("marginLeft",0); - $("body").addClass("page-full-width");//调整内容显示 - hormenu.css("display", "block");//显示水平菜单栏 - // 导航位置为水平菜单时,边栏和边栏位置为默认和靠左,且将其切换功能禁用掉 - $('.sidebar-option', panel).val("default"); - $('.sidebar-option', panel).attr("disabled", true); - $('.sidebar-pos-option', panel).val("left"); - $('.sidebar-pos-option', panel).attr("disabled", true); - } else if (navPosOption === openoFrameWork_menu_vertical ) { - $("body").removeClass("page-full-width"); - sidermenu.css('display','block');//侧边栏显示 - var body = $('body'); - if (body.hasClass("page-sidebar-closed")) { - pcontent.css("marginLeft", _sidebarCollapsedWidth); - } else { - pcontent.css("marginLeft", _sidebarWidth); - } - hormenu.css("display", "none");//隐藏水平菜单栏 - fhorMenu.css('display','none'); - fsiderMenu.css('display','none'); - horSiderMenu.css('display','none'); - $('.sidebar-option', panel).attr("disabled", false); - $('.sidebar-pos-option', panel).attr("disabled", false); - } else if(navPosOption === openoFrameWork_menu_fmenu ){ - sidermenu.css('display','none');// 侧边栏隐藏 - hormenu.css("display", "none");//隐藏水平菜单栏 - fsiderMenu.css('display','none'); - fhorMenu.css('display','block'); - pcontent.css("marginLeft",0); - $("body").addClass("page-full-width");//调整内容显示 - // 导航位置为水平菜单时,边栏和边栏位置为默认和靠左,且将其切换功能禁用掉 - $('.sidebar-option', panel).val("default"); - $('.sidebar-option', panel).attr("disabled", true); - $('.sidebar-pos-option', panel).val("left"); - $('.sidebar-pos-option', panel).attr("disabled", true); - } - } - } - var dealSetLayout = function(){ - var panel = $('.zte-theme-panel'); - var layoutOption = $('.layout-option', panel).val(); - var languageOption = $('.language-option', panel).val(); - var headerOption = $('.header-option', panel).val(); - var footerOption = $('.footer-option', panel).val(); - var navPosOption = $('.nav-pos-direction', panel).val(); - dealNavPos(navPosOption); - var sidebarOption = $('.sidebar-option', panel).val(); - var sidebarPosOption = $('.sidebar-pos-option', panel).val(); - if (sidebarOption == "fixed" && headerOption == "default") { - alert($.i18n.prop('com_zte_ums_ict_framework_ui_fixedsidedefaultheaderError')); //页头不支持固定边栏,先固定页头才能固定边栏. - $('.header-option', panel).val("fixed"); - $('.sidebar-option', panel).val("fixed"); - sidebarOption = 'fixed'; - headerOption = 'fixed'; - } - if (sidebarOption == "fixed" && sidebarPosOption == "right") { - alert($.i18n.prop('com_zte_ums_ict_framework_ui_fixedsiderightpositionError')); //固定边栏情况下,边栏不能靠右。. - $('.sidebar-pos-option', panel).val("left"); - sidebarPosOption = 'left'; - } - dealResetLayout(); // reset layout to default state - if (layoutOption === "boxed") { - $("body").addClass("page-boxed"); - // set header - $('.header > .header-inner').addClass("container"); - var cont = $('body > .clearfix').after('
    '); - // set content - $('.page-container').appendTo('body > .container'); - // set footer - if (footerOption === 'fixed') { - $('.footer').html('
    ' + $('.footer').html() + '
    '); - } else { - $('.footer').appendTo('body > .container'); - } - } - if (lastSelectedLayout != layoutOption) { - runResponsiveHandlers(); - } - lastSelectedLayout = layoutOption; - //header - if (headerOption === 'fixed') { - $("body").addClass("page-header-fixed"); - $(".header").removeClass("navbar-static-top").addClass("navbar-fixed-top"); - } else { - $("body").removeClass("page-header-fixed"); - $(".header").removeClass("navbar-fixed-top").addClass("navbar-static-top"); - } - //sidebar - if ($('body').hasClass('page-full-width') === false) { - if (sidebarOption === 'fixed') { - $("body").addClass("page-sidebar-fixed"); - } else { - $("body").removeClass("page-sidebar-fixed"); - } - } - //footer - if (footerOption === 'fixed') { - $("body").addClass("page-footer-fixed"); - } else { - $("body").removeClass("page-footer-fixed"); - } - //sidebar position - if (openoFrameWork.isRTL()) { - if (sidebarPosOption === 'left') { - $("body").addClass("page-sidebar-reversed"); - $('#frontend-link').tooltip('destroy').tooltip({placement: 'right'}); - } else { - var pcontent = $("[class='page-content']"); - pcontent.css("marginLeft",0);//侧边栏靠右,则左边内容填充为0 - $("body").removeClass("page-sidebar-reversed"); - $('#frontend-link').tooltip('destroy').tooltip({placement: 'left'}); - } - } else { - if (sidebarPosOption === 'right') { - var pcontent = $("[class='page-content']"); - pcontent.css("marginLeft",0);//侧边栏靠右,则左边内容填充为0 - $("body").addClass("page-sidebar-reversed"); - $('#frontend-link').tooltip('destroy').tooltip({placement: 'left'}); - } else { - $("body").removeClass("page-sidebar-reversed"); - $('#frontend-link').tooltip('destroy').tooltip({placement: 'right'}); - } - } - dealSidebarAndContentHeight(); - dealFixedSidebar(); - dealFixedSidebarHoverable(); - dealSiderBarWidthChange(); - setCookie('layout-option', layoutOption); - setCookie('language-option', languageOption); - setCookie('header-option', headerOption); - setCookie('sidebar-option', sidebarOption); - setCookie('sidebar-pos-option', sidebarPosOption); - setCookie('nav-pos-direction', navPosOption); - } - var setCookie = function (key, value) { - if (store) { - store(key, value); - } - } - var getCookie = function (key) { - if (store) { - return store(key); - } else { - return undefined; - } - } - /*下面处理前进后退和锚点访问*/ - var _getLocationHash = function() { - return location.hash.replace("#_", ""); - } - /*统一入口设置锚点*/ - var _setLocationHash = function(menuItemID) { - location.hash = getLocationHashByMenuId(menuItemID); - } - var getLocationHashByMenuId = function(menuItemID){ - return "#_" + menuItemID; - } - // hash control - var loadCurrentHash = function(e,data){ - var locationhash = _getLocationHash(); //important - if(!!locationhash&&locationhash.length>0){ - if(_hashSource.trim()=="dhByInterface"){ - _hashSource=""; - }else{ - processChangedHash(locationhash,data); - } - } - } - // hash control 这种写法安全点 - var processChangedHash = function(path) { - var id = path; - var action = undefined; - var spIndex = path.indexOf("/"); - if(spIndex != -1) { - id = path.substring(0,spIndex); - action = path.substring(spIndex+1); - } - openoFrameWork.goToURLByIDAndNewAction(id,action); - } - var syncColorCSS=function(){//注册皮肤切换事件处理函数,处理iframe中的皮肤切换 - var pagemyIframe=null; - if (cachedIframes.count()>0) { - for (var i in cachedIframes.hash()) { - pagemyIframe=$('.page-content .page-content-body .'+i); - if(pagemyIframe&&pagemyIframe.length>0){ - openoFrameWork.SyncCSS(pagemyIframe[0],1,""); - } - } - } - } - var getCurrentVisibleIframe=function(){ - var pagemyIframe=null; - if (cachedIframes.count()>0) { - for (var i in cachedIframes.hash()) { - if(cachedIframes.items(i)===1){ - pagemyIframe=$('.page-content .page-content-body .'+i); - } - } - } - return pagemyIframe; - } - //处理跨域请求代理,通过该代理进行iframe间传递参数,注意这里的代理页面proxy.html必须部署到要跨域的对端域的服务器web根目录下 - var dealCrossProxy=function(ifrm,crossproxysrc,ifmHeadlins,flag){//crossproxysrc这个是proxy.html对应的url根路径 - var url=$.url(openoFrameWork.getCurrentScript(document)); - var proxyHtmlPath=url.attr("directory")+"proxy/proxy.html"//这中情况适用于使用了该界面集成框架的应用系统 - var _ifmProxy=$(''); - var _ifm=$('#ifm_Proxy'); - _ifm.hide(); - var pageContentBody=$('.page-content .page-content-body'); - var linksrcs=new Array(); - var linksids=new Array(); - var linktyps=new Array(); - var _src=""; - for (i=0;i0){ - _src=ifmHeadlins[i].link.src; - linktyps.push("javascriptfile"); - }else{ - _src=ifmHeadlins[i].link.text; - linktyps.push("javascripttext"); - } - }else{ - linktyps.push("undefined"); - } - linksrcs.push(_src); - linksids.push({"pos":ifmHeadlins[i].pos,"scope":ifmHeadlins[i].scope,"id":ifmHeadlins[i].link.id}); - } - var parm={iFrame:ifrm,cssLinktyps:linktyps,cssLinksrcs:linksrcs,cssLinkids:linksids,origin:crossproxysrc,flag:flag}; - if(_ifm&&_ifm.length<=0){//没有添加过 - _ifmProxy.appendTo(pageContentBody); - _ifmProxy.one('load',parm,function(e){ - var data={iFrame:e.data.iFrame,cssLinktyps:e.data.cssLinktyps,cssLinksrcs:e.data.cssLinksrcs,cssLinkids:e.data.cssLinkids,flag:flag}; - $('#ifm_Proxy')[0].contentWindow.postMessage(data,e.data.origin);//window.location.origin - }); - }else if(_ifm.attr("oldproxyorigin")!=crossproxysrc){//代理已经添加过了,看是否是同一个网站的代理,如果不是需要重新加载 - _ifm.attr("src",""); - _ifm.attr("oldproxyorigin",crossproxysrc); - _ifm.one('load',parm,function(e){ - var data={iFrame:e.data.iFrame,cssLinktyps:e.data.cssLinktyps,cssLinksrcs:e.data.cssLinksrcs,cssLinkids:e.data.cssLinkids,flag:flag}; - $('#ifm_Proxy')[0].contentWindow.postMessage(data,e.data.origin);//window.location.origin - }); - _ifm.attr("src",_ifmProxy.attr("src")); - }else{//已经添加过,直接触发消息发送即可 - var data={iFrame:parm.iFrame,cssLinktyps:parm.cssLinktyps,cssLinksrcs:parm.cssLinksrcs,cssLinkids:parm.cssLinkids,flag:flag}; - _ifm[0].contentWindow.postMessage(data,parm.origin);//window.location.origin - } - } - return { - init: function () { - if(zte_http_headers){ - store("zte_http_headers",zte_http_headers); - } - dealInit(); - dealResponsiveOnResize(); - dealResponsiveOnInit(); - dealClearCachedIframes(true); ////清理当前正在显示的iframe之外缓存的iframe, - breadcrumbBtnMenus.clear(); - dealFixedSidebar(); // deals fixed sidebar menu - dealFixedSidebarHoverable(); // deals fixed sidebar on hover effect - dealSidebarMenu(); // deals main menu - dealHorizontalMenu(); // deals horizontal menu - dealSidebarToggler(); // deals sidebar hide/show - dealTheme(); // deals style customer tool - dealSetLayout(); - $(function() { - $(window).on('hashchange',function(){ - loadCurrentHash(); - }); - }); - dealFullScreenMode(); // deals full screen - $("#header_dropdown_user").css('display','block'); - $("#com_zte_ums_ict_framework_img_netnumenLogo").css('display','inline'); - $("#com_zte_ums_ict_framework_ui_main_title").css('display','inline'); - handeCtxMenuitem(); - }, - //公开清理缓存的所有Iframe的方法:isALL==true则清理所有,否则清理当前正在显示的iframe之外缓存的iframe,。 - clearCachedIframes:function(isAll){ - dealClearCachedIframes(isAll); - }, - - setBaseURLRoot:function(ipportStr){//菜单url的跟ip和端口例如:http://10.74.151.122:21180 - if (store) { - store('baseURLRoot', ipportStr); - } - var url = $.url(ipportStr); - location.hash=url.attr('fragment'); - var auth=url.attr('query'); - if (store) { - store('baseURLRootAuth', auth); - } - }, - getBaseURLRoot:function(ipportStr){//菜单url的跟ip和端口例如:http://10.74.151.122:21180 - var rooturl=""; - if (store) { - rooturl=store('baseURLRoot'); - } - return !rooturl?"":rooturl; - }, - clearBaseURLRoot:function(){//菜单url的跟ip和端口例如:http://10.74.151.122:21180 - if (store) { - store('baseURLRoot', "",-1); - } - }, - setPageTitle:function(title){//设置页面标题 - $('title').html(title+" - "+gdocTitle); - }, - getLanguage:function(){//获取语言 - return openoFrameWork_conf.acceptLanguage; - }, - - getLocationHash:function(){ - return _getLocationHash(); - }, - setSceneURLRootPath:function(sceneURLRootPath){ - if(sceneURLRootPath&&sceneURLRootPath.trim().length>0){//如果定义了场景的全局参数 - _sceneURLRootPath=sceneURLRootPath.trim(); - if(_sceneURLRootPath.charAt(_sceneURLRootPath.length-1)!='/') - { - _sceneURLRootPath=_sceneURLRootPath+'/'; - } - } - }, - //public function to add callback a function which will be called on window resize - addResponsiveHandler: function (func) { - responsiveHandlers.push(func); - }, - - hiddenAlarmLight:function(){ - hideAlarmLight(); - }, - - hiddenMenu:function(){ - hidemenu(); - }, - setBreadcrumbByMenuID:function(id){ - //var breaditem=$('#'+id); - var menuitem=undefined; - // var items=$("a[id='"+id+"']"); - var items = undefined; - var panel = $('.zte-theme-panel'); - var navPosOption = $('.nav-pos-direction', panel).val(); - if (navPosOption === "vertical"){ //从垂直菜单里面找 - items=$("#page-sidebar-menu a[id='"+id+"']"); - if (!items || items.length < 1) { - items=$(".page-content a[id='"+id+"']"); - } - }else if(navPosOption === openoFrameWork_menu_horizontal){//从水平菜单里面找 - items=$("#main_hormenu a[id='"+id+"']"); - if(items.length == 0){ - //横菜单没有找到,再在横菜单的子菜单找一次 - items=$("#page-megachild-sidebar-menu a[id='"+id+"']"); - } - }else if(navPosOption === openoFrameWork_menu_fmenu){ - items=$("#f_hormenu a[id='"+id+"']"); - if(items.length == 0){ - //横菜单没有找到,再在竖菜单找一次。 - items=$("#page-f-sidebar-menu a[id='"+id+"']"); - } - } - var isbreadcrumbMenuItem=false; - if(items.length>0){ - for(var i=0;i0){ - if(isbreadcrumbMenuItem){ - dealBreadcrumbBtnGroupMenus(menuitem,false); - }else{ - dealBreadcrumb(menuitem,true,null); - } - }else{ - var breadcrumbBtnMenuItemParent=""; - if(!menuitem||menuitem.length<=0){//没有找到该菜单,可能是面包削中的,需要额外处理 - var menuItemID=id; - if (breadcrumbBtnMenus.contains(menuItemID)) {//有缓存 - breadcrumbBtnMenuItemParent="#"+breadcrumbBtnMenus.items(menuItemID); - menuitem=$(breadcrumbBtnMenuItemParent); - //_breadcrumbSource=true; - } - } - var parm=undefined; - if(breadcrumbBtnMenuItemParent&&breadcrumbBtnMenuItemParent.length>0){ - parm={breadcrumbBtnMenuItem:menuItemID}; - } - if(parm&&menuitem&&menuitem.length>0) { - dealBreadcrumb(menuitem,true,parm); - } - } - }, - setSiderbarCollapseWidth:function(width){ - _sidebarCollapsedWidth = width; - }, - getSiderbarCollapseWidth:function(){ - return _sidebarCollapsedWidth; - }, - setSidebarWidth:function(width){ - _sidebarWidth = width; - }, - getSidebarWidth:function(){ - return _sidebarWidth; - }, - //2015年10月26日新增动态切换菜单的功能,这里的菜单还需要再次更换菜单项访问的ip端口信息 - handlBaseURL:function(url){ - var baseURLRoot=openoFrameWork.getBaseURLRoot(); - if (baseURLRoot.length>0) {//2015年10月26日新增动态切换菜单的功能,这里的菜单还需要再次更换菜单项访问的ip端口信息 - baseURLRoot=openoFrameWork.getDomainURL(baseURLRoot);//去掉ip和port后多余的部分 - console.log("old a link href url:"+url); - url=baseURLRoot+url.replace(openoFrameWork.getDomainURL(url),""); - console.log("baseURLRoot:"+baseURLRoot+" newURL:"+url); - }; - return url; - }, - - startPageLoading: function(message) { - dealstartPageLoading(message); - }, - stopPageLoading: function() { - dealstopPageLoading(); - }, - //public function to get a paremeter by name from URL - getLocationURLParameter: function (paramName,separator) { - var searchString = decodeURIComponent(window.location.search.substring(1)).toLowerCase(), - i, val, params = searchString.split(separator?separator:"&"); - paramName=paramName.toLowerCase(); - for (i = 0; i < params.length; i++) { - val = params[i].split("="); - if (val[0] == paramName) { - return unescape(val[1]); - } - } - return null; - }, - //public function to get a paremeter by name from URL - getURLParameter: function (paramName,url) { - var searchString = decodeURIComponent(url).toLowerCase(), - i, val, params = searchString.split("&"); - paramName=paramName.toLowerCase(); - for (i = 0; i < params.length; i++) { - val = params[i].split("="); - if (val[0] == paramName) { - return unescape(val[1]); - } - } - return null; - }, - // check for device touch support - isTouchDevice: function () { - return isTouch; - }, - getUniqueID: function(prefix) { - return prefix+'_' + Math.floor(Math.random() * (new Date()).getTime()); - }, - // check IE8 mode - isIE8: function () { - return isIE8; - }, - // check IE9 mode - isIE9: function () { - return isIE9; - }, - //check RTL mode - isRTL: function () { - return isRTL; - }, - getViewPort:function(){ - return _getViewPort(); - }, - // get layout color code by color name - getLayoutColorCode: function (name) { - if (layoutColorCodes[name]) { - return layoutColorCodes[name]; - } else { - return ''; - } - } , - fixContentHeight: function () { - dealSidebarAndContentHeight(); - }, - dealAtoIframe:function(aObj,event){ - var containerStr=aObj.parentsUntil('.page-container').hasClass('page-sidebar')?'page-sidebar':"";// - containerStr=aObj.parentsUntil('.header-inner').hasClass('hor-menu')?'header':containerStr; - dealMenuItemClick(aObj,event,containerStr); - _isClicked=false; - }, - getDomainURL:function(urlAddress){ - var url = $.url(urlAddress); - var protocol=url.attr('protocol'); - var host=url.attr('host'); - var port=url.attr('port'); - var crossOrign=protocol+"://"+host+(port.length>0?":"+port:""); - return crossOrign; - }, - getCurrentScript:function(doc) {//doc为 document对象 - /* 注意该功能在其他脚本中调用时出safari获取到的脚本路径为本方法所在脚本的路径, - 其他浏览器获取到的为调用该方法的脚本所在路径 - 取得正在解析的script节点 - */ - if(doc&&doc.currentScript) { //firefox 4+ - console.log("0、 "+doc.currentScript.src); - return doc.currentScript.src; - } - // 参考 https://github.com/samyk/jiagra/blob/master/jiagra.js - var stack; - try { - a.b.c(); //强制报错,以便捕获e.stack - } catch(e) {//safari的错误对象只有line,sourceId 或者高版本还有sourceURL - stack = e.stack; - if(e.sourceURL){//safari 浏览器没有e.stack但有e.sourceURL - stack=e.sourceURL; - }else if(!stack && window.opera){ - //opera 9没有e.stack,但有e.Backtrace,但不能直接取得,需要对e对象转字符串进行抽取 - stack = (String(e).match(/of linked script \S+/g) || []).join(" "); - } - console.log("1、 "+stack); - } - if(stack) { - /*e.stack最后一行在所有支持的浏览器大致如下: - *chrome23: - * at http://113.93.50.63/data.js:4:1 - *firefox17: - *@http://113.93.50.63/query.js:4 - *opera12: - *@http://113.93.50.63/data.js:4 - *IE10: - * at Global code (http://113.93.50.63/data.js:4:1) - */ - console.log("2、 "+stack); - stack = stack.split( /[@ ]/g).pop();//取得最后一行,最后一个空格或@之后的部分 - stack = stack[0] == "(" ? stack.slice(1,-1) : stack; - console.log("3、 "+stack); - return stack.replace(/(:\d+)?:\d+$/i, "");//去掉行号与或许存在的出错字符起始位置 - } - if(doc){ - var nodes = doc.getElementsByTagName("script"); //只在head标签中寻找 - for(var i = 0, node; node = nodes[i++];) { - if(node.readyState === "interactive") { - console.log("4、 "+(node.className = node.src)); - return node.className = node.src; - } - } - } - }, - /*下面的flag为0表示默认不触发孙子iframe中的onload事件,为1表示要触发,flag为10则对cssSrc重复执行,其他不做重复执行*/ - SyncCSS:function(ifrm,flag,cssSrc){//将主框架中的皮肤css应用到打开的iframe页面中 - if(!ifrm)return; - var ifmHeadlins = new Array(); - if(cssSrc&&cssSrc.length>0&&cssSrc.endWith(".css")){ - var _div = $(''); - var csslink=document.createElement("link"); - csslink.href=_div[0].href;//这里同步菜单定义中cssSrc属性指定的css文件到iframe - _div = null; - csslink.rel="stylesheet"; - csslink.type="text/css"; - csslink.id="ifram_csssrc"; - ifmHeadlins.push({"pos":"head","scope":"all","link":csslink});//pos是添加到子iframe中的位置,scope是子窗体作用返回,one表示直接子窗体,all表示嵌套所有子窗体 - } - if(flag!=10){//当flag为10时下面的css和js都不执行 - if($('#style_color').length>0){ - var csslink=document.createElement("link"); - csslink.href=$('#style_color')[0].href.replace(".css","_ifrm.css");//这里同步的皮肤页面修改为原皮肤页面文件名后缀添加ifrm的css皮肤文件 - csslink.rel="stylesheet"; - csslink.type="text/css"; - csslink.id="style_color"; - ifmHeadlins.push({"pos":"head","scope":"all","link":csslink});//pos是添加到子iframe中的位置,scope是子窗体作用返回,one表示直接子窗体,all表示嵌套所有子窗体 - } - // 将 font-awesome字体图标应用到模块iframe - if($('#font_awesome').length>0){ - var awesomelink=document.createElement("link"); - awesomelink.href=$('#font_awesome')[0].href; - awesomelink.rel="stylesheet"; - awesomelink.type="text/css"; - awesomelink.id="font_awesome"; - ifmHeadlins.push({"pos":"head","scope":"all","link":awesomelink}); - } - // 将pym.js or pym.min.js应用到模块iframe - var pymjsObj=$("script[src*='/pym.']");//模糊查找 - pymjsObj=pymjsObj.length>0?pymjsObj:$("script[src*='/pym1.']"); - if(pymjsObj.length>0){ - var pymjs=document.createElement("script"); - pymjs.src=pymjsObj[0].src; - pymjs.type="text/javascript"; - pymjs.id=!!pymjsObj[0].id?pymjsObj[0].id:"pymjs"; - ifmHeadlins.push({"pos":"head","scope":"one","link":pymjs}); - pymjs=document.createElement("script"); //pym脚本文件加载后要执行new pym.Child()进行iframe子窗体实例化,便于子窗体和父窗体通讯new pym.Child({ id: '"+_iframe+"' ,polling: 1000}) - var frameid=(_iframe.split('-').length>0?_iframe.split('-')[1]:"1"); - pymjs.text="var t1;function pmchd(){console.log('In the frame "+_iframe+",pym code call is begining; '+(typeof pym!= 'undefined'));if(typeof pym != 'undefined'){pymChild"+frameid+" = new pym.Child({ id: 'pdiv_"+_iframe+"' ,polling: 500});window.clearInterval(t1); }};t1 = window.setInterval(pmchd,5);"; - pymjs.type="text/javascript"; - pymjs.id="pymChild"; - ifmHeadlins.push({"pos":"htmlend","scope":"one","link":pymjs}); - } - // 将hk.js or hk.min.js应用到模块iframe - var hkjsObj=$("script[src*='/hk.']");//模糊查找 - hkjsObj=hkjsObj.length>0?hkjsObj:$("script[src*='/hk1.']"); - if(hkjsObj.length>0){ - var hkjs=document.createElement("script"); - hkjs.src=hkjsObj[0].src; - hkjs.type="text/javascript"; - hkjs.id=!!hkjsObj[0].id?hkjsObj[0].id:"hkjs"; - ifmHeadlins.push({"pos":"head","scope":"one","link":hkjs}); - hkjs=document.createElement("script"); ////hk.js 加载后拦截ajax请求进行转发 - } - } - var crossOrign=openoFrameWork.getDomainURL(ifrm.src); - if( window.location.origin==crossOrign){ //第一层同域处理 - for (i=0;i0){ - var ifmHeadlins2 = new Array(); - for (i=0;i0){ - console.log('跨域访问: 系统将进入跨域访问代理处理流程 '); - dealCrossProxy(childifrms[j].name,childOrign,ifmHeadlins2,flag); - } - } - } - } - }else{ - if(ifmHeadlins.length>0){ - console.log('跨域访问: 系统将进入跨域访问代理处理流程 '); - dealCrossProxy(ifrm.name,crossOrign,ifmHeadlins,flag); - } - } - }, - goToURL:function(url){ - dhByBreadcrumb = true;//全局变量,声明此次事件是由点击面包屑发起的 - var showNav=openoFrameWork.getLocationURLParameter('showNav'); - if(showNav=="false"){//如果不显示菜单,就强制刷新本页 - location.reload(); - }else{ - url="a[name='"+url+"']"; - $(url).click(); - } - }, - goToURLByName:function(name){ - var showNav=openoFrameWork.getLocationURLParameter('showNav'); - if(showNav=="false"){//如果不显示菜单,就强制刷新本页 - location.reload(); - }else{ - url="a[name='"+name+"']"; - $(url).click(); - } - }, - goToURLByID:function(id){ - if(!id){ - return; - } - var showNav=openoFrameWork.getLocationURLParameter('showNav'); - if(showNav=="false"){//如果不显示菜单,就强制刷新本页 - location.reload(); - }else{ - if(id.indexOf("#")<0){ - id="#"+id; - } - $(id).click(); - } - }, - goToPortal:function(id){ - var _url=top.location.href; - console.log(_url); - //_url="/ngict/iui/framework/"; - var url=$.url(_url); - top.location=url.attr("directory")+"uifportal.html#"+id+"/"; - }, - //Category - goToURLByIDAndNewIPPort:function(id,newIPPort,newActionStr){ - //先把NewIPPort对象:newIPPort={menuCategoryID:'vim',ipPortStr:'htpp://10.74.151.123:31180',newTitle:''}缓存到Category数组中, - //menuCategoryID属性是更多菜单上配置的菜单的分类id,; - //ipPortStr属性是该id的菜单要替换的新的ip和端口地址字符串,包括协议部分,比如http://10.74.151.64:21169 - //newTitle属性用于放置新开ip的页面对应到面包屑上的名字,可以为“”,空标识不关注 - _menuCategorys.replace(newIPPort.menuCategoryID,{ipPort:newIPPort.ipPortStr,ipTitle:newIPPort.newTitle});//把当前面包削中的菜单id和该子菜单对应的父菜单关联缓存起来 - if (store) { - store('menuCategoryID', newIPPort.menuCategoryID+"[menuCategoryID]"+newIPPort.ipPortStr+"[menuCategoryID]"+(!!newIPPort.newTitle?newIPPort.newTitle:"")); - } - //这里增加按照newIPPort.menuCategoryID分类加载more菜单的处理逻辑 - //首先根据id找到对应的主菜单菜单项 - var menuitem = this.findMenuItemByMenuId(id); - if(!menuitem||menuitem.length<=0){//主菜单中没有找到,就找more菜单,找到id对应的more菜单项所属的主菜单项 - var mainMenuId = this.getMenuItemId_From_MoreMenuRelation(id); - if( !!mainMenuId&&mainMenuId.length>0 ){//more菜单中找到了id对应的主菜单项id,根据id返回主菜单项 - menuitem = this.findMenuItemByMenuId(mainMenuId); - if(!!menuitem&&menuitem.length>0){ - var more=$("#"+id,$('#pageableDiv')).parent(); - $(".box.boxOperation", $(".carousel-inner")).removeClass("moreButtonSelected"); - more=$('a>div.box',more); - if (more.hasClass('moreButtonSelected') == false){ - more.addClass('moreButtonSelected'); - } - var pagesTags=$('.item.moreButtonsTag'); - if(pagesTags.length>0){ - for(var i=0;i0){ - tags.addClass('active'); - } - } - } - } - } - } - //其次找到的菜单项中newIPPort.menuCategoryID对应的src覆盖breadcrumgroupbuttonsrc属性值, - if(!!menuitem&&menuitem.length>0){ - var mulsrc=menuitem.attr(newIPPort.menuCategoryID+"-multiInsrc"); - if(!!mulsrc){ - menuitem.attr("breadcrumgroupbuttonsrc" ,mulsrc); - getBreadcrumbRightButtons(mulsrc,true); - } - } - if (waittime) { - clearInterval(waittime); - } - waittime = setInterval(function () { - if(moreMenusisLoaded==true){ - clearInterval(waittime); - openoFrameWork.goToURLByIDAndNewAction(id,newActionStr,null); - } - }, 10); - }, - goToURLByIDAndNewAction:function(id,newActionStr,newBrowserPageOption){ - if(!id){ - return; - } - - /*if(id.indexOf("#")<0){ - id="#"+id; - }*/ - var menuitem = this.findMenuItemByMenuId(id); - //处理新开页面情况 - if(newBrowserPageOption){ - var href = ICTFRAME_CONST_DEFAULTPAGE_PATH; - var hash = getLocationHashByMenuId(id); - var newin=window.open(href + newBrowserPageOption.paramStr + hash,newBrowserPageOption.windowTitle); - newin.name=newActionStr;//注意这种传递参数的方法,被打开的页面中需要通过top.name中获取该传递的参数。 - return; - } - //$(window).off('hashchange', loadCurrentHash); - var menuItemID=menuitem?menuitem.attr("id"):""; - if(!!menuItemID&&menuItemID.length>0){ - //menuItemID="#" + menuItemID; - //menuItemID=!!newActionStr?menuItemID:menuItemID+"/no"; - _setLocationHash(menuItemID); - } - var breadcrumbBtnMenuItemParent=""; - if(!menuitem||menuitem.length<=0){//没有找到该菜单,可能是面包削中的,需要额外处理 - menuItemID=id; - if (breadcrumbBtnMenus.contains(menuItemID)) {//有缓存 - breadcrumbBtnMenuItemParent=breadcrumbBtnMenus.items(menuItemID); - menuitem=this.findMenuItemByMenuId(breadcrumbBtnMenuItemParent); - //_breadcrumbSource=true; - } - // else{//在新增的可翻页的更多菜单里面找 - // var pageDiv = $('#pageableDiv'); - // menuitem=$('#' + menuItemID , pageDiv); - // } - if( menuitem && menuitem.length > 0){ - isMoreMenuItemClick = true; - } - } - if(!menuitem||menuitem.length<=0){ - //面包屑和主菜单都没有找到,情况可能是:更多菜单点击打开后,刷新,hash已经更改,但是对应的更多菜单的html没有加载,需要找到更多菜单和主菜单的对应关系 - var mainMenuId = this.getMenuItemId_From_MoreMenuRelation( id ); - if( mainMenuId ){ - menuitem = this.findMenuItemByMenuId(mainMenuId); - } - - } - if (store&&store("globleCurrentBreadcrumb")){ - globleCurrentBreadcrumb=store("globleCurrentBreadcrumb"); - //下面处理下刷新整个页面后从cookie中获取来的最后一次操作的面包屑对应的对应菜单的name属性回写,便于面包屑事件响应能够找到对应的菜单 - var al=$("a",$("
    "+globleCurrentBreadcrumb+"
    ")); - var alink,gal; - for(i=0;i0){ - var panel = $('.zte-theme-panel'); - var navPosOption = $('.nav-pos-direction', panel).val(); - if(navPosOption === openoFrameWork_menu_fmenu){ - var hparentid=menuitem.attr("hparentid"); - var id=menuitem.attr("id"); - var i=0,menuItemH=menuitem; - while (id!=hparentid&&i<20){ - menuItemH=openoFrameWork.findMenuItemByMenuId(hparentid); - hparentid=menuItemH.attr("hparentid"); - id=menuItemH.attr("id"); - i++; - }; - if(!menuItemH.hasClass('active')) - menuItemH.parent().addClass("active"); - } - }else{ - console.log("goToURLByIDAndNewAction():Can't find the menuitem.The menu ID is:"+id+".Please check if the ID or ID cache is correct."); - } - //try{ - var parm=undefined; - if(!!newActionStr&&breadcrumbBtnMenuItemParent&&breadcrumbBtnMenuItemParent.length>0){ - parm={action:newActionStr,breadcrumbBtnMenuItem:menuItemID}; - }else if(!!newActionStr){ - parm={action:newActionStr}; - }else if(breadcrumbBtnMenuItemParent&&breadcrumbBtnMenuItemParent.length>0){ - parm={breadcrumbBtnMenuItem:menuItemID}; - }else if(mainMenuId){ - isMoreMenuItemClick = true; - parm={breadcrumbBtnMenuItem:menuItemID}; - } - //if(breadChangeType){ - // if(!parm){ - // parm = {}; - // } - // parm.breadChangeType = breadChangeType; - //} - if(parm&&parm.action || parm&&parm.breadChangeType) { - _hashSource="dhByInterface"; - } - - if(menuitem&&menuitem.length>0){ - menuitem.one('click',parm,function(e){ //临时一次性的注册一次click事件处理函数,执行完毕会自动删除 - openoFrameWork.dealAtoIframe($(this),e); - //$(window).one('hashchange', loadCurrentHash); - return false; - }); - menuitem.click();//后执行 - } - /*}catch(e){} - finally{ - //$(window).on('hashchange', loadCurrentHash); - }*/ - }, - - getBreadcrumbEle:function(){ - return $('.breadcrumbUl')[0]; - }, - - - findMenuItemByMenuId:function( id ){ - var menuitem=undefined; - var panel = $('.zte-theme-panel'); - var navPosOption = $('.nav-pos-direction', panel).val(); - - var items = undefined; - if (navPosOption === "vertical"){ //从垂直菜单里面找 - items=$("#page-sidebar-menu a[id='"+id+"']"); - }else if(navPosOption === openoFrameWork_menu_horizontal){//从水平菜单里面找 - items=$("#main_hormenu a[id='"+id+"']"); - if(items.length == 0){ - //横菜单没有找到,再在横菜单的子菜单找一次 - items=$("#page-megachild-sidebar-menu a[id='"+id+"']"); - } - }else if(navPosOption === openoFrameWork_menu_fmenu){ - items=$("#f_hormenu a[id='"+id+"']"); - if(items.length == 0){ - //横菜单没有找到,再在竖菜单找一次。 - items=$("#page-f-sidebar-menu a[id='"+id+"']"); - - } - - } - if( items&&items.length == 0 ){ - console.log( 'fmenu alink length is :' + $("#page-f-sidebar-menu a").length ); - console.log( 'cant find menu in sidemenu、megamenu and fmenu , the menu id is ' + id ); - } - if(items&&items.length>0){ - for(var i=0;i0){ - for(var i=0;i 0) { - parm = { - breadcrumbBtnMenuItem : menuItemID - }; - } - if (menuitem && menuitem.length > 0) { - menuitem.one('click', parm, function (e) { //临时一次性的注册一次click事件处理函数,执行完毕会自动删除 - var containerStr = $(this).parentsUntil('.page-container').hasClass('page-sidebar') ? 'page-sidebar' : ""; // - containerStr = $(this).parentsUntil('.header-inner').hasClass('hor-menu') ? 'header' : containerStr; - _isClicked = false; - dealMenuItemGetFocus($(this),e,containerStr); - return false; - }); - menuitem.click(); //后执行 - } - }, - // 处理面包削中的按钮菜单增加的导航连接,显示在iframe中 - openbreadcrumbLink:function(aObject,e) { - var url = aObject.attr("href"); - if(!url||url.length<2) - return; - e.preventDefault(); - dealScrollTo(); - var menuItemID=aObject.attr("id"); - if(!!menuItemID&&menuItemID.length>0){ - _setLocationHash(menuItemID); - _hashSource="dhByInterface"; - } - dealstartPageLoading(); - dealIframe(aObject,e); - }, - getURLParam:function(name){ - var reg = new RegExp("(^|&)" + name.toLowerCase() + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象 - var search =decodeURIComponent(location.search.substring(1)).toLowerCase(); - var r =search.match(reg); //匹配目标参数 - if (r != null) return unescape(r[2]); - return null; //返回参数值 - } - }; -}(); - -//抽取html片段中任意位置的script标签(包括代码是内嵌的情况)逐个运行(不会在单个script加载不到的时候停下来) -function runHtmlScripts(s) { - var div = document.createElement('div'); - div.innerHTML = s; - var scripts = div.getElementsByTagName('script'); - - var currentRunningScriptSrcPath = {}; - $(scripts).each(function() { - var src = this.src; - src = openoFrameWork.handlBaseURL(src); - if (src) { - currentRunningScriptSrcPath[src.substring(src.lastIndexOf("/") + 1)] = src.substring(0, src.lastIndexOf("/") + 1); - $.getScript(src); - } else { - $.globalEval(this.text || this.textContent || this.innerHTML || ''); - } - }); -}; - -function stripHtmlScripts(htmlContent) { - var divContent = document.createElement('div'); - divContent.innerHTML = htmlContent; - var scripts = divContent.getElementsByTagName('script'); - - $(scripts).each(function() { - this.src = openoFrameWork.handlBaseURL(this.src); - this.parentNode.removeChild(this); - }); - return divContent.innerHTML; -}; - -function getsiderBarMenu(url){ - if (url.length<2){ - return; - } - url=openoFrameWork.handlBaseURL(url); - openoFrameWork.startPageLoading();//菜单加载中请稍候.... - var pagesidebar=$('#page-sidebar-menu'); - pagesidebar.empty(); - pagesidebar.append(""); - $.ajax({ - type: "GET", - cache: false, - url: url, - dataType: "html", - success: function (res) { - //去除script标签以后添加到主框架以防止append方法因为加载script标签失败导致后面的代码无法运行 - //res = stripHtmlScripts(res); - var resScriptsSriped = stripHtmlScripts(res); - pagesidebar.append(resScriptsSriped); - runHtmlScripts(res); - - siderBarMenuAuthentication(); - dealMysqlBackupMenu(); - //loadi18n_WebFramework_sideMenu(); - setTimeout(function () { - openoFrameWork.stopPageLoading(); - goToHomePage(); - }, 1000); - }, - error: function (xhr, ajaxOptions, thrownError) { - //$('#page-sidebar-menu').append('');//加载系统菜单失败!;//加载系统菜单失败! - } - }); -}; -var setLayoutValueByCookie = function () { - var panel = $('.zte-theme-panel'); - if (store('layout-option') != undefined) { - $('.layout-option', panel).val(store('layout-option')); - } - if (store('language-option') != undefined) { - $('.language-option', panel).val(store('language-option')); - } - if (store('sidebar-option') != undefined) { - $('.sidebar-option', panel).val(store('sidebar-option')); - } - if (store('header-option') != undefined) { - $('.header-option', panel).val(store('header-option')); - } - if (store('sidebar-pos-option') != undefined) { - $('.sidebar-pos-option', panel).val(store('sidebar-pos-option')); - } - var horMenuLoadTip = $("[class='nav-load-error']", $(".hormenu")); - var sideMenuLoadTip = $("[class='nav-load-error']", $("[class='page-sidebar-menu']")); - // 横竖菜单都无错误提示,都正确加载 - // if ((!horMenuLoadTip || horMenuLoadTip.length <= 0) && (!sideMenuLoadTip || sideMenuLoadTip.length <= 0)) { - // if (store('nav-pos-direction') != undefined) { - // var navPosOption = store('nav-pos-direction'); - // $('.nav-pos-direction', panel).val(navPosOption); - // } else { - $('.nav-pos-direction', panel).val('fmenu'); - // $.ajax({ - // "dataType" : 'json', - // "type" : "GET", - // "async" : false, - // url : FrameConst.REST_GET_FRAME_MENUDIRECTION + "&tmpstamp=" + new Date().getTime(), - // "success" : function (obj) { - // if (obj.value && (obj.value != "")) { - // $('.nav-pos-direction', panel).val(obj.value); - // } - // } - // }); - //} - // } else { - // $('.nav-pos-direction', panel).attr("disabled", true); - // } -}; - - -function iniFMenu() { - var fsidemenu = $('#' + fMenuSiderDivId); - - if (fsidemenu) { - openoFrameWork.startPageLoading(); - - var menuContent = initLeftMenu(); - fsidemenu.empty(); - fsidemenu.append(""); - fsidemenu.append(menuContent); - loadi18n_WebFramework('web-framework-menu-i18n', 'i18n/', 'openo_frame_left_menu_i18n'); - - openoFrameWork.stopPageLoading(); - } -}; - -function goToHomePage(){ - locationhash = openoFrameWork.getLocationHash(); - if(!!locationhash&&locationhash.length>0){//有锚点,直接触发 - var newIPPort=null; - if (store&&store('menuCategoryID')) { - var s=store('menuCategoryID').split('[menuCategoryID]'); - if(s.length>2){ - newIPPort={menuCategoryID:s[0],ipPortStr:s[1],newTitle:s[2]}; - } - } - if(!!newIPPort){ - openoFrameWork.goToURLByIDAndNewIPPort(locationhash,newIPPort,null); - }else{ - openoFrameWork.goToURLByIDAndNewAction(locationhash,null,null); - } - }else{//否则还是模拟点击配置了start类的菜单 - var containerStr = ""; - //var sidermenu = $("[class='page-sidebar-menu']", $("[class='page-sidebar navbar-collapse collapse']")); - var sidermenu = $("#page-sidebar-menu"); - var hormenu = $("#main_hormenu"); - var fhormenu = $('#' + fMenuMegaDivId); - var fhormenusider = $('#page-f-sidebar-menu'); - var startmenu = null; - var navPosOption = $('.nav-pos-direction', panel).val(); - // 侧边栏显示,根据侧边栏CSS选择 - if (navPosOption === "vertical") { - //containerStr=$('.page-sidebar').length>0?'.page-sidebar':""; - startmenu = $('.iframe.start' , sidermenu); - dealStartMenu( startmenu, sidermenu ); - } - // 水平菜单显示,根据水平菜单CSS选择 - else if (navPosOption === "horizontal") { - //containerStr=$('.hor-menu').length>0?'.header':containerStr; - startmenu = $('.iframe.start' , hormenu); - dealStartMenu( startmenu, hormenu ); - - } - //F菜单的恒菜单显示 - else if (navPosOption === openoFrameWork_menu_fmenu) { - //containerStr=$('.hor-menu').length>0?'.header':containerStr; - startmenu = $('.iframe.start' ,fhormenu); - if (startmenu && startmenu.length < 1) { - startmenu = $('.iframe.start' ,fhormenusider); - } - dealStartMenu( startmenu, fhormenu,fhormenusider ); - } - } -}; -var dealStartMenu = function(startmenu , menuContainer,menuContainer2 ){ - var timer =setInterval(function () { - if(startmenu&&startmenu.length>0){ - startmenu.click(); - clearInterval(timer); - }else{ - console.log('the start menu click event is not be triggerd ,so do it repeat!!'); - $('a[operation]', menuContainer).each(function () { - startmenu = $(this); - return false; - }); - if (menuContainer2&&startmenu && startmenu.length < 1) { - $('a[operation]', menuContainer2).each(function () { - startmenu = $(this); - return false; - }); - } - } - }, 100); - handeCtxMenuitem(); - } -// 屏蔽横竖菜单项的右键功能 -function handeCtxMenuitem() { - $(".page-sidebar ul li a").each(function() { - if ($(this).attr("href") && $(this).attr("href") != "javascript:;" && $(this).attr("href") != "#") { - $(this).attr("oncontextmenu", "return false"); - } - }); - $(".hormenu li a").each(function() { - if ($(this).attr("href") && $(this).attr("href") != "javascript:;" && $(this).attr("href") != "#") { - $(this).attr("oncontextmenu", "return false"); - } - }); -} -function initBaseInfo(){ - $("#logout_label").text($.i18n.prop('com_zte_ums_ict_framework_ui_group_logout')); - $("#fullscreen_label").text($.i18n.prop('com_zte_ums_ict_framework_ui_group_fullscreen')); - $("#changePwd_label").text($.i18n.prop('com_zte_ums_ict_framework_ui_changePwd')); - $("#com_zte_ums_ict_framework_moudle_about").text($.i18n.prop('com_zte_ums_ict_framework_moudle_about')); - $("#com_zte_ums_ict_framework_moudle_help").text($.i18n.prop('com_zte_ums_ict_framework_moudle_help')); - $("#zte_menu-toggler").attr("title",$.i18n.prop('com_zte_ums_ict_framework_moudle_menutoggler')); -}; -window.closeModal = function(modalid) { - if(!modalid){ - return; - } - if(modalid.indexOf("#")<0){ - modalid="#"+modalid; - } - $(modalid).modal('hide'); -}; -function getLcsRight(lcsoperations) { - var lcsrights = new Array(); - if (lcsoperations && (lcsoperations.length > 0)) { - // 请求后台license value - //----test data---- - // var testjson = '{"data":[{"id":"mylcs","name":"xxx","value":"false"}]}'; - // var testopt = eval('(' + testjson + ')'); - // var testarray = testopt.data; - //-----end test data--- - var keys = { - "keys" : lcsoperations - }; - var jsonvalues = JSON.stringify(keys); - var data = { - "data" : jsonvalues - }; - var url=FrameConst.REST_GETLICENSEINFO + "?tmpstamp=" + new Date().getTime(); - url=openoFrameWork.handlBaseURL(url); - $.ajax({ - "dataType" : 'json', - "type" : "GET", - "async" : false, - "url" : url, - "data" : data, - //"contentType" : 'application/json; charset=utf-8', - "success" : function (response) { - if (response) { - lcsrights = response.data; - } - }, - "error" : function (XMLHttpRequest, textStatus, errorThrown) { - lcsrights = null; - } - }); - return lcsrights; - } - return lcsrights; -} -// 侧边栏菜单鉴权 -function siderBarMenuAuthentication() { - // license 鉴权 - var menuids = new Array(); - var lcsoperations = new Array(); - //从页面DOM取得菜单license项。 - $('a[licenseid]', $('.page-sidebar-menu')).each(function () { - var licenseid = $(this).attr("licenseid"); - if (licenseid) { - lcsoperations.push(licenseid); - var id = $(this).attr("id"); - menuids.push(id); - } - }); - var lcsrights = getLcsRight(lcsoperations);// 取得license数据。 - if (lcsrights && (lcsrights.length == menuids.length)) { - // 根据后台license值判断所在菜单项是否显示 - for (var i = 0; i < menuids.length; i++) { - var id = menuids[i]; - var lcskey = lcsoperations[i]; - var lcsitem = lcsrights[i]; - // 菜单项如果配了licenseid, 并且不是true字符串, 则移除菜单项 - if (lcsitem.value != "True") { - $('#'+id, $('.page-sidebar-menu')).parent().remove(); - } - } - } - var operations = new Array(); - $('a[operation]', $('.page-sidebar-menu')).each(function () { - var operation = $(this).attr("operation"); - if (operation) { - operations.push(operation); - } - }); // 遍历菜单项,提取所有的操作码 - var rightObj = getAllOperCodeRights(operations); // 对操作码进行鉴权判断 - $('a[operation]', $('.page-sidebar-menu')).each(function () { - var operation = $(this).attr("operation"); - if (operation) { - if (!hasRight(operation, rightObj)) { - $(this).parent("li").remove(); // 删除没有权限的菜单项 - } - } - }); - rebuildSiderBarMenu(); -}; -// 横向菜单栏鉴权 -function horMenuAuthentication( horMenuId ) { - // license 鉴权 - var menuids = new Array(); - var lcsoperations = new Array(); - //从页面DOM取得菜单license项。 - $('a[licenseid]', $('#'+ horMenuId)).each(function () { - var licenseid = $(this).attr("licenseid"); - if (licenseid) { - lcsoperations.push(licenseid); - var id = $(this).attr("id"); - menuids.push(id); - } - }); - var lcsrights = getLcsRight(lcsoperations);// 取得license数据。 - if (lcsrights && (lcsrights.length == menuids.length)) { - // 根据后台license值判断所在菜单项是否显示 - for (var i = 0; i < menuids.length; i++) { - var id = menuids[i]; - var lcskey = lcsoperations[i]; - var lcsitem = lcsrights[i]; - // 菜单项如果配了licenseid, 并且不是true字符串, 则移除菜单项 - if (lcsitem.value != "True") { - $('#'+id, $('#'+ horMenuId)).parent().remove(); - } - } - } - var operations = new Array(); - $('a[operation]', $('#'+ horMenuId)).each(function () { - var operation = $(this).attr("operation"); - if (operation) { - operations.push(operation); - } - }); // 遍历菜单项,提取所有的操作码 - var rightObj = getAllOperCodeRights(operations); // 对操作码进行鉴权判断 - $('a[operation]', $('#'+ horMenuId)).each(function () { - var operation = $(this).attr("operation"); - if (operation) { - if (!hasRight(operation, rightObj)) { - $(this).parent("li").remove(); // 删除没有权限的菜单项 - } - } - }); - rebuildHorMenu(); -}; - -// “更多操作”分组按钮鉴权 -function groupButtonAuthentication() { - // license 鉴权 - var menuids = new Array(); - var lcsoperations = new Array(); - //从页面DOM取得菜单license项。 - $('a[licenseid]', $('.more-botton-zone > li.btn-group')).each(function () { - var licenseid = $(this).attr("licenseid"); - if (licenseid) { - lcsoperations.push(licenseid); - var id = $(this).attr("id"); - menuids.push(id); - } - }); - var lcsrights = getLcsRight(lcsoperations);// 取得license数据。 - if (lcsrights && (lcsrights.length == menuids.length)) { - // 根据后台license值判断所在菜单项是否显示 - for (var i = 0; i < menuids.length; i++) { - var id = menuids[i]; - var lcskey = lcsoperations[i]; - var lcsitem = lcsrights[i]; - // 菜单项如果配了licenseid, 并且不是true字符串, 则移除菜单项 - if (lcsitem.value != "True") { - $('#'+id, $('.more-botton-zone > li.btn-group')).parent().remove(); - } - } - } - // 增加mysql判断,如果数据库为mysql,去掉基础数据备份功能菜单项 - var dbType = openoFrameWork_conf.dbType; - if (dbType == "mysql") { - $("#uep-ict-backup-baseDataBack",$('.more-botton-zone > li.btn-group')).parent().remove(); - } - var operations = new Array(); - $('a[operation]', $('.more-botton-zone > li.btn-group')).each(function () { - var operation = $(this).attr("operation"); - if (operation) { - operations.push(operation); - } - }); // 遍历菜单项,提取所有的操作码 - var rightObj = getAllOperCodeRights(operations); // 对操作码进行鉴权判断 - $('a[operation]', $('.more-botton-zone > li.btn-group')).each(function () { - var operation = $(this).attr("operation"); - if (operation) { - if (!hasRight(operation, rightObj)) { - $(this).parent("li").remove(); // 删除没有权限的菜单项 - } - } - }); - // 如果“更多菜单”下没有子菜单了,则删除整个“更多菜单”下拉框。 - if ($('li > a', $('.more-botton-zone > li.btn-group')).length == 0) { - $('.more-botton-zone > li.btn-group').remove(); - } -}; -// 删除没有子菜单的一级菜单,查看新菜单是否配了登录默认页面,如没有则指定第一个有权限的菜单作为登录后默认页面 -function rebuildSiderBarMenu() { - if ($('a.start').length == 0) { - $('li > a[href!="javascript:;"]', $('.page-sidebar-menu')).eq(0).addClass("start"); - } - $('ul.sub-menu', $('.page-sidebar-menu')).each(function () { - if ($(this).has('li').length == 0) { - $(this).parent("li").remove(); - } - }); -}; -// 删除没有子菜单的一级菜单,查看新菜单是否配了登录默认页面,如没有则指定第一个有权限的菜单作为登录后默认页面 -function rebuildHorMenu() { - if ($('a.start').length == 0) { - $('li > a[href!="#"]', $('#main_hormenu')).eq(0).addClass("start"); - } - $('ul.mega-menu-submenu', $('#main_hormenu')).each(function () { - if ($(this).has('li > a').length == 0) { - $(this).remove(); // 删空的分组列 - } - }); - //删除增加的分组div - $('div.zteDivWidth', $('#main_hormenu')).each(function () { - if ($(this).has('ul').length == 0) { - $(this).remove(); // 删空的分组列 - } - }); - $('ul.dropdown-menu', $('#main_hormenu')).each(function () { - if ($(this).has('ul').length == 0) { - $(this).parent("li").remove(); // 删空的一级菜单栏 - } - }); - $('li.divider', $('#main_hormenu')).each(function () { - if ($(this).next().hasClass('divider')) { - $(this).remove(); // 连续出现分隔线则删除一个 - } - }); - $('li.divider', $('#main_hormenu')).each(function () { - if ($(this).next().length == 0) { - $(this).remove(); // 如果分隔线在最后一行,则删除之 - } - }); -} -//获取页面菜单栏所有的操作码权限 -function getAllOperCodeRights(operations) { - var rights = new Array(); - if( operations && operations.length > 0 ){ - var data = { - "operations" : operations - }; - var sendData = JSON.stringify(data); - var url=FrameConst.REST_CHECKRIGHT + "?data=" + sendData + "&tmpstamp=" + new Date().getTime(); - url=openoFrameWork.handlBaseURL(url); - $.ajax({ - "dataType" : 'json', - "type" : "GET", - "async" : false, - "url" : url, - "data" : null, - //"contentType" : 'application/json; charset=utf-8', - "success" : function (response) { - rights = response.value; - }, - "error" : function (XMLHttpRequest, textStatus, errorThrown) { - if (XMLHttpRequest.status == 401) { - window.location.replace("login.html"); - } else { - console.log('Communication Error!'); - } - } - }); - } - return { - opCodes : operations, - rights : rights - }; -}; -// 判断操作码是否有权限 -function hasRight(opCode, rightObj) { - for (var i = 0; i < rightObj.opCodes.length; i++) { - if (rightObj.opCodes[i] == opCode) { - return (rightObj.rights[i] == true); - } - } - return false; -}; -// 处理mysql环境下备份菜单的合并问题 -function dealMysqlBackupMenu() { - var dbType = openoFrameWork_conf.dbType; - if (dbType !== undefined && dbType !== "mysql") { - return; - } - var sidermenu = $("[class='page-sidebar-menu']"); - var hormenu = $(".hormenu"); - //这段代码先这么写,html的位置不一定正确,如果后面位置不一致,再修改。 - if (sidermenu.length > 0 && $('#uep-ict-backup-dataBackup').length > 0) { - $('#uep-ict-backup-dataBackup', sidermenu).attr("breadcrumGroupButtonSrc", ICTFRAME_CONST_DATABACKUP_PATH); - } - if (hormenu.length > 0 && $('#uep-ict-backup-dataBackup').length > 0) { - $('#uep-ict-backup-dataBackup', hormenu).attr("breadcrumGroupButtonSrc", ICTFRAME_CONST_DATABACKUP_PATH); - $('#uep-ict-backup-dataBackup').parent('li').attr('style', 'display:block'); - $('#uep-ict-backup-allDbStructBackup').parent('li').attr('style', 'display:none'); - $('#uep-ict-backup-baseDataBack').parent('li').attr('style', 'display:none'); - } -}; -// 浏览器缩小后导航栏隐藏的情况下点击navbar-toggle显示菜单的前置工作, -// 浏览器缩小后导航栏隐藏的情况下点击navbar-toggle显示菜单的前置工作, -function dealMavToggle(navtoggle) { - var sidermenu = $("#page-sidebar-menu"); - var hormenu = $("#main_hormenu"); - var panel = $(".zte-theme-panel"); - var siderbarpos = $(".nav-pos-direction", panel).val() - if ("hidden" == $(navtoggle).attr("navtoggledispattr")) { - $(navtoggle).attr("navtoggledispattr", "display"); - sidermenu.css('display','block');//侧边栏显示 - hormenu.css("display", "none");//隐藏水平菜单栏 - } else { - $(navtoggle).attr("navtoggledispattr", "hidden"); - sidermenu.css('display','none');//侧边栏隐藏 - hormenu.css("display", "none"); - } -}; diff --git a/openo-portal/portal-common/src/main/webapp/common/js/core/pym.min.js b/openo-portal/portal-common/src/main/webapp/common/js/core/pym.min.js deleted file mode 100644 index db0984ea..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/js/core/pym.min.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -(function(a){if(typeof define==="function"&&define.amd){define("pym",[],a)}else{if(typeof module!=="undefined"&&module.exports){module.exports=a()}else{window.pym=a.call(this)}}window.pym=a.call(this)})(function(){var a="xPYMx";function e(){var k,i;if(window.innerHeight&&window.scrollMaxY){k=window.innerWidth+window.scrollMaxX;i=window.innerHeight+window.scrollMaxY}else{if(document.body.scrollHeight>document.body.offsetHeight){k=document.body.scrollWidth;i=document.body.scrollHeight}else{k=document.body.offsetWidth;i=document.body.offsetHeight}}var j,l;if(self.innerHeight){if(document.documentElement.clientWidth){j=document.documentElement.clientWidth}else{j=self.innerWidth}l=self.innerHeight}else{if(document.documentElement&&document.documentElement.clientHeight){j=document.documentElement.clientWidth;l=document.documentElement.clientHeight}else{if(document.body){j=document.body.clientWidth;l=document.body.clientHeight}}}if(i-1){q=this.url.substring(n,this.url.length);this.url=this.url.substring(0,n)}if(this.url.indexOf("?")<0){this.url+="?"}else{this.url+="&"}this.iframe.src=this.url.trim().indexOf("javascript:")>=0?"":this.url+"initialWidth="+o+"&childId="+this.id;"&parentUrl="+encodeURIComponent(window.location.href)+q;this.iframe.setAttribute("width","100%");this.iframe.setAttribute("scrolling","no");this.iframe.setAttribute("marginheight","0");this.iframe.setAttribute("frameborder","0");this.el.appendChild(this.iframe);var p=this;window.addEventListener("resize",this._onResize)};this._onResize=function(){this.sendWidth()}.bind(this);this._fire=function(o,p){if(o in this.messageHandlers){for(var n=0;n0&&this.childpageType==="isc"){console.log("parent window detect that the child iframe page loaded smartclient,the iframe height will ignore the child's Height change message;");if(this.minHeightheight){m=l.oldHeight-height}else{m=height-l.oldHeight}if(m<=70){return}if(l.oldHeight!=height){l.oldHeight=height;console.log("child iframe id="+l.id+" sedHeight:"+height);l.sendMessage("height",height)}}.bind(this);this.scrollParentTo=function(m){this.sendMessage("navigateTo","#"+m)};this.navigateParentTo=function(m){this.sendMessage("navigateTo",m)};this.id=c("childId")||i.id;this.messageRegex=new RegExp("^pym"+a+this.id+a+"(\\S+)"+a+"(.+)$");var k=parseInt(c("initialWidth"));this.parentUrl=c("parentUrl");this.onMessage("width",this._onWidthMessage);for(var j in i){this.settings[j]=i[j]}var l=this;window.addEventListener("message",this._processMessage,false);if(this.settings.renderCallback){this.settings.renderCallback(k)}this.sendHeight();if(this.settings.polling){window.setInterval(this.sendHeight,this.settings.polling)}return this};d();return g}); diff --git a/openo-portal/portal-common/src/main/webapp/common/js/fm_light.js b/openo-portal/portal-common/src/main/webapp/common/js/fm_light.js deleted file mode 100644 index ea4aeb29..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/js/fm_light.js +++ /dev/null @@ -1,169 +0,0 @@ -/* - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -(function($) { - String.prototype.trim = function() { - return this.replace(/(^\s*)|(\s*$)/g, ""); - }; - String.prototype.format=function() { - if(arguments.length==0) return this; - for(var s=this, i=0; i0&&$("#header_notification_bar").children().length>0){ - // 对告警灯进行鉴权,如果有当前告警权限,显示告警灯,否则返回ã€? - var operations = new Array(); - operations.push("common.fm.currentview"); - var rightObj = getAllOperCodeRights(operations); - var operation = $("#uep-ict-fm-currentAlarm").attr("operation");; - if (!hasRight(operation, rightObj)) { - $('#header_notification_bar').html("
          
    "); - return; - } - // get total alarm count - $("#hd_heighestAlarmcount_label").attr("title",$.i18n.prop('com_zte_ums_ict_alarmcount_none_label')); - $("#hd_alarmcount_total_value").attr("title",$.i18n.prop('com_zte_ums_ict_alarmcount_total_label')); - $("#hd_alarmcount_critical_value").attr("title",$.i18n.prop('com_zte_ums_ict_alarmcount_critical_label')); - $("#hd_alarmcount_major_value").attr("title",$.i18n.prop('com_zte_ums_ict_alarmcount_major_label')); - $("#hd_alarmcount_minor_value").attr("title",$.i18n.prop('com_zte_ums_ict_alarmcount_minor_label')); - $("#hd_alarmcount_warning_value").attr("title",$.i18n.prop('com_zte_ums_ict_alarmcount_warning_label')); - - function alarmLight(alarmcount){ - if (!alarmcount || !alarmcount.unAckedCount || (alarmcount.unAckedCount.length < 4) || !alarmcount.ackedCount || (alarmcount.ackedCount.length < 4)) { - return; - } - var criticalNum = alarmcount.unAckedCount[0] + alarmcount.ackedCount[0]; - var majorNum = alarmcount.unAckedCount[1] + alarmcount.ackedCount[1]; - var minorNum = alarmcount.unAckedCount[2] + alarmcount.ackedCount[2]; - var warningNum = alarmcount.unAckedCount[3] + alarmcount.ackedCount[3]; - var totalNum= criticalNum+ majorNum+ minorNum+ warningNum; - var heighestAlarmcount=0; - var hd_heighestAlarmcount_label=""; - if(criticalNum>0){ - heighestAlarmcount =criticalNum; - hd_heighestAlarmcount_label=$.i18n.prop('com_zte_ums_ict_alarmcount_critical_label'); - // $("#hd_heighestAlarmcount_li").attr("class",$("#hd_alarmcount_critical_li").attr("class")); - }else if(majorNum>0){ - heighestAlarmcount =majorNum; - hd_heighestAlarmcount_label=$.i18n.prop('com_zte_ums_ict_alarmcount_major_label'); - }else if(minorNum>0){ - heighestAlarmcount =minorNum; - hd_heighestAlarmcount_label=$.i18n.prop('com_zte_ums_ict_alarmcount_minor_label'); - }else if(warningNum>0){ - heighestAlarmcount =warningNum; - hd_heighestAlarmcount_label=$.i18n.prop('com_zte_ums_ict_alarmcount_warning_label'); - }else{ - heighestAlarmcount =0; - hd_heighestAlarmcount_label=$.i18n.prop('com_zte_ums_ict_alarmcount_none_label'); - } - - $("#hd_heighestAlarmcount_value").text(heighestAlarmcount); - $("#hd_alarmcount_total_value").text(totalNum); - $("#hd_alarmcount_critical_value").text(criticalNum); - $("#hd_alarmcount_major_value").text(majorNum); - $("#hd_alarmcount_minor_value").text(minorNum); - $("#hd_alarmcount_warning_value").text(warningNum); - - $("#hd_heighestAlarmcount_value").attr("title",hd_heighestAlarmcount_label.format(heighestAlarmcount )); - $("#hd_alarmcount_total_value").attr("title",$.i18n.prop('com_zte_ums_ict_alarmcount_total_label').format(totalNum )); - $("#hd_alarmcount_critical_value").attr("title",$.i18n.prop('com_zte_ums_ict_alarmcount_critical_label').format( criticalNum )); - $("#hd_alarmcount_major_value").attr("title",$.i18n.prop('com_zte_ums_ict_alarmcount_major_label').format(majorNum)); - $("#hd_alarmcount_minor_value").attr("title",$.i18n.prop('com_zte_ums_ict_alarmcount_minor_label').format(minorNum)); - $("#hd_alarmcount_warning_value").attr("title",$.i18n.prop('com_zte_ums_ict_alarmcount_warning_label').format(warningNum)); - - $("#hd_alarmcount_critical_text").text($.i18n.prop('com_zte_ums_ict_alarmcount_critical_text')); - $("#hd_alarmcount_major_text").text($.i18n.prop('com_zte_ums_ict_alarmcount_major_text')); - $("#hd_alarmcount_minor_text").text($.i18n.prop('com_zte_ums_ict_alarmcount_minor_text')); - $("#hd_alarmcount_warning_text").text($.i18n.prop('com_zte_ums_ict_alarmcount_warning_text')); - - $("#hd_alarmcount_total_before_text").text($.i18n.prop('com_zte_ums_ict_alarmcount_total_before_text')); - $("#hd_alarmcount_total_after_text").text($.i18n.prop('com_zte_ums_ict_alarmcount_total_after_text')); - $("#header_notification_bar").css('display','block'); - } - function queryAlarmTotalCount() { - $.getJSON("/web/rest/web/fm/count/total", function(data) { - //var alarmcount = $.parseJSON(data); - alarmLight(data); - if($("#header_notification_bar")&&$("#header_notification_bar").length>0&&$("#header_notification_bar").children().length>0){ - registerAlarmTotalCountToCometd(); - } - }) - } - if($("#header_notification_bar")&&$("#header_notification_bar").length>0&&$("#header_notification_bar").children().length>0){ - queryAlarmTotalCount(); - } - var registerAlarmTotalCountToCometd = function () { - var self = this; - var cometd = $.cometd; - var cometURL = location.protocol + "//" + location.host + "/web/cometd"; - cometd.configure({ - url: cometURL, - logLevel: 'debug' - }); - cometd.addListener('/meta/handshake', function (handshake){ - if (handshake.successful === true) { - cometd.batch(function () { - cometd.subscribe('/alarm/usercount', function (message) { - var alarmcount =message.data; - alarmLight(alarmcount); - }) - }) - } - }); - cometd.handshake(); - }; - - // if($("#header_notification_bar")&&$("#header_notification_bar").length>0&&$("#header_notification_bar").children().length>0){ - // registerAlarmTotalCountToCometd(); - // } - //setInterval(queryAlarmTotalCount, 30 * 1000); - } - } - else if(base){ - //$("#header_notification_bar").hide(); - //$('#header_notification_bar').empty(); - $('#header_notification_bar').html("
          
    "); - } - }); - }catch(e){} -})(jQuery); diff --git a/openo-portal/portal-common/src/main/webapp/common/js/international/loadi18n.js b/openo-portal/portal-common/src/main/webapp/common/js/international/loadi18n.js deleted file mode 100644 index b3989158..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/js/international/loadi18n.js +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -var lang = 'en-US'; - -function loadProperties(propertiesFileName, propertiesFilePath , name_i18n) { - jQuery.i18n.properties({ - language:lang, - name:propertiesFileName, - path:propertiesFilePath, - mode:'map', - callback: function() { - var i18nItems = $('[name_i18n='+ name_i18n + ']'); - for (var i = 0; i < i18nItems.length; i++) { - var $item = $(i18nItems.eq(i)); - var itemId = $item.attr('id'); - var itemValue = $.i18n.prop(itemId); - if (itemValue.indexOf(';') > 0) { - itemValue = itemValue.replace(';', ''); - } - if (/[\'\"]/.test(itemValue)) { - itemValue = itemValue.replace(/\"/g,''); - itemValue = itemValue.replace(/\'/g,''); - } - if (typeof($item.attr("title")) != "undefined") { - $item.attr("title", itemValue); - } else if (typeof($item.attr("placeholder")) != "undefined") { - $item.attr("placeholder", itemValue); - } else { - $item.text(itemValue); - } - } - } - }); -} - -function loadi18n_WebFramework(propertiesFileName, propertiesFilePath, name_i18n) { - loadProperties(propertiesFileName, propertiesFilePath, name_i18n); -} - diff --git a/openo-portal/portal-common/src/main/webapp/common/js/json2.js b/openo-portal/portal-common/src/main/webapp/common/js/json2.js deleted file mode 100644 index e6c115c0..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/js/json2.js +++ /dev/null @@ -1,341 +0,0 @@ -/* - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -if (typeof JSON !== 'object') { - JSON = {}; -} - -(function () { - 'use strict'; - - function f(n) { - // Format integers to have at least two digits. - return n < 10 ? '0' + n : n; - } - - if (typeof Date.prototype.toJSON !== 'function') { - - Date.prototype.toJSON = function (key) { - - return isFinite(this.valueOf()) - ? this.getUTCFullYear() + '-' + - f(this.getUTCMonth() + 1) + '-' + - f(this.getUTCDate()) + 'T' + - f(this.getUTCHours()) + ':' + - f(this.getUTCMinutes()) + ':' + - f(this.getUTCSeconds()) + 'Z' - : null; - }; - - String.prototype.toJSON = - Number.prototype.toJSON = - Boolean.prototype.toJSON = function (key) { - return this.valueOf(); - }; - } - - var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, - escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, - gap, - indent, - meta = { // table of character substitutions - '\b': '\\b', - '\t': '\\t', - '\n': '\\n', - '\f': '\\f', - '\r': '\\r', - '"' : '\\"', - '\\': '\\\\' - }, - rep; - - - function quote(string) { - -// If the string contains no control characters, no quote characters, and no -// backslash characters, then we can safely slap some quotes around it. -// Otherwise we must also replace the offending characters with safe escape -// sequences. - - escapable.lastIndex = 0; - return escapable.test(string) ? '"' + string.replace(escapable, function (a) { - var c = meta[a]; - return typeof c === 'string' - ? c - : '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); - }) + '"' : '"' + string + '"'; - } - - - function str(key, holder) { - -// Produce a string from holder[key]. - - var i, // The loop counter. - k, // The member key. - v, // The member value. - length, - mind = gap, - partial, - value = holder[key]; - -// If the value has a toJSON method, call it to obtain a replacement value. - - if (value && typeof value === 'object' && - typeof value.toJSON === 'function') { - value = value.toJSON(key); - } - -// If we were called with a replacer function, then call the replacer to -// obtain a replacement value. - - if (typeof rep === 'function') { - value = rep.call(holder, key, value); - } - -// What happens next depends on the value's type. - - switch (typeof value) { - case 'string': - return quote(value); - - case 'number': - -// JSON numbers must be finite. Encode non-finite numbers as null. - - return isFinite(value) ? String(value) : 'null'; - - case 'boolean': - case 'null': - -// If the value is a boolean or null, convert it to a string. Note: -// typeof null does not produce 'null'. The case is included here in -// the remote chance that this gets fixed someday. - - return String(value); - -// If the type is 'object', we might be dealing with an object or an array or -// null. - - case 'object': - -// Due to a specification blunder in ECMAScript, typeof null is 'object', -// so watch out for that case. - - if (!value) { - return 'null'; - } - -// Make an array to hold the partial results of stringifying this object value. - - gap += indent; - partial = []; - -// Is the value an array? - - if (Object.prototype.toString.apply(value) === '[object Array]') { - -// The value is an array. Stringify every element. Use null as a placeholder -// for non-JSON values. - - length = value.length; - for (i = 0; i < length; i += 1) { - partial[i] = str(i, value) || 'null'; - } - -// Join all of the elements together, separated with commas, and wrap them in -// brackets. - - v = partial.length === 0 - ? '[]' - : gap - ? '[\n' + gap + partial.join(',\n' + gap) + '\n' + mind + ']' - : '[' + partial.join(',') + ']'; - gap = mind; - return v; - } - -// If the replacer is an array, use it to select the members to be stringified. - - if (rep && typeof rep === 'object') { - length = rep.length; - for (i = 0; i < length; i += 1) { - if (typeof rep[i] === 'string') { - k = rep[i]; - v = str(k, value); - if (v) { - partial.push(quote(k) + (gap ? ': ' : ':') + v); - } - } - } - } else { - -// Otherwise, iterate through all of the keys in the object. - - for (k in value) { - if (Object.prototype.hasOwnProperty.call(value, k)) { - v = str(k, value); - if (v) { - partial.push(quote(k) + (gap ? ': ' : ':') + v); - } - } - } - } - -// Join all of the member texts together, separated with commas, -// and wrap them in braces. - - v = partial.length === 0 - ? '{}' - : gap - ? '{\n' + gap + partial.join(',\n' + gap) + '\n' + mind + '}' - : '{' + partial.join(',') + '}'; - gap = mind; - return v; - } - } - -// If the JSON object does not yet have a stringify method, give it one. - - if (typeof JSON.stringify !== 'function') { - JSON.stringify = function (value, replacer, space) { - -// The stringify method takes a value and an optional replacer, and an optional -// space parameter, and returns a JSON text. The replacer can be a function -// that can replace values, or an array of strings that will select the keys. -// A default replacer method can be provided. Use of the space parameter can -// produce text that is more easily readable. - - var i; - gap = ''; - indent = ''; - -// If the space parameter is a number, make an indent string containing that -// many spaces. - - if (typeof space === 'number') { - for (i = 0; i < space; i += 1) { - indent += ' '; - } - -// If the space parameter is a string, it will be used as the indent string. - - } else if (typeof space === 'string') { - indent = space; - } - -// If there is a replacer, it must be a function or an array. -// Otherwise, throw an error. - - rep = replacer; - if (replacer && typeof replacer !== 'function' && - (typeof replacer !== 'object' || - typeof replacer.length !== 'number')) { - throw new Error('JSON.stringify'); - } - -// Make a fake root object containing our value under the key of ''. -// Return the result of stringifying the value. - - return str('', {'': value}); - }; - } - - -// If the JSON object does not yet have a parse method, give it one. - - if (typeof JSON.parse !== 'function') { - JSON.parse = function (text, reviver) { - -// The parse method takes a text and an optional reviver function, and returns -// a JavaScript value if the text is a valid JSON text. - - var j; - - function walk(holder, key) { - -// The walk method is used to recursively walk the resulting structure so -// that modifications can be made. - - var k, v, value = holder[key]; - if (value && typeof value === 'object') { - for (k in value) { - if (Object.prototype.hasOwnProperty.call(value, k)) { - v = walk(value, k); - if (v !== undefined) { - value[k] = v; - } else { - delete value[k]; - } - } - } - } - return reviver.call(holder, key, value); - } - - -// Parsing happens in four stages. In the first stage, we replace certain -// Unicode characters with escape sequences. JavaScript handles many characters -// incorrectly, either silently deleting them, or treating them as line endings. - - text = String(text); - cx.lastIndex = 0; - if (cx.test(text)) { - text = text.replace(cx, function (a) { - return '\\u' + - ('0000' + a.charCodeAt(0).toString(16)).slice(-4); - }); - } - -// In the second stage, we run the text against regular expressions that look -// for non-JSON patterns. We are especially concerned with '()' and 'new' -// because they can cause invocation, and '=' because it can cause mutation. -// But just to be safe, we want to reject all unexpected forms. - -// We split the second stage into 4 regexp operations in order to work around -// crippling inefficiencies in IE's and Safari's regexp engines. First we -// replace the JSON backslash pairs with '@' (a non-JSON character). Second, we -// replace all simple value tokens with ']' characters. Third, we delete all -// open brackets that follow a colon or comma or that begin the text. Finally, -// we look to see that the remaining characters are only whitespace or ']' or -// ',' or ':' or '{' or '}'. If that is so, then the text is safe for eval. - - if (/^[\],:{}\s]*$/ - .test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@') - .replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']') - .replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) { - -// In the third stage we use the eval function to compile the text into a -// JavaScript structure. The '{' operator is subject to a syntactic ambiguity -// in JavaScript: it can begin a block or an object literal. We wrap the text -// in parens to eliminate the ambiguity. - - j = eval('(' + text + ')'); - -// In the optional fourth stage, we recursively walk the new structure, passing -// each name/value pair to a reviver function for possible transformation. - - return typeof reviver === 'function' - ? walk({'': j}, '') - : j; - } - -// If the text is not JSON parseable, then a SyntaxError is thrown. - - throw new SyntaxError('JSON.parse'); - }; - } -}()); diff --git a/openo-portal/portal-common/src/main/webapp/common/js/login.js b/openo-portal/portal-common/src/main/webapp/common/js/login.js deleted file mode 100644 index def0c456..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/js/login.js +++ /dev/null @@ -1,158 +0,0 @@ -/* - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -String.prototype.trim = function() { - return this.replace(/(^\s*)|(\s*$)/g, ""); -}; - -function loginSubmitHandler() { - var loginData = { - "userName": $("#openo_input_userName").val(), - "password": $("#openo_input_password").val() - } - - $.ajax({ - url : "/openoapi/auth/v1/tokens", - type : "POST", - contentType : 'application/json; charset=utf-8', - data : JSON.stringify(loginData) - }).done(function(data) { - var topURL = top.window.document.location.href; - if (topURL.indexOf("?service") != -1) { - top.window.document.location.href = decodeURIComponent(topURL.substring(topURL.indexOf("?service") + 9)); - } else { - top.window.document.location.href = "/openoui/common/default.html"; - } - store("loginUserName", $("#openo_input_userName").val()); - }).fail(function(data) { - var tipDivId = $("#loginConnError"); - if (data.status == 401) { - tipDivId = $("#nameOrpwdError"); - } - - tipDivId.addClass('alert-danger'); - if (tipDivId.attr("tipstatus") == "normal") { - tipDivId.show(); - } else if (tipDivId.attr("tipstatus") == "close") { - tipDivId.attr("tipstatus", "normal"); - } - }); - - saveUserInfo(); -}; - -var Login = function () { - var handleLogin = function() { - $('.login-form').validate({ - errorElement: 'span', //default input error message container - errorClass: 'help-block', // default input error message class - focusInvalid: false, // do not focus the last invalid input - rules: { - username: { - required: true - }, - password: { - required: false - }, - remember: { - required: false - } - }, - messages: { - username: { - required: $.i18n.prop('openo_input_userName').replace(/\"/g,'') - }, - password: { - required: $.i18n.prop('openo_input_password').replace(/\"/g,'') - } - }, - invalidHandler: function (event, validator) { - $('.alert-danger', $('.login-form')).show(); - }, - highlight: function (element) { - $(element).closest('.form-group').addClass('has-error'); // set error class to the control group - }, - success: function (label) { - label.closest('.form-group').removeClass('has-error'); - label.remove(); - }, - errorPlacement: function (error, element) { - error.insertAfter(element.closest('.input-icon')); - }, - submitHandler: loginSubmitHandler - }); - - $('.login-form input').keypress(function (e) { - $("#nameOrpwdError").hide(); - $("#loginConnError").hide(); - if (e.which == 13) { - if ($('.login-form').validate().form()) { - $('.login-form').submit(); - } - return false; - } - }); - } - - return { - //main function to initiate the module - init: function () { - handleLogin(); - $.backstretch([ - "image/integration/openo_bg_1.jpg", - "image/integration//openo_bg_2.jpg", - "image/integration//openo_bg_3.jpg" - ], { - fade: 500, - duration: 15000 - }); - } - }; -}(); - -$(document).ready(function() { - if (store("remember") == "true") { - $("input[name='remember']").attr("checked", "checked"); - $("#openo_input_userName").val(store("openo_input_userName")); - $("#openo_input_password").val(store("openo_input_password")); - } -}); - -function saveUserInfo() { - var rmbcheck = $("input[name='remember']"); - if (rmbcheck.attr("checked") == true || rmbcheck.is(':checked')) { - store("remember", "true"); - store("openo_input_userName", $("#openo_input_userName").val()); - store("openo_input_password", $("#openo_input_password").val()); - } else { - store.remove("remember"); - store.remove("openo_input_userName"); - store.remove("openo_input_password"); - } -} - -function logoutSubmit() { - $.ajax({ - url: "/openoapi/auth/v1/tokens" + "?=" + new Date().getTime(), - type: "DELETE", - contentType: "application/json", - dataType: "text", - success: function() { - top.window.location = "/openoui/common/login.html"; - }, - error: function() { - } - }) -} diff --git a/openo-portal/portal-common/src/main/webapp/common/js/mainpage/about.js b/openo-portal/portal-common/src/main/webapp/common/js/mainpage/about.js deleted file mode 100644 index 2202f6af..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/js/mainpage/about.js +++ /dev/null @@ -1,142 +0,0 @@ -/* - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -var iniAboutInfo = function() { - - //转换colomn - - var divId = "ict_about_table_div"; - var tableId = "abouttable"; - var column = [ - {"mData": "name", name: $.i18n.prop('com_zte_ums_ict_about_ppu_field_name'), "sWidth": '20%'}, - {"mData": "version", name: $.i18n.prop('com_zte_ums_ict_about_ppu_field_version'), "sWidth": '25%'}, - {"mData": "describe", name: $.i18n.prop('com_zte_ums_ict_about_ppu_field_desc'), "sWidth": '25%'}, - {"mData": "time", name: $.i18n.prop('com_zte_ums_ict_about_ppu_field_time'), "sWidth": '30%'} - ]; - //先把原来的表格清空 - $('#' + divId).children().remove(); - var tableEleStr = '' - + '' - + '' - + '' - + '' - + '' - + '' - + '
    '; - $('#' + divId).append(tableEleStr); - var trEle = $('#' + tableId + ' > thead >tr'); - - for (var one in column) { - var th = '' + column[one].name + ''; - trEle.append(th); - } - var table = $("#" + tableId).dataTable({ - "bFilter": false,// 搜索栏 - "bPaginate":false, - "bInfo":false, - "bSort":false, - 'bAutoWidth':true - }); - $.ajax({ - type: "GET", - cache: false, - url: FrameConst.REST_GET_VERSIONINFO, - dataType: "json", - success: function (data) { - console.log(data); - //主版本号 - $(".ict_main_version").append('' + data.mainversion + ''); - //表格数据填充 - for( var i = 0 ; i < data.ppuinfo.length ; i++ ) { - var eachPPU = data.ppuinfo[i]; - $('#'+ tableId).dataTable().fnAddData([eachPPU.name ,eachPPU.version ,eachPPU.describe , eachPPU.time ]); - } - }, - error: function (xhr, ajaxOptions, thrownError) { - - } - }); -}; - -function internationalization(){ - var lang = getLanguage(); - //加载国际化 - jQuery.i18n.properties({ - language:lang, - name:'web-framework-mainPage-i18n', - path:'i18n/', // 资源文件路径 - mode:'map', // 用 Map 的方式使用资源文件中的值 - callback: function() {// 加载成功后设置显示内容 - var i18nItems = $('[name_i18n=com_zte_ums_ict_framework_ui_i18n]' , '.aboutDlg'); - for(var i=0;i0){ - getAboutDlg(url); - } -}; - -var ict_about_dlg_close = function(){ - link_click('about'); - console.log("about click close"); - $('#aboutDlg').modal('hide'); -}; -var link_click = function( pageName ){ - console.log("about click change"); - if(pageName === 'info'){ - $('.aboutmain').attr("style" , "display:none"); - $('.aboutinfo').attr("style" , "display:block"); - }else{ - $('.aboutmain').attr("style" , "display:block"); - $('.aboutinfo').attr("style" , "display:none"); - } -}; diff --git a/openo-portal/portal-common/src/main/webapp/common/js/mainpage/load_mainPage.js b/openo-portal/portal-common/src/main/webapp/common/js/mainpage/load_mainPage.js deleted file mode 100644 index 61dad58e..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/js/mainpage/load_mainPage.js +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -var initMainPage = function() { - var modules; - var propertiesFilePath = "i18n/"; - var propertiesFileName = "web-framework-mainPage-i18n"; - var i18nName = "openo_main_page_i18n"; - - $.ajax({ - async : false, - "type" : "GET", - url : "json/main_page.json", - dataType : "json", - "success" : function (res, textStatus, jqXHR) { - modules = res.modules; - }, - error : function () { - } - }); - - var template = ""; - - var templatePic = "
    " + - "
    " + - "
    {cover}
    " + - "
    " + - "
    {contentTip}
    " + - "
    " + - "
    "; - - for (var i = 0; i < modules.length; ++i) { - var temp = ""; - if (modules[i].linkId) { - temp = template.replace("{linkId}", modules[i].linkId) - .replace("{image}", modules[i].background) - .replace("{toolsImage}", modules[i].toolsImage) - .replace("{url}", modules[i].url) - .replace("{contentTip}", modules[i].contentTip); - } else { - temp = templatePic.replace("{image}", modules[i].background) - .replace("{url}", modules[i].url) - .replace("{contentTip}", ""); - } - - if (modules[i].cover) { - temp = temp.replace("{cover}", ""); - } else { - temp = temp.replace("{cover}",""); - } - - $($(".column")[i % 4]).append(temp); - } - - $(function() { - $(".brick").mouseover(function() { - $(".contentTip", this).fadeTo(1000, 1); - $(".cover", this).fadeOut(1000); - }); - - $(".brick").mouseout(function() { - $(".contentTip", this).fadeTo(1000, 0); - $(".cover", this).fadeIn(1000); - }); - - $("a.entranceLink").click(function(e) { - e.preventDefault(); - if ($(this).attr("id") && $(this).attr("id") != "undefined") { - location.href = "default.html" + "#_" + $(this).attr("id"); - } - }); - - loadi18n_WebFramework(propertiesFileName, propertiesFilePath, i18nName); - }); -} \ No newline at end of file diff --git a/openo-portal/portal-common/src/main/webapp/common/js/moreOperation.js b/openo-portal/portal-common/src/main/webapp/common/js/moreOperation.js deleted file mode 100644 index 1f9121e1..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/js/moreOperation.js +++ /dev/null @@ -1,166 +0,0 @@ -/* - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -var resetSelectedItem=function(menuAlink){ - if(menuAlink.children('div.boxOperation').length>0){ - $(".box.boxOperation", $(".carousel-inner")).removeClass("moreButtonSelected"); - menuAlink.children('div.boxOperation').addClass('moreButtonSelected'); - }else if(menuAlink.parents('div.boxOperation').length>0){ - $(".box.boxOperation", $(".carousel-inner")).removeClass("moreButtonSelected"); - menuAlink.parents('div.boxOperation').addClass('moreButtonSelected'); - } -} -var reSelected=function(){ - if(openoFrameWork){ - var menuID = openoFrameWork.getLocationHash(); - var menuAlink = $('#'+ menuID,$('#pageableDiv')); - if(menuAlink.length>0){ - resetSelectedItem(menuAlink); - }else{ - menuAlink = $('#'+ menuID,$('.hor-menu')); - if(!!menuAlink.attr("defaultchildmenuid")&&menuAlink.attr("defaultchildmenuid").length>0){ - menuAlink = $('#'+ menuAlink.attr("defaultchildmenuid"),$('#pageableDiv')); - if(menuAlink.length>0){ - resetSelectedItem(menuAlink); - } - } - } - } -} -var inter=null; - -var clearMoreOperations=function(){ - $('#pageableDiv').removeClass("moreOpen"); - $('#pageableDiv').addClass("moreClose"); - $('.col-xs-12',$('#pageableDiv')).removeClass("moreOpen"); - $('.col-xs-12',$('#pageableDiv')).addClass("moreClose"); - $(".carousel-inner").children().remove(); - if (inter) { - clearInterval(inter); - }; -} - -var moreOperations = function(html){ - $('#pageableDiv').removeClass("moreClose"); - $('#pageableDiv').addClass("moreOpen"); - $('.col-xs-12',$('#pageableDiv')).removeClass("moreClose"); - $('.col-xs-12',$('#pageableDiv')).addClass("moreOpen"); - showArrow(); - $(".carousel-inner").children().remove(); - inter=setInterval(reSelected, 200); - var moreViewData=[]; - var div = document.createElement('div'); - //div.innerHTML = html; - $(div).append(html); - var liTages =$("ul:first",div).children(); //div.getElementsByTagName('li') - for(var i=0;i"; - }else{ - var aLinkTag = $("a", liTages[i]); - aLink.id = aLinkTag.attr("id"); - var aLinkContent = aLinkTag.html(); - aLinkTag.empty().html('
    '); - $(".box", aLinkTag).html(aLinkContent); - aLink.html = aLinkTag.prop("outerHTML"); - } - moreViewData.push(aLink); - } - } - - var transformQueryViewData = function(queryViewData, pageSize){ - var newData = []; - var pageNo = Math.floor(queryViewData.length / pageSize) + 1; - if(queryViewData.length % pageSize == 0){ - pageNo--; - } - for(var i=0;i' + - '
    ' + - "
    " + - ""; - $(".carousel-inner").append(itemHtml); - } - for(var i=0;i'; - $(".col-xs-12", $("#page_" + i + ".item")).append(buttonHtml); - } - } - } - - //moreOperationItems = transformQueryViewData(moreViewData, 14); - - var moreOperationPageSize = 14; - var windowWidth = $(window).width(); - if(windowWidth >= 1367 && windowWidth < 1441){ - moreOperationPageSize = 12; - }else if(windowWidth >= 1281 && windowWidth < 1367){ - moreOperationPageSize = 11; - }else if(windowWidth >= 1025 && windowWidth < 1281){ - moreOperationPageSize = 10; - }else if(windowWidth >= 920 && windowWidth < 1281){ - moreOperationPageSize = 9; - }else if(windowWidth >= 820 && windowWidth < 920){ - moreOperationPageSize = 8; - }else if(windowWidth >= 680 && windowWidth < 820){ - moreOperationPageSize = 7; - }else if(windowWidth >= 540 && windowWidth < 680){ - moreOperationPageSize = 4; - }else if(windowWidth >= 390 && windowWidth < 540){ - moreOperationPageSize = 3; - }else if(windowWidth < 390){ - moreOperationPageSize = 2; - } - - moreOperationItems = transformQueryViewData(moreViewData, moreOperationPageSize); - generateOperationItems(); - - $(".box.boxOperation").click(function(){ - $(".box.boxOperation", $(".carousel-inner")).removeClass("moreButtonSelected"); - $(this).addClass("moreButtonSelected"); - }); - - $($(".item", $(".carousel-inner"))[0]).addClass("active"); - - if($(".item.moreButtonsTag").length < 2){ - hideArrow(); - } -} - -var showArrow = function(){ - $(".carousel-control").show(); - $(".boxOperation").removeClass("boxOperationOnePage"); -} - -var hideArrow = function(){ - $(".carousel-control").hide(); - $(".boxOperation").addClass("boxOperationOnePage"); -} diff --git a/openo-portal/portal-common/src/main/webapp/common/js/openotopo/openotopo.js b/openo-portal/portal-common/src/main/webapp/common/js/openotopo/openotopo.js deleted file mode 100644 index a6735e72..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/js/openotopo/openotopo.js +++ /dev/null @@ -1,314 +0,0 @@ -/* - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -function oTopo() { - - var topo; - - /** - * - * @param id: The id of DIV which display topological graph. - * @param settings: Init parameters . - * @see [] - */ - this.canvas = function (id, settings) - { - var g = - { - nodes : [],// nodes - edges : [] // links - }; - - topo = new sigma( - { - graph : g, - renderer : - { - // IMPORTANT: - // This works only with the canvas renderer, so the - // renderer type set as "canvas" is necessary here. - container : document.getElementById(id), - type : 'canvas' - }, - settings : settings - }); - - CustomShapes.init(topo); - }; - - - /** - * - * @see [] - */ - this.refresh = function() - { - topo.refresh(); - }; - - - /** - * - * @param id: The id of node. - * @see [] - */ - this.Node = function(id) - { - var pr = this; - this.id = id, - this.label = "", - this.type = "square",/**equilateral,star,square,diamond,circle,cross**/ - this.x = 1, - this.y = 1, - this.size = 10, - this.image = {}; - this.color = "transparent", - this.borderColor = "#1E90FF", - - this.setName = function(v) - { - pr.label = v; - }; - - this.setType = function(v) - { - pr.type = v; - }; - - this.setSize = function(v) - { - pr.size = v; - }; - - this.setImg = function(url) - { - pr.image = - { - url : url, - // scale/clip are ratio values applied on top of 'size' - scale : 1, - clip : 0, - }; - pr.borderColor = "transparent"; - pr.color = "transparent"; - }; - - this.setImgScale = function(s) - { - pr.image.scale = s; - }; - - this.setImgClip = function(c) - { - pr.image.clip = c; - }; - - this.setColor = function(v) - { - pr.color = v; - }; - - this.setBorderColor = function(v) - { - pr.borderColor = v; - }; - - this.setLocation = function(x,y) - { - pr.x = x; - pr.y = y; - }; - - this.setProperty = function(k,v) - { - pr[k] = v; - }; - }; - - /** - * - * @param id: The id of link. - * @see [] - */ - this.Link = function(id) - { - var pr = this; - this.id = id, - this.type = "arrow",/*'line','curve','arrow','curvedArrow','dashed','dotted','parallel','tapered'*/ - this.source = 1, - this.target = 1, - this.size = Math.random(), - this.color = "#1E90FF", - - this.setType = function(v) - { - pr.type = v; - }; - - this.setSize = function(v) - { - pr.size = v; - }; - - this.setConnect = function(s,t) - { - pr.source = s; - pr.target = t; - }; - - this.setColor = function(v) - { - pr.color = v; - }; - - this.setProperty = function(k,v) - { - pr[k] = v; - }; - }; - - /** - * - * @param v: Node object. - * @see [] - */ - this.addNode = function(v) - { - topo.graph.addNode(v); - }; - - /** - * - * @param id: The id of node. - * @see [] - */ - this.dropNode = function(id) - { - topo.graph.dropNode(id); - }; - - - /** - * - * @param v: Link object. - * @see [] - */ - this.addLink = function(v) - { - topo.graph.addEdge(v); - }; - - /** - * - * @param id: The id of link. - * @see [] - */ - this.dropLink = function(id) - { - topo.graph.dropEdge(id); - }; - - /** - * - * @see [] - */ - this.allNodes = function() - { - return topo.graph.nodes(); - }; - - /** - * Define drag and drop object. - */ - var dragListener = null; - - /** - * - * @param b: The node can be dragged and dropped when the parameter is TRUE.Set after canvas init. - * @see [] - */ - this.setDrag = function(b) - { - if (b) - { - dragListener = sigma.plugins.dragNodes(topo, topo.renderers[0]); - } - }; - - /** - * - * @param method: The binding method include:startdrag,drag,drop,dragend. - * @param e: Callback method. - * @see [] - */ - var dragBind = function(method,e) - { - if (null != dragListener) - { - dragListener.bind(method, function(event){ - e(event); - }); - } - }; - - - /** - * - * @param method: The binding method include:rightClick,clickStage,doubleClickStage,rightClickStage,clickNode,clickNodes,clickEdge, - * clickEdges,doubleClickNode,doubleClickNodes,doubleClickEdge,doubleClickEdges,rightClickNode, - * rightClickNodes,rightClickEdge,rightClickEdges,overNode,overNodes,overEdge,overEdges,outNode, - * outNodes,outEdge,outEdges,downNode,downNodes,downEdge,downEdges,upNode,upNodes,upEdge,upEdges - * @param e Callback method. - * @see [] - */ - this.mouseBind = function(method,e) - { - if (null != topo) - { - topo.bind(method, function(event){ - e(event); - }); - } - }; - - - /** - * - * @param obj: The object to be disabled. - * @see [] - */ - this.noright = function(obj) { - if (obj) { - obj.oncontextmenu = function() { - return false; - } - obj.ondragstart = function() { - return false; - } - obj.onselectstart = function() { - return false; - } - obj.onselect = function() { - obj.selection.empty(); - } - obj.oncopy = function() { - obj.selection.empty(); - } - obj.onbeforecopy = function() { - return false; - } - } - } -} diff --git a/openo-portal/portal-common/src/main/webapp/common/js/openotopo/openotopo.min.js b/openo-portal/portal-common/src/main/webapp/common/js/openotopo/openotopo.min.js deleted file mode 100644 index 3ad313a1..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/js/openotopo/openotopo.min.js +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -(function(a){"use strict";var b={},c=function(a){var d,e,f,g,h;c.classes.dispatcher.extend(this);var i=this,j=a||{};if("string"==typeof j||j instanceof HTMLElement?j={renderers:[j]}:"[object Array]"===Object.prototype.toString.call(j)&&(j={renderers:j}),g=j.renderers||j.renderer||j.container,j.renderers&&0!==j.renderers.length||("string"==typeof g||g instanceof HTMLElement||"object"==typeof g&&"container"in g)&&(j.renderers=[g]),j.id){if(b[j.id])throw'sigma: Instance "'+j.id+'" already exists.';Object.defineProperty(this,"id",{value:j.id})}else{for(h=0;b[h];)h++;Object.defineProperty(this,"id",{value:""+h})}for(b[this.id]=this,this.settings=new c.classes.configurable(c.settings,j.settings||{}),Object.defineProperty(this,"graph",{value:new c.classes.graph(this.settings),configurable:!0}),Object.defineProperty(this,"middlewares",{value:[],configurable:!0}),Object.defineProperty(this,"cameras",{value:{},configurable:!0}),Object.defineProperty(this,"renderers",{value:{},configurable:!0}),Object.defineProperty(this,"renderersPerCamera",{value:{},configurable:!0}),Object.defineProperty(this,"cameraFrames",{value:{},configurable:!0}),Object.defineProperty(this,"camera",{get:function(){return this.cameras[0]}}),Object.defineProperty(this,"events",{value:["click","rightClick","clickStage","doubleClickStage","rightClickStage","clickNode","clickNodes","doubleClickNode","doubleClickNodes","rightClickNode","rightClickNodes","overNode","overNodes","outNode","outNodes","downNode","downNodes","upNode","upNodes"],configurable:!0}),this._handler=function(a){var b,c={};for(b in a.data)c[b]=a.data[b];c.renderer=a.target,this.dispatchEvent(a.type,c)}.bind(this),f=j.renderers||[],d=0,e=f.length;e>d;d++)this.addRenderer(f[d]);for(f=j.middlewares||[],d=0,e=f.length;e>d;d++)this.middlewares.push("string"==typeof f[d]?c.middlewares[f[d]]:f[d]);"object"==typeof j.graph&&j.graph&&(this.graph.read(j.graph),this.refresh()),window.addEventListener("resize",function(){i.settings&&i.refresh()})};if(c.prototype.addCamera=function(b){var d,e=this;if(!arguments.length){for(b=0;this.cameras[""+b];)b++;b=""+b}if(this.cameras[b])throw'sigma.addCamera: The camera "'+b+'" already exists.';return d=new c.classes.camera(b,this.graph,this.settings),this.cameras[b]=d,d.quadtree=new c.classes.quad,c.classes.edgequad!==a&&(d.edgequadtree=new c.classes.edgequad),d.bind("coordinatesUpdated",function(a){e.renderCamera(d,d.isAnimated)}),this.renderersPerCamera[b]=[],d},c.prototype.killCamera=function(a){if(a="string"==typeof a?this.cameras[a]:a,!a)throw"sigma.killCamera: The camera is undefined.";var b,c,d=this.renderersPerCamera[a.id];for(c=d.length,b=c-1;b>=0;b--)this.killRenderer(d[b]);return delete this.renderersPerCamera[a.id],delete this.cameraFrames[a.id],delete this.cameras[a.id],a.kill&&a.kill(),this},c.prototype.addRenderer=function(a){var b,d,e,f,g=a||{};if("string"==typeof g?g={container:document.getElementById(g)}:g instanceof HTMLElement&&(g={container:g}),"string"==typeof g.container&&(g.container=document.getElementById(g.container)),"id"in g)b=g.id;else{for(b=0;this.renderers[""+b];)b++;b=""+b}if(this.renderers[b])throw'sigma.addRenderer: The renderer "'+b+'" already exists.';if(d="function"==typeof g.type?g.type:c.renderers[g.type],d=d||c.renderers.def,e="camera"in g?g.camera instanceof c.classes.camera?g.camera:this.cameras[g.camera]||this.addCamera(g.camera):this.addCamera(),this.cameras[e.id]!==e)throw"sigma.addRenderer: The camera is not properly referenced.";return f=new d(this.graph,e,this.settings,g),this.renderers[b]=f,Object.defineProperty(f,"id",{value:b}),f.bind&&f.bind(["click","rightClick","clickStage","doubleClickStage","rightClickStage","clickNode","clickNodes","clickEdge","clickEdges","doubleClickNode","doubleClickNodes","doubleClickEdge","doubleClickEdges","rightClickNode","rightClickNodes","rightClickEdge","rightClickEdges","overNode","overNodes","overEdge","overEdges","outNode","outNodes","outEdge","outEdges","downNode","downNodes","downEdge","downEdges","upNode","upNodes","upEdge","upEdges"],this._handler),this.renderersPerCamera[e.id].push(f),f},c.prototype.killRenderer=function(a){if(a="string"==typeof a?this.renderers[a]:a,!a)throw"sigma.killRenderer: The renderer is undefined.";var b=this.renderersPerCamera[a.camera.id],c=b.indexOf(a);return c>=0&&b.splice(c,1),a.kill&&a.kill(),delete this.renderers[a.id],this},c.prototype.refresh=function(b){var d,e,f,g,h,i,j=0;for(b=b||{},g=this.middlewares||[],d=0,e=g.length;e>d;d++)g[d].call(this,0===d?"":"tmp"+j+":",d===e-1?"ready:":"tmp"+ ++j+":");for(f in this.cameras)h=this.cameras[f],h.settings("autoRescale")&&this.renderersPerCamera[h.id]&&this.renderersPerCamera[h.id].length?c.middlewares.rescale.call(this,g.length?"ready:":"",h.readPrefix,{width:this.renderersPerCamera[h.id][0].width,height:this.renderersPerCamera[h.id][0].height}):c.middlewares.copy.call(this,g.length?"ready:":"",h.readPrefix),b.skipIndexation||(i=c.utils.getBoundaries(this.graph,h.readPrefix),h.quadtree.index(this.graph.nodes(),{prefix:h.readPrefix,bounds:{x:i.minX,y:i.minY,width:i.maxX-i.minX,height:i.maxY-i.minY}}),h.edgequadtree!==a&&h.settings("drawEdges")&&h.settings("enableEdgeHovering")&&h.edgequadtree.index(this.graph,{prefix:h.readPrefix,bounds:{x:i.minX,y:i.minY,width:i.maxX-i.minX,height:i.maxY-i.minY}}));for(g=Object.keys(this.renderers),d=0,e=g.length;e>d;d++)if(this.renderers[g[d]].process)if(this.settings("skipErrors"))try{this.renderers[g[d]].process()}catch(k){console.log('Warning: The renderer "'+g[d]+'" crashed on ".process()"')}else this.renderers[g[d]].process();return this.render(),this},c.prototype.render=function(){var a,b,c;for(c=Object.keys(this.renderers),a=0,b=c.length;b>a;a++)if(this.settings("skipErrors"))try{this.renderers[c[a]].render()}catch(d){this.settings("verbose")&&console.log('Warning: The renderer "'+c[a]+'" crashed on ".render()"')}else this.renderers[c[a]].render();return this},c.prototype.renderCamera=function(a,b){var c,d,e,f=this;if(b)for(e=this.renderersPerCamera[a.id],c=0,d=e.length;d>c;c++)if(this.settings("skipErrors"))try{e[c].render()}catch(g){this.settings("verbose")&&console.log('Warning: The renderer "'+e[c].id+'" crashed on ".render()"')}else e[c].render();else if(!this.cameraFrames[a.id]){for(e=this.renderersPerCamera[a.id],c=0,d=e.length;d>c;c++)if(this.settings("skipErrors"))try{e[c].render()}catch(g){this.settings("verbose")&&console.log('Warning: The renderer "'+e[c].id+'" crashed on ".render()"')}else e[c].render();this.cameraFrames[a.id]=requestAnimationFrame(function(){delete f.cameraFrames[a.id]})}return this},c.prototype.kill=function(){var a;this.dispatchEvent("kill"),this.graph.kill(),delete this.middlewares;for(a in this.renderers)this.killRenderer(this.renderers[a]);for(a in this.cameras)this.killCamera(this.cameras[a]);delete this.renderers,delete this.cameras;for(a in this)this.hasOwnProperty(a)&&delete this[a];delete b[this.id]},c.instances=function(a){return arguments.length?b[a]:c.utils.extend({},b)},c.version="1.0.3","undefined"!=typeof this.sigma)throw"An object called sigma is already in the global scope.";this.sigma=c}).call(this),function(a){"use strict";function b(a,c){var d,e,f,g;if(arguments.length)if(1===arguments.length&&Object(arguments[0])===arguments[0])for(a in arguments[0])b(a,arguments[0][a]);else if(arguments.length>1)for(g=Array.isArray(a)?a:a.split(/ /),d=0,e=g.length;d!==e;d+=1)f=g[d],C[f]||(C[f]=[]),C[f].push({handler:c})}function c(a,b){var c,d,e,f,g,h,i=Array.isArray(a)?a:a.split(/ /);if(arguments.length)if(b)for(c=0,d=i.length;c!==d;c+=1){if(h=i[c],C[h]){for(g=[],e=0,f=C[h].length;e!==f;e+=1)C[h][e].handler!==b&&g.push(C[h][e]);C[h]=g}C[h]&&0===C[h].length&&delete C[h]}else for(c=0,d=i.length;c!==d;c+=1)delete C[i[c]];else C=Object.create(null)}function d(a,b){var c,d,e,f,g,h,i=Array.isArray(a)?a:a.split(/ /);for(b=void 0===b?{}:b,c=0,e=i.length;c!==e;c+=1)if(h=i[c],C[h])for(g={type:h,data:b||{}},d=0,f=C[h].length;d!==f;d+=1)try{C[h][d].handler(g)}catch(j){}}function e(){var a,b,c,d,e=!1,f=s(),g=x.shift();if(c=g.job(),f=s()-f,g.done++,g.time+=f,g.currentTime+=f,g.weightTime=g.currentTime/(g.weight||1),g.averageTime=g.time/g.done,d=g.count?g.count<=g.done:!c,!d){for(a=0,b=x.length;b>a;a++)if(x[a].weightTime>g.weightTime){x.splice(a,0,g),e=!0;break}e||x.push(g)}return d?g:null}function f(a){var b=x.length;w[a.id]=a,a.status="running",b&&(a.weightTime=x[b-1].weightTime,a.currentTime=a.weightTime*(a.weight||1)),a.startTime=s(),d("jobStarted",q(a)),x.push(a)}function g(){var a,b,c;for(a in v)b=v[a],b.after?y[a]=b:f(b),delete v[a];for(u=!!x.length;x.length&&s()-tc;c++)h(a[c].id,p(a[c],b));A=!1,u||(t=s(),d("start"),g())}else if("object"==typeof a)if("string"==typeof a.id)h(a.id,a);else{A=!0;for(c in a)"function"==typeof a[c]?h(c,p({job:a[c]},b)):h(c,p(a[c],b));A=!1,u||(t=s(),d("start"),g())}else{if("string"!=typeof a)throw new Error("[conrad.addJob] Wrong arguments.");if(k(a))throw new Error('[conrad.addJob] Job with id "'+a+'" already exists.');if("function"==typeof b)f={id:a,done:0,time:0,status:"waiting",currentTime:0,averageTime:0,weightTime:0,job:b};else{if("object"!=typeof b)throw new Error("[conrad.addJob] Wrong arguments.");f=p({id:a,done:0,time:0,status:"waiting",currentTime:0,averageTime:0,weightTime:0},b)}v[a]=f,d("jobAdded",q(f)),u||A||(t=s(),d("start"),g())}return this}function i(a){var b,c,e,f,g=!1;if(Array.isArray(a))for(b=0,c=a.length;c>b;b++)i(a[b]);else{if("string"!=typeof a)throw new Error("[conrad.killJob] Wrong arguments.");for(e=[w,y,v],b=0,c=e.length;c>b;b++)a in e[b]&&(f=e[b][a],B.history&&(f.status="done",z.push(f)),d("jobEnded",q(f)),delete e[b][a],"function"==typeof f.end&&f.end(),g=!0);for(e=x,b=0,c=e.length;c>b;b++)if(e[b].id===a){e.splice(b,1);break}if(!g)throw new Error('[conrad.killJob] Job "'+a+'" not found.')}return this}function j(){var a,b=p(v,w,y);if(B.history)for(a in b)b[a].status="done",z.push(b[a]),"function"==typeof b[a].end&&b[a].end();return v={},y={},w={},x=[],u=!1,this}function k(a){var b=v[a]||w[a]||y[a];return b?p(b):null}function l(a,b){var c;if("string"==typeof a1&&1===arguments.length)return B[a1];c="object"==typeof a1&&1===arguments.length?a1||{}:{},"string"==typeof a1&&(c[a1]=a2);for(var d in c)void 0!==c[d]?B[d]=c[d]:delete B[d];return this}function m(){return u}function n(){return z=[],this}function o(a,b){var c,d,e,f,g,h,i;if(!arguments.length){g=[];for(d in v)g.push(v[d]);for(d in y)g.push(y[d]);for(d in w)g.push(w[d]);g=g.concat(z)}if("string"==typeof a)switch(a){case"waiting":g=r(y);break;case"running":g=r(w);break;case"done":g=z;break;default:h=a}if(a instanceof RegExp&&(h=a),!h&&("string"==typeof b||b instanceof RegExp)&&(h=b),h){if(i="string"==typeof h,g instanceof Array)c=g;else if("object"==typeof g){c=[];for(d in g)c=c.concat(g[d])}else{c=[];for(d in v)c.push(v[d]);for(d in y)c.push(y[d]);for(d in w)c.push(w[d]);c=c.concat(z)}for(g=[],e=0,f=c.length;f>e;e++)(i?c[e].id===h:c[e].id.match(h))&&g.push(c[e])}return q(g)}function p(){var a,b,c={},d=arguments.length;for(a=d-1;a>=0;a--)for(b in arguments[a])c[b]=arguments[a][b];return c}function q(a){var b,c,d;if(!a)return a;if(Array.isArray(a))for(b=[],c=0,d=a.length;d>c;c++)b.push(q(a[c]));else if("object"==typeof a){b={};for(c in a)b[c]=q(a[c])}else b=a;return b}function r(a){var b,c=[];for(b in a)c.push(a[b]);return c}function s(){return Date.now?Date.now():(new Date).getTime()}if(a.conrad)throw new Error("conrad already exists");var t,u=!1,v={},w={},x=[],y={},z=[],A=!1,B={frameDuration:20,history:!0},C=Object.create(null);Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});var D={hasJob:k,addJob:h,killJob:i,killAll:j,settings:l,getStats:o,isRunning:m,clearHistory:n,bind:b,unbind:c,version:"0.1.0"};"undefined"!=typeof exports&&("undefined"!=typeof module&&module.exports&&(exports=module.exports=D),exports.conrad=D),a.conrad=D}(this),function(a){"use strict";if("undefined"==typeof sigma)throw"sigma is not declared";var b=this;sigma.utils=sigma.utils||{},sigma.utils.extend=function(){var a,b,c={},d=arguments.length;for(a=d-1;a>=0;a--)for(b in arguments[a])c[b]=arguments[a][b];return c},sigma.utils.dateNow=function(){return Date.now?Date.now():(new Date).getTime()},sigma.utils.pkg=function(a){return(a||"").split(".").reduce(function(a,b){return b in a?a[b]:a[b]={}},b)},sigma.utils.id=function(){var a=0;return function(){return++a}}(),sigma.utils.floatColor=function(a){var b=[0,0,0];return a.match(/^#/)?(a=(a||"").replace(/^#/,""),b=3===a.length?[parseInt(a.charAt(0)+a.charAt(0),16),parseInt(a.charAt(1)+a.charAt(1),16),parseInt(a.charAt(2)+a.charAt(2),16)]:[parseInt(a.charAt(0)+a.charAt(1),16),parseInt(a.charAt(2)+a.charAt(3),16),parseInt(a.charAt(4)+a.charAt(5),16)]):a.match(/^ *rgba? *\(/)&&(a=a.match(/^ *rgba? *\( *([0-9]*) *, *([0-9]*) *, *([0-9]*) *(,.*)?\) *$/),b=[+a[1],+a[2],+a[3]]),256*b[0]*256+256*b[1]+b[2]},sigma.utils.zoomTo=function(a,b,c,d,e){var f,g,h,i=a.settings;g=Math.max(i("zoomMin"),Math.min(i("zoomMax"),a.ratio*d)),g!==a.ratio&&(d=g/a.ratio,h={x:b*(1-d)+a.x,y:c*(1-d)+a.y,ratio:g},e&&e.duration?(f=sigma.misc.animation.killAll(a),e=sigma.utils.extend(e,{easing:f?"quadraticOut":"quadraticInOut"}),sigma.misc.animation.camera(a,h,e)):(a.goTo(h),e&&e.onComplete&&e.onComplete()))},sigma.utils.getQuadraticControlPoint=function(a,b,c,d){return{x:(a+c)/2+(d-b)/4,y:(b+d)/2+(a-c)/4}},sigma.utils.getPointOnQuadraticCurve=function(a,b,c,d,e,f,g){return{x:Math.pow(1-a,2)*b+2*(1-a)*a*f+Math.pow(a,2)*d,y:Math.pow(1-a,2)*c+2*(1-a)*a*g+Math.pow(a,2)*e}},sigma.utils.getPointOnBezierCurve=function(a,b,c,d,e,f,g,h,i){var j=Math.pow(1-a,3),k=3*a*Math.pow(1-a,2),l=3*Math.pow(a,2)*(1-a),m=Math.pow(a,3);return{x:j*b+k*f+l*h+m*d,y:j*c+k*g+l*i+m*e}},sigma.utils.getSelfLoopControlPoints=function(a,b,c){return{x1:a-7*c,y1:b,x2:a,y2:b+7*c}},sigma.utils.getDistance=function(a,b,c,d){return Math.sqrt(Math.pow(c-a,2)+Math.pow(d-b,2))},sigma.utils.getCircleIntersection=function(a,b,c,d,e,f){var g,h,i,j,k,l,m,n,o;if(h=d-a,i=e-b,j=Math.sqrt(i*i+h*h),j>c+f)return!1;if(jj&&Math.min(c,e)<=a&&a<=Math.max(c,e)&&Math.min(d,f)<=b&&b<=Math.max(d,f)},sigma.utils.isPointOnQuadraticCurve=function(a,b,c,d,e,f,g,h,i){var j=sigma.utils.getDistance(c,d,e,f);if(Math.abs(a-c)>j||Math.abs(b-d)>j)return!1;for(var k,l=sigma.utils.getDistance(a,b,c,d),m=sigma.utils.getDistance(a,b,e,f),n=.5,o=m>l?-.01:.01,p=.001,q=100,r=sigma.utils.getPointOnQuadraticCurve(n,c,d,e,f,g,h),s=sigma.utils.getDistance(a,b,r.x,r.y);q-- >0&&n>=0&&1>=n&&s>i&&(o>p||-p>o);)k=s,r=sigma.utils.getPointOnQuadraticCurve(n,c,d,e,f,g,h),s=sigma.utils.getDistance(a,b,r.x,r.y),s>k?(o=-o/2,n+=o):0>n+o||n+o>1?(o/=2,s=k):n+=o;return i>s},sigma.utils.isPointOnBezierCurve=function(a,b,c,d,e,f,g,h,i,j,k){var l=sigma.utils.getDistance(c,d,g,h);if(Math.abs(a-c)>l||Math.abs(b-d)>l)return!1;for(var m,n=sigma.utils.getDistance(a,b,c,d),o=sigma.utils.getDistance(a,b,e,f),p=.5,q=o>n?-.01:.01,r=.001,s=100,t=sigma.utils.getPointOnBezierCurve(p,c,d,e,f,g,h,i,j),u=sigma.utils.getDistance(a,b,t.x,t.y);s-- >0&&p>=0&&1>=p&&u>k&&(q>r||-r>q);)m=u,t=sigma.utils.getPointOnBezierCurve(p,c,d,e,f,g,h,i,j),u=sigma.utils.getDistance(a,b,t.x,t.y),u>m?(q=-q/2,p+=q):0>p+q||p+q>1?(q/=2,u=m):p+=q;return k>u},sigma.utils.getX=function(b){return b.offsetX!==a&&b.offsetX||b.layerX!==a&&b.layerX||b.clientX!==a&&b.clientX},sigma.utils.getY=function(b){return b.offsetY!==a&&b.offsetY||b.layerY!==a&&b.layerY||b.clientY!==a&&b.clientY},sigma.utils.getWidth=function(b){var c=b.target.ownerSVGElement?b.target.ownerSVGElement.width:b.target.width;return"number"==typeof c&&c||c!==a&&c.baseVal!==a&&c.baseVal.value},sigma.utils.getHeight=function(b){var c=b.target.ownerSVGElement?b.target.ownerSVGElement.height:b.target.height;return"number"==typeof c&&c||c!==a&&c.baseVal!==a&&c.baseVal.value},sigma.utils.getDelta=function(b){return b.wheelDelta!==a&&b.wheelDelta||b.detail!==a&&-b.detail},sigma.utils.getOffset=function(a){for(var b=0,c=0;a;)c+=parseInt(a.offsetTop),b+=parseInt(a.offsetLeft),a=a.offsetParent;return{top:c,left:b}},sigma.utils.doubleClick=function(a,b,c){var d,e=0;a._doubleClickHandler=a._doubleClickHandler||{},a._doubleClickHandler[b]=a._doubleClickHandler[b]||[],d=a._doubleClickHandler[b],d.push(function(a){return e++,2===e?(e=0,c(a)):void(1===e&&setTimeout(function(){e=0},sigma.settings.doubleClickTimeout))}),a.addEventListener(b,d[d.length-1],!1)},sigma.utils.unbindDoubleClick=function(a,b){for(var c,d=(a._doubleClickHandler||{})[b]||[];c=d.pop();)a.removeEventListener(b,c);delete(a._doubleClickHandler||{})[b]},sigma.utils.easings=sigma.utils.easings||{},sigma.utils.easings.linearNone=function(a){return a},sigma.utils.easings.quadraticIn=function(a){return a*a},sigma.utils.easings.quadraticOut=function(a){return a*(2-a)},sigma.utils.easings.quadraticInOut=function(a){return(a*=2)<1?.5*a*a:-.5*(--a*(a-2)-1)},sigma.utils.easings.cubicIn=function(a){return a*a*a},sigma.utils.easings.cubicOut=function(a){return--a*a*a+1},sigma.utils.easings.cubicInOut=function(a){return(a*=2)<1?.5*a*a*a:.5*((a-=2)*a*a+2)},sigma.utils.loadShader=function(a,b,c,d){var e,f=a.createShader(c);return a.shaderSource(f,b),a.compileShader(f),e=a.getShaderParameter(f,a.COMPILE_STATUS),e?f:(d&&d('Error compiling shader "'+f+'":'+a.getShaderInfoLog(f)),a.deleteShader(f),null)},sigma.utils.loadProgram=function(a,b,c,d,e){var f,g,h=a.createProgram();for(f=0;fg;g++)d[i[g]]=c[i[g]];return this}if(void 0!==d[a])return d[a];for(g=0,h=e.length;h>g;g++)if(void 0!==e[g][a])return e[g][a]}};for(f.embedObjects=function(){var b=e.concat(d).concat(Array.prototype.splice.call(arguments,0));return a.apply({},b)},b=0,c=arguments.length;c>b;b++)f(arguments[b]);return f};"undefined"!=typeof this.sigma?(this.sigma.classes=this.sigma.classes||{},this.sigma.classes.configurable=a):"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=a),exports.configurable=a):this.configurable=a}.call(this),function(a){"use strict";function b(a,b,c){var d=function(){var d,e;for(d in h[a])h[a][d].apply(b,arguments);e=c.apply(b,arguments);for(d in g[a])g[a][d].apply(b,arguments);return e};return d}function c(a){var b;for(b in a)"hasOwnProperty"in a&&!a.hasOwnProperty(b)||delete a[b];return a}var d=Object.create(null),e=Object.create(null),f=Object.create(null),g=Object.create(null),h=Object.create(null),i={immutable:!0,clone:!0},j=function(a){return i[a]},k=function(a){var c,e,g;g={settings:a||j,nodesArray:[],edgesArray:[],nodesIndex:Object.create(null),edgesIndex:Object.create(null),inNeighborsIndex:Object.create(null),outNeighborsIndex:Object.create(null),allNeighborsIndex:Object.create(null),inNeighborsCount:Object.create(null),outNeighborsCount:Object.create(null),allNeighborsCount:Object.create(null)};for(c in f)f[c].call(g);for(c in d)e=b(c,g,d[c]),this[c]=e,g[c]=e};k.addMethod=function(a,b){if("string"!=typeof a||"function"!=typeof b||2!==arguments.length)throw"addMethod: Wrong arguments.";if(d[a]||k[a])throw'The method "'+a+'" already exists.';return d[a]=b,g[a]=Object.create(null),h[a]=Object.create(null),this},k.hasMethod=function(a){return!(!d[a]&&!k[a])},k.attach=function(a,b,c,d){if("string"!=typeof a||"string"!=typeof b||"function"!=typeof c||arguments.length<3||arguments.length>4)throw"attach: Wrong arguments.";var e;if("constructor"===a)e=f;else if(d){if(!h[a])throw'The method "'+a+'" does not exist.';e=h[a]}else{if(!g[a])throw'The method "'+a+'" does not exist.';e=g[a]}if(e[b])throw'A function "'+b+'" is already attached to the method "'+a+'".';return e[b]=c,this},k.attachBefore=function(a,b,c){return this.attach(a,b,c,!0)},k.addIndex=function(a,b){if("string"!=typeof a||Object(b)!==b||2!==arguments.length)throw"addIndex: Wrong arguments.";if(e[a])throw'The index "'+a+'" already exists.';var c;e[a]=b;for(c in b){if("function"!=typeof b[c])throw"The bindings must be functions.";k.attach(c,a,b[c])}return this},k.addMethod("addNode",function(a){if(Object(a)!==a||1!==arguments.length)throw"addNode: Wrong arguments.";if("string"!=typeof a.id&&"number"!=typeof a.id)throw"The node must have a string or number id.";if(this.nodesIndex[a.id])throw'The node "'+a.id+'" already exists.';var b,c=a.id,d=Object.create(null);if(this.settings("clone"))for(b in a)"id"!==b&&(d[b]=a[b]);else d=a;return this.settings("immutable")?Object.defineProperty(d,"id",{value:c,enumerable:!0}):d.id=c,this.inNeighborsIndex[c]=Object.create(null),this.outNeighborsIndex[c]=Object.create(null),this.allNeighborsIndex[c]=Object.create(null),this.inNeighborsCount[c]=0,this.outNeighborsCount[c]=0,this.allNeighborsCount[c]=0,this.nodesArray.push(d),this.nodesIndex[d.id]=d,this}),k.addMethod("addEdge",function(a){if(Object(a)!==a||1!==arguments.length)throw"addEdge: Wrong arguments.";if("string"!=typeof a.id&&"number"!=typeof a.id)throw"The edge must have a string or number id.";if("string"!=typeof a.source&&"number"!=typeof a.source||!this.nodesIndex[a.source])throw"The edge source must have an existing node id.";if("string"!=typeof a.target&&"number"!=typeof a.target||!this.nodesIndex[a.target])throw"The edge target must have an existing node id.";if(this.edgesIndex[a.id])throw'The edge "'+a.id+'" already exists.';var b,c=Object.create(null);if(this.settings("clone"))for(b in a)"id"!==b&&"source"!==b&&"target"!==b&&(c[b]=a[b]);else c=a;return this.settings("immutable")?(Object.defineProperty(c,"id",{value:a.id,enumerable:!0}),Object.defineProperty(c,"source",{value:a.source,enumerable:!0}),Object.defineProperty(c,"target",{value:a.target,enumerable:!0})):(c.id=a.id,c.source=a.source,c.target=a.target),this.edgesArray.push(c),this.edgesIndex[c.id]=c,this.inNeighborsIndex[c.target][c.source]||(this.inNeighborsIndex[c.target][c.source]=Object.create(null)),this.inNeighborsIndex[c.target][c.source][c.id]=c,this.outNeighborsIndex[c.source][c.target]||(this.outNeighborsIndex[c.source][c.target]=Object.create(null)),this.outNeighborsIndex[c.source][c.target][c.id]=c,this.allNeighborsIndex[c.source][c.target]||(this.allNeighborsIndex[c.source][c.target]=Object.create(null)),this.allNeighborsIndex[c.source][c.target][c.id]=c,c.target!==c.source&&(this.allNeighborsIndex[c.target][c.source]||(this.allNeighborsIndex[c.target][c.source]=Object.create(null)),this.allNeighborsIndex[c.target][c.source][c.id]=c),this.inNeighborsCount[c.target]++,this.outNeighborsCount[c.source]++,this.allNeighborsCount[c.target]++,this.allNeighborsCount[c.source]++,this}),k.addMethod("dropNode",function(a){if("string"!=typeof a&&"number"!=typeof a||1!==arguments.length)throw"dropNode: Wrong arguments.";if(!this.nodesIndex[a])throw'The node "'+a+'" does not exist.';var b,c,d;for(delete this.nodesIndex[a],b=0,d=this.nodesArray.length;d>b;b++)if(this.nodesArray[b].id===a){this.nodesArray.splice(b,1);break}for(b=this.edgesArray.length-1;b>=0;b--)(this.edgesArray[b].source===a||this.edgesArray[b].target===a)&&this.dropEdge(this.edgesArray[b].id);delete this.inNeighborsIndex[a],delete this.outNeighborsIndex[a],delete this.allNeighborsIndex[a],delete this.inNeighborsCount[a],delete this.outNeighborsCount[a],delete this.allNeighborsCount[a];for(c in this.nodesIndex)delete this.inNeighborsIndex[c][a],delete this.outNeighborsIndex[c][a],delete this.allNeighborsIndex[c][a];return this}),k.addMethod("dropEdge",function(a){if("string"!=typeof a&&"number"!=typeof a||1!==arguments.length)throw"dropEdge: Wrong arguments.";if(!this.edgesIndex[a])throw'The edge "'+a+'" does not exist.';var b,c,d;for(d=this.edgesIndex[a],delete this.edgesIndex[a],b=0,c=this.edgesArray.length;c>b;b++)if(this.edgesArray[b].id===a){this.edgesArray.splice(b,1);break}return delete this.inNeighborsIndex[d.target][d.source][d.id],Object.keys(this.inNeighborsIndex[d.target][d.source]).length||delete this.inNeighborsIndex[d.target][d.source],delete this.outNeighborsIndex[d.source][d.target][d.id],Object.keys(this.outNeighborsIndex[d.source][d.target]).length||delete this.outNeighborsIndex[d.source][d.target],delete this.allNeighborsIndex[d.source][d.target][d.id],Object.keys(this.allNeighborsIndex[d.source][d.target]).length||delete this.allNeighborsIndex[d.source][d.target],d.target!==d.source&&(delete this.allNeighborsIndex[d.target][d.source][d.id],Object.keys(this.allNeighborsIndex[d.target][d.source]).length||delete this.allNeighborsIndex[d.target][d.source]),this.inNeighborsCount[d.target]--,this.outNeighborsCount[d.source]--,this.allNeighborsCount[d.source]--,this.allNeighborsCount[d.target]--,this}),k.addMethod("kill",function(){this.nodesArray.length=0,this.edgesArray.length=0,delete this.nodesArray,delete this.edgesArray,delete this.nodesIndex,delete this.edgesIndex,delete this.inNeighborsIndex,delete this.outNeighborsIndex,delete this.allNeighborsIndex,delete this.inNeighborsCount,delete this.outNeighborsCount,delete this.allNeighborsCount}),k.addMethod("clear",function(){return this.nodesArray.length=0,this.edgesArray.length=0,c(this.nodesIndex),c(this.edgesIndex),c(this.nodesIndex),c(this.inNeighborsIndex),c(this.outNeighborsIndex),c(this.allNeighborsIndex),c(this.inNeighborsCount),c(this.outNeighborsCount),c(this.allNeighborsCount),this}),k.addMethod("read",function(a){var b,c,d;for(c=a.nodes||[],b=0,d=c.length;d>b;b++)this.addNode(c[b]);for(c=a.edges||[],b=0,d=c.length;d>b;b++)this.addEdge(c[b]);return this}),k.addMethod("nodes",function(a){if(!arguments.length)return this.nodesArray.slice(0);if(1===arguments.length&&("string"==typeof a||"number"==typeof a))return this.nodesIndex[a];if(1===arguments.length&&"[object Array]"===Object.prototype.toString.call(a)){ -var b,c,d=[];for(b=0,c=a.length;c>b;b++){if("string"!=typeof a[b]&&"number"!=typeof a[b])throw"nodes: Wrong arguments.";d.push(this.nodesIndex[a[b]])}return d}throw"nodes: Wrong arguments."}),k.addMethod("degree",function(a,b){if(b={"in":this.inNeighborsCount,out:this.outNeighborsCount}[b||""]||this.allNeighborsCount,"string"==typeof a||"number"==typeof a)return b[a];if("[object Array]"===Object.prototype.toString.call(a)){var c,d,e=[];for(c=0,d=a.length;d>c;c++){if("string"!=typeof a[c]&&"number"!=typeof a[c])throw"degree: Wrong arguments.";e.push(b[a[c]])}return e}throw"degree: Wrong arguments."}),k.addMethod("edges",function(a){if(!arguments.length)return this.edgesArray.slice(0);if(1===arguments.length&&("string"==typeof a||"number"==typeof a))return this.edgesIndex[a];if(1===arguments.length&&"[object Array]"===Object.prototype.toString.call(a)){var b,c,d=[];for(b=0,c=a.length;c>b;b++){if("string"!=typeof a[b]&&"number"!=typeof a[b])throw"edges: Wrong arguments.";d.push(this.edgesIndex[a[b]])}return d}throw"edges: Wrong arguments."}),"undefined"!=typeof sigma?(sigma.classes=sigma.classes||Object.create(null),sigma.classes.graph=k):"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=k),exports.graph=k):this.graph=k}.call(this),function(a){"use strict";if("undefined"==typeof sigma)throw"sigma is not declared";sigma.utils.pkg("sigma.classes"),sigma.classes.camera=function(a,b,c,d){sigma.classes.dispatcher.extend(this),Object.defineProperty(this,"graph",{value:b}),Object.defineProperty(this,"id",{value:a}),Object.defineProperty(this,"readPrefix",{value:"read_cam"+a+":"}),Object.defineProperty(this,"prefix",{value:"cam"+a+":"}),this.x=0,this.y=0,this.ratio=1,this.angle=0,this.isAnimated=!1,this.settings="object"==typeof d&&d?c.embedObject(d):c},sigma.classes.camera.prototype.goTo=function(b){if(!this.settings("enableCamera"))return this;var c,d,e=b||{},f=["x","y","ratio","angle"];for(c=0,d=f.length;d>c;c++)if(e[f[c]]!==a){if("number"!=typeof e[f[c]]||isNaN(e[f[c]]))throw'Value for "'+f[c]+'" is not a number.';this[f[c]]=e[f[c]]}return this.dispatchEvent("coordinatesUpdated"),this},sigma.classes.camera.prototype.applyView=function(b,c,d){d=d||{},c=c!==a?c:this.prefix,b=b!==a?b:this.readPrefix;var e,f,g,h=d.nodes||this.graph.nodes(),i=d.edges||this.graph.edges(),j=Math.cos(this.angle),k=Math.sin(this.angle),l=Math.pow(this.ratio,this.settings("nodesPowRatio")),m=Math.pow(this.ratio,this.settings("edgesPowRatio"));for(e=0,f=h.length;f>e;e++)g=h[e],g[c+"x"]=(((g[b+"x"]||0)-this.x)*j+((g[b+"y"]||0)-this.y)*k)/this.ratio+(d.width||0)/2,g[c+"y"]=(((g[b+"y"]||0)-this.y)*j-((g[b+"x"]||0)-this.x)*k)/this.ratio+(d.height||0)/2,g[c+"size"]=(g[b+"size"]||0)/l;for(e=0,f=i.length;f>e;e++)i[e][c+"size"]=(i[e][b+"size"]||0)/m;return this},sigma.classes.camera.prototype.graphPosition=function(a,b,c){var d=0,e=0,f=Math.cos(this.angle),g=Math.sin(this.angle);return c||(d=-(this.x*f+this.y*g)/this.ratio,e=-(this.y*f-this.x*g)/this.ratio),{x:(a*f+b*g)/this.ratio+d,y:(b*f-a*g)/this.ratio+e}},sigma.classes.camera.prototype.cameraPosition=function(a,b,c){var d=0,e=0,f=Math.cos(this.angle),g=Math.sin(this.angle);return c||(d=-(this.x*f+this.y*g)/this.ratio,e=-(this.y*f-this.x*g)/this.ratio),{x:((a-d)*f-(b-e)*g)*this.ratio,y:((b-e)*f+(a-d)*g)*this.ratio}},sigma.classes.camera.prototype.getMatrix=function(){var a=sigma.utils.matrices.scale(1/this.ratio),b=sigma.utils.matrices.rotation(this.angle),c=sigma.utils.matrices.translation(-this.x,-this.y),d=sigma.utils.matrices.multiply(c,sigma.utils.matrices.multiply(b,a));return d},sigma.classes.camera.prototype.getRectangle=function(a,b){var c=this.cameraPosition(a,0,!0),d=this.cameraPosition(0,b,!0),e=this.cameraPosition(a/2,b/2,!0),f=this.cameraPosition(a/4,0,!0).x,g=this.cameraPosition(0,b/4,!0).y;return{x1:this.x-e.x-f,y1:this.y-e.y-g,x2:this.x-e.x+f+c.x,y2:this.y-e.y-g+c.y,height:Math.sqrt(Math.pow(d.x,2)+Math.pow(d.y+2*g,2))}}}.call(this),function(a){"use strict";function b(a,b){var c=b.x+b.width/2,d=b.y+b.height/2,e=a.yd;d++)a.x2>=b[d][0].x&&a.x1<=b[d][1].x&&a.y1+a.height>=b[d][0].y&&a.y1<=b[d][2].y&&c.push(d);return c}function d(a,b){for(var c=[],d=0;4>d;d++)j.collision(a,b[d])&&c.push(d);return c}function e(a,b){var c,d,e=b.level+1,f=Math.round(b.bounds.width/2),g=Math.round(b.bounds.height/2),h=Math.round(b.bounds.x),j=Math.round(b.bounds.y);switch(a){case 0:c=h,d=j;break;case 1:c=h+f,d=j;break;case 2:c=h,d=j+g;break;case 3:c=h+f,d=j+g}return i({x:c,y:d,width:f,height:g},e,b.maxElements,b.maxLevel)}function f(b,d,g){if(g.leveli;i++)g.nodes[h[i]]===a&&(g.nodes[h[i]]=e(h[i],g)),f(b,d,g.nodes[h[i]]);else g.elements.push(b)}function g(c,d){if(d.levelg;g++)c.nodes[f[g]]!==a&&h(b,c.nodes[f[g]],d,e);else for(var j=0,k=c.elements.length;k>j;j++)e[c.elements[j].id]===a&&(e[c.elements[j].id]=c.elements[j]);return e}function i(a,b,c,d){return{level:b||0,bounds:a,corners:j.splitSquare(a),maxElements:c||20,maxLevel:d||4,elements:[],nodes:[]}}var j={pointToSquare:function(a){return{x1:a.x-a.size,y1:a.y-a.size,x2:a.x+a.size,y2:a.y-a.size,height:2*a.size}},isAxisAligned:function(a){return a.x1===a.x2||a.y1===a.y2},axisAlignedTopPoints:function(a){return a.y1===a.y2&&a.x1a.y1?{x1:a.x1-a.height,y1:a.y1,x2:a.x1,y2:a.y1,height:a.height}:a.x1===a.x2&&a.y2f;f++){var g=this.projection(b[f],a),h=this.projection(c[f],a);d.push(g.x*a.x+g.y*a.y),e.push(h.x*a.x+h.y*a.y)}var i=Math.max.apply(Math,d),j=Math.max.apply(Math,e),k=Math.min.apply(Math,d),l=Math.min.apply(Math,e);return i>=l&&j>=k},collision:function(a,b){for(var c=this.axis(a,b),d=!0,e=0;4>e;e++)d=d&&this.axisCollision(c[e],a,b);return d}},k=function(){this._geom=j,this._tree=null,this._cache={query:!1,result:!1}};k.prototype.index=function(a,b){if(!b.bounds)throw"sigma.classes.quad.index: bounds information not given.";var c=b.prefix||"";this._tree=i(b.bounds,0,b.maxElements,b.maxLevel);for(var d=0,e=a.length;e>d;d++)f(a[d],j.pointToSquare({x:a[d][c+"x"],y:a[d][c+"y"],size:a[d][c+"size"]}),this._tree);return this._cache={query:!1,result:!1},this._tree},k.prototype.point=function(a,b){return this._tree?g({x:a,y:b},this._tree)||[]:[]},k.prototype.area=function(a){var b,e,f=JSON.stringify(a);if(this._cache.query===f)return this._cache.result;j.isAxisAligned(a)?(b=c,e=j.axisAlignedTopPoints(a)):(b=d,e=j.rectangleCorners(a));var g=this._tree?h(e,this._tree,b):[],i=[];for(var k in g)i.push(g[k]);return this._cache.query=f,this._cache.result=i,i},"undefined"!=typeof this.sigma?(this.sigma.classes=this.sigma.classes||{},this.sigma.classes.quad=k):"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=k),exports.quad=k):this.quad=k}.call(this),function(a){"use strict";function b(a,b){var c=b.x+b.width/2,d=b.y+b.height/2,e=a.yd;d++)a.x2>=b[d][0].x&&a.x1<=b[d][1].x&&a.y1+a.height>=b[d][0].y&&a.y1<=b[d][2].y&&c.push(d);return c}function d(a,b){for(var c=[],d=0;4>d;d++)j.collision(a,b[d])&&c.push(d);return c}function e(a,b){var c,d,e=b.level+1,f=Math.round(b.bounds.width/2),g=Math.round(b.bounds.height/2),h=Math.round(b.bounds.x),j=Math.round(b.bounds.y);switch(a){case 0:c=h,d=j;break;case 1:c=h+f,d=j;break;case 2:c=h,d=j+g;break;case 3:c=h+f,d=j+g}return i({x:c,y:d,width:f,height:g},e,b.maxElements,b.maxLevel)}function f(b,d,g){if(g.leveli;i++)g.nodes[h[i]]===a&&(g.nodes[h[i]]=e(h[i],g)),f(b,d,g.nodes[h[i]]);else g.elements.push(b)}function g(c,d){if(d.levelg;g++)c.nodes[f[g]]!==a&&h(b,c.nodes[f[g]],d,e);else for(var j=0,k=c.elements.length;k>j;j++)e[c.elements[j].id]===a&&(e[c.elements[j].id]=c.elements[j]);return e}function i(a,b,c,d){return{level:b||0,bounds:a,corners:j.splitSquare(a),maxElements:c||40,maxLevel:d||8,elements:[],nodes:[]}}var j={pointToSquare:function(a){return{x1:a.x-a.size,y1:a.y-a.size,x2:a.x+a.size,y2:a.y-a.size,height:2*a.size}},lineToSquare:function(a){return a.y1a.y1?{x1:a.x1-a.height,y1:a.y1,x2:a.x1,y2:a.y1,height:a.height}:a.x1===a.x2&&a.y2f;f++){var g=this.projection(b[f],a),h=this.projection(c[f],a);d.push(g.x*a.x+g.y*a.y),e.push(h.x*a.x+h.y*a.y)}var i=Math.max.apply(Math,d),j=Math.max.apply(Math,e),k=Math.min.apply(Math,d),l=Math.min.apply(Math,e);return i>=l&&j>=k},collision:function(a,b){for(var c=this.axis(a,b),d=!0,e=0;4>e;e++)d=d&&this.axisCollision(c[e],a,b);return d}},k=function(){this._geom=j,this._tree=null,this._cache={query:!1,result:!1},this._enabled=!0};k.prototype.index=function(a,b){if(!this._enabled)return this._tree;if(!b.bounds)throw"sigma.classes.edgequad.index: bounds information not given.";var c,d,e,g,h,k=b.prefix||"";this._tree=i(b.bounds,0,b.maxElements,b.maxLevel);for(var l=a.edges(),m=0,n=l.length;n>m;m++)d=a.nodes(l[m].source),e=a.nodes(l[m].target),h={x1:d[k+"x"],y1:d[k+"y"],x2:e[k+"x"],y2:e[k+"y"],size:l[m][k+"size"]||0},"curve"===l[m].type||"curvedArrow"===l[m].type?d.id===e.id?(g={x:d[k+"x"],y:d[k+"y"],size:d[k+"size"]||0},f(l[m],j.selfLoopToSquare(g),this._tree)):(c=sigma.utils.getQuadraticControlPoint(h.x1,h.y1,h.x2,h.y2),f(l[m],j.quadraticCurveToSquare(h,c),this._tree)):f(l[m],j.lineToSquare(h),this._tree);return this._cache={query:!1,result:!1},this._tree},k.prototype.point=function(a,b){return this._enabled&&this._tree?g({x:a,y:b},this._tree)||[]:[]},k.prototype.area=function(a){if(!this._enabled)return[];var b,e,f=JSON.stringify(a);if(this._cache.query===f)return this._cache.result;j.isAxisAligned(a)?(b=c,e=j.axisAlignedTopPoints(a)):(b=d,e=j.rectangleCorners(a));var g=this._tree?h(e,this._tree,b):[],i=[];for(var k in g)i.push(g[k]);return this._cache.query=f,this._cache.result=i,i},"undefined"!=typeof this.sigma?(this.sigma.classes=this.sigma.classes||{},this.sigma.classes.edgequad=k):"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=k),exports.edgequad=k):this.edgequad=k}.call(this),function(a){"use strict";if("undefined"==typeof sigma)throw"sigma is not declared";sigma.utils.pkg("sigma.captors"),sigma.captors.mouse=function(a,b,c){function d(a){var b,c,d;return y("mouseEnabled")&&v.dispatchEvent("mousemove",{x:sigma.utils.getX(a)-sigma.utils.getWidth(a)/2,y:sigma.utils.getY(a)-sigma.utils.getHeight(a)/2,clientX:a.clientX,clientY:a.clientY,ctrlKey:a.ctrlKey,metaKey:a.metaKey,altKey:a.altKey,shiftKey:a.shiftKey}),y("mouseEnabled")&&q?(r=!0,s=!0,u&&clearTimeout(u),u=setTimeout(function(){r=!1},y("dragTimeout")),sigma.misc.animation.killAll(x),x.isMoving=!0,d=x.cameraPosition(sigma.utils.getX(a)-o,sigma.utils.getY(a)-p,!0),b=k-d.x,c=l-d.y,(b!==x.x||c!==x.y)&&(m=x.x,n=x.y,x.goTo({x:b,y:c})),a.preventDefault?a.preventDefault():a.returnValue=!1,a.stopPropagation(),!1):void 0}function e(a){if(y("mouseEnabled")&&q){q=!1,u&&clearTimeout(u),x.isMoving=!1;var b=sigma.utils.getX(a),c=sigma.utils.getY(a);r?(sigma.misc.animation.killAll(x),sigma.misc.animation.camera(x,{x:x.x+y("mouseInertiaRatio")*(x.x-m),y:x.y+y("mouseInertiaRatio")*(x.y-n)},{easing:"quadraticOut",duration:y("mouseInertiaDuration")})):(o!==b||p!==c)&&x.goTo({x:x.x,y:x.y}),v.dispatchEvent("mouseup",{x:b-sigma.utils.getWidth(a)/2,y:c-sigma.utils.getHeight(a)/2,clientX:a.clientX,clientY:a.clientY,ctrlKey:a.ctrlKey,metaKey:a.metaKey,altKey:a.altKey,shiftKey:a.shiftKey}),r=!1}}function f(a){if(y("mouseEnabled"))switch(k=x.x,l=x.y,m=x.x,n=x.y,o=sigma.utils.getX(a),p=sigma.utils.getY(a),s=!1,t=(new Date).getTime(),a.which){case 2:break;case 3:v.dispatchEvent("rightclick",{x:o-sigma.utils.getWidth(a)/2,y:p-sigma.utils.getHeight(a)/2,clientX:a.clientX,clientY:a.clientY,ctrlKey:a.ctrlKey,metaKey:a.metaKey,altKey:a.altKey,shiftKey:a.shiftKey});break;default:q=!0,v.dispatchEvent("mousedown",{x:o-sigma.utils.getWidth(a)/2,y:p-sigma.utils.getHeight(a)/2,clientX:a.clientX,clientY:a.clientY,ctrlKey:a.ctrlKey,metaKey:a.metaKey,altKey:a.altKey,shiftKey:a.shiftKey})}}function g(a){y("mouseEnabled")&&v.dispatchEvent("mouseout")}function h(a){return y("mouseEnabled")&&v.dispatchEvent("click",{x:sigma.utils.getX(a)-sigma.utils.getWidth(a)/2,y:sigma.utils.getY(a)-sigma.utils.getHeight(a)/2,clientX:a.clientX,clientY:a.clientY,ctrlKey:a.ctrlKey,metaKey:a.metaKey,altKey:a.altKey,shiftKey:a.shiftKey,isDragging:(new Date).getTime()-t>100&&s}),a.preventDefault?a.preventDefault():a.returnValue=!1,a.stopPropagation(),!1}function i(a){var b,c,d;return y("mouseEnabled")?(c=1/y("doubleClickZoomingRatio"),v.dispatchEvent("doubleclick",{x:o-sigma.utils.getWidth(a)/2,y:p-sigma.utils.getHeight(a)/2,clientX:a.clientX,clientY:a.clientY,ctrlKey:a.ctrlKey,metaKey:a.metaKey,altKey:a.altKey,shiftKey:a.shiftKey}),y("doubleClickEnabled")&&(b=x.cameraPosition(sigma.utils.getX(a)-sigma.utils.getWidth(a)/2,sigma.utils.getY(a)-sigma.utils.getHeight(a)/2,!0),d={duration:y("doubleClickZoomDuration")},sigma.utils.zoomTo(x,b.x,b.y,c,d)),a.preventDefault?a.preventDefault():a.returnValue=!1,a.stopPropagation(),!1):void 0}function j(a){var b,c,d;return y("mouseEnabled")&&y("mouseWheelEnabled")?(c=sigma.utils.getDelta(a)>0?1/y("zoomingRatio"):y("zoomingRatio"),b=x.cameraPosition(sigma.utils.getX(a)-sigma.utils.getWidth(a)/2,sigma.utils.getY(a)-sigma.utils.getHeight(a)/2,!0),d={duration:y("mouseZoomDuration")},sigma.utils.zoomTo(x,b.x,b.y,c,d),a.preventDefault?a.preventDefault():a.returnValue=!1,a.stopPropagation(),!1):void 0}var k,l,m,n,o,p,q,r,s,t,u,v=this,w=a,x=b,y=c;sigma.classes.dispatcher.extend(this),sigma.utils.doubleClick(w,"click",i),w.addEventListener("DOMMouseScroll",j,!1),w.addEventListener("mousewheel",j,!1),w.addEventListener("mousemove",d,!1),w.addEventListener("mousedown",f,!1),w.addEventListener("click",h,!1),w.addEventListener("mouseout",g,!1),document.addEventListener("mouseup",e,!1),this.kill=function(){sigma.utils.unbindDoubleClick(w,"click"),w.removeEventListener("DOMMouseScroll",j),w.removeEventListener("mousewheel",j),w.removeEventListener("mousemove",d),w.removeEventListener("mousedown",f),w.removeEventListener("click",h),w.removeEventListener("mouseout",g),document.removeEventListener("mouseup",e)}}}.call(this),function(a){"use strict";if("undefined"==typeof sigma)throw"sigma is not declared";sigma.utils.pkg("sigma.captors"),sigma.captors.touch=function(a,b,c){function d(a){var b=sigma.utils.getOffset(B);return{x:a.pageX-b.left,y:a.pageY-b.top}}function e(a){if(D("touchEnabled")){var b,c,e,f,g,h;switch(E=a.touches,E.length){case 1:C.isMoving=!0,w=1,i=C.x,j=C.y,m=C.x,n=C.y,g=d(E[0]),q=g.x,r=g.y;break;case 2:return C.isMoving=!0,w=2,g=d(E[0]),h=d(E[1]),b=g.x,e=g.y,c=h.x,f=h.y,m=C.x,n=C.y,k=C.angle,l=C.ratio,i=C.x,j=C.y,q=b,r=e,s=c,t=f,u=Math.atan2(t-r,s-q),v=Math.sqrt(Math.pow(t-r,2)+Math.pow(s-q,2)),a.preventDefault(),!1}}}function f(a){if(D("touchEnabled")){E=a.touches;var b=D("touchInertiaRatio");switch(z&&(x=!1,clearTimeout(z)),w){case 2:if(1===a.touches.length){e(a),a.preventDefault();break}case 1:C.isMoving=!1,A.dispatchEvent("stopDrag"),x&&(y=!1,sigma.misc.animation.camera(C,{x:C.x+b*(C.x-m),y:C.y+b*(C.y-n)},{easing:"quadraticOut",duration:D("touchInertiaDuration")})),x=!1,w=0}}}function g(a){if(!y&&D("touchEnabled")){var b,c,e,f,g,h,B,F,G,H,I,J,K,L,M,N,O;switch(E=a.touches,x=!0,z&&clearTimeout(z),z=setTimeout(function(){x=!1},D("dragTimeout")),w){case 1:F=d(E[0]),b=F.x,e=F.y,H=C.cameraPosition(b-q,e-r,!0),L=i-H.x,M=j-H.y,(L!==C.x||M!==C.y)&&(m=C.x,n=C.y,C.goTo({x:L,y:M}),A.dispatchEvent("mousemove",{x:F.x-sigma.utils.getWidth(a)/2,y:F.y-sigma.utils.getHeight(a)/2,clientX:a.clientX,clientY:a.clientY,ctrlKey:a.ctrlKey,metaKey:a.metaKey,altKey:a.altKey,shiftKey:a.shiftKey}),A.dispatchEvent("drag"));break;case 2:F=d(E[0]),G=d(E[1]),b=F.x,e=F.y,c=G.x,f=G.y,I=C.cameraPosition((q+s)/2-sigma.utils.getWidth(a)/2,(r+t)/2-sigma.utils.getHeight(a)/2,!0),B=C.cameraPosition((b+c)/2-sigma.utils.getWidth(a)/2,(e+f)/2-sigma.utils.getHeight(a)/2,!0),J=Math.atan2(f-e,c-b)-u,K=Math.sqrt(Math.pow(f-e,2)+Math.pow(c-b,2))/v,b=I.x,e=I.y,N=l/K,b*=K,e*=K,O=k-J,g=Math.cos(-J),h=Math.sin(-J),c=b*g+e*h,f=e*g-b*h,b=c,e=f,L=b-B.x+i,M=e-B.y+j,(N!==C.ratio||O!==C.angle||L!==C.x||M!==C.y)&&(m=C.x,n=C.y,o=C.angle,p=C.ratio,C.goTo({x:L,y:M,angle:O,ratio:N}),A.dispatchEvent("drag"))}return a.preventDefault(),!1}}function h(a){var b,c,e;return a.touches&&1===a.touches.length&&D("touchEnabled")?(y=!0,c=1/D("doubleClickZoomingRatio"),b=d(a.touches[0]),A.dispatchEvent("doubleclick",{x:b.x-sigma.utils.getWidth(a)/2,y:b.y-sigma.utils.getHeight(a)/2,clientX:a.clientX,clientY:a.clientY,ctrlKey:a.ctrlKey,metaKey:a.metaKey,altKey:a.altKey,shiftKey:a.shiftKey}),D("doubleClickEnabled")&&(b=C.cameraPosition(b.x-sigma.utils.getWidth(a)/2,b.y-sigma.utils.getHeight(a)/2,!0),e={duration:D("doubleClickZoomDuration"),onComplete:function(){y=!1}},sigma.utils.zoomTo(C,b.x,b.y,c,e)),a.preventDefault?a.preventDefault():a.returnValue=!1,a.stopPropagation(),!1):void 0}var i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A=this,B=a,C=b,D=c,E=[];sigma.classes.dispatcher.extend(this),sigma.utils.doubleClick(B,"touchstart",h),B.addEventListener("touchstart",e,!1),B.addEventListener("touchend",f,!1),B.addEventListener("touchcancel",f,!1),B.addEventListener("touchleave",f,!1),B.addEventListener("touchmove",g,!1),this.kill=function(){sigma.utils.unbindDoubleClick(B,"touchstart"),B.addEventListener("touchstart",e),B.addEventListener("touchend",f),B.addEventListener("touchcancel",f),B.addEventListener("touchleave",f),B.addEventListener("touchmove",g)}}}.call(this),function(a){"use strict";if("undefined"==typeof sigma)throw"sigma is not declared";if("undefined"==typeof conrad)throw"conrad is not declared";sigma.utils.pkg("sigma.renderers"),sigma.renderers.canvas=function(a,b,c,d){if("object"!=typeof d)throw"sigma.renderers.canvas: Wrong arguments.";if(!(d.container instanceof HTMLElement))throw"Container not found.";var e,f,g,h;for(sigma.classes.dispatcher.extend(this),Object.defineProperty(this,"conradId",{value:sigma.utils.id()}),this.graph=a,this.camera=b,this.contexts={},this.domElements={},this.options=d,this.container=this.options.container,this.settings="object"==typeof d.settings&&d.settings?c.embedObjects(d.settings):c,this.nodesOnScreen=[],this.edgesOnScreen=[],this.jobs={},this.options.prefix="renderer"+this.conradId+":",this.settings("batchEdgesDrawing")?(this.initDOM("canvas","edges"),this.initDOM("canvas","scene"),this.contexts.nodes=this.contexts.scene,this.contexts.labels=this.contexts.scene):(this.initDOM("canvas","scene"),this.contexts.edges=this.contexts.scene,this.contexts.nodes=this.contexts.scene,this.contexts.labels=this.contexts.scene),this.initDOM("canvas","mouse"),this.contexts.hover=this.contexts.mouse,this.captors=[],g=this.options.captors||[sigma.captors.mouse,sigma.captors.touch],e=0,f=g.length;f>e;e++)h="function"==typeof g[e]?g[e]:sigma.captors[g[e]],this.captors.push(new h(this.domElements.mouse,this.camera,this.settings));sigma.misc.bindEvents.call(this,this.options.prefix),sigma.misc.drawHovers.call(this,this.options.prefix),this.resize(!1)},sigma.renderers.canvas.prototype.render=function(b){b=b||{};var c,d,e,f,g,h,i,j,k,l,m,n,o,p={},q=this.graph,r=this.graph.nodes,s=(this.options.prefix||"",this.settings(b,"drawEdges")),t=this.settings(b,"drawNodes"),u=this.settings(b,"drawLabels"),v=this.settings(b,"drawEdgeLabels"),w=this.settings.embedObjects(b,{prefix:this.options.prefix});this.resize(!1),this.settings(b,"hideEdgesOnMove")&&(this.camera.isAnimated||this.camera.isMoving)&&(s=!1),this.camera.applyView(a,this.options.prefix,{width:this.width,height:this.height}),this.clear();for(e in this.jobs)conrad.hasJob(e)&&conrad.killJob(e);for(this.edgesOnScreen=[],this.nodesOnScreen=this.camera.quadtree.area(this.camera.getRectangle(this.width,this.height)),c=this.nodesOnScreen,d=0,f=c.length;f>d;d++)p[c[d].id]=c[d];if(s){for(c=q.edges(),d=0,f=c.length;f>d;d++)g=c[d],!p[g.source]&&!p[g.target]||g.hidden||r(g.source).hidden||r(g.target).hidden||this.edgesOnScreen.push(g);if(this.settings(b,"batchEdgesDrawing"))h="edges_"+this.conradId,n=w("canvasEdgesBatchSize"),l=this.edgesOnScreen,f=l.length,k=0,i=Math.min(l.length,k+n),j=function(){for(o=this.contexts.edges.globalCompositeOperation,this.contexts.edges.globalCompositeOperation="destination-over",m=sigma.canvas.edges,d=k;i>d;d++)g=l[d],(m[g.type||this.settings(b,"defaultEdgeType")]||m.def)(g,q.nodes(g.source),q.nodes(g.target),this.contexts.edges,w);if(v)for(m=sigma.canvas.edges.labels,d=k;i>d;d++)g=l[d],g.hidden||(m[g.type||this.settings(b,"defaultEdgeType")]||m.def)(g,q.nodes(g.source),q.nodes(g.target),this.contexts.labels,w);return this.contexts.edges.globalCompositeOperation=o,i===l.length?(delete this.jobs[h],!1):(k=i+1,i=Math.min(l.length,k+n),!0)},this.jobs[h]=j,conrad.addJob(h,j.bind(this));else{for(m=sigma.canvas.edges,c=this.edgesOnScreen,d=0,f=c.length;f>d;d++)g=c[d],(m[g.type||this.settings(b,"defaultEdgeType")]||m.def)(g,q.nodes(g.source),q.nodes(g.target),this.contexts.edges,w);if(v)for(m=sigma.canvas.edges.labels,c=this.edgesOnScreen,d=0,f=c.length;f>d;d++)c[d].hidden||(m[c[d].type||this.settings(b,"defaultEdgeType")]||m.def)(c[d],q.nodes(c[d].source),q.nodes(c[d].target),this.contexts.labels,w)}}if(t)for(m=sigma.canvas.nodes,c=this.nodesOnScreen,d=0,f=c.length;f>d;d++)c[d].hidden||(m[c[d].type||this.settings(b,"defaultNodeType")]||m.def)(c[d],this.contexts.nodes,w);if(u)for(m=sigma.canvas.labels,c=this.nodesOnScreen,d=0,f=c.length;f>d;d++)c[d].hidden||(m[c[d].type||this.settings(b,"defaultNodeType")]||m.def)(c[d],this.contexts.labels,w);return this.dispatchEvent("render"),this},sigma.renderers.canvas.prototype.initDOM=function(a,b){var c=document.createElement(a);c.style.position="absolute",c.setAttribute("class","sigma-"+b),this.domElements[b]=c,this.container.appendChild(c),"canvas"===a.toLowerCase()&&(this.contexts[b]=c.getContext("2d"))},sigma.renderers.canvas.prototype.resize=function(b,c){var d,e=this.width,f=this.height,g=1;if(b!==a&&c!==a?(this.width=b,this.height=c):(this.width=this.container.offsetWidth,this.height=this.container.offsetHeight,b=this.width,c=this.height),e!==this.width||f!==this.height)for(d in this.domElements)this.domElements[d].style.width=b+"px",this.domElements[d].style.height=c+"px","canvas"===this.domElements[d].tagName.toLowerCase()&&(this.domElements[d].setAttribute("width",b*g+"px"),this.domElements[d].setAttribute("height",c*g+"px"),1!==g&&this.contexts[d].scale(g,g));return this},sigma.renderers.canvas.prototype.clear=function(){var a;for(a in this.domElements)"CANVAS"===this.domElements[a].tagName&&(this.domElements[a].width=this.domElements[a].width);return this},sigma.renderers.canvas.prototype.kill=function(){for(var a,b;b=this.captors.pop();)b.kill();delete this.captors;for(a in this.domElements)this.domElements[a].parentNode.removeChild(this.domElements[a]),delete this.domElements[a],delete this.contexts[a];delete this.domElements,delete this.contexts},sigma.utils.pkg("sigma.canvas.nodes"),sigma.utils.pkg("sigma.canvas.edges"),sigma.utils.pkg("sigma.canvas.labels")}.call(this),function(a){"use strict";if("undefined"==typeof sigma)throw"sigma is not declared";sigma.utils.pkg("sigma.renderers"),sigma.renderers.webgl=function(a,b,c,d){if("object"!=typeof d)throw"sigma.renderers.webgl: Wrong arguments.";if(!(d.container instanceof HTMLElement))throw"Container not found.";var e,f,g,h;for(sigma.classes.dispatcher.extend(this),this.jobs={},Object.defineProperty(this,"conradId",{value:sigma.utils.id()}),this.graph=a,this.camera=b,this.contexts={},this.domElements={},this.options=d,this.container=this.options.container,this.settings="object"==typeof d.settings&&d.settings?c.embedObjects(d.settings):c,this.options.prefix=this.camera.readPrefix,Object.defineProperty(this,"nodePrograms",{value:{}}),Object.defineProperty(this,"edgePrograms",{value:{}}),Object.defineProperty(this,"nodeFloatArrays",{value:{}}),Object.defineProperty(this,"edgeFloatArrays",{value:{}}),this.settings(d,"batchEdgesDrawing")?(this.initDOM("canvas","edges",!0),this.initDOM("canvas","nodes",!0)):(this.initDOM("canvas","scene",!0),this.contexts.nodes=this.contexts.scene,this.contexts.edges=this.contexts.scene),this.initDOM("canvas","labels"),this.initDOM("canvas","mouse"),this.contexts.hover=this.contexts.mouse,this.captors=[],g=this.options.captors||[sigma.captors.mouse,sigma.captors.touch],e=0,f=g.length;f>e;e++)h="function"==typeof g[e]?g[e]:sigma.captors[g[e]],this.captors.push(new h(this.domElements.mouse,this.camera,this.settings));sigma.misc.bindEvents.call(this,this.camera.prefix),sigma.misc.drawHovers.call(this,this.camera.prefix),this.resize()},sigma.renderers.webgl.prototype.process=function(){var a,b,c,d,e,f,g=this.graph,h=sigma.utils.extend(h,this.options);for(d in this.nodeFloatArrays)delete this.nodeFloatArrays[d];for(d in this.edgeFloatArrays)delete this.edgeFloatArrays[d];for(a=g.edges(),b=0,c=a.length;c>b;b++)e=a[b].type||this.settings(h,"defaultEdgeType"),d=e&&sigma.webgl.edges[e]?e:"def",this.edgeFloatArrays[d]||(this.edgeFloatArrays[d]={edges:[]}),this.edgeFloatArrays[d].edges.push(a[b]);for(a=g.nodes(),b=0,c=a.length;c>b;b++)e=a[b].type||this.settings(h,"defaultNodeType"),d=e&&sigma.webgl.nodes[e]?e:"def",this.nodeFloatArrays[d]||(this.nodeFloatArrays[d]={nodes:[]}),this.nodeFloatArrays[d].nodes.push(a[b]);for(d in this.edgeFloatArrays)for(f=sigma.webgl.edges[d],a=this.edgeFloatArrays[d].edges,b=0,c=a.length;c>b;b++)this.edgeFloatArrays[d].array||(this.edgeFloatArrays[d].array=new Float32Array(a.length*f.POINTS*f.ATTRIBUTES)),a[b].hidden||g.nodes(a[b].source).hidden||g.nodes(a[b].target).hidden||f.addEdge(a[b],g.nodes(a[b].source),g.nodes(a[b].target),this.edgeFloatArrays[d].array,b*f.POINTS*f.ATTRIBUTES,h.prefix,this.settings);for(d in this.nodeFloatArrays)for(f=sigma.webgl.nodes[d],a=this.nodeFloatArrays[d].nodes,b=0,c=a.length;c>b;b++)this.nodeFloatArrays[d].array||(this.nodeFloatArrays[d].array=new Float32Array(a.length*f.POINTS*f.ATTRIBUTES)),a[b].hidden||f.addNode(a[b],this.nodeFloatArrays[d].array,b*f.POINTS*f.ATTRIBUTES,h.prefix,this.settings);return this},sigma.renderers.webgl.prototype.render=function(b){var c,d,e,f,g,h,i=this,j=(this.graph,this.contexts.nodes),k=this.contexts.edges,l=this.camera.getMatrix(),m=sigma.utils.extend(b,this.options),n=this.settings(m,"drawLabels"),o=this.settings(m,"drawEdges"),p=this.settings(m,"drawNodes");this.resize(!1),this.settings(m,"hideEdgesOnMove")&&(this.camera.isAnimated||this.camera.isMoving)&&(o=!1),this.clear(),l=sigma.utils.matrices.multiply(l,sigma.utils.matrices.translation(this.width/2,this.height/2));for(f in this.jobs)conrad.hasJob(f)&&conrad.killJob(f);if(o)if(this.settings(m,"batchEdgesDrawing"))(function(){var a,b,c,d,e,f,g,h,i;c="edges_"+this.conradId,i=this.settings(m,"webglEdgesBatchSize"),a=Object.keys(this.edgeFloatArrays),a.length&&(b=0,h=sigma.webgl.edges[a[b]],e=this.edgeFloatArrays[a[b]].array,g=0,f=Math.min(g+i*h.POINTS,e.length/h.ATTRIBUTES),d=function(){return this.edgePrograms[a[b]]||(this.edgePrograms[a[b]]=h.initProgram(k)),f>g&&(k.useProgram(this.edgePrograms[a[b]]),h.render(k,this.edgePrograms[a[b]],e,{settings:this.settings,matrix:l,width:this.width,height:this.height,ratio:this.camera.ratio,scalingRatio:this.settings(m,"webglOversamplingRatio"),start:g,count:f-g})),f>=e.length/h.ATTRIBUTES&&b===a.length-1?(delete this.jobs[c],!1):(f>=e.length/h.ATTRIBUTES?(b++,e=this.edgeFloatArrays[a[b]].array,h=sigma.webgl.edges[a[b]],g=0,f=Math.min(g+i*h.POINTS,e.length/h.ATTRIBUTES)):(g=f,f=Math.min(g+i*h.POINTS,e.length/h.ATTRIBUTES)),!0)},this.jobs[c]=d,conrad.addJob(c,d.bind(this)))}).call(this);else for(f in this.edgeFloatArrays)h=sigma.webgl.edges[f],this.edgePrograms[f]||(this.edgePrograms[f]=h.initProgram(k)),this.edgeFloatArrays[f]&&(k.useProgram(this.edgePrograms[f]),h.render(k,this.edgePrograms[f],this.edgeFloatArrays[f].array,{ -settings:this.settings,matrix:l,width:this.width,height:this.height,ratio:this.camera.ratio,scalingRatio:this.settings(m,"webglOversamplingRatio")}));if(p){j.blendFunc(j.SRC_ALPHA,j.ONE_MINUS_SRC_ALPHA),j.enable(j.BLEND);for(f in this.nodeFloatArrays)h=sigma.webgl.nodes[f],this.nodePrograms[f]||(this.nodePrograms[f]=h.initProgram(j)),this.nodeFloatArrays[f]&&(j.useProgram(this.nodePrograms[f]),h.render(j,this.nodePrograms[f],this.nodeFloatArrays[f].array,{settings:this.settings,matrix:l,width:this.width,height:this.height,ratio:this.camera.ratio,scalingRatio:this.settings(m,"webglOversamplingRatio")}))}if(n)for(c=this.camera.quadtree.area(this.camera.getRectangle(this.width,this.height)),this.camera.applyView(a,a,{nodes:c,edges:[],width:this.width,height:this.height}),g=function(a){return i.settings({prefix:i.camera.prefix},a)},d=0,e=c.length;e>d;d++)c[d].hidden||(sigma.canvas.labels[c[d].type||this.settings(m,"defaultNodeType")]||sigma.canvas.labels.def)(c[d],this.contexts.labels,g);return this.dispatchEvent("render"),this},sigma.renderers.webgl.prototype.initDOM=function(a,b,c){var d=document.createElement(a),e=this;d.style.position="absolute",d.setAttribute("class","sigma-"+b),this.domElements[b]=d,this.container.appendChild(d),"canvas"===a.toLowerCase()&&(this.contexts[b]=d.getContext(c?"experimental-webgl":"2d",{preserveDrawingBuffer:!0}),c&&(d.addEventListener("webglcontextlost",function(a){a.preventDefault()},!1),d.addEventListener("webglcontextrestored",function(a){e.render()},!1)))},sigma.renderers.webgl.prototype.resize=function(b,c){var d,e=this.width,f=this.height;if(b!==a&&c!==a?(this.width=b,this.height=c):(this.width=this.container.offsetWidth,this.height=this.container.offsetHeight,b=this.width,c=this.height),e!==this.width||f!==this.height)for(d in this.domElements)this.domElements[d].style.width=b+"px",this.domElements[d].style.height=c+"px","canvas"===this.domElements[d].tagName.toLowerCase()&&(this.contexts[d]&&this.contexts[d].scale?(this.domElements[d].setAttribute("width",b+"px"),this.domElements[d].setAttribute("height",c+"px")):(this.domElements[d].setAttribute("width",b*this.settings("webglOversamplingRatio")+"px"),this.domElements[d].setAttribute("height",c*this.settings("webglOversamplingRatio")+"px")));for(d in this.contexts)this.contexts[d]&&this.contexts[d].viewport&&this.contexts[d].viewport(0,0,this.width*this.settings("webglOversamplingRatio"),this.height*this.settings("webglOversamplingRatio"));return this},sigma.renderers.webgl.prototype.clear=function(){var a;for(a in this.domElements)"CANVAS"===this.domElements[a].tagName&&(this.domElements[a].width=this.domElements[a].width);return this.contexts.nodes.clear(this.contexts.nodes.COLOR_BUFFER_BIT),this.contexts.edges.clear(this.contexts.edges.COLOR_BUFFER_BIT),this},sigma.renderers.webgl.prototype.kill=function(){for(var a,b;b=this.captors.pop();)b.kill();delete this.captors;for(a in this.domElements)this.domElements[a].parentNode.removeChild(this.domElements[a]),delete this.domElements[a],delete this.contexts[a];delete this.domElements,delete this.contexts},sigma.utils.pkg("sigma.webgl.nodes"),sigma.utils.pkg("sigma.webgl.edges"),sigma.utils.pkg("sigma.canvas.labels")}.call(this),function(a){"use strict";if("undefined"==typeof sigma)throw"sigma is not declared";if("undefined"==typeof conrad)throw"conrad is not declared";sigma.utils.pkg("sigma.renderers"),sigma.renderers.svg=function(a,b,c,d){if("object"!=typeof d)throw"sigma.renderers.svg: Wrong arguments.";if(!(d.container instanceof HTMLElement))throw"Container not found.";var e,f,g,h,i=this;for(sigma.classes.dispatcher.extend(this),this.graph=a,this.camera=b,this.domElements={graph:null,groups:{},nodes:{},edges:{},labels:{},hovers:{}},this.measurementCanvas=null,this.options=d,this.container=this.options.container,this.settings="object"==typeof d.settings&&d.settings?c.embedObjects(d.settings):c,this.settings("freeStyle",!!this.options.freeStyle),this.settings("xmlns","http://www.w3.org/2000/svg"),this.nodesOnScreen=[],this.edgesOnScreen=[],this.options.prefix="renderer"+sigma.utils.id()+":",this.initDOM("svg"),this.captors=[],g=this.options.captors||[sigma.captors.mouse,sigma.captors.touch],e=0,f=g.length;f>e;e++)h="function"==typeof g[e]?g[e]:sigma.captors[g[e]],this.captors.push(new h(this.domElements.graph,this.camera,this.settings));window.addEventListener("resize",function(){i.resize()}),sigma.misc.bindDOMEvents.call(this,this.domElements.graph),this.bindHovers(this.options.prefix),this.resize(!1)},sigma.renderers.svg.prototype.render=function(b){b=b||{};var c,d,e,f,g,h,i,j,k,l={},m=this.graph,n=this.graph.nodes,o=(this.options.prefix||"",this.settings(b,"drawEdges")),p=this.settings(b,"drawNodes"),q=(this.settings(b,"drawLabels"),this.settings.embedObjects(b,{prefix:this.options.prefix,forceLabels:this.options.forceLabels}));for(this.settings(b,"hideEdgesOnMove")&&(this.camera.isAnimated||this.camera.isMoving)&&(o=!1),this.camera.applyView(a,this.options.prefix,{width:this.width,height:this.height}),this.hideDOMElements(this.domElements.nodes),this.hideDOMElements(this.domElements.edges),this.hideDOMElements(this.domElements.labels),this.edgesOnScreen=[],this.nodesOnScreen=this.camera.quadtree.area(this.camera.getRectangle(this.width,this.height)),c=this.nodesOnScreen,d=0,f=c.length;f>d;d++)l[c[d].id]=c[d];for(c=m.edges(),d=0,f=c.length;f>d;d++)g=c[d],!l[g.source]&&!l[g.target]||g.hidden||n(g.source).hidden||n(g.target).hidden||this.edgesOnScreen.push(g);if(j=sigma.svg.nodes,k=sigma.svg.labels,p)for(c=this.nodesOnScreen,d=0,f=c.length;f>d;d++)c[d].hidden||this.domElements.nodes[c[d].id]||(e=(j[c[d].type]||j.def).create(c[d],q),this.domElements.nodes[c[d].id]=e,this.domElements.groups.nodes.appendChild(e),e=(k[c[d].type]||k.def).create(c[d],q),this.domElements.labels[c[d].id]=e,this.domElements.groups.labels.appendChild(e));if(p)for(c=this.nodesOnScreen,d=0,f=c.length;f>d;d++)c[d].hidden||((j[c[d].type]||j.def).update(c[d],this.domElements.nodes[c[d].id],q),(k[c[d].type]||k.def).update(c[d],this.domElements.labels[c[d].id],q));if(j=sigma.svg.edges,o)for(c=this.edgesOnScreen,d=0,f=c.length;f>d;d++)this.domElements.edges[c[d].id]||(h=n(c[d].source),i=n(c[d].target),e=(j[c[d].type]||j.def).create(c[d],h,i,q),this.domElements.edges[c[d].id]=e,this.domElements.groups.edges.appendChild(e));if(o)for(c=this.edgesOnScreen,d=0,f=c.length;f>d;d++)h=n(c[d].source),i=n(c[d].target),(j[c[d].type]||j.def).update(c[d],this.domElements.edges[c[d].id],h,i,q);return this.dispatchEvent("render"),this},sigma.renderers.svg.prototype.initDOM=function(a){var b,c,d,e=document.createElementNS(this.settings("xmlns"),a),f=this.settings("classPrefix");e.style.position="absolute",e.setAttribute("class",f+"-svg"),e.setAttribute("xmlns",this.settings("xmlns")),e.setAttribute("xmlns:xlink","http://www.w3.org/1999/xlink"),e.setAttribute("version","1.1");var g=document.createElement("canvas");g.setAttribute("class",f+"-measurement-canvas"),this.domElements.graph=this.container.appendChild(e);var h=["edges","nodes","labels","hovers"];for(d=0,c=h.length;c>d;d++)b=document.createElementNS(this.settings("xmlns"),"g"),b.setAttributeNS(null,"id",f+"-group-"+h[d]),b.setAttributeNS(null,"class",f+"-group"),this.domElements.groups[h[d]]=this.domElements.graph.appendChild(b);this.container.appendChild(g),this.measurementCanvas=g.getContext("2d")},sigma.renderers.svg.prototype.hideDOMElements=function(a){var b,c;for(c in a)b=a[c],sigma.svg.utils.hide(b);return this},sigma.renderers.svg.prototype.bindHovers=function(a){function b(b){var c=b.data.node,d=g.settings.embedObjects({prefix:a});if(d("enableHovering")){var h=(f[c.type]||f.def).create(c,g.domElements.nodes[c.id],g.measurementCanvas,d);g.domElements.hovers[c.id]=h,g.domElements.groups.hovers.appendChild(h),e=c}}function c(b){var c=b.data.node,d=g.settings.embedObjects({prefix:a});d("enableHovering")&&(g.domElements.groups.hovers.removeChild(g.domElements.hovers[c.id]),e=null,delete g.domElements.hovers[c.id],g.domElements.groups.nodes.appendChild(g.domElements.nodes[c.id]))}function d(){if(e){var b=g.settings.embedObjects({prefix:a});g.domElements.groups.hovers.removeChild(g.domElements.hovers[e.id]),delete g.domElements.hovers[e.id];var c=(f[e.type]||f.def).create(e,g.domElements.nodes[e.id],g.measurementCanvas,b);g.domElements.hovers[e.id]=c,g.domElements.groups.hovers.appendChild(c)}}var e,f=sigma.svg.hovers,g=this;this.bind("overNode",b),this.bind("outNode",c),this.bind("render",d)},sigma.renderers.svg.prototype.resize=function(b,c){var d=this.width,e=this.height,f=1;return b!==a&&c!==a?(this.width=b,this.height=c):(this.width=this.container.offsetWidth,this.height=this.container.offsetHeight,b=this.width,c=this.height),(d!==this.width||e!==this.height)&&(this.domElements.graph.style.width=b+"px",this.domElements.graph.style.height=c+"px","svg"===this.domElements.graph.tagName.toLowerCase()&&(this.domElements.graph.setAttribute("width",b*f),this.domElements.graph.setAttribute("height",c*f))),this},sigma.utils.pkg("sigma.svg.nodes"),sigma.utils.pkg("sigma.svg.edges"),sigma.utils.pkg("sigma.svg.labels")}.call(this),function(a){"use strict";if("undefined"==typeof sigma)throw"sigma is not declared";sigma.utils.pkg("sigma.renderers");var b,c=!!a.WebGLRenderingContext;if(c){b=document.createElement("canvas");try{c=!(!b.getContext("webgl")&&!b.getContext("experimental-webgl"))}catch(d){c=!1}}sigma.renderers.def=c?sigma.renderers.webgl:sigma.renderers.canvas}(this),function(){"use strict";sigma.utils.pkg("sigma.webgl.nodes"),sigma.webgl.nodes.def={POINTS:3,ATTRIBUTES:5,addNode:function(a,b,c,d,e){var f=sigma.utils.floatColor(a.color||e("defaultNodeColor"));b[c++]=a[d+"x"],b[c++]=a[d+"y"],b[c++]=a[d+"size"],b[c++]=f,b[c++]=0,b[c++]=a[d+"x"],b[c++]=a[d+"y"],b[c++]=a[d+"size"],b[c++]=f,b[c++]=2*Math.PI/3,b[c++]=a[d+"x"],b[c++]=a[d+"y"],b[c++]=a[d+"size"],b[c++]=f,b[c++]=4*Math.PI/3},render:function(a,b,c,d){var e,f=a.getAttribLocation(b,"a_position"),g=a.getAttribLocation(b,"a_size"),h=a.getAttribLocation(b,"a_color"),i=a.getAttribLocation(b,"a_angle"),j=a.getUniformLocation(b,"u_resolution"),k=a.getUniformLocation(b,"u_matrix"),l=a.getUniformLocation(b,"u_ratio"),m=a.getUniformLocation(b,"u_scale");e=a.createBuffer(),a.bindBuffer(a.ARRAY_BUFFER,e),a.bufferData(a.ARRAY_BUFFER,c,a.DYNAMIC_DRAW),a.uniform2f(j,d.width,d.height),a.uniform1f(l,1/Math.pow(d.ratio,d.settings("nodesPowRatio"))),a.uniform1f(m,d.scalingRatio),a.uniformMatrix3fv(k,!1,d.matrix),a.enableVertexAttribArray(f),a.enableVertexAttribArray(g),a.enableVertexAttribArray(h),a.enableVertexAttribArray(i),a.vertexAttribPointer(f,2,a.FLOAT,!1,this.ATTRIBUTES*Float32Array.BYTES_PER_ELEMENT,0),a.vertexAttribPointer(g,1,a.FLOAT,!1,this.ATTRIBUTES*Float32Array.BYTES_PER_ELEMENT,8),a.vertexAttribPointer(h,1,a.FLOAT,!1,this.ATTRIBUTES*Float32Array.BYTES_PER_ELEMENT,12),a.vertexAttribPointer(i,1,a.FLOAT,!1,this.ATTRIBUTES*Float32Array.BYTES_PER_ELEMENT,16),a.drawArrays(a.TRIANGLES,d.start||0,d.count||c.length/this.ATTRIBUTES)},initProgram:function(a){var b,c,d;return b=sigma.utils.loadShader(a,["attribute vec2 a_position;","attribute float a_size;","attribute float a_color;","attribute float a_angle;","uniform vec2 u_resolution;","uniform float u_ratio;","uniform float u_scale;","uniform mat3 u_matrix;","varying vec4 color;","varying vec2 center;","varying float radius;","void main() {","radius = a_size * u_ratio;","vec2 position = (u_matrix * vec3(a_position, 1)).xy;","center = position * u_scale;","center = vec2(center.x, u_scale * u_resolution.y - center.y);","position = position +","2.0 * radius * vec2(cos(a_angle), sin(a_angle));","position = (position / u_resolution * 2.0 - 1.0) * vec2(1, -1);","radius = radius * u_scale;","gl_Position = vec4(position, 0, 1);","float c = a_color;","color.b = mod(c, 256.0); c = floor(c / 256.0);","color.g = mod(c, 256.0); c = floor(c / 256.0);","color.r = mod(c, 256.0); c = floor(c / 256.0); color /= 255.0;","color.a = 1.0;","}"].join("\n"),a.VERTEX_SHADER),c=sigma.utils.loadShader(a,["precision mediump float;","varying vec4 color;","varying vec2 center;","varying float radius;","void main(void) {","vec4 color0 = vec4(0.0, 0.0, 0.0, 0.0);","vec2 m = gl_FragCoord.xy - center;","float diff = radius - sqrt(m.x * m.x + m.y * m.y);","if (diff > 0.0)","gl_FragColor = color;","else","gl_FragColor = color0;","}"].join("\n"),a.FRAGMENT_SHADER),d=sigma.utils.loadProgram(a,[b,c])}}}(),function(){"use strict";sigma.utils.pkg("sigma.webgl.nodes"),sigma.webgl.nodes.fast={POINTS:1,ATTRIBUTES:4,addNode:function(a,b,c,d,e){b[c++]=a[d+"x"],b[c++]=a[d+"y"],b[c++]=a[d+"size"],b[c++]=sigma.utils.floatColor(a.color||e("defaultNodeColor"))},render:function(a,b,c,d){var e,f=a.getAttribLocation(b,"a_position"),g=a.getAttribLocation(b,"a_size"),h=a.getAttribLocation(b,"a_color"),i=a.getUniformLocation(b,"u_resolution"),j=a.getUniformLocation(b,"u_matrix"),k=a.getUniformLocation(b,"u_ratio"),l=a.getUniformLocation(b,"u_scale");e=a.createBuffer(),a.bindBuffer(a.ARRAY_BUFFER,e),a.bufferData(a.ARRAY_BUFFER,c,a.DYNAMIC_DRAW),a.uniform2f(i,d.width,d.height),a.uniform1f(k,1/Math.pow(d.ratio,d.settings("nodesPowRatio"))),a.uniform1f(l,d.scalingRatio),a.uniformMatrix3fv(j,!1,d.matrix),a.enableVertexAttribArray(f),a.enableVertexAttribArray(g),a.enableVertexAttribArray(h),a.vertexAttribPointer(f,2,a.FLOAT,!1,this.ATTRIBUTES*Float32Array.BYTES_PER_ELEMENT,0),a.vertexAttribPointer(g,1,a.FLOAT,!1,this.ATTRIBUTES*Float32Array.BYTES_PER_ELEMENT,8),a.vertexAttribPointer(h,1,a.FLOAT,!1,this.ATTRIBUTES*Float32Array.BYTES_PER_ELEMENT,12),a.drawArrays(a.POINTS,d.start||0,d.count||c.length/this.ATTRIBUTES)},initProgram:function(a){var b,c,d;return b=sigma.utils.loadShader(a,["attribute vec2 a_position;","attribute float a_size;","attribute float a_color;","uniform vec2 u_resolution;","uniform float u_ratio;","uniform float u_scale;","uniform mat3 u_matrix;","varying vec4 color;","void main() {","gl_Position = vec4(","((u_matrix * vec3(a_position, 1)).xy /","u_resolution * 2.0 - 1.0) * vec2(1, -1),","0,","1",");","gl_PointSize = a_size * u_ratio * u_scale * 2.0;","float c = a_color;","color.b = mod(c, 256.0); c = floor(c / 256.0);","color.g = mod(c, 256.0); c = floor(c / 256.0);","color.r = mod(c, 256.0); c = floor(c / 256.0); color /= 255.0;","color.a = 1.0;","}"].join("\n"),a.VERTEX_SHADER),c=sigma.utils.loadShader(a,["precision mediump float;","varying vec4 color;","void main(void) {","gl_FragColor = color;","}"].join("\n"),a.FRAGMENT_SHADER),d=sigma.utils.loadProgram(a,[b,c])}}}(),function(){"use strict";sigma.utils.pkg("sigma.webgl.edges"),sigma.webgl.edges.def={POINTS:6,ATTRIBUTES:7,addEdge:function(a,b,c,d,e,f,g){var h=(a[f+"size"]||1)/2,i=b[f+"x"],j=b[f+"y"],k=c[f+"x"],l=c[f+"y"],m=a.color;if(!m)switch(g("edgeColor")){case"source":m=b.color||g("defaultNodeColor");break;case"target":m=c.color||g("defaultNodeColor");break;default:m=g("defaultEdgeColor")}m=sigma.utils.floatColor(m),d[e++]=i,d[e++]=j,d[e++]=k,d[e++]=l,d[e++]=h,d[e++]=0,d[e++]=m,d[e++]=k,d[e++]=l,d[e++]=i,d[e++]=j,d[e++]=h,d[e++]=1,d[e++]=m,d[e++]=k,d[e++]=l,d[e++]=i,d[e++]=j,d[e++]=h,d[e++]=0,d[e++]=m,d[e++]=k,d[e++]=l,d[e++]=i,d[e++]=j,d[e++]=h,d[e++]=0,d[e++]=m,d[e++]=i,d[e++]=j,d[e++]=k,d[e++]=l,d[e++]=h,d[e++]=1,d[e++]=m,d[e++]=i,d[e++]=j,d[e++]=k,d[e++]=l,d[e++]=h,d[e++]=0,d[e++]=m},render:function(a,b,c,d){var e,f=a.getAttribLocation(b,"a_color"),g=a.getAttribLocation(b,"a_position1"),h=a.getAttribLocation(b,"a_position2"),i=a.getAttribLocation(b,"a_thickness"),j=a.getAttribLocation(b,"a_minus"),k=a.getUniformLocation(b,"u_resolution"),l=a.getUniformLocation(b,"u_matrix"),m=a.getUniformLocation(b,"u_matrixHalfPi"),n=a.getUniformLocation(b,"u_matrixHalfPiMinus"),o=a.getUniformLocation(b,"u_ratio"),p=a.getUniformLocation(b,"u_scale");e=a.createBuffer(),a.bindBuffer(a.ARRAY_BUFFER,e),a.bufferData(a.ARRAY_BUFFER,c,a.STATIC_DRAW),a.uniform2f(k,d.width,d.height),a.uniform1f(o,d.ratio/Math.pow(d.ratio,d.settings("edgesPowRatio"))),a.uniform1f(p,d.scalingRatio),a.uniformMatrix3fv(l,!1,d.matrix),a.uniformMatrix2fv(m,!1,sigma.utils.matrices.rotation(Math.PI/2,!0)),a.uniformMatrix2fv(n,!1,sigma.utils.matrices.rotation(-Math.PI/2,!0)),a.enableVertexAttribArray(f),a.enableVertexAttribArray(g),a.enableVertexAttribArray(h),a.enableVertexAttribArray(i),a.enableVertexAttribArray(j),a.vertexAttribPointer(g,2,a.FLOAT,!1,this.ATTRIBUTES*Float32Array.BYTES_PER_ELEMENT,0),a.vertexAttribPointer(h,2,a.FLOAT,!1,this.ATTRIBUTES*Float32Array.BYTES_PER_ELEMENT,8),a.vertexAttribPointer(i,1,a.FLOAT,!1,this.ATTRIBUTES*Float32Array.BYTES_PER_ELEMENT,16),a.vertexAttribPointer(j,1,a.FLOAT,!1,this.ATTRIBUTES*Float32Array.BYTES_PER_ELEMENT,20),a.vertexAttribPointer(f,1,a.FLOAT,!1,this.ATTRIBUTES*Float32Array.BYTES_PER_ELEMENT,24),a.drawArrays(a.TRIANGLES,d.start||0,d.count||c.length/this.ATTRIBUTES)},initProgram:function(a){var b,c,d;return b=sigma.utils.loadShader(a,["attribute vec2 a_position1;","attribute vec2 a_position2;","attribute float a_thickness;","attribute float a_minus;","attribute float a_color;","uniform vec2 u_resolution;","uniform float u_ratio;","uniform float u_scale;","uniform mat3 u_matrix;","uniform mat2 u_matrixHalfPi;","uniform mat2 u_matrixHalfPiMinus;","varying vec4 color;","void main() {","vec2 position = a_thickness * u_ratio *","normalize(a_position2 - a_position1);","mat2 matrix = a_minus * u_matrixHalfPiMinus +","(1.0 - a_minus) * u_matrixHalfPi;","position = matrix * position + a_position1;","gl_Position = vec4(","((u_matrix * vec3(position, 1)).xy /","u_resolution * 2.0 - 1.0) * vec2(1, -1),","0,","1",");","float c = a_color;","color.b = mod(c, 256.0); c = floor(c / 256.0);","color.g = mod(c, 256.0); c = floor(c / 256.0);","color.r = mod(c, 256.0); c = floor(c / 256.0); color /= 255.0;","color.a = 1.0;","}"].join("\n"),a.VERTEX_SHADER),c=sigma.utils.loadShader(a,["precision mediump float;","varying vec4 color;","void main(void) {","gl_FragColor = color;","}"].join("\n"),a.FRAGMENT_SHADER),d=sigma.utils.loadProgram(a,[b,c])}}}(),function(){"use strict";sigma.utils.pkg("sigma.webgl.edges"),sigma.webgl.edges.fast={POINTS:2,ATTRIBUTES:3,addEdge:function(a,b,c,d,e,f,g){var h=((a[f+"size"]||1)/2,b[f+"x"]),i=b[f+"y"],j=c[f+"x"],k=c[f+"y"],l=a.color;if(!l)switch(g("edgeColor")){case"source":l=b.color||g("defaultNodeColor");break;case"target":l=c.color||g("defaultNodeColor");break;default:l=g("defaultEdgeColor")}l=sigma.utils.floatColor(l),d[e++]=h,d[e++]=i,d[e++]=l,d[e++]=j,d[e++]=k,d[e++]=l},render:function(a,b,c,d){var e,f=a.getAttribLocation(b,"a_color"),g=a.getAttribLocation(b,"a_position"),h=a.getUniformLocation(b,"u_resolution"),i=a.getUniformLocation(b,"u_matrix");e=a.createBuffer(),a.bindBuffer(a.ARRAY_BUFFER,e),a.bufferData(a.ARRAY_BUFFER,c,a.DYNAMIC_DRAW),a.uniform2f(h,d.width,d.height),a.uniformMatrix3fv(i,!1,d.matrix),a.enableVertexAttribArray(g),a.enableVertexAttribArray(f),a.vertexAttribPointer(g,2,a.FLOAT,!1,this.ATTRIBUTES*Float32Array.BYTES_PER_ELEMENT,0),a.vertexAttribPointer(f,1,a.FLOAT,!1,this.ATTRIBUTES*Float32Array.BYTES_PER_ELEMENT,8),a.lineWidth(3),a.drawArrays(a.LINES,d.start||0,d.count||c.length/this.ATTRIBUTES)},initProgram:function(a){var b,c,d;return b=sigma.utils.loadShader(a,["attribute vec2 a_position;","attribute float a_color;","uniform vec2 u_resolution;","uniform mat3 u_matrix;","varying vec4 color;","void main() {","gl_Position = vec4(","((u_matrix * vec3(a_position, 1)).xy /","u_resolution * 2.0 - 1.0) * vec2(1, -1),","0,","1",");","float c = a_color;","color.b = mod(c, 256.0); c = floor(c / 256.0);","color.g = mod(c, 256.0); c = floor(c / 256.0);","color.r = mod(c, 256.0); c = floor(c / 256.0); color /= 255.0;","color.a = 1.0;","}"].join("\n"),a.VERTEX_SHADER),c=sigma.utils.loadShader(a,["precision mediump float;","varying vec4 color;","void main(void) {","gl_FragColor = color;","}"].join("\n"),a.FRAGMENT_SHADER),d=sigma.utils.loadProgram(a,[b,c])}}}(),function(){"use strict";sigma.utils.pkg("sigma.webgl.edges"),sigma.webgl.edges.arrow={POINTS:9,ATTRIBUTES:11,addEdge:function(a,b,c,d,e,f,g){var h=(a[f+"size"]||1)/2,i=b[f+"x"],j=b[f+"y"],k=c[f+"x"],l=c[f+"y"],m=c[f+"size"],n=a.color;if(!n)switch(g("edgeColor")){case"source":n=b.color||g("defaultNodeColor");break;case"target":n=c.color||g("defaultNodeColor");break;default:n=g("defaultEdgeColor")}n=sigma.utils.floatColor(n),d[e++]=i,d[e++]=j,d[e++]=k,d[e++]=l,d[e++]=h,d[e++]=m,d[e++]=0,d[e++]=0,d[e++]=0,d[e++]=0,d[e++]=n,d[e++]=k,d[e++]=l,d[e++]=i,d[e++]=j,d[e++]=h,d[e++]=m,d[e++]=1,d[e++]=1,d[e++]=0,d[e++]=0,d[e++]=n,d[e++]=k,d[e++]=l,d[e++]=i,d[e++]=j,d[e++]=h,d[e++]=m,d[e++]=1,d[e++]=0,d[e++]=0,d[e++]=0,d[e++]=n,d[e++]=k,d[e++]=l,d[e++]=i,d[e++]=j,d[e++]=h,d[e++]=m,d[e++]=1,d[e++]=0,d[e++]=0,d[e++]=0,d[e++]=n,d[e++]=i,d[e++]=j,d[e++]=k,d[e++]=l,d[e++]=h,d[e++]=m,d[e++]=0,d[e++]=1,d[e++]=0,d[e++]=0,d[e++]=n,d[e++]=i,d[e++]=j,d[e++]=k,d[e++]=l,d[e++]=h,d[e++]=m,d[e++]=0,d[e++]=0,d[e++]=0,d[e++]=0,d[e++]=n,d[e++]=k,d[e++]=l,d[e++]=i,d[e++]=j,d[e++]=h,d[e++]=m,d[e++]=1,d[e++]=0,d[e++]=1,d[e++]=-1,d[e++]=n,d[e++]=k,d[e++]=l,d[e++]=i,d[e++]=j,d[e++]=h,d[e++]=m,d[e++]=1,d[e++]=0,d[e++]=1,d[e++]=0,d[e++]=n,d[e++]=k,d[e++]=l,d[e++]=i,d[e++]=j,d[e++]=h,d[e++]=m,d[e++]=1,d[e++]=0,d[e++]=1,d[e++]=1,d[e++]=n},render:function(a,b,c,d){var e,f=a.getAttribLocation(b,"a_pos1"),g=a.getAttribLocation(b,"a_pos2"),h=a.getAttribLocation(b,"a_thickness"),i=a.getAttribLocation(b,"a_tSize"),j=a.getAttribLocation(b,"a_delay"),k=a.getAttribLocation(b,"a_minus"),l=a.getAttribLocation(b,"a_head"),m=a.getAttribLocation(b,"a_headPosition"),n=a.getAttribLocation(b,"a_color"),o=a.getUniformLocation(b,"u_resolution"),p=a.getUniformLocation(b,"u_matrix"),q=a.getUniformLocation(b,"u_matrixHalfPi"),r=a.getUniformLocation(b,"u_matrixHalfPiMinus"),s=a.getUniformLocation(b,"u_ratio"),t=a.getUniformLocation(b,"u_nodeRatio"),u=a.getUniformLocation(b,"u_arrowHead"),v=a.getUniformLocation(b,"u_scale");e=a.createBuffer(),a.bindBuffer(a.ARRAY_BUFFER,e),a.bufferData(a.ARRAY_BUFFER,c,a.STATIC_DRAW),a.uniform2f(o,d.width,d.height),a.uniform1f(s,d.ratio/Math.pow(d.ratio,d.settings("edgesPowRatio"))),a.uniform1f(t,Math.pow(d.ratio,d.settings("nodesPowRatio"))/d.ratio),a.uniform1f(u,5),a.uniform1f(v,d.scalingRatio),a.uniformMatrix3fv(p,!1,d.matrix),a.uniformMatrix2fv(q,!1,sigma.utils.matrices.rotation(Math.PI/2,!0)),a.uniformMatrix2fv(r,!1,sigma.utils.matrices.rotation(-Math.PI/2,!0)),a.enableVertexAttribArray(f),a.enableVertexAttribArray(g),a.enableVertexAttribArray(h),a.enableVertexAttribArray(i),a.enableVertexAttribArray(j),a.enableVertexAttribArray(k),a.enableVertexAttribArray(l),a.enableVertexAttribArray(m),a.enableVertexAttribArray(n),a.vertexAttribPointer(f,2,a.FLOAT,!1,this.ATTRIBUTES*Float32Array.BYTES_PER_ELEMENT,0),a.vertexAttribPointer(g,2,a.FLOAT,!1,this.ATTRIBUTES*Float32Array.BYTES_PER_ELEMENT,8),a.vertexAttribPointer(h,1,a.FLOAT,!1,this.ATTRIBUTES*Float32Array.BYTES_PER_ELEMENT,16),a.vertexAttribPointer(i,1,a.FLOAT,!1,this.ATTRIBUTES*Float32Array.BYTES_PER_ELEMENT,20),a.vertexAttribPointer(j,1,a.FLOAT,!1,this.ATTRIBUTES*Float32Array.BYTES_PER_ELEMENT,24),a.vertexAttribPointer(k,1,a.FLOAT,!1,this.ATTRIBUTES*Float32Array.BYTES_PER_ELEMENT,28),a.vertexAttribPointer(l,1,a.FLOAT,!1,this.ATTRIBUTES*Float32Array.BYTES_PER_ELEMENT,32),a.vertexAttribPointer(m,1,a.FLOAT,!1,this.ATTRIBUTES*Float32Array.BYTES_PER_ELEMENT,36),a.vertexAttribPointer(n,1,a.FLOAT,!1,this.ATTRIBUTES*Float32Array.BYTES_PER_ELEMENT,40),a.drawArrays(a.TRIANGLES,d.start||0,d.count||c.length/this.ATTRIBUTES)},initProgram:function(a){var b,c,d;return b=sigma.utils.loadShader(a,["attribute vec2 a_pos1;","attribute vec2 a_pos2;","attribute float a_thickness;","attribute float a_tSize;","attribute float a_delay;","attribute float a_minus;","attribute float a_head;","attribute float a_headPosition;","attribute float a_color;","uniform vec2 u_resolution;","uniform float u_ratio;","uniform float u_nodeRatio;","uniform float u_arrowHead;","uniform float u_scale;","uniform mat3 u_matrix;","uniform mat2 u_matrixHalfPi;","uniform mat2 u_matrixHalfPiMinus;","varying vec4 color;","void main() {","vec2 pos = normalize(a_pos2 - a_pos1);","mat2 matrix = (1.0 - a_head) *","(","a_minus * u_matrixHalfPiMinus +","(1.0 - a_minus) * u_matrixHalfPi",") + a_head * (","a_headPosition * u_matrixHalfPiMinus * 0.6 +","(a_headPosition * a_headPosition - 1.0) * mat2(1.0)",");","pos = a_pos1 + (","(1.0 - a_head) * a_thickness * u_ratio * matrix * pos +","a_head * u_arrowHead * a_thickness * u_ratio * matrix * pos +","a_delay * pos * (","a_tSize / u_nodeRatio +","u_arrowHead * a_thickness * u_ratio",")",");","gl_Position = vec4(","((u_matrix * vec3(pos, 1)).xy /","u_resolution * 2.0 - 1.0) * vec2(1, -1),","0,","1",");","float c = a_color;","color.b = mod(c, 256.0); c = floor(c / 256.0);","color.g = mod(c, 256.0); c = floor(c / 256.0);","color.r = mod(c, 256.0); c = floor(c / 256.0); color /= 255.0;","color.a = 1.0;","}"].join("\n"),a.VERTEX_SHADER),c=sigma.utils.loadShader(a,["precision mediump float;","varying vec4 color;","void main(void) {","gl_FragColor = color;","}"].join("\n"),a.FRAGMENT_SHADER),d=sigma.utils.loadProgram(a,[b,c])}}}(),function(a){"use strict";if("undefined"==typeof sigma)throw"sigma is not declared";sigma.utils.pkg("sigma.canvas.labels"),sigma.canvas.labels.def=function(a,b,c){var d,e=c("prefix")||"",f=a[e+"size"];f0&&(b.beginPath(),b.fillStyle="node"===c("nodeBorderColor")?a.color||c("defaultNodeColor"):c("defaultNodeBorderColor"),b.arc(a[j+"x"],a[j+"y"],k+c("borderSize"),0,2*Math.PI,!0),b.closePath(),b.fill());var m=sigma.canvas.nodes[a.type]||sigma.canvas.nodes.def;m(a,b,c),a.label&&"string"==typeof a.label&&(b.fillStyle="node"===c("labelHoverColor")?a.color||c("defaultNodeColor"):c("defaultLabelHoverColor"),b.fillText(a.label,Math.round(a[j+"x"]+k+3),Math.round(a[j+"y"]+l/3)))}}.call(this),function(){"use strict";sigma.utils.pkg("sigma.canvas.nodes"),sigma.canvas.nodes.def=function(a,b,c){var d=c("prefix")||"";b.fillStyle=a.color||c("defaultNodeColor"),b.beginPath(),b.arc(a[d+"x"],a[d+"y"],a[d+"size"],0,2*Math.PI,!0),b.closePath(),b.fill()}}(),function(){"use strict";sigma.utils.pkg("sigma.canvas.edges"),sigma.canvas.edges.def=function(a,b,c,d,e){var f=a.color,g=e("prefix")||"",h=a[g+"size"]||1,i=e("edgeColor"),j=e("defaultNodeColor"),k=e("defaultEdgeColor");if(!f)switch(i){case"source":f=b.color||j;break;case"target":f=c.color||j;break;default:f=k}d.strokeStyle=f,d.lineWidth=h,d.beginPath(),d.moveTo(b[g+"x"],b[g+"y"]),d.lineTo(c[g+"x"],c[g+"y"]),d.stroke()}}(),function(){"use strict";sigma.utils.pkg("sigma.canvas.edges"),sigma.canvas.edges.curve=function(a,b,c,d,e){var f=a.color,g=e("prefix")||"",h=a[g+"size"]||1,i=e("edgeColor"),j=e("defaultNodeColor"),k=e("defaultEdgeColor"),l={},m=b[g+"size"],n=b[g+"x"],o=b[g+"y"],p=c[g+"x"],q=c[g+"y"];if(l=b.id===c.id?sigma.utils.getSelfLoopControlPoints(n,o,m):sigma.utils.getQuadraticControlPoint(n,o,p,q),!f)switch(i){case"source":f=b.color||j;break;case"target":f=c.color||j;break;default:f=k}d.strokeStyle=f,d.lineWidth=h,d.beginPath(),d.moveTo(n,o),b.id===c.id?d.bezierCurveTo(l.x1,l.y1,l.x2,l.y2,p,q):d.quadraticCurveTo(l.x,l.y,p,q),d.stroke()}}(),function(){"use strict";sigma.utils.pkg("sigma.canvas.edges"),sigma.canvas.edges.arrow=function(a,b,c,d,e){var f=a.color,g=e("prefix")||"",h=e("edgeColor"),i=e("defaultNodeColor"),j=e("defaultEdgeColor"),k=a[g+"size"]||1,l=c[g+"size"],m=b[g+"x"],n=b[g+"y"],o=c[g+"x"],p=c[g+"y"],q=Math.max(2.5*k,e("minArrowSize")),r=Math.sqrt(Math.pow(o-m,2)+Math.pow(p-n,2)),s=m+(o-m)*(r-q-l)/r,t=n+(p-n)*(r-q-l)/r,u=(o-m)*q/r,v=(p-n)*q/r;if(!f)switch(h){case"source":f=b.color||i;break;case"target":f=c.color||i;break;default:f=j}d.strokeStyle=f,d.lineWidth=k,d.beginPath(),d.moveTo(m,n),d.lineTo(s,t),d.stroke(),d.fillStyle=f,d.beginPath(),d.moveTo(s+u,t+v),d.lineTo(s+.6*v,t-.6*u),d.lineTo(s-.6*v,t+.6*u),d.lineTo(s+u,t+v),d.closePath(),d.fill()}}(),function(){"use strict";sigma.utils.pkg("sigma.canvas.edges"),sigma.canvas.edges.curvedArrow=function(a,b,c,d,e){var f,g,h,i,j,k=a.color,l=e("prefix")||"",m=e("edgeColor"),n=e("defaultNodeColor"),o=e("defaultEdgeColor"),p={},q=a[l+"size"]||1,r=c[l+"size"],s=b[l+"x"],t=b[l+"y"],u=c[l+"x"],v=c[l+"y"],w=Math.max(2.5*q,e("minArrowSize"));if(p=b.id===c.id?sigma.utils.getSelfLoopControlPoints(s,t,r):sigma.utils.getQuadraticControlPoint(s,t,u,v),b.id===c.id?(f=Math.sqrt(Math.pow(u-p.x1,2)+Math.pow(v-p.y1,2)),g=p.x1+(u-p.x1)*(f-w-r)/f,h=p.y1+(v-p.y1)*(f-w-r)/f,i=(u-p.x1)*w/f,j=(v-p.y1)*w/f):(f=Math.sqrt(Math.pow(u-p.x,2)+Math.pow(v-p.y,2)),g=p.x+(u-p.x)*(f-w-r)/f,h=p.y+(v-p.y)*(f-w-r)/f,i=(u-p.x)*w/f,j=(v-p.y)*w/f),!k)switch(m){case"source":k=b.color||n;break;case"target":k=c.color||n;break;default:k=o}d.strokeStyle=k,d.lineWidth=q,d.beginPath(),d.moveTo(s,t),b.id===c.id?d.bezierCurveTo(p.x2,p.y2,p.x1,p.y1,g,h):d.quadraticCurveTo(p.x,p.y,g,h),d.stroke(),d.fillStyle=k,d.beginPath(),d.moveTo(g+i,h+j),d.lineTo(g+.6*j,h-.6*i),d.lineTo(g-.6*j,h+.6*i),d.lineTo(g+i,h+j),d.closePath(),d.fill()}}(),function(){"use strict";sigma.utils.pkg("sigma.canvas.edgehovers"),sigma.canvas.edgehovers.def=function(a,b,c,d,e){var f=a.color,g=e("prefix")||"",h=a[g+"size"]||1,i=e("edgeColor"),j=e("defaultNodeColor"),k=e("defaultEdgeColor");if(!f)switch(i){case"source":f=b.color||j;break;case"target":f=c.color||j;break;default:f=k}f="edge"===e("edgeHoverColor")?a.hover_color||f:a.hover_color||e("defaultEdgeHoverColor")||f,h*=e("edgeHoverSizeRatio"),d.strokeStyle=f,d.lineWidth=h,d.beginPath(),d.moveTo(b[g+"x"],b[g+"y"]),d.lineTo(c[g+"x"],c[g+"y"]),d.stroke()}}(),function(){"use strict";sigma.utils.pkg("sigma.canvas.edgehovers"),sigma.canvas.edgehovers.curve=function(a,b,c,d,e){var f=a.color,g=e("prefix")||"",h=e("edgeHoverSizeRatio")*(a[g+"size"]||1),i=e("edgeColor"),j=e("defaultNodeColor"),k=e("defaultEdgeColor"),l={},m=b[g+"size"],n=b[g+"x"],o=b[g+"y"],p=c[g+"x"],q=c[g+"y"];if(l=b.id===c.id?sigma.utils.getSelfLoopControlPoints(n,o,m):sigma.utils.getQuadraticControlPoint(n,o,p,q),!f)switch(i){case"source":f=b.color||j;break;case"target":f=c.color||j;break;default:f=k}f="edge"===e("edgeHoverColor")?a.hover_color||f:a.hover_color||e("defaultEdgeHoverColor")||f,d.strokeStyle=f,d.lineWidth=h,d.beginPath(),d.moveTo(n,o),b.id===c.id?d.bezierCurveTo(l.x1,l.y1,l.x2,l.y2,p,q):d.quadraticCurveTo(l.x,l.y,p,q),d.stroke()}}(),function(){"use strict";sigma.utils.pkg("sigma.canvas.edgehovers"),sigma.canvas.edgehovers.arrow=function(a,b,c,d,e){var f=a.color,g=e("prefix")||"",h=e("edgeColor"),i=e("defaultNodeColor"),j=e("defaultEdgeColor"),k=a[g+"size"]||1,l=c[g+"size"],m=b[g+"x"],n=b[g+"y"],o=c[g+"x"],p=c[g+"y"]; -k=a.hover?e("edgeHoverSizeRatio")*k:k;var q=2.5*k,r=Math.sqrt(Math.pow(o-m,2)+Math.pow(p-n,2)),s=m+(o-m)*(r-q-l)/r,t=n+(p-n)*(r-q-l)/r,u=(o-m)*q/r,v=(p-n)*q/r;if(!f)switch(h){case"source":f=b.color||i;break;case"target":f=c.color||i;break;default:f=j}f="edge"===e("edgeHoverColor")?a.hover_color||f:a.hover_color||e("defaultEdgeHoverColor")||f,d.strokeStyle=f,d.lineWidth=k,d.beginPath(),d.moveTo(m,n),d.lineTo(s,t),d.stroke(),d.fillStyle=f,d.beginPath(),d.moveTo(s+u,t+v),d.lineTo(s+.6*v,t-.6*u),d.lineTo(s-.6*v,t+.6*u),d.lineTo(s+u,t+v),d.closePath(),d.fill()}}(),function(){"use strict";sigma.utils.pkg("sigma.canvas.edgehovers"),sigma.canvas.edgehovers.curvedArrow=function(a,b,c,d,e){var f,g,h,i,j,k,l=a.color,m=e("prefix")||"",n=e("edgeColor"),o=e("defaultNodeColor"),p=e("defaultEdgeColor"),q={},r=e("edgeHoverSizeRatio")*(a[m+"size"]||1),s=c[m+"size"],t=b[m+"x"],u=b[m+"y"],v=c[m+"x"],w=c[m+"y"];if(q=b.id===c.id?sigma.utils.getSelfLoopControlPoints(t,u,s):sigma.utils.getQuadraticControlPoint(t,u,v,w),b.id===c.id?(f=Math.sqrt(Math.pow(v-q.x1,2)+Math.pow(w-q.y1,2)),g=2.5*r,h=q.x1+(v-q.x1)*(f-g-s)/f,i=q.y1+(w-q.y1)*(f-g-s)/f,j=(v-q.x1)*g/f,k=(w-q.y1)*g/f):(f=Math.sqrt(Math.pow(v-q.x,2)+Math.pow(w-q.y,2)),g=2.5*r,h=q.x+(v-q.x)*(f-g-s)/f,i=q.y+(w-q.y)*(f-g-s)/f,j=(v-q.x)*g/f,k=(w-q.y)*g/f),!l)switch(n){case"source":l=b.color||o;break;case"target":l=c.color||o;break;default:l=p}l="edge"===e("edgeHoverColor")?a.hover_color||l:a.hover_color||e("defaultEdgeHoverColor")||l,d.strokeStyle=l,d.lineWidth=r,d.beginPath(),d.moveTo(t,u),b.id===c.id?d.bezierCurveTo(q.x2,q.y2,q.x1,q.y1,h,i):d.quadraticCurveTo(q.x,q.y,h,i),d.stroke(),d.fillStyle=l,d.beginPath(),d.moveTo(h+j,i+k),d.lineTo(h+.6*k,i-.6*j),d.lineTo(h-.6*k,i+.6*j),d.lineTo(h+j,i+k),d.closePath(),d.fill()}}(),function(a){"use strict";if("undefined"==typeof sigma)throw"sigma is not declared";sigma.utils.pkg("sigma.canvas.extremities"),sigma.canvas.extremities.def=function(a,b,c,d,e){(sigma.canvas.hovers[b.type]||sigma.canvas.hovers.def)(b,d,e),(sigma.canvas.hovers[c.type]||sigma.canvas.hovers.def)(c,d,e)}}.call(this),function(){"use strict";sigma.utils.pkg("sigma.svg.utils"),sigma.svg.utils={show:function(a){return a.style.display="",this},hide:function(a){return a.style.display="none",this}}}(),function(){"use strict";sigma.utils.pkg("sigma.svg.nodes"),sigma.svg.nodes.def={create:function(a,b){var c=(b("prefix")||"",document.createElementNS(b("xmlns"),"circle"));return c.setAttributeNS(null,"data-node-id",a.id),c.setAttributeNS(null,"class",b("classPrefix")+"-node"),c.setAttributeNS(null,"fill",a.color||b("defaultNodeColor")),c},update:function(a,b,c){var d=c("prefix")||"";return b.setAttributeNS(null,"cx",a[d+"x"]),b.setAttributeNS(null,"cy",a[d+"y"]),b.setAttributeNS(null,"r",a[d+"size"]),c("freeStyle")||b.setAttributeNS(null,"fill",a.color||c("defaultNodeColor")),b.style.display="",this}}}(),function(){"use strict";sigma.utils.pkg("sigma.svg.edges"),sigma.svg.edges.def={create:function(a,b,c,d){var e=a.color,f=(d("prefix")||"",d("edgeColor")),g=d("defaultNodeColor"),h=d("defaultEdgeColor");if(!e)switch(f){case"source":e=b.color||g;break;case"target":e=c.color||g;break;default:e=h}var i=document.createElementNS(d("xmlns"),"line");return i.setAttributeNS(null,"data-edge-id",a.id),i.setAttributeNS(null,"class",d("classPrefix")+"-edge"),i.setAttributeNS(null,"stroke",e),i},update:function(a,b,c,d,e){var f=e("prefix")||"";return b.setAttributeNS(null,"stroke-width",a[f+"size"]||1),b.setAttributeNS(null,"x1",c[f+"x"]),b.setAttributeNS(null,"y1",c[f+"y"]),b.setAttributeNS(null,"x2",d[f+"x"]),b.setAttributeNS(null,"y2",d[f+"y"]),b.style.display="",this}}}(),function(){"use strict";sigma.utils.pkg("sigma.svg.edges"),sigma.svg.edges.curve={create:function(a,b,c,d){var e=a.color,f=(d("prefix")||"",d("edgeColor")),g=d("defaultNodeColor"),h=d("defaultEdgeColor");if(!e)switch(f){case"source":e=b.color||g;break;case"target":e=c.color||g;break;default:e=h}var i=document.createElementNS(d("xmlns"),"path");return i.setAttributeNS(null,"data-edge-id",a.id),i.setAttributeNS(null,"class",d("classPrefix")+"-edge"),i.setAttributeNS(null,"stroke",e),i},update:function(a,b,c,d,e){var f=e("prefix")||"";b.setAttributeNS(null,"stroke-width",a[f+"size"]||1);var g=(c[f+"x"]+d[f+"x"])/2+(d[f+"y"]-c[f+"y"])/4,h=(c[f+"y"]+d[f+"y"])/2+(c[f+"x"]-d[f+"x"])/4,i="M"+c[f+"x"]+","+c[f+"y"]+" Q"+g+","+h+" "+d[f+"x"]+","+d[f+"y"];return b.setAttributeNS(null,"d",i),b.setAttributeNS(null,"fill","none"),b.style.display="",this}}}(),function(a){"use strict";if("undefined"==typeof sigma)throw"sigma is not declared";sigma.utils.pkg("sigma.svg.labels"),sigma.svg.labels.def={create:function(a,b){var c=b("prefix")||"",d=a[c+"size"],e=document.createElementNS(b("xmlns"),"text"),f="fixed"===b("labelSize")?b("defaultLabelSize"):b("labelSizeRatio")*d,g="node"===b("labelColor")?a.color||b("defaultNodeColor"):b("defaultLabelColor");return e.setAttributeNS(null,"data-label-target",a.id),e.setAttributeNS(null,"class",b("classPrefix")+"-label"),e.setAttributeNS(null,"font-size",f),e.setAttributeNS(null,"font-family",b("font")),e.setAttributeNS(null,"fill",g),e.innerHTML=a.label,e.textContent=a.label,e},update:function(a,b,c){var d=c("prefix")||"",e=a[d+"size"],f="fixed"===c("labelSize")?c("defaultLabelSize"):c("labelSizeRatio")*e;return!c("forceLabels")&&ed;d++)if(!y[x[d]])throw new Error('The rescale setting "'+x[d]+'" is not recognized.');var z=~x.indexOf("nodePosition"),A=~x.indexOf("nodeSize"),B=~x.indexOf("edgeSize");for(j="outside"===n("scalingMode")?Math.max(v/Math.max(r-p,1),w/Math.max(s-q,1)):Math.min(v/Math.max(r-p,1),w/Math.max(s-q,1)),k=(n("rescaleIgnoreSize")?0:(n("maxNodeSize")||t)/j)+(n("sideMargin")||0),r+=k,p-=k,s+=k,q-=k,j="outside"===n("scalingMode")?Math.max(v/Math.max(r-p,1),w/Math.max(s-q,1)):Math.min(v/Math.max(r-p,1),w/Math.max(s-q,1)),n("maxNodeSize")||n("minNodeSize")?n("maxNodeSize")===n("minNodeSize")?(f=0,g=+n("maxNodeSize")):(f=(n("maxNodeSize")-n("minNodeSize"))/t,g=+n("minNodeSize")):(f=1,g=0),n("maxEdgeSize")||n("minEdgeSize")?n("maxEdgeSize")===n("minEdgeSize")?(h=0,i=+n("minEdgeSize")):(h=(n("maxEdgeSize")-n("minEdgeSize"))/u,i=+n("minEdgeSize")):(h=1,i=0),d=0,e=m.length;e>d;d++)m[d][b+"size"]=m[d][a+"size"]*(B?h:1)+(B?i:0);for(d=0,e=l.length;e>d;d++)l[d][b+"size"]=l[d][a+"size"]*(A?f:1)+(A?g:0),l[d][b+"x"]=(l[d][a+"x"]-(r+p)/2)*(z?j:1),l[d][b+"y"]=(l[d][a+"y"]-(s+q)/2)*(z?j:1)},sigma.utils.getBoundaries=function(a,b,c){var d,e,f=a.edges(),g=a.nodes(),h=-(1/0),i=-(1/0),j=1/0,k=1/0,l=-(1/0),m=-(1/0);if(c)for(d=0,e=f.length;e>d;d++)h=Math.max(f[d][b+"size"],h);for(d=0,e=g.length;e>d;d++)i=Math.max(g[d][b+"size"],i),l=Math.max(g[d][b+"x"],l),j=Math.min(g[d][b+"x"],j),m=Math.max(g[d][b+"y"],m),k=Math.min(g[d][b+"y"],k);return h=h||1,i=i||1,{weightMax:h,sizeMax:i,minX:j,minY:k,maxX:l,maxY:m}}}.call(this),function(a){"use strict";if("undefined"==typeof sigma)throw"sigma is not declared";sigma.utils.pkg("sigma.middlewares"),sigma.middlewares.copy=function(a,b){var c,d,e;if(b+""!=a+""){for(e=this.graph.nodes(),c=0,d=e.length;d>c;c++)e[c][b+"x"]=e[c][a+"x"],e[c][b+"y"]=e[c][a+"y"],e[c][b+"size"]=e[c][a+"size"];for(e=this.graph.edges(),c=0,d=e.length;d>c;c++)e[c][b+"size"]=e[c][a+"size"]}}}.call(this),function(a){"use strict";if("undefined"==typeof sigma)throw"sigma is not declared";sigma.utils.pkg("sigma.misc.animation.running");var b=function(){var a=0;return function(){return""+ ++a}}();sigma.misc.animation.camera=function(c,d,e){if(!(c instanceof sigma.classes.camera&&"object"==typeof d&&d))throw"animation.camera: Wrong arguments.";if("number"!=typeof d.x&&"number"!=typeof d.y&&"number"!=typeof d.ratio&&"number"!=typeof d.angle)throw"There must be at least one valid coordinate in the given val.";var f,g,h,i,j,k,l=e||{},m=sigma.utils.dateNow();return k={x:c.x,y:c.y,ratio:c.ratio,angle:c.angle},j=l.duration,i="function"!=typeof l.easing?sigma.utils.easings[l.easing||"quadraticInOut"]:l.easing,f=function(){var b,e=l.duration?(sigma.utils.dateNow()-m)/l.duration:1;e>=1?(c.isAnimated=!1,c.goTo({x:d.x!==a?d.x:k.x,y:d.y!==a?d.y:k.y,ratio:d.ratio!==a?d.ratio:k.ratio,angle:d.angle!==a?d.angle:k.angle}),cancelAnimationFrame(g),delete sigma.misc.animation.running[g],"function"==typeof l.onComplete&&l.onComplete()):(b=i(e),c.isAnimated=!0,c.goTo({x:d.x!==a?k.x+(d.x-k.x)*b:k.x,y:d.y!==a?k.y+(d.y-k.y)*b:k.y,ratio:d.ratio!==a?k.ratio+(d.ratio-k.ratio)*b:k.ratio,angle:d.angle!==a?k.angle+(d.angle-k.angle)*b:k.angle}),"function"==typeof l.onNewFrame&&l.onNewFrame(),h.frameId=requestAnimationFrame(f))},g=b(),h={frameId:requestAnimationFrame(f),target:c,type:"camera",options:l,fn:f},sigma.misc.animation.running[g]=h,g},sigma.misc.animation.kill=function(a){if(1!==arguments.length||"number"!=typeof a)throw"animation.kill: Wrong arguments.";var b=sigma.misc.animation.running[a];return b&&(cancelAnimationFrame(a),delete sigma.misc.animation.running[b.frameId],"camera"===b.type&&(b.target.isAnimated=!1),"function"==typeof(b.options||{}).onComplete&&b.options.onComplete()),this},sigma.misc.animation.killAll=function(a){var b,c,d=0,e="string"==typeof a?a:null,f="object"==typeof a?a:null,g=sigma.misc.animation.running;for(c in g)e&&g[c].type!==e||f&&g[c].target!==f||(b=sigma.misc.animation.running[c],cancelAnimationFrame(b.frameId),delete sigma.misc.animation.running[c],"camera"===b.type&&(b.target.isAnimated=!1),d++,"function"==typeof(b.options||{}).onComplete&&b.options.onComplete());return d},sigma.misc.animation.has=function(a){var b,c="string"==typeof a?a:null,d="object"==typeof a?a:null,e=sigma.misc.animation.running;for(b in e)if(!(c&&e[b].type!==c||d&&e[b].target!==d))return!0;return!1}}.call(this),function(a){"use strict";if("undefined"==typeof sigma)throw"sigma is not declared";sigma.utils.pkg("sigma.misc"),sigma.misc.bindEvents=function(b){function c(a){a&&(h="x"in a.data?a.data.x:h,i="y"in a.data?a.data.y:i);var c,d,e,f,g,k,l,m,n=[],o=h+j.width/2,p=i+j.height/2,q=j.camera.cameraPosition(h,i),r=j.camera.quadtree.point(q.x,q.y);if(r.length)for(c=0,e=r.length;e>c;c++)if(f=r[c],g=f[b+"x"],k=f[b+"y"],l=f[b+"size"],!f.hidden&&o>g-l&&g+l>o&&p>k-l&&k+l>p&&Math.sqrt(Math.pow(o-g,2)+Math.pow(p-k,2))n[d].size){n.splice(d,0,f),m=!0;break}m||n.push(f)}return n}function d(c){function d(a,b){for(r=!1,g=0;ga[g].size){a.splice(g,0,b),r=!0;break}r||a.push(b)}if(!j.settings("enableEdgeHovering"))return[];var e=sigma.renderers.canvas&&j instanceof sigma.renderers.canvas;if(!e)throw new Error("The edge events feature is not compatible with the WebGL renderer");c&&(h="x"in c.data?c.data.x:h,i="y"in c.data?c.data.y:i);var f,g,k,l,m,n,o,p,q,r,s=j.settings("edgeHoverPrecision"),t={},u=[],v=h+j.width/2,w=i+j.height/2,x=j.camera.cameraPosition(h,i),y=[];if(e){var z=j.camera.quadtree.area(j.camera.getRectangle(j.width,j.height));for(l=z,f=0,k=l.length;k>f;f++)t[l[f].id]=l[f]}if(j.camera.edgequadtree!==a&&(y=j.camera.edgequadtree.point(x.x,x.y)),y.length)for(f=0,k=y.length;k>f;f++)m=y[f],o=j.graph.nodes(m.source),p=j.graph.nodes(m.target),n=m[b+"size"]||m["read_"+b+"size"],!m.hidden&&!o.hidden&&!p.hidden&&(!e||t[m.source]||t[m.target])&&sigma.utils.getDistance(o[b+"x"],o[b+"y"],v,w)>o[b+"size"]&&sigma.utils.getDistance(p[b+"x"],p[b+"y"],v,w)>p[b+"size"]&&("curve"==m.type||"curvedArrow"==m.type?o.id===p.id?(q=sigma.utils.getSelfLoopControlPoints(o[b+"x"],o[b+"y"],o[b+"size"]),sigma.utils.isPointOnBezierCurve(v,w,o[b+"x"],o[b+"y"],p[b+"x"],p[b+"y"],q.x1,q.y1,q.x2,q.y2,Math.max(n,s))&&d(u,m)):(q=sigma.utils.getQuadraticControlPoint(o[b+"x"],o[b+"y"],p[b+"x"],p[b+"y"]),sigma.utils.isPointOnQuadraticCurve(v,w,o[b+"x"],o[b+"y"],p[b+"x"],p[b+"y"],q.x,q.y,Math.max(n,s))&&d(u,m)):sigma.utils.isPointOnSegment(v,w,o[b+"x"],o[b+"y"],p[b+"x"],p[b+"y"],Math.max(n,s))&&d(u,m));return u}function e(a){function b(a){j.settings("eventsEnabled")&&(j.dispatchEvent("click",a.data),i=c(a),k=d(a),i.length?(j.dispatchEvent("clickNode",{node:i[0],captor:a.data}),j.dispatchEvent("clickNodes",{node:i,captor:a.data})):k.length?(j.dispatchEvent("clickEdge",{edge:k[0],captor:a.data}),j.dispatchEvent("clickEdges",{edge:k,captor:a.data})):j.dispatchEvent("clickStage",{captor:a.data}))}function e(a){j.settings("eventsEnabled")&&(j.dispatchEvent("doubleClick",a.data),i=c(a),k=d(a),i.length?(j.dispatchEvent("doubleClickNode",{node:i[0],captor:a.data}),j.dispatchEvent("doubleClickNodes",{node:i,captor:a.data})):k.length?(j.dispatchEvent("doubleClickEdge",{edge:k[0],captor:a.data}),j.dispatchEvent("doubleClickEdges",{edge:k,captor:a.data})):j.dispatchEvent("doubleClickStage",{captor:a.data}))}function f(a){j.settings("eventsEnabled")&&(j.dispatchEvent("rightClick",a.data),i=c(a),k=d(a),i.length?(j.dispatchEvent("rightClickNode",{node:i[0],captor:a.data}),j.dispatchEvent("rightClickNodes",{node:i,captor:a.data})):k.length?(j.dispatchEvent("rightClickEdge",{edge:k[0],captor:a.data}),j.dispatchEvent("rightClickEdges",{edge:k,captor:a.data})):j.dispatchEvent("rightClickStage",{captor:a.data}))}function g(a){if(j.settings("eventsEnabled")){var b,c,d,e,f=[],g=[];for(b in l)f.push(l[b]);for(l={},c=0,d=f.length;d>c;c++)j.dispatchEvent("outNode",{node:f[c],captor:a.data});for(f.length&&j.dispatchEvent("outNodes",{nodes:f,captor:a.data}),m={},c=0,e=g.length;e>c;c++)j.dispatchEvent("outEdge",{edge:g[c],captor:a.data});g.length&&j.dispatchEvent("outEdges",{edges:g,captor:a.data})}}function h(a){if(j.settings("eventsEnabled")){i=c(a),k=d(a);var b,e,f,g,h=[],n=[],o={},p=i.length,q=[],r=[],s={},t=k.length;for(b=0;p>b;b++)f=i[b],o[f.id]=f,l[f.id]||(n.push(f),l[f.id]=f);for(e in l)o[e]||(h.push(l[e]),delete l[e]);for(b=0,p=n.length;p>b;b++)j.dispatchEvent("overNode",{node:n[b],captor:a.data});for(b=0,p=h.length;p>b;b++)j.dispatchEvent("outNode",{node:h[b],captor:a.data});for(n.length&&j.dispatchEvent("overNodes",{nodes:n,captor:a.data}),h.length&&j.dispatchEvent("outNodes",{nodes:h,captor:a.data}),b=0;t>b;b++)g=k[b],s[g.id]=g,m[g.id]||(r.push(g),m[g.id]=g);for(e in m)s[e]||(q.push(m[e]),delete m[e]);for(b=0,t=r.length;t>b;b++)j.dispatchEvent("overEdge",{edge:r[b],captor:a.data});for(b=0,t=q.length;t>b;b++)j.dispatchEvent("outEdge",{edge:q[b],captor:a.data});r.length&&j.dispatchEvent("overEdges",{edges:r,captor:a.data}),q.length&&j.dispatchEvent("outEdges",{edges:q,captor:a.data})}}var i,k,l={},m={};a.bind("click",b),a.bind("mousedown",h),a.bind("mouseup",h),a.bind("mousemove",h),a.bind("mouseout",g),a.bind("doubleclick",e),a.bind("rightclick",f),j.bind("render",h)}var f,g,h,i,j=this;for(f=0,g=this.captors.length;g>f;f++)e(this.captors[f])}}.call(this),function(a){"use strict";if("undefined"==typeof sigma)throw"sigma is not declared";sigma.utils.pkg("sigma.misc"),sigma.misc.bindDOMEvents=function(a){function b(a){this.attr=function(b){return a.getAttributeNS(null,b)},this.tag=a.tagName,this["class"]=this.attr("class"),this.id=this.attr("id"),this.isNode=function(){return!!~this["class"].indexOf(g.settings("classPrefix")+"-node")},this.isEdge=function(){return!!~this["class"].indexOf(g.settings("classPrefix")+"-edge")},this.isHover=function(){return!!~this["class"].indexOf(g.settings("classPrefix")+"-hover")}}function c(a){if(g.settings("eventsEnabled")){g.dispatchEvent("click",a);var c=new b(a.target);c.isNode()?g.dispatchEvent("clickNode",{node:h.nodes(c.attr("data-node-id"))}):g.dispatchEvent("clickStage"),a.preventDefault(),a.stopPropagation()}}function d(a){if(g.settings("eventsEnabled")){g.dispatchEvent("doubleClick",a);var c=new b(a.target);c.isNode()?g.dispatchEvent("doubleClickNode",{node:h.nodes(c.attr("data-node-id"))}):g.dispatchEvent("doubleClickStage"),a.preventDefault(),a.stopPropagation()}}function e(a){var c=a.toElement||a.target;if(g.settings("eventsEnabled")&&c){var d=new b(c);if(d.isNode())g.dispatchEvent("overNode",{node:h.nodes(d.attr("data-node-id"))});else if(d.isEdge()){var e=h.edges(d.attr("data-edge-id"));g.dispatchEvent("overEdge",{edge:e,source:h.nodes(e.source),target:h.nodes(e.target)})}}}function f(a){var c=a.fromElement||a.originalTarget;if(g.settings("eventsEnabled")){var d=new b(c);if(d.isNode())g.dispatchEvent("outNode",{node:h.nodes(d.attr("data-node-id"))});else if(d.isEdge()){var e=h.edges(d.attr("data-edge-id"));g.dispatchEvent("outEdge",{edge:e,source:h.nodes(e.source),target:h.nodes(e.target)})}}}var g=this,h=this.graph;a.addEventListener("click",c,!1),sigma.utils.doubleClick(a,"click",d),a.addEventListener("touchstart",c,!1),sigma.utils.doubleClick(a,"touchstart",d),a.addEventListener("mouseover",e,!0),a.addEventListener("mouseout",f,!0)}}.call(this),function(a){"use strict";if("undefined"==typeof sigma)throw"sigma is not declared";sigma.utils.pkg("sigma.misc"),sigma.misc.drawHovers=function(a){function b(){c.contexts.hover.canvas.width=c.contexts.hover.canvas.width;var b,f,g,h,i,j=c.settings("defaultNodeType"),k=c.settings("defaultEdgeType"),l=sigma.canvas.hovers,m=sigma.canvas.edgehovers,n=sigma.canvas.extremities,o=c.settings.embedObjects({prefix:a});if(o("enableHovering")&&o("singleHover")&&Object.keys(d).length&&(h=d[Object.keys(d)[0]],(l[h.type]||l[j]||l.def)(h,c.contexts.hover,o)),o("enableHovering")&&!o("singleHover"))for(b in d)(l[d[b].type]||l[j]||l.def)(d[b],c.contexts.hover,o);if(o("enableEdgeHovering")&&o("singleHover")&&Object.keys(e).length&&(i=e[Object.keys(e)[0]],f=c.graph.nodes(i.source),g=c.graph.nodes(i.target),i.hidden||((m[i.type]||m[k]||m.def)(i,f,g,c.contexts.hover,o),o("edgeHoverExtremities")?(n[i.type]||n.def)(i,f,g,c.contexts.hover,o):((sigma.canvas.nodes[f.type]||sigma.canvas.nodes.def)(f,c.contexts.hover,o),(sigma.canvas.nodes[g.type]||sigma.canvas.nodes.def)(g,c.contexts.hover,o)))),o("enableEdgeHovering")&&!o("singleHover"))for(b in e)i=e[b],f=c.graph.nodes(i.source),g=c.graph.nodes(i.target),i.hidden||((m[i.type]||m[k]||m.def)(i,f,g,c.contexts.hover,o),o("edgeHoverExtremities")?(n[i.type]||n.def)(i,f,g,c.contexts.hover,o):((sigma.canvas.nodes[f.type]||sigma.canvas.nodes.def)(f,c.contexts.hover,o),(sigma.canvas.nodes[g.type]||sigma.canvas.nodes.def)(g,c.contexts.hover,o)))}var c=this,d={},e={};this.bind("overNode",function(a){var c=a.data.node;c.hidden||(d[c.id]=c,b())}),this.bind("outNode",function(a){delete d[a.data.node.id],b()}),this.bind("overEdge",function(a){var c=a.data.edge;c.hidden||(e[c.id]=c,b())}),this.bind("outEdge",function(a){delete e[a.data.edge.id],b()}),this.bind("render",function(a){b()})}}.call(this); - -/**sigma.plugins.dragNodes**/ -(function(){"use strict";function a(a,b){function c(a){var b=window.getComputedStyle(a),c=function(a){return parseInt(b.getPropertyValue(a).replace("px",""))||0};return{left:a.getBoundingClientRect().left+c("padding-left"),top:a.getBoundingClientRect().top+c("padding-top")}}function d(a){t=!1,l.removeEventListener("mousemove",i),l.removeEventListener("mouseup",h),r.length||(p=null)}function e(a){s[a.data.node.id]||(r.push(a.data.node),s[a.data.node.id]=!0,r.length&&!t&&(p=r[r.length-1],n.addEventListener("mousedown",g)))}function f(a){var b=r.map(function(a){return a}).indexOf(a.data.node);r.splice(b,1),delete s[a.data.node.id],r.length&&!t?p=r[r.length-1]:n.removeEventListener("mousedown",g)}function g(a){t=!0;var b=k.graph.nodes().length;if(p&&b>1){n.removeEventListener("mousedown",g),l.addEventListener("mousemove",i),l.addEventListener("mouseup",h);var c,d;for(c in k.cameras)d=k.cameras[c],void 0!==d.edgequadtree&&(d.edgequadtree._enabled=!1);m.settings({mouseEnabled:!1,enableHovering:!1}),k.refresh(),j.dispatchEvent("startdrag",{node:p,captor:a,renderer:m})}}function h(a){t=!1,n.addEventListener("mousedown",g),l.removeEventListener("mousemove",i),l.removeEventListener("mouseup",h);var b,c;for(b in k.cameras)c=k.cameras[b],void 0!==c.edgequadtree&&(c.edgequadtree._enabled=!0);m.settings({mouseEnabled:!0,enableHovering:!0}),k.refresh(),u&&j.dispatchEvent("drop",{node:p,captor:a,renderer:m}),j.dispatchEvent("dragend",{node:p,captor:a,renderer:m}),u=!1,p=null}function i(a){function b(){for(var b=c(m.container),d=a.clientX-b.left,e=a.clientY-b.top,f=Math.cos(o.angle),g=Math.sin(o.angle),h=k.graph.nodes(),i=[],l=0;2>l;l++){var n=h[l],r={x:n.x*f+n.y*g,y:n.y*f-n.x*g,renX:n[q+"x"],renY:n[q+"y"]};i.push(r)}if(i[0].x===i[1].x&&i[0].y===i[1].y){var s=0===i[0].renX?1:i[0].renX,t=0===i[0].renY?1:i[0].renY;d=i[0].x/s*(d-i[0].renX)+i[0].x,e=i[0].y/t*(e-i[0].renY)+i[0].y}else{var s=(i[1].renX-i[0].renX)/(i[1].x-i[0].x),t=(i[1].renY-i[0].renY)/(i[1].y-i[0].y);i[1].x===i[0].x&&(s=t),i[1].y===i[0].y&&(t=s),d=(d-i[0].renX)/s+i[0].x,e=(e-i[0].renY)/t+i[0].y}p.x=d*f-e*g,p.y=e*f+d*g,k.refresh(),u=!0,j.dispatchEvent("drag",{node:p,captor:a,renderer:m})}if(navigator.userAgent.toLowerCase().indexOf("firefox")>-1){clearTimeout(d);var d=setTimeout(b,0)}else b()}if(sigma.classes.dispatcher.extend(this),sigma.renderers.webgl&&b instanceof sigma.renderers.webgl)throw new Error("The sigma.plugins.dragNodes is not compatible with the WebGL renderer");var j=this,k=a,l=document.body,m=b,n=b.container.lastChild,o=b.camera,p=null,q="",r=[],s={},t=!1,u=!1;b instanceof sigma.renderers.svg&&(n=b.container.firstChild),q=b instanceof sigma.renderers.webgl?b.options.prefix.substr(5):b.options.prefix,b.bind("overNode",e),b.bind("outNode",f),b.bind("click",d),k.bind("kill",function(){j.unbindAll()}),this.unbindAll=function(){n.removeEventListener("mousedown",g),l.removeEventListener("mousemove",i),l.removeEventListener("mouseup",h),m.unbind("overNode",e),m.unbind("outNode",f)}}if("undefined"==typeof sigma)throw"sigma is not declared";sigma.utils.pkg("sigma.plugins");var b={};sigma.plugins.dragNodes=function(c,d){return b[c.id]||(b[c.id]=new a(c,d)),c.bind("kill",function(){sigma.plugins.killDragNodes(c)}),b[c.id]},sigma.plugins.killDragNodes=function(c){b[c.id]instanceof a&&(b[c.id].unbindAll(),delete b[c.id])}}).call(window); - -/**shape-library**/ -(function(c){var b=[];var m=function(o,n,p){b.push({"name":o,"drawShape":n,"drawBorder":p})};var d=function(){return b};var h=function(n){return function(s,o,t,r,p,q){q.fillStyle=p;q.beginPath();n(s,o,t,r,q);q.closePath();q.fill()}};var j=function(n){return function(s,o,t,r,p,q){q.strokeStyle=p;q.lineWidth=r/5;q.beginPath();n(s,o,t,r,q);q.closePath();q.stroke()}};var f=function(s,n,t,r,q){var o=Math.PI*45/180;q.moveTo(n+r*Math.sin(o),t-r*Math.cos(o));for(var p=1;p<4;p++){q.lineTo(n+Math.sin(o+2*Math.PI*p/4)*r,t-Math.cos(o+2*Math.PI*p/4)*r)}};m("square",h(f),j(f));var i=function(q,n,r,p,o){o.arc(n,r,p,0,Math.PI*2,true)};m("circle",h(i),j(i));var a=function(q,n,r,p,o){o.moveTo(n-p,r);o.lineTo(n,r-p);o.lineTo(n+p,r);o.lineTo(n,r+p)};m("diamond",h(a),j(a));var g=function(r,n,s,q,p){var o=(r.cross&&r.cross.lineWeight)||5;p.moveTo(n-q,s-o);p.lineTo(n-q,s+o);p.lineTo(n-o,s+o);p.lineTo(n-o,s+q);p.lineTo(n+o,s+q);p.lineTo(n+o,s+o);p.lineTo(n+q,s+o);p.lineTo(n+q,s-o);p.lineTo(n+o,s-o);p.lineTo(n+o,s-q);p.lineTo(n-o,s-q);p.lineTo(n-o,s-o)};m("cross",h(g),j(g));var e=function(o,t,s,v,n){var u=(o.equilateral&&o.equilateral.numPoints)||5;var p=((o.equilateral&&o.equilateral.rotate)||0)*Math.PI/180;var r=v;n.moveTo(t+r*Math.sin(p),s-r*Math.cos(p));for(var q=1;qg;g++)e.lineTo(b+Math.sin(f+2*Math.PI*g/4)*d,c-Math.cos(f+2*Math.PI*g/4)*d)};c("square",e(g),f(g));var h=function(a,b,c,d,e){e.arc(b,c,d,0,2*Math.PI,!0)};c("circle",e(h),f(h));var i=function(a,b,c,d,e){e.moveTo(b-d,c),e.lineTo(b,c-d),e.lineTo(b+d,c),e.lineTo(b,c+d)};c("diamond",e(i),f(i));var j=function(a,b,c,d,e){var f=a.cross&&a.cross.lineWeight||5;e.moveTo(b-d,c-f),e.lineTo(b-d,c+f),e.lineTo(b-f,c+f),e.lineTo(b-f,c+d),e.lineTo(b+f,c+d),e.lineTo(b+f,c+f),e.lineTo(b+d,c+f),e.lineTo(b+d,c-f),e.lineTo(b+f,c-f),e.lineTo(b+f,c-d),e.lineTo(b-f,c-d),e.lineTo(b-f,c-f)};c("cross",e(j),f(j));var k=function(a,b,c,d,e){var f=a.equilateral&&a.equilateral.numPoints||5,g=(a.equilateral&&a.equilateral.rotate||0)*Math.PI/180,h=d;e.moveTo(b+h*Math.sin(g),c-h*Math.cos(g));for(var i=1;f>i;i++)e.lineTo(b+Math.sin(g+2*Math.PI*i/f)*h,c-Math.cos(g+2*Math.PI*i/f)*h)};c("equilateral",e(k),f(k));var l=function(a,b,c,d,e){var f=a.star&&a.star.numPoints||5,g=a.star&&a.star.innerRatio||.5,h=d,i=d*g,j=Math.PI/f;e.moveTo(b,c-d);for(var k=0;f>k;k++)e.lineTo(b+Math.sin(j+2*Math.PI*k/f)*i,c-Math.cos(j+2*Math.PI*k/f)*i),e.lineTo(b+Math.sin(2*Math.PI*(k+1)/f)*h,c-Math.cos(2*Math.PI*(k+1)/f)*h)};c("star",e(l),f(l));var m=function(a,b,c,d,e,f){f.fillStyle="yellow",f.beginPath(),f.arc(b,c,d,1.25*Math.PI,0,!1),f.arc(b,c,d,0,.75*Math.PI,!1),f.lineTo(b,c),f.closePath(),f.fill(),f.fillStyle="white",f.strokeStyle="black",f.beginPath(),f.arc(b+d/3,c-d/3,d/4,0,2*Math.PI,!1),f.closePath(),f.fill(),f.stroke(),f.fillStyle="black",f.beginPath(),f.arc(b+4*d/9,c-d/3,d/8,0,2*Math.PI,!1),f.closePath(),f.fill()};c("pacman",m,null),this.ShapeLibrary={enumerate:d,version:"0.1"}}).call(this),function(a){"use strict";if("undefined"==typeof sigma)throw"sigma is not declared";if("undefined"==typeof ShapeLibrary)throw"ShapeLibrary is not declared";sigma.utils.pkg("sigma.canvas.nodes"),sigma.utils.pkg("sigma.svg.nodes");var b=a,c={},d=function(a){b=a},e=function(a,d,e,f,g){if(b&&a.image&&a.image.url){var h=a.image.url,i=a.image.h||1,j=a.image.w||1,k=a.image.scale||1,l=a.image.clip||1,m=c[h];m||(m=document.createElement("IMG"),m.src=h,m.status="loading",m.onerror=function(){/*console.log("error loading",h),*/m.status="error"},m.onload=function(){/*console.log("redraw on image load",h),*/m.status="ok",b.refresh()},c[h]=m);var n=i>j?j/i:1,o=j>i?i/j:1,p=f*k;g.save(),g.beginPath(),g.arc(d,e,f*l,0,2*Math.PI,!0),g.closePath(),g.clip(),"ok"===m.status&&g.drawImage(m,d+Math.sin(-0.7855)*p*n,e-Math.cos(-0.7855)*p*o,p*n*2*Math.sin(-0.7855)*-1,p*o*2*Math.cos(-0.7855)),g.restore()}},f=function(a,c,d){if(b&&a.image&&a.image.url){var e=document.createElementNS(d("xmlns"),"circle"),f=document.createElementNS(d("xmlns"),"clipPath"),g=d("classPrefix")+"-clip-path-"+a.id,h=document.createElementNS(d("xmlns"),"defs"),i=document.createElementNS(d("xmlns"),"image");a.image.url;f.setAttributeNS(null,"id",g),f.appendChild(e),h.appendChild(f);var j=/MSIE [5-9]/.test(navigator.userAgent)?"":document.location.href;j=j.split("#")[0],i.setAttributeNS(null,"class",d("classPrefix")+"-node-image"),i.setAttributeNS(null,"clip-path","url("+j+"#"+g+")"),i.setAttributeNS(null,"pointer-events","none"),i.setAttributeNS("http://www.w3.org/1999/xlink","href",a.image.url),c.appendChild(h),c.appendChild(i)}},g=function(a,b,c){sigma.canvas.nodes[a]=function(a,d,f){var g=(arguments,f("prefix")||""),h=a[g+"size"],i=a.color||f("defaultNodeColor"),j=a.borderColor||i,k=a[g+"x"],l=a[g+"y"];d.save(),b&&b(a,k,l,h,i,d),c&&c(a,k,l,h,j,d),e(a,k,l,h,d),d.restore()},sigma.svg.nodes[a]={create:function(a,b){var c=document.createElementNS(b("xmlns"),"g"),d=document.createElementNS(b("xmlns"),"circle");return c.setAttributeNS(null,"class",b("classPrefix")+"-node-group"),c.setAttributeNS(null,"data-node-id",a.id),d.setAttributeNS(null,"data-node-id",a.id),d.setAttributeNS(null,"class",b("classPrefix")+"-node"),d.setAttributeNS(null,"fill",a.color||b("defaultNodeColor")),c.appendChild(d),f(a,c,b),c},update:function(a,b,c){for(var d=c("classPrefix"),e=a.image.clip||1,f=a.image.h||1,g=a.image.w||1,h=c("prefix")||"",i=a.image.scale||1,j=a[h+"size"],k=a[h+"x"],l=a[h+"y"],m=i*j,n=f>g?g/f:1,o=g>f?f/g:1,p=0,q=b.childNodes;p>>2]|=(e[k>>>2]>>>24-8*(k%4)&255)<<24-8*((j+k)%4);else if(65535>>2]=e[k>>>2];else c.push.apply(c,e);this.sigBytes+=a;return this},clamp:function(){var a=this.words,c=this.sigBytes;a[c>>>2]&=4294967295<< -32-8*(c%4);a.length=u.ceil(c/4)},clone:function(){var a=t.clone.call(this);a.words=this.words.slice(0);return a},random:function(a){for(var c=[],e=0;e>>2]>>>24-8*(j%4)&255;e.push((k>>>4).toString(16));e.push((k&15).toString(16))}return e.join("")},parse:function(a){for(var c=a.length,e=[],j=0;j>>3]|=parseInt(a.substr(j, -2),16)<<24-4*(j%8);return new r.init(e,c/2)}},b=w.Latin1={stringify:function(a){var c=a.words;a=a.sigBytes;for(var e=[],j=0;j>>2]>>>24-8*(j%4)&255));return e.join("")},parse:function(a){for(var c=a.length,e=[],j=0;j>>2]|=(a.charCodeAt(j)&255)<<24-8*(j%4);return new r.init(e,c)}},x=w.Utf8={stringify:function(a){try{return decodeURIComponent(escape(b.stringify(a)))}catch(c){throw Error("Malformed UTF-8 data");}},parse:function(a){return b.parse(unescape(encodeURIComponent(a)))}}, -q=l.BufferedBlockAlgorithm=t.extend({reset:function(){this._data=new r.init;this._nDataBytes=0},_append:function(a){"string"==typeof a&&(a=x.parse(a));this._data.concat(a);this._nDataBytes+=a.sigBytes},_process:function(a){var c=this._data,e=c.words,j=c.sigBytes,k=this.blockSize,b=j/(4*k),b=a?u.ceil(b):u.max((b|0)-this._minBufferSize,0);a=b*k;j=u.min(4*a,j);if(a){for(var q=0;q>>2]>>>24-8*(r%4)&255)<<16|(l[r+1>>>2]>>>24-8*((r+1)%4)&255)<<8|l[r+2>>>2]>>>24-8*((r+2)%4)&255,v=0;4>v&&r+0.75*v>>6*(3-v)&63));if(l=t.charAt(64))for(;d.length%4;)d.push(l);return d.join("")},parse:function(d){var l=d.length,s=this._map,t=s.charAt(64);t&&(t=d.indexOf(t),-1!=t&&(l=t));for(var t=[],r=0,w=0;w< -l;w++)if(w%4){var v=s.indexOf(d.charAt(w-1))<<2*(w%4),b=s.indexOf(d.charAt(w))>>>6-2*(w%4);t[r>>>2]|=(v|b)<<24-8*(r%4);r++}return p.create(t,r)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}})(); -(function(u){function p(b,n,a,c,e,j,k){b=b+(n&a|~n&c)+e+k;return(b<>>32-j)+n}function d(b,n,a,c,e,j,k){b=b+(n&c|a&~c)+e+k;return(b<>>32-j)+n}function l(b,n,a,c,e,j,k){b=b+(n^a^c)+e+k;return(b<>>32-j)+n}function s(b,n,a,c,e,j,k){b=b+(a^(n|~c))+e+k;return(b<>>32-j)+n}for(var t=CryptoJS,r=t.lib,w=r.WordArray,v=r.Hasher,r=t.algo,b=[],x=0;64>x;x++)b[x]=4294967296*u.abs(u.sin(x+1))|0;r=r.MD5=v.extend({_doReset:function(){this._hash=new w.init([1732584193,4023233417,2562383102,271733878])}, -_doProcessBlock:function(q,n){for(var a=0;16>a;a++){var c=n+a,e=q[c];q[c]=(e<<8|e>>>24)&16711935|(e<<24|e>>>8)&4278255360}var a=this._hash.words,c=q[n+0],e=q[n+1],j=q[n+2],k=q[n+3],z=q[n+4],r=q[n+5],t=q[n+6],w=q[n+7],v=q[n+8],A=q[n+9],B=q[n+10],C=q[n+11],u=q[n+12],D=q[n+13],E=q[n+14],x=q[n+15],f=a[0],m=a[1],g=a[2],h=a[3],f=p(f,m,g,h,c,7,b[0]),h=p(h,f,m,g,e,12,b[1]),g=p(g,h,f,m,j,17,b[2]),m=p(m,g,h,f,k,22,b[3]),f=p(f,m,g,h,z,7,b[4]),h=p(h,f,m,g,r,12,b[5]),g=p(g,h,f,m,t,17,b[6]),m=p(m,g,h,f,w,22,b[7]), -f=p(f,m,g,h,v,7,b[8]),h=p(h,f,m,g,A,12,b[9]),g=p(g,h,f,m,B,17,b[10]),m=p(m,g,h,f,C,22,b[11]),f=p(f,m,g,h,u,7,b[12]),h=p(h,f,m,g,D,12,b[13]),g=p(g,h,f,m,E,17,b[14]),m=p(m,g,h,f,x,22,b[15]),f=d(f,m,g,h,e,5,b[16]),h=d(h,f,m,g,t,9,b[17]),g=d(g,h,f,m,C,14,b[18]),m=d(m,g,h,f,c,20,b[19]),f=d(f,m,g,h,r,5,b[20]),h=d(h,f,m,g,B,9,b[21]),g=d(g,h,f,m,x,14,b[22]),m=d(m,g,h,f,z,20,b[23]),f=d(f,m,g,h,A,5,b[24]),h=d(h,f,m,g,E,9,b[25]),g=d(g,h,f,m,k,14,b[26]),m=d(m,g,h,f,v,20,b[27]),f=d(f,m,g,h,D,5,b[28]),h=d(h,f, -m,g,j,9,b[29]),g=d(g,h,f,m,w,14,b[30]),m=d(m,g,h,f,u,20,b[31]),f=l(f,m,g,h,r,4,b[32]),h=l(h,f,m,g,v,11,b[33]),g=l(g,h,f,m,C,16,b[34]),m=l(m,g,h,f,E,23,b[35]),f=l(f,m,g,h,e,4,b[36]),h=l(h,f,m,g,z,11,b[37]),g=l(g,h,f,m,w,16,b[38]),m=l(m,g,h,f,B,23,b[39]),f=l(f,m,g,h,D,4,b[40]),h=l(h,f,m,g,c,11,b[41]),g=l(g,h,f,m,k,16,b[42]),m=l(m,g,h,f,t,23,b[43]),f=l(f,m,g,h,A,4,b[44]),h=l(h,f,m,g,u,11,b[45]),g=l(g,h,f,m,x,16,b[46]),m=l(m,g,h,f,j,23,b[47]),f=s(f,m,g,h,c,6,b[48]),h=s(h,f,m,g,w,10,b[49]),g=s(g,h,f,m, -E,15,b[50]),m=s(m,g,h,f,r,21,b[51]),f=s(f,m,g,h,u,6,b[52]),h=s(h,f,m,g,k,10,b[53]),g=s(g,h,f,m,B,15,b[54]),m=s(m,g,h,f,e,21,b[55]),f=s(f,m,g,h,v,6,b[56]),h=s(h,f,m,g,x,10,b[57]),g=s(g,h,f,m,t,15,b[58]),m=s(m,g,h,f,D,21,b[59]),f=s(f,m,g,h,z,6,b[60]),h=s(h,f,m,g,C,10,b[61]),g=s(g,h,f,m,j,15,b[62]),m=s(m,g,h,f,A,21,b[63]);a[0]=a[0]+f|0;a[1]=a[1]+m|0;a[2]=a[2]+g|0;a[3]=a[3]+h|0},_doFinalize:function(){var b=this._data,n=b.words,a=8*this._nDataBytes,c=8*b.sigBytes;n[c>>>5]|=128<<24-c%32;var e=u.floor(a/ -4294967296);n[(c+64>>>9<<4)+15]=(e<<8|e>>>24)&16711935|(e<<24|e>>>8)&4278255360;n[(c+64>>>9<<4)+14]=(a<<8|a>>>24)&16711935|(a<<24|a>>>8)&4278255360;b.sigBytes=4*(n.length+1);this._process();b=this._hash;n=b.words;for(a=0;4>a;a++)c=n[a],n[a]=(c<<8|c>>>24)&16711935|(c<<24|c>>>8)&4278255360;return b},clone:function(){var b=v.clone.call(this);b._hash=this._hash.clone();return b}});t.MD5=v._createHelper(r);t.HmacMD5=v._createHmacHelper(r)})(Math); -(function(){var u=CryptoJS,p=u.lib,d=p.Base,l=p.WordArray,p=u.algo,s=p.EvpKDF=d.extend({cfg:d.extend({keySize:4,hasher:p.MD5,iterations:1}),init:function(d){this.cfg=this.cfg.extend(d)},compute:function(d,r){for(var p=this.cfg,s=p.hasher.create(),b=l.create(),u=b.words,q=p.keySize,p=p.iterations;u.length>>2]&255}};d.BlockCipher=v.extend({cfg:v.cfg.extend({mode:b,padding:q}),reset:function(){v.reset.call(this);var a=this.cfg,b=a.iv,a=a.mode;if(this._xformMode==this._ENC_XFORM_MODE)var c=a.createEncryptor;else c=a.createDecryptor,this._minBufferSize=1;this._mode=c.call(a, -this,b&&b.words)},_doProcessBlock:function(a,b){this._mode.processBlock(a,b)},_doFinalize:function(){var a=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){a.pad(this._data,this.blockSize);var b=this._process(!0)}else b=this._process(!0),a.unpad(b);return b},blockSize:4});var n=d.CipherParams=l.extend({init:function(a){this.mixIn(a)},toString:function(a){return(a||this.formatter).stringify(this)}}),b=(p.format={}).OpenSSL={stringify:function(a){var b=a.ciphertext;a=a.salt;return(a?s.create([1398893684, -1701076831]).concat(a).concat(b):b).toString(r)},parse:function(a){a=r.parse(a);var b=a.words;if(1398893684==b[0]&&1701076831==b[1]){var c=s.create(b.slice(2,4));b.splice(0,4);a.sigBytes-=16}return n.create({ciphertext:a,salt:c})}},a=d.SerializableCipher=l.extend({cfg:l.extend({format:b}),encrypt:function(a,b,c,d){d=this.cfg.extend(d);var l=a.createEncryptor(c,d);b=l.finalize(b);l=l.cfg;return n.create({ciphertext:b,key:c,iv:l.iv,algorithm:a,mode:l.mode,padding:l.padding,blockSize:a.blockSize,formatter:d.format})}, -decrypt:function(a,b,c,d){d=this.cfg.extend(d);b=this._parse(b,d.format);return a.createDecryptor(c,d).finalize(b.ciphertext)},_parse:function(a,b){return"string"==typeof a?b.parse(a,this):a}}),p=(p.kdf={}).OpenSSL={execute:function(a,b,c,d){d||(d=s.random(8));a=w.create({keySize:b+c}).compute(a,d);c=s.create(a.words.slice(b),4*c);a.sigBytes=4*b;return n.create({key:a,iv:c,salt:d})}},c=d.PasswordBasedCipher=a.extend({cfg:a.cfg.extend({kdf:p}),encrypt:function(b,c,d,l){l=this.cfg.extend(l);d=l.kdf.execute(d, -b.keySize,b.ivSize);l.iv=d.iv;b=a.encrypt.call(this,b,c,d.key,l);b.mixIn(d);return b},decrypt:function(b,c,d,l){l=this.cfg.extend(l);c=this._parse(c,l.format);d=l.kdf.execute(d,b.keySize,b.ivSize,c.salt);l.iv=d.iv;return a.decrypt.call(this,b,c,d.key,l)}})}(); -(function(){for(var u=CryptoJS,p=u.lib.BlockCipher,d=u.algo,l=[],s=[],t=[],r=[],w=[],v=[],b=[],x=[],q=[],n=[],a=[],c=0;256>c;c++)a[c]=128>c?c<<1:c<<1^283;for(var e=0,j=0,c=0;256>c;c++){var k=j^j<<1^j<<2^j<<3^j<<4,k=k>>>8^k&255^99;l[e]=k;s[k]=e;var z=a[e],F=a[z],G=a[F],y=257*a[k]^16843008*k;t[e]=y<<24|y>>>8;r[e]=y<<16|y>>>16;w[e]=y<<8|y>>>24;v[e]=y;y=16843009*G^65537*F^257*z^16843008*e;b[k]=y<<24|y>>>8;x[k]=y<<16|y>>>16;q[k]=y<<8|y>>>24;n[k]=y;e?(e=z^a[a[a[G^z]]],j^=a[a[j]]):e=j=1}var H=[0,1,2,4,8, -16,32,64,128,27,54],d=d.AES=p.extend({_doReset:function(){for(var a=this._key,c=a.words,d=a.sigBytes/4,a=4*((this._nRounds=d+6)+1),e=this._keySchedule=[],j=0;j>>24]<<24|l[k>>>16&255]<<16|l[k>>>8&255]<<8|l[k&255]):(k=k<<8|k>>>24,k=l[k>>>24]<<24|l[k>>>16&255]<<16|l[k>>>8&255]<<8|l[k&255],k^=H[j/d|0]<<24);e[j]=e[j-d]^k}c=this._invKeySchedule=[];for(d=0;dd||4>=j?k:b[l[k>>>24]]^x[l[k>>>16&255]]^q[l[k>>> -8&255]]^n[l[k&255]]},encryptBlock:function(a,b){this._doCryptBlock(a,b,this._keySchedule,t,r,w,v,l)},decryptBlock:function(a,c){var d=a[c+1];a[c+1]=a[c+3];a[c+3]=d;this._doCryptBlock(a,c,this._invKeySchedule,b,x,q,n,s);d=a[c+1];a[c+1]=a[c+3];a[c+3]=d},_doCryptBlock:function(a,b,c,d,e,j,l,f){for(var m=this._nRounds,g=a[b]^c[0],h=a[b+1]^c[1],k=a[b+2]^c[2],n=a[b+3]^c[3],p=4,r=1;r>>24]^e[h>>>16&255]^j[k>>>8&255]^l[n&255]^c[p++],s=d[h>>>24]^e[k>>>16&255]^j[n>>>8&255]^l[g&255]^c[p++],t= -d[k>>>24]^e[n>>>16&255]^j[g>>>8&255]^l[h&255]^c[p++],n=d[n>>>24]^e[g>>>16&255]^j[h>>>8&255]^l[k&255]^c[p++],g=q,h=s,k=t;q=(f[g>>>24]<<24|f[h>>>16&255]<<16|f[k>>>8&255]<<8|f[n&255])^c[p++];s=(f[h>>>24]<<24|f[k>>>16&255]<<16|f[n>>>8&255]<<8|f[g&255])^c[p++];t=(f[k>>>24]<<24|f[n>>>16&255]<<16|f[g>>>8&255]<<8|f[h&255])^c[p++];n=(f[n>>>24]<<24|f[g>>>16&255]<<16|f[h>>>8&255]<<8|f[k&255])^c[p++];a[b]=q;a[b+1]=s;a[b+2]=t;a[b+3]=n},keySize:8});u.AES=p._createHelper(d)})(); diff --git a/openo-portal/portal-common/src/main/webapp/common/js/security/framework-util.js b/openo-portal/portal-common/src/main/webapp/common/js/security/framework-util.js deleted file mode 100644 index 8299fdca..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/js/security/framework-util.js +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -function ict_framework_func1(word){ - var a1 = CryptoJS.enc.Utf8.parse(ict_framework_aes_a1); - var a2 = CryptoJS.enc.Utf8.parse(ict_framework_aes_a2); - var srcs = CryptoJS.enc.Utf8.parse(word); - var encrypted = CryptoJS.AES.encrypt(srcs, a1, { iv: a2,mode:CryptoJS.mode.CBC}); - return encrypted.toString(); -} - -function ict_framework_func2(word){ - var a1 = CryptoJS.enc.Utf8.parse(ict_framework_aes_a1); - var a2 = CryptoJS.enc.Utf8.parse(ict_framework_aes_a2); - var decrypt = CryptoJS.AES.decrypt(word, a1, { iv: a2,mode:CryptoJS.mode.CBC}); - return CryptoJS.enc.Utf8.stringify(decrypt).toString(); -} - - - - - - - -var ict_framework_aes_a1 = "9763853428462486"; -var ict_framework_aes_a2 = "9763853428462486"; \ No newline at end of file diff --git a/openo-portal/portal-common/src/main/webapp/common/js/security/security.js b/openo-portal/portal-common/src/main/webapp/common/js/security/security.js deleted file mode 100644 index f4a759ee..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/js/security/security.js +++ /dev/null @@ -1,127 +0,0 @@ -/* - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -var ErrResult_LOGIN_SUCCESS = 0; -var ErrResult_LOGIN_FAILURE = 4; -var ErrResult_LOGIN_SUCCESS_WARN = 1; -var ErrResult_LOGIN_SUCCESS_PASSWORD_WARN = 2; -var ErrResult_LOGIN_SUCCESS_PASSWORD_MUSTCHANGE = 3; -var ErrResult_LOGIN_SERV_ERROR = -1; - -function processLoginResult(data,params){ - if(data.home="web/res/web-framework/index.html"||data.home.indexOf("index.html")>0){ - data.home=FrameConst.DEFAULT_PAGE; - //下面这部分是为了演示需要临时增加的自动切换 - /*if(params.username=="admin1"){ - data.home="/web/res/web-framework/default.html?menu=1"; - }else if(params.username=="admin2"){ - data.home="/web/res/web-framework/default.html?menu=2"; - }else if(params.username=="admin3"){ - data.home="/web/res/web-framework/default.html?menu=3"; - }else if(params.username=="admin4"){ - data.home="/web/res/web-framework/default.html?menu=4"; - }else if(params.username=="admin5"){ - data.home="/web/res/web-framework/default.html?menu=5"; - }else if(params.username=="admin6"){ - data.home="/web/res/web-framework/default.html?menu=6"; - }else if(params.username=="admin7"){ - data.home="/web/res/web-framework/default.html?menu=7"; - }*/ - } - var toHomePage = function(){ - location.href = data.home; - } - - var loginHander = function(inParams){ - if(inParams != undefined){ - login(inParams); - } - else{ - login(params); - } - } - - var errors = data.detail; - if(data.result == 0){ - store('username',params.username); - if(errors){ - if(errors.code==ErrResult_LOGIN_SUCCESS_PASSWORD_WARN){ - - com_zte_ums_aos_portal_PasswordDialog.create({ - ID : "LOGIN_MODIFY_PASSWORD", - username : params.username, - oldPassword : ict_framework_func2(params.password), - descLabel : errors[ErrResult_LOGIN_SUCCESS_PASSWORD_WARN], - cancelHander : toHomePage, - confirmHander : toHomePage - }); - LOGIN_MODIFY_PASSWORD.show(); - } - else if(errors.code==ErrResult_LOGIN_SUCCESS_WARN){ - window.alert(errors[ErrResult_LOGIN_SUCCESS_WARN],toHomePage); - } - else { - location.href = data.home; - } - } - else { - location.href = data.home; - } - } - else { - if(errors.code==ErrResult_LOGIN_SUCCESS_PASSWORD_MUSTCHANGE){ - com_zte_ums_aos_portal_PasswordDialog.create({ - ID : "LOGIN_MODIFY_PASSWORD", - username : params.username, - oldPassword : ict_framework_func2(params.password), - descLabel : errors[ErrResult_LOGIN_SUCCESS_PASSWORD_MUSTCHANGE], - confirmHander : loginHander - - }); - LOGIN_MODIFY_PASSWORD.show(); - } - else if(errors.code==ErrResult_LOGIN_FAILURE){ - $("#nameOrpwdError").addClass('alert-danger'); - $("#com_zte_ums_ict_portal_login_userPassword").html(errors[ErrResult_LOGIN_FAILURE]); - var tip = $("#nameOrpwdError"); - if (tip.attr("tipstatus") == "normal") { - tip.show(); - } else if (tip.attr("tipstatus") == "close") { - tip.attr("tipstatus", "normal"); - } - // if(0 < $("#inputPassword").length){ - // $("#inputPassword")[0].value = ""; - // } - } - else if(errors.code==ErrResult_LOGIN_SERV_ERROR){ - $("#loginConnError").addClass('alert-danger'); - var tip = $("#loginConnError"); - if (tip.attr("tipstatus") == "normal") { - tip.show(); - } else if (tip.attr("tipstatus") == "close") { - tip.attr("tipstatus", "normal"); - } - } - } -} -function login(params){ - $.post("login",{ - username : params.username, - password : params.password, - isEncypted:true - },function(data){ - processLoginResult(data,params); - },"json"); -} diff --git a/openo-portal/portal-common/src/main/webapp/common/js/tools.js b/openo-portal/portal-common/src/main/webapp/common/js/tools.js deleted file mode 100644 index 6ecc9603..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/js/tools.js +++ /dev/null @@ -1,1021 +0,0 @@ -/* - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -;(function(window, define) { - var _ = { - version: "2.3.0", - areas: {}, - apis: {}, - - // utilities - inherit: function(api, o) { - for (var p in api) { - if (!o.hasOwnProperty(p)) { - o[p] = api[p]; - } - } - return o; - }, - stringify: function(d) { - return d === undefined || typeof d === "function" ? d+'' : JSON.stringify(d); - }, - parse: function(s) { - // if it doesn't parse, return as is - try{ return JSON.parse(s); }catch(e){ return s; } - }, - - // extension hooks - fn: function(name, fn) { - _.storeAPI[name] = fn; - for (var api in _.apis) { - _.apis[api][name] = fn; - } - }, - get: function(area, key){ return area.getItem(key); }, - set: function(area, key, string){ area.setItem(key, string); }, - remove: function(area, key){ area.removeItem(key); }, - key: function(area, i){ return area.key(i); }, - length: function(area){ return area.length; }, - clear: function(area){ area.clear(); }, - - // core functions - Store: function(id, area, namespace) { - var store = _.inherit(_.storeAPI, function(key, data, overwrite) { - if (arguments.length === 0){ return store.getAll(); } - if (data !== undefined){ return store.set(key, data, overwrite); } - if (typeof key === "string"){ return store.get(key); } - if (!key){ return store.clear(); } - return store.setAll(key, data);// overwrite=data, data=key - }); - store._id = id; - try { - var testKey = '_safariPrivate_'; - area.setItem(testKey, 'sucks'); - store._area = area; - area.removeItem(testKey); - } catch (e) {} - if (!store._area) { - store._area = _.inherit(_.storageAPI, { items: {}, name: 'fake' }); - } - store._ns = namespace || ''; - if (!_.areas[id]) { - _.areas[id] = store._area; - } - if (!_.apis[store._ns+store._id]) { - _.apis[store._ns+store._id] = store; - } - return store; - }, - storeAPI: { - // admin functions - area: function(id, area) { - var store = this[id]; - if (!store || !store.area) { - store = _.Store(id, area, this._ns);//new area-specific api in this namespace - if (!this[id]){ this[id] = store; } - } - return store; - }, - namespace: function(namespace, noSession) { - if (!namespace){ - return this._ns ? this._ns.substring(0,this._ns.length-1) : ''; - } - var ns = namespace, store = this[ns]; - if (!store || !store.namespace) { - store = _.Store(this._id, this._area, this._ns+ns+'.');//new namespaced api - if (!this[ns]){ this[ns] = store; } - if (!noSession){ store.area('session', _.areas.session); } - } - return store; - }, - isFake: function(){ return this._area.name === 'fake'; }, - toString: function() { - return 'store'+(this._ns?'.'+this.namespace():'')+'['+this._id+']'; - }, - - // storage functions - has: function(key) { - if (this._area.has) { - return this._area.has(this._in(key));//extension hook - } - return !!(this._in(key) in this._area); - }, - size: function(){ return this.keys().length; }, - each: function(fn, and) { - for (var i=0, m=_.length(this._area); i _.length(this._area)) { m--; i--; }// in case of removeItem - } - return and || this; - }, - keys: function() { - return this.each(function(k, list){ list.push(k); }, []); - }, - get: function(key, alt) { - var s = _.get(this._area, this._in(key)); - return s !== null ? _.parse(s) : alt || s;// support alt for easy default mgmt - }, - getAll: function() { - return this.each(function(k, all){ all[k] = this.get(k); }, {}); - }, - set: function(key, data, overwrite) { - var d = this.get(key); - if (d != null && overwrite === false) { - return data; - } - return _.set(this._area, this._in(key), _.stringify(data), overwrite) || d; - }, - setAll: function(data, overwrite) { - var changed, val; - for (var key in data) { - val = data[key]; - if (this.set(key, val, overwrite) !== val) { - changed = true; - } - } - return changed; - }, - remove: function(key) { - var d = this.get(key); - _.remove(this._area, this._in(key)); - return d; - }, - clear: function() { - if (!this._ns) { - _.clear(this._area); - } else { - this.each(function(k){ _.remove(this._area, this._in(k)); }, 1); - } - return this; - }, - clearAll: function() { - var area = this._area; - for (var id in _.areas) { - if (_.areas.hasOwnProperty(id)) { - this._area = _.areas[id]; - this.clear(); - } - } - this._area = area; - return this; - }, - - // internal use functions - _in: function(k) { - if (typeof k !== "string"){ k = _.stringify(k); } - return this._ns ? this._ns + k : k; - }, - _out: function(k) { - return this._ns ? - k && k.indexOf(this._ns) === 0 ? - k.substring(this._ns.length) : - undefined : // so each() knows to skip it - k; - } - },// end _.storeAPI - storageAPI: { - length: 0, - has: function(k){ return this.items.hasOwnProperty(k); }, - key: function(i) { - var c = 0; - for (var k in this.items){ - if (this.has(k) && i === c++) { - return k; - } - } - }, - setItem: function(k, v) { - if (!this.has(k)) { - this.length++; - } - this.items[k] = v; - }, - removeItem: function(k) { - if (this.has(k)) { - delete this.items[k]; - this.length--; - } - }, - getItem: function(k){ return this.has(k) ? this.items[k] : null; }, - clear: function(){ for (var k in this.list){ this.removeItem(k); } }, - toString: function(){ return this.length+' items in '+this.name+'Storage'; } - }// end _.storageAPI - }; - - // setup the primary store fn - if (window.store){ _.conflict = window.store; } - var store = - // safely set this up (throws error in IE10/32bit mode for local files) - _.Store("local", (function(){try{ return localStorage; }catch(e){}})()); - store.local = store;// for completeness - store._ = _;// for extenders and debuggers... - // safely setup store.session (throws exception in FF for file:/// urls) - store.area("session", (function(){try{ return sessionStorage; }catch(e){}})()); - - //Expose store to the global object - window.store = store; - - if (typeof define === 'function' && define.amd !== undefined) { - define(function () { - return store; - }); - } else if (typeof module !== 'undefined' && module.exports) { - module.exports = store; - } - -})(this, null); - -// XHook - v1.3.3 - https://github.com/jpillora/xhook -// Jaime Pillora - MIT Copyright 2015 -(function(window,undefined) { -var AFTER, BEFORE, COMMON_EVENTS, EventEmitter, FIRE, FormData, NativeFormData, NativeXMLHttp, OFF, ON, READY_STATE, UPLOAD_EVENTS, XHookFormData, XHookHttpRequest, XMLHTTP, convertHeaders, depricatedProp, document, fakeEvent, mergeObjects, msie, proxyEvents, slice, xhook, _base, - __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }; - -document = window.document; - -BEFORE = 'before'; - -AFTER = 'after'; - -READY_STATE = 'readyState'; - -ON = 'addEventListener'; - -OFF = 'removeEventListener'; - -FIRE = 'dispatchEvent'; - -XMLHTTP = 'XMLHttpRequest'; - -FormData = 'FormData'; - -UPLOAD_EVENTS = ['load', 'loadend', 'loadstart']; - -COMMON_EVENTS = ['progress', 'abort', 'error', 'timeout']; - -msie = parseInt((/msie (\d+)/.exec(navigator.userAgent.toLowerCase()) || [])[1]); - -if (isNaN(msie)) { - msie = parseInt((/trident\/.*; rv:(\d+)/.exec(navigator.userAgent.toLowerCase()) || [])[1]); -} - -(_base = Array.prototype).indexOf || (_base.indexOf = function(item) { - var i, x, _i, _len; - for (i = _i = 0, _len = this.length; _i < _len; i = ++_i) { - x = this[i]; - if (x === item) { - return i; - } - } - return -1; -}); - -slice = function(o, n) { - return Array.prototype.slice.call(o, n); -}; - -depricatedProp = function(p) { - return p === "returnValue" || p === "totalSize" || p === "position"; -}; - -mergeObjects = function(src, dst) { - var k, v; - for (k in src) { - v = src[k]; - if (depricatedProp(k)) { - continue; - } - try { - dst[k] = src[k]; - } catch (_error) {} - } - return dst; -}; - -proxyEvents = function(events, src, dst) { - var event, p, _i, _len; - p = function(event) { - return function(e) { - var clone, k, val; - clone = {}; - for (k in e) { - if (depricatedProp(k)) { - continue; - } - val = e[k]; - clone[k] = val === src ? dst : val; - } - return dst[FIRE](event, clone); - }; - }; - for (_i = 0, _len = events.length; _i < _len; _i++) { - event = events[_i]; - if (dst._has(event)) { - src["on" + event] = p(event); - } - } -}; - -fakeEvent = function(type) { - var msieEventObject; - if (document.createEventObject != null) { - msieEventObject = document.createEventObject(); - msieEventObject.type = type; - return msieEventObject; - } else { - try { - return new Event(type); - } catch (_error) { - return { - type: type - }; - } - } -}; - -EventEmitter = function(nodeStyle) { - var emitter, events, listeners; - events = {}; - listeners = function(event) { - return events[event] || []; - }; - emitter = {}; - emitter[ON] = function(event, callback, i) { - events[event] = listeners(event); - if (events[event].indexOf(callback) >= 0) { - return; - } - i = i === undefined ? events[event].length : i; - events[event].splice(i, 0, callback); - }; - emitter[OFF] = function(event, callback) { - var i; - if (event === undefined) { - events = {}; - return; - } - if (callback === undefined) { - events[event] = []; - } - i = listeners(event).indexOf(callback); - if (i === -1) { - return; - } - listeners(event).splice(i, 1); - }; - emitter[FIRE] = function() { - var args, event, i, legacylistener, listener, _i, _len, _ref; - args = slice(arguments); - event = args.shift(); - if (!nodeStyle) { - args[0] = mergeObjects(args[0], fakeEvent(event)); - } - legacylistener = emitter["on" + event]; - if (legacylistener) { - legacylistener.apply(undefined, args); - } - _ref = listeners(event).concat(listeners("*")); - for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) { - listener = _ref[i]; - listener.apply(undefined, args); - } - }; - emitter._has = function(event) { - return !!(events[event] || emitter["on" + event]); - }; - if (nodeStyle) { - emitter.listeners = function(event) { - return slice(listeners(event)); - }; - emitter.on = emitter[ON]; - emitter.off = emitter[OFF]; - emitter.fire = emitter[FIRE]; - emitter.once = function(e, fn) { - var fire; - fire = function() { - emitter.off(e, fire); - return fn.apply(null, arguments); - }; - return emitter.on(e, fire); - }; - emitter.destroy = function() { - return events = {}; - }; - } - return emitter; -}; - -xhook = EventEmitter(true); - -xhook.EventEmitter = EventEmitter; - -xhook[BEFORE] = function(handler, i) { - if (handler.length < 1 || handler.length > 2) { - throw "invalid hook"; - } - return xhook[ON](BEFORE, handler, i); -}; - -xhook[AFTER] = function(handler, i) { - if (handler.length < 2 || handler.length > 3) { - throw "invalid hook"; - } - return xhook[ON](AFTER, handler, i); -}; - -xhook.enable = function() { - window[XMLHTTP] = XHookHttpRequest; - if (NativeFormData) { - window[FormData] = XHookFormData; - } -}; - -xhook.disable = function() { - window[XMLHTTP] = xhook[XMLHTTP]; - window[FormData] = NativeFormData; -}; - -convertHeaders = xhook.headers = function(h, dest) { - var header, headers, k, name, v, value, _i, _len, _ref; - if (dest == null) { - dest = {}; - } - switch (typeof h) { - case "object": - headers = []; - for (k in h) { - v = h[k]; - name = k.toLowerCase(); - headers.push("" + name + ":\t" + v); - } - return headers.join('\n'); - case "string": - headers = h.split('\n'); - for (_i = 0, _len = headers.length; _i < _len; _i++) { - header = headers[_i]; - if (/([^:]+):\s*(.+)/.test(header)) { - name = (_ref = RegExp.$1) != null ? _ref.toLowerCase() : void 0; - value = RegExp.$2; - if (dest[name] == null) { - dest[name] = value; - } - } - } - return dest; - } -}; - -NativeFormData = window[FormData]; - -XHookFormData = function(form) { - var entries; - this.fd = form ? new NativeFormData(form) : new NativeFormData(); - this.form = form; - entries = []; - Object.defineProperty(this, 'entries', { - get: function() { - var fentries; - fentries = !form ? [] : slice(form.querySelectorAll("input,select")).filter(function(e) { - var _ref; - return ((_ref = e.type) !== 'checkbox' && _ref !== 'radio') || e.checked; - }).map(function(e) { - return [e.name, e.type === "file" ? e.files : e.value]; - }); - return fentries.concat(entries); - } - }); - this.append = (function(_this) { - return function() { - var args; - args = slice(arguments); - entries.push(args); - return _this.fd.append.apply(_this.fd, args); - }; - })(this); -}; - -if (NativeFormData) { - xhook[FormData] = NativeFormData; - window[FormData] = XHookFormData; -} - -NativeXMLHttp = window[XMLHTTP]; - -xhook[XMLHTTP] = NativeXMLHttp; - -XHookHttpRequest = window[XMLHTTP] = function() { - var ABORTED, currentState, emitFinal, emitReadyState, facade, hasError, hasErrorHandler, readBody, readHead, request, response, setReadyState, status, transiting, writeBody, writeHead, xhr; - ABORTED = -1; - xhr = new xhook[XMLHTTP](); - request = {}; - status = null; - hasError = void 0; - transiting = void 0; - response = void 0; - readHead = function() { - var key, name, val, _ref; - response.status = status || xhr.status; - if (!(status === ABORTED && msie < 10)) { - response.statusText = xhr.statusText; - } - if (status !== ABORTED) { - _ref = convertHeaders(xhr.getAllResponseHeaders()); - for (key in _ref) { - val = _ref[key]; - if (!response.headers[key]) { - name = key.toLowerCase(); - response.headers[name] = val; - } - } - } - }; - readBody = function() { - if (!xhr.responseType || xhr.responseType === "text") { - response.text = xhr.responseText; - response.data = xhr.responseText; - } else if (xhr.responseType === "document") { - response.xml = xhr.responseXML; - response.data = xhr.responseXML; - } else { - response.data = xhr.response; - } - if ("responseURL" in xhr) { - response.finalUrl = xhr.responseURL; - } - }; - writeHead = function() { - facade.status = response.status; - facade.statusText = response.statusText; - }; - writeBody = function() { - if ('text' in response) { - facade.responseText = response.text; - } - if ('xml' in response) { - facade.responseXML = response.xml; - } - if ('data' in response) { - facade.response = response.data; - } - if ('finalUrl' in response) { - facade.responseURL = response.finalUrl; - } - }; - emitReadyState = function(n) { - while (n > currentState && currentState < 4) { - facade[READY_STATE] = ++currentState; - if (currentState === 1) { - facade[FIRE]("loadstart", {}); - } - if (currentState === 2) { - writeHead(); - } - if (currentState === 4) { - writeHead(); - writeBody(); - } - facade[FIRE]("readystatechange", {}); - if (currentState === 4) { - setTimeout(emitFinal, 0); - } - } - }; - emitFinal = function() { - if (!hasError) { - facade[FIRE]("load", {}); - } - facade[FIRE]("loadend", {}); - if (hasError) { - facade[READY_STATE] = 0; - } - }; - currentState = 0; - setReadyState = function(n) { - var hooks, process; - if (n !== 4) { - emitReadyState(n); - return; - } - hooks = xhook.listeners(AFTER); - process = function() { - var hook; - if (!hooks.length) { - return emitReadyState(4); - } - hook = hooks.shift(); - if (hook.length === 2) { - hook(request, response); - return process(); - } else if (hook.length === 3 && request.async) { - return hook(request, response, process); - } else { - return process(); - } - }; - process(); - }; - facade = request.xhr = EventEmitter(); - xhr.onreadystatechange = function(event) { - try { - if (xhr[READY_STATE] === 2) { - readHead(); - } - } catch (_error) {} - if (xhr[READY_STATE] === 4) { - transiting = false; - readHead(); - readBody(); - } - setReadyState(xhr[READY_STATE]); - }; - hasErrorHandler = function() { - hasError = true; - }; - facade[ON]('error', hasErrorHandler); - facade[ON]('timeout', hasErrorHandler); - facade[ON]('abort', hasErrorHandler); - facade[ON]('progress', function() { - if (currentState < 3) { - setReadyState(3); - } else { - facade[FIRE]("readystatechange", {}); - } - }); - if ('withCredentials' in xhr || xhook.addWithCredentials) { - facade.withCredentials = false; - } - facade.status = 0; - facade.open = function(method, url, async, user, pass) { - currentState = 0; - hasError = false; - transiting = false; - request.headers = {}; - request.headerNames = {}; - request.status = 0; - response = {}; - response.headers = {}; - request.method = method; - request.url = url; - request.async = async !== false; - request.user = user; - request.pass = pass; - setReadyState(1); - }; - facade.send = function(body) { - var hooks, k, modk, process, send, _i, _len, _ref; - _ref = ['type', 'timeout', 'withCredentials']; - if(navigator.userAgent.indexOf("Firefox/") != -1){http://atmosphere-framework.2306103.n4.nabble.com/Atmosphere-js-withCredentials-true-does-not-work-in-Firefox-td4656661.html - _ref = ['type', 'timeout']; - } - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - k = _ref[_i]; - modk = k === "type" ? "responseType" : k; - if (modk in facade) { - request[k] = facade[modk]; - } - } - request.body = body; - send = function() { - var header, value, _j, _len1, _ref1, _ref2; - proxyEvents(COMMON_EVENTS, xhr, facade); - if (facade.upload) { - proxyEvents(COMMON_EVENTS.concat(UPLOAD_EVENTS), xhr.upload, facade.upload); - } - transiting = true; - xhr.open(request.method, request.url, request.async, request.user, request.pass); - _ref1 = ['type', 'timeout', 'withCredentials']; - if(navigator.userAgent.indexOf("Firefox/") != -1){//http://atmosphere-framework.2306103.n4.nabble.com/Atmosphere-js-withCredentials-true-does-not-work-in-Firefox-td4656661.html - _ref1 = ['type', 'timeout']; - } - for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) { - k = _ref1[_j]; - modk = k === "type" ? "responseType" : k; - if (k in request) { - xhr[modk] = request[k]; - } - } - _ref2 = request.headers; - for (header in _ref2) { - value = _ref2[header]; - xhr.setRequestHeader(header, value); - } - if (request.body instanceof XHookFormData) { - request.body = request.body.fd; - } - xhr.send(request.body); - }; - hooks = xhook.listeners(BEFORE); - process = function() { - var done, hook; - if (!hooks.length) { - return send(); - } - done = function(userResponse) { - if (typeof userResponse === 'object' && (typeof userResponse.status === 'number' || typeof response.status === 'number')) { - mergeObjects(userResponse, response); - if (__indexOf.call(userResponse, 'data') < 0) { - userResponse.data = userResponse.response || userResponse.text; - } - setReadyState(4); - return; - } - process(); - }; - done.head = function(userResponse) { - mergeObjects(userResponse, response); - return setReadyState(2); - }; - done.progress = function(userResponse) { - mergeObjects(userResponse, response); - return setReadyState(3); - }; - hook = hooks.shift(); - if (hook.length === 1) { - return done(hook(request)); - } else if (hook.length === 2 && request.async) { - return hook(request, done); - } else { - return done(); - } - }; - process(); - }; - facade.abort = function() { - status = ABORTED; - if (transiting) { - xhr.abort(); - } else { - facade[FIRE]('abort', {}); - } - }; - facade.setRequestHeader = function(header, value) { - var lName, name; - lName = header != null ? header.toLowerCase() : void 0; - name = request.headerNames[lName] = request.headerNames[lName] || header; - if (request.headers[name]) { - value = request.headers[name] + ', ' + value; - } - request.headers[name] = value; - }; - facade.getResponseHeader = function(header) { - var name; - name = header != null ? header.toLowerCase() : void 0; - return response.headers[name]; - }; - facade.getAllResponseHeaders = function() { - return convertHeaders(response.headers); - }; - if (xhr.overrideMimeType) { - facade.overrideMimeType = function() { - return xhr.overrideMimeType.apply(xhr, arguments); - }; - } - if (xhr.upload) { - facade.upload = request.upload = EventEmitter(); - } - return facade; -}; -/* -if (typeof this.define === "function" && this.define.amd) { - define("xhook", [], function() { - return xhook; - }); -} else {*/ - (this.exports || this).xhook = xhook; -//} - -}.call(this,window)); - -xhook.before(function(request) { - var zte_headers = store('zte_http_headers'); - if (zte_headers && zte_headers.length > 0) { - for (i = 0; i < zte_headers.length; i++) { - if (zte_headers[i].store === true) { - if ( !! store(zte_headers[i].value)) { - request.headers[zte_headers[i].key] = store(zte_headers[i].value).toUpperCase() - } - } else { - request.headers[zte_headers[i].key] = zte_headers[i].value - } - } - } -}); -/** - * 初始化脚本文件装载工具 - * zongying 2010.12 - * modify: - */ -$Boot = {}; - -/** - * 创建命名空间 - * @param {Object} name - * @param {Object} object - */ -$Boot.createNamespace = function(name, object) { - var splits = name.split("."); - var parent = window; - //document.window浏览器内置对象 - var part = splits[0]; - for (var i = 0, len = splits.length - 1; i < len; i++, part = splits[i]) { - if (!parent[part]) { - parent = parent[part] = {}; - } else { - parent = parent[part]; - } - } - // 存放对象 - parent[part] = object; - // 返回 last part name (例如:classname) - return part; -} - -$Boot.isDefined = function(o) { - return typeof (o) != "undefined" -} -/** - * 启动配置类 - */ -$Boot.Config = function() { - - function isDefined(o) { - return typeof (o) != "undefined" - } - - //用户应用当前目录 - if (!isDefined(window.$userAppDir)) { - window.$userAppDir = './' - } - //组件库目录 - if (!isDefined(window.$userFrameDir)) { - window.$userFrameDir = '/common/' - } - //用户i18文件目录 - if (!isDefined(window.$userI18nDir)) { - window.$userI18nDir = './' - } - - //当前语言 默认为英语 - var language = "en-US"; - //var languageList = ['ar', 'ba', 'cr', 'cs', 'de', 'el', 'es', 'fi', 'fr', 'fr-FR', 'hu-HU', 'id', 'it', 'ja', 'nb-NO', 'nl', 'pl', 'pl-PL', 'pt', 'pt-BR', 'ro-RO', 'ru-RU', 'sk', 'sr', 'sr-Latn', 'sv-SE', 'en-US','uk-UA', 'zh-CN', 'zh-TW']; - var languageList = ['en-US', 'zh-CN']; - - //从服务端取客户端接受语言类型 - var getAcceptLangFromServer = true; - - - /** - * 创建XMLHttpRequest对象 - */ - function createXMLHttpRequest() { - if (window.ActiveXObject) { - return new ActiveXObject("Microsoft.XMLHTTP"); - } else if (window.XMLHttpRequest) { - return new XMLHttpRequest(); - } else { - throw new Error("This Brower do not support XMLHTTP!!"); - } - } - - - /** - * 同步发送xml http 请求 - * @param {Object} url - * @param {Object} data - * @param {Object} method - */ - function httpRequest(method, url, data) { - var xmlhttp; - xmlhttp = createXMLHttpRequest(); - var sendData = null; - if (method == "get") { - url = url + "?" + data; - - } else if (method == "post") { - sendData = data; - } - xmlhttp.open(method, url, false); - xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"); - xmlhttp.setRequestHeader("If-Modified-Since", "0"); - xmlhttp.send(sendData); - if (xmlhttp.status == 200) - return xmlhttp.responseText; - } - - /** - * 同步发送xml http 请求(给外部调用) - * @param {Object} url - * @param {Object} data - * @param {Object} method - */ - this.httpRequestStatic = function(method, url, data) { - var xmlhttp; - xmlhttp = createXMLHttpRequest(); - var sendData = null; - if (method == "get") { - url = url + "?" + data; - - } else if (method == "post") { - sendData = data; - } - xmlhttp.open(method, url, false); - xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"); - xmlhttp.setRequestHeader("If-Modified-Since", "0"); - xmlhttp.send(sendData); - if (xmlhttp.status == 200) - return xmlhttp.responseText; - } - - function inArray(array, obj) { - for (var i = 0; i < array.length; i++) { - if (array[i] == obj) { - return true; - } - } - return false; - - } - - - this.getUrlParam=function(name){ - var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象 - var search =decodeURIComponent(location.search.substring(1)); //decodeURIComponent() 函数可对 encodeURIComponent() 函数编码的 URI 进行解码。 - var r =search.match(reg); //匹配目标参数 - if (r != null) return unescape(r[2]); //unescape() 函数可对通过 escape() 编码的字符串进行解码。 - return null; //返回参数值 - } - - -} - -//创建命名空间 -$Boot.createNamespace("com.zte.ums.aos.framework.BootConfig", $Boot.Config); -//创建基础配置对象实例 -$Boot.bootConfig = new com.zte.ums.aos.framework.BootConfig(); - -function getLanguage(){ - return "en-US"; -} - -function getStringWidth(text,fontSize) -{ - var span = document.getElementById("_ictframework_getwidth"); - if (span == null) { - span = document.createElement("span"); - span.id = "_ictframework_getwidth"; - document.body.appendChild(span); - } - span.innerText = text; - span.style.whiteSpace = "nowrap"; - $("#_ictframework_getwidth").attr('style','font-size:'+fontSize+'px;'); - var width = span.offsetWidth; - $("#_ictframework_getwidth").attr('style','display:none'); - return width; -} - -function getUrlParam(name){ - return $Boot.bootConfig.getUrlParam(name); -} - -function httpRequest(method, url, data) { - return $Boot.bootConfig.httpRequestStatic(method, url, data) -} - -// 定义JQUERY AJAX 完成函数,判断返回状态,如果状态正常,但HEADER头里有session超时信息,则刷新重登录 -// 如果状态为 401, 也刷新重登录 -// 注意如果在$.ajax() 函数中定义了 complete,则覆盖了这里预定义complete内容,以$.ajax()函数中定义的为准,这里预定义的函数则失效,如果 -// 要继续判断session超时,则需要在 $.ajax()函数中定义的complete函数中加入这里预定义内容。 -if (jQuery) { - $.ajaxSetup({ - complete:function(XMLHttpRequest,textStatus){ - if (XMLHttpRequest.status == 401) { - window.location.replace("login.html"); - } - // if (XMLHttpRequest.status == 200) { - // var sessionstatus=XMLHttpRequest.getResponseHeader("sessionstatus"); ////通过XMLHttpRequest取得响应头,sessionstatus, - // if(sessionstatus=="timeout"){ - // window.location.replace("/"); - // } - // } else if (XMLHttpRequest.status == 401) { - // window.location.replace("/"); - // } - } - }); -} diff --git a/openo-portal/portal-common/src/main/webapp/common/json/License.txt b/openo-portal/portal-common/src/main/webapp/common/json/License.txt deleted file mode 100644 index d1ce787a..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/json/License.txt +++ /dev/null @@ -1,362 +0,0 @@ -THIS LICENSE FILE CONTAINS THE LICENSE APPLICABLE DEPENDING ON THE TYPE OF CONTRIBUTIONS. - -APACHE LICENSE 2 IS APPLICABLE FOR SOURCE CODE, CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL FOR DOCUMENTATION - -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - - -Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - -"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - -"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - -"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - -"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - -"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - -"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - -"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - -"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - -"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - -"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - -2. Grant of Copyright License. - -Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. - -Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - -4. Redistribution. - -You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - -You must give any other recipients of the Work or Derivative Works a copy of this License; and You must cause any modified files to carry prominent notices stating that You changed the files; and You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - -5. Submission of Contributions. - -Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - -6. Trademarks. - -This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. - -Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. - -In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. - -While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS - -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - -Attribution 4.0 International - -https://creativecommons.org/licenses/by/4.0/legalcode - -Creative Commons Corporation ("Creative Commons") is not a law firm and does not provide legal services or legal advice. Distribution of Creative Commons public licenses does not create a lawyer-client or other relationship. Creative Commons makes its licenses and related information available on an "as-is" basis. Creative Commons gives no warranties regarding its licenses, any material licensed under their terms and conditions, or any related information. Creative Commons disclaims all liability for damages resulting from their use to the fullest extent possible. - -Using Creative Commons Public Licenses - -Creative Commons public licenses provide a standard set of terms and conditions that creators and other rights holders may use to share original works of authorship and other material subject to copyright and certain other rights specified in the public license below. The following considerations are for informational purposes only, are not exhaustive, and do not form part of our licenses. - - Considerations for licensors: Our public licenses are - intended for use by those authorized to give the public - permission to use material in ways otherwise restricted by - copyright and certain other rights. Our licenses are - irrevocable. Licensors should read and understand the terms - and conditions of the license they choose before applying it. - Licensors should also secure all rights necessary before - applying our licenses so that the public can reuse the - material as expected. Licensors should clearly mark any - material not subject to the license. This includes other CC- - licensed material, or material used under an exception or - limitation to copyright. More considerations for licensors: - wiki.creativecommons.org/Considerations_for_licensors - Considerations for the public: By using one of our public - licenses, a licensor grants the public permission to use the - licensed material under specified terms and conditions. If - the licensor's permission is not necessary for any reason--for - example, because of any applicable exception or limitation to - copyright--then that use is not regulated by the license. Our - licenses grant only permissions under copyright and certain - other rights that a licensor has authority to grant. Use of - the licensed material may still be restricted for other - reasons, including because others have copyright or other - rights in the material. A licensor may make special requests, - such as asking that all changes be marked or described. - Although not required by our licenses, you are encouraged to - respect those requests where reasonable. More_considerations - for the public: - wiki.creativecommons.org/Considerations_for_licensees -Creative Commons Attribution 4.0 International Public License - -By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions. - - -Section 1 -- Definitions. - - a. Adapted Material means material subject to Copyright and Similar - Rights that is derived from or based upon the Licensed Material - and in which the Licensed Material is translated, altered, - arranged, transformed, or otherwise modified in a manner requiring - permission under the Copyright and Similar Rights held by the - Licensor. For purposes of this Public License, where the Licensed - Material is a musical work, performance, or sound recording, - Adapted Material is always produced where the Licensed Material is - synched in timed relation with a moving image. - b. Adapter's License means the license You apply to Your Copyright - and Similar Rights in Your contributions to Adapted Material in - accordance with the terms and conditions of this Public License. - c. Copyright and Similar Rights means copyright and/or similar rights - closely related to copyright including, without limitation, - performance, broadcast, sound recording, and Sui Generis Database - Rights, without regard to how the rights are labeled or - categorized. For purposes of this Public License, the rights - specified in Section 2(b)(1)-(2) are not Copyright and Similar - Rights. - d. Effective Technological Measures means those measures that, in the - absence of proper authority, may not be circumvented under laws - fulfilling obligations under Article 11 of the WIPO Copyright - Treaty adopted on December 20, 1996, and/or similar international - agreements. - e. Exceptions and Limitations means fair use, fair dealing, and/or - any other exception or limitation to Copyright and Similar Rights - that applies to Your use of the Licensed Material. - f. Licensed Material means the artistic or literary work, database, - or other material to which the Licensor applied this Public - License. - g. Licensed Rights means the rights granted to You subject to the - terms and conditions of this Public License, which are limited to - all Copyright and Similar Rights that apply to Your use of the - Licensed Material and that the Licensor has authority to license. - h. Licensor means the individual(s) or entity(ies) granting rights - under this Public License. - i. Share means to provide material to the public by any means or - process that requires permission under the Licensed Rights, such - as reproduction, public display, public performance, distribution, - dissemination, communication, or importation, and to make material - available to the public including in ways that members of the - public may access the material from a place and at a time - individually chosen by them. - j. Sui Generis Database Rights means rights other than copyright - resulting from Directive 96/9/EC of the European Parliament and of - the Council of 11 March 1996 on the legal protection of databases, - as amended and/or succeeded, as well as other essentially - equivalent rights anywhere in the world. - k. You means the individual or entity exercising the Licensed Rights - under this Public License. Your has a corresponding meaning. - -Section 2 -- Scope. - - a. License grant. - 1. Subject to the terms and conditions of this Public License, - the Licensor hereby grants You a worldwide, royalty-free, - non-sublicensable, non-exclusive, irrevocable license to - exercise the Licensed Rights in the Licensed Material to: - a. reproduce and Share the Licensed Material, in whole or - in part; and - b. produce, reproduce, and Share Adapted Material. - 2. Exceptions and Limitations. For the avoidance of doubt, where - Exceptions and Limitations apply to Your use, this Public - License does not apply, and You do not need to comply with - its terms and conditions. - 3. Term. The term of this Public License is specified in Section - 6(a). - 4. Media and formats; technical modifications allowed. The - Licensor authorizes You to exercise the Licensed Rights in - all media and formats whether now known or hereafter created, - and to make technical modifications necessary to do so. The - Licensor waives and/or agrees not to assert any right or - authority to forbid You from making technical modifications - necessary to exercise the Licensed Rights, including - technical modifications necessary to circumvent Effective - Technological Measures. For purposes of this Public License, - simply making modifications authorized by this Section 2(a) - (4) never produces Adapted Material. - 5. Downstream recipients. - a. Offer from the Licensor -- Licensed Material. Every - recipient of the Licensed Material automatically - receives an offer from the Licensor to exercise the - Licensed Rights under the terms and conditions of this - Public License. - b. No downstream restrictions. You may not offer or impose - any additional or different terms or conditions on, or - apply any Effective Technological Measures to, the - Licensed Material if doing so restricts exercise of the - Licensed Rights by any recipient of the Licensed - Material. - 6. No endorsement. Nothing in this Public License constitutes or - may be construed as permission to assert or imply that You - are, or that Your use of the Licensed Material is, connected - with, or sponsored, endorsed, or granted official status by, - the Licensor or others designated to receive attribution as - provided in Section 3(a)(1)(A)(i). - b. Other rights. - 1. Moral rights, such as the right of integrity, are not - licensed under this Public License, nor are publicity, - privacy, and/or other similar personality rights; however, to - the extent possible, the Licensor waives and/or agrees not to - assert any such rights held by the Licensor to the limited - extent necessary to allow You to exercise the Licensed - Rights, but not otherwise. - 2. Patent and trademark rights are not licensed under this - Public License. - 3. To the extent possible, the Licensor waives any right to - collect royalties from You for the exercise of the Licensed - Rights, whether directly or through a collecting society - under any voluntary or waivable statutory or compulsory - licensing scheme. In all other cases the Licensor expressly - reserves any right to collect such royalties. - -Section 3 -- License Conditions. - -Your exercise of the Licensed Rights is expressly made subject to the following conditions. - - a. Attribution. - 1. If You Share the Licensed Material (including in modified - form), You must: - a. retain the following if it is supplied by the Licensor - with the Licensed Material: - i. identification of the creator(s) of the Licensed - Material and any others designated to receive - attribution, in any reasonable manner requested by - the Licensor (including by pseudonym if - designated); - ii. a copyright notice; - iii. a notice that refers to this Public License; - iv. a notice that refers to the disclaimer of - warranties; - v. a URI or hyperlink to the Licensed Material to the - extent reasonably practicable; - b. indicate if You modified the Licensed Material and - retain an indication of any previous modifications; and - c. indicate the Licensed Material is licensed under this - Public License, and include the text of, or the URI or - hyperlink to, this Public License. - 2. You may satisfy the conditions in Section 3(a)(1) in any - reasonable manner based on the medium, means, and context in - which You Share the Licensed Material. For example, it may be - reasonable to satisfy the conditions by providing a URI or - hyperlink to a resource that includes the required - information. - 3. If requested by the Licensor, You must remove any of the - information required by Section 3(a)(1)(A) to the extent - reasonably practicable. - 4. If You Share Adapted Material You produce, the Adapter's - License You apply must not prevent recipients of the Adapted - Material from complying with this Public License. - -Section 4 -- Sui Generis Database Rights. - -Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material: - - a. for the avoidance of doubt, Section 2(a)(1) grants You the right - to extract, reuse, reproduce, and Share all or a substantial - portion of the contents of the database; - b. if You include all or a substantial portion of the database - contents in a database in which You have Sui Generis Database - Rights, then the database in which You have Sui Generis Database - Rights (but not its individual contents) is Adapted Material; and - c. You must comply with the conditions in Section 3(a) if You Share - all or a substantial portion of the contents of the database. -For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights. - - -Section 5 -- Disclaimer of Warranties and Limitation of Liability. - - a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE - EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS - AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF - ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, - IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, - WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR - PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, - ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT - KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT - ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. - b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE - TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, - NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, - INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, - COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR - USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN - ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR - DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR - IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. - c. The disclaimer of warranties and limitation of liability provided - above shall be interpreted in a manner that, to the extent - possible, most closely approximates an absolute disclaimer and - waiver of all liability. - -Section 6 -- Term and Termination. - - a. This Public License applies for the term of the Copyright and - Similar Rights licensed here. However, if You fail to comply with - this Public License, then Your rights under this Public License - terminate automatically. - b. Where Your right to use the Licensed Material has terminated under - Section 6(a), it reinstates: - 1. automatically as of the date the violation is cured, provided - it is cured within 30 days of Your discovery of the - violation; or - 2. upon express reinstatement by the Licensor. - For the avoidance of doubt, this Section 6(b) does not affect any - right the Licensor may have to seek remedies for Your violations - of this Public License. - c. For the avoidance of doubt, the Licensor may also offer the - Licensed Material under separate terms or conditions or stop - distributing the Licensed Material at any time; however, doing so - will not terminate this Public License. - d. Sections 1, 5, 6, 7, and 8 survive termination of this Public - License. - -Section 7 -- Other Terms and Conditions. - - a. The Licensor shall not be bound by any additional or different - terms or conditions communicated by You unless expressly agreed. - b. Any arrangements, understandings, or agreements regarding the - Licensed Material not stated herein are separate from and - independent of the terms and conditions of this Public License. - -Section 8 -- Interpretation. - - a. For the avoidance of doubt, this Public License does not, and - shall not be interpreted to, reduce, limit, restrict, or impose - conditions on any use of the Licensed Material that could lawfully - be made without permission under this Public License. - b. To the extent possible, if any provision of this Public License is - deemed unenforceable, it shall be automatically reformed to the - minimum extent necessary to make it enforceable. If the provision - cannot be reformed, it shall be severed from this Public License - without affecting the enforceability of the remaining terms and - conditions. - c. No term or condition of this Public License will be waived and no - failure to comply consented to unless expressly agreed to by the - Licensor. - d. Nothing in this Public License constitutes or may be interpreted - as a limitation upon, or waiver of, any privileges and immunities - that apply to the Licensor or You, including from the legal - processes of any jurisdiction or authority. -Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the "Licensor." The text of the Creative Commons public licenses is dedicated to the public domain under the CC0 Public Domain Dedication. Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at creativecommons.org/policies, Creative Commons does not authorize the use of the trademark "Creative Commons" or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses. - -Creative Commons may be contacted at creativecommons.org. \ No newline at end of file diff --git a/openo-portal/portal-common/src/main/webapp/common/json/main_page.json b/openo-portal/portal-common/src/main/webapp/common/json/main_page.json deleted file mode 100644 index d0851d77..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/json/main_page.json +++ /dev/null @@ -1,96 +0,0 @@ -{ - "modules":[ - { - "cover":"org_openo_orchestrator_framework_main_page_service", - "background":"skyBlue-mainpage", - "toolsImage":"toolsImageBrokenLine", - "url":"", - "linkId":"openo-nsoc-template", - "contentTip":"" - }, - { - "cover":"org_openo_orchestrator_framework_main_page_cloud", - "background":"golden-mainpage", - "toolsImage":"toolsImageHierachy", - "url":"", - "linkId":"openo-roc-vim", - "contentTip":"" - }, - { - "cover":"", - "background":"manLieONCloud-image", - "toolsImage":"", - "url":"", - "contentTip":"" - }, - { - "cover":"org_openo_orchestrator_framework_main_page_orchestrator", - "background":"orange-mainpage", - "toolsImage":"toolsImageGear", - "url":"", - "linkId":"openo-nsoc-vApp", - "contentTip":"" - }, - { - "cover":"org_openo_orchestrator_framework_main_page_monitor", - "background":"pinkishRed-mainpage", - "toolsImage":"toolsImagePresent", - "url":"", - "linkId":"openo-umc-monitor-setting", - "contentTip":"" - }, - { - "cover":"", - "background":"magicCube-image", - "toolsImage":"", - "url":"", - "contentTip":"" - }, - { - "cover":"org_openo_orchestrator_framework_main_page_resource", - "background":"grassGreen-mainpage", - "toolsImage":"toolsImageFile", - "url":"", - "linkId":"openo-roc-rs-view-overview", - "contentTip":"" - }, - { - "cover":"", - "background":"meeting-image", - "toolsImage":"", - "url":"", - "contentTip":"" - }, - { - "cover":"", - "background":"earth-image", - "toolsImage":"", - "url":"", - "contentTip":"" - }, - { - "cover":"org_openo_orchestrator_framework_main_page_design", - "background":"orange-mainpage", - "toolsImage":"toolsImageGear", - "url":"", - "linkId":"openo-nsoc-model-design", - "contentTip":"" - }, - { - "cover":"org_openo_orchestrator_framework_main_page_alarm", - "background":"skyBlue-mainpage", - "toolsImage":"toolsImageBriefcase", - "url":"", - "linkId":"openo-umc-monitor-alarm-currentAlarm", - "contentTip":"" - }, - { - "cover":"org_openo_orchestrator_framework_main_page_performance", - "background":"pinkishRed-mainpage", - "toolsImage":"toolsImagePresent", - "url":"", - "linkId":"openo-umc-monitor-pm-historyQuery", - "contentTip":"" - } - ] -} \ No newline at end of file diff --git a/openo-portal/portal-common/src/main/webapp/common/json/menu_list.json b/openo-portal/portal-common/src/main/webapp/common/json/menu_list.json deleted file mode 100644 index 5e7944e7..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/json/menu_list.json +++ /dev/null @@ -1,119 +0,0 @@ -{ - "parentMenus":[ - { - "id":"openo_menu_service", - "url":"", - "iconClass":"fa fa-comments" - }, - { - "id":"openo_menu_resource_mgr", - "url":"", - "iconClass":"fa fa-folder-open-o" - }, - { - "id":"openo_menu_user", - "url":"", - "iconClass":"fa fa-puzzle-piece" - }, - { - "id":"openo_menu_orchestrator", - "url":"", - "iconClass":"fa fa-folder-open-o" - }, - { - "id":"openo_menu_manage_view", - "url":"", - "iconClass":"fa fa-coffee" - }, - { - "id":"openo_menu_performance", - "url":"", - "iconClass":"fa fa-bar-chart" - }, - { - "id":"openo_menu_monitor", - "url":"", - "iconClass":"fa fa-desktop" - } - ], - "childMenus":[ - { - "parentId":"openo_menu_service", - "id":"openo_menu_service_service_management", - "url":"../lifecyclemgr/gsolcmmain.html", - "iconClass":"fa fa-comments" - }, - { - "parentId":"openo_menu_resource_mgr", - "id":"openo_menu_resource_mgr_sdno", - "url":"../resmgr-sdn/resource.html", - "iconClass":"fa fa-folder-open-o" - }, - { - "parentId":"openo_menu_resource_mgr", - "id":"openo_menu_resource_mgr_nfvo", - "url":"../resmgr-nfv/resource.html", - "iconClass":"fa fa-folder-open-o" - }, - { - "parentId":"openo_menu_user", - "id":"openo_menu_user_user_management", - "url":"../user/user.html", - "iconClass":"fa fa-puzzle-piece" - }, - { - "parentId":"openo_menu_orchestrator", - "id":"openo_menu_orchestrator_model_design", - "url":"/winery/servicetemplates.html", - "iconClass":"fa fa-folder-open-o" - }, - { - "parentId":"openo_menu_orchestrator", - "id":"openo_menu_orchestrator_package", - "url":"../catalog/csarPackage.html", - "iconClass":"fa fa-folder-open-o" - }, - { - "parentId":"openo_menu_orchestrator", - "id":"openo_menu_orchestrator_service_template", - "url":"../catalog/template.html", - "iconClass":"fa fa-list-alt" - }, - { - "parentId":"openo_menu_manage_view", - "id":"openo_menu_manage_view_vim_manage", - "url":"../extsys/vim/vimView.html", - "iconClass":"fa fa-coffee" - }, - { - "parentId":"openo_menu_manage_view", - "id":"openo_menu_manage_view_vnfm", - "url":"../extsys/vnfm/vnfmView.html", - "iconClass":"fa fa-coffee" - }, - { - "parentId":"openo_menu_manage_view", - "id":"openo_menu_manage_view_sdn_controller", - "url":"../extsys/sdncontroller/controller.html", - "iconClass":"fa fa-coffee" - }, - { - "parentId":"openo_menu_performance", - "id":"openo_menu_performance_performance_query", - "url":"../performance/performance_view.html", - "iconClass":"fa fa-bar-chart" - }, - { - "parentId":"openo_menu_performance", - "id":"openo_menu_alarm_alarm_query", - "url":"../performance/alarm_view.html", - "iconClass":"fa fa-bell" - }, - { - "parentId":"openo_menu_monitor", - "id":"openo_menu_monitor_parameter_setting", - "url":"../monitor/monitorSettingList.html", - "iconClass":"fa fa-cogs" - } - ] -} \ No newline at end of file diff --git a/openo-portal/portal-common/src/main/webapp/common/login.html b/openo-portal/portal-common/src/main/webapp/common/login.html deleted file mode 100644 index 23950494..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/login.html +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/thirdparty/animate/animate.min.css b/openo-portal/portal-common/src/main/webapp/common/thirdparty/animate/animate.min.css deleted file mode 100644 index 3a85ab38..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/thirdparty/animate/animate.min.css +++ /dev/null @@ -1,6 +0,0 @@ -@charset "UTF-8";/*! -Animate.css - http://daneden.me/animate -Licensed under the MIT license - http://opensource.org/licenses/MIT - -Copyright (c) 2014 Daniel Eden -*/.animated{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animated.infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.animated.hinge{-webkit-animation-duration:2s;animation-duration:2s}@-webkit-keyframes bounce{0%,100%,20%,53%,80%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1);-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}40%,43%{-webkit-transition-timing-function:cubic-bezier(0.755,.050,.855,.060);transition-timing-function:cubic-bezier(0.755,.050,.855,.060);-webkit-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}70%{-webkit-transition-timing-function:cubic-bezier(0.755,.050,.855,.060);transition-timing-function:cubic-bezier(0.755,.050,.855,.060);-webkit-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}@keyframes bounce{0%,100%,20%,53%,80%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1);-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}40%,43%{-webkit-transition-timing-function:cubic-bezier(0.755,.050,.855,.060);transition-timing-function:cubic-bezier(0.755,.050,.855,.060);-webkit-transform:translate3d(0,-30px,0);-ms-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}70%{-webkit-transition-timing-function:cubic-bezier(0.755,.050,.855,.060);transition-timing-function:cubic-bezier(0.755,.050,.855,.060);-webkit-transform:translate3d(0,-15px,0);-ms-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);-ms-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}.bounce{-webkit-animation-name:bounce;animation-name:bounce;-webkit-transform-origin:center bottom;-ms-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes flash{0%,100%,50%{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,100%,50%{opacity:1}25%,75%{opacity:0}}.flash{-webkit-animation-name:flash;animation-name:flash}@-webkit-keyframes pulse{0%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}100%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes pulse{0%{-webkit-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);-ms-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}100%{-webkit-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.pulse{-webkit-animation-name:pulse;animation-name:pulse}@-webkit-keyframes rubberBand{0%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(0.75,1.25,1);transform:scale3d(0.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}100%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes rubberBand{0%{-webkit-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}30%{-webkit-transform:scale3d(1.25,.75,1);-ms-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(0.75,1.25,1);-ms-transform:scale3d(0.75,1.25,1);transform:scale3d(0.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);-ms-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);-ms-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);-ms-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}100%{-webkit-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.rubberBand{-webkit-animation-name:rubberBand;animation-name:rubberBand}@-webkit-keyframes shake{0%,100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}@keyframes shake{0%,100%{-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);-ms-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);-ms-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}.shake{-webkit-animation-name:shake;animation-name:shake}@-webkit-keyframes swing{20%{-webkit-transform:rotate3d(0,0,1,15deg);transform:rotate3d(0,0,1,15deg)}40%{-webkit-transform:rotate3d(0,0,1,-10deg);transform:rotate3d(0,0,1,-10deg)}60%{-webkit-transform:rotate3d(0,0,1,5deg);transform:rotate3d(0,0,1,5deg)}80%{-webkit-transform:rotate3d(0,0,1,-5deg);transform:rotate3d(0,0,1,-5deg)}100%{-webkit-transform:rotate3d(0,0,1,0deg);transform:rotate3d(0,0,1,0deg)}}@keyframes swing{20%{-webkit-transform:rotate3d(0,0,1,15deg);-ms-transform:rotate3d(0,0,1,15deg);transform:rotate3d(0,0,1,15deg)}40%{-webkit-transform:rotate3d(0,0,1,-10deg);-ms-transform:rotate3d(0,0,1,-10deg);transform:rotate3d(0,0,1,-10deg)}60%{-webkit-transform:rotate3d(0,0,1,5deg);-ms-transform:rotate3d(0,0,1,5deg);transform:rotate3d(0,0,1,5deg)}80%{-webkit-transform:rotate3d(0,0,1,-5deg);-ms-transform:rotate3d(0,0,1,-5deg);transform:rotate3d(0,0,1,-5deg)}100%{-webkit-transform:rotate3d(0,0,1,0deg);-ms-transform:rotate3d(0,0,1,0deg);transform:rotate3d(0,0,1,0deg)}}.swing{-webkit-transform-origin:top center;-ms-transform-origin:top center;transform-origin:top center;-webkit-animation-name:swing;animation-name:swing}@-webkit-keyframes tada{0%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg);transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg)}100%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes tada{0%{-webkit-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg);-ms-transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg);transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg);-ms-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg);-ms-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg)}100%{-webkit-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.tada{-webkit-animation-name:tada;animation-name:tada}@-webkit-keyframes wobble{0%{-webkit-transform:none;transform:none}15%{-webkit-transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg);transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg);transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg);transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg);transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg);transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg)}100%{-webkit-transform:none;transform:none}}@keyframes wobble{0%{-webkit-transform:none;-ms-transform:none;transform:none}15%{-webkit-transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg);-ms-transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg);transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg);-ms-transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg);transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg);-ms-transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg);transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg);-ms-transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg);transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg);-ms-transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg);transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg)}100%{-webkit-transform:none;-ms-transform:none;transform:none}}.wobble{-webkit-animation-name:wobble;animation-name:wobble}@-webkit-keyframes bounceIn{0%,100%,20%,40%,60%,80%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}100%{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes bounceIn{0%,100%,20%,40%,60%,80%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);-ms-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);-ms-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);-ms-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);-ms-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);-ms-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}100%{opacity:1;-webkit-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.bounceIn{-webkit-animation-name:bounceIn;animation-name:bounceIn;-webkit-animation-duration:.75s;animation-duration:.75s}@-webkit-keyframes bounceInDown{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}100%{-webkit-transform:none;transform:none}}@keyframes bounceInDown{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);-ms-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);-ms-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);-ms-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);-ms-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}100%{-webkit-transform:none;-ms-transform:none;transform:none}}.bounceInDown{-webkit-animation-name:bounceInDown;animation-name:bounceInDown}@-webkit-keyframes bounceInLeft{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}100%{-webkit-transform:none;transform:none}}@keyframes bounceInLeft{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);-ms-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);-ms-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);-ms-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);-ms-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}100%{-webkit-transform:none;-ms-transform:none;transform:none}}.bounceInLeft{-webkit-animation-name:bounceInLeft;animation-name:bounceInLeft}@-webkit-keyframes bounceInRight{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}100%{-webkit-transform:none;transform:none}}@keyframes bounceInRight{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0);-ms-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);-ms-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);-ms-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);-ms-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}100%{-webkit-transform:none;-ms-transform:none;transform:none}}.bounceInRight{-webkit-animation-name:bounceInRight;animation-name:bounceInRight}@-webkit-keyframes bounceInUp{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes bounceInUp{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0);-ms-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);-ms-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);-ms-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);-ms-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}100%{-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.bounceInUp{-webkit-animation-name:bounceInUp;animation-name:bounceInUp}@-webkit-keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}100%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);-ms-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);-ms-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}100%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);-ms-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}.bounceOut{-webkit-animation-name:bounceOut;animation-name:bounceOut;-webkit-animation-duration:.75s;animation-duration:.75s}@-webkit-keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}100%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);-ms-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);-ms-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}100%{opacity:0;-webkit-transform:translate3d(0,2000px,0);-ms-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.bounceOutDown{-webkit-animation-name:bounceOutDown;animation-name:bounceOutDown}@-webkit-keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}100%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);-ms-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}100%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);-ms-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.bounceOutLeft{-webkit-animation-name:bounceOutLeft;animation-name:bounceOutLeft}@-webkit-keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}100%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);-ms-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}100%{opacity:0;-webkit-transform:translate3d(2000px,0,0);-ms-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.bounceOutRight{-webkit-animation-name:bounceOutRight;animation-name:bounceOutRight}@-webkit-keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}100%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);-ms-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);-ms-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}100%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);-ms-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.bounceOutUp{-webkit-animation-name:bounceOutUp;animation-name:bounceOutUp}@-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}.fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);-ms-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInDown{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}@-webkit-keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);-ms-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInDownBig{-webkit-animation-name:fadeInDownBig;animation-name:fadeInDownBig}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);-ms-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInLeft{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}@-webkit-keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);-ms-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInLeftBig{-webkit-animation-name:fadeInLeftBig;animation-name:fadeInLeftBig}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);-ms-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInRight{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}@-webkit-keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);-ms-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInRightBig{-webkit-animation-name:fadeInRightBig;animation-name:fadeInRightBig}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);-ms-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInUp{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}@-webkit-keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);-ms-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInUpBig{-webkit-animation-name:fadeInUpBig;animation-name:fadeInUpBig}@-webkit-keyframes fadeOut{0%{opacity:1}100%{opacity:0}}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}.fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}@-webkit-keyframes fadeOutDown{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes fadeOutDown{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,100%,0);-ms-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.fadeOutDown{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}@-webkit-keyframes fadeOutDownBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes fadeOutDownBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,2000px,0);-ms-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.fadeOutDownBig{-webkit-animation-name:fadeOutDownBig;animation-name:fadeOutDownBig}@-webkit-keyframes fadeOutLeft{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes fadeOutLeft{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-100%,0,0);-ms-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.fadeOutLeft{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}@-webkit-keyframes fadeOutLeftBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes fadeOutLeftBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);-ms-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.fadeOutLeftBig{-webkit-animation-name:fadeOutLeftBig;animation-name:fadeOutLeftBig}@-webkit-keyframes fadeOutRight{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes fadeOutRight{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%,0,0);-ms-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.fadeOutRight{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeOutRightBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes fadeOutRightBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(2000px,0,0);-ms-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.fadeOutRightBig{-webkit-animation-name:fadeOutRightBig;animation-name:fadeOutRightBig}@-webkit-keyframes fadeOutUp{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes fadeOutUp{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,-100%,0);-ms-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.fadeOutUp{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}@-webkit-keyframes fadeOutUpBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes fadeOutUpBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);-ms-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.fadeOutUpBig{-webkit-animation-name:fadeOutUpBig;animation-name:fadeOutUpBig}@-webkit-keyframes flip{0%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-360deg);transform:perspective(400px) rotate3d(0,1,0,-360deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95);transform:perspective(400px) scale3d(.95,.95,.95);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}100%{-webkit-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}@keyframes flip{0%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-360deg);-ms-transform:perspective(400px) rotate3d(0,1,0,-360deg);transform:perspective(400px) rotate3d(0,1,0,-360deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);-ms-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);-ms-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95);-ms-transform:perspective(400px) scale3d(.95,.95,.95);transform:perspective(400px) scale3d(.95,.95,.95);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}100%{-webkit-transform:perspective(400px);-ms-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}.animated.flip{-webkit-backface-visibility:visible;-ms-backface-visibility:visible;backface-visibility:visible;-webkit-animation-name:flip;animation-name:flip}@-webkit-keyframes flipInX{0%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1,0,0,10deg);transform:perspective(400px) rotate3d(1,0,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-5deg);transform:perspective(400px) rotate3d(1,0,0,-5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInX{0%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);-ms-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);-ms-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1,0,0,10deg);-ms-transform:perspective(400px) rotate3d(1,0,0,10deg);transform:perspective(400px) rotate3d(1,0,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-5deg);-ms-transform:perspective(400px) rotate3d(1,0,0,-5deg);transform:perspective(400px) rotate3d(1,0,0,-5deg)}100%{-webkit-transform:perspective(400px);-ms-transform:perspective(400px);transform:perspective(400px)}}.flipInX{-webkit-backface-visibility:visible!important;-ms-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInX;animation-name:flipInX}@-webkit-keyframes flipInY{0%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-20deg);transform:perspective(400px) rotate3d(0,1,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(0,1,0,10deg);transform:perspective(400px) rotate3d(0,1,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-5deg);transform:perspective(400px) rotate3d(0,1,0,-5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInY{0%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);-ms-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-20deg);-ms-transform:perspective(400px) rotate3d(0,1,0,-20deg);transform:perspective(400px) rotate3d(0,1,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(0,1,0,10deg);-ms-transform:perspective(400px) rotate3d(0,1,0,10deg);transform:perspective(400px) rotate3d(0,1,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-5deg);-ms-transform:perspective(400px) rotate3d(0,1,0,-5deg);transform:perspective(400px) rotate3d(0,1,0,-5deg)}100%{-webkit-transform:perspective(400px);-ms-transform:perspective(400px);transform:perspective(400px)}}.flipInY{-webkit-backface-visibility:visible!important;-ms-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInY;animation-name:flipInY}@-webkit-keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);opacity:0}}@keyframes flipOutX{0%{-webkit-transform:perspective(400px);-ms-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);-ms-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);-ms-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);opacity:0}}.flipOutX{-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-backface-visibility:visible!important;-ms-backface-visibility:visible!important;backface-visibility:visible!important}@-webkit-keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-15deg);transform:perspective(400px) rotate3d(0,1,0,-15deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);opacity:0}}@keyframes flipOutY{0%{-webkit-transform:perspective(400px);-ms-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-15deg);-ms-transform:perspective(400px) rotate3d(0,1,0,-15deg);transform:perspective(400px) rotate3d(0,1,0,-15deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);-ms-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);opacity:0}}.flipOutY{-webkit-backface-visibility:visible!important;-ms-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipOutY;animation-name:flipOutY;-webkit-animation-duration:.75s;animation-duration:.75s}@-webkit-keyframes lightSpeedIn{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg);opacity:1}100%{-webkit-transform:none;transform:none;opacity:1}}@keyframes lightSpeedIn{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);-ms-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);-ms-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);-ms-transform:skewX(-5deg);transform:skewX(-5deg);opacity:1}100%{-webkit-transform:none;-ms-transform:none;transform:none;opacity:1}}.lightSpeedIn{-webkit-animation-name:lightSpeedIn;animation-name:lightSpeedIn;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedOut{0%{opacity:1}100%{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}@keyframes lightSpeedOut{0%{opacity:1}100%{-webkit-transform:translate3d(100%,0,0) skewX(30deg);-ms-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}.lightSpeedOut{-webkit-animation-name:lightSpeedOut;animation-name:lightSpeedOut;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes rotateIn{0%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,-200deg);transform:rotate3d(0,0,1,-200deg);opacity:0}100%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateIn{0%{-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,-200deg);-ms-transform:rotate3d(0,0,1,-200deg);transform:rotate3d(0,0,1,-200deg);opacity:0}100%{-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;-webkit-transform:none;-ms-transform:none;transform:none;opacity:1}}.rotateIn{-webkit-animation-name:rotateIn;animation-name:rotateIn}@-webkit-keyframes rotateInDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInDownLeft{0%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);-ms-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}100%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;-ms-transform:none;transform:none;opacity:1}}.rotateInDownLeft{-webkit-animation-name:rotateInDownLeft;animation-name:rotateInDownLeft}@-webkit-keyframes rotateInDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInDownRight{0%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,45deg);-ms-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}100%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;-ms-transform:none;transform:none;opacity:1}}.rotateInDownRight{-webkit-animation-name:rotateInDownRight;animation-name:rotateInDownRight}@-webkit-keyframes rotateInUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInUpLeft{0%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,45deg);-ms-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}100%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;-ms-transform:none;transform:none;opacity:1}}.rotateInUpLeft{-webkit-animation-name:rotateInUpLeft;animation-name:rotateInUpLeft}@-webkit-keyframes rotateInUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-90deg);transform:rotate3d(0,0,1,-90deg);opacity:0}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInUpRight{0%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-90deg);-ms-transform:rotate3d(0,0,1,-90deg);transform:rotate3d(0,0,1,-90deg);opacity:0}100%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;-ms-transform:none;transform:none;opacity:1}}.rotateInUpRight{-webkit-animation-name:rotateInUpRight;animation-name:rotateInUpRight}@-webkit-keyframes rotateOut{0%{-webkit-transform-origin:center;transform-origin:center;opacity:1}100%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,200deg);transform:rotate3d(0,0,1,200deg);opacity:0}}@keyframes rotateOut{0%{-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;opacity:1}100%{-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,200deg);-ms-transform:rotate3d(0,0,1,200deg);transform:rotate3d(0,0,1,200deg);opacity:0}}.rotateOut{-webkit-animation-name:rotateOut;animation-name:rotateOut}@-webkit-keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(0,0,1,45deg);transform:rotate(0,0,1,45deg);opacity:0}}@keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;opacity:1}100%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(0,0,1,45deg);-ms-transform:rotate(0,0,1,45deg);transform:rotate(0,0,1,45deg);opacity:0}}.rotateOutDownLeft{-webkit-animation-name:rotateOutDownLeft;animation-name:rotateOutDownLeft}@-webkit-keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}@keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;opacity:1}100%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-45deg);-ms-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}.rotateOutDownRight{-webkit-animation-name:rotateOutDownRight;animation-name:rotateOutDownRight}@-webkit-keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}@keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;opacity:1}100%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);-ms-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}.rotateOutUpLeft{-webkit-animation-name:rotateOutUpLeft;animation-name:rotateOutUpLeft}@-webkit-keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,90deg);transform:rotate3d(0,0,1,90deg);opacity:0}}@keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;opacity:1}100%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,90deg);-ms-transform:rotate3d(0,0,1,90deg);transform:rotate3d(0,0,1,90deg);opacity:0}}.rotateOutUpRight{-webkit-animation-name:rotateOutUpRight;animation-name:rotateOutUpRight}@-webkit-keyframes hinge{0%{-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate3d(0,0,1,80deg);transform:rotate3d(0,0,1,80deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate3d(0,0,1,60deg);transform:rotate3d(0,0,1,60deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}100%{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}@keyframes hinge{0%{-webkit-transform-origin:top left;-ms-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate3d(0,0,1,80deg);-ms-transform:rotate3d(0,0,1,80deg);transform:rotate3d(0,0,1,80deg);-webkit-transform-origin:top left;-ms-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate3d(0,0,1,60deg);-ms-transform:rotate3d(0,0,1,60deg);transform:rotate3d(0,0,1,60deg);-webkit-transform-origin:top left;-ms-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}100%{-webkit-transform:translate3d(0,700px,0);-ms-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}.hinge{-webkit-animation-name:hinge;animation-name:hinge}@-webkit-keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg);transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg);-ms-transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg);transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.rollIn{-webkit-animation-name:rollIn;animation-name:rollIn}@-webkit-keyframes rollOut{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg);transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg)}}@keyframes rollOut{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg);-ms-transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg);transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg)}}.rollOut{-webkit-animation-name:rollOut;animation-name:rollOut}@-webkit-keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);-ms-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}.zoomIn{-webkit-animation-name:zoomIn;animation-name:zoomIn}@-webkit-keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-ms-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-ms-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.zoomInDown{-webkit-animation-name:zoomInDown;animation-name:zoomInDown}@-webkit-keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-ms-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-ms-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.zoomInLeft{-webkit-animation-name:zoomInLeft;animation-name:zoomInLeft}@-webkit-keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-ms-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-ms-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.zoomInRight{-webkit-animation-name:zoomInRight;animation-name:zoomInRight}@-webkit-keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-ms-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-ms-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.zoomInUp{-webkit-animation-name:zoomInUp;animation-name:zoomInUp}@-webkit-keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}100%{opacity:0}}@keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);-ms-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}100%{opacity:0}}.zoomOut{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}100%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-ms-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}100%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-ms-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;-ms-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.zoomOutDown{-webkit-animation-name:zoomOutDown;animation-name:zoomOutDown}@-webkit-keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}100%{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;transform-origin:left center}}@keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);-ms-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}100%{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);-ms-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;-ms-transform-origin:left center;transform-origin:left center}}.zoomOutLeft{-webkit-animation-name:zoomOutLeft;animation-name:zoomOutLeft}@-webkit-keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}100%{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;transform-origin:right center}}@keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);-ms-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}100%{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);-ms-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;-ms-transform-origin:right center;transform-origin:right center}}.zoomOutRight{-webkit-animation-name:zoomOutRight;animation-name:zoomOutRight}@-webkit-keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}100%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-ms-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}100%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-ms-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;-ms-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.zoomOutUp{-webkit-animation-name:zoomOutUp;animation-name:zoomOutUp} \ No newline at end of file diff --git a/openo-portal/portal-common/src/main/webapp/common/thirdparty/avalon/avalon.js b/openo-portal/portal-common/src/main/webapp/common/thirdparty/avalon/avalon.js deleted file mode 100644 index 786ed3c0..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/thirdparty/avalon/avalon.js +++ /dev/null @@ -1,5819 +0,0 @@ -/*================================================== - Copyright (c) 2013-2015 司徒正美 and other contributors - http://www.cnblogs.com/rubylouvre/ - https://github.com/RubyLouvre - http://weibo.com/jslouvre/ - - Released under the MIT license - avalon.js 1.45 built in 2015.7.17 - support IE6+ and other browsers - ==================================================*/ -(function(global, factory) { - - if (typeof module === "object" && typeof module.exports === "object") { - // For CommonJS and CommonJS-like environments where a proper `window` - // is present, execute the factory and get avalon. - // For environments that do not have a `window` with a `document` - // (such as Node.js), expose a factory as module.exports. - // This accentuates the need for the creation of a real `window`. - // e.g. var avalon = require("avalon")(window); - module.exports = global.document ? factory(global, true) : function(w) { - if (!w.document) { - throw new Error("Avalon requires a window with a document") - } - return factory(w) - } - } else { - factory(global) - } - -// Pass this if window is not defined yet -}(typeof window !== "undefined" ? window : this, function(window, noGlobal){ - -/********************************************************************* - * 全局变量及方法 * - **********************************************************************/ -var expose = new Date() - 0 -//http://stackoverflow.com/questions/7290086/javascript-use-strict-and-nicks-find-global-function -var DOC = window.document -var head = DOC.getElementsByTagName("head")[0] //HEAD元素 -var ifGroup = head.insertBefore(document.createElement("avalon"), head.firstChild) //避免IE6 base标签BUG -ifGroup.innerHTML = "X" -ifGroup.setAttribute("ms-skip", "1") -ifGroup.className = "avalonHide" -var rnative = /\[native code\]/ //判定是否原生函数 -function log() { - if (window.console && avalon.config.debug) { - // http://stackoverflow.com/questions/8785624/how-to-safely-wrap-console-log - Function.apply.call(console.log, console, arguments) - } -} - - -var subscribers = "$" + expose -var otherRequire = window.require -var otherDefine = window.define -var innerRequire -var stopRepeatAssign = false -var rword = /[^, ]+/g //切割字符串为一个个小块,以空格或豆号分开它们,结合replace实现字符串的forEach -var rcomplexType = /^(?:object|array)$/ -var rsvg = /^\[object SVG\w*Element\]$/ -var rwindow = /^\[object (?:Window|DOMWindow|global)\]$/ -var oproto = Object.prototype -var ohasOwn = oproto.hasOwnProperty -var serialize = oproto.toString -var ap = Array.prototype -var aslice = ap.slice -var Registry = {} //将函数曝光到此对象上,方便访问器收集依赖 -var W3C = window.dispatchEvent -var root = DOC.documentElement -var avalonFragment = DOC.createDocumentFragment() -var cinerator = DOC.createElement("div") -var class2type = {} -"Boolean Number String Function Array Date RegExp Object Error".replace(rword, function (name) { - class2type["[object " + name + "]"] = name.toLowerCase() -}) - - -function noop() { -} - - -function oneObject(array, val) { - if (typeof array === "string") { - array = array.match(rword) || [] - } - var result = {}, - value = val !== void 0 ? val : 1 - for (var i = 0, n = array.length; i < n; i++) { - result[array[i]] = value - } - return result -} - -//生成UUID http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript -var generateID = function (prefix) { - prefix = prefix || "avalon" - return String(Math.random() + Math.random()).replace(/\d\.\d{4}/, prefix) -} -function IE() { - if (window.VBArray) { - var mode = document.documentMode - return mode ? mode : window.XMLHttpRequest ? 7 : 6 - } else { - return NaN - } -} -var IEVersion = IE() - -avalon = function (el) { //创建jQuery式的无new 实例化结构 - return new avalon.init(el) -} - -avalon.profile = function () { - if (window.console && avalon.config.profile) { - Function.apply.call(console.log, console, arguments) - } -} - -/*视浏览器情况采用最快的异步回调*/ -avalon.nextTick = new function () {// jshint ignore:line - var tickImmediate = window.setImmediate - var tickObserver = window.MutationObserver - var tickPost = W3C && window.postMessage - if (tickImmediate) { - return tickImmediate.bind(window) - } - - var queue = [] - function callback() { - var n = queue.length - for (var i = 0; i < n; i++) { - queue[i]() - } - queue = queue.slice(n) - } - - if (tickObserver) { - var node = document.createTextNode("avalon") - new tickObserver(callback).observe(node, {characterData: true})// jshint ignore:line - return function (fn) { - queue.push(fn) - node.data = Math.random() - } - } - - if (tickPost) { - window.addEventListener("message", function (e) { - var source = e.source - if ((source === window || source === null) && e.data === "process-tick") { - e.stopPropagation() - callback() - } - }) - - return function (fn) { - queue.push(fn) - window.postMessage('process-tick', '*') - } - } - - return function (fn) { - setTimeout(fn, 0) - } -}// jshint ignore:line -/********************************************************************* - * avalon的静态方法定义区 * - **********************************************************************/ -avalon.init = function (el) { - this[0] = this.element = el -} -avalon.fn = avalon.prototype = avalon.init.prototype - -avalon.type = function (obj) { //取得目标的类型 - if (obj == null) { - return String(obj) - } - // 早期的webkit内核浏览器实现了已废弃的ecma262v4标准,可以将正则字面量当作函数使用,因此typeof在判定正则时会返回function - return typeof obj === "object" || typeof obj === "function" ? - class2type[serialize.call(obj)] || "object" : - typeof obj -} - -var isFunction = typeof alert === "object" ? function (fn) { - try { - return /^\s*\bfunction\b/.test(fn + "") - } catch (e) { - return false - } -} : function (fn) { - return serialize.call(fn) === "[object Function]" -} -avalon.isFunction = isFunction - -avalon.isWindow = function (obj) { - if (!obj) - return false - // 利用IE678 window == document为true,document == window竟然为false的神奇特性 - // 标准浏览器及IE9,IE10等使用 正则检测 - return obj == obj.document && obj.document != obj //jshint ignore:line -} - -function isWindow(obj) { - return rwindow.test(serialize.call(obj)) -} -if (isWindow(window)) { - avalon.isWindow = isWindow -} -var enu -for (enu in avalon({})) { - break -} -var enumerateBUG = enu !== "0" //IE6下为true, 其他为false -/*判定是否是一个朴素的javascript对象(Object),不是DOM对象,不是BOM对象,不是自定义类的实例*/ -avalon.isPlainObject = function (obj, key) { - if (!obj || avalon.type(obj) !== "object" || obj.nodeType || avalon.isWindow(obj)) { - return false; - } - try { //IE内置对象没有constructor - if (obj.constructor && !ohasOwn.call(obj, "constructor") && !ohasOwn.call(obj.constructor.prototype, "isPrototypeOf")) { - return false; - } - } catch (e) { //IE8 9会在这里抛错 - return false; - } - if (enumerateBUG) { - for (key in obj) { - return ohasOwn.call(obj, key) - } - } - for (key in obj) { - } - return key === void 0 || ohasOwn.call(obj, key) -} -if (rnative.test(Object.getPrototypeOf)) { - avalon.isPlainObject = function (obj) { - // 简单的 typeof obj === "object"检测,会致使用isPlainObject(window)在opera下通不过 - return serialize.call(obj) === "[object Object]" && Object.getPrototypeOf(obj) === oproto - } -} -//与jQuery.extend方法,可用于浅拷贝,深拷贝 -avalon.mix = avalon.fn.mix = function () { - var options, name, src, copy, copyIsArray, clone, - target = arguments[0] || {}, - i = 1, - length = arguments.length, - deep = false - - // 如果第一个参数为布尔,判定是否深拷贝 - if (typeof target === "boolean") { - deep = target - target = arguments[1] || {} - i++ - } - - //确保接受方为一个复杂的数据类型 - if (typeof target !== "object" && !isFunction(target)) { - target = {} - } - - //如果只有一个参数,那么新成员添加于mix所在的对象上 - if (i === length) { - target = this - i-- - } - - for (; i < length; i++) { - //只处理非空参数 - if ((options = arguments[i]) != null) { - for (name in options) { - src = target[name] - try { - copy = options[name] //当options为VBS对象时报错 - } catch (e) { - continue - } - - // 防止环引用 - if (target === copy) { - continue - } - if (deep && copy && (avalon.isPlainObject(copy) || (copyIsArray = Array.isArray(copy)))) { - - if (copyIsArray) { - copyIsArray = false - clone = src && Array.isArray(src) ? src : [] - - } else { - clone = src && avalon.isPlainObject(src) ? src : {} - } - - target[name] = avalon.mix(deep, clone, copy) - } else if (copy !== void 0) { - target[name] = copy - } - } - } - } - return target -} - -function _number(a, len) { //用于模拟slice, splice的效果 - a = Math.floor(a) || 0 - return a < 0 ? Math.max(len + a, 0) : Math.min(a, len); -} -avalon.mix({ - rword: rword, - subscribers: subscribers, - version: 1.45, - ui: {}, - log: log, - slice: W3C ? function (nodes, start, end) { - return aslice.call(nodes, start, end) - } : function (nodes, start, end) { - var ret = [] - var len = nodes.length - if (end === void 0) - end = len - if (typeof end === "number" && isFinite(end)) { - start = _number(start, len) - end = _number(end, len) - for (var i = start; i < end; ++i) { - ret[i - start] = nodes[i] - } - } - return ret - }, - noop: noop, - /*如果不用Error对象封装一下,str在控制台下可能会乱码*/ - error: function (str, e) { - throw (e || Error)(str) - }, - /*将一个以空格或逗号隔开的字符串或数组,转换成一个键值都为1的对象*/ - oneObject: oneObject, - /* avalon.range(10) - => [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] - avalon.range(1, 11) - => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] - avalon.range(0, 30, 5) - => [0, 5, 10, 15, 20, 25] - avalon.range(0, -10, -1) - => [0, -1, -2, -3, -4, -5, -6, -7, -8, -9] - avalon.range(0) - => []*/ - range: function (start, end, step) { // 用于生成整数数组 - step || (step = 1) - if (end == null) { - end = start || 0 - start = 0 - } - var index = -1, - length = Math.max(0, Math.ceil((end - start) / step)), - result = new Array(length) - while (++index < length) { - result[index] = start - start += step - } - return result - }, - eventHooks: [], - /*绑定事件*/ - bind: function(el, type, fn, phase) { - var hooks = avalon.eventHooks - var hook = hooks[type] - if (typeof hook === "object") { - type = hook.type - if (hook.deel) { - fn = hook.deel(el, type, fn, phase) - } - } - var callback = W3C ? fn : function(e) { - fn.call(el, fixEvent(e)); - } - if (W3C) { - el.addEventListener(type, callback, !!phase) - } else { - el.attachEvent("on" + type, callback) - } - return callback - }, - /*卸载事件*/ - unbind: function(el, type, fn, phase) { - var hooks = avalon.eventHooks - var hook = hooks[type] - var callback = fn || noop - if (typeof hook === "object") { - type = hook.type - if (hook.deel) { - fn = hook.deel(el, type, fn, false) - } - } - if (W3C) { - el.removeEventListener(type, callback, !!phase) - } else { - el.detachEvent("on" + type, callback) - } - }, - /*读写删除元素节点的样式*/ - css: function (node, name, value) { - if (node instanceof avalon) { - node = node[0] - } - var prop = /[_-]/.test(name) ? camelize(name) : name, fn - name = avalon.cssName(prop) || prop - if (value === void 0 || typeof value === "boolean") { //获取样式 - fn = cssHooks[prop + ":get"] || cssHooks["@:get"] - if (name === "background") { - name = "backgroundColor" - } - var val = fn(node, name) - return value === true ? parseFloat(val) || 0 : val - } else if (value === "") { //请除样式 - node.style[name] = "" - } else { //设置样式 - if (value == null || value !== value) { - return - } - if (isFinite(value) && !avalon.cssNumber[prop]) { - value += "px" - } - fn = cssHooks[prop + ":set"] || cssHooks["@:set"] - fn(node, name, value) - } - }, - /*遍历数组与对象,回调的第一个参数为索引或键名,第二个或元素或键值*/ - each: function (obj, fn) { - if (obj) { //排除null, undefined - var i = 0 - if (isArrayLike(obj)) { - for (var n = obj.length; i < n; i++) { - if (fn(i, obj[i]) === false) - break - } - } else { - for (i in obj) { - if (obj.hasOwnProperty(i) && fn(i, obj[i]) === false) { - break - } - } - } - } - }, - //收集元素的data-{{prefix}}-*属性,并转换为对象 - getWidgetData: function (elem, prefix) { - var raw = avalon(elem).data() - var result = {} - for (var i in raw) { - if (i.indexOf(prefix) === 0) { - result[i.replace(prefix, "").replace(/\w/, function (a) { - return a.toLowerCase() - })] = raw[i] - } - } - return result - }, - Array: { - /*只有当前数组不存在此元素时只添加它*/ - ensure: function (target, item) { - if (target.indexOf(item) === -1) { - return target.push(item) - } - }, - /*移除数组中指定位置的元素,返回布尔表示成功与否*/ - removeAt: function (target, index) { - return !!target.splice(index, 1).length - }, - /*移除数组中第一个匹配传参的那个元素,返回布尔表示成功与否*/ - remove: function (target, item) { - var index = target.indexOf(item) - if (~index) - return avalon.Array.removeAt(target, index) - return false - } - } -}) - -var bindingHandlers = avalon.bindingHandlers = {} -var bindingExecutors = avalon.bindingExecutors = {} - -/*判定是否类数组,如节点集合,纯数组,arguments与拥有非负整数的length属性的纯JS对象*/ -function isArrayLike(obj) { - if (!obj) - return false - var n = obj.length - if (n === (n >>> 0)) { //检测length属性是否为非负整数 - var type = serialize.call(obj).slice(8, -1) - if (/(?:regexp|string|function|window|global)$/i.test(type)) - return false - if (type === "Array") - return true - try { - if ({}.propertyIsEnumerable.call(obj, "length") === false) { //如果是原生对象 - return /^\s?function/.test(obj.item || obj.callee) - } - return true - } catch (e) { //IE的NodeList直接抛错 - return !obj.window //IE6-8 window - } - } - return false -} - - -// https://github.com/rsms/js-lru -var Cache = new function() {// jshint ignore:line - function LRU(maxLength) { - this.size = 0 - this.limit = maxLength - this.head = this.tail = void 0 - this._keymap = {} - } - - var p = LRU.prototype - - p.put = function(key, value) { - var entry = { - key: key, - value: value - } - this._keymap[key] = entry - if (this.tail) { - this.tail.newer = entry - entry.older = this.tail - } else { - this.head = entry - } - this.tail = entry - if (this.size === this.limit) { - this.shift() - } else { - this.size++ - } - return value - } - - p.shift = function() { - var entry = this.head - if (entry) { - this.head = this.head.newer - this.head.older = - entry.newer = - entry.older = - this._keymap[entry.key] = void 0 - } - } - p.get = function(key) { - var entry = this._keymap[key] - if (entry === void 0) - return - if (entry === this.tail) { - return entry.value - } - // HEAD--------------TAIL - // <.older .newer> - // <--- add direction -- - // A B C E - if (entry.newer) { - if (entry === this.head) { - this.head = entry.newer - } - entry.newer.older = entry.older // C <-- E. - } - if (entry.older) { - entry.older.newer = entry.newer // C. --> E - } - entry.newer = void 0 // D --x - entry.older = this.tail // D. --> E - if (this.tail) { - this.tail.newer = entry // E. <-- D - } - this.tail = entry - return entry.value - } - return LRU -}// jshint ignore:line - -/********************************************************************* - * javascript 底层补丁 * - **********************************************************************/ -if (!"司徒正美".trim) { - var rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g - String.prototype.trim = function () { - return this.replace(rtrim, "") - } -} -var hasDontEnumBug = !({ - 'toString': null -}).propertyIsEnumerable('toString'), - hasProtoEnumBug = (function () { - }).propertyIsEnumerable('prototype'), - dontEnums = [ - "toString", - "toLocaleString", - "valueOf", - "hasOwnProperty", - "isPrototypeOf", - "propertyIsEnumerable", - "constructor" - ], - dontEnumsLength = dontEnums.length; -if (!Object.keys) { - Object.keys = function (object) { //ecma262v5 15.2.3.14 - var theKeys = [] - var skipProto = hasProtoEnumBug && typeof object === "function" - if (typeof object === "string" || (object && object.callee)) { - for (var i = 0; i < object.length; ++i) { - theKeys.push(String(i)) - } - } else { - for (var name in object) { - if (!(skipProto && name === "prototype") && ohasOwn.call(object, name)) { - theKeys.push(String(name)) - } - } - } - - if (hasDontEnumBug) { - var ctor = object.constructor, - skipConstructor = ctor && ctor.prototype === object - for (var j = 0; j < dontEnumsLength; j++) { - var dontEnum = dontEnums[j] - if (!(skipConstructor && dontEnum === "constructor") && ohasOwn.call(object, dontEnum)) { - theKeys.push(dontEnum) - } - } - } - return theKeys - } -} -if (!Array.isArray) { - Array.isArray = function (a) { - return serialize.call(a) === "[object Array]" - } -} - -if (!noop.bind) { - Function.prototype.bind = function (scope) { - if (arguments.length < 2 && scope === void 0) - return this - var fn = this, - argv = arguments - return function () { - var args = [], - i - for (i = 1; i < argv.length; i++) - args.push(argv[i]) - for (i = 0; i < arguments.length; i++) - args.push(arguments[i]) - return fn.apply(scope, args) - } - } -} - -function iterator(vars, body, ret) { - var fun = 'for(var ' + vars + 'i=0,n = this.length; i < n; i++){' + body.replace('_', '((i in this) && fn.call(scope,this[i],i,this))') + '}' + ret - /* jshint ignore:start */ - return Function("fn,scope", fun) - /* jshint ignore:end */ -} -if (!rnative.test([].map)) { - avalon.mix(ap, { - //定位操作,返回数组中第一个等于给定参数的元素的索引值。 - indexOf: function (item, index) { - var n = this.length, - i = ~~index - if (i < 0) - i += n - for (; i < n; i++) - if (this[i] === item) - return i - return -1 - }, - //定位操作,同上,不过是从后遍历。 - lastIndexOf: function (item, index) { - var n = this.length, - i = index == null ? n - 1 : index - if (i < 0) - i = Math.max(0, n + i) - for (; i >= 0; i--) - if (this[i] === item) - return i - return -1 - }, - //迭代操作,将数组的元素挨个儿传入一个函数中执行。Prototype.js的对应名字为each。 - forEach: iterator("", '_', ""), - //迭代类 在数组中的每个项上运行一个函数,如果此函数的值为真,则此元素作为新数组的元素收集起来,并返回新数组 - filter: iterator('r=[],j=0,', 'if(_)r[j++]=this[i]', 'return r'), - //收集操作,将数组的元素挨个儿传入一个函数中执行,然后把它们的返回值组成一个新数组返回。Prototype.js的对应名字为collect。 - map: iterator('r=[],', 'r[i]=_', 'return r'), - //只要数组中有一个元素满足条件(放进给定函数返回true),那么它就返回true。Prototype.js的对应名字为any。 - some: iterator("", 'if(_)return true', 'return false'), - //只有数组中的元素都满足条件(放进给定函数返回true),它才返回true。Prototype.js的对应名字为all。 - every: iterator("", 'if(!_)return false', 'return true') - }) -} -/********************************************************************* - * DOM 底层补丁 * - **********************************************************************/ - -function fixContains(root, el) { - try { //IE6-8,游离于DOM树外的文本节点,访问parentNode有时会抛错 - while ((el = el.parentNode)) - if (el === root) - return true - return false - } catch (e) { - return false - } -} -avalon.contains = fixContains -//IE6-11的文档对象没有contains -if (!DOC.contains) { - DOC.contains = function (b) { - return fixContains(DOC, b) - } -} - -function outerHTML() { - return new XMLSerializer().serializeToString(this) -} - -if (window.SVGElement) { - //safari5+是把contains方法放在Element.prototype上而不是Node.prototype - if (!DOC.createTextNode("x").contains) { - Node.prototype.contains = function (arg) {//IE6-8没有Node对象 - return !!(this.compareDocumentPosition(arg) & 16) - } - } - var svgns = "http://www.w3.org/2000/svg" - var svg = DOC.createElementNS(svgns, "svg") - svg.innerHTML = '' - if (!rsvg.test(svg.firstChild)) { // #409 - function enumerateNode(node, targetNode) {// jshint ignore:line - if (node && node.childNodes) { - var nodes = node.childNodes - for (var i = 0, el; el = nodes[i++]; ) { - if (el.tagName) { - var svg = DOC.createElementNS(svgns, - el.tagName.toLowerCase()) - ap.forEach.call(el.attributes, function (attr) { - svg.setAttribute(attr.name, attr.value) //复制属性 - })// jshint ignore:line - // 递归处理子节点 - enumerateNode(el, svg) - targetNode.appendChild(svg) - } - } - } - } - Object.defineProperties(SVGElement.prototype, { - "outerHTML": {//IE9-11,firefox不支持SVG元素的innerHTML,outerHTML属性 - enumerable: true, - configurable: true, - get: outerHTML, - set: function (html) { - var tagName = this.tagName.toLowerCase(), - par = this.parentNode, - frag = avalon.parseHTML(html) - // 操作的svg,直接插入 - if (tagName === "svg") { - par.insertBefore(frag, this) - // svg节点的子节点类似 - } else { - var newFrag = DOC.createDocumentFragment() - enumerateNode(frag, newFrag) - par.insertBefore(newFrag, this) - } - par.removeChild(this) - } - }, - "innerHTML": { - enumerable: true, - configurable: true, - get: function () { - var s = this.outerHTML - var ropen = new RegExp("<" + this.nodeName + '\\b(?:(["\'])[^"]*?(\\1)|[^>])*>', "i") - var rclose = new RegExp("<\/" + this.nodeName + ">$", "i") - return s.replace(ropen, "").replace(rclose, "") - }, - set: function (html) { - if (avalon.clearHTML) { - avalon.clearHTML(this) - var frag = avalon.parseHTML(html) - enumerateNode(frag, this) - } - } - } - }) - } -} -if (!root.outerHTML && window.HTMLElement) { //firefox 到11时才有outerHTML - HTMLElement.prototype.__defineGetter__("outerHTML", outerHTML); -} - - -//============================= event binding ======================= -var rmouseEvent = /^(?:mouse|contextmenu|drag)|click/ -function fixEvent(event) { - var ret = {} - for (var i in event) { - ret[i] = event[i] - } - var target = ret.target = event.srcElement - if (event.type.indexOf("key") === 0) { - ret.which = event.charCode != null ? event.charCode : event.keyCode - } else if (rmouseEvent.test(event.type)) { - var doc = target.ownerDocument || DOC - var box = doc.compatMode === "BackCompat" ? doc.body : doc.documentElement - ret.pageX = event.clientX + (box.scrollLeft >> 0) - (box.clientLeft >> 0) - ret.pageY = event.clientY + (box.scrollTop >> 0) - (box.clientTop >> 0) - ret.wheelDeltaY = ret.wheelDelta - ret.wheelDeltaX = 0 - } - ret.timeStamp = new Date() - 0 - ret.originalEvent = event - ret.preventDefault = function () { //阻止默认行为 - event.returnValue = false - } - ret.stopPropagation = function () { //阻止事件在DOM树中的传播 - event.cancelBubble = true - } - return ret -} - -var eventHooks = avalon.eventHooks -//针对firefox, chrome修正mouseenter, mouseleave -if (!("onmouseenter" in root)) { - avalon.each({ - mouseenter: "mouseover", - mouseleave: "mouseout" - }, function (origType, fixType) { - eventHooks[origType] = { - type: fixType, - deel: function (elem, _, fn) { - return function (e) { - var t = e.relatedTarget - if (!t || (t !== elem && !(elem.compareDocumentPosition(t) & 16))) { - delete e.type - e.type = origType - return fn.call(elem, e) - } - } - } - } - }) -} -//针对IE9+, w3c修正animationend -avalon.each({ - AnimationEvent: "animationend", - WebKitAnimationEvent: "webkitAnimationEnd" -}, function (construct, fixType) { - if (window[construct] && !eventHooks.animationend) { - eventHooks.animationend = { - type: fixType - } - } -}) -//针对IE6-8修正input -if (!("oninput" in DOC.createElement("input"))) { - eventHooks.input = { - type: "propertychange", - deel: function (elem, _, fn) { - return function (e) { - if (e.propertyName === "value") { - e.type = "input" - return fn.call(elem, e) - } - } - } - } -} -if (DOC.onmousewheel === void 0) { - /* IE6-11 chrome mousewheel wheelDetla 下 -120 上 120 - firefox DOMMouseScroll detail 下3 上-3 - firefox wheel detlaY 下3 上-3 - IE9-11 wheel deltaY 下40 上-40 - chrome wheel deltaY 下100 上-100 */ - var fixWheelType = DOC.onwheel !== void 0 ? "wheel" : "DOMMouseScroll" - var fixWheelDelta = fixWheelType === "wheel" ? "deltaY" : "detail" - eventHooks.mousewheel = { - type: fixWheelType, - deel: function (elem, _, fn) { - return function (e) { - e.wheelDeltaY = e.wheelDelta = e[fixWheelDelta] > 0 ? -120 : 120 - e.wheelDeltaX = 0 - if (Object.defineProperty) { - Object.defineProperty(e, "type", { - value: "mousewheel" - }) - } - fn.call(elem, e) - } - } - } -} - - - -/********************************************************************* - * 配置系统 * - **********************************************************************/ - -function kernel(settings) { - for (var p in settings) { - if (!ohasOwn.call(settings, p)) - continue - var val = settings[p] - if (typeof kernel.plugins[p] === "function") { - kernel.plugins[p](val) - } else if (typeof kernel[p] === "object") { - avalon.mix(kernel[p], val) - } else { - kernel[p] = val - } - } - return this -} -var openTag, closeTag, rexpr, rexprg, rbind, rregexp = /[-.*+?^${}()|[\]\/\\]/g - -function escapeRegExp(target) { - //http://stevenlevithan.com/regex/xregexp/ - //将字符串安全格式化为正则表达式的源码 - return (target + "").replace(rregexp, "\\$&") -} - -var plugins = { - loader: function (builtin) { - var flag = innerRequire && builtin - window.require = flag ? innerRequire : otherRequire - window.define = flag ? innerRequire.define : otherDefine - }, - interpolate: function (array) { - openTag = array[0] - closeTag = array[1] - if (openTag === closeTag) { - throw new SyntaxError("openTag!==closeTag") - var test = openTag + "test" + closeTag - cinerator.innerHTML = test - if (cinerator.innerHTML !== test && cinerator.innerHTML.indexOf("<") > -1) { - throw new SyntaxError("此定界符不合法") - } - cinerator.innerHTML = "" - } - var o = escapeRegExp(openTag), - c = escapeRegExp(closeTag) - rexpr = new RegExp(o + "(.*?)" + c) - rexprg = new RegExp(o + "(.*?)" + c, "g") - rbind = new RegExp(o + ".*?" + c + "|\\sms-") - } -} - -kernel.debug = true -kernel.plugins = plugins -kernel.plugins['interpolate'](["{{", "}}"]) -kernel.paths = {} -kernel.shim = {} -kernel.maxRepeatSize = 100 -avalon.config = kernel -var ravalon = /(\w+)\[(avalonctrl)="(\S+)"\]/ -var findNodes = DOC.querySelectorAll ? function(str) { - return DOC.querySelectorAll(str) -} : function(str) { - var match = str.match(ravalon) - var all = DOC.getElementsByTagName(match[1]) - var nodes = [] - for (var i = 0, el; el = all[i++]; ) { - if (el.getAttribute(match[2]) === match[3]) { - nodes.push(el) - } - } - return nodes -} -/********************************************************************* - * 事件总线 * - **********************************************************************/ -var EventBus = { - $watch: function (type, callback) { - if (typeof callback === "function") { - var callbacks = this.$events[type] - if (callbacks) { - callbacks.push(callback) - } else { - this.$events[type] = [callback] - } - } else { //重新开始监听此VM的第一重简单属性的变动 - this.$events = this.$watch.backup - } - return this - }, - $unwatch: function (type, callback) { - var n = arguments.length - if (n === 0) { //让此VM的所有$watch回调无效化 - this.$watch.backup = this.$events - this.$events = {} - } else if (n === 1) { - this.$events[type] = [] - } else { - var callbacks = this.$events[type] || [] - var i = callbacks.length - while (~--i < 0) { - if (callbacks[i] === callback) { - return callbacks.splice(i, 1) - } - } - } - return this - }, - $fire: function (type) { - var special, i, v, callback - if (/^(\w+)!(\S+)$/.test(type)) { - special = RegExp.$1 - type = RegExp.$2 - } - var events = this.$events - if (!events) - return - var args = aslice.call(arguments, 1) - var detail = [type].concat(args) - if (special === "all") { - for (i in avalon.vmodels) { - v = avalon.vmodels[i] - if (v !== this) { - v.$fire.apply(v, detail) - } - } - } else if (special === "up" || special === "down") { - var elements = events.expr ? findNodes(events.expr) : [] - if (elements.length === 0) - return - for (i in avalon.vmodels) { - v = avalon.vmodels[i] - if (v !== this) { - if (v.$events.expr) { - var eventNodes = findNodes(v.$events.expr) - if (eventNodes.length === 0) { - continue - } - //循环两个vmodel中的节点,查找匹配(向上匹配或者向下匹配)的节点并设置标识 - /* jshint ignore:start */ - ap.forEach.call(eventNodes, function (node) { - ap.forEach.call(elements, function (element) { - var ok = special === "down" ? element.contains(node) : //向下捕获 - node.contains(element) //向上冒泡 - if (ok) { - node._avalon = v //符合条件的加一个标识 - } - }); - }) - /* jshint ignore:end */ - } - } - } - var nodes = DOC.getElementsByTagName("*") //实现节点排序 - var alls = [] - ap.forEach.call(nodes, function (el) { - if (el._avalon) { - alls.push(el._avalon) - el._avalon = "" - el.removeAttribute("_avalon") - } - }) - if (special === "up") { - alls.reverse() - } - for (i = 0; callback = alls[i++]; ) { - if (callback.$fire.apply(callback, detail) === false) { - break - } - } - } else { - var callbacks = events[type] || [] - var all = events.$all || [] - for (i = 0; callback = callbacks[i++]; ) { - if (isFunction(callback)) - callback.apply(this, args) - } - for (i = 0; callback = all[i++]; ) { - if (isFunction(callback)) - callback.apply(this, arguments) - } - } - } -} - -/********************************************************************* - * modelFactory * - **********************************************************************/ -//avalon最核心的方法的两个方法之一(另一个是avalon.scan),返回一个ViewModel(VM) -var VMODELS = avalon.vmodels = {} //所有vmodel都储存在这里 -avalon.define = function (id, factory) { - var $id = id.$id || id - if (!$id) { - log("warning: vm必须指定$id") - } - if (VMODELS[$id]) { - log("warning: " + $id + " 已经存在于avalon.vmodels中") - } - if (typeof id === "object") { - var model = modelFactory(id) - } else { - var scope = { - $watch: noop - } - factory(scope) //得到所有定义 - - model = modelFactory(scope) //偷天换日,将scope换为model - stopRepeatAssign = true - factory(model) - stopRepeatAssign = false - } - model.$id = $id - return VMODELS[$id] = model -} - -//一些不需要被监听的属性 -var $$skipArray = String("$id,$watch,$unwatch,$fire,$events,$model,$skipArray,$proxy,$reinitialize,$propertyNames").match(rword) -var defineProperty = Object.defineProperty -var canHideOwn = true -//如果浏览器不支持ecma262v5的Object.defineProperties或者存在BUG,比如IE8 -//标准浏览器使用__defineGetter__, __defineSetter__实现 -try { - defineProperty({}, "_", { - value: "x" - }) - var defineProperties = Object.defineProperties -} catch (e) { - canHideOwn = false -} - -function modelFactory(source, $special, $model) { - if (Array.isArray(source)) { - var arr = source.concat() - source.length = 0 - var collection = arrayFactory(source) - collection.pushArray(arr) - return collection - } - //0 null undefined || Node || VModel(fix IE6-8 createWithProxy $val: val引发的BUG) - if (!source || source.nodeType > 0 || (source.$id && source.$events)) { - return source - } - var $skipArray = Array.isArray(source.$skipArray) ? source.$skipArray : [] - $skipArray.$special = $special || {} //强制要监听的属性 - var $vmodel = {} //要返回的对象, 它在IE6-8下可能被偷龙转凤 - $model = $model || {} //vmodels.$model属性 - var $events = {} //vmodel.$events属性 - var accessors = {} //监控属性 - var computed = [] - $$skipArray.forEach(function (name) { - delete source[name] - }) - var names = Object.keys(source) - /* jshint ignore:start */ - names.forEach(function (name, accessor) { - var val = source[name] - $model[name] = val - if (isObservable(name, val, $skipArray)) { - //总共产生三种accessor - $events[name] = [] - var valueType = avalon.type(val) - //总共产生三种accessor - if (valueType === "object" && isFunction(val.get) && Object.keys(val).length <= 2) { - accessor = makeComputedAccessor(name, val) - computed.push(accessor) - } else if (rcomplexType.test(valueType)) { - accessor = makeComplexAccessor(name, val, valueType, $events[name]) - } else { - accessor = makeSimpleAccessor(name, val) - } - accessors[name] = accessor - } - }) - /* jshint ignore:end */ - - $vmodel = defineProperties($vmodel, descriptorFactory(accessors), source) //生成一个空的ViewModel - for (var i = 0; i < names.length; i++) { - var name = names[i] - if (!accessors[name]) { - $vmodel[name] = source[name] - } - } - //添加$id, $model, $events, $watch, $unwatch, $fire - $vmodel.$propertyNames = names.join("­") - $vmodel.$id = generateID() - $vmodel.$model = $model - $vmodel.$events = $events - for (i in EventBus) { - var fn = EventBus[i] - if (!W3C) { //在IE6-8下,VB对象的方法里的this并不指向自身,需要用bind处理一下 - fn = fn.bind($vmodel) - } - $vmodel[i] = fn - } - if (canHideOwn) { - Object.defineProperty($vmodel, "hasOwnProperty", hasOwnDescriptor) - } else { - /* jshint ignore:start */ - $vmodel.hasOwnProperty = function (name) { - return name in $vmodel.$model - } - /* jshint ignore:end */ - } - - $vmodel.$reinitialize = function () { - computed.forEach(function (accessor) { - delete accessor._value - delete accessor.oldArgs - accessor.digest = function () { - accessor.call($vmodel) - } - dependencyDetection.begin({ - callback: function (vm, dependency) {//dependency为一个accessor - var name = dependency._name - if (dependency !== accessor) { - var list = vm.$events[name] - injectDependency(list, accessor.digest) - } - } - }) - try { - accessor.get.call($vmodel) - } finally { - dependencyDetection.end() - } - }) - } - $vmodel.$reinitialize() - return $vmodel -} - -var hasOwnDescriptor = { - value: function (name) { - return name in this.$model - }, - writable: false, - enumerable: false, - configurable: true -} -//创建一个简单访问器 -function makeSimpleAccessor(name, value) { - function accessor(value) { - var oldValue = accessor._value - if (arguments.length > 0) { - if (!stopRepeatAssign && !isEqual(value, oldValue)) { - accessor.updateValue(this, value) - accessor.notify(this, value, oldValue) - } - return this - } else { - dependencyDetection.collectDependency(this, accessor) - return oldValue - } - } - accessorFactory(accessor, name) - accessor._value = value - return accessor; -} - -//创建一个计算访问器 -function makeComputedAccessor(name, options) { - function accessor(value) {//计算属性 - var oldValue = accessor._value - var init = ("_value" in accessor) - if (arguments.length > 0) { - if (stopRepeatAssign) { - return this - } - if (typeof accessor.set === "function") { - if (accessor.oldArgs !== value) { - accessor.oldArgs = value - var $events = this.$events - var lock = $events[name] - $events[name] = [] //清空回调,防止内部冒泡而触发多次$fire - accessor.set.call(this, value) - $events[name] = lock - value = accessor.get.call(this) - if (value !== oldValue) { - accessor.updateValue(this, value) - accessor.notify(this, value, oldValue) //触发$watch回调 - } - } - } - return this - } else { - //将依赖于自己的高层访问器或视图刷新函数(以绑定对象形式)放到自己的订阅数组中 - //将自己注入到低层访问器的订阅数组中 - value = accessor.get.call(this) - accessor.updateValue(this, value) - if (init && oldValue !== value) { - accessor.notify(this, value, oldValue) //触发$watch回调 - } - return value - } - } - accessor.set = options.set - accessor.get = options.get - accessorFactory(accessor, name) - return accessor -} - -//创建一个复杂访问器 -function makeComplexAccessor(name, initValue, valueType, list) { - function accessor(value) { - var oldValue = accessor._value - - var son = accessor._vmodel - if (arguments.length > 0) { - if (stopRepeatAssign) { - return this - } - if (valueType === "array") { - var a = son, b = value, - an = a.length, - bn = b.length - a.$lock = true - if (an > bn) { - a.splice(bn, an - bn) - } else if (bn > an) { - a.push.apply(a, b.slice(an)) - } - var n = Math.min(an, bn) - for (var i = 0; i < n; i++) { - a.set(i, b[i]) - } - delete a.$lock - a._fire("set") - } else if (valueType === "object") { - var newPropertyNames = Object.keys(value).join("­") - if (son.$propertyNames === newPropertyNames) { - for (i in value) { - son[i] = value[i] - } - } else { - var sson = accessor._vmodel = modelFactory(value) - var sevent = sson.$events - var oevent = son.$events - for (var i in sevent) { - var arr = sevent[i] - if (Array.isArray(arr)) { - arr = arr.concat(oevent[i]) - } - } - sevent[subscribers] = oevent[subscribers] - sson.$proxy = son.$proxy - son = sson - } - } - accessor.updateValue(this, son.$model) - accessor.notify(this, this._value, oldValue) - return this - } else { - dependencyDetection.collectDependency(this, accessor) - return son - } - } - accessorFactory(accessor, name) - var son = accessor._vmodel = modelFactory(initValue) - son.$events[subscribers] = list - return accessor -} - -function globalUpdateValue(vmodel, value) { - vmodel.$model[this._name] = this._value = value -} - -function globalNotify(vmodel, value, oldValue) { - var name = this._name - var array = vmodel.$events[name] //刷新值 - if (array) { - fireDependencies(array) //同步视图 - EventBus.$fire.call(vmodel, name, value, oldValue) //触发$watch回调 - } -} - -function accessorFactory(accessor, name) { - accessor._name = name - //同时更新_value与model - accessor.updateValue = globalUpdateValue - accessor.notify = globalNotify -} - -//比较两个值是否相等 -var isEqual = Object.is || function (v1, v2) { - if (v1 === 0 && v2 === 0) { - return 1 / v1 === 1 / v2 - } else if (v1 !== v1) { - return v2 !== v2 - } else { - return v1 === v2 - } -} - -function isObservable(name, value, $skipArray) { - if (isFunction(value) || value && value.nodeType) { - return false - } - if ($skipArray.indexOf(name) !== -1) { - return false - } - var $special = $skipArray.$special - if (name && name.charAt(0) === "$" && !$special[name]) { - return false - } - return true -} - -var descriptorFactory = W3C ? function (obj) { - var descriptors = {} - for (var i in obj) { - descriptors[i] = { - get: obj[i], - set: obj[i], - enumerable: true, - configurable: true - } - } - return descriptors -} : function (a) { - return a -} - -//===================修复浏览器对Object.defineProperties的支持================= -if (!canHideOwn) { - if ("__defineGetter__" in avalon) { - defineProperty = function (obj, prop, desc) { - if ('value' in desc) { - obj[prop] = desc.value - } - if ("get" in desc) { - obj.__defineGetter__(prop, desc.get) - } - if ('set' in desc) { - obj.__defineSetter__(prop, desc.set) - } - return obj - } - defineProperties = function (obj, descs) { - for (var prop in descs) { - if (descs.hasOwnProperty(prop)) { - defineProperty(obj, prop, descs[prop]) - } - } - return obj - } - } - if (IEVersion) { - var VBClassPool = {} - window.execScript([// jshint ignore:line - "Function parseVB(code)", - "\tExecuteGlobal(code)", - "End Function" //转换一段文本为VB代码 - ].join("\n"), "VBScript") - function VBMediator(instance, accessors, name, value) {// jshint ignore:line - var accessor = accessors[name] - if (arguments.length === 4) { - accessor.call(instance, value) - } else { - return accessor.call(instance) - } - } - defineProperties = function (name, accessors, properties) { - // jshint ignore:line - var buffer = [] - buffer.push( - "\r\n\tPrivate [__data__], [__proxy__]", - "\tPublic Default Function [__const__](d, p)", - "\t\tSet [__data__] = d: set [__proxy__] = p", - "\t\tSet [__const__] = Me", //链式调用 - "\tEnd Function") - //添加普通属性,因为VBScript对象不能像JS那样随意增删属性,必须在这里预先定义好 - for (name in properties) { - if (!accessors.hasOwnProperty(name)) { - buffer.push("\tPublic [" + name + "]") - } - } - $$skipArray.forEach(function (name) { - if (!accessors.hasOwnProperty(name)) { - buffer.push("\tPublic [" + name + "]") - } - }) - buffer.push("\tPublic [" + 'hasOwnProperty' + "]") - //添加访问器属性 - for (name in accessors) { - buffer.push( - //由于不知对方会传入什么,因此set, let都用上 - "\tPublic Property Let [" + name + "](val" + expose + ")", //setter - "\t\tCall [__proxy__](Me,[__data__], \"" + name + "\", val" + expose + ")", - "\tEnd Property", - "\tPublic Property Set [" + name + "](val" + expose + ")", //setter - "\t\tCall [__proxy__](Me,[__data__], \"" + name + "\", val" + expose + ")", - "\tEnd Property", - "\tPublic Property Get [" + name + "]", //getter - "\tOn Error Resume Next", //必须优先使用set语句,否则它会误将数组当字符串返回 - "\t\tSet[" + name + "] = [__proxy__](Me,[__data__],\"" + name + "\")", - "\tIf Err.Number <> 0 Then", - "\t\t[" + name + "] = [__proxy__](Me,[__data__],\"" + name + "\")", - "\tEnd If", - "\tOn Error Goto 0", - "\tEnd Property") - - } - - buffer.push("End Class") - var body = buffer.join("\r\n") - var className =VBClassPool[body] - if (!className) { - className = generateID("VBClass") - window.parseVB("Class " + className + body) - window.parseVB([ - "Function " + className + "Factory(a, b)", //创建实例并传入两个关键的参数 - "\tDim o", - "\tSet o = (New " + className + ")(a, b)", - "\tSet " + className + "Factory = o", - "End Function" - ].join("\r\n")) - VBClassPool[body] = className - } - var ret = window[className + "Factory"](accessors, VBMediator) //得到其产品 - return ret //得到其产品 - } - } -} - -/********************************************************************* - * 监控数组(与ms-each, ms-repeat配合使用) * - **********************************************************************/ - -function arrayFactory(model) { - var array = [] - array.$id = generateID() - array.$model = model //数据模型 - array.$events = {} - array.$events[subscribers] = [] - array._ = modelFactory({ - length: model.length - }) - array._.$watch("length", function (a, b) { - array.$fire("length", a, b) - }) - for (var i in EventBus) { - array[i] = EventBus[i] - } - avalon.mix(array, arrayPrototype) - return array -} - -function mutateArray(method, pos, n, index, method2, pos2, n2) { - var oldLen = this.length, loop = 2 - while (--loop) { - switch (method) { - case "add": - /* jshint ignore:start */ - var array = this.$model.slice(pos, pos + n).map(function (el) { - if (rcomplexType.test(avalon.type(el))) { - return el.$id ? el : modelFactory(el, 0, el) - } else { - return el - } - }) - /* jshint ignore:end */ - _splice.apply(this, [pos, 0].concat(array)) - this._fire("add", pos, n) - break - case "del": - var ret = this._splice(pos, n) - this._fire("del", pos, n) - break - } - if (method2) { - method = method2 - pos = pos2 - n = n2 - loop = 2 - method2 = 0 - } - } - this._fire("index", index) - if (this.length !== oldLen) { - this._.length = this.length - } - return ret -} - -var _splice = ap.splice -var arrayPrototype = { - _splice: _splice, - _fire: function (method, a, b) { - fireDependencies(this.$events[subscribers], method, a, b) - }, - size: function () { //取得数组长度,这个函数可以同步视图,length不能 - return this._.length - }, - pushArray: function (array) { - var m = array.length, n = this.length - if (m) { - ap.push.apply(this.$model, array) - mutateArray.call(this, "add", n, m, Math.max(0, n - 1)) - } - return m + n - }, - push: function () { - //http://jsperf.com/closure-with-arguments - var array = [] - var i, n = arguments.length - for (i = 0; i < n; i++) { - array[i] = arguments[i] - } - return this.pushArray(array) - }, - unshift: function () { - var m = arguments.length, n = this.length - if (m) { - ap.unshift.apply(this.$model, arguments) - mutateArray.call(this, "add", 0, m, 0) - } - return m + n //IE67的unshift不会返回长度 - }, - shift: function () { - if (this.length) { - var el = this.$model.shift() - mutateArray.call(this, "del", 0, 1, 0) - return el //返回被移除的元素 - } - }, - pop: function () { - var n = this.length - if (n) { - var el = this.$model.pop() - mutateArray.call(this, "del", n - 1, 1, Math.max(0, n - 2)) - return el //返回被移除的元素 - } - }, - splice: function (start) { - var m = arguments.length, args = [], change - var removed = _splice.apply(this.$model, arguments) - if (removed.length) { //如果用户删掉了元素 - args.push("del", start, removed.length, 0) - change = true - } - if (m > 2) { //如果用户添加了元素 - if (change) { - args.splice(3, 1, 0, "add", start, m - 2) - } else { - args.push("add", start, m - 2, 0) - } - change = true - } - if (change) { //返回被移除的元素 - return mutateArray.apply(this, args) - } else { - return [] - } - }, - contains: function (el) { //判定是否包含 - return this.indexOf(el) !== -1 - }, - remove: function (el) { //移除第一个等于给定值的元素 - return this.removeAt(this.indexOf(el)) - }, - removeAt: function (index) { //移除指定索引上的元素 - if (index >= 0) { - this.$model.splice(index, 1) - return mutateArray.call(this, "del", index, 1, 0) - } - return [] - }, - clear: function () { - this.$model.length = this.length = this._.length = 0 //清空数组 - this._fire("clear", 0) - return this - }, - removeAll: function (all) { //移除N个元素 - if (Array.isArray(all)) { - for (var i = this.length - 1; i >= 0; i--) { - if (all.indexOf(this[i]) !== -1) { - this.removeAt(i) - } - } - } else if (typeof all === "function") { - for ( i = this.length - 1; i >= 0; i--) { - var el = this[i] - if (all(el, i)) { - this.removeAt(i) - } - } - } else { - this.clear() - } - }, - ensure: function (el) { - if (!this.contains(el)) { //只有不存在才push - this.push(el) - } - return this - }, - set: function (index, val) { - if (index >= 0) { - var valueType = avalon.type(val) - if (val && val.$model) { - val = val.$model - } - var target = this[index] - if (valueType === "object") { - for (var i in val) { - if (target.hasOwnProperty(i)) { - target[i] = val[i] - } - } - } else if (valueType === "array") { - target.clear().push.apply(target, val) - } else if (target !== val) { - this[index] = val - this.$model[index] = val - this._fire("set", index, val) - } - } - return this - } -} -//相当于原来bindingExecutors.repeat 的index分支 -function resetIndex(array, pos) { - var last = array.length - 1 - for (var el; el = array[pos]; pos++) { - el.$index = pos - el.$first = pos === 0 - el.$last = pos === last - } -} - -function sortByIndex(array, indexes) { - var map = {}; - for (var i = 0, n = indexes.length; i < n; i++) { - map[i] = array[i] // preserve - var j = indexes[i] - if (j in map) { - array[i] = map[j] - delete map[j] - } else { - array[i] = array[j] - } - } -} - -"sort,reverse".replace(rword, function (method) { - arrayPrototype[method] = function () { - var newArray = this.$model//这是要排序的新数组 - var oldArray = newArray.concat() //保持原来状态的旧数组 - var mask = Math.random() - var indexes = [] - var hasSort - ap[method].apply(newArray, arguments) //排序 - for (var i = 0, n = oldArray.length; i < n; i++) { - var neo = newArray[i] - var old = oldArray[i] - if (isEqual(neo, old)) { - indexes.push(i) - } else { - var index = oldArray.indexOf(neo) - indexes.push(index)//得到新数组的每个元素在旧数组对应的位置 - oldArray[index] = mask //屏蔽已经找过的元素 - hasSort = true - } - } - if (hasSort) { - sortByIndex(this, indexes) - // sortByIndex(this.$proxy, indexes) - this._fire("move", indexes) - this._fire("index", 0) - } - return this - } -}) - - -/********************************************************************* - * 依赖调度系统 * - **********************************************************************/ -//检测两个对象间的依赖关系 -var dependencyDetection = (function () { - var outerFrames = [] - var currentFrame - return { - begin: function (accessorObject) { - //accessorObject为一个拥有callback的对象 - outerFrames.push(currentFrame) - currentFrame = accessorObject - }, - end: function () { - currentFrame = outerFrames.pop() - }, - collectDependency: function (vmodel, accessor) { - if (currentFrame) { - //被dependencyDetection.begin调用 - currentFrame.callback(vmodel, accessor); - } - } - }; -})() -//将绑定对象注入到其依赖项的订阅数组中 -var ronduplex = /^(duplex|on)$/ -avalon.injectBinding = function (data) { - var valueFn = data.evaluator - if (valueFn) { //如果是求值函数 - dependencyDetection.begin({ - callback: function (vmodel, dependency) { - injectDependency(vmodel.$events[dependency._name], data) - } - }) - try { - var value = ronduplex.test(data.type) ? data : valueFn.apply(0, data.args) - if(value === void 0){ - delete data.evaluator - } - data.handler(value, data.element, data) - } catch (e) { - //log("warning:exception throwed in [avalon.injectBinding] " + e) - delete data.evaluator - var node = data.element - if (node.nodeType === 3) { - var parent = node.parentNode - if (kernel.commentInterpolate) { - parent.replaceChild(DOC.createComment(data.value), node) - } else { - node.data = openTag + (data.oneTime ? "::" : "") + data.value + closeTag - } - } - } finally { - dependencyDetection.end() - } - } -} - -//将依赖项(比它高层的访问器或构建视图刷新函数的绑定对象)注入到订阅者数组 -function injectDependency(list, data) { - if (data.oneTime) - return - if (list && avalon.Array.ensure(list, data) && data.element) { - injectDisposeQueue(data, list) - } -} - -//通知依赖于这个访问器的订阅者更新自身 -function fireDependencies(list) { - if (list && list.length) { - if (new Date() - beginTime > 444 && typeof list[0] === "object") { - rejectDisposeQueue() - } - var args = aslice.call(arguments, 1) - for (var i = list.length, fn; fn = list[--i]; ) { - var el = fn.element - if (el && el.parentNode) { - try { - var valueFn = fn.evaluator - if (fn.$repeat) { - fn.handler.apply(fn, args) //处理监控数组的方法 - }else if("$repeat" in fn || !valueFn ){//如果没有eval,先eval - bindingHandlers[fn.type](fn, fn.vmodels) - } else if (fn.type !== "on") { //事件绑定只能由用户触发,不能由程序触发 - var value = valueFn.apply(0, fn.args || []) - fn.handler(value, el, fn) - } - } catch (e) { } - } - } - } -} -/********************************************************************* - * 定时GC回收机制 * - **********************************************************************/ -var disposeCount = 0 -var disposeQueue = avalon.$$subscribers = [] -var beginTime = new Date() -var oldInfo = {} -var uuid2Node = {} -function getUid(obj, makeID) { //IE9+,标准浏览器 - if (!obj.uuid && !makeID) { - obj.uuid = ++disposeCount - uuid2Node[obj.uuid] = obj - } - return obj.uuid -} -function getNode(uuid) { - return uuid2Node[uuid] -} -//添加到回收列队中 -function injectDisposeQueue(data, list) { - var elem = data.element - if (!data.uuid) { - if (elem.nodeType !== 1) { - data.uuid = data.type + (data.pos || 0) + "-" + getUid(elem.parentNode) - } else { - data.uuid = data.name + "-" + getUid(elem) - } - } - var lists = data.lists || (data.lists = []) - avalon.Array.ensure(lists, list) - list.$uuid = list.$uuid || generateID() - if (!disposeQueue[data.uuid]) { - disposeQueue[data.uuid] = 1 - disposeQueue.push(data) - } -} - -function rejectDisposeQueue(data) { - if (avalon.optimize) - return - var i = disposeQueue.length - var n = i - var allTypes = [] - var iffishTypes = {} - var newInfo = {} - //对页面上所有绑定对象进行分门别类, 只检测个数发生变化的类型 - while (data = disposeQueue[--i]) { - var type = data.type - if (newInfo[type]) { - newInfo[type]++ - } else { - newInfo[type] = 1 - allTypes.push(type) - } - } - var diff = false - allTypes.forEach(function (type) { - if (oldInfo[type] !== newInfo[type]) { - iffishTypes[type] = 1 - diff = true - } - }) - i = n - if (diff) { - while (data = disposeQueue[--i]) { - if (!data.element) - continue - if (iffishTypes[data.type] && shouldDispose(data.element)) { //如果它没有在DOM树 - disposeQueue.splice(i, 1) - delete disposeQueue[data.uuid] - delete uuid2Node[data.element.uuid] - var lists = data.lists - for (var k = 0, list; list = lists[k++]; ) { - avalon.Array.remove(lists, list) - avalon.Array.remove(list, data) - } - disposeData(data) - } - } - } - oldInfo = newInfo - beginTime = new Date() -} - -function disposeData(data) { - data.element = null - data.rollback && data.rollback() - for (var key in data) { - data[key] = null - } -} - -function shouldDispose(el) { - try {//IE下,如果文本节点脱离DOM树,访问parentNode会报错 - if (!el.parentNode) { - return true - } - } catch (e) { - return true - } - - return el.msRetain ? 0 : (el.nodeType === 1 ? !root.contains(el) : !avalon.contains(root, el)) -} - -/************************************************************************ - * HTML处理(parseHTML, innerHTML, clearHTML) * - ************************************************************************/ -// We have to close these tags to support XHTML -var tagHooks = { - area: [1, "", ""], - param: [1, "", ""], - col: [2, "", "
    "], - legend: [1, "
    ", "
    "], - option: [1, ""], - thead: [1, "", "
    "], - tr: [2, "", "
    "], - td: [3, "", "
    "], - g: [1, '', ''], - //IE6-8在用innerHTML生成节点时,不能直接创建no-scope元素与HTML5的新标签 - _default: W3C ? [0, "", ""] : [1, "X
    ", "
    "] //div可以不用闭合 -} -tagHooks.th = tagHooks.td -tagHooks.optgroup = tagHooks.option -tagHooks.tbody = tagHooks.tfoot = tagHooks.colgroup = tagHooks.caption = tagHooks.thead -String("circle,defs,ellipse,image,line,path,polygon,polyline,rect,symbol,text,use").replace(rword, function (tag) { - tagHooks[tag] = tagHooks.g //处理SVG -}) -var rtagName = /<([\w:]+)/ //取得其tagName -var rxhtml = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig -var rcreate = W3C ? /[^\d\D]/ : /(<(?:script|link|style|meta|noscript))/ig -var scriptTypes = oneObject(["", "text/javascript", "text/ecmascript", "application/ecmascript", "application/javascript"]) -var rnest = /<(?:tb|td|tf|th|tr|col|opt|leg|cap|area)/ //需要处理套嵌关系的标签 -var script = DOC.createElement("script") -var rhtml = /<|&#?\w+;/ -avalon.parseHTML = function (html) { - var fragment = avalonFragment.cloneNode(false) - if (typeof html !== "string") { - return fragment - } - if (!rhtml.test(html)) { - fragment.appendChild(DOC.createTextNode(html)) - return fragment - } - html = html.replace(rxhtml, "<$1>").trim() - var tag = (rtagName.exec(html) || ["", ""])[1].toLowerCase(), - //取得其标签名 - wrap = tagHooks[tag] || tagHooks._default, - wrapper = cinerator, - firstChild, neo - if (!W3C) { //fix IE - html = html.replace(rcreate, "
    $1") //在link style script等标签之前添加一个补丁 - } - wrapper.innerHTML = wrap[1] + html + wrap[2] - var els = wrapper.getElementsByTagName("script") - if (els.length) { //使用innerHTML生成的script节点不会发出请求与执行text属性 - for (var i = 0, el; el = els[i++]; ) { - if (scriptTypes[el.type]) { - //以偷龙转凤方式恢复执行脚本功能 - neo = script.cloneNode(false) //FF不能省略参数 - ap.forEach.call(el.attributes, function (attr) { - if (attr && attr.specified) { - neo[attr.name] = attr.value //复制其属性 - neo.setAttribute(attr.name, attr.value) - } - }) // jshint ignore:line - neo.text = el.text - el.parentNode.replaceChild(neo, el) //替换节点 - } - } - } - if (!W3C) { //fix IE - var target = wrap[1] === "X
    " ? wrapper.lastChild.firstChild : wrapper.lastChild - if (target && target.tagName === "TABLE" && tag !== "tbody") { - //IE6-7处理 --> , - // --> , - // -->
    - for (els = target.childNodes, i = 0; el = els[i++]; ) { - if (el.tagName === "TBODY" && !el.innerHTML) { - target.removeChild(el) - break - } - } - } - els = wrapper.getElementsByTagName("br") - var n = els.length - while (el = els[--n]) { - if (el.className === "msNoScope") { - el.parentNode.removeChild(el) - } - } - for (els = wrapper.all, i = 0; el = els[i++]; ) { //fix VML - if (isVML(el)) { - fixVML(el) - } - } - } - //移除我们为了符合套嵌关系而添加的标签 - for (i = wrap[0]; i--; wrapper = wrapper.lastChild) { - } - while (firstChild = wrapper.firstChild) { // 将wrapper上的节点转移到文档碎片上! - fragment.appendChild(firstChild) - } - return fragment -} - -function isVML(src) { - var nodeName = src.nodeName - return nodeName.toLowerCase() === nodeName && src.scopeName && src.outerText === "" -} - -function fixVML(node) { - if (node.currentStyle.behavior !== "url(#default#VML)") { - node.style.behavior = "url(#default#VML)" - node.style.display = "inline-block" - node.style.zoom = 1 //hasLayout - } -} -avalon.innerHTML = function (node, html) { - if (!W3C && (!rcreate.test(html) && !rnest.test(html))) { - try { - node.innerHTML = html - return - } catch (e) { - } - } - var a = this.parseHTML(html) - this.clearHTML(node).appendChild(a) -} -avalon.clearHTML = function (node) { - node.textContent = "" - while (node.firstChild) { - node.removeChild(node.firstChild) - } - return node -} - -/********************************************************************* - * avalon的原型方法定义区 * - **********************************************************************/ - -function hyphen(target) { - //转换为连字符线风格 - return target.replace(/([a-z\d])([A-Z]+)/g, "$1-$2").toLowerCase() -} - -function camelize(target) { - //提前判断,提高getStyle等的效率 - if (!target || target.indexOf("-") < 0 && target.indexOf("_") < 0) { - return target - } - //转换为驼峰风格 - return target.replace(/[-_][^-_]/g, function(match) { - return match.charAt(1).toUpperCase() - }) -} - -var fakeClassListMethods = { - _toString: function() { - var node = this.node - var cls = node.className - var str = typeof cls === "string" ? cls : cls.baseVal - return str.split(/\s+/).join(" ") - }, - _contains: function(cls) { - return (" " + this + " ").indexOf(" " + cls + " ") > -1 - }, - _add: function(cls) { - if (!this.contains(cls)) { - this._set(this + " " + cls) - } - }, - _remove: function(cls) { - this._set((" " + this + " ").replace(" " + cls + " ", " ")) - }, - __set: function(cls) { - cls = cls.trim() - var node = this.node - if (rsvg.test(node)) { - //SVG元素的className是一个对象 SVGAnimatedString { baseVal="", animVal=""},只能通过set/getAttribute操作 - node.setAttribute("class", cls) - } else { - node.className = cls - } - } //toggle存在版本差异,因此不使用它 -} - - function fakeClassList(node) { - if (!("classList" in node)) { - node.classList = { - node: node - } - for (var k in fakeClassListMethods) { - node.classList[k.slice(1)] = fakeClassListMethods[k] - } - } - return node.classList - } - - - "add,remove".replace(rword, function(method) { - avalon.fn[method + "Class"] = function(cls) { - var el = this[0] - //https://developer.mozilla.org/zh-CN/docs/Mozilla/Firefox/Releases/26 - if (cls && typeof cls === "string" && el && el.nodeType === 1) { - cls.replace(/\S+/g, function(c) { - fakeClassList(el)[method](c) - }) - } - return this - } - }) - avalon.fn.mix({ - hasClass: function(cls) { - var el = this[0] || {} - return el.nodeType === 1 && fakeClassList(el).contains(cls) - }, - toggleClass: function(value, stateVal) { - var className, i = 0 - var classNames = String(value).split(/\s+/) - var isBool = typeof stateVal === "boolean" - while ((className = classNames[i++])) { - var state = isBool ? stateVal : !this.hasClass(className) - this[state ? "addClass" : "removeClass"](className) - } - return this - }, - attr: function(name, value) { - if (arguments.length === 2) { - this[0].setAttribute(name, value) - return this - } else { - return this[0].getAttribute(name) - } - }, - data: function(name, value) { - name = "data-" + hyphen(name || "") - switch (arguments.length) { - case 2: - this.attr(name, value) - return this - case 1: - var val = this.attr(name) - return parseData(val) - case 0: - var ret = {} - ap.forEach.call(this[0].attributes, function(attr) { - if (attr) { - name = attr.name - if (!name.indexOf("data-")) { - name = camelize(name.slice(5)) - ret[name] = parseData(attr.value) - } - } - }) - return ret - } - }, - removeData: function(name) { - name = "data-" + hyphen(name) - this[0].removeAttribute(name) - return this - }, - css: function(name, value) { - if (avalon.isPlainObject(name)) { - for (var i in name) { - avalon.css(this, i, name[i]) - } - } else { - var ret = avalon.css(this, name, value) - } - return ret !== void 0 ? ret : this - }, - position: function() { - var offsetParent, offset, - elem = this[0], - parentOffset = { - top: 0, - left: 0 - } - if (!elem) { - return - } - if (this.css("position") === "fixed") { - offset = elem.getBoundingClientRect() - } else { - offsetParent = this.offsetParent() //得到真正的offsetParent - offset = this.offset() // 得到正确的offsetParent - if (offsetParent[0].tagName !== "HTML") { - parentOffset = offsetParent.offset() - } - parentOffset.top += avalon.css(offsetParent[0], "borderTopWidth", true) - parentOffset.left += avalon.css(offsetParent[0], "borderLeftWidth", true) - - // Subtract offsetParent scroll positions - parentOffset.top -= offsetParent.scrollTop() - parentOffset.left -= offsetParent.scrollLeft() - } - return { - top: offset.top - parentOffset.top - avalon.css(elem, "marginTop", true), - left: offset.left - parentOffset.left - avalon.css(elem, "marginLeft", true) - } - }, - offsetParent: function() { - var offsetParent = this[0].offsetParent - while (offsetParent && avalon.css(offsetParent, "position") === "static") { - offsetParent = offsetParent.offsetParent; - } - return avalon(offsetParent || root) - }, - bind: function(type, fn, phase) { - if (this[0]) { //此方法不会链 - return avalon.bind(this[0], type, fn, phase) - } - }, - unbind: function(type, fn, phase) { - if (this[0]) { - avalon.unbind(this[0], type, fn, phase) - } - return this - }, - val: function(value) { - var node = this[0] - if (node && node.nodeType === 1) { - var get = arguments.length === 0 - var access = get ? ":get" : ":set" - var fn = valHooks[getValType(node) + access] - if (fn) { - var val = fn(node, value) - } else if (get) { - return (node.value || "").replace(/\r/g, "") - } else { - node.value = value - } - } - return get ? val : this - } - }) - - function parseData(data) { - try { - if (typeof data === "object") - return data - data = data === "true" ? true : - data === "false" ? false : - data === "null" ? null : +data + "" === data ? +data : rbrace.test(data) ? avalon.parseJSON(data) : data - } catch (e) {} - return data - } -var rbrace = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/, - rvalidchars = /^[\],:{}\s]*$/, - rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g, - rvalidescape = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g, - rvalidtokens = /"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g -avalon.parseJSON = window.JSON ? JSON.parse : function(data) { - if (typeof data === "string") { - data = data.trim(); - if (data) { - if (rvalidchars.test(data.replace(rvalidescape, "@") - .replace(rvalidtokens, "]") - .replace(rvalidbraces, ""))) { - return (new Function("return " + data))() // jshint ignore:line - } - } - avalon.error("Invalid JSON: " + data) - } - return data -} - -//生成avalon.fn.scrollLeft, avalon.fn.scrollTop方法 -avalon.each({ - scrollLeft: "pageXOffset", - scrollTop: "pageYOffset" -}, function(method, prop) { - avalon.fn[method] = function(val) { - var node = this[0] || {}, win = getWindow(node), - top = method === "scrollTop" - if (!arguments.length) { - return win ? (prop in win) ? win[prop] : root[method] : node[method] - } else { - if (win) { - win.scrollTo(!top ? val : avalon(win).scrollLeft(), top ? val : avalon(win).scrollTop()) - } else { - node[method] = val - } - } - } -}) - -function getWindow(node) { - return node.window && node.document ? node : node.nodeType === 9 ? node.defaultView || node.parentWindow : false; -} -//=============================css相关======================= -var cssHooks = avalon.cssHooks = {} -var prefixes = ["", "-webkit-", "-o-", "-moz-", "-ms-"] -var cssMap = { - "float": W3C ? "cssFloat" : "styleFloat" -} -avalon.cssNumber = oneObject("columnCount,order,fillOpacity,fontWeight,lineHeight,opacity,orphans,widows,zIndex,zoom") - -avalon.cssName = function(name, host, camelCase) { - if (cssMap[name]) { - return cssMap[name] - } - host = host || root.style - for (var i = 0, n = prefixes.length; i < n; i++) { - camelCase = camelize(prefixes[i] + name) - if (camelCase in host) { - return (cssMap[name] = camelCase) - } - } - return null -} -cssHooks["@:set"] = function(node, name, value) { - try { //node.style.width = NaN;node.style.width = "xxxxxxx";node.style.width = undefine 在旧式IE下会抛异常 - node.style[name] = value - } catch (e) {} -} -if (window.getComputedStyle) { - cssHooks["@:get"] = function(node, name) { - if (!node || !node.style) { - throw new Error("getComputedStyle要求传入一个节点 " + node) - } - var ret, styles = getComputedStyle(node, null) - if (styles) { - ret = name === "filter" ? styles.getPropertyValue(name) : styles[name] - if (ret === "") { - ret = node.style[name] //其他浏览器需要我们手动取内联样式 - } - } - return ret - } - cssHooks["opacity:get"] = function(node) { - var ret = cssHooks["@:get"](node, "opacity") - return ret === "" ? "1" : ret - } -} else { - var rnumnonpx = /^-?(?:\d*\.)?\d+(?!px)[^\d\s]+$/i - var rposition = /^(top|right|bottom|left)$/ - var ralpha = /alpha\([^)]*\)/i - var ie8 = !! window.XDomainRequest - var salpha = "DXImageTransform.Microsoft.Alpha" - var border = { - thin: ie8 ? '1px' : '2px', - medium: ie8 ? '3px' : '4px', - thick: ie8 ? '5px' : '6px' - } - cssHooks["@:get"] = function(node, name) { - //取得精确值,不过它有可能是带em,pc,mm,pt,%等单位 - var currentStyle = node.currentStyle - var ret = currentStyle[name] - if ((rnumnonpx.test(ret) && !rposition.test(ret))) { - //①,保存原有的style.left, runtimeStyle.left, - var style = node.style, - left = style.left, - rsLeft = node.runtimeStyle.left - //②由于③处的style.left = xxx会影响到currentStyle.left, - //因此把它currentStyle.left放到runtimeStyle.left, - //runtimeStyle.left拥有最高优先级,不会style.left影响 - node.runtimeStyle.left = currentStyle.left - //③将精确值赋给到style.left,然后通过IE的另一个私有属性 style.pixelLeft - //得到单位为px的结果;fontSize的分支见http://bugs.jquery.com/ticket/760 - style.left = name === 'fontSize' ? '1em' : (ret || 0) - ret = style.pixelLeft + "px" - //④还原 style.left,runtimeStyle.left - style.left = left - node.runtimeStyle.left = rsLeft - } - if (ret === "medium") { - name = name.replace("Width", "Style") - //border width 默认值为medium,即使其为0" - if (currentStyle[name] === "none") { - ret = "0px" - } - } - return ret === "" ? "auto" : border[ret] || ret - } - cssHooks["opacity:set"] = function(node, name, value) { - var style = node.style - var opacity = isFinite(value) && value <= 1 ? "alpha(opacity=" + value * 100 + ")" : "" - var filter = style.filter || ""; - style.zoom = 1 - //不能使用以下方式设置透明度 - //node.filters.alpha.opacity = value * 100 - style.filter = (ralpha.test(filter) ? - filter.replace(ralpha, opacity) : - filter + " " + opacity).trim() - if (!style.filter) { - style.removeAttribute("filter") - } - } - cssHooks["opacity:get"] = function(node) { - //这是最快的获取IE透明值的方式,不需要动用正则了! - var alpha = node.filters.alpha || node.filters[salpha], - op = alpha && alpha.enabled ? alpha.opacity : 100 - return (op / 100) + "" //确保返回的是字符串 - } -} - -"top,left".replace(rword, function(name) { - cssHooks[name + ":get"] = function(node) { - var computed = cssHooks["@:get"](node, name) - return /px$/.test(computed) ? computed : - avalon(node).position()[name] + "px" - } -}) - -var cssShow = { - position: "absolute", - visibility: "hidden", - display: "block" -} - -var rdisplayswap = /^(none|table(?!-c[ea]).+)/ - - function showHidden(node, array) { - //http://www.cnblogs.com/rubylouvre/archive/2012/10/27/2742529.html - if (node.offsetWidth <= 0) { //opera.offsetWidth可能小于0 - if (rdisplayswap.test(cssHooks["@:get"](node, "display"))) { - var obj = { - node: node - } - for (var name in cssShow) { - obj[name] = node.style[name] - node.style[name] = cssShow[name] - } - array.push(obj) - } - var parent = node.parentNode - if (parent && parent.nodeType === 1) { - showHidden(parent, array) - } - } - } - "Width,Height".replace(rword, function(name) { //fix 481 - var method = name.toLowerCase(), - clientProp = "client" + name, - scrollProp = "scroll" + name, - offsetProp = "offset" + name - cssHooks[method + ":get"] = function(node, which, override) { - var boxSizing = -4 - if (typeof override === "number") { - boxSizing = override - } - which = name === "Width" ? ["Left", "Right"] : ["Top", "Bottom"] - var ret = node[offsetProp] // border-box 0 - if (boxSizing === 2) { // margin-box 2 - return ret + avalon.css(node, "margin" + which[0], true) + avalon.css(node, "margin" + which[1], true) - } - if (boxSizing < 0) { // padding-box -2 - ret = ret - avalon.css(node, "border" + which[0] + "Width", true) - avalon.css(node, "border" + which[1] + "Width", true) - } - if (boxSizing === -4) { // content-box -4 - ret = ret - avalon.css(node, "padding" + which[0], true) - avalon.css(node, "padding" + which[1], true) - } - return ret - } - cssHooks[method + "&get"] = function(node) { - var hidden = []; - showHidden(node, hidden); - var val = cssHooks[method + ":get"](node) - for (var i = 0, obj; obj = hidden[i++];) { - node = obj.node - for (var n in obj) { - if (typeof obj[n] === "string") { - node.style[n] = obj[n] - } - } - } - return val; - } - avalon.fn[method] = function(value) { //会忽视其display - var node = this[0] - if (arguments.length === 0) { - if (node.setTimeout) { //取得窗口尺寸,IE9后可以用node.innerWidth /innerHeight代替 - return node["inner" + name] || node.document.documentElement[clientProp] - } - if (node.nodeType === 9) { //取得页面尺寸 - var doc = node.documentElement - //FF chrome html.scrollHeight< body.scrollHeight - //IE 标准模式 : html.scrollHeight> body.scrollHeight - //IE 怪异模式 : html.scrollHeight 最大等于可视窗口多一点? - return Math.max(node.body[scrollProp], doc[scrollProp], node.body[offsetProp], doc[offsetProp], doc[clientProp]) - } - return cssHooks[method + "&get"](node) - } else { - return this.css(method, value) - } - } - avalon.fn["inner" + name] = function() { - return cssHooks[method + ":get"](this[0], void 0, -2) - } - avalon.fn["outer" + name] = function(includeMargin) { - return cssHooks[method + ":get"](this[0], void 0, includeMargin === true ? 2 : 0) - } - }) - avalon.fn.offset = function() { //取得距离页面左右角的坐标 - var node = this[0], - box = { - left: 0, - top: 0 - } - if (!node || !node.tagName || !node.ownerDocument) { - return box - } - var doc = node.ownerDocument, - body = doc.body, - root = doc.documentElement, - win = doc.defaultView || doc.parentWindow - if (!avalon.contains(root, node)) { - return box - } - //http://hkom.blog1.fc2.com/?mode=m&no=750 body的偏移量是不包含margin的 - //我们可以通过getBoundingClientRect来获得元素相对于client的rect. - //http://msdn.microsoft.com/en-us/library/ms536433.aspx - if (node.getBoundingClientRect) { - box = node.getBoundingClientRect() // BlackBerry 5, iOS 3 (original iPhone) - } - //chrome/IE6: body.scrollTop, firefox/other: root.scrollTop - var clientTop = root.clientTop || body.clientTop, - clientLeft = root.clientLeft || body.clientLeft, - scrollTop = Math.max(win.pageYOffset || 0, root.scrollTop, body.scrollTop), - scrollLeft = Math.max(win.pageXOffset || 0, root.scrollLeft, body.scrollLeft) - // 把滚动距离加到left,top中去。 - // IE一些版本中会自动为HTML元素加上2px的border,我们需要去掉它 - // http://msdn.microsoft.com/en-us/library/ms533564(VS.85).aspx - return { - top: box.top + scrollTop - clientTop, - left: box.left + scrollLeft - clientLeft - } - } - - //==================================val相关============================ - - function getValType(elem) { - var ret = elem.tagName.toLowerCase() - return ret === "input" && /checkbox|radio/.test(elem.type) ? "checked" : ret - } -var roption = /^]+))?)*\s+value[\s=]/i -var valHooks = { - "option:get": IEVersion ? function(node) { - //在IE11及W3C,如果没有指定value,那么node.value默认为node.text(存在trim作),但IE9-10则是取innerHTML(没trim操作) - //specified并不可靠,因此通过分析outerHTML判定用户有没有显示定义value - return roption.test(node.outerHTML) ? node.value : node.text.trim() - } : function(node) { - return node.value - }, - "select:get": function(node, value) { - var option, options = node.options, - index = node.selectedIndex, - getter = valHooks["option:get"], - one = node.type === "select-one" || index < 0, - values = one ? null : [], - max = one ? index + 1 : options.length, - i = index < 0 ? max : one ? index : 0 - for (; i < max; i++) { - option = options[i] - //旧式IE在reset后不会改变selected,需要改用i === index判定 - //我们过滤所有disabled的option元素,但在safari5下,如果设置select为disable,那么其所有孩子都disable - //因此当一个元素为disable,需要检测其是否显式设置了disable及其父节点的disable情况 - if ((option.selected || i === index) && !option.disabled) { - value = getter(option) - if (one) { - return value - } - //收集所有selected值组成数组返回 - values.push(value) - } - } - return values - }, - "select:set": function(node, values, optionSet) { - values = [].concat(values) //强制转换为数组 - var getter = valHooks["option:get"] - for (var i = 0, el; el = node.options[i++];) { - if ((el.selected = values.indexOf(getter(el)) > -1)) { - optionSet = true - } - } - if (!optionSet) { - node.selectedIndex = -1 - } - } -} - -/********************************************************************* - * 编译系统 * - **********************************************************************/ -var meta = { - '\b': '\\b', - '\t': '\\t', - '\n': '\\n', - '\f': '\\f', - '\r': '\\r', - '"': '\\"', - '\\': '\\\\' -} -var quote = window.JSON && JSON.stringify || function(str) { - return '"' + str.replace(/[\\\"\x00-\x1f]/g, function(a) { - var c = meta[a]; - return typeof c === 'string' ? c : - '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); - }) + '"' -} - -var keywords = [ - "break,case,catch,continue,debugger,default,delete,do,else,false", - "finally,for,function,if,in,instanceof,new,null,return,switch,this", - "throw,true,try,typeof,var,void,while,with", /* 关键字*/ - "abstract,boolean,byte,char,class,const,double,enum,export,extends", - "final,float,goto,implements,import,int,interface,long,native", - "package,private,protected,public,short,static,super,synchronized", - "throws,transient,volatile", /*保留字*/ - "arguments,let,yield,undefined" /* ECMA 5 - use strict*/].join(",") -var rrexpstr = /\/\*[\w\W]*?\*\/|\/\/[^\n]*\n|\/\/[^\n]*$|"(?:[^"\\]|\\[\w\W])*"|'(?:[^'\\]|\\[\w\W])*'|[\s\t\n]*\.[\s\t\n]*[$\w\.]+/g -var rsplit = /[^\w$]+/g -var rkeywords = new RegExp(["\\b" + keywords.replace(/,/g, '\\b|\\b') + "\\b"].join('|'), 'g') -var rnumber = /\b\d[^,]*/g -var rcomma = /^,+|,+$/g -var variablePool = new Cache(512) -var getVariables = function (code) { - var key = "," + code.trim() - var ret = variablePool.get(key) - if (ret) { - return ret - } - var match = code - .replace(rrexpstr, "") - .replace(rsplit, ",") - .replace(rkeywords, "") - .replace(rnumber, "") - .replace(rcomma, "") - .split(/^$|,+/) - return variablePool.put(key, uniqSet(match)) -} -/*添加赋值语句*/ - -function addAssign(vars, scope, name, data) { - var ret = [], - prefix = " = " + name + "." - for (var i = vars.length, prop; prop = vars[--i]; ) { - if (scope.hasOwnProperty(prop)) { - ret.push(prop + prefix + prop) - data.vars.push(prop) - if (data.type === "duplex") { - vars.get = name + "." + prop - } - vars.splice(i, 1) - } - } - return ret -} - -function uniqSet(array) { - var ret = [], - unique = {} - for (var i = 0; i < array.length; i++) { - var el = array[i] - var id = el && typeof el.$id === "string" ? el.$id : el - if (!unique[id]) { - unique[id] = ret.push(el) - } - } - return ret -} -//缓存求值函数,以便多次利用 -var evaluatorPool = new Cache(128) -//取得求值函数及其传参 -var rduplex = /\w\[.*\]|\w\.\w/ -var rproxy = /(\$proxy\$[a-z]+)\d+$/ -var rthimRightParentheses = /\)\s*$/ -var rthimOtherParentheses = /\)\s*\|/g -var rquoteFilterName = /\|\s*([$\w]+)/g -var rpatchBracket = /"\s*\["/g -var rthimLeftParentheses = /"\s*\(/g -function parseFilter(val, filters) { - filters = filters - .replace(rthimRightParentheses, "")//处理最后的小括号 - .replace(rthimOtherParentheses, function () {//处理其他小括号 - return "],|" - }) - .replace(rquoteFilterName, function (a, b) { //处理|及它后面的过滤器的名字 - return "[" + quote(b) - }) - .replace(rpatchBracket, function () { - return '"],["' - }) - .replace(rthimLeftParentheses, function () { - return '",' - }) + "]" - return "return avalon.filters.$filter(" + val + ", " + filters + ")" -} - -function parseExpr(code, scopes, data) { - var dataType = data.type - var filters = data.filters || "" - var exprId = scopes.map(function (el) { - return String(el.$id).replace(rproxy, "$1") - }) + code + dataType + filters - var vars = getVariables(code).concat(), - assigns = [], - names = [], - args = [], - prefix = "" - //args 是一个对象数组, names 是将要生成的求值函数的参数 - scopes = uniqSet(scopes) - data.vars = [] - for (var i = 0, sn = scopes.length; i < sn; i++) { - if (vars.length) { - var name = "vm" + expose + "_" + i - names.push(name) - args.push(scopes[i]) - assigns.push.apply(assigns, addAssign(vars, scopes[i], name, data)) - } - } - if (!assigns.length && dataType === "duplex") { - return - } - if (dataType !== "duplex" && (code.indexOf("||") > -1 || code.indexOf("&&") > -1)) { - //https://github.com/RubyLouvre/avalon/issues/583 - data.vars.forEach(function (v) { - var reg = new RegExp("\\b" + v + "(?:\\.\\w+|\\[\\w+\\])+", "ig") - code = code.replace(reg, function (_) { - var c = _.charAt(v.length) - var r = IEVersion ? code.slice(arguments[1] + _.length) : RegExp.rightContext - var method = /^\s*\(/.test(r) - if (c === "." || c === "[" || method) {//比如v为aa,我们只匹配aa.bb,aa[cc],不匹配aaa.xxx - var name = "var" + String(Math.random()).replace(/^0\./, "") - if (method) {//array.size() - var array = _.split(".") - if (array.length > 2) { - var last = array.pop() - assigns.push(name + " = " + array.join(".")) - return name + "." + last - } else { - return _ - } - } - assigns.push(name + " = " + _) - return name - } else { - return _ - } - }) - }) - } - //---------------args---------------- - data.args = args - //---------------cache---------------- - delete data.vars - var fn = evaluatorPool.get(exprId) //直接从缓存,免得重复生成 - if (fn) { - data.evaluator = fn - return - } - prefix = assigns.join(", ") - if (prefix) { - prefix = "var " + prefix - } - if (/\S/.test(filters)) { //文本绑定,双工绑定才有过滤器 - if (!/text|html/.test(data.type)) { - throw Error("ms-" + data.type + "不支持过滤器") - } - code = "\nvar ret" + expose + " = " + code + ";\r\n" - code += parseFilter("ret" + expose, filters) - } else if (dataType === "duplex") { //双工绑定 - var _body = "'use strict';\nreturn function(vvv){\n\t" + - prefix + - ";\n\tif(!arguments.length){\n\t\treturn " + - code + - "\n\t}\n\t" + (!rduplex.test(code) ? vars.get : code) + - "= vvv;\n} " - try { - fn = Function.apply(noop, names.concat(_body)) - data.evaluator = evaluatorPool.put(exprId, fn) - } catch (e) { - log("debug: parse error," + e.message) - } - return - } else if (dataType === "on") { //事件绑定 - if (code.indexOf("(") === -1) { - code += ".call(this, $event)" - } else { - code = code.replace("(", ".call(this,") - } - names.push("$event") - code = "\nreturn " + code + ";" //IE全家 Function("return ")出错,需要Function("return ;") - var lastIndex = code.lastIndexOf("\nreturn") - var header = code.slice(0, lastIndex) - var footer = code.slice(lastIndex) - code = header + "\n" + footer - } else { //其他绑定 - code = "\nreturn " + code + ";" //IE全家 Function("return ")出错,需要Function("return ;") - } - try { - fn = Function.apply(noop, names.concat("'use strict';\n" + prefix + code)) - data.evaluator = evaluatorPool.put(exprId, fn) - } catch (e) { - log("debug: parse error," + e.message) - } finally { - vars = assigns = names = null //释放内存 - } -} - - -//parseExpr的智能引用代理 - -function parseExprProxy(code, scopes, data, tokens, noRegister) { - if (Array.isArray(tokens)) { - code = tokens.map(function (el) { - return el.expr ? "(" + el.value + ")" : quote(el.value) - }).join(" + ") - } - parseExpr(code, scopes, data) - if (data.evaluator && !noRegister) { - data.handler = bindingExecutors[data.handlerName || data.type] - //方便调试 - //这里非常重要,我们通过判定视图刷新函数的element是否在DOM树决定 - //将它移出订阅者列表 - avalon.injectBinding(data) - } -} -avalon.parseExprProxy = parseExprProxy -/********************************************************************* - * 扫描系统 * - **********************************************************************/ - -avalon.scan = function(elem, vmodel) { - elem = elem || root - var vmodels = vmodel ? [].concat(vmodel) : [] - scanTag(elem, vmodels) -} - -//http://www.w3.org/TR/html5/syntax.html#void-elements -var stopScan = oneObject("area,base,basefont,br,col,command,embed,hr,img,input,link,meta,param,source,track,wbr,noscript,script,style,textarea".toUpperCase()) - -function checkScan(elem, callback, innerHTML) { - var id = setTimeout(function() { - var currHTML = elem.innerHTML - clearTimeout(id) - if (currHTML === innerHTML) { - callback() - } else { - checkScan(elem, callback, currHTML) - } - }) -} - - -function createSignalTower(elem, vmodel) { - var id = elem.getAttribute("avalonctrl") || vmodel.$id - elem.setAttribute("avalonctrl", id) - vmodel.$events.expr = elem.tagName + '[avalonctrl="' + id + '"]' -} - -var getBindingCallback = function(elem, name, vmodels) { - var callback = elem.getAttribute(name) - if (callback) { - for (var i = 0, vm; vm = vmodels[i++]; ) { - if (vm.hasOwnProperty(callback) && typeof vm[callback] === "function") { - return vm[callback] - } - } - } -} - -function executeBindings(bindings, vmodels) { - for (var i = 0, data; data = bindings[i++]; ) { - data.vmodels = vmodels - bindingHandlers[data.type](data, vmodels) - if (data.evaluator && data.element && data.element.nodeType === 1) { //移除数据绑定,防止被二次解析 - //chrome使用removeAttributeNode移除不存在的特性节点时会报错 https://github.com/RubyLouvre/avalon/issues/99 - data.element.removeAttribute(data.name) - } - } - bindings.length = 0 -} - -//https://github.com/RubyLouvre/avalon/issues/636 -var mergeTextNodes = IEVersion && window.MutationObserver ? function (elem) { - var node = elem.firstChild, text - while (node) { - var aaa = node.nextSibling - if (node.nodeType === 3) { - if (text) { - text.nodeValue += node.nodeValue - elem.removeChild(node) - } else { - text = node - } - } else { - text = null - } - node = aaa - } -} : 0 -var roneTime = /^\s*::/ -var rmsAttr = /ms-(\w+)-?(.*)/ -var priorityMap = { - "if": 10, - "repeat": 90, - "data": 100, - "widget": 110, - "each": 1400, - "with": 1500, - "duplex": 2000, - "on": 3000 -} - -var events = oneObject("animationend,blur,change,input,click,dblclick,focus,keydown,keypress,keyup,mousedown,mouseenter,mouseleave,mousemove,mouseout,mouseover,mouseup,scan,scroll,submit") -var obsoleteAttrs = oneObject("value,title,alt,checked,selected,disabled,readonly,enabled") -function bindingSorter(a, b) { - return a.priority - b.priority -} - -function scanAttr(elem, vmodels, match) { - var scanNode = true - if (vmodels.length) { - var attributes = getAttributes ? getAttributes(elem) : elem.attributes - var bindings = [] - var fixAttrs = [] - var msData = {} - for (var i = 0, attr; attr = attributes[i++]; ) { - if (attr.specified) { - if (match = attr.name.match(rmsAttr)) { - //如果是以指定前缀命名的 - var type = match[1] - var param = match[2] || "" - var value = attr.value - var name = attr.name - if (events[type]) { - param = type - type = "on" - } else if (obsoleteAttrs[type]) { - if (type === "enabled") {//吃掉ms-enabled绑定,用ms-disabled代替 - log("warning!ms-enabled或ms-attr-enabled已经被废弃") - type = "disabled" - value = "!(" + value + ")" - } - param = type - type = "attr" - name = "ms-" + type + "-"+ param - fixAttrs.push([attr.name, name, value]) - } - msData[name] = value - if (typeof bindingHandlers[type] === "function") { - var newValue = value.replace(roneTime, "") - var oneTime = value !== newValue - var binding = { - type: type, - param: param, - element: elem, - name: name, - value: newValue, - oneTime: oneTime, - uuid: name+"-"+getUid(elem), - //chrome与firefox下Number(param)得到的值不一样 #855 - priority: (priorityMap[type] || type.charCodeAt(0) * 10 )+ (Number(param.replace(/\D/g, "")) || 0) - } - if (type === "html" || type === "text") { - var token = getToken(value) - avalon.mix(binding, token) - binding.filters = binding.filters.replace(rhasHtml, function () { - binding.type = "html" - binding.group = 1 - return "" - })// jshint ignore:line - } else if (type === "duplex") { - var hasDuplex = name - } else if (name === "ms-if-loop") { - binding.priority += 100 - } - bindings.push(binding) - if (type === "widget") { - elem.msData = elem.msData || msData - } - } - } - } - } - if (bindings.length) { - bindings.sort(bindingSorter) - fixAttrs.forEach(function (arr) { - log("warning!请改用" + arr[1] + "代替" + arr[0] + "!") - elem.removeAttribute(arr[0]) - elem.setAttribute(arr[1], arr[2]) - }) - //http://bugs.jquery.com/ticket/7071 - //在IE下对VML读取type属性,会让此元素所有属性都变成 - if (hasDuplex) { - if (msData["ms-attr-checked"]) { - log("warning!一个控件不能同时定义ms-attr-checked与" + hasDuplex) - } - if (msData["ms-attr-value"]) { - log("warning!一个控件不能同时定义ms-attr-value与" + hasDuplex) - } - } - for (i = 0; binding = bindings[i]; i++) { - type = binding.type - if (rnoscanAttrBinding.test(type)) { - return executeBindings(bindings.slice(0, i + 1), vmodels) - } else if (scanNode) { - scanNode = !rnoscanNodeBinding.test(type) - } - } - executeBindings(bindings, vmodels) - } - } - if (scanNode && !stopScan[elem.tagName] && rbind.test(elem.innerHTML.replace(rlt, "<").replace(rgt, ">"))) { - mergeTextNodes && mergeTextNodes(elem) - scanNodeList(elem, vmodels) //扫描子孙元素 - } -} -var rnoscanAttrBinding = /^if|widget|repeat$/ -var rnoscanNodeBinding = /^each|with|html|include$/ -//IE67下,在循环绑定中,一个节点如果是通过cloneNode得到,自定义属性的specified为false,无法进入里面的分支, -//但如果我们去掉scanAttr中的attr.specified检测,一个元素会有80+个特性节点(因为它不区分固有属性与自定义属性),很容易卡死页面 -if (!"1" [0]) { - var attrPool = new Cache(512) - var rattrs = /\s+(ms-[^=\s]+)(?:=("[^"]*"|'[^']*'|[^\s>]+))?/g, - rquote = /^['"]/, - rtag = /<\w+\b(?:(["'])[^"]*?(\1)|[^>])*>/i, - ramp = /&/g - //IE6-8解析HTML5新标签,会将它分解两个元素节点与一个文本节点 - //
    ddd
    - // window.onload = function() { - // var body = document.body - // for (var i = 0, el; el = body.children[i++]; ) { - // avalon.log(el.outerHTML) - // } - // } - //依次输出
    ,
    - var getAttributes = function (elem) { - var html = elem.outerHTML - //处理IE6-8解析HTML5新标签的情况,及
    等半闭合标签outerHTML为空的情况 - if (html.slice(0, 2) === " ms-important(1) --> ms-controller(2) --> ms-if(10) --> ms-repeat(100) - //--> ms-if-loop(110) --> ms-attr(970) ...--> ms-each(1400)-->ms-with(1500)--〉ms-duplex(2000)垫后 - var a = elem.getAttribute("ms-skip") - //#360 在旧式IE中 Object标签在引入Flash等资源时,可能出现没有getAttributeNode,innerHTML的情形 - if (!elem.getAttributeNode) { - return log("warning " + elem.tagName + " no getAttributeNode method") - } - var b = elem.getAttributeNode("ms-important") - var c = elem.getAttributeNode("ms-controller") - if (typeof a === "string") { - return - } else if (node = b || c) { - var newVmodel = avalon.vmodels[node.value] - if (!newVmodel) { - return - } - //ms-important不包含父VM,ms-controller相反 - vmodels = node === b ? [newVmodel] : [newVmodel].concat(vmodels) - var name = node.name - elem.removeAttribute(name) //removeAttributeNode不会刷新[ms-controller]样式规则 - avalon(elem).removeClass(name) - createSignalTower(elem, newVmodel) - } - scanAttr(elem, vmodels) //扫描特性节点 -} -var rhasHtml = /\|\s*html(?:\b|$)/, - r11a = /\|\|/g, - rlt = /</g, - rgt = />/g, - rstringLiteral = /(['"])(\\\1|.)+?\1/g -function getToken(value) { - if (value.indexOf("|") > 0) { - var scapegoat = value.replace(rstringLiteral, function (_) { - return Array(_.length + 1).join("1")// jshint ignore:line - }) - var index = scapegoat.replace(r11a, "\u1122\u3344").indexOf("|") //干掉所有短路或 - if (index > -1) { - return { - filters: value.slice(index), - value: value.slice(0, index), - expr: true - } - } - } - return { - value: value, - filters: "", - expr: true - } -} - -function scanExpr(str) { - var tokens = [], - value, start = 0, - stop - do { - stop = str.indexOf(openTag, start) - if (stop === -1) { - break - } - value = str.slice(start, stop) - if (value) { // {{ 左边的文本 - tokens.push({ - value: value, - filters: "", - expr: false - }) - } - start = stop + openTag.length - stop = str.indexOf(closeTag, start) - if (stop === -1) { - break - } - value = str.slice(start, stop) - if (value) { //处理{{ }}插值表达式 - tokens.push(getToken(value, start)) - } - start = stop + closeTag.length - } while (1) - value = str.slice(start) - if (value) { //}} 右边的文本 - tokens.push({ - value: value, - expr: false, - filters: "" - }) - } - return tokens -} - -function scanText(textNode, vmodels, index) { - var bindings = [] - tokens = scanExpr(textNode.data) - if (tokens.length) { - for (var i = 0; token = tokens[i++]; ) { - var node = DOC.createTextNode(token.value) //将文本转换为文本节点,并替换原来的文本节点 - if (token.expr) { - token.value = token.value.replace(roneTime, function () { - token.oneTime = true - return "" - }) - token.type = "text" - token.element = node - token.filters = token.filters.replace(rhasHtml, function (a, b,c) { - token.type = "html" - return "" - })// jshint ignore:line - token.pos = index * 1000 + i - bindings.push(token) //收集带有插值表达式的文本 - } - avalonFragment.appendChild(node) - } - textNode.parentNode.replaceChild(avalonFragment, textNode) - if (bindings.length) - executeBindings(bindings, vmodels) - } -} - -var bools = ["autofocus,autoplay,async,allowTransparency,checked,controls", - "declare,disabled,defer,defaultChecked,defaultSelected", - "contentEditable,isMap,loop,multiple,noHref,noResize,noShade", - "open,readOnly,selected" -].join(",") -var boolMap = {} -bools.replace(rword, function(name) { - boolMap[name.toLowerCase()] = name -}) - -var propMap = { //属性名映射 - "accept-charset": "acceptCharset", - "char": "ch", - "charoff": "chOff", - "class": "className", - "for": "htmlFor", - "http-equiv": "httpEquiv" -} - -var anomaly = ["accessKey,bgColor,cellPadding,cellSpacing,codeBase,codeType,colSpan", - "dateTime,defaultValue,frameBorder,longDesc,maxLength,marginWidth,marginHeight", - "rowSpan,tabIndex,useMap,vSpace,valueType,vAlign" -].join(",") -anomaly.replace(rword, function(name) { - propMap[name.toLowerCase()] = name -}) - -var rnoscripts = /(?:[\s\S]+?)<\/noscript>/img -var rnoscriptText = /([\s\S]+?)<\/noscript>/im - -var getXHR = function() { - return new(window.XMLHttpRequest || ActiveXObject)("Microsoft.XMLHTTP") // jshint ignore:line -} - -var templatePool = avalon.templateCache = {} - -bindingHandlers.attr = function(data, vmodels) { - var text = data.value.trim(), - simple = true - if (text.indexOf(openTag) > -1 && text.indexOf(closeTag) > 2) { - simple = false - if (rexpr.test(text) && RegExp.rightContext === "" && RegExp.leftContext === "") { - simple = true - text = RegExp.$1 - } - } - if (data.type === "include") { - var elem = data.element - data.includeRendered = getBindingCallback(elem, "data-include-rendered", vmodels) - data.includeLoaded = getBindingCallback(elem, "data-include-loaded", vmodels) - var outer = data.includeReplace = !! avalon(elem).data("includeReplace") - if (avalon(elem).data("includeCache")) { - data.templateCache = {} - } - data.startInclude = DOC.createComment("ms-include") - data.endInclude = DOC.createComment("ms-include-end") - if (outer) { - data.element = data.startInclude - elem.parentNode.insertBefore(data.startInclude, elem) - elem.parentNode.insertBefore(data.endInclude, elem.nextSibling) - } else { - elem.insertBefore(data.startInclude, elem.firstChild) - elem.appendChild(data.endInclude) - } - } - data.handlerName = "attr" //handleName用于处理多种绑定共用同一种bindingExecutor的情况 - parseExprProxy(text, vmodels, data, (simple ? 0 : scanExpr(data.value))) -} - -bindingExecutors.attr = function(val, elem, data) { - var method = data.type, - attrName = data.param - if (method === "css") { - avalon(elem).css(attrName, val) - } else if (method === "attr") { - - // ms-attr-class="xxx" vm.xxx="aaa bbb ccc"将元素的className设置为aaa bbb ccc - // ms-attr-class="xxx" vm.xxx=false 清空元素的所有类名 - // ms-attr-name="yyy" vm.yyy="ooo" 为元素设置name属性 - var toRemove = (val === false) || (val === null) || (val === void 0) - - if (!W3C && propMap[attrName]) { //旧式IE下需要进行名字映射 - attrName = propMap[attrName] - } - var bool = boolMap[attrName] - if (typeof elem[bool] === "boolean") { - elem[bool] = !! val //布尔属性必须使用el.xxx = true|false方式设值 - if (!val) { //如果为false, IE全系列下相当于setAttribute(xxx,''),会影响到样式,需要进一步处理 - toRemove = true - } - } - if (toRemove) { - return elem.removeAttribute(attrName) - } - //SVG只能使用setAttribute(xxx, yyy), VML只能使用elem.xxx = yyy ,HTML的固有属性必须elem.xxx = yyy - var isInnate = rsvg.test(elem) ? false : (DOC.namespaces && isVML(elem)) ? true : attrName in elem.cloneNode(false) - if (isInnate) { - elem[attrName] = val+"" - } else { - elem.setAttribute(attrName, val) - } - } else if (method === "include" && val) { - var vmodels = data.vmodels - var rendered = data.includeRendered - var loaded = data.includeLoaded - var replace = data.includeReplace - var target = replace ? elem.parentNode : elem - var scanTemplate = function(text) { - if (loaded) { - var newText = loaded.apply(target, [text].concat(vmodels)) - if (typeof newText === "string") - text = newText - } - if (rendered) { - checkScan(target, function() { - rendered.call(target) - }, NaN) - } - var lastID = data.includeLastID - if (data.templateCache && lastID && lastID !== val) { - var lastTemplate = data.templateCache[lastID] - if (!lastTemplate) { - lastTemplate = data.templateCache[lastID] = DOC.createElement("div") - ifGroup.appendChild(lastTemplate) - } - } - data.includeLastID = val - while (true) { - var node = data.startInclude.nextSibling - if (node && node !== data.endInclude) { - target.removeChild(node) - if (lastTemplate) - lastTemplate.appendChild(node) - } else { - break - } - } - var dom = getTemplateNodes(data, val, text) - var nodes = avalon.slice(dom.childNodes) - target.insertBefore(dom, data.endInclude) - scanNodeArray(nodes, vmodels) - } - - if (data.param === "src") { - if (typeof templatePool[val] === "string") { - avalon.nextTick(function() { - scanTemplate(templatePool[val]) - }) - } else if (Array.isArray(templatePool[val])) { //#805 防止在循环绑定中发出许多相同的请求 - templatePool[val].push(scanTemplate) - } else { - var xhr = getXHR() - xhr.onreadystatechange = function() { - if (xhr.readyState === 4) { - var s = xhr.status - if (s >= 200 && s < 300 || s === 304 || s === 1223) { - var text = xhr.responseText - for (var f = 0, fn; fn = templatePool[val][f++];) { - fn(text) - } - templatePool[val] = text - } - } - } - templatePool[val] = [scanTemplate] - xhr.open("GET", val, true) - if ("withCredentials" in xhr) { - xhr.withCredentials = true - } - xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest") - xhr.send(null) - } - } else { - //IE系列与够新的标准浏览器支持通过ID取得元素(firefox14+) - //http://tjvantoll.com/2012/07/19/dom-element-references-as-global-variables/ - var el = val && val.nodeType === 1 ? val : DOC.getElementById(val) - if (el) { - if (el.tagName === "NOSCRIPT" && !(el.innerHTML || el.fixIE78)) { //IE7-8 innerText,innerHTML都无法取得其内容,IE6能取得其innerHTML - xhr = getXHR() //IE9-11与chrome的innerHTML会得到转义的内容,它们的innerText可以 - xhr.open("GET", location, false) //谢谢Nodejs 乱炖群 深圳-纯属虚构 - xhr.send(null) - //http://bbs.csdn.net/topics/390349046?page=1#post-393492653 - var noscripts = DOC.getElementsByTagName("noscript") - var array = (xhr.responseText || "").match(rnoscripts) || [] - var n = array.length - for (var i = 0; i < n; i++) { - var tag = noscripts[i] - if (tag) { //IE6-8中noscript标签的innerHTML,innerText是只读的 - tag.style.display = "none" //http://haslayout.net/css/noscript-Ghost-Bug - tag.fixIE78 = (array[i].match(rnoscriptText) || ["", " "])[1] - } - } - } - avalon.nextTick(function() { - scanTemplate(el.fixIE78 || el.value || el.innerText || el.innerHTML) - }) - } - } - } else { - if (!root.hasAttribute && typeof val === "string" && (method === "src" || method === "href")) { - val = val.replace(/&/g, "&") //处理IE67自动转义的问题 - } - elem[method] = val - if (window.chrome && elem.tagName === "EMBED") { - var parent = elem.parentNode //#525 chrome1-37下embed标签动态设置src不能发生请求 - var comment = document.createComment("ms-src") - parent.replaceChild(comment, elem) - parent.replaceChild(elem, comment) - } - } -} - -function getTemplateNodes(data, id, text) { - var div = data.templateCache && data.templateCache[id] - if (div) { - var dom = DOC.createDocumentFragment(), - firstChild - while (firstChild = div.firstChild) { - dom.appendChild(firstChild) - } - return dom - } - return avalon.parseHTML(text) -} - -//这几个指令都可以使用插值表达式,如ms-src="aaa/{{b}}/{{c}}.html" -"title,alt,src,value,css,include,href".replace(rword, function(name) { - bindingHandlers[name] = bindingHandlers.attr -}) -//根据VM的属性值或表达式的值切换类名,ms-class="xxx yyy zzz:flag" -//http://www.cnblogs.com/rubylouvre/archive/2012/12/17/2818540.html -bindingHandlers["class"] = function(data, vmodels) { - var oldStyle = data.param, - text = data.value, - rightExpr - data.handlerName = "class" - if (!oldStyle || isFinite(oldStyle)) { - data.param = "" //去掉数字 - var noExpr = text.replace(rexprg, function(a) { - return a.replace(/./g, "0") - //return Math.pow(10, a.length - 1) //将插值表达式插入10的N-1次方来占位 - }) - var colonIndex = noExpr.indexOf(":") //取得第一个冒号的位置 - if (colonIndex === -1) { // 比如 ms-class="aaa bbb ccc" 的情况 - var className = text - } else { // 比如 ms-class-1="ui-state-active:checked" 的情况 - className = text.slice(0, colonIndex) - rightExpr = text.slice(colonIndex + 1) - parseExpr(rightExpr, vmodels, data) //决定是添加还是删除 - if (!data.evaluator) { - log("debug: ms-class '" + (rightExpr || "").trim() + "' 不存在于VM中") - return false - } else { - data._evaluator = data.evaluator - data._args = data.args - } - } - var hasExpr = rexpr.test(className) //比如ms-class="width{{w}}"的情况 - if (!hasExpr) { - data.immobileClass = className - } - parseExprProxy("", vmodels, data, (hasExpr ? scanExpr(className) : 0)) - } else { - data.immobileClass = data.oldStyle = data.param - parseExprProxy(text, vmodels, data) - } -} - -bindingExecutors["class"] = function(val, elem, data) { - var $elem = avalon(elem), - method = data.type - if (method === "class" && data.oldStyle) { //如果是旧风格 - $elem.toggleClass(data.oldStyle, !! val) - } else { - //如果存在冒号就有求值函数 - data.toggleClass = data._evaluator ? !! data._evaluator.apply(elem, data._args) : true - data.newClass = data.immobileClass || val - if (data.oldClass && data.newClass !== data.oldClass) { - $elem.removeClass(data.oldClass) - } - data.oldClass = data.newClass - switch (method) { - case "class": - $elem.toggleClass(data.newClass, data.toggleClass) - break - case "hover": - case "active": - if (!data.hasBindEvent) { //确保只绑定一次 - var activate = "mouseenter" //在移出移入时切换类名 - var abandon = "mouseleave" - if (method === "active") { //在聚焦失焦中切换类名 - elem.tabIndex = elem.tabIndex || -1 - activate = "mousedown" - abandon = "mouseup" - var fn0 = $elem.bind("mouseleave", function() { - data.toggleClass && $elem.removeClass(data.newClass) - }) - } - var fn1 = $elem.bind(activate, function() { - data.toggleClass && $elem.addClass(data.newClass) - }) - var fn2 = $elem.bind(abandon, function() { - data.toggleClass && $elem.removeClass(data.newClass) - }) - data.rollback = function() { - $elem.unbind("mouseleave", fn0) - $elem.unbind(activate, fn1) - $elem.unbind(abandon, fn2) - } - data.hasBindEvent = true - } - break; - } - } -} - -"hover,active".replace(rword, function(method) { - bindingHandlers[method] = bindingHandlers["class"] -}) -//ms-controller绑定已经在scanTag 方法中实现 -//ms-css绑定已由ms-attr绑定实现 - - -// bindingHandlers.data 定义在if.js -bindingExecutors.data = function(val, elem, data) { - var key = "data-" + data.param - if (val && typeof val === "object") { - elem[key] = val - } else { - elem.setAttribute(key, String(val)) - } -} -//双工绑定 -var duplexBinding = bindingHandlers.duplex = function(data, vmodels) { - var elem = data.element, - hasCast - parseExprProxy(data.value, vmodels, data, 0, 1) - - data.changed = getBindingCallback(elem, "data-duplex-changed", vmodels) || noop - if (data.evaluator && data.args) { - var params = [] - var casting = oneObject("string,number,boolean,checked") - if (elem.type === "radio" && data.param === "") { - data.param = "checked" - } - if (elem.msData) { - elem.msData["ms-duplex"] = data.value - } - data.param.replace(/\w+/g, function(name) { - if (/^(checkbox|radio)$/.test(elem.type) && /^(radio|checked)$/.test(name)) { - if (name === "radio") - log("ms-duplex-radio已经更名为ms-duplex-checked") - name = "checked" - data.isChecked = true - } - if (name === "bool") { - name = "boolean" - log("ms-duplex-bool已经更名为ms-duplex-boolean") - } else if (name === "text") { - name = "string" - log("ms-duplex-text已经更名为ms-duplex-string") - } - if (casting[name]) { - hasCast = true - } - avalon.Array.ensure(params, name) - }) - if (!hasCast) { - params.push("string") - } - data.param = params.join("-") - data.bound = function(type, callback) { - if (elem.addEventListener) { - elem.addEventListener(type, callback, false) - } else { - elem.attachEvent("on" + type, callback) - } - var old = data.rollback - data.rollback = function() { - elem.avalonSetter = null - avalon.unbind(elem, type, callback) - old && old() - } - } - for (var i in avalon.vmodels) { - var v = avalon.vmodels[i] - v.$fire("avalon-ms-duplex-init", data) - } - var cpipe = data.pipe || (data.pipe = pipe) - cpipe(null, data, "init") - var tagName = elem.tagName - duplexBinding[tagName] && duplexBinding[tagName](elem, data.evaluator.apply(null, data.args), data) - } -} -//不存在 bindingExecutors.duplex - - function fixNull(val) { - return val == null ? "" : val - } -avalon.duplexHooks = { - checked: { - get: function(val, data) { - return !data.element.oldValue - } - }, - string: { - get: function(val) { //同步到VM - return val - }, - set: fixNull - }, - "boolean": { - get: function(val) { - return val === "true" - }, - set: fixNull - }, - number: { - get: function(val, data) { - var number = parseFloat(val) - if (-val === -number) { - return number - } - var arr = /strong|medium|weak/.exec(data.element.getAttribute("data-duplex-number")) || ["medium"] - switch (arr[0]) { - case "strong": - return 0 - case "medium": - return val === "" ? "" : 0 - case "weak": - return val - } - }, - set: fixNull - } -} - -function pipe(val, data, action, e) { - data.param.replace(/\w+/g, function(name) { - var hook = avalon.duplexHooks[name] - if (hook && typeof hook[action] === "function") { - val = hook[action](val, data) - } - }) - return val -} - -var TimerID, ribbon = [] - - avalon.tick = function(fn) { - if (ribbon.push(fn) === 1) { - TimerID = setInterval(ticker, 60) - } - } - - function ticker() { - for (var n = ribbon.length - 1; n >= 0; n--) { - var el = ribbon[n] - if (el() === false) { - ribbon.splice(n, 1) - } - } - if (!ribbon.length) { - clearInterval(TimerID) - } - } - -var watchValueInTimer = noop -var rmsinput = /text|password|hidden/ -new function() { // jshint ignore:line - try { //#272 IE9-IE11, firefox - var setters = {} - var aproto = HTMLInputElement.prototype - var bproto = HTMLTextAreaElement.prototype - function newSetter(value) { // jshint ignore:line - setters[this.tagName].call(this, value) - if (rmsinput.test(this.type) && !this.msFocus && this.avalonSetter) { - this.avalonSetter() - } - } - var inputProto = HTMLInputElement.prototype - Object.getOwnPropertyNames(inputProto) //故意引发IE6-8等浏览器报错 - setters["INPUT"] = Object.getOwnPropertyDescriptor(aproto, "value").set - - Object.defineProperty(aproto, "value", { - set: newSetter - }) - setters["TEXTAREA"] = Object.getOwnPropertyDescriptor(bproto, "value").set - Object.defineProperty(bproto, "value", { - set: newSetter - }) - } catch (e) { - //在chrome 43中 ms-duplex终于不需要使用定时器实现双向绑定了 - // http://updates.html5rocks.com/2015/04/DOM-attributes-now-on-the-prototype - // https://docs.google.com/document/d/1jwA8mtClwxI-QJuHT7872Z0pxpZz8PBkf2bGAbsUtqs/edit?pli=1 - watchValueInTimer = avalon.tick - } -} // jshint ignore:line -if (IEVersion) { - avalon.bind(DOC, "selectionchange", function(e) { - var el = DOC.activeElement - if (el && typeof el.avalonSetter === "function") { - el.avalonSetter() - } - }) -} - -//处理radio, checkbox, text, textarea, password -duplexBinding.INPUT = function(element, evaluator, data) { - var $type = element.type, - bound = data.bound, - $elem = avalon(element), - composing = false - - function callback(value) { - data.changed.call(this, value, data) - } - - function compositionStart() { - composing = true - } - - function compositionEnd() { - composing = false - } - //当value变化时改变model的值 - var updateVModel = function() { - if (composing) //处理中文输入法在minlengh下引发的BUG - return - var val = element.oldValue = element.value //防止递归调用形成死循环 - var lastValue = data.pipe(val, data, "get") - if ($elem.data("duplexObserve") !== false) { - evaluator(lastValue) - callback.call(element, lastValue) - if ($elem.data("duplex-focus")) { - avalon.nextTick(function() { - element.focus() - }) - } - } - } - //当model变化时,它就会改变value的值 - data.handler = function() { - var val = data.pipe(evaluator(), data, "set") + "" //fix #673 - if (val !== element.oldValue) { - element.value = val - } - } - if (data.isChecked || $type === "radio") { - var IE6 = IEVersion === 6 - updateVModel = function() { - if ($elem.data("duplexObserve") !== false) { - var lastValue = data.pipe(element.value, data, "get") - evaluator(lastValue) - callback.call(element, lastValue) - } - } - data.handler = function() { - var val = evaluator() - var checked = data.isChecked ? !! val : val + "" === element.value - element.oldValue = checked - if (IE6) { - setTimeout(function() { - //IE8 checkbox, radio是使用defaultChecked控制选中状态, - //并且要先设置defaultChecked后设置checked - //并且必须设置延迟 - element.defaultChecked = checked - element.checked = checked - }, 31) - } else { - element.checked = checked - } - } - bound("click", updateVModel) - } else if ($type === "checkbox") { - updateVModel = function() { - if ($elem.data("duplexObserve") !== false) { - var method = element.checked ? "ensure" : "remove" - var array = evaluator() - if (!Array.isArray(array)) { - log("ms-duplex应用于checkbox上要对应一个数组") - array = [array] - } - var val = data.pipe(element.value, data, "get") - avalon.Array[method](array, val) - callback.call(element, array) - } - } - - data.handler = function() { - var array = [].concat(evaluator()) //强制转换为数组 - var val = data.pipe(element.value, data, "get") - element.checked = array.indexOf(val) > -1 - } - bound(W3C ? "change" : "click", updateVModel) - } else { - var events = element.getAttribute("data-duplex-event") || "input" - if (element.attributes["data-event"]) { - log("data-event指令已经废弃,请改用data-duplex-event") - } - - function delay(e) { // jshint ignore:line - setTimeout(function() { - updateVModel(e) - }) - } - events.replace(rword, function(name) { - switch (name) { - case "input": - if (!IEVersion) { // W3C - bound("input", updateVModel) - //非IE浏览器才用这个 - bound("compositionstart", compositionStart) - bound("compositionend", compositionEnd) - bound("DOMAutoComplete", updateVModel) - } else { //onpropertychange事件无法区分是程序触发还是用户触发 - // IE下通过selectionchange事件监听IE9+点击input右边的X的清空行为,及粘贴,剪切,删除行为 - if (IEVersion > 8) { - bound("input", updateVModel) //IE9使用propertychange无法监听中文输入改动 - } else { - bound("propertychange", function(e) { //IE6-8下第一次修改时不会触发,需要使用keydown或selectionchange修正 - if (e.propertyName === "value") { - updateVModel() - } - }) - } - bound("dragend", delay) - //http://www.cnblogs.com/rubylouvre/archive/2013/02/17/2914604.html - //http://www.matts411.com/post/internet-explorer-9-oninput/ - } - break - default: - bound(name, updateVModel) - break - } - }) - bound("focus", function() { - element.msFocus = true - }) - bound("blur", function() { - element.msFocus = false - }) - - if (rmsinput.test($type)) { - watchValueInTimer(function() { - if (root.contains(element)) { - if (!element.msFocus && element.oldValue !== element.value) { - updateVModel() - } - } else if (!element.msRetain) { - return false - } - }) - } - - element.avalonSetter = updateVModel //#765 - } - - element.oldValue = element.value - avalon.injectBinding(data) - callback.call(element, element.value) -} -duplexBinding.TEXTAREA = duplexBinding.INPUT -duplexBinding.SELECT = function(element, evaluator, data) { - var $elem = avalon(element) - - function updateVModel() { - if ($elem.data("duplexObserve") !== false) { - var val = $elem.val() //字符串或字符串数组 - if (Array.isArray(val)) { - val = val.map(function(v) { - return data.pipe(v, data, "get") - }) - } else { - val = data.pipe(val, data, "get") - } - if (val + "" !== element.oldValue) { - evaluator(val) - } - data.changed.call(element, val, data) - } - } - data.handler = function() { - var val = evaluator() - val = val && val.$model || val - if (Array.isArray(val)) { - if (!element.multiple) { - log("ms-duplex在不能对应一个数组") - } - } - //必须变成字符串后才能比较 - val = Array.isArray(val) ? val.map(String) : val + "" - if (val + "" !== element.oldValue) { - $elem.val(val) - element.oldValue = val + "" - } - } - data.bound("change", updateVModel) - element.msCallback = function() { - avalon.injectBinding(data) - data.changed.call(element, evaluator(), data) - } -} -// bindingHandlers.html 定义在if.js -bindingExecutors.html = function (val, elem, data) { - var isHtmlFilter = elem.nodeType !== 1 - var parent = isHtmlFilter ? elem.parentNode : elem - if (!parent) - return - val = val == null ? "" : val - if (data.oldText !== val) { - data.oldText = val - } else { - return - } - if (elem.nodeType === 3) { - var signature = generateID("html") - parent.insertBefore(DOC.createComment(signature), elem) - data.element = DOC.createComment(signature + ":end") - parent.replaceChild(data.element, elem) - elem = data.element - } - if (typeof val !== "object") {//string, number, boolean - var fragment = avalon.parseHTML(String(val)) - } else if (val.nodeType === 11) { //将val转换为文档碎片 - fragment = val - } else if (val.nodeType === 1 || val.item) { - var nodes = val.nodeType === 1 ? val.childNodes : val.item - fragment = avalonFragment.cloneNode(true) - while (nodes[0]) { - fragment.appendChild(nodes[0]) - } - } - - nodes = avalon.slice(fragment.childNodes) - //插入占位符, 如果是过滤器,需要有节制地移除指定的数量,如果是html指令,直接清空 - if (isHtmlFilter) { - var endValue = elem.nodeValue.slice(0, -4) - while (true) { - var node = elem.previousSibling - if (!node || node.nodeType === 8 && node.nodeValue === endValue) { - break - } else { - parent.removeChild(node) - } - } - parent.insertBefore(fragment, elem) - } else { - avalon.clearHTML(elem).appendChild(fragment) - } - scanNodeArray(nodes, data.vmodels) -} -bindingHandlers["if"] = - bindingHandlers.data = - bindingHandlers.text = - bindingHandlers.html = - function(data, vmodels) { - parseExprProxy(data.value, vmodels, data) -} - -bindingExecutors["if"] = function(val, elem, data) { - try { - if(!elem.parentNode) return - } catch(e) {return} - if (val) { //插回DOM树 - if (elem.nodeType === 8) { - elem.parentNode.replaceChild(data.template, elem) - // animate.enter(data.template, elem.parentNode) - elem = data.element = data.template //这时可能为null - } - if (elem.getAttribute(data.name)) { - elem.removeAttribute(data.name) - scanAttr(elem, data.vmodels) - } - data.rollback = null - } else { //移出DOM树,并用注释节点占据原位置 - if (elem.nodeType === 1) { - var node = data.element = DOC.createComment("ms-if") - elem.parentNode.replaceChild(node, elem) - // animate.leave(elem, node.parentNode, node) - data.template = elem //元素节点 - ifGroup.appendChild(elem) - data.rollback = function() { - if (elem.parentNode === ifGroup) { - ifGroup.removeChild(elem) - } - } - } - } -} -//ms-important绑定已经在scanTag 方法中实现 -//ms-include绑定已由ms-attr绑定实现 - -var rdash = /\(([^)]*)\)/ -bindingHandlers.on = function(data, vmodels) { - var value = data.value - data.type = "on" - var eventType = data.param.replace(/-\d+$/, "") // ms-on-mousemove-10 - if (typeof bindingHandlers.on[eventType + "Hook"] === "function") { - bindingHandlers.on[eventType + "Hook"](data) - } - if (value.indexOf("(") > 0 && value.indexOf(")") > -1) { - var matched = (value.match(rdash) || ["", ""])[1].trim() - if (matched === "" || matched === "$event") { // aaa() aaa($event)当成aaa处理 - value = value.replace(rdash, "") - } - } - parseExprProxy(value, vmodels, data) -} - -bindingExecutors.on = function(callback, elem, data) { - callback = function(e) { - var fn = data.evaluator || noop - return fn.apply(this, data.args.concat(e)) - } - var eventType = data.param.replace(/-\d+$/, "") // ms-on-mousemove-10 - if (eventType === "scan") { - callback.call(elem, { - type: eventType - }) - } else if (typeof data.specialBind === "function") { - data.specialBind(elem, callback) - } else { - var removeFn = avalon.bind(elem, eventType, callback) - } - data.rollback = function() { - if (typeof data.specialUnbind === "function") { - data.specialUnbind() - } else { - avalon.unbind(elem, eventType, removeFn) - } - } -} -bindingHandlers.repeat = function (data, vmodels) { - var type = data.type - parseExprProxy(data.value, vmodels, data, 0, 1) - data.proxies = [] - var freturn = false - try { - var $repeat = data.$repeat = data.evaluator.apply(0, data.args || []) - var xtype = avalon.type($repeat) - if (xtype !== "object" && xtype !== "array") { - freturn = true - avalon.log("warning:" + data.value + "只能是对象或数组") - } - } catch (e) { - freturn = true - } - var arr = data.value.split(".") || [] - if (arr.length > 1) { - arr.pop() - var n = arr[0] - for (var i = 0, v; v = vmodels[i++]; ) { - if (v && v.hasOwnProperty(n)) { - var events = v[n].$events || {} - events[subscribers] = events[subscribers] || [] - events[subscribers].push(data) - break - } - } - } - - var elem = data.element - if (elem.nodeType === 1) { - elem.removeAttribute(data.name) - data.sortedCallback = getBindingCallback(elem, "data-with-sorted", vmodels) - data.renderedCallback = getBindingCallback(elem, "data-" + type + "-rendered", vmodels) - var signature = generateID(type) - var start = DOC.createComment(signature) - var end = DOC.createComment(signature + ":end") - data.signature = signature - data.template = avalonFragment.cloneNode(false) - if (type === "repeat") { - var parent = elem.parentNode - parent.replaceChild(end, elem) - parent.insertBefore(start, end) - data.template.appendChild(elem) - } else { - while (elem.firstChild) { - data.template.appendChild(elem.firstChild) - } - elem.appendChild(start) - elem.appendChild(end) - } - data.element = end - data.handler = bindingExecutors.repeat - data.rollback = function () { - var elem = data.element - if (!elem) - return - data.handler("clear") - } - } - - if (freturn) { - return - } - - data.$outer = {} - var check0 = "$key" - var check1 = "$val" - if (Array.isArray($repeat)) { - check0 = "$first" - check1 = "$last" - } - - for (i = 0; v = vmodels[i++]; ) { - if (v.hasOwnProperty(check0) && v.hasOwnProperty(check1)) { - data.$outer = v - break - } - } - var $events = $repeat.$events - var $list = ($events || {})[subscribers] - injectDependency($list, data) - if (xtype === "object") { - data.$with = true - $repeat.$proxy || ($repeat.$proxy = {}) - data.handler("append", $repeat) - } else if ($repeat.length) { - data.handler("add", 0, $repeat.length) - } -} - -bindingExecutors.repeat = function (method, pos, el) { - if (!method && this.$with) { - method = "append" - var flag = "update" - } - if (method) { - var data = this, start, fragment - var end = data.element - var comments = getComments(data) - var parent = end.parentNode - var proxies = data.proxies - var transation = avalonFragment.cloneNode(false) - switch (method) { - case "add": //在pos位置后添加el数组(pos为插入位置,el为要插入的个数) - var n = pos + el - var fragments = [] - for (var i = pos; i < n; i++) { - var proxy = eachProxyAgent(i, data) - proxies.splice(i, 0, proxy) - shimController(data, transation, proxy, fragments) - } - var now = new Date() - 0 - avalon.optimize = avalon.optimize || now - for (i = 0; fragment = fragments[i++]; ) { - scanNodeArray(fragment.nodes, fragment.vmodels) - fragment.nodes = fragment.vmodels = null - } - if (avalon.optimize === now) { - avalon.optimize = null - } - parent.insertBefore(transation, comments[pos] || end) - avalon.profile("插入操作花费了 " + (new Date - now)) - break - case "del": //将pos后的el个元素删掉(pos, el都是数字) - sweepNodes(comments[pos], comments[pos + el] || end) - var removed = proxies.splice(pos, el) - recycleProxies(removed, "each") - break - case "clear": - start = comments[0] - if (start) { - sweepNodes(start, end) - if (data.$with) { - parent.insertBefore(start, end) - } - } - recycleProxies(proxies, "each") - break - case "move": - start = comments[0] - if (start) { - var signature = start.nodeValue - var rooms = [] - var room = [], - node - sweepNodes(start, end, function () { - room.unshift(this) - if (this.nodeValue === signature) { - rooms.unshift(room) - room = [] - } - }) - sortByIndex(rooms, pos) - sortByIndex(proxies, pos) - while (room = rooms.shift()) { - while (node = room.shift()) { - transation.appendChild(node) - } - } - parent.insertBefore(transation, end) - } - break - case "index": //将proxies中的第pos个起的所有元素重新索引 - var last = proxies.length - 1 - for (; el = proxies[pos]; pos++) { - el.$index = pos - el.$first = pos === 0 - el.$last = pos === last - } - return - case "set": //将proxies中的第pos个元素的VM设置为el(pos为数字,el任意) - proxy = proxies[pos] - if (proxy) { - fireDependencies(proxy.$events[data.param || "el"]) - } - break - case "append": - var object = data.$repeat //原来第2参数, 被循环对象 - var oldProxy = object.$proxy //代理对象组成的hash - var keys = [] - now = new Date() - 0 - avalon.optimize = avalon.optimize || now - if (flag === "update") { - if (!data.evaluator) { - parseExprProxy(data.value, data.vmodels, data, 0, 1) - } - object = data.$repeat = data.evaluator.apply(0, data.args || []) - object.$proxy = oldProxy - } - var pool = object.$proxy || {} - removed = [] - var nodes = data.element.parentNode.childNodes - var add = false - for (i = 0; node = nodes[i++]; ) { - if (node.nodeValue === data.signature) { - add = true - } else if (node.nodeValue === data.signature + ":end") { - add = false - } - if (add) { - removed.push(node) - } - } - - var indexNode = [], item - var keyIndex = data.keyIndex || (data.keyIndex = {}) - //将现有的节点全部移出DOM树 - for ( i = 0; i < removed.length; i++) { - el = removed[i] - if (el.nodeValue === data.signature) { - item = avalonFragment.cloneNode(false) - indexNode.push(item) - } - item.appendChild(el) - } - - - for (var key in object) { //当前对象的所有键名 - if (object.hasOwnProperty(key) && key !== "hasOwnProperty" && key !== "$proxy") { - keys.push(key) - } - } - - for (var i = 0; key = keys[i++]; ) { - if (!pool.hasOwnProperty(key)) {//添加缺失的代理VM - pool[key] = withProxyAgent(pool[key], key, data) - } else { - pool[key].$val = object[key] - } - } - - for ( key in pool) { - if (keys.indexOf(key) === -1) {//删除没用的代理VM - proxyRecycler(pool[key], withProxyPool) //去掉之前的代理VM - delete pool[key] - } - } - var fragments = [] - var renderKeys = keys //需要渲染到DOM树去的键名 - var end = data.element - if (data.sortedCallback) { //如果有回调,则让它们排序 - var keys2 = data.sortedCallback.call(parent, keys) - if (keys2 && Array.isArray(keys2)) { - renderKeys = keys2 - } - } - - for (i = 0; i < renderKeys.length; i++) { - key = renderKeys[i] - if (typeof keyIndex[key] === "number") { - transation.appendChild(indexNode[keyIndex[key]]) - fragments.push({}) - } else { - shimController(data, transation, pool[key], fragments) - } - } - - for (i = 0; i < renderKeys.length; i++) { - keyIndex[renderKeys[i]] = i - } - - for (i = 0; fragment = fragments[i++]; ) { - if (fragment.nodes) { - scanNodeArray(fragment.nodes, fragment.vmodels) - fragment.nodes = fragment.vmodels = null - } - } - if (avalon.optimize === now) { - avalon.optimize = null - } - parent.insertBefore(transation, end) - avalon.profile("插入操作花费了 " + (new Date - now)) - break - } - if (!data.$repeat || data.$repeat.hasOwnProperty("$lock")) //IE6-8 VBScript对象会报错, 有时候data.$repeat不存在 - return - if (method === "clear") - method = "del" - var callback = data.renderedCallback || noop, - args = arguments - if (parent.oldValue && parent.tagName === "SELECT") { //fix #503 - avalon(parent).val(parent.oldValue.split(",")) - } - callback.apply(parent, args) - } -} -"with,each".replace(rword, function (name) { - bindingHandlers[name] = bindingHandlers.repeat -}) - -function shimController(data, transation, proxy, fragments) { - var content = data.template.cloneNode(true) - var nodes = avalon.slice(content.childNodes) - content.insertBefore(DOC.createComment(data.signature), content.firstChild) - transation.appendChild(content) - var nv = [proxy].concat(data.vmodels) - var fragment = { - nodes: nodes, - vmodels: nv - } - fragments.push(fragment) -} - -function getComments(data) { - var ret = [] - var nodes = data.element.parentNode.childNodes - for(var i= 0, node; node = nodes[i++];){ - if(node.nodeValue === data.signature){ - ret.push( node ) - }else if(node.nodeValue === data.signature+":end"){ - break - } - } - return ret -} - - -//移除掉start与end之间的节点(保留end) -function sweepNodes(start, end, callback) { - while (true) { - var node = end.previousSibling - if (!node) - break - node.parentNode.removeChild(node) - callback && callback.call(node) - if (node === start) { - break - } - } -} - -// 为ms-each,ms-with, ms-repeat会创建一个代理VM, -// 通过它们保持一个下上文,让用户能调用$index,$first,$last,$remove,$key,$val,$outer等属性与方法 -// 所有代理VM的产生,消费,收集,存放通过xxxProxyFactory,xxxProxyAgent, recycleProxies,xxxProxyPool实现 -var withProxyPool = [] -function withProxyFactory() { - var proxy = modelFactory({ - $key: "", - $outer: {}, - $host: {}, - $val: { - get: function () { - return this.$host[this.$key] - }, - set: function (val) { - this.$host[this.$key] = val - } - } - }, { - $val: 1 - }) - proxy.$id = generateID("$proxy$with") - return proxy -} - -function withProxyAgent(proxy, key, data) { - proxy = proxy || withProxyPool.pop() - if (!proxy) { - proxy = withProxyFactory() - } else { - proxy.$reinitialize() - } - var host = data.$repeat - proxy.$key = key - proxy.$host = host - proxy.$outer = data.$outer - if (host.$events) { - proxy.$events.$val = host.$events[key] - } else { - proxy.$events = {} - } - return proxy -} - - -function recycleProxies(proxies) { - eachProxyRecycler(proxies) -} -function eachProxyRecycler(proxies) { - proxies.forEach(function (proxy) { - proxyRecycler(proxy, eachProxyPool) - }) - proxies.length = 0 -} - - -var eachProxyPool = [] -function eachProxyFactory(name) { - var source = { - $host: [], - $outer: {}, - $index: 0, - $first: false, - $last: false, - $remove: avalon.noop - } - source[name] = { - get: function () { - var e = this.$events - var array = e.$index - e.$index = e[name] //#817 通过$index为el收集依赖 - try { - return this.$host[this.$index] - } finally { - e.$index = array - } - }, - set: function (val) { - try { - var e = this.$events - var array = e.$index - e.$index = [] - this.$host.set(this.$index, val) - } finally { - e.$index = array - } - } - } - var second = { - $last: 1, - $first: 1, - $index: 1 - } - var proxy = modelFactory(source, second) - proxy.$id = generateID("$proxy$each") - return proxy -} - -function eachProxyAgent(index, data) { - var param = data.param || "el", - proxy - for (var i = 0, n = eachProxyPool.length; i < n; i++) { - var candidate = eachProxyPool[i] - if (candidate && candidate.hasOwnProperty(param)) { - proxy = candidate - eachProxyPool.splice(i, 1) - } - } - if (!proxy) { - proxy = eachProxyFactory(param) - } - var host = data.$repeat - var last = host.length - 1 - proxy.$index = index - proxy.$first = index === 0 - proxy.$last = index === last - proxy.$host = host - proxy.$outer = data.$outer - proxy.$remove = function () { - return host.removeAt(proxy.$index) - } - return proxy -} - - -function proxyRecycler(proxy, proxyPool) { - for (var i in proxy.$events) { - if (Array.isArray(proxy.$events[i])) { - proxy.$events[i].forEach(function (data) { - if (typeof data === "object") - disposeData(data) - })// jshint ignore:line - proxy.$events[i].length = 0 - } - } - proxy.$host = proxy.$outer = {} - if (proxyPool.unshift(proxy) > kernel.maxRepeatSize) { - proxyPool.pop() - } -} -/********************************************************************* - * 各种指令 * - **********************************************************************/ -//ms-skip绑定已经在scanTag 方法中实现 -// bindingHandlers.text 定义在if.js -bindingExecutors.text = function(val, elem) { - val = val == null ? "" : val //不在页面上显示undefined null - if (elem.nodeType === 3) { //绑定在文本节点上 - try { //IE对游离于DOM树外的节点赋值会报错 - elem.data = val - } catch (e) {} - } else { //绑定在特性节点上 - if ("textContent" in elem) { - elem.textContent = val - } else { - elem.innerText = val - } - } -} -function parseDisplay(nodeName, val) { - //用于取得此类标签的默认display值 - var key = "_" + nodeName - if (!parseDisplay[key]) { - var node = DOC.createElement(nodeName) - root.appendChild(node) - if (W3C) { - val = getComputedStyle(node, null).display - } else { - val = node.currentStyle.display - } - root.removeChild(node) - parseDisplay[key] = val - } - return parseDisplay[key] -} - -avalon.parseDisplay = parseDisplay - -bindingHandlers.visible = function(data, vmodels) { - var elem = data.element - var display = elem.style.display - if(display === "none"){ - display = parseDisplay(elem.nodeName) - } - data.display = display - parseExprProxy(data.value, vmodels, data) -} - -bindingExecutors.visible = function(val, elem, data) { - elem.style.display = val ? data.display : "none" -} -bindingHandlers.widget = function(data, vmodels) { - var args = data.value.match(rword) - var elem = data.element - var widget = args[0] - var id = args[1] - if (!id || id === "$") { //没有定义或为$时,取组件名+随机数 - id = generateID(widget) - } - var optName = args[2] || widget //没有定义,取组件名 - var constructor = avalon.ui[widget] - if (typeof constructor === "function") { //ms-widget="tabs,tabsAAA,optname" - vmodels = elem.vmodels || vmodels - for (var i = 0, v; v = vmodels[i++];) { - if (v.hasOwnProperty(optName) && typeof v[optName] === "object") { - var vmOptions = v[optName] - vmOptions = vmOptions.$model || vmOptions - break - } - } - if (vmOptions) { - var wid = vmOptions[widget + "Id"] - if (typeof wid === "string") { - log("warning!不再支持" + widget + "Id") - id = wid - } - } - //抽取data-tooltip-text、data-tooltip-attr属性,组成一个配置对象 - var widgetData = avalon.getWidgetData(elem, widget) - data.value = [widget, id, optName].join(",") - data[widget + "Id"] = id - data.evaluator = noop - elem.msData["ms-widget-id"] = id - var options = data[widget + "Options"] = avalon.mix({}, constructor.defaults, vmOptions || {}, widgetData) - elem.removeAttribute("ms-widget") - var vmodel = constructor(elem, data, vmodels) || {} //防止组件不返回VM - if (vmodel.$id) { - avalon.vmodels[id] = vmodel - createSignalTower(elem, vmodel) - try { - vmodel.$init(function() { - avalon.scan(elem, [vmodel].concat(vmodels)) - if (typeof options.onInit === "function") { - options.onInit.call(elem, vmodel, options, vmodels) - } - }) - } catch (e) {} - data.rollback = function() { - try { - vmodel.widgetElement = null - vmodel.$remove() - } catch (e) {} - elem.msData = {} - delete avalon.vmodels[vmodel.$id] - } - injectDisposeQueue(data, widgetList) - if (window.chrome) { - elem.addEventListener("DOMNodeRemovedFromDocument", function() { - setTimeout(rejectDisposeQueue) - }) - } - } else { - avalon.scan(elem, vmodels) - } - } else if (vmodels.length) { //如果该组件还没有加载,那么保存当前的vmodels - elem.vmodels = vmodels - } -} -var widgetList = [] -//不存在 bindingExecutors.widget -/********************************************************************* - * 自带过滤器 * - **********************************************************************/ -var rscripts = /]*>([\S\s]*?)<\/script\s*>/gim -var ron = /\s+(on[^=\s]+)(?:=("[^"]*"|'[^']*'|[^\s>]+))?/g -var ropen = /<\w+\b(?:(["'])[^"]*?(\1)|[^>])*>/ig -var rsanitize = { - a: /\b(href)\=("javascript[^"]*"|'javascript[^']*')/ig, - img: /\b(src)\=("javascript[^"]*"|'javascript[^']*')/ig, - form: /\b(action)\=("javascript[^"]*"|'javascript[^']*')/ig -} -var rsurrogate = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g -var rnoalphanumeric = /([^\#-~| |!])/g; - -function numberFormat(number, decimals, point, thousands) { - //form http://phpjs.org/functions/number_format/ - //number 必需,要格式化的数字 - //decimals 可选,规定多少个小数位。 - //point 可选,规定用作小数点的字符串(默认为 . )。 - //thousands 可选,规定用作千位分隔符的字符串(默认为 , ),如果设置了该参数,那么所有其他参数都是必需的。 - number = (number + '') - .replace(/[^0-9+\-Ee.]/g, '') - var n = !isFinite(+number) ? 0 : +number, - prec = !isFinite(+decimals) ? 3 : Math.abs(decimals), - sep = thousands || ",", - dec = point || ".", - s = '', - toFixedFix = function(n, prec) { - var k = Math.pow(10, prec) - return '' + (Math.round(n * k) / k) - .toFixed(prec) - } - // Fix for IE parseFloat(0.55).toFixed(0) = 0; - s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)) - .split('.') - if (s[0].length > 3) { - s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep) - } - if ((s[1] || '') - .length < prec) { - s[1] = s[1] || '' - s[1] += new Array(prec - s[1].length + 1) - .join('0') - } - return s.join(dec) -} - - -var filters = avalon.filters = { - uppercase: function(str) { - return str.toUpperCase() - }, - lowercase: function(str) { - return str.toLowerCase() - }, - truncate: function(str, length, truncation) { - //length,新字符串长度,truncation,新字符串的结尾的字段,返回新字符串 - length = length || 30 - truncation = typeof truncation === "string" ? truncation : "..." - return str.length > length ? str.slice(0, length - truncation.length) + truncation : String(str) - }, - $filter: function(val) { - for (var i = 1, n = arguments.length; i < n; i++) { - var array = arguments[i] - var fn = avalon.filters[array.shift()] - if (typeof fn === "function") { - var arr = [val].concat(array) - val = fn.apply(null, arr) - } - } - return val - }, - camelize: camelize, - //https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet - // chrome - // chrome - // IE67chrome - // IE67chrome - // IE67chrome - sanitize: function(str) { - return str.replace(rscripts, "").replace(ropen, function(a, b) { - var match = a.toLowerCase().match(/<(\w+)\s/) - if (match) { //处理a标签的href属性,img标签的src属性,form标签的action属性 - var reg = rsanitize[match[1]] - if (reg) { - a = a.replace(reg, function(s, name, value) { - var quote = value.charAt(0) - return name + "=" + quote + "javascript:void(0)" + quote// jshint ignore:line - }) - } - } - return a.replace(ron, " ").replace(/\s+/g, " ") //移除onXXX事件 - }) - }, - escape: function(str) { - //将字符串经过 str 转义得到适合在页面中显示的内容, 例如替换 < 为 < - return String(str). - replace(/&/g, '&'). - replace(rsurrogate, function(value) { - var hi = value.charCodeAt(0) - var low = value.charCodeAt(1) - return '&#' + (((hi - 0xD800) * 0x400) + (low - 0xDC00) + 0x10000) + ';' - }). - replace(rnoalphanumeric, function(value) { - return '&#' + value.charCodeAt(0) + ';' - }). - replace(//g, '>') - }, - currency: function(amount, symbol, fractionSize) { - return (symbol || "\uFFE5") + numberFormat(amount, isFinite(fractionSize) ? fractionSize : 2) - }, - number: numberFormat -} -/* - 'yyyy': 4 digit representation of year (e.g. AD 1 => 0001, AD 2010 => 2010) - 'yy': 2 digit representation of year, padded (00-99). (e.g. AD 2001 => 01, AD 2010 => 10) - 'y': 1 digit representation of year, e.g. (AD 1 => 1, AD 199 => 199) - 'MMMM': Month in year (January-December) - 'MMM': Month in year (Jan-Dec) - 'MM': Month in year, padded (01-12) - 'M': Month in year (1-12) - 'dd': Day in month, padded (01-31) - 'd': Day in month (1-31) - 'EEEE': Day in Week,(Sunday-Saturday) - 'EEE': Day in Week, (Sun-Sat) - 'HH': Hour in day, padded (00-23) - 'H': Hour in day (0-23) - 'hh': Hour in am/pm, padded (01-12) - 'h': Hour in am/pm, (1-12) - 'mm': Minute in hour, padded (00-59) - 'm': Minute in hour (0-59) - 'ss': Second in minute, padded (00-59) - 's': Second in minute (0-59) - 'a': am/pm marker - 'Z': 4 digit (+sign) representation of the timezone offset (-1200-+1200) - format string can also be one of the following predefined localizable formats: - - 'medium': equivalent to 'MMM d, y h:mm:ss a' for en_US locale (e.g. Sep 3, 2010 12:05:08 pm) - 'short': equivalent to 'M/d/yy h:mm a' for en_US locale (e.g. 9/3/10 12:05 pm) - 'fullDate': equivalent to 'EEEE, MMMM d,y' for en_US locale (e.g. Friday, September 3, 2010) - 'longDate': equivalent to 'MMMM d, y' for en_US locale (e.g. September 3, 2010 - 'mediumDate': equivalent to 'MMM d, y' for en_US locale (e.g. Sep 3, 2010) - 'shortDate': equivalent to 'M/d/yy' for en_US locale (e.g. 9/3/10) - 'mediumTime': equivalent to 'h:mm:ss a' for en_US locale (e.g. 12:05:08 pm) - 'shortTime': equivalent to 'h:mm a' for en_US locale (e.g. 12:05 pm) - */ -new function() {// jshint ignore:line - function toInt(str) { - return parseInt(str, 10) || 0 - } - - function padNumber(num, digits, trim) { - var neg = "" - if (num < 0) { - neg = '-' - num = -num - } - num = "" + num - while (num.length < digits) - num = "0" + num - if (trim) - num = num.substr(num.length - digits) - return neg + num - } - - function dateGetter(name, size, offset, trim) { - return function(date) { - var value = date["get" + name]() - if (offset > 0 || value > -offset) - value += offset - if (value === 0 && offset === -12) { - value = 12 - } - return padNumber(value, size, trim) - } - } - - function dateStrGetter(name, shortForm) { - return function(date, formats) { - var value = date["get" + name]() - var get = (shortForm ? ("SHORT" + name) : name).toUpperCase() - return formats[get][value] - } - } - - function timeZoneGetter(date) { - var zone = -1 * date.getTimezoneOffset() - var paddedZone = (zone >= 0) ? "+" : "" - paddedZone += padNumber(Math[zone > 0 ? "floor" : "ceil"](zone / 60), 2) + padNumber(Math.abs(zone % 60), 2) - return paddedZone - } - //取得上午下午 - - function ampmGetter(date, formats) { - return date.getHours() < 12 ? formats.AMPMS[0] : formats.AMPMS[1] - } - var DATE_FORMATS = { - yyyy: dateGetter("FullYear", 4), - yy: dateGetter("FullYear", 2, 0, true), - y: dateGetter("FullYear", 1), - MMMM: dateStrGetter("Month"), - MMM: dateStrGetter("Month", true), - MM: dateGetter("Month", 2, 1), - M: dateGetter("Month", 1, 1), - dd: dateGetter("Date", 2), - d: dateGetter("Date", 1), - HH: dateGetter("Hours", 2), - H: dateGetter("Hours", 1), - hh: dateGetter("Hours", 2, -12), - h: dateGetter("Hours", 1, -12), - mm: dateGetter("Minutes", 2), - m: dateGetter("Minutes", 1), - ss: dateGetter("Seconds", 2), - s: dateGetter("Seconds", 1), - sss: dateGetter("Milliseconds", 3), - EEEE: dateStrGetter("Day"), - EEE: dateStrGetter("Day", true), - a: ampmGetter, - Z: timeZoneGetter - } - var rdateFormat = /((?:[^yMdHhmsaZE']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z))(.*)/ - var raspnetjson = /^\/Date\((\d+)\)\/$/ - filters.date = function(date, format) { - var locate = filters.date.locate, - text = "", - parts = [], - fn, match - format = format || "mediumDate" - format = locate[format] || format - if (typeof date === "string") { - if (/^\d+$/.test(date)) { - date = toInt(date) - } else if (raspnetjson.test(date)) { - date = +RegExp.$1 - } else { - var trimDate = date.trim() - var dateArray = [0, 0, 0, 0, 0, 0, 0] - var oDate = new Date(0) - //取得年月日 - trimDate = trimDate.replace(/^(\d+)\D(\d+)\D(\d+)/, function(_, a, b, c) { - var array = c.length === 4 ? [c, a, b] : [a, b, c] - dateArray[0] = toInt(array[0]) //å¹´ - dateArray[1] = toInt(array[1]) - 1 //月 - dateArray[2] = toInt(array[2]) //日 - return "" - }) - var dateSetter = oDate.setFullYear - var timeSetter = oDate.setHours - trimDate = trimDate.replace(/[T\s](\d+):(\d+):?(\d+)?\.?(\d)?/, function(_, a, b, c, d) { - dateArray[3] = toInt(a) //小时 - dateArray[4] = toInt(b) //分钟 - dateArray[5] = toInt(c) //秒 - if (d) { //毫秒 - dateArray[6] = Math.round(parseFloat("0." + d) * 1000) - } - return "" - }) - var tzHour = 0 - var tzMin = 0 - trimDate = trimDate.replace(/Z|([+-])(\d\d):?(\d\d)/, function(z, symbol, c, d) { - dateSetter = oDate.setUTCFullYear - timeSetter = oDate.setUTCHours - if (symbol) { - tzHour = toInt(symbol + c) - tzMin = toInt(symbol + d) - } - return "" - }) - - dateArray[3] -= tzHour - dateArray[4] -= tzMin - dateSetter.apply(oDate, dateArray.slice(0, 3)) - timeSetter.apply(oDate, dateArray.slice(3)) - date = oDate - } - } - if (typeof date === "number") { - date = new Date(date) - } - if (avalon.type(date) !== "date") { - return - } - while (format) { - match = rdateFormat.exec(format) - if (match) { - parts = parts.concat(match.slice(1)) - format = parts.pop() - } else { - parts.push(format) - format = null - } - } - parts.forEach(function(value) { - fn = DATE_FORMATS[value] - text += fn ? fn(date, locate) : value.replace(/(^'|'$)/g, "").replace(/''/g, "'") - }) - return text - } - var locate = { - AMPMS: { - 0: "上午", - 1: "下午" - }, - DAY: { - 0: "星期日", - 1: "星期一", - 2: "星期二", - 3: "星期三", - 4: "星期四", - 5: "星期五", - 6: "星期六" - }, - MONTH: { - 0: "1月", - 1: "2月", - 2: "3月", - 3: "4月", - 4: "5月", - 5: "6月", - 6: "7月", - 7: "8月", - 8: "9月", - 9: "10月", - 10: "11月", - 11: "12月" - }, - SHORTDAY: { - "0": "周日", - "1": "周一", - "2": "周二", - "3": "周三", - "4": "周四", - "5": "周五", - "6": "周六" - }, - fullDate: "yå¹´M月d日EEEE", - longDate: "yå¹´M月d日", - medium: "yyyy-M-d H:mm:ss", - mediumDate: "yyyy-M-d", - mediumTime: "H:mm:ss", - "short": "yy-M-d ah:mm", - shortDate: "yy-M-d", - shortTime: "ah:mm" - } - locate.SHORTMONTH = locate.MONTH - filters.date.locate = locate -}// jshint ignore:line -/********************************************************************* - * AMD加载器 * - **********************************************************************/ -//https://www.devbridge.com/articles/understanding-amd-requirejs/ -//http://maxogden.com/nested-dependencies.html -var modules = avalon.modules = { - "domReady!": { - exports: avalon, - state: 3 - }, - "avalon": { - exports: avalon, - state: 4 - } -} -//Object(modules[id]).state拥有如下值 -// undefined 没有定义 -// 1(send) 已经发出请求 -// 2(loading) 已经被执行但还没有执行完成,在这个阶段define方法会被执行 -// 3(loaded) 执行完毕,通过onload/onreadystatechange回调判定,在这个阶段checkDeps方法会执行 -// 4(execute) 其依赖也执行完毕, 值放到exports对象上,在这个阶段fireFactory方法会执行 -modules.exports = modules.avalon - -new function () {// jshint ignore:line - var loadings = [] //正在加载中的模块列表 - var factorys = [] //放置define方法的factory函数 - var rjsext = /\.js$/i - function makeRequest(name, config) { -//1. 去掉资源前缀 - var res = "js" - name = name.replace(/^(\w+)\!/, function (a, b) { - res = b - return "" - }) - if (res === "ready") { - log("debug: ready!已经被废弃,请使用domReady!") - res = "domReady" - } -//2. 去掉querystring, hash - var query = "" - name = name.replace(rquery, function (a) { - query = a - return "" - }) - //3. 去掉扩展名 - var suffix = "." + res - var ext = /js|css/.test(suffix) ? suffix : "" - name = name.replace(/\.[a-z0-9]+$/g, function (a) { - if (a === suffix) { - ext = a - return "" - } else { - return a - } - }) - var req = avalon.mix({ - query: query, - ext: ext, - res: res, - name: name, - toUrl: toUrl - }, config) - req.toUrl(name) - return req - } - - function fireRequest(req) { - var name = req.name - var res = req.res - //1. 如果该模块已经发出请求,直接返回 - var module = modules[name] - var urlNoQuery = name && req.urlNoQuery - if (module && module.state >= 1) { - return name - } - module = modules[urlNoQuery] - if (module && module.state >= 3) { - innerRequire(module.deps || [], module.factory, urlNoQuery) - return urlNoQuery - } - if (name && !module) { - module = modules[urlNoQuery] = { - id: urlNoQuery, - state: 1 //send - } - var wrap = function (obj) { - resources[res] = obj - obj.load(name, req, function (a) { - if (arguments.length && a !== void 0) { - module.exports = a - } - module.state = 4 - checkDeps() - }) - } - - if (!resources[res]) { - innerRequire([res], wrap) - } else { - wrap(resources[res]) - } - } - return name ? urlNoQuery : res + "!" - } - -//核心API之一 require - var requireQueue = [] - var isUserFirstRequire = false - innerRequire = avalon.require = function (array, factory, parentUrl, defineConfig) { - if (!isUserFirstRequire) { - requireQueue.push(avalon.slice(arguments)) - if (arguments.length <= 2) { - isUserFirstRequire = true - var queue = requireQueue.splice(0, requireQueue.length), args - while (args = queue.shift()) { - innerRequire.apply(null, args) - } - } - return - } - - if (!Array.isArray(array)) { - avalon.error("require方法的第一个参数应为数组 " + array) - } - var deps = [] // 放置所有依赖项的完整路径 - var uniq = {} - var id = parentUrl || "callback" + setTimeout("1")// jshint ignore:line - defineConfig = defineConfig || {} - defineConfig.baseUrl = kernel.baseUrl - var isBuilt = !!defineConfig.built - if (parentUrl) { - defineConfig.parentUrl = parentUrl.substr(0, parentUrl.lastIndexOf("/")) - defineConfig.mapUrl = parentUrl.replace(rjsext, "") - } - if (isBuilt) { - var req = makeRequest(defineConfig.defineName, defineConfig) - id = req.urlNoQuery - } else { - array.forEach(function (name) { - var req = makeRequest(name, defineConfig) - var url = fireRequest(req) //加载资源,并返回该资源的完整地址 - if (url) { - if (!uniq[url]) { - deps.push(url) - uniq[url] = "司徒正美" //去重 - } - } - }) - } - - var module = modules[id] - if (!module || module.state !== 4) { - modules[id] = { - id: id, - deps: isBuilt ? array.concat() : deps, - factory: factory || noop, - state: 3 - } - } - if (!module) { - //如果此模块是定义在另一个JS文件中, 那必须等该文件加载完毕, 才能放到检测列队中 - loadings.push(id) - } - checkDeps() - } - -//核心API之二 require - innerRequire.define = function (name, deps, factory) { //模块名,依赖列表,模块本身 - if (typeof name !== "string") { - factory = deps - deps = name - name = "anonymous" - } - if (!Array.isArray(deps)) { - factory = deps - deps = [] - } - var config = { - built: !isUserFirstRequire, //用r.js打包后,所有define会放到requirejs之前 - defineName: name - } - var args = [deps, factory, config] - factory.require = function (url) { - args.splice(2, 0, url) - if (modules[url]) { - modules[url].state = 3 //loaded - var isCycle = false - try { - isCycle = checkCycle(modules[url].deps, url) - } catch (e) { - } - if (isCycle) { - avalon.error(url + "模块与之前的模块存在循环依赖,请不要直接用script标签引入" + url + "模块") - } - } - delete factory.require //释放内存 - innerRequire.apply(null, args) //0,1,2 --> 1,2,0 - } -//根据标准,所有遵循W3C标准的浏览器,script标签会按标签的出现顺序执行。 -//老的浏览器中,加载也是按顺序的:一个文件下载完成后,才开始下载下一个文件。 -//较新的浏览器中(IE8+ 、FireFox3.5+ 、Chrome4+ 、Safari4+),为了减小请求时间以优化体验, -//下载可以是并行的,但是执行顺序还是按照标签出现的顺序。 -//但如果script标签是动态插入的, 就未必按照先请求先执行的原则了,目测只有firefox遵守 -//唯一比较一致的是,IE10+及其他标准浏览器,一旦开始解析脚本, 就会一直堵在那里,直接脚本解析完毕 -//亦即,先进入loading阶段的script标签(模块)必然会先进入loaded阶段 - var url = config.built ? "unknown" : getCurrentScript() - if (url) { - var module = modules[url] - if (module) { - module.state = 2 - } - factory.require(url) - } else {//合并前后的safari,合并后的IE6-9走此分支 - factorys.push(factory) - } - } -//核心API之三 require.config(settings) - innerRequire.config = kernel - //核心API之四 define.amd 标识其符合AMD规范 - innerRequire.define.amd = modules - - //==========================对用户配置项进行再加工========================== - var allpaths = kernel["orig.paths"] = {} - var allmaps = kernel["orig.map"] = {} - var allpackages = kernel["packages"] = [] - var allargs = kernel["orig.args"] = {} - avalon.mix(plugins, { - paths: function (hash) { - avalon.mix(allpaths, hash) - kernel.paths = makeIndexArray(allpaths) - }, - map: function (hash) { - avalon.mix(allmaps, hash) - var list = makeIndexArray(allmaps, 1, 1) - avalon.each(list, function (_, item) { - item.val = makeIndexArray(item.val) - }) - kernel.map = list - }, - packages: function (array) { - array = array.concat(allpackages) - var uniq = {} - var ret = [] - for (var i = 0, pkg; pkg = array[i++]; ) { - pkg = typeof pkg === "string" ? {name: pkg} : pkg - var name = pkg.name - if (!uniq[name]) { - var url = joinPath(pkg.location || name, pkg.main || "main") - url = url.replace(rjsext, "") - ret.push(pkg) - uniq[name] = pkg.location = url - pkg.reg = makeMatcher(name) - } - } - kernel.packages = ret.sort() - }, - urlArgs: function (hash) { - if (typeof hash === "string") { - hash = {"*": hash} - } - avalon.mix(allargs, hash) - kernel.urlArgs = makeIndexArray(allargs, 1) - }, - baseUrl: function (url) { - if (!isAbsUrl(url)) { - var baseElement = head.getElementsByTagName("base")[0] - if (baseElement) { - head.removeChild(baseElement) - } - var node = DOC.createElement("a") - node.href = url - url = getFullUrl(node, "href") - if (baseElement) { - head.insertBefore(baseElement, head.firstChild) - } - } - if (url.length > 3) - kernel.baseUrl = url - }, - shim: function (obj) { - for (var i in obj) { - var value = obj[i] - if (Array.isArray(value)) { - value = obj[i] = { - deps: value - } - } - if (!value.exportsFn && (value.exports || value.init)) { - value.exportsFn = makeExports(value) - } - } - kernel.shim = obj - } - - }) - - - //==============================内部方法================================= - function checkCycle(deps, nick) { - //检测是否存在循环依赖 - for (var i = 0, id; id = deps[i++]; ) { - if (modules[id].state !== 4 && - (id === nick || checkCycle(modules[id].deps, nick))) { - return true - } - } - } - - function checkFail(node, onError, fuckIE) { - var id = trimQuery(node.src) //检测是否死链 - node.onload = node.onreadystatechange = node.onerror = null - if (onError || (fuckIE && modules[id] && !modules[id].state)) { - setTimeout(function () { - head.removeChild(node) - node = null // 处理旧式IE下的循环引用问题 - }) - log("debug: 加载 " + id + " 失败" + onError + " " + (!modules[id].state)) - } else { - return true - } - } - - function checkDeps() { - //检测此JS模块的依赖是否都已安装完毕,是则安装自身 - loop: for (var i = loadings.length, id; id = loadings[--i]; ) { - var obj = modules[id], - deps = obj.deps - if (!deps) - continue - for (var j = 0, key; key = deps[j]; j++) { - if (Object(modules[key]).state !== 4) { - continue loop - } - } - //如果deps是空对象或者其依赖的模块的状态都是2 - if (obj.state !== 4) { - loadings.splice(i, 1) //必须先移除再安装,防止在IE下DOM树建完后手动刷新页面,会多次执行它 - fireFactory(obj.id, obj.deps, obj.factory) - checkDeps() //如果成功,则再执行一次,以防有些模块就差本模块没有安装好 - } - } - } - - var rreadyState = /complete|loaded/ - function loadJS(url, id, callback) { - //通过script节点加载目标模块 - var node = DOC.createElement("script") - node.className = subscribers //让getCurrentScript只处理类名为subscribers的script节点 - var supportLoad = "onload" in node - var onEvent = supportLoad ? "onload" : "onreadystatechange" - function onload() { - var factory = factorys.pop() - factory && factory.require(id) - if (callback) { - callback() - } - if (checkFail(node, false, !supportLoad)) { - log("debug: 已成功加载 " + url) - id && loadings.push(id) - checkDeps() - } - } - var index = 0, loadID - node[onEvent] = supportLoad ? onload : function () { - if (rreadyState.test(node.readyState)) { - ++index - if (index === 1) { - loadID = setTimeout(onload, 500) - } else { - clearTimeout(loadID) - onload() - } - } - } - node.onerror = function () { - checkFail(node, true) - } - - head.insertBefore(node, head.firstChild) //chrome下第二个参数不能为null - node.src = url //插入到head的第一个节点前,防止IE6下head标签没闭合前使用appendChild抛错 - log("debug: 正准备加载 " + url) //更重要的是IE6下可以收窄getCurrentScript的寻找范围 - } - - var resources = innerRequire.plugins = { - //三大常用资源插件 js!, css!, text!, ready! - ready: { - load: noop - }, - js: { - load: function (name, req, onLoad) { - var url = req.url - var id = req.urlNoQuery - var shim = kernel.shim[name.replace(rjsext, "")] - if (shim) { //shim机制 - innerRequire(shim.deps || [], function () { - var args = avalon.slice(arguments) - loadJS(url, id, function () { - onLoad(shim.exportsFn ? shim.exportsFn.apply(0, args) : void 0) - }) - }) - } else { - loadJS(url, id) - } - } - }, - css: { - load: function (name, req, onLoad) { - var url = req.url - var node = DOC.createElement("link") - node.rel = "stylesheet" - node.href = url - head.insertBefore(node, head.firstChild) - log("debug: 已成功加载 " + url) - onLoad() - } - }, - text: { - load: function (name, req, onLoad) { - var url = req.url - var xhr = getXHR() - xhr.onreadystatechange = function () { - if (xhr.readyState === 4) { - var status = xhr.status; - if (status > 399 && status < 600) { - avalon.error(url + " 对应资源不存在或没有开启 CORS") - } else { - log("debug: 已成功加载 " + url) - onLoad(xhr.responseText) - } - } - } - var time = "_=" + (new Date() - 0) - var _url = url.indexOf("?") === -1 ? url + "?" + time : url + "&" + time - xhr.open("GET", _url, true) - if ("withCredentials" in xhr) {//这是处理跨域 - xhr.withCredentials = true - } - xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest")//告诉后端这是AJAX请求 - xhr.send() - log("debug: 正准备加载 " + url) - } - } - } - innerRequire.checkDeps = checkDeps - - var rquery = /(\?[^#]*)$/ - function trimQuery(url) { - return (url || "").replace(rquery, "") - } - - function isAbsUrl(path) { - //http://stackoverflow.com/questions/10687099/how-to-test-if-a-url-string-is-absolute-or-relative - return /^(?:[a-z]+:)?\/\//i.test(String(path)) - } - - function getFullUrl(node, src) { - return"1"[0] ? node[src] : node.getAttribute(src, 4) - } - - function getCurrentScript() { - // inspireb by https://github.com/samyk/jiagra/blob/master/jiagra.js - var stack - try { - a.b.c() //强制报错,以便捕获e.stack - } catch (e) { //safari5的sourceURL,firefox的fileName,它们的效果与e.stack不一样 - stack = e.stack - if (!stack && window.opera) { - //opera 9没有e.stack,但有e.Backtrace,但不能直接取得,需要对e对象转字符串进行抽取 - stack = (String(e).match(/of linked script \S+/g) || []).join(" ") - } - } - if (stack) { - /**e.stack最后一行在所有支持的浏览器大致如下: - *chrome23: - * at http://113.93.50.63/data.js:4:1 - *firefox17: - *@http://113.93.50.63/query.js:4 - *opera12:http://www.oldapps.com/opera.php?system=Windows_XP - *@http://113.93.50.63/data.js:4 - *IE10: - * at Global code (http://113.93.50.63/data.js:4:1) - * //firefox4+ 可以用document.currentScript - */ - stack = stack.split(/[@ ]/g).pop() //取得最后一行,最后一个空格或@之后的部分 - stack = stack[0] === "(" ? stack.slice(1, -1) : stack.replace(/\s/, "") //去掉换行符 - return trimQuery(stack.replace(/(:\d+)?:\d+$/i, "")) //去掉行号与或许存在的出错字符起始位置 - } - var nodes = head.getElementsByTagName("script") //只在head标签中寻找 - for (var i = nodes.length, node; node = nodes[--i]; ) { - if (node.className === subscribers && node.readyState === "interactive") { - var url = getFullUrl(node, "src") - return node.className = trimQuery(url) - } - } - } - - var rcallback = /^callback\d+$/ - function fireFactory(id, deps, factory) { - var module = Object(modules[id]) - module.state = 4 - for (var i = 0, array = [], d; d = deps[i++]; ) { - if (d === "exports") { - var obj = module.exports || (module.exports = {}) - array.push(obj) - } else { - array.push(modules[d].exports) - } - } - try { - var ret = factory.apply(window, array) - } catch (e) { - log("执行[" + id + "]模块的factory抛错: ", e) - } - if (ret !== void 0) { - module.exports = ret - } - if (rcallback.test(id)) { - delete modules[id] - } - delete module.factory - return ret - } - function toUrl(id) { - if (id.indexOf(this.res + "!") === 0) { - id = id.slice(this.res.length + 1) //处理define("css!style",[], function(){})的情况 - } - var url = id - //1. 是否命中paths配置项 - var usePath = 0 - var baseUrl = this.baseUrl - var rootUrl = this.parentUrl || baseUrl - eachIndexArray(id, kernel.paths, function (value, key) { - url = url.replace(key, value) - usePath = 1 - }) - //2. 是否命中packages配置项 - if (!usePath) { - eachIndexArray(id, kernel.packages, function (value, key, item) { - url = url.replace(item.name, item.location) - }) - } - //3. 是否命中map配置项 - if (this.mapUrl) { - eachIndexArray(this.mapUrl, kernel.map, function (array) { - eachIndexArray(url, array, function (mdValue, mdKey) { - url = url.replace(mdKey, mdValue) - rootUrl = baseUrl - }) - }) - } - var ext = this.ext - if (ext && usePath && url.slice(-ext.length) === ext) { - url = url.slice(0, -ext.length) - } - //4. 转换为绝对路径 - if (!isAbsUrl(url)) { - rootUrl = this.built || /^\w/.test(url) ? baseUrl : rootUrl - url = joinPath(rootUrl, url) - } - //5. 还原扩展名,query - var urlNoQuery = url + ext - url = urlNoQuery + this.query - //6. 处理urlArgs - eachIndexArray(id, kernel.urlArgs, function (value) { - url += (url.indexOf("?") === -1 ? "?" : "&") + value; - }) - this.url = url - return this.urlNoQuery = urlNoQuery - } - - function makeIndexArray(hash, useStar, part) { - //创建一个经过特殊算法排好序的数组 - var index = hash2array(hash, useStar, part) - index.sort(descSorterByName) - return index - } - - function makeMatcher(prefix) { - return new RegExp('^' + prefix + '(/|$)') - } - - function makeExports(value) { - return function () { - var ret - if (value.init) { - ret = value.init.apply(window, arguments) - } - return ret || (value.exports && getGlobal(value.exports)) - } - } - - - function hash2array(hash, useStar, part) { - var array = []; - for (var key in hash) { - if (ohasOwn.call(hash, key)) { - var item = { - name: key, - val: hash[key] - } - array.push(item) - item.reg = key === "*" && useStar ? /^/ : makeMatcher(key) - if (part && key !== "*") { - item.reg = new RegExp('\/' + key.replace(/^\//, "") + '(/|$)') - } - } - } - return array - } - - function eachIndexArray(moduleID, array, matcher) { - array = array || [] - for (var i = 0, el; el = array[i++]; ) { - if (el.reg.test(moduleID)) { - matcher(el.val, el.name, el) - return false - } - } - } - // 根据元素的name项进行数组字符数逆序的排序函数 - function descSorterByName(a, b) { - var aaa = a.name - var bbb = b.name - if (bbb === "*") { - return -1 - } - if (aaa === "*") { - return 1 - } - return bbb.length - aaa.length - } - - var rdeuce = /\/\w+\/\.\./ - function joinPath(a, b) { - if (a.charAt(a.length - 1) !== "/") { - a += "/" - } - if (b.slice(0, 2) === "./") { //相对于兄弟路径 - return a + b.slice(2) - } - if (b.slice(0, 2) === "..") { //相对于父路径 - a += b - while (rdeuce.test(a)) { - a = a.replace(rdeuce, "") - } - return a - } - if (b.slice(0, 1) === "/") { - return a + b.slice(1) - } - return a + b - } - - function getGlobal(value) { - if (!value) { - return value - } - var g = window - value.split(".").forEach(function (part) { - g = g[part] - }) - return g - } - - var mainNode = DOC.scripts[DOC.scripts.length - 1] - var dataMain = mainNode.getAttribute("data-main") - if (dataMain) { - plugins.baseUrl(dataMain) - var href = kernel.baseUrl - kernel.baseUrl = href.slice(0, href.lastIndexOf("/") + 1) - loadJS(href.replace(rjsext, "") + ".js") - } else { - var loaderUrl = trimQuery(getFullUrl(mainNode, "src")) - kernel.baseUrl = loaderUrl.slice(0, loaderUrl.lastIndexOf("/") + 1) - } -}// jshint ignore:line - -/********************************************************************* - * DOMReady * - **********************************************************************/ - -var readyList = [], isReady -var fireReady = function(fn) { - isReady = true - if (innerRequire) { - modules["domReady!"].state = 4 - innerRequire.checkDeps() - } - while(fn = readyList.shift()){ - fn(avalon) - } -} - -function doScrollCheck() { - try { //IE下通过doScrollCheck检测DOM树是否建完 - root.doScroll("left") - fireReady() - } catch (e) { - setTimeout(doScrollCheck) - } -} - -if (DOC.readyState === "complete") { - setTimeout(fireReady) //如果在domReady之外加载 -} else if (W3C) { - DOC.addEventListener("DOMContentLoaded", fireReady) -} else { - DOC.attachEvent("onreadystatechange", function() { - if (DOC.readyState === "complete") { - fireReady() - } - }) - try { - var isTop = window.frameElement === null - } catch (e) { - } - if (root.doScroll && isTop && window.external) {//fix IE iframe BUG - doScrollCheck() - } -} -avalon.bind(window, "load", fireReady) - -avalon.ready = function(fn) { - if (!isReady) { - readyList.push(fn) - } else { - fn(avalon) - } -} - -avalon.config({ - loader: true -}) - -avalon.ready(function() { - avalon.scan(DOC.body) -}) - -// Register as a named AMD module, since avalon can be concatenated with other -// files that may use define, but not via a proper concatenation script that -// understands anonymous AMD modules. A named AMD is safest and most robust -// way to register. Lowercase avalon is used because AMD module names are -// derived from file names, and Avalon is normally delivered in a lowercase -// file name. Do this after creating the global so that if an AMD module wants -// to call noConflict to hide this version of avalon, it will work. - -// Note that for maximum portability, libraries that are not avalon should -// declare themselves as anonymous modules, and avoid setting a global if an -// AMD loader is present. avalon is a special case. For more information, see -// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon - if (typeof define === "function" && define.amd) { - define("avalon", [], function() { - return avalon - }) - } -// Map over avalon in case of overwrite - var _avalon = window.avalon - avalon.noConflict = function(deep) { - if (deep && window.avalon === avalon) { - window.avalon = _avalon - } - return avalon - } -// Expose avalon identifiers, even in AMD -// and CommonJS for browser emulators - if (noGlobal === void 0) { - window.avalon = avalon - } - return avalon - -})); \ No newline at end of file diff --git a/openo-portal/portal-common/src/main/webapp/common/thirdparty/avalon/avalon.modern.js b/openo-portal/portal-common/src/main/webapp/common/thirdparty/avalon/avalon.modern.js deleted file mode 100644 index 7c37393f..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/thirdparty/avalon/avalon.modern.js +++ /dev/null @@ -1,4935 +0,0 @@ -/*================================================== - Copyright (c) 2013-2015 司徒正美 and other contributors - http://www.cnblogs.com/rubylouvre/ - https://github.com/RubyLouvre - http://weibo.com/jslouvre/ - - Released under the MIT license - avalon.modern.js 1.43 built in 2015.5.21 - support IE10+ and other browsers - ==================================================*/ -(function (global, factory) { - - if (typeof module === "object" && typeof module.exports === "object") { - // For CommonJS and CommonJS-like environments where a proper `window` - // is present, execute the factory and get avalon. - // For environments that do not have a `window` with a `document` - // (such as Node.js), expose a factory as module.exports. - // This accentuates the need for the creation of a real `window`. - // e.g. var avalon = require("avalon")(window); - module.exports = global.document ? factory(global, true) : function (w) { - if (!w.document) { - throw new Error("Avalon requires a window with a document") - } - return factory(w) - } - } else { - factory(global) - } - -// Pass this if window is not defined yet -}(typeof window !== "undefined" ? window : this, function (window, noGlobal) { - - /********************************************************************* - * 全局变量及方法 * - **********************************************************************/ - var expose = Date.now() -//http://stackoverflow.com/questions/7290086/javascript-use-strict-and-nicks-find-global-function - var DOC = window.document - var head = DOC.head //HEAD元素 - head.insertAdjacentHTML("afterBegin", '') - var ifGroup = head.firstChild - - function log() { - if (avalon.config.debug) { -// http://stackoverflow.com/questions/8785624/how-to-safely-wrap-console-log - console.log.apply(console, arguments) - } - } - - /** - * Creates a new object without a prototype. This object is useful for lookup without having to - * guard against prototypically inherited properties via hasOwnProperty. - * - * Related micro-benchmarks: - * - http://jsperf.com/object-create2 - * - http://jsperf.com/proto-map-lookup/2 - * - http://jsperf.com/for-in-vs-object-keys2 - */ - function createMap() { - return Object.create(null) - } - - var subscribers = "$" + expose - var otherRequire = window.require - var otherDefine = window.define - var innerRequire - var stopRepeatAssign = false - var rword = /[^, ]+/g //切割字符串为一个个小块,以空格或豆号分开它们,结合replace实现字符串的forEach - var rcomplexType = /^(?:object|array)$/ - var rsvg = /^\[object SVG\w*Element\]$/ - var rwindow = /^\[object (?:Window|DOMWindow|global)\]$/ - var oproto = Object.prototype - var ohasOwn = oproto.hasOwnProperty - var serialize = oproto.toString - var ap = Array.prototype - var aslice = ap.slice - var Registry = {} //将函数曝光到此对象上,方便访问器收集依赖 - var W3C = window.dispatchEvent - var root = DOC.documentElement - var hyperspace = DOC.createDocumentFragment() - var cinerator = DOC.createElement("div") - var class2type = {} - "Boolean Number String Function Array Date RegExp Object Error".replace(rword, function (name) { - class2type["[object " + name + "]"] = name.toLowerCase() - }) - - - function noop() { - } - - - function oneObject(array, val) { - if (typeof array === "string") { - array = array.match(rword) || [] - } - var result = {}, - value = val !== void 0 ? val : 1 - for (var i = 0, n = array.length; i < n; i++) { - result[array[i]] = value - } - return result - } - -//生成UUID http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript - var generateID = function (prefix) { - prefix = prefix || "avalon" - return String(Math.random() + Math.random()).replace(/\d\.\d{4}/, prefix) - } - - function IE() { - if (window.VBArray) { - var mode = document.documentMode - return mode ? mode : window.XMLHttpRequest ? 7 : 6 - } else { - return 0 - } - } - - var IEVersion = IE() - - avalon = function (el) { //创建jQuery式的无new 实例化结构 - return new avalon.init(el) - } - - /*视浏览器情况采用最快的异步回调*/ - avalon.nextTick = new function () {// jshint ignore:line - var tickImmediate = window.setImmediate - var tickObserver = window.MutationObserver - var tickPost = W3C && window.postMessage - if (tickImmediate) { - return tickImmediate.bind(window) - } - - var queue = [] - - function callback() { - var n = queue.length - for (var i = 0; i < n; i++) { - queue[i]() - } - queue = queue.slice(n) - } - - if (tickObserver) { - var node = document.createTextNode("avalon") - new tickObserver(callback).observe(node, {characterData: true})// jshint ignore:line - return function (fn) { - queue.push(fn) - node.data = Math.random() - } - } - - if (tickPost) { - window.addEventListener("message", function (e) { - var source = e.source - if ((source === window || source === null) && e.data === "process-tick") { - e.stopPropagation() - callback() - } - }) - - return function (fn) { - queue.push(fn) - window.postMessage('process-tick', '*') - } - } - - return function (fn) { - setTimeout(fn, 0) - } - }// jshint ignore:line - /********************************************************************* - * avalon的静态方法定义区 * - **********************************************************************/ - avalon.init = function (el) { - this[0] = this.element = el - } - avalon.fn = avalon.prototype = avalon.init.prototype - - avalon.type = function (obj) { //取得目标的类型 - if (obj == null) { - return String(obj) - } - // 早期的webkit内核浏览器实现了已废弃的ecma262v4标准,可以将正则字面量当作函数使用,因此typeof在判定正则时会返回function - return typeof obj === "object" || typeof obj === "function" ? - class2type[serialize.call(obj)] || "object" : - typeof obj - } - - var isFunction = function (fn) { - return serialize.call(fn) === "[object Function]" - } - - avalon.isFunction = isFunction - - avalon.isWindow = function (obj) { - return rwindow.test(serialize.call(obj)) - } - - /*判定是否是一个朴素的javascript对象(Object),不是DOM对象,不是BOM对象,不是自定义类的实例*/ - - avalon.isPlainObject = function (obj) { - // 简单的 typeof obj === "object"检测,会致使用isPlainObject(window)在opera下通不过 - return serialize.call(obj) === "[object Object]" && Object.getPrototypeOf(obj) === oproto - } - -//与jQuery.extend方法,可用于浅拷贝,深拷贝 - avalon.mix = avalon.fn.mix = function () { - var options, name, src, copy, copyIsArray, clone, - target = arguments[0] || {}, - i = 1, - length = arguments.length, - deep = false - - // 如果第一个参数为布尔,判定是否深拷贝 - if (typeof target === "boolean") { - deep = target - target = arguments[1] || {} - i++ - } - - //确保接受方为一个复杂的数据类型 - if (typeof target !== "object" && !isFunction(target)) { - target = {} - } - - //如果只有一个参数,那么新成员添加于mix所在的对象上 - if (i === length) { - target = this - i-- - } - - for (; i < length; i++) { - //只处理非空参数 - if ((options = arguments[i]) != null) { - for (name in options) { - src = target[name] - copy = options[name] - // 防止环引用 - if (target === copy) { - continue - } - if (deep && copy && (avalon.isPlainObject(copy) || (copyIsArray = Array.isArray(copy)))) { - - if (copyIsArray) { - copyIsArray = false - clone = src && Array.isArray(src) ? src : [] - - } else { - clone = src && avalon.isPlainObject(src) ? src : {} - } - - target[name] = avalon.mix(deep, clone, copy) - } else if (copy !== void 0) { - target[name] = copy - } - } - } - } - return target - } - - function _number(a, len) { //用于模拟slice, splice的效果 - a = Math.floor(a) || 0 - return a < 0 ? Math.max(len + a, 0) : Math.min(a, len); - } - - avalon.mix({ - rword: rword, - subscribers: subscribers, - version: 1.43, - ui: {}, - log: log, - slice: function (nodes, start, end) { - return aslice.call(nodes, start, end) - }, - noop: noop, - /*如果不用Error对象封装一下,str在控制台下可能会乱码*/ - error: function (str, e) { - throw new (e || Error)(str)// jshint ignore:line - }, - /*将一个以空格或逗号隔开的字符串或数组,转换成一个键值都为1的对象*/ - oneObject: oneObject, - /* avalon.range(10) - => [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] - avalon.range(1, 11) - => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] - avalon.range(0, 30, 5) - => [0, 5, 10, 15, 20, 25] - avalon.range(0, -10, -1) - => [0, -1, -2, -3, -4, -5, -6, -7, -8, -9] - avalon.range(0) - => []*/ - range: function (start, end, step) { // 用于生成整数数组 - step || (step = 1) - if (end == null) { - end = start || 0 - start = 0 - } - var index = -1, - length = Math.max(0, Math.ceil((end - start) / step)), - result = new Array(length) - while (++index < length) { - result[index] = start - start += step - } - return result - }, - eventHooks: {}, - /*绑定事件*/ - bind: function (el, type, fn, phase) { - var hooks = avalon.eventHooks - var hook = hooks[type] - if (typeof hook === "object") { - type = hook.type - if (hook.deel) { - fn = hook.deel(el, type, fn, phase) - } - } - if (!fn.unbind) - el.addEventListener(type, fn, !!phase) - return fn - }, - /*卸载事件*/ - unbind: function (el, type, fn, phase) { - var hooks = avalon.eventHooks - var hook = hooks[type] - var callback = fn || noop - if (typeof hook === "object") { - type = hook.type - if (hook.deel) { - fn = hook.deel(el, type, fn, false) - } - } - el.removeEventListener(type, callback, !!phase) - }, - /*读写删除元素节点的样式*/ - css: function (node, name, value) { - if (node instanceof avalon) { - node = node[0] - } - var prop = /[_-]/.test(name) ? camelize(name) : name, fn - name = avalon.cssName(prop) || prop - if (value === void 0 || typeof value === "boolean") { //获取样式 - fn = cssHooks[prop + ":get"] || cssHooks["@:get"] - if (name === "background") { - name = "backgroundColor" - } - var val = fn(node, name) - return value === true ? parseFloat(val) || 0 : val - } else if (value === "") { //请除样式 - node.style[name] = "" - } else { //设置样式 - if (value == null || value !== value) { - return - } - if (isFinite(value) && !avalon.cssNumber[prop]) { - value += "px" - } - fn = cssHooks[prop + ":set"] || cssHooks["@:set"] - fn(node, name, value) - } - }, - /*遍历数组与对象,回调的第一个参数为索引或键名,第二个或元素或键值*/ - each: function (obj, fn) { - if (obj) { //排除null, undefined - var i = 0 - if (isArrayLike(obj)) { - for (var n = obj.length; i < n; i++) { - if (fn(i, obj[i]) === false) - break - } - } else { - for (i in obj) { - if (obj.hasOwnProperty(i) && fn(i, obj[i]) === false) { - break - } - } - } - } - }, - //收集元素的data-{{prefix}}-*属性,并转换为对象 - getWidgetData: function (elem, prefix) { - var raw = avalon(elem).data() - var result = {} - for (var i in raw) { - if (i.indexOf(prefix) === 0) { - result[i.replace(prefix, "").replace(/\w/, function (a) { - return a.toLowerCase() - })] = raw[i] - } - } - return result - }, - Array: { - /*只有当前数组不存在此元素时只添加它*/ - ensure: function (target, item) { - if (target.indexOf(item) === -1) { - return target.push(item) - } - }, - /*移除数组中指定位置的元素,返回布尔表示成功与否*/ - removeAt: function (target, index) { - return !!target.splice(index, 1).length - }, - /*移除数组中第一个匹配传参的那个元素,返回布尔表示成功与否*/ - remove: function (target, item) { - var index = target.indexOf(item) - if (~index) - return avalon.Array.removeAt(target, index) - return false - } - } - }) - - var bindingHandlers = avalon.bindingHandlers = {} - var bindingExecutors = avalon.bindingExecutors = {} - - /*判定是否类数组,如节点集合,纯数组,arguments与拥有非负整数的length属性的纯JS对象*/ - function isArrayLike(obj) { - if (obj && typeof obj === "object") { - var n = obj.length, - str = serialize.call(obj) - if (/(Array|List|Collection|Map|Arguments)\]$/.test(str)) { - return true - } else if (str === "[object Object]" && n === (n >>> 0)) { - return true //由于ecma262v5能修改对象属性的enumerable,因此不能用propertyIsEnumerable来判定了 - } - } - return false - } - - -// https://github.com/rsms/js-lru - var Cache = new function () {// jshint ignore:line - function LRU(maxLength) { - this.size = 0 - this.limit = maxLength - this.head = this.tail = void 0 - this._keymap = {} - } - - var p = LRU.prototype - - p.put = function (key, value) { - var entry = { - key: key, - value: value - } - this._keymap[key] = entry - if (this.tail) { - this.tail.newer = entry - entry.older = this.tail - } else { - this.head = entry - } - this.tail = entry - if (this.size === this.limit) { - this.shift() - } else { - this.size++ - } - return value - } - - p.shift = function () { - var entry = this.head - if (entry) { - this.head = this.head.newer - this.head.older = - entry.newer = - entry.older = - this._keymap[entry.key] = void 0 - } - } - p.get = function (key) { - var entry = this._keymap[key] - if (entry === void 0) - return - if (entry === this.tail) { - return entry.value - } - // HEAD--------------TAIL - // <.older .newer> - // <--- add direction -- - // A B C E - if (entry.newer) { - if (entry === this.head) { - this.head = entry.newer - } - entry.newer.older = entry.older // C <-- E. - } - if (entry.older) { - entry.older.newer = entry.newer // C. --> E - } - entry.newer = void 0 // D --x - entry.older = this.tail // D. --> E - if (this.tail) { - this.tail.newer = entry // E. <-- D - } - this.tail = entry - return entry.value - } - return LRU - }// jshint ignore:line - - /********************************************************************* - * DOM 底层补丁 * - **********************************************************************/ -//safari5+是把contains方法放在Element.prototype上而不是Node.prototype - if (!DOC.contains) { - Node.prototype.contains = function (arg) { - return !!(this.compareDocumentPosition(arg) & 16) - } - } - avalon.contains = function (root, el) { - try { - while ((el = el.parentNode)) - if (el === root) - return true - return false - } catch (e) { - return false - } - } - - if (window.SVGElement) { - var svgns = "http://www.w3.org/2000/svg" - var svg = DOC.createElementNS(svgns, "svg") - svg.innerHTML = '' - if (!rsvg.test(svg.firstChild)) {// #409 - /* jshint ignore:start */ - function enumerateNode(node, targetNode) { - if (node && node.childNodes) { - var nodes = node.childNodes - for (var i = 0, el; el = nodes[i++];) { - if (el.tagName) { - var svg = DOC.createElementNS(svgns, - el.tagName.toLowerCase()) - // copy attrs - ap.forEach.call(el.attributes, function (attr) { - svg.setAttribute(attr.name, attr.value) - }) - // 递归处理子节点 - enumerateNode(el, svg) - targetNode.appendChild(svg) - } - } - } - } - - /* jshint ignore:end */ - Object.defineProperties(SVGElement.prototype, { - "outerHTML": {//IE9-11,firefox不支持SVG元素的innerHTML,outerHTML属性 - enumerable: true, - configurable: true, - get: function () { - return new XMLSerializer().serializeToString(this) - }, - set: function (html) { - var tagName = this.tagName.toLowerCase(), - par = this.parentNode, - frag = avalon.parseHTML(html) - // 操作的svg,直接插入 - if (tagName === "svg") { - par.insertBefore(frag, this) - // svg节点的子节点类似 - } else { - var newFrag = DOC.createDocumentFragment() - enumerateNode(frag, newFrag) - par.insertBefore(newFrag, this) - } - par.removeChild(this) - } - }, - "innerHTML": { - enumerable: true, - configurable: true, - get: function () { - var s = this.outerHTML - var ropen = new RegExp("<" + this.nodeName + '\\b(?:(["\'])[^"]*?(\\1)|[^>])*>', "i") - var rclose = new RegExp("<\/" + this.nodeName + ">$", "i") - return s.replace(ropen, "").replace(rclose, "") - }, - set: function (html) { - if (avalon.clearHTML) { - avalon.clearHTML(this) - var frag = avalon.parseHTML(html) - enumerateNode(frag, this) - } - } - } - }) - } - } -//========================= event binding ==================== - var eventHooks = avalon.eventHooks -//针对firefox, chrome修正mouseenter, mouseleave(chrome30+) - if (!("onmouseenter" in root)) { - avalon.each({ - mouseenter: "mouseover", - mouseleave: "mouseout" - }, function (origType, fixType) { - eventHooks[origType] = { - type: fixType, - deel: function (elem, _, fn) { - return function (e) { - var t = e.relatedTarget - if (!t || (t !== elem && !(elem.compareDocumentPosition(t) & 16))) { - delete e.type - e.type = origType - return fn.call(elem, e) - } - } - } - } - }) - } -//针对IE9+, w3c修正animationend - avalon.each({ - AnimationEvent: "animationend", - WebKitAnimationEvent: "webkitAnimationEnd" - }, function (construct, fixType) { - if (window[construct] && !eventHooks.animationend) { - eventHooks.animationend = { - type: fixType - } - } - }) - - if (DOC.onmousewheel === void 0) { - /* IE6-11 chrome mousewheel wheelDetla 下 -120 上 120 - firefox DOMMouseScroll detail 下3 上-3 - firefox wheel detlaY 下3 上-3 - IE9-11 wheel deltaY 下40 上-40 - chrome wheel deltaY 下100 上-100 */ - eventHooks.mousewheel = { - type: "wheel", - deel: function (elem, _, fn) { - return function (e) { - e.wheelDeltaY = e.wheelDelta = e.deltaY > 0 ? -120 : 120 - e.wheelDeltaX = 0 - Object.defineProperty(e, "type", { - value: "mousewheel" - }) - fn.call(elem, e) - } - } - } - } - - /********************************************************************* - * 配置系统 * - **********************************************************************/ - - function kernel(settings) { - for (var p in settings) { - if (!ohasOwn.call(settings, p)) - continue - var val = settings[p] - if (typeof kernel.plugins[p] === "function") { - kernel.plugins[p](val) - } else if (typeof kernel[p] === "object") { - avalon.mix(kernel[p], val) - } else { - kernel[p] = val - } - } - return this - } - - var openTag, closeTag, rexpr, rexprg, rbind, rregexp = /[-.*+?^${}()|[\]\/\\]/g - - function escapeRegExp(target) { - //http://stevenlevithan.com/regex/xregexp/ - //将字符串安全格式化为正则表达式的源码 - return (target + "").replace(rregexp, "\\$&") - } - - var plugins = { - loader: function (builtin) { - var flag = innerRequire && builtin - window.require = flag ? innerRequire : otherRequire - window.define = flag ? innerRequire.define : otherDefine - }, - interpolate: function (array) { - openTag = array[0] - closeTag = array[1] - if (openTag === closeTag) { - throw new SyntaxError("openTag!==closeTag") - } else if (array + "" === "") { - kernel.commentInterpolate = true - } else { - var test = openTag + "test" + closeTag - cinerator.innerHTML = test - if (cinerator.innerHTML !== test && cinerator.innerHTML.indexOf("<") > -1) { - throw new SyntaxError("此定界符不合法") - } - cinerator.innerHTML = "" - } - var o = escapeRegExp(openTag), - c = escapeRegExp(closeTag) - rexpr = new RegExp(o + "(.*?)" + c) - rexprg = new RegExp(o + "(.*?)" + c, "g") - rbind = new RegExp(o + ".*?" + c + "|\\sms-") - } - } - - kernel.debug = true - kernel.plugins = plugins - kernel.plugins['interpolate'](["{{", "}}"]) - kernel.paths = {} - kernel.shim = {} - kernel.maxRepeatSize = 100 - avalon.config = kernel - var ravalon = /(\w+)\[(avalonctrl)="(\S+)"\]/ - var findNodes = function (str) { - return DOC.querySelectorAll(str) - } - /********************************************************************* - * 事件总线 * - **********************************************************************/ - var EventBus = { - $watch: function (type, callback) { - if (typeof callback === "function") { - var callbacks = this.$events[type] - if (callbacks) { - callbacks.push(callback) - } else { - this.$events[type] = [callback] - } - } else { //重新开始监听此VM的第一重简单属性的变动 - this.$events = this.$watch.backup - } - return this - }, - $unwatch: function (type, callback) { - var n = arguments.length - if (n === 0) { //让此VM的所有$watch回调无效化 - this.$watch.backup = this.$events - this.$events = {} - } else if (n === 1) { - this.$events[type] = [] - } else { - var callbacks = this.$events[type] || [] - var i = callbacks.length - while (~--i < 0) { - if (callbacks[i] === callback) { - return callbacks.splice(i, 1) - } - } - } - return this - }, - $fire: function (type) { - var special, i, v, callback - if (/^(\w+)!(\S+)$/.test(type)) { - special = RegExp.$1 - type = RegExp.$2 - } - var events = this.$events - if (!events) - return - var args = aslice.call(arguments, 1) - var detail = [type].concat(args) - if (special === "all") { - for (i in avalon.vmodels) { - v = avalon.vmodels[i] - if (v !== this) { - v.$fire.apply(v, detail) - } - } - } else if (special === "up" || special === "down") { - var elements = events.expr ? findNodes(events.expr) : [] - if (elements.length === 0) - return - for (i in avalon.vmodels) { - v = avalon.vmodels[i] - if (v !== this) { - if (v.$events.expr) { - var eventNodes = findNodes(v.$events.expr) - if (eventNodes.length === 0) { - continue - } - //循环两个vmodel中的节点,查找匹配(向上匹配或者向下匹配)的节点并设置标识 - /* jshint ignore:start */ - Array.prototype.forEach.call(eventNodes, function (node) { - Array.prototype.forEach.call(elements, function (element) { - var ok = special === "down" ? element.contains(node) : //向下捕获 - node.contains(element) //向上冒泡 - if (ok) { - node._avalon = v //符合条件的加一个标识 - } - }); - }) - /* jshint ignore:end */ - } - } - } - var nodes = DOC.getElementsByTagName("*") //实现节点排序 - var alls = [] - Array.prototype.forEach.call(nodes, function (el) { - if (el._avalon) { - alls.push(el._avalon) - el._avalon = "" - el.removeAttribute("_avalon") - } - }) - if (special === "up") { - alls.reverse() - } - for (i = 0; callback = alls[i++];) { - if (callback.$fire.apply(callback, detail) === false) { - break - } - } - } else { - var callbacks = events[type] || [] - var all = events.$all || [] - for (i = 0; callback = callbacks[i++];) { - if (isFunction(callback)) - callback.apply(this, args) - } - for (i = 0; callback = all[i++];) { - if (isFunction(callback)) - callback.apply(this, arguments) - } - } - } - } - - /********************************************************************* - * modelFactory * - **********************************************************************/ -//avalon最核心的方法的两个方法之一(另一个是avalon.scan),返回一个ViewModel(VM) - var VMODELS = avalon.vmodels = createMap() //所有vmodel都储存在这里 - avalon.define = function (id, factory) { - var $id = id.$id || id - if (!$id) { - log("warning: vm必须指定$id") - } - if (VMODELS[$id]) { - log("warning: " + $id + " 已经存在于avalon.vmodels中") - } - if (typeof id === "object") { - var model = modelFactory(id) - } else { - var scope = { - $watch: noop - } - factory(scope) //得到所有定义 - model = modelFactory(scope) //偷天换日,将scope换为model - stopRepeatAssign = true - factory(model) - stopRepeatAssign = false - } - model.$id = $id - return VMODELS[$id] = model - } - -//一些不需要被监听的属性 - var $$skipArray = String("$id,$watch,$unwatch,$fire,$events,$model,$skipArray").match(rword) - - function isObservable(name, value, $skipArray) { - if (isFunction(value) || value && value.nodeType) { - return false - } - if ($skipArray.indexOf(name) !== -1) { - return false - } - if ($$skipArray.indexOf(name) !== -1) { - return false - } - var $special = $skipArray.$special - if (name && name.charAt(0) === "$" && !$special[name]) { - return false - } - return true - } - -//ms-with,ms-each, ms-repeat绑定生成的代理对象储存池 - var midway = createMap() - - function getNewValue(accessor, name, value, $vmodel) { - switch (accessor.type) { - case 0://计算属性 - var getter = accessor.get - var setter = accessor.set - if (isFunction(setter)) { - var $events = $vmodel.$events - var lock = $events[name] - $events[name] = [] //清空回调,防止内部冒泡而触发多次$fire - setter.call($vmodel, value) - $events[name] = lock - } - return getter.call($vmodel) //同步$model - case 1://监控属性 - return value - case 2://对象属性(包括数组与哈希) - if (value !== $vmodel.$model[name]) { - var svmodel = accessor.svmodel = objectFactory($vmodel, name, value, accessor.valueType) - value = svmodel.$model //同步$model - var fn = midway[svmodel.$id] - fn && fn() //同步视图 - } - return value - } - } - - function modelFactory(source, $special, $model) { - if (Array.isArray(source)) { - var arr = source.concat() - source.length = 0 - var collection = Collection(source)// jshint ignore:line - collection.pushArray(arr) - return collection - } - //0 null undefined || Node || VModel - if (!source || source.nodeType > 0 || (source.$id && source.$events)) { - return source - } - if (!Array.isArray(source.$skipArray)) { - source.$skipArray = [] - } - source.$skipArray.$special = $special || createMap() //强制要监听的属性 - var $vmodel = {} //要返回的对象, 它在IE6-8下可能被偷龙转凤 - $model = $model || {} //vmodels.$model属性 - var $events = createMap() //vmodel.$events属性 - var watchedProperties = createMap() //监控属性 - var initCallbacks = [] //初始化才执行的函数 - for (var i in source) { - (function (name, val) { - $model[name] = val - if (!isObservable(name, val, source.$skipArray)) { - return //过滤所有非监控属性 - } - //总共产生三种accessor - $events[name] = [] - var valueType = avalon.type(val) - var accessor = function (newValue) { - var name = accessor._name - var $vmodel = this - var $model = $vmodel.$model - var oldValue = $model[name] - var $events = $vmodel.$events - - if (arguments.length) { - if (stopRepeatAssign) { - return - } - //计算属性与对象属性需要重新计算newValue - if (accessor.type !== 1) { - newValue = getNewValue(accessor, name, newValue, $vmodel) - if (!accessor.type) - return - } - if (!isEqual(oldValue, newValue)) { - $model[name] = newValue - notifySubscribers($events[name]) //同步视图 - safeFire($vmodel, name, newValue, oldValue) //触发$watch回调 - } - } else { - if (accessor.type === 0) { //type 0 计算属性 1 监控属性 2 对象属性 - //计算属性不需要收集视图刷新函数,都是由其他监控属性代劳 - newValue = accessor.get.call($vmodel) - if (oldValue !== newValue) { - $model[name] = newValue - //这里不用同步视图 - safeFire($vmodel, name, newValue, oldValue) //触发$watch回调 - } - return newValue - } else { - collectSubscribers($events[name]) //收集视图函数 - return accessor.svmodel || oldValue - } - } - } - //总共产生三种accessor - if (valueType === "object" && isFunction(val.get) && Object.keys(val).length <= 2) { - //第1种为计算属性, 因变量,通过其他监控属性触发其改变 - accessor.set = val.set - accessor.get = val.get - accessor.type = 0 - initCallbacks.push(function () { - var data = { - evaluator: function () { - data.type = Math.random(), - data.element = null - $model[name] = accessor.get.call($vmodel) - }, - element: head, - type: Math.random(), - handler: noop, - args: [] - } - Registry[expose] = data - accessor.call($vmodel) - delete Registry[expose] - }) - } else if (rcomplexType.test(valueType)) { - //第2种为对象属性,产生子VM与监控数组 - accessor.type = 2 - accessor.valueType = valueType - initCallbacks.push(function () { - var svmodel = modelFactory(val, 0, $model[name]) - accessor.svmodel = svmodel - svmodel.$events[subscribers] = $events[name] - }) - } else { - accessor.type = 1 - //第3种为监控属性,对应简单的数据类型,自变量 - } - accessor._name = name - watchedProperties[name] = accessor - })(i, source[i])// jshint ignore:line - } - - $$skipArray.forEach(function (name) { - delete source[name] - delete $model[name] //这些特殊属性不应该在$model中出现 - }) - - $vmodel = Object.defineProperties($vmodel, descriptorFactory(watchedProperties), source) //生成一个空的ViewModel - for (var name in source) { - if (!watchedProperties[name]) { - $vmodel[name] = source[name] - } - } - //添加$id, $model, $events, $watch, $unwatch, $fire - $vmodel.$id = generateID() - $vmodel.$model = $model - $vmodel.$events = $events - for (i in EventBus) { - $vmodel[i] = EventBus[i] - } - - Object.defineProperty($vmodel, "hasOwnProperty", { - value: function (name) { - return name in this.$model - }, - writable: false, - enumerable: false, - configurable: true - }) - - initCallbacks.forEach(function (cb) { //收集依赖 - cb() - }) - return $vmodel - } - -//比较两个值是否相等 - var isEqual = Object.is || function (v1, v2) { - if (v1 === 0 && v2 === 0) { - return 1 / v1 === 1 / v2 - } else if (v1 !== v1) { - return v2 !== v2 - } else { - return v1 === v2 - } - } - - function safeFire(a, b, c, d) { - if (a.$events) { - EventBus.$fire.call(a, b, c, d) - } - } - - var descriptorFactory = function (obj) { - var descriptors = createMap() - for (var i in obj) { - descriptors[i] = { - get: obj[i], - set: obj[i], - enumerable: true, - configurable: true - } - } - return descriptors - } - -//应用于第2种accessor - function objectFactory(parent, name, value, valueType) { - //a为原来的VM, b为新数组或新对象 - var son = parent[name] - if (valueType === "array") { - if (!Array.isArray(value) || son === value) { - return son //fix https://github.com/RubyLouvre/avalon/issues/261 - } - son._.$unwatch() - son.clear() - son._.$watch() - son.pushArray(value.concat()) - return son - } else { - var iterators = parent.$events[name] - var ret = modelFactory(value) - ret.$events[subscribers] = iterators - midway[ret.$id] = function (data) { - while (data = iterators.shift()) { - (function (el) { - avalon.nextTick(function () { - var type = el.type - if (type && bindingHandlers[type]) { //#753 - el.rollback && el.rollback() //还原 ms-with ms-on - bindingHandlers[type](el, el.vmodels) - } - }) - })(data)// jshint ignore:line - } - delete midway[ret.$id] - } - return ret - } - } - - /********************************************************************* - * 监控数组(与ms-each, ms-repeat配合使用) * - **********************************************************************/ - - function Collection(model) { - var array = [] - array.$id = generateID() - array.$model = model //数据模型 - array.$events = {} - array.$events[subscribers] = [] - array._ = modelFactory({ - length: model.length - }) - array._.$watch("length", function (a, b) { - array.$fire("length", a, b) - }) - for (var i in EventBus) { - array[i] = EventBus[i] - } - array.$map = { - el: 1 - } - array.$proxy = [] - avalon.mix(array, CollectionPrototype) - return array - } - - function mutateArray(method, pos, n, index, method2, pos2, n2) { - var oldLen = this.length, loop = 2 - while (--loop) { - switch (method) { - case "add": - /* jshint ignore:start */ - var m = pos + n - var array = this.$model.slice(pos, m).map(function (el) { - if (rcomplexType.test(avalon.type(el))) {//转换为VM - return el.$id ? el : modelFactory(el, 0, el) - } else { - return el - } - }) - /* jshint ignore:end */ - for (var i = pos; i < m; i++) {//生成代理VM - var proxy = eachProxyAgent(i, this) - this.$proxy.splice(i, 0, proxy) - } - _splice.apply(this, [pos, 0].concat(array)) - this._fire("add", pos, n) - break - case "del": - var ret = this._splice(pos, n) - var removed = this.$proxy.splice(pos, n) //回收代理VM - recycleProxies(removed, "each") - this._fire("del", pos, n) - break - } - if (method2) { - method = method2 - pos = pos2 - n = n2 - loop = 2 - method2 = 0 - } - } - resetIndex(this.$proxy, index) - if (this.length !== oldLen) { - this._.length = this.length - } - return ret - } - - var _splice = ap.splice - var CollectionPrototype = { - _splice: _splice, - _fire: function (method, a, b) { - notifySubscribers(this.$events[subscribers], method, a, b) - }, - size: function () { //取得数组长度,这个函数可以同步视图,length不能 - return this._.length - }, - pushArray: function (array) { - var m = array.length, n = this.length - if (m) { - ap.push.apply(this.$model, array) - mutateArray.call(this, "add", n, m, Math.max(0, n - 1)) - } - return m + n - }, - push: function () { - //http://jsperf.com/closure-with-arguments - var array = [] - var i, n = arguments.length - for (i = 0; i < n; i++) { - array[i] = arguments[i] - } - return this.pushArray(array) - }, - unshift: function () { - var m = arguments.length, n = this.length - if (m) { - ap.unshift.apply(this.$model, arguments) - mutateArray.call(this, "add", 0, m, 0) - } - return m + n //IE67的unshift不会返回长度 - }, - shift: function () { - if (this.length) { - var el = this.$model.shift() - mutateArray.call(this, "del", 0, 1, 0) - return el //返回被移除的元素 - } - }, - pop: function () { - var n = this.length - if (n) { - var el = this.$model.pop() - mutateArray.call(this, "del", n - 1, 1, Math.max(0, n - 2)) - return el //返回被移除的元素 - } - }, - splice: function (start) { - var m = arguments.length, args = [], change - var removed = _splice.apply(this.$model, arguments) - if (removed.length) { //如果用户删掉了元素 - args.push("del", start, removed.length, 0) - change = true - } - if (m > 2) { //如果用户添加了元素 - if (change) { - args.splice(3, 1, 0, "add", start, m - 2) - } else { - args.push("add", start, m - 2, 0) - } - change = true - } - if (change) { //返回被移除的元素 - return mutateArray.apply(this, args) - } else { - return [] - } - }, - contains: function (el) { //判定是否包含 - return this.indexOf(el) !== -1 - }, - remove: function (el) { //移除第一个等于给定值的元素 - return this.removeAt(this.indexOf(el)) - }, - removeAt: function (index) { //移除指定索引上的元素 - if (index >= 0) { - this.$model.splice(index, 1) - return mutateArray.call(this, "del", index, 1, 0) - } - return [] - }, - clear: function () { - recycleProxies(this.$proxy, "each") - this.$model.length = this.$proxy.length = this.length = this._.length = 0 //清空数组 - this._fire("clear", 0) - return this - }, - removeAll: function (all) { //移除N个元素 - if (Array.isArray(all)) { - all.forEach(function (el) { - this.remove(el) - }, this) - } else if (typeof all === "function") { - for (var i = this.length - 1; i >= 0; i--) { - var el = this[i] - if (all(el, i)) { - this.removeAt(i) - } - } - } else { - this.clear() - } - }, - ensure: function (el) { - if (!this.contains(el)) { //只有不存在才push - this.push(el) - } - return this - }, - set: function (index, val) { - if (index >= 0) { - var valueType = avalon.type(val) - if (val && val.$model) { - val = val.$model - } - var target = this[index] - if (valueType === "object") { - for (var i in val) { - if (target.hasOwnProperty(i)) { - target[i] = val[i] - } - } - } else if (valueType === "array") { - target.clear().push.apply(target, val) - } else if (target !== val) { - this[index] = val - this.$model[index] = val - var proxy = this.$proxy[index] - if (proxy) { - notifySubscribers(proxy.$events.el) - } - // this._fire("set", index, val) - } - } - return this - } - } -//相当于原来bindingExecutors.repeat 的index分支 - function resetIndex(array, pos) { - var last = array.length - 1 - for (var el; el = array[pos]; pos++) { - el.$index = pos - el.$first = pos === 0 - el.$last = pos === last - } - } - - function sortByIndex(array, indexes) { - var map = {}; - for (var i = 0, n = indexes.length; i < n; i++) { - map[i] = array[i] // preserve - var j = indexes[i] - if (j in map) { - array[i] = map[j] - delete map[j] - } else { - array[i] = array[j] - } - } - } - - "sort,reverse".replace(rword, function (method) { - CollectionPrototype[method] = function () { - var newArray = this.$model//这是要排序的新数组 - var oldArray = newArray.concat() //保持原来状态的旧数组 - var mask = Math.random() - var indexes = [] - var hasSort - ap[method].apply(newArray, arguments) //排序 - for (var i = 0, n = oldArray.length; i < n; i++) { - var neo = newArray[i] - var old = oldArray[i] - if (isEqual(neo, old)) { - indexes.push(i) - } else { - var index = oldArray.indexOf(neo) - indexes.push(index)//得到新数组的每个元素在旧数组对应的位置 - oldArray[index] = mask //屏蔽已经找过的元素 - hasSort = true - } - } - if (hasSort) { - sortByIndex(this, indexes) - sortByIndex(this.$proxy, indexes) - this._fire("move", indexes) - resetIndex(this.$proxy, 0) - } - return this - } - }) - - /********************************************************************* - * 依赖调度系统 * - **********************************************************************/ - var ronduplex = /^(duplex|on)$/ - - avalon.injectBinding = function (data) { - Registry[expose] = data //暴光此函数,方便collectSubscribers收集 - avalon.openComputedCollect = true - var fn = data.evaluator - if (fn) { //如果是求值函数 - try { - var c = ronduplex.test(data.type) ? data : fn.apply(0, data.args) - if (!data.noRefresh) - data.handler(c, data.element, data) - } catch (e) { - //log("warning:exception throwed in [avalon.injectBinding] " + e) - delete data.evaluator - var node = data.element - if (node.nodeType === 3) { - var parent = node.parentNode - if (kernel.commentInterpolate) { - parent.replaceChild(DOC.createComment(data.value), node) - } else { - node.data = openTag + data.value + closeTag - } - } - } - } - avalon.openComputedCollect = false - delete Registry[expose] - } - - function collectSubscribers(list) { //收集依赖于这个访问器的订阅者 - var data = Registry[expose] - if (list && data && avalon.Array.ensure(list, data) && data.element) { //只有数组不存在此元素才push进去 - addSubscribers(data, list) - } - } - - - function addSubscribers(data, list) { - data.$uuid = data.$uuid || generateID() - list.$uuid = list.$uuid || generateID() - var obj = { - data: data, - list: list, - $$uuid: data.$uuid + list.$uuid - } - if (!$$subscribers[obj.$$uuid]) { - $$subscribers[obj.$$uuid] = 1 - $$subscribers.push(obj) - } - } - - function disposeData(data) { - data.element = null - data.rollback && data.rollback() - for (var key in data) { - data[key] = null - } - } - - function isRemove(el) { - try {//IE下,如果文本节点脱离DOM树,访问parentNode会报错 - if (!el.parentNode) { - return true - } - } catch (e) { - return true - } - return el.msRetain ? 0 : (el.nodeType === 1 ? typeof el.sourceIndex === "number" ? - el.sourceIndex === 0 : !root.contains(el) : !avalon.contains(root, el)) - } - - var $$subscribers = avalon.$$subscribers = [] - var beginTime = new Date() - var oldInfo = {} - - function removeSubscribers() { - var i = $$subscribers.length - var n = i - var k = 0 - var obj - var types = [] - var newInfo = {} - var needTest = {} - while (obj = $$subscribers[--i]) { - var data = obj.data - var type = data.type - if (newInfo[type]) { - newInfo[type]++ - } else { - newInfo[type] = 1 - types.push(type) - } - } - var diff = false - types.forEach(function (type) { - if (oldInfo[type] !== newInfo[type]) { - needTest[type] = 1 - diff = true - } - }) - i = n - //avalon.log("需要检测的个数 " + i) - if (diff) { - //avalon.log("有需要移除的元素") - while (obj = $$subscribers[--i]) { - data = obj.data - if (data.element === void 0) - continue - if (needTest[data.type] && isRemove(data.element)) { //如果它没有在DOM树 - k++ - $$subscribers.splice(i, 1) - delete $$subscribers[obj.$$uuid] - avalon.Array.remove(obj.list, data) - //log("debug: remove " + data.type) - disposeData(data) - obj.data = obj.list = null - } - } - } - oldInfo = newInfo - // avalon.log("已经移除的个数 " + k) - beginTime = new Date() - } - - function notifySubscribers(list) { //通知依赖于这个访问器的订阅者更新自身 - if (list && list.length) { - if (new Date() - beginTime > 444 && typeof list[0] === "object") { - removeSubscribers() - } - var args = aslice.call(arguments, 1) - for (var i = list.length, fn; fn = list[--i];) { - var el = fn.element - if (el && el.parentNode) { - if (fn.$repeat) { - fn.handler.apply(fn, args) //处理监控数组的方法 - } else if (fn.type !== "on") { //事件绑定只能由用户触发,不能由程序触发 - var fun = fn.evaluator || noop - fn.handler(fun.apply(0, fn.args || []), el, fn) - } - } - } - } - } - - /************************************************************************ - * HTML处理(parseHTML, innerHTML, clearHTML) * - **************************************************************************/ -//parseHTML的辅助变量 - var tagHooks = new function () {// jshint ignore:line - avalon.mix(this, { - option: DOC.createElement("select"), - thead: DOC.createElement("table"), - td: DOC.createElement("tr"), - area: DOC.createElement("map"), - tr: DOC.createElement("tbody"), - col: DOC.createElement("colgroup"), - legend: DOC.createElement("fieldset"), - _default: DOC.createElement("div"), - "g": DOC.createElementNS("http://www.w3.org/2000/svg", "svg") - }) - this.optgroup = this.option - this.tbody = this.tfoot = this.colgroup = this.caption = this.thead - this.th = this.td - }// jshint ignore:line - - String("circle,defs,ellipse,image,line,path,polygon,polyline,rect,symbol,text,use").replace(rword, function (tag) { - tagHooks[tag] = tagHooks.g //处理SVG - }) - var rtagName = /<([\w:]+)/ - var rxhtml = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig - var scriptTypes = oneObject(["", "text/javascript", "text/ecmascript", "application/ecmascript", "application/javascript"]) - var script = DOC.createElement("script") - var rhtml = /<|&#?\w+;/ - avalon.parseHTML = function (html) { - var fragment = hyperspace.cloneNode(false) - if (typeof html !== "string") { - return fragment - } - if (!rhtml.test(html)) { - fragment.appendChild(DOC.createTextNode(html)) - return fragment - } - html = html.replace(rxhtml, "<$1>").trim() - var tag = (rtagName.exec(html) || ["", ""])[1].toLowerCase(), - //取得其标签名 - wrapper = tagHooks[tag] || tagHooks._default, - firstChild - wrapper.innerHTML = html - var els = wrapper.getElementsByTagName("script") - if (els.length) { //使用innerHTML生成的script节点不会发出请求与执行text属性 - for (var i = 0, el; el = els[i++];) { - if (scriptTypes[el.type]) { - var neo = script.cloneNode(false) //FF不能省略参数 - ap.forEach.call(el.attributes, function (attr) { - neo.setAttribute(attr.name, attr.value) - })// jshint ignore:line - neo.text = el.text - el.parentNode.replaceChild(neo, el) - } - } - } - - while (firstChild = wrapper.firstChild) { // 将wrapper上的节点转移到文档碎片上! - fragment.appendChild(firstChild) - } - return fragment - } - - avalon.innerHTML = function (node, html) { - var a = this.parseHTML(html) - this.clearHTML(node).appendChild(a) - } - - avalon.clearHTML = function (node) { - node.textContent = "" - while (node.firstChild) { - node.removeChild(node.firstChild) - } - return node - } - - /********************************************************************* - * 扫描系统 * - **********************************************************************/ - - avalon.scan = function (elem, vmodel) { - elem = elem || root - var vmodels = vmodel ? [].concat(vmodel) : [] - scanTag(elem, vmodels) - } - -//http://www.w3.org/TR/html5/syntax.html#void-elements - var stopScan = oneObject("area,base,basefont,br,col,command,embed,hr,img,input,link,meta,param,source,track,wbr,noscript,script,style,textarea".toUpperCase()) - - function checkScan(elem, callback, innerHTML) { - var id = setTimeout(function () { - var currHTML = elem.innerHTML - clearTimeout(id) - if (currHTML === innerHTML) { - callback() - } else { - checkScan(elem, callback, currHTML) - } - }) - } - - - function createSignalTower(elem, vmodel) { - var id = elem.getAttribute("avalonctrl") || vmodel.$id - elem.setAttribute("avalonctrl", id) - vmodel.$events.expr = elem.tagName + '[avalonctrl="' + id + '"]' - } - - var getBindingCallback = function (elem, name, vmodels) { - var callback = elem.getAttribute(name) - if (callback) { - for (var i = 0, vm; vm = vmodels[i++];) { - if (vm.hasOwnProperty(callback) && typeof vm[callback] === "function") { - return vm[callback] - } - } - } - } - - function executeBindings(bindings, vmodels) { - for (var i = 0, data; data = bindings[i++];) { - data.vmodels = vmodels - bindingHandlers[data.type](data, vmodels) - if (data.evaluator && data.element && data.element.nodeType === 1) { //移除数据绑定,防止被二次解析 - //chrome使用removeAttributeNode移除不存在的特性节点时会报错 https://github.com/RubyLouvre/avalon/issues/99 - data.element.removeAttribute(data.name) - } - } - bindings.length = 0 - } - -//https://github.com/RubyLouvre/avalon/issues/636 - var mergeTextNodes = IEVersion && window.MutationObserver ? function (elem) { - var node = elem.firstChild, text - while (node) { - var aaa = node.nextSibling - if (node.nodeType === 3) { - if (text) { - text.nodeValue += node.nodeValue - elem.removeChild(node) - } else { - text = node - } - } else { - text = null - } - node = aaa - } - } : 0 - - var rmsAttr = /ms-(\w+)-?(.*)/ - var priorityMap = { - "if": 10, - "repeat": 90, - "data": 100, - "widget": 110, - "each": 1400, - "with": 1500, - "duplex": 2000, - "on": 3000 - } - - var events = oneObject("animationend,blur,change,input,click,dblclick,focus,keydown,keypress,keyup,mousedown,mouseenter,mouseleave,mousemove,mouseout,mouseover,mouseup,scan,scroll,submit") - var obsoleteAttrs = oneObject("value,title,alt,checked,selected,disabled,readonly,enabled") - - function bindingSorter(a, b) { - return a.priority - b.priority - } - - function scanAttr(elem, vmodels) { - //防止setAttribute, removeAttribute时 attributes自动被同步,导致for循环出错 - var attributes = elem.hasAttributes() ? avalon.slice(elem.attributes) : [] - var bindings = [], - msData = createMap(), - match - for (var i = 0, attr; attr = attributes[i++];) { - if (attr.specified) { - if (match = attr.name.match(rmsAttr)) { - //如果是以指定前缀命名的 - var type = match[1] - var param = match[2] || "" - var value = attr.value - var name = attr.name - msData[name] = value - if (events[type]) { - param = type - type = "on" - } else if (obsoleteAttrs[type]) { - log("warning!请改用ms-attr-" + type + "代替ms-" + type + "!") - if (type === "enabled") {//吃掉ms-enabled绑定,用ms-disabled代替 - log("warning!ms-enabled或ms-attr-enabled已经被废弃") - type = "disabled" - value = "!(" + value + ")" - } - param = type - type = "attr" - elem.removeAttribute(name) - name = "ms-attr-" + param - elem.setAttribute(name, value) - match = [name] - msData[name] = value - } - if (typeof bindingHandlers[type] === "function") { - var binding = { - type: type, - param: param, - element: elem, - name: match[0], - value: value, - priority: type in priorityMap ? priorityMap[type] : type.charCodeAt(0) * 10 + (Number(param) || 0) - } - if (type === "html" || type === "text") { - var token = getToken(value) - avalon.mix(binding, token) - binding.filters = binding.filters.replace(rhasHtml, function () { - binding.type = "html" - binding.group = 1 - return "" - })// jshint ignore:line - } - if (name === "ms-if-loop") { - binding.priority += 100 - } - if (vmodels.length) { - bindings.push(binding) - if (type === "widget") { - elem.msData = elem.msData || msData - } - } - } - } - } - } - var control = elem.type - if (control && msData["ms-duplex"]) { - if (msData["ms-attr-checked"] && /radio|checkbox/.test(control)) { - log("warning!" + control + "控件不能同时定义ms-attr-checked与ms-duplex") - } - if (msData["ms-attr-value"] && /text|password/.test(control)) { - log("warning!" + control + "控件不能同时定义ms-attr-value与ms-duplex") - } - } - bindings.sort(bindingSorter) - var scanNode = true - for (i = 0; binding = bindings[i]; i++) { - type = binding.type - if (rnoscanAttrBinding.test(type)) { - return executeBindings(bindings.slice(0, i + 1), vmodels) - } else if (scanNode) { - scanNode = !rnoscanNodeBinding.test(type) - } - } - executeBindings(bindings, vmodels) - if (scanNode && !stopScan[elem.tagName] && rbind.test(elem.innerHTML + elem.textContent)) { - mergeTextNodes && mergeTextNodes(elem) - scanNodeList(elem, vmodels) //扫描子孙元素 - } - } - - var rnoscanAttrBinding = /^if|widget|repeat$/ - var rnoscanNodeBinding = /^each|with|html|include$/ - - function scanNodeList(parent, vmodels) { - var node = parent.firstChild - while (node) { - var nextNode = node.nextSibling - scanNode(node, node.nodeType, vmodels) - node = nextNode - } - } - - function scanNodeArray(nodes, vmodels) { - for (var i = 0, node; node = nodes[i++];) { - scanNode(node, node.nodeType, vmodels) - } - } - - function scanNode(node, nodeType, vmodels) { - if (nodeType === 1) { - scanTag(node, vmodels) //扫描元素节点 - if (node.msCallback) { - node.msCallback() - node.msCallback = void 0 - } - } else if (nodeType === 3 && rexpr.test(node.data)) { - scanText(node, vmodels) //扫描文本节点 - } else if (kernel.commentInterpolate && nodeType === 8 && !rexpr.test(node.nodeValue)) { - scanText(node, vmodels) //扫描注释节点 - } - } - - function scanTag(elem, vmodels, node) { - //扫描顺序 ms-skip(0) --> ms-important(1) --> ms-controller(2) --> ms-if(10) --> ms-repeat(100) - //--> ms-if-loop(110) --> ms-attr(970) ...--> ms-each(1400)-->ms-with(1500)--〉ms-duplex(2000)垫后 - var a = elem.getAttribute("ms-skip") - var b = elem.getAttributeNode("ms-important") - var c = elem.getAttributeNode("ms-controller") - if (typeof a === "string") { - return - } else if (node = b || c) { - var newVmodel = avalon.vmodels[node.value] - if (!newVmodel) { - return - } - //ms-important不包含父VM,ms-controller相反 - vmodels = node === b ? [newVmodel] : [newVmodel].concat(vmodels) - elem.removeAttribute(node.name) //removeAttributeNode不会刷新[ms-controller]样式规则 - elem.classList.remove(node.name) - createSignalTower(elem, newVmodel) - } - scanAttr(elem, vmodels) //扫描特性节点 - } - - var rhasHtml = /\|\s*html\s*/, - r11a = /\|\|/g, - rlt = /</g, - rgt = />/g, - rstringLiteral = /(['"])(\\\1|.)+?\1/g - - function getToken(value) { - if (value.indexOf("|") > 0) { - var scapegoat = value.replace(rstringLiteral, function (_) { - return Array(_.length + 1).join("1")// jshint ignore:line - }) - var index = scapegoat.replace(r11a, "\u1122\u3344").indexOf("|") //干掉所有短路或 - if (index > -1) { - return { - filters: value.slice(index), - value: value.slice(0, index), - expr: true - } - } - } - return { - value: value, - filters: "", - expr: true - } - } - - function scanExpr(str) { - var tokens = [], - value, start = 0, - stop - do { - stop = str.indexOf(openTag, start) - if (stop === -1) { - break - } - value = str.slice(start, stop) - if (value) { // {{ 左边的文本 - tokens.push({ - value: value, - filters: "", - expr: false - }) - } - start = stop + openTag.length - stop = str.indexOf(closeTag, start) - if (stop === -1) { - break - } - value = str.slice(start, stop) - if (value) { //处理{{ }}插值表达式 - tokens.push(getToken(value)) - } - start = stop + closeTag.length - } while (1) - value = str.slice(start) - if (value) { //}} 右边的文本 - tokens.push({ - value: value, - expr: false, - filters: "" - }) - } - return tokens - } - - function scanText(textNode, vmodels) { - var bindings = [] - if (textNode.nodeType === 8) { - var token = getToken(textNode.nodeValue) - var tokens = [token] - } else { - tokens = scanExpr(textNode.data) - } - if (tokens.length) { - for (var i = 0; token = tokens[i++];) { - var node = DOC.createTextNode(token.value) //将文本转换为文本节点,并替换原来的文本节点 - if (token.expr) { - token.type = "text" - token.element = node - token.filters = token.filters.replace(rhasHtml, function () { - token.type = "html" - token.group = 1 - return "" - })// jshint ignore:line - bindings.push(token) //收集带有插值表达式的文本 - } - hyperspace.appendChild(node) - } - textNode.parentNode.replaceChild(hyperspace, textNode) - if (bindings.length) - executeBindings(bindings, vmodels) - } - } - - /********************************************************************* - * avalon的原型方法定义区 * - **********************************************************************/ - - function hyphen(target) { - //转换为连字符线风格 - return target.replace(/([a-z\d])([A-Z]+)/g, "$1-$2").toLowerCase() - } - - function camelize(target) { - //转换为驼峰风格 - if (target.indexOf("-") < 0 && target.indexOf("_") < 0) { - return target //提前判断,提高getStyle等的效率 - } - return target.replace(/[-_][^-_]/g, function (match) { - return match.charAt(1).toUpperCase() - }) - } - - "add,remove".replace(rword, function (method) { - avalon.fn[method + "Class"] = function (cls) { - var el = this[0] - //https://developer.mozilla.org/zh-CN/docs/Mozilla/Firefox/Releases/26 - if (cls && typeof cls === "string" && el && el.nodeType === 1) { - cls.replace(/\S+/g, function (c) { - el.classList[method](c) - }) - } - return this - } - }) - - avalon.fn.mix({ - hasClass: function (cls) { - var el = this[0] || {} //IE10+, chrome8+, firefox3.6+, safari5.1+,opera11.5+支持classList,chrome24+,firefox26+支持classList2.0 - return el.nodeType === 1 && el.classList.contains(cls) - }, - toggleClass: function (value, stateVal) { - var className, i = 0 - var classNames = String(value).split(/\s+/) - var isBool = typeof stateVal === "boolean" - while ((className = classNames[i++])) { - var state = isBool ? stateVal : !this.hasClass(className) - this[state ? "addClass" : "removeClass"](className) - } - return this - }, - attr: function (name, value) { - if (arguments.length === 2) { - this[0].setAttribute(name, value) - return this - } else { - return this[0].getAttribute(name) - } - }, - data: function (name, value) { - name = "data-" + hyphen(name || "") - switch (arguments.length) { - case 2: - this.attr(name, value) - return this - case 1: - var val = this.attr(name) - return parseData(val) - case 0: - var ret = {} - ap.forEach.call(this[0].attributes, function (attr) { - if (attr) { - name = attr.name - if (!name.indexOf("data-")) { - name = camelize(name.slice(5)) - ret[name] = parseData(attr.value) - } - } - }) - return ret - } - }, - removeData: function (name) { - name = "data-" + hyphen(name) - this[0].removeAttribute(name) - return this - }, - css: function (name, value) { - if (avalon.isPlainObject(name)) { - for (var i in name) { - avalon.css(this, i, name[i]) - } - } else { - var ret = avalon.css(this, name, value) - } - return ret !== void 0 ? ret : this - }, - position: function () { - var offsetParent, offset, - elem = this[0], - parentOffset = { - top: 0, - left: 0 - }; - if (!elem) { - return - } - if (this.css("position") === "fixed") { - offset = elem.getBoundingClientRect() - } else { - offsetParent = this.offsetParent() //得到真正的offsetParent - offset = this.offset() // 得到正确的offsetParent - if (offsetParent[0].tagName !== "HTML") { - parentOffset = offsetParent.offset() - } - parentOffset.top += avalon.css(offsetParent[0], "borderTopWidth", true) - parentOffset.left += avalon.css(offsetParent[0], "borderLeftWidth", true) - // Subtract offsetParent scroll positions - parentOffset.top -= offsetParent.scrollTop() - parentOffset.left -= offsetParent.scrollLeft() - } - return { - top: offset.top - parentOffset.top - avalon.css(elem, "marginTop", true), - left: offset.left - parentOffset.left - avalon.css(elem, "marginLeft", true) - } - }, - offsetParent: function () { - var offsetParent = this[0].offsetParent - while (offsetParent && avalon.css(offsetParent, "position") === "static") { - offsetParent = offsetParent.offsetParent; - } - return avalon(offsetParent || root) - }, - bind: function (type, fn, phase) { - if (this[0]) { //此方法不会链 - return avalon.bind(this[0], type, fn, phase) - } - }, - unbind: function (type, fn, phase) { - if (this[0]) { - avalon.unbind(this[0], type, fn, phase) - } - return this - }, - val: function (value) { - var node = this[0] - if (node && node.nodeType === 1) { - var get = arguments.length === 0 - var access = get ? ":get" : ":set" - var fn = valHooks[getValType(node) + access] - if (fn) { - var val = fn(node, value) - } else if (get) { - return (node.value || "").replace(/\r/g, "") - } else { - node.value = value - } - } - return get ? val : this - } - }) - - if (root.dataset) { - avalon.fn.data = function (name, val) { - name = name && camelize(name) - var dataset = this[0].dataset - switch (arguments.length) { - case 2: - dataset[name] = val - return this - case 1: - val = dataset[name] - return parseData(val) - case 0: - var ret = createMap() - for (name in dataset) { - ret[name] = parseData(dataset[name]) - } - return ret - } - } - } - var rbrace = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/ - avalon.parseJSON = JSON.parse - - function parseData(data) { - try { - if (typeof data === "object") - return data - data = data === "true" ? true : - data === "false" ? false : - data === "null" ? null : +data + "" === data ? +data : rbrace.test(data) ? JSON.parse(data) : data - } catch (e) { - } - return data - } - - avalon.each({ - scrollLeft: "pageXOffset", - scrollTop: "pageYOffset" - }, function (method, prop) { - avalon.fn[method] = function (val) { - var node = this[0] || {}, win = getWindow(node), - top = method === "scrollTop" - if (!arguments.length) { - return win ? win[prop] : node[method] - } else { - if (win) { - win.scrollTo(!top ? val : win[prop], top ? val : win[prop]) - } else { - node[method] = val - } - } - } - }) - - function getWindow(node) { - return node.window && node.document ? node : node.nodeType === 9 ? node.defaultView : false - } - -//=============================css相关================================== - var cssHooks = avalon.cssHooks = createMap() - var prefixes = ["", "-webkit-", "-moz-", "-ms-"] //去掉opera-15的支持 - var cssMap = { - "float": "cssFloat" - } - avalon.cssNumber = oneObject("columnCount,order,fillOpacity,fontWeight,lineHeight,opacity,orphans,widows,zIndex,zoom") - - avalon.cssName = function (name, host, camelCase) { - if (cssMap[name]) { - return cssMap[name] - } - host = host || root.style - for (var i = 0, n = prefixes.length; i < n; i++) { - camelCase = camelize(prefixes[i] + name) - if (camelCase in host) { - return (cssMap[name] = camelCase) - } - } - return null - } - cssHooks["@:set"] = function (node, name, value) { - node.style[name] = value - } - - cssHooks["@:get"] = function (node, name) { - if (!node || !node.style) { - throw new Error("getComputedStyle要求传入一个节点 " + node) - } - var ret, computed = getComputedStyle(node) - if (computed) { - ret = name === "filter" ? computed.getPropertyValue(name) : computed[name] - if (ret === "") { - ret = node.style[name] //其他浏览器需要我们手动取内联样式 - } - } - return ret - } - cssHooks["opacity:get"] = function (node) { - var ret = cssHooks["@:get"](node, "opacity") - return ret === "" ? "1" : ret - } - - "top,left".replace(rword, function (name) { - cssHooks[name + ":get"] = function (node) { - var computed = cssHooks["@:get"](node, name) - return /px$/.test(computed) ? computed : - avalon(node).position()[name] + "px" - } - }) - var cssShow = { - position: "absolute", - visibility: "hidden", - display: "block" - } - var rdisplayswap = /^(none|table(?!-c[ea]).+)/ - - function showHidden(node, array) { - //http://www.cnblogs.com/rubylouvre/archive/2012/10/27/2742529.html - if (node.offsetWidth <= 0) { //opera.offsetWidth可能小于0 - var styles = getComputedStyle(node, null) - if (rdisplayswap.test(styles["display"])) { - var obj = { - node: node - } - for (var name in cssShow) { - obj[name] = styles[name] - node.style[name] = cssShow[name] - } - array.push(obj) - } - var parent = node.parentNode - if (parent && parent.nodeType === 1) { - showHidden(parent, array) - } - } - } - - "Width,Height".replace(rword, function (name) { //fix 481 - var method = name.toLowerCase(), - clientProp = "client" + name, - scrollProp = "scroll" + name, - offsetProp = "offset" + name - cssHooks[method + ":get"] = function (node, which, override) { - var boxSizing = -4 - if (typeof override === "number") { - boxSizing = override - } - which = name === "Width" ? ["Left", "Right"] : ["Top", "Bottom"] - var ret = node[offsetProp] // border-box 0 - if (boxSizing === 2) { // margin-box 2 - return ret + avalon.css(node, "margin" + which[0], true) + avalon.css(node, "margin" + which[1], true) - } - if (boxSizing < 0) { // padding-box -2 - ret = ret - avalon.css(node, "border" + which[0] + "Width", true) - avalon.css(node, "border" + which[1] + "Width", true) - } - if (boxSizing === -4) { // content-box -4 - ret = ret - avalon.css(node, "padding" + which[0], true) - avalon.css(node, "padding" + which[1], true) - } - return ret - } - cssHooks[method + "&get"] = function (node) { - var hidden = []; - showHidden(node, hidden); - var val = cssHooks[method + ":get"](node) - for (var i = 0, obj; obj = hidden[i++];) { - node = obj.node - for (var n in obj) { - if (typeof obj[n] === "string") { - node.style[n] = obj[n] - } - } - } - return val; - } - avalon.fn[method] = function (value) { //会忽视其display - var node = this[0] - if (arguments.length === 0) { - if (node.setTimeout) { //取得窗口尺寸,IE9后可以用node.innerWidth /innerHeight代替 - return node["inner" + name] - } - if (node.nodeType === 9) { //取得页面尺寸 - var doc = node.documentElement - //FF chrome html.scrollHeight< body.scrollHeight - //IE 标准模式 : html.scrollHeight> body.scrollHeight - //IE 怪异模式 : html.scrollHeight 最大等于可视窗口多一点? - return Math.max(node.body[scrollProp], doc[scrollProp], node.body[offsetProp], doc[offsetProp], doc[clientProp]) - } - return cssHooks[method + "&get"](node) - } else { - return this.css(method, value) - } - } - avalon.fn["inner" + name] = function () { - return cssHooks[method + ":get"](this[0], void 0, -2) - } - avalon.fn["outer" + name] = function (includeMargin) { - return cssHooks[method + ":get"](this[0], void 0, includeMargin === true ? 2 : 0) - } - }) - avalon.fn.offset = function () { //取得距离页面左右角的坐标 - var node = this[0] - try { - var rect = node.getBoundingClientRect() - // Make sure element is not hidden (display: none) or disconnected - // https://github.com/jquery/jquery/pull/2043/files#r23981494 - if (rect.width || rect.height || node.getClientRects().length) { - var doc = node.ownerDocument - var root = doc.documentElement - var win = doc.defaultView - return { - top: rect.top + win.pageYOffset - root.clientTop, - left: rect.left + win.pageXOffset - root.clientLeft - } - } - } catch (e) { - return { - left: 0, - top: 0 - } - } - } - //=============================val相关======================= - - function getValType(elem) { - var ret = elem.tagName.toLowerCase() - return ret === "input" && /checkbox|radio/.test(elem.type) ? "checked" : ret - } - - var valHooks = { - "select:get": function (node, value) { - var option, options = node.options, - index = node.selectedIndex, - one = node.type === "select-one" || index < 0, - values = one ? null : [], - max = one ? index + 1 : options.length, - i = index < 0 ? max : one ? index : 0 - for (; i < max; i++) { - option = options[i] - //旧式IE在reset后不会改变selected,需要改用i === index判定 - //我们过滤所有disabled的option元素,但在safari5下,如果设置select为disable,那么其所有孩子都disable - //因此当一个元素为disable,需要检测其是否显式设置了disable及其父节点的disable情况 - if ((option.selected || i === index) && !option.disabled) { - value = option.value - if (one) { - return value - } - //收集所有selected值组成数组返回 - values.push(value) - } - } - return values - }, - "select:set": function (node, values, optionSet) { - values = [].concat(values) //强制转换为数组 - for (var i = 0, el; el = node.options[i++];) { - if ((el.selected = values.indexOf(el.value) > -1)) { - optionSet = true - } - } - if (!optionSet) { - node.selectedIndex = -1 - } - } - } - /********************************************************************* - * 编译系统 * - **********************************************************************/ - var quote = JSON.stringify - - var keywords = [ - "break,case,catch,continue,debugger,default,delete,do,else,false", - "finally,for,function,if,in,instanceof,new,null,return,switch,this", - "throw,true,try,typeof,var,void,while,with", /* 关键字*/ - "abstract,boolean,byte,char,class,const,double,enum,export,extends", - "final,float,goto,implements,import,int,interface,long,native", - "package,private,protected,public,short,static,super,synchronized", - "throws,transient,volatile", /*保留字*/ - "arguments,let,yield,undefined" /* ECMA 5 - use strict*/].join(",") - var rrexpstr = /\/\*[\w\W]*?\*\/|\/\/[^\n]*\n|\/\/[^\n]*$|"(?:[^"\\]|\\[\w\W])*"|'(?:[^'\\]|\\[\w\W])*'|[\s\t\n]*\.[\s\t\n]*[$\w\.]+/g - var rsplit = /[^\w$]+/g - var rkeywords = new RegExp(["\\b" + keywords.replace(/,/g, '\\b|\\b') + "\\b"].join('|'), 'g') - var rnumber = /\b\d[^,]*/g - var rcomma = /^,+|,+$/g - var cacheVars = new Cache(512) - var getVariables = function (code) { - var key = "," + code.trim() - var ret = cacheVars.get(key) - if (ret) { - return ret - } - var match = code - .replace(rrexpstr, "") - .replace(rsplit, ",") - .replace(rkeywords, "") - .replace(rnumber, "") - .replace(rcomma, "") - .split(/^$|,+/) - return cacheVars.put(key, uniqSet(match)) - } - /*添加赋值语句*/ - - function addAssign(vars, scope, name, data) { - var ret = [], - prefix = " = " + name + "." - var isProxy = /\$proxy\$each/.test(scope.$id) - for (var i = vars.length, prop; prop = vars[--i];) { - var el = isProxy && scope.$map[prop] ? "el" : prop - if (scope.hasOwnProperty(el)) { - ret.push(prop + prefix + el) - data.vars.push(prop) - if (data.type === "duplex") { - vars.get = name + "." + el - } - vars.splice(i, 1) - } - } - return ret - } - - function uniqSet(array) { - var ret = [], - unique = {} - for (var i = 0; i < array.length; i++) { - var el = array[i] - var id = el && typeof el.$id === "string" ? el.$id : el - if (!unique[id]) { - unique[id] = ret.push(el) - } - } - return ret - } - -//缓存求值函数,以便多次利用 - var cacheExprs = new Cache(128) -//取得求值函数及其传参 - var rduplex = /\w\[.*\]|\w\.\w/ - var rproxy = /(\$proxy\$[a-z]+)\d+$/ - var rthimRightParentheses = /\)\s*$/ - var rthimOtherParentheses = /\)\s*\|/g - var rquoteFilterName = /\|\s*([$\w]+)/g - var rpatchBracket = /"\s*\["/g - var rthimLeftParentheses = /"\s*\(/g - - function parseFilter(val, filters) { - filters = filters - .replace(rthimRightParentheses, "")//处理最后的小括号 - .replace(rthimOtherParentheses, function () {//处理其他小括号 - return "],|" - }) - .replace(rquoteFilterName, function (a, b) { //处理|及它后面的过滤器的名字 - return "[" + quote(b) - }) - .replace(rpatchBracket, function () { - return '"],["' - }) - .replace(rthimLeftParentheses, function () { - return '",' - }) + "]" - return "return avalon.filters.$filter(" + val + ", " + filters + ")" - } - - function parseExpr(code, scopes, data) { - var dataType = data.type - var filters = data.filters || "" - var exprId = scopes.map(function (el) { - return String(el.$id).replace(rproxy, "$1") - }) + code + dataType + filters - var vars = getVariables(code).concat(), - assigns = [], - names = [], - args = [], - prefix = "" - //args 是一个对象数组, names 是将要生成的求值函数的参数 - scopes = uniqSet(scopes) - data.vars = [] - for (var i = 0, sn = scopes.length; i < sn; i++) { - if (vars.length) { - var name = "vm" + expose + "_" + i - names.push(name) - args.push(scopes[i]) - assigns.push.apply(assigns, addAssign(vars, scopes[i], name, data)) - } - } - if (!assigns.length && dataType === "duplex") { - return - } - if (dataType !== "duplex" && (code.indexOf("||") > -1 || code.indexOf("&&") > -1)) { - //https://github.com/RubyLouvre/avalon/issues/583 - data.vars.forEach(function (v) { - var reg = new RegExp("\\b" + v + "(?:\\.\\w+|\\[\\w+\\])+", "ig") - code = code.replace(reg, function (_) { - var c = _.charAt(v.length) - var r = IEVersion ? code.slice(arguments[1] + _.length) : RegExp.rightContext - var method = /^\s*\(/.test(r) - if (c === "." || c === "[" || method) {//比如v为aa,我们只匹配aa.bb,aa[cc],不匹配aaa.xxx - var name = "var" + String(Math.random()).replace(/^0\./, "") - if (method) {//array.size() - var array = _.split(".") - if (array.length > 2) { - var last = array.pop() - assigns.push(name + " = " + array.join(".")) - return name + "." + last - } else { - return _ - } - } - assigns.push(name + " = " + _) - return name - } else { - return _ - } - }) - }) - } - //---------------args---------------- - data.args = args - //---------------cache---------------- - var fn = cacheExprs.get(exprId) //直接从缓存,免得重复生成 - if (fn) { - data.evaluator = fn - return - } - prefix = assigns.join(", ") - if (prefix) { - prefix = "var " + prefix - } - if (/\S/.test(filters)) { //文本绑定,双工绑定才有过滤器 - if (!/text|html/.test(data.type)) { - throw Error("ms-" + data.type + "不支持过滤器") - } - code = "\nvar ret" + expose + " = " + code + ";\r\n" - code += parseFilter("ret" + expose, filters) - } else if (dataType === "duplex") { //双工绑定 - var _body = "'use strict';\nreturn function(vvv){\n\t" + - prefix + - ";\n\tif(!arguments.length){\n\t\treturn " + - code + - "\n\t}\n\t" + (!rduplex.test(code) ? vars.get : code) + - "= vvv;\n} " - try { - fn = Function.apply(noop, names.concat(_body)) - data.evaluator = cacheExprs.put(exprId, fn) - } catch (e) { - log("debug: parse error," + e.message) - } - return - } else if (dataType === "on") { //事件绑定 - if (code.indexOf("(") === -1) { - code += ".call(this, $event)" - } else { - code = code.replace("(", ".call(this,") - } - names.push("$event") - code = "\nreturn " + code + ";" //IE全家 Function("return ")出错,需要Function("return ;") - var lastIndex = code.lastIndexOf("\nreturn") - var header = code.slice(0, lastIndex) - var footer = code.slice(lastIndex) - code = header + "\n" + footer - } else { //其他绑定 - code = "\nreturn " + code + ";" //IE全家 Function("return ")出错,需要Function("return ;") - } - try { - fn = Function.apply(noop, names.concat("'use strict';\n" + prefix + code)) - data.evaluator = cacheExprs.put(exprId, fn) - } catch (e) { - log("debug: parse error," + e.message) - } finally { - vars = assigns = names = null //释放内存 - } - } - - -//parseExpr的智能引用代理 - - function parseExprProxy(code, scopes, data, tokens, noRegister) { - if (Array.isArray(tokens)) { - code = tokens.map(function (el) { - return el.expr ? "(" + el.value + ")" : quote(el.value) - }).join(" + ") - } - parseExpr(code, scopes, data) - if (data.evaluator && !noRegister) { - data.handler = bindingExecutors[data.handlerName || data.type] - //方便调试 - //这里非常重要,我们通过判定视图刷新函数的element是否在DOM树决定 - //将它移出订阅者列表 - avalon.injectBinding(data) - } - } - - avalon.parseExprProxy = parseExprProxy - var bools = ["autofocus,autoplay,async,allowTransparency,checked,controls", - "declare,disabled,defer,defaultChecked,defaultSelected", - "contentEditable,isMap,loop,multiple,noHref,noResize,noShade", - "open,readOnly,selected" - ].join(",") - var boolMap = {} - bools.replace(rword, function (name) { - boolMap[name.toLowerCase()] = name - }) - - var propMap = { //属性名映射 - "accept-charset": "acceptCharset", - "char": "ch", - "charoff": "chOff", - "class": "className", - "for": "htmlFor", - "http-equiv": "httpEquiv" - } - - var anomaly = ["accessKey,bgColor,cellPadding,cellSpacing,codeBase,codeType,colSpan", - "dateTime,defaultValue,frameBorder,longDesc,maxLength,marginWidth,marginHeight", - "rowSpan,tabIndex,useMap,vSpace,valueType,vAlign" - ].join(",") - anomaly.replace(rword, function (name) { - propMap[name.toLowerCase()] = name - }) - - var rnoscripts = /(?:[\s\S]+?)<\/noscript>/img - var rnoscriptText = /([\s\S]+?)<\/noscript>/im - - var getXHR = function () { - return new (window.XMLHttpRequest || ActiveXObject)("Microsoft.XMLHTTP") // jshint ignore:line - } - - var cacheTmpls = avalon.templateCache = {} - - bindingHandlers.attr = function (data, vmodels) { - var text = data.value.trim(), - simple = true - if (text.indexOf(openTag) > -1 && text.indexOf(closeTag) > 2) { - simple = false - if (rexpr.test(text) && RegExp.rightContext === "" && RegExp.leftContext === "") { - simple = true - text = RegExp.$1 - } - } - if (data.type === "include") { - var elem = data.element - data.includeRendered = getBindingCallback(elem, "data-include-rendered", vmodels) - data.includeLoaded = getBindingCallback(elem, "data-include-loaded", vmodels) - var outer = data.includeReplace = !!avalon(elem).data("includeReplace") - if (avalon(elem).data("includeCache")) { - data.templateCache = {} - } - data.startInclude = DOC.createComment("ms-include") - data.endInclude = DOC.createComment("ms-include-end") - if (outer) { - data.element = data.startInclude - elem.parentNode.insertBefore(data.startInclude, elem) - elem.parentNode.insertBefore(data.endInclude, elem.nextSibling) - } else { - elem.insertBefore(data.startInclude, elem.firstChild) - elem.appendChild(data.endInclude) - } - } - data.handlerName = "attr" //handleName用于处理多种绑定共用同一种bindingExecutor的情况 - parseExprProxy(text, vmodels, data, (simple ? 0 : scanExpr(data.value))) - } - - bindingExecutors.attr = function (val, elem, data) { - var method = data.type, - attrName = data.param - if (method === "css") { - avalon(elem).css(attrName, val) - } else if (method === "attr") { - // ms-attr-class="xxx" vm.xxx="aaa bbb ccc"将元素的className设置为aaa bbb ccc - // ms-attr-class="xxx" vm.xxx=false 清空元素的所有类名 - // ms-attr-name="yyy" vm.yyy="ooo" 为元素设置name属性 - var toRemove = (val === false) || (val === null) || (val === void 0) - - if (!W3C && propMap[attrName]) { //旧式IE下需要进行名字映射 - attrName = propMap[attrName] - } - var bool = boolMap[attrName] - if (typeof elem[bool] === "boolean") { - elem[bool] = !!val //布尔属性必须使用el.xxx = true|false方式设值 - if (!val) { //如果为false, IE全系列下相当于setAttribute(xxx,''),会影响到样式,需要进一步处理 - toRemove = true - } - } - if (toRemove) { - return elem.removeAttribute(attrName) - } - - //SVG只能使用setAttribute(xxx, yyy), VML只能使用elem.xxx = yyy ,HTML的固有属性必须elem.xxx = yyy - var isInnate = rsvg.test(elem) ? false : (DOC.namespaces && isVML(elem)) ? true : attrName in elem.cloneNode(false) - if (isInnate) { - elem[attrName] = val - } else { - elem.setAttribute(attrName, val) - } - } else if (method === "include" && val) { - var vmodels = data.vmodels - var rendered = data.includeRendered - var loaded = data.includeLoaded - var replace = data.includeReplace - var target = replace ? elem.parentNode : elem - var scanTemplate = function (text) { - if (loaded) { - var newText = loaded.apply(target, [text].concat(vmodels)) - if (typeof newText === "string") - text = newText - } - if (rendered) { - checkScan(target, function () { - rendered.call(target) - }, NaN) - } - var lastID = data.includeLastID - if (data.templateCache && lastID && lastID !== val) { - var lastTemplate = data.templateCache[lastID] - if (!lastTemplate) { - lastTemplate = data.templateCache[lastID] = DOC.createElement("div") - ifGroup.appendChild(lastTemplate) - } - } - data.includeLastID = val - while (true) { - var node = data.startInclude.nextSibling - if (node && node !== data.endInclude) { - target.removeChild(node) - if (lastTemplate) - lastTemplate.appendChild(node) - } else { - break - } - } - var dom = getTemplateNodes(data, val, text) - var nodes = avalon.slice(dom.childNodes) - target.insertBefore(dom, data.endInclude) - scanNodeArray(nodes, vmodels) - } - - if (data.param === "src") { - if (typeof cacheTmpls[val] === "string") { - avalon.nextTick(function () { - scanTemplate(cacheTmpls[val]) - }) - } else if (Array.isArray(cacheTmpls[val])) { //#805 防止在循环绑定中发出许多相同的请求 - cacheTmpls[val].push(scanTemplate) - } else { - var xhr = getXHR() - xhr.onreadystatechange = function () { - if (xhr.readyState === 4) { - var s = xhr.status - if (s >= 200 && s < 300 || s === 304 || s === 1223) { - var text = xhr.responseText - for (var f = 0, fn; fn = cacheTmpls[val][f++];) { - fn(text) - } - cacheTmpls[val] = text - } - } - } - cacheTmpls[val] = [scanTemplate] - xhr.open("GET", val, true) - if ("withCredentials" in xhr) { - xhr.withCredentials = true - } - xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest") - xhr.send(null) - } - } else { - //IE系列与够新的标准浏览器支持通过ID取得元素(firefox14+) - //http://tjvantoll.com/2012/07/19/dom-element-references-as-global-variables/ - var el = val && val.nodeType === 1 ? val : DOC.getElementById(val) - if (el) { - if (el.tagName === "NOSCRIPT" && !(el.innerHTML || el.fixIE78)) { //IE7-8 innerText,innerHTML都无法取得其内容,IE6能取得其innerHTML - xhr = getXHR() //IE9-11与chrome的innerHTML会得到转义的内容,它们的innerText可以 - xhr.open("GET", location, false) //谢谢Nodejs 乱炖群 深圳-纯属虚构 - xhr.send(null) - //http://bbs.csdn.net/topics/390349046?page=1#post-393492653 - var noscripts = DOC.getElementsByTagName("noscript") - var array = (xhr.responseText || "").match(rnoscripts) || [] - var n = array.length - for (var i = 0; i < n; i++) { - var tag = noscripts[i] - if (tag) { //IE6-8中noscript标签的innerHTML,innerText是只读的 - tag.style.display = "none" //http://haslayout.net/css/noscript-Ghost-Bug - tag.fixIE78 = (array[i].match(rnoscriptText) || ["", " "])[1] - } - } - } - avalon.nextTick(function () { - scanTemplate(el.fixIE78 || el.value || el.innerText || el.innerHTML) - }) - } - } - } else { - if (!root.hasAttribute && typeof val === "string" && (method === "src" || method === "href")) { - val = val.replace(/&/g, "&") //处理IE67自动转义的问题 - } - elem[method] = val - if (window.chrome && elem.tagName === "EMBED") { - var parent = elem.parentNode //#525 chrome1-37下embed标签动态设置src不能发生请求 - var comment = document.createComment("ms-src") - parent.replaceChild(comment, elem) - parent.replaceChild(elem, comment) - } - } - } - - function getTemplateNodes(data, id, text) { - var div = data.templateCache && data.templateCache[id] - if (div) { - var dom = DOC.createDocumentFragment(), - firstChild - while (firstChild = div.firstChild) { - dom.appendChild(firstChild) - } - return dom - } - return avalon.parseHTML(text) - } - -//这几个指令都可以使用插值表达式,如ms-src="aaa/{{b}}/{{c}}.html" - "title,alt,src,value,css,include,href".replace(rword, function (name) { - bindingHandlers[name] = bindingHandlers.attr - }) -//根据VM的属性值或表达式的值切换类名,ms-class="xxx yyy zzz:flag" -//http://www.cnblogs.com/rubylouvre/archive/2012/12/17/2818540.html - bindingHandlers["class"] = function (data, vmodels) { - var oldStyle = data.param, - text = data.value, - rightExpr - data.handlerName = "class" - if (!oldStyle || isFinite(oldStyle)) { - data.param = "" //去掉数字 - var noExpr = text.replace(rexprg, function (a) { - return a.replace(/./g, "0") - //return Math.pow(10, a.length - 1) //将插值表达式插入10的N-1次方来占位 - }) - var colonIndex = noExpr.indexOf(":") //取得第一个冒号的位置 - if (colonIndex === -1) { // 比如 ms-class="aaa bbb ccc" 的情况 - var className = text - } else { // 比如 ms-class-1="ui-state-active:checked" 的情况 - className = text.slice(0, colonIndex) - rightExpr = text.slice(colonIndex + 1) - parseExpr(rightExpr, vmodels, data) //决定是添加还是删除 - if (!data.evaluator) { - log("debug: ms-class '" + (rightExpr || "").trim() + "' 不存在于VM中") - return false - } else { - data._evaluator = data.evaluator - data._args = data.args - } - } - var hasExpr = rexpr.test(className) //比如ms-class="width{{w}}"的情况 - if (!hasExpr) { - data.immobileClass = className - } - parseExprProxy("", vmodels, data, (hasExpr ? scanExpr(className) : 0)) - } else { - data.immobileClass = data.oldStyle = data.param - parseExprProxy(text, vmodels, data) - } - } - - bindingExecutors["class"] = function (val, elem, data) { - var $elem = avalon(elem), - method = data.type - if (method === "class" && data.oldStyle) { //如果是旧风格 - $elem.toggleClass(data.oldStyle, !!val) - } else { - //如果存在冒号就有求值函数 - data.toggleClass = data._evaluator ? !!data._evaluator.apply(elem, data._args) : true - data.newClass = data.immobileClass || val - if (data.oldClass && data.newClass !== data.oldClass) { - $elem.removeClass(data.oldClass) - } - data.oldClass = data.newClass - switch (method) { - case "class": - $elem.toggleClass(data.newClass, data.toggleClass) - break - case "hover": - case "active": - if (!data.hasBindEvent) { //确保只绑定一次 - var activate = "mouseenter" //在移出移入时切换类名 - var abandon = "mouseleave" - if (method === "active") { //在聚焦失焦中切换类名 - elem.tabIndex = elem.tabIndex || -1 - activate = "mousedown" - abandon = "mouseup" - var fn0 = $elem.bind("mouseleave", function () { - data.toggleClass && $elem.removeClass(data.newClass) - }) - } - var fn1 = $elem.bind(activate, function () { - data.toggleClass && $elem.addClass(data.newClass) - }) - var fn2 = $elem.bind(abandon, function () { - data.toggleClass && $elem.removeClass(data.newClass) - }) - data.rollback = function () { - $elem.unbind("mouseleave", fn0) - $elem.unbind(activate, fn1) - $elem.unbind(abandon, fn2) - } - data.hasBindEvent = true - } - break; - } - } - } - - "hover,active".replace(rword, function (method) { - bindingHandlers[method] = bindingHandlers["class"] - }) -//ms-controller绑定已经在scanTag 方法中实现 -//ms-css绑定已由ms-attr绑定实现 - - -// bindingHandlers.data 定义在if.js - bindingExecutors.data = function (val, elem, data) { - var key = "data-" + data.param - if (val && typeof val === "object") { - elem[key] = val - } else { - elem.setAttribute(key, String(val)) - } - } -//双工绑定 - var duplexBinding = bindingHandlers.duplex = function (data, vmodels) { - var elem = data.element, - hasCast - parseExprProxy(data.value, vmodels, data, 0, 1) - - data.changed = getBindingCallback(elem, "data-duplex-changed", vmodels) || noop - if (data.evaluator && data.args) { - var params = [] - var casting = oneObject("string,number,boolean,checked") - if (elem.type === "radio" && data.param === "") { - data.param = "checked" - } - if (elem.msData) { - elem.msData["ms-duplex"] = data.value - } - data.param.replace(/\w+/g, function (name) { - if (/^(checkbox|radio)$/.test(elem.type) && /^(radio|checked)$/.test(name)) { - if (name === "radio") - log("ms-duplex-radio已经更名为ms-duplex-checked") - name = "checked" - data.isChecked = true - } - if (name === "bool") { - name = "boolean" - log("ms-duplex-bool已经更名为ms-duplex-boolean") - } else if (name === "text") { - name = "string" - log("ms-duplex-text已经更名为ms-duplex-string") - } - if (casting[name]) { - hasCast = true - } - avalon.Array.ensure(params, name) - }) - if (!hasCast) { - params.push("string") - } - data.param = params.join("-") - data.bound = function (type, callback) { - if (elem.addEventListener) { - elem.addEventListener(type, callback, false) - } else { - elem.attachEvent("on" + type, callback) - } - var old = data.rollback - data.rollback = function () { - elem.avalonSetter = null - avalon.unbind(elem, type, callback) - old && old() - } - } - for (var i in avalon.vmodels) { - var v = avalon.vmodels[i] - v.$fire("avalon-ms-duplex-init", data) - } - var cpipe = data.pipe || (data.pipe = pipe) - cpipe(null, data, "init") - var tagName = elem.tagName - duplexBinding[tagName] && duplexBinding[tagName](elem, data.evaluator.apply(null, data.args), data) - } - } -//不存在 bindingExecutors.duplex - - function fixNull(val) { - return val == null ? "" : val - } - - avalon.duplexHooks = { - checked: { - get: function (val, data) { - return !data.element.oldValue - } - }, - string: { - get: function (val) { //同步到VM - return val - }, - set: fixNull - }, - "boolean": { - get: function (val) { - return val === "true" - }, - set: fixNull - }, - number: { - get: function (val, data) { - var number = parseFloat(val) - if (-val === -number) { - return number - } - var arr = /strong|medium|weak/.exec(data.element.getAttribute("data-duplex-number")) || ["medium"] - switch (arr[0]) { - case "strong": - return 0 - case "medium": - return val === "" ? "" : 0 - case "weak": - return val - } - }, - set: fixNull - } - } - - function pipe(val, data, action, e) { - data.param.replace(/\w+/g, function (name) { - var hook = avalon.duplexHooks[name] - if (hook && typeof hook[action] === "function") { - val = hook[action](val, data) - } - }) - return val - } - - var TimerID, ribbon = [] - - avalon.tick = function (fn) { - if (ribbon.push(fn) === 1) { - TimerID = setInterval(ticker, 60) - } - } - - function ticker() { - for (var n = ribbon.length - 1; n >= 0; n--) { - var el = ribbon[n] - if (el() === false) { - ribbon.splice(n, 1) - } - } - if (!ribbon.length) { - clearInterval(TimerID) - } - } - - var watchValueInTimer = noop - var rmsinput = /text|password|hidden/ - new function () { // jshint ignore:line - try { //#272 IE9-IE11, firefox - var setters = {} - var aproto = HTMLInputElement.prototype - var bproto = HTMLTextAreaElement.prototype - - function newSetter(value) { // jshint ignore:line - if (avalon.contains(root, this)) { - setters[this.tagName].call(this, value) - if (!rmsinput.test(this.type)) - return - if (!this.msFocus && this.avalonSetter) { - this.avalonSetter() - } - } - } - - var inputProto = HTMLInputElement.prototype - Object.getOwnPropertyNames(inputProto) //故意引发IE6-8等浏览器报错 - setters["INPUT"] = Object.getOwnPropertyDescriptor(aproto, "value").set - Object.defineProperty(aproto, "value", { - set: newSetter - }) - setters["TEXTAREA"] = Object.getOwnPropertyDescriptor(bproto, "value").set - Object.defineProperty(bproto, "value", { - set: newSetter - }) - } catch (e) { - //在chrome 43中 ms-duplex终于不需要使用定时器实现双向绑定了 - // http://updates.html5rocks.com/2015/04/DOM-attributes-now-on-the-prototype - // https://docs.google.com/document/d/1jwA8mtClwxI-QJuHT7872Z0pxpZz8PBkf2bGAbsUtqs/edit?pli=1 - watchValueInTimer = avalon.tick - } - } // jshint ignore:line -//处理radio, checkbox, text, textarea, password - duplexBinding.INPUT = function (element, evaluator, data) { - var $type = element.type, - bound = data.bound, - $elem = avalon(element), - composing = false - - function callback(value) { - data.changed.call(this, value, data) - } - - function compositionStart() { - composing = true - } - - function compositionEnd() { - composing = false - } - - //当value变化时改变model的值 - - var updateVModel = function () { - if (composing) //处理中文输入法在minlengh下引发的BUG - return - var val = element.oldValue = element.value //防止递归调用形成死循环 - var lastValue = data.pipe(val, data, "get") - if ($elem.data("duplexObserve") !== false) { - evaluator(lastValue) - callback.call(element, lastValue) - if ($elem.data("duplex-focus")) { - avalon.nextTick(function () { - element.focus() - }) - } - } - } - //当model变化时,它就会改变value的值 - data.handler = function () { - var val = data.pipe(evaluator(), data, "set") + "" - if (val !== element.oldValue) { - element.value = val - } - } - if (data.isChecked || $type === "radio") { - updateVModel = function () { - if ($elem.data("duplexObserve") !== false) { - var lastValue = data.pipe(element.value, data, "get") - evaluator(lastValue) - callback.call(element, lastValue) - } - } - data.handler = function () { - var val = evaluator() - var checked = data.isChecked ? !!val : val + "" === element.value - element.checked = element.oldValue = checked - } - bound("click", updateVModel) - } else if ($type === "checkbox") { - updateVModel = function () { - if ($elem.data("duplexObserve") !== false) { - var method = element.checked ? "ensure" : "remove" - var array = evaluator() - if (!Array.isArray(array)) { - log("ms-duplex应用于checkbox上要对应一个数组") - array = [array] - } - avalon.Array[method](array, data.pipe(element.value, data, "get")) - callback.call(element, array) - } - } - data.handler = function () { - var array = [].concat(evaluator()) //强制转换为数组 - element.checked = array.indexOf(data.pipe(element.value, data, "get")) > -1 - } - bound("change", updateVModel) - } else { - var events = element.getAttribute("data-duplex-event") || "input" - if (element.attributes["data-event"]) { - log("data-event指令已经废弃,请改用data-duplex-event") - } - events.replace(rword, function (name) { - switch (name) { - case "input": - bound("input", updateVModel) - bound("DOMAutoComplete", updateVModel) - if (!IEVersion) { - bound("compositionstart", compositionStart) - bound("compositionend", compositionEnd) - } - break - default: - bound(name, updateVModel) - break - } - }) - bound("focus", function () { - element.msFocus = true - }) - bound("blur", function () { - element.msFocus = false - }) - if (rmsinput.test($type)) { - watchValueInTimer(function () { - if (root.contains(element)) { - if (!element.msFocus && element.oldValue !== element.value) { - updateVModel() - } - } else if (!element.msRetain) { - return false - } - }) - } - - element.avalonSetter = updateVModel - } - - element.oldValue = element.value - avalon.injectBinding(data) - callback.call(element, element.value) - } - duplexBinding.TEXTAREA = duplexBinding.INPUT - duplexBinding.SELECT = function (element, evaluator, data) { - var $elem = avalon(element) - - function updateVModel() { - if ($elem.data("duplexObserve") !== false) { - var val = $elem.val() //字符串或字符串数组 - if (Array.isArray(val)) { - val = val.map(function (v) { - return data.pipe(v, data, "get") - }) - } else { - val = data.pipe(val, data, "get") - } - if (val + "" !== element.oldValue) { - evaluator(val) - } - data.changed.call(element, val, data) - } - } - - data.handler = function () { - var val = evaluator() - val = val && val.$model || val - if (Array.isArray(val)) { - if (!element.multiple) { - log("ms-duplex在不能对应一个数组") - } - } - //必须变成字符串后才能比较 - val = Array.isArray(val) ? val.map(String) : val + "" - if (val + "" !== element.oldValue) { - $elem.val(val) - element.oldValue = val + "" - } - } - data.bound("change", updateVModel) - element.msCallback = function () { - avalon.injectBinding(data) - data.changed.call(element, evaluator(), data) - } - } -// bindingHandlers.html 定义在if.js - bindingExecutors.html = function (val, elem, data) { - val = val == null ? "" : val - var isHtmlFilter = "group" in data - var parent = isHtmlFilter ? elem.parentNode : elem - if (!parent) - return - if (typeof val === "string") { - var fragment = avalon.parseHTML(val) - } else if (val.nodeType === 11) { //将val转换为文档碎片 - fragment = val - } else if (val.nodeType === 1 || val.item) { - var nodes = val.nodeType === 1 ? val.childNodes : val.item - fragment = hyperspace.cloneNode(true) - while (nodes[0]) { - fragment.appendChild(nodes[0]) - } - } - if (!fragment.firstChild) { - fragment.appendChild(DOC.createComment("ms-html")) - } - nodes = avalon.slice(fragment.childNodes) - //插入占位符, 如果是过滤器,需要有节制地移除指定的数量,如果是html指令,直接清空 - if (isHtmlFilter) { - var n = data.group, - i = 1 - - data.group = nodes.length - data.element = nodes[0] - - while (i < n) { - var node = elem.nextSibling - if (node) { - parent.removeChild(node) - i++ - } - } - parent.replaceChild(fragment, elem) - } else { - avalon.clearHTML(parent).appendChild(fragment) - } - scanNodeArray(nodes, data.vmodels) - } - bindingHandlers["if"] = - bindingHandlers.data = - bindingHandlers.text = - bindingHandlers.html = - function (data, vmodels) { - parseExprProxy(data.value, vmodels, data) - } - - bindingExecutors["if"] = function (val, elem, data) { - if (val) { //插回DOM树 - if (elem.nodeType === 8) { - elem.parentNode.replaceChild(data.template, elem) - elem = data.element = data.template //这时可能为null - } - if (elem.getAttribute(data.name)) { - elem.removeAttribute(data.name) - scanAttr(elem, data.vmodels) - } - data.rollback = null - } else { //移出DOM树,并用注释节点占据原位置 - if (elem.nodeType === 1) { - var node = data.element = DOC.createComment("ms-if") - elem.parentNode.replaceChild(node, elem) - data.template = elem //元素节点 - ifGroup.appendChild(elem) - data.rollback = function () { - if (elem.parentNode === ifGroup) { - ifGroup.removeChild(elem) - } - } - } - } - } -//ms-important绑定已经在scanTag 方法中实现 -//ms-include绑定已由ms-attr绑定实现 - - var rdash = /\(([^)]*)\)/ - bindingHandlers.on = function (data, vmodels) { - var value = data.value - data.type = "on" - var eventType = data.param.replace(/-\d+$/, "") // ms-on-mousemove-10 - if (typeof bindingHandlers.on[eventType + "Hook"] === "function") { - bindingHandlers.on[eventType + "Hook"](data) - } - if (value.indexOf("(") > 0 && value.indexOf(")") > -1) { - var matched = (value.match(rdash) || ["", ""])[1].trim() - if (matched === "" || matched === "$event") { // aaa() aaa($event)当成aaa处理 - value = value.replace(rdash, "") - } - } - parseExprProxy(value, vmodels, data) - } - - bindingExecutors.on = function (callback, elem, data) { - callback = function (e) { - var fn = data.evaluator || noop - return fn.apply(this, data.args.concat(e)) - } - var eventType = data.param.replace(/-\d+$/, "") // ms-on-mousemove-10 - if (eventType === "scan") { - callback.call(elem, { - type: eventType - }) - } else if (typeof data.specialBind === "function") { - data.specialBind(elem, callback) - } else { - var removeFn = avalon.bind(elem, eventType, callback) - } - data.rollback = function () { - if (typeof data.specialUnbind === "function") { - data.specialUnbind() - } else { - avalon.unbind(elem, eventType, removeFn) - } - } - } - bindingHandlers.repeat = function (data, vmodels) { - var type = data.type - parseExprProxy(data.value, vmodels, data, 0, 1) - var freturn = false - try { - var $repeat = data.$repeat = data.evaluator.apply(0, data.args || []) - var xtype = avalon.type($repeat) - if (xtype !== "object" && xtype !== "array") { - freturn = true - avalon.log("warning:" + data.value + "只能是对象或数组") - } - } catch (e) { - freturn = true - } - - var arr = data.value.split(".") || [] - if (arr.length > 1) { - arr.pop() - var n = arr[0] - for (var i = 0, v; v = vmodels[i++];) { - if (v && v.hasOwnProperty(n)) { - var events = v[n].$events || {} - events[subscribers] = events[subscribers] || [] - events[subscribers].push(data) - break - } - } - } - var elem = data.element - elem.removeAttribute(data.name) - - data.sortedCallback = getBindingCallback(elem, "data-with-sorted", vmodels) - data.renderedCallback = getBindingCallback(elem, "data-" + type + "-rendered", vmodels) - var signature = generateID(type) - var comment = data.element = DOC.createComment(signature + ":end") - data.clone = DOC.createComment(signature) - hyperspace.appendChild(comment) - - if (type === "each" || type === "with") { - data.template = elem.innerHTML.trim() - avalon.clearHTML(elem).appendChild(comment) - } else { - data.template = elem.outerHTML.trim() - elem.parentNode.replaceChild(comment, elem) - } - data.template = avalon.parseHTML(data.template) - data.rollback = function () { - var elem = data.element - if (!elem) - return - bindingExecutors.repeat.call(data, "clear") - var parentNode = elem.parentNode - var content = data.template - var target = content.firstChild - parentNode.replaceChild(content, elem) - var start = data.$with - start && start.parentNode && start.parentNode.removeChild(start) - target = data.element = data.type === "repeat" ? target : parentNode - } - if (freturn) { - return - } - data.handler = bindingExecutors.repeat - data.$outer = {} - var check0 = "$key" - var check1 = "$val" - if (Array.isArray($repeat)) { - $repeat.$map[data.param || "el"] = 1 - check0 = "$first" - check1 = "$last" - } - for (i = 0; v = vmodels[i++];) { - if (v.hasOwnProperty(check0) && v.hasOwnProperty(check1)) { - data.$outer = v - break - } - } - var $events = $repeat.$events - var $list = ($events || {})[subscribers] - if ($list && avalon.Array.ensure($list, data)) { - addSubscribers(data, $list) - } - if (xtype === "object") { - data.$with = true - var pool = !$events ? {} : $events.$withProxyPool || ($events.$withProxyPool = {}) - data.handler("append", $repeat, pool) - } else if ($repeat.length) { - data.handler("add", 0, $repeat.length) - } - } - - bindingExecutors.repeat = function (method, pos, el) { - if (method) { - var data = this, start, fragment - var end = data.element - var comments = getComments(data) - var parent = end.parentNode - var transation = hyperspace.cloneNode(false) - switch (method) { - case "add": //在pos位置后添加el数组(pos为插入位置,el为要插入的个数) - var n = pos + el - var fragments = [] - var array = data.$repeat - for (var i = pos; i < n; i++) { - var proxy = array.$proxy[i] - proxy.$outer = data.$outer - shimController(data, transation, proxy, fragments) - } - parent.insertBefore(transation, comments[pos] || end) - for (i = 0; fragment = fragments[i++];) { - scanNodeArray(fragment.nodes, fragment.vmodels) - fragment.nodes = fragment.vmodels = null - } - break - case "del": //将pos后的el个元素删掉(pos, el都是数字) - sweepNodes(comments[pos], comments[pos + el] || end) - break - case "clear": - start = comments[0] - if (start) { - sweepNodes(start, end) - } - break - case "move": - start = comments[0] - if (start) { - var signature = start.nodeValue - var rooms = [] - var room = [], - node - sweepNodes(start, end, function () { - room.unshift(this) - if (this.nodeValue === signature) { - rooms.unshift(room) - room = [] - } - }) - sortByIndex(rooms, pos) - while (room = rooms.shift()) { - while (node = room.shift()) { - transation.appendChild(node) - } - } - parent.insertBefore(transation, end) - } - break - case "append": //将pos的键值对从el中取出(pos为一个普通对象,el为预先生成好的代理VM对象池) - var pool = el - var keys = [] - fragments = [] - for (var key in pos) { //得到所有键名 - if (pos.hasOwnProperty(key) && key !== "hasOwnProperty") { - keys.push(key) - } - } - if (data.sortedCallback) { //如果有回调,则让它们排序 - var keys2 = data.sortedCallback.call(parent, keys) - if (keys2 && Array.isArray(keys2) && keys2.length) { - keys = keys2 - } - } - for (i = 0; key = keys[i++];) { - if (key !== "hasOwnProperty") { - if (!pool[key]) { - pool[key] = withProxyAgent(key, data) - } - shimController(data, transation, pool[key], fragments) - } - } - var comment = data.$with = data.clone - parent.insertBefore(comment, end) - parent.insertBefore(transation, end) - for (i = 0; fragment = fragments[i++];) { - scanNodeArray(fragment.nodes, fragment.vmodels) - fragment.nodes = fragment.vmodels = null - } - break - } - if (method === "clear") - method = "del" - var callback = data.renderedCallback || noop, - args = arguments - checkScan(parent, function () { - callback.apply(parent, args) - if (parent.oldValue && parent.tagName === "SELECT") { //fix #503 - avalon(parent).val(parent.oldValue.split(",")) - } - }, NaN) - } - } - - "with,each".replace(rword, function (name) { - bindingHandlers[name] = bindingHandlers.repeat - }) - - function shimController(data, transation, proxy, fragments) { - var content = data.template.cloneNode(true) - var nodes = avalon.slice(content.childNodes) - if (!data.$with) { - content.insertBefore(data.clone.cloneNode(false), content.firstChild) - } - transation.appendChild(content) - var nv = [proxy].concat(data.vmodels) - var fragment = { - nodes: nodes, - vmodels: nv - } - fragments.push(fragment) - } - - function getComments(data) { - var end = data.element - var signature = end.nodeValue.replace(":end", "") - var node = end.previousSibling - var array = [] - while (node) { - if (node.nodeValue === signature) { - array.unshift(node) - } - node = node.previousSibling - } - return array - } - - -//移除掉start与end之间的节点(保留end) - function sweepNodes(start, end, callback) { - while (true) { - var node = end.previousSibling - if (!node) - break - node.parentNode.removeChild(node) - callback && callback.call(node) - if (node === start) { - break - } - } - } - -// 为ms-each,ms-with, ms-repeat会创建一个代理VM, -// 通过它们保持一个下上文,让用户能调用$index,$first,$last,$remove,$key,$val,$outer等属性与方法 -// 所有代理VM的产生,消费,收集,存放通过xxxProxyFactory,xxxProxyAgent, recycleProxies,xxxProxyPool实现 - var eachProxyPool = [] - var withProxyPool = [] - - function eachProxyFactory() { - var source = { - $index: 0, - $first: false, - $last: false, - $map: {}, - $host: [], - $outer: {}, - $remove: avalon.noop, - el: { - get: function () { - var e = this.$events - var array = e.$index - e.$index = e.el //#817 通过$index为el收集依赖 - try { - return this.$host[this.$index] - } finally { - e.$index = array - } - }, - set: function (val) { - this.$host.set(this.$index, val) - } - } - } - - var second = { - $last: 1, - $first: 1, - $index: 1 - } - var proxy = modelFactory(source, second) - proxy.$id = generateID("$proxy$each") - return proxy - } - - function eachProxyAgent(index, host) { - var proxy = eachProxyPool.shift() - if (!proxy) { - proxy = eachProxyFactory() - } - var last = host.length - 1 - proxy.$index = index - proxy.$first = index === 0 - proxy.$last = index === last - proxy.$map = host.$map - proxy.$host = host - proxy.$remove = function () { - return host.removeAt(proxy.$index) - } - return proxy - } - - function withProxyFactory() { - var proxy = modelFactory({ - $key: "", - $outer: {}, - $host: {}, - $val: { - get: function () { - return this.$host[this.$key] - }, - set: function (val) { - this.$host[this.$key] = val - } - } - }, { - $val: 1 - }) - proxy.$id = generateID("$proxy$with") - return proxy - } - - function withProxyAgent(key, data) { - var proxy = withProxyPool.pop() - if (!proxy) { - proxy = withProxyFactory() - } - var host = data.$repeat - proxy.$key = key - proxy.$host = host - proxy.$outer = data.$outer - if (host.$events) { - proxy.$events.$val = host.$events[key] - } else { - proxy.$events = {} - } - return proxy - } - - function recycleProxies(proxies, type) { - var proxyPool = type === "each" ? eachProxyPool : withProxyPool - avalon.each(proxies, function (key, proxy) { - if (proxy.$events) { - for (var i in proxy.$events) { - if (Array.isArray(proxy.$events[i])) { - proxy.$events[i].forEach(function (data) { - if (typeof data === "object") - disposeData(data) - }) // jshint ignore:line - proxy.$events[i].length = 0 - } - } - proxy.$host = proxy.$outer = {} - if (proxyPool.unshift(proxy) > kernel.maxRepeatSize) { - proxyPool.pop() - } - } - }) - if (type === "each") - proxies.length = 0 - } - - /********************************************************************* - * 各种指令 * - **********************************************************************/ -//ms-skip绑定已经在scanTag 方法中实现 -// bindingHandlers.text 定义在if.js - bindingExecutors.text = function (val, elem) { - val = val == null ? "" : val //不在页面上显示undefined null - if (elem.nodeType === 3) { //绑定在文本节点上 - try { //IE对游离于DOM树外的节点赋值会报错 - elem.data = val - } catch (e) { - } - } else { //绑定在特性节点上 - elem.textContent = val - } - } - function parseDisplay(nodeName, val) { - //用于取得此类标签的默认display值 - var key = "_" + nodeName - if (!parseDisplay[key]) { - var node = DOC.createElement(nodeName) - root.appendChild(node) - if (W3C) { - val = getComputedStyle(node, null).display - } else { - val = node.currentStyle.display - } - root.removeChild(node) - parseDisplay[key] = val - } - return parseDisplay[key] - } - - avalon.parseDisplay = parseDisplay - - bindingHandlers.visible = function (data, vmodels) { - var elem = avalon(data.element) - var display = elem.css("display") - if (display === "none") { - var style = elem[0].style - var has = /visibility/i.test(style.cssText) - var visible = elem.css("visibility") - style.display = "" - style.visibility = "hidden" - display = elem.css("display") - if (display === "none") { - display = parseDisplay(elem[0].nodeName) - } - style.visibility = has ? visible : "" - } - data.display = display - parseExprProxy(data.value, vmodels, data) - } - - bindingExecutors.visible = function (val, elem, data) { - elem.style.display = val ? data.display : "none" - } - bindingHandlers.widget = function (data, vmodels) { - var args = data.value.match(rword) - var elem = data.element - var widget = args[0] - var id = args[1] - if (!id || id === "$") { //没有定义或为$时,取组件名+随机数 - id = generateID(widget) - } - var optName = args[2] || widget //没有定义,取组件名 - var constructor = avalon.ui[widget] - if (typeof constructor === "function") { //ms-widget="tabs,tabsAAA,optname" - vmodels = elem.vmodels || vmodels - for (var i = 0, v; v = vmodels[i++];) { - if (v.hasOwnProperty(optName) && typeof v[optName] === "object") { - var vmOptions = v[optName] - vmOptions = vmOptions.$model || vmOptions - break - } - } - if (vmOptions) { - var wid = vmOptions[widget + "Id"] - if (typeof wid === "string") { - log("warning!不再支持" + widget + "Id") - id = wid - } - } - //抽取data-tooltip-text、data-tooltip-attr属性,组成一个配置对象 - var widgetData = avalon.getWidgetData(elem, widget) - data.value = [widget, id, optName].join(",") - data[widget + "Id"] = id - data.evaluator = noop - elem.msData["ms-widget-id"] = id - var options = data[widget + "Options"] = avalon.mix({}, constructor.defaults, vmOptions || {}, widgetData) - elem.removeAttribute("ms-widget") - var vmodel = constructor(elem, data, vmodels) || {} //防止组件不返回VM - if (vmodel.$id) { - avalon.vmodels[id] = vmodel - createSignalTower(elem, vmodel) - try { - vmodel.$init(function () { - avalon.scan(elem, [vmodel].concat(vmodels)) - if (typeof options.onInit === "function") { - options.onInit.call(elem, vmodel, options, vmodels) - } - }) - } catch (e) { - } - data.rollback = function () { - try { - vmodel.widgetElement = null - vmodel.$remove() - } catch (e) { - } - elem.msData = {} - delete avalon.vmodels[vmodel.$id] - } - addSubscribers(data, widgetList) - if (window.chrome) { - elem.addEventListener("DOMNodeRemovedFromDocument", function () { - setTimeout(removeSubscribers) - }) - } - } else { - avalon.scan(elem, vmodels) - } - } else if (vmodels.length) { //如果该组件还没有加载,那么保存当前的vmodels - elem.vmodels = vmodels - } - } - var widgetList = [] -//不存在 bindingExecutors.widget - /********************************************************************* - * 自带过滤器 * - **********************************************************************/ - var rscripts = /]*>([\S\s]*?)<\/script\s*>/gim - var ron = /\s+(on[^=\s]+)(?:=("[^"]*"|'[^']*'|[^\s>]+))?/g - var ropen = /<\w+\b(?:(["'])[^"]*?(\1)|[^>])*>/ig - var rsanitize = { - a: /\b(href)\=("javascript[^"]*"|'javascript[^']*')/ig, - img: /\b(src)\=("javascript[^"]*"|'javascript[^']*')/ig, - form: /\b(action)\=("javascript[^"]*"|'javascript[^']*')/ig - } - var rsurrogate = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g - var rnoalphanumeric = /([^\#-~| |!])/g; - - function numberFormat(number, decimals, point, thousands) { - //form http://phpjs.org/functions/number_format/ - //number 必需,要格式化的数字 - //decimals 可选,规定多少个小数位。 - //point 可选,规定用作小数点的字符串(默认为 . )。 - //thousands 可选,规定用作千位分隔符的字符串(默认为 , ),如果设置了该参数,那么所有其他参数都是必需的。 - number = (number + '') - .replace(/[^0-9+\-Ee.]/g, '') - var n = !isFinite(+number) ? 0 : +number, - prec = !isFinite(+decimals) ? 3 : Math.abs(decimals), - sep = thousands || ",", - dec = point || ".", - s = '', - toFixedFix = function (n, prec) { - var k = Math.pow(10, prec) - return '' + (Math.round(n * k) / k) - .toFixed(prec) - } - // Fix for IE parseFloat(0.55).toFixed(0) = 0; - s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)) - .split('.') - if (s[0].length > 3) { - s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep) - } - if ((s[1] || '') - .length < prec) { - s[1] = s[1] || '' - s[1] += new Array(prec - s[1].length + 1) - .join('0') - } - return s.join(dec) - } - - - var filters = avalon.filters = { - uppercase: function (str) { - return str.toUpperCase() - }, - lowercase: function (str) { - return str.toLowerCase() - }, - truncate: function (str, length, truncation) { - //length,新字符串长度,truncation,新字符串的结尾的字段,返回新字符串 - length = length || 30 - truncation = truncation === void(0) ? "..." : truncation - return str.length > length ? str.slice(0, length - truncation.length) + truncation : String(str) - }, - $filter: function (val) { - for (var i = 1, n = arguments.length; i < n; i++) { - var array = arguments[i] - var fn = avalon.filters[array.shift()] - if (typeof fn === "function") { - var arr = [val].concat(array) - val = fn.apply(null, arr) - } - } - return val - }, - camelize: camelize, - //https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet - // chrome - // chrome - // IE67chrome - // IE67chrome - // IE67chrome - sanitize: function (str) { - return str.replace(rscripts, "").replace(ropen, function (a, b) { - var match = a.toLowerCase().match(/<(\w+)\s/) - if (match) { //处理a标签的href属性,img标签的src属性,form标签的action属性 - var reg = rsanitize[match[1]] - if (reg) { - a = a.replace(reg, function (s, name, value) { - var quote = value.charAt(0) - return name + "=" + quote + "javascript:void(0)" + quote// jshint ignore:line - }) - } - } - return a.replace(ron, " ").replace(/\s+/g, " ") //移除onXXX事件 - }) - }, - escape: function (str) { - //将字符串经过 str 转义得到适合在页面中显示的内容, 例如替换 < 为 < - return String(str). - replace(/&/g, '&'). - replace(rsurrogate, function (value) { - var hi = value.charCodeAt(0) - var low = value.charCodeAt(1) - return '&#' + (((hi - 0xD800) * 0x400) + (low - 0xDC00) + 0x10000) + ';' - }). - replace(rnoalphanumeric, function (value) { - return '&#' + value.charCodeAt(0) + ';' - }). - replace(//g, '>') - }, - currency: function (amount, symbol, fractionSize) { - return (symbol || "\uFFE5") + numberFormat(amount, isFinite(fractionSize) ? fractionSize : 2) - }, - number: numberFormat - } - /* - 'yyyy': 4 digit representation of year (e.g. AD 1 => 0001, AD 2010 => 2010) - 'yy': 2 digit representation of year, padded (00-99). (e.g. AD 2001 => 01, AD 2010 => 10) - 'y': 1 digit representation of year, e.g. (AD 1 => 1, AD 199 => 199) - 'MMMM': Month in year (January-December) - 'MMM': Month in year (Jan-Dec) - 'MM': Month in year, padded (01-12) - 'M': Month in year (1-12) - 'dd': Day in month, padded (01-31) - 'd': Day in month (1-31) - 'EEEE': Day in Week,(Sunday-Saturday) - 'EEE': Day in Week, (Sun-Sat) - 'HH': Hour in day, padded (00-23) - 'H': Hour in day (0-23) - 'hh': Hour in am/pm, padded (01-12) - 'h': Hour in am/pm, (1-12) - 'mm': Minute in hour, padded (00-59) - 'm': Minute in hour (0-59) - 'ss': Second in minute, padded (00-59) - 's': Second in minute (0-59) - 'a': am/pm marker - 'Z': 4 digit (+sign) representation of the timezone offset (-1200-+1200) - format string can also be one of the following predefined localizable formats: - - 'medium': equivalent to 'MMM d, y h:mm:ss a' for en_US locale (e.g. Sep 3, 2010 12:05:08 pm) - 'short': equivalent to 'M/d/yy h:mm a' for en_US locale (e.g. 9/3/10 12:05 pm) - 'fullDate': equivalent to 'EEEE, MMMM d,y' for en_US locale (e.g. Friday, September 3, 2010) - 'longDate': equivalent to 'MMMM d, y' for en_US locale (e.g. September 3, 2010 - 'mediumDate': equivalent to 'MMM d, y' for en_US locale (e.g. Sep 3, 2010) - 'shortDate': equivalent to 'M/d/yy' for en_US locale (e.g. 9/3/10) - 'mediumTime': equivalent to 'h:mm:ss a' for en_US locale (e.g. 12:05:08 pm) - 'shortTime': equivalent to 'h:mm a' for en_US locale (e.g. 12:05 pm) - */ - new function () {// jshint ignore:line - function toInt(str) { - return parseInt(str, 10) || 0 - } - - function padNumber(num, digits, trim) { - var neg = "" - if (num < 0) { - neg = '-' - num = -num - } - num = "" + num - while (num.length < digits) - num = "0" + num - if (trim) - num = num.substr(num.length - digits) - return neg + num - } - - function dateGetter(name, size, offset, trim) { - return function (date) { - var value = date["get" + name]() - if (offset > 0 || value > -offset) - value += offset - if (value === 0 && offset === -12) { - value = 12 - } - return padNumber(value, size, trim) - } - } - - function dateStrGetter(name, shortForm) { - return function (date, formats) { - var value = date["get" + name]() - var get = (shortForm ? ("SHORT" + name) : name).toUpperCase() - return formats[get][value] - } - } - - function timeZoneGetter(date) { - var zone = -1 * date.getTimezoneOffset() - var paddedZone = (zone >= 0) ? "+" : "" - paddedZone += padNumber(Math[zone > 0 ? "floor" : "ceil"](zone / 60), 2) + padNumber(Math.abs(zone % 60), 2) - return paddedZone - } - - //取得上午下午 - - function ampmGetter(date, formats) { - return date.getHours() < 12 ? formats.AMPMS[0] : formats.AMPMS[1] - } - - var DATE_FORMATS = { - yyyy: dateGetter("FullYear", 4), - yy: dateGetter("FullYear", 2, 0, true), - y: dateGetter("FullYear", 1), - MMMM: dateStrGetter("Month"), - MMM: dateStrGetter("Month", true), - MM: dateGetter("Month", 2, 1), - M: dateGetter("Month", 1, 1), - dd: dateGetter("Date", 2), - d: dateGetter("Date", 1), - HH: dateGetter("Hours", 2), - H: dateGetter("Hours", 1), - hh: dateGetter("Hours", 2, -12), - h: dateGetter("Hours", 1, -12), - mm: dateGetter("Minutes", 2), - m: dateGetter("Minutes", 1), - ss: dateGetter("Seconds", 2), - s: dateGetter("Seconds", 1), - sss: dateGetter("Milliseconds", 3), - EEEE: dateStrGetter("Day"), - EEE: dateStrGetter("Day", true), - a: ampmGetter, - Z: timeZoneGetter - } - var rdateFormat = /((?:[^yMdHhmsaZE']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z))(.*)/ - var raspnetjson = /^\/Date\((\d+)\)\/$/ - filters.date = function (date, format) { - var locate = filters.date.locate, - text = "", - parts = [], - fn, match - format = format || "mediumDate" - format = locate[format] || format - if (typeof date === "string") { - if (/^\d+$/.test(date)) { - date = toInt(date) - } else if (raspnetjson.test(date)) { - date = +RegExp.$1 - } else { - var trimDate = date.trim() - var dateArray = [0, 0, 0, 0, 0, 0, 0] - var oDate = new Date(0) - //取得年月日 - trimDate = trimDate.replace(/^(\d+)\D(\d+)\D(\d+)/, function (_, a, b, c) { - var array = c.length === 4 ? [c, a, b] : [a, b, c] - dateArray[0] = toInt(array[0]) //å¹´ - dateArray[1] = toInt(array[1]) - 1 //月 - dateArray[2] = toInt(array[2]) //日 - return "" - }) - var dateSetter = oDate.setFullYear - var timeSetter = oDate.setHours - trimDate = trimDate.replace(/[T\s](\d+):(\d+):?(\d+)?\.?(\d)?/, function (_, a, b, c, d) { - dateArray[3] = toInt(a) //小时 - dateArray[4] = toInt(b) //分钟 - dateArray[5] = toInt(c) //秒 - if (d) { //毫秒 - dateArray[6] = Math.round(parseFloat("0." + d) * 1000) - } - return "" - }) - var tzHour = 0 - var tzMin = 0 - trimDate = trimDate.replace(/Z|([+-])(\d\d):?(\d\d)/, function (z, symbol, c, d) { - dateSetter = oDate.setUTCFullYear - timeSetter = oDate.setUTCHours - if (symbol) { - tzHour = toInt(symbol + c) - tzMin = toInt(symbol + d) - } - return "" - }) - - dateArray[3] -= tzHour - dateArray[4] -= tzMin - dateSetter.apply(oDate, dateArray.slice(0, 3)) - timeSetter.apply(oDate, dateArray.slice(3)) - date = oDate - } - } - if (typeof date === "number") { - date = new Date(date) - } - if (avalon.type(date) !== "date") { - return - } - while (format) { - match = rdateFormat.exec(format) - if (match) { - parts = parts.concat(match.slice(1)) - format = parts.pop() - } else { - parts.push(format) - format = null - } - } - parts.forEach(function (value) { - fn = DATE_FORMATS[value] - text += fn ? fn(date, locate) : value.replace(/(^'|'$)/g, "").replace(/''/g, "'") - }) - return text - } - var locate = { - AMPMS: { - 0: "上午", - 1: "下午" - }, - DAY: { - 0: "星期日", - 1: "星期一", - 2: "星期二", - 3: "星期三", - 4: "星期四", - 5: "星期五", - 6: "星期六" - }, - MONTH: { - 0: "1月", - 1: "2月", - 2: "3月", - 3: "4月", - 4: "5月", - 5: "6月", - 6: "7月", - 7: "8月", - 8: "9月", - 9: "10月", - 10: "11月", - 11: "12月" - }, - SHORTDAY: { - "0": "周日", - "1": "周一", - "2": "周二", - "3": "周三", - "4": "周四", - "5": "周五", - "6": "周六" - }, - fullDate: "yå¹´M月d日EEEE", - longDate: "yå¹´M月d日", - medium: "yyyy-M-d H:mm:ss", - mediumDate: "yyyy-M-d", - mediumTime: "H:mm:ss", - "short": "yy-M-d ah:mm", - shortDate: "yy-M-d", - shortTime: "ah:mm" - } - locate.SHORTMONTH = locate.MONTH - filters.date.locate = locate - }// jshint ignore:line - /********************************************************************* - * AMD加载器 * - **********************************************************************/ -//https://www.devbridge.com/articles/understanding-amd-requirejs/ -//http://maxogden.com/nested-dependencies.html - var modules = avalon.modules = { - "domReady!": { - exports: avalon, - state: 3 - }, - "avalon": { - exports: avalon, - state: 4 - } - } -//Object(modules[id]).state拥有如下值 -// undefined 没有定义 -// 1(send) 已经发出请求 -// 2(loading) 已经被执行但还没有执行完成,在这个阶段define方法会被执行 -// 3(loaded) 执行完毕,通过onload/onreadystatechange回调判定,在这个阶段checkDeps方法会执行 -// 4(execute) 其依赖也执行完毕, 值放到exports对象上,在这个阶段fireFactory方法会执行 - modules.exports = modules.avalon - - new function () {// jshint ignore:line - var loadings = [] //正在加载中的模块列表 - var factorys = [] //放置define方法的factory函数 - var rjsext = /\.js$/i - - function makeRequest(name, config) { -//1. 去掉资源前缀 - var res = "js" - name = name.replace(/^(\w+)\!/, function (a, b) { - res = b - return "" - }) - if (res === "ready") { - log("debug: ready!已经被废弃,请使用domReady!") - res = "domReady" - } -//2. 去掉querystring, hash - var query = "" - name = name.replace(rquery, function (a) { - query = a - return "" - }) - //3. 去掉扩展名 - var suffix = "." + res - var ext = /js|css/.test(suffix) ? suffix : "" - name = name.replace(/\.[a-z0-9]+$/g, function (a) { - if (a === suffix) { - ext = a - return "" - } else { - return a - } - }) - var req = avalon.mix({ - query: query, - ext: ext, - res: res, - name: name, - toUrl: toUrl - }, config) - req.toUrl(name) - return req - } - - function fireRequest(req) { - var name = req.name - var res = req.res - //1. 如果该模块已经发出请求,直接返回 - var module = modules[name] - var urlNoQuery = name && req.urlNoQuery - if (module && module.state >= 1) { - return name - } - module = modules[urlNoQuery] - if (module && module.state >= 3) { - innerRequire(module.deps || [], module.factory, urlNoQuery) - return urlNoQuery - } - if (name && !module) { - module = modules[urlNoQuery] = { - id: urlNoQuery, - state: 1 //send - } - var wrap = function (obj) { - resources[res] = obj - obj.load(name, req, function (a) { - if (arguments.length && a !== void 0) { - module.exports = a - } - module.state = 4 - checkDeps() - }) - } - - if (!resources[res]) { - innerRequire([res], wrap) - } else { - wrap(resources[res]) - } - } - return name ? urlNoQuery : res + "!" - } - -//核心API之一 require - var requireQueue = [] - var isUserFirstRequire = false - innerRequire = avalon.require = function (array, factory, parentUrl, defineConfig) { - if (!isUserFirstRequire) { - requireQueue.push(avalon.slice(arguments)) - if (arguments.length <= 2) { - isUserFirstRequire = true - var queue = requireQueue.splice(0, requireQueue.length), args - while (args = queue.shift()) { - innerRequire.apply(null, args) - } - } - return - } - - if (!Array.isArray(array)) { - avalon.error("require方法的第一个参数应为数组 " + array) - } - var deps = [] // 放置所有依赖项的完整路径 - var uniq = createMap() - var id = parentUrl || "callback" + setTimeout("1")// jshint ignore:line - defineConfig = defineConfig || createMap() - defineConfig.baseUrl = kernel.baseUrl - var isBuilt = !!defineConfig.built - if (parentUrl) { - defineConfig.parentUrl = parentUrl.substr(0, parentUrl.lastIndexOf("/")) - defineConfig.mapUrl = parentUrl.replace(rjsext, "") - } - if (isBuilt) { - var req = makeRequest(defineConfig.defineName, defineConfig) - id = req.urlNoQuery - } else { - array.forEach(function (name) { - var req = makeRequest(name, defineConfig) - var url = fireRequest(req) //加载资源,并返回该资源的完整地址 - if (url) { - if (!uniq[url]) { - deps.push(url) - uniq[url] = "司徒正美" //去重 - } - } - }) - } - - var module = modules[id] - if (!module || module.state !== 4) { - modules[id] = { - id: id, - deps: isBuilt ? array.concat() : deps, - factory: factory || noop, - state: 3 - } - } - if (!module) { - //如果此模块是定义在另一个JS文件中, 那必须等该文件加载完毕, 才能放到检测列队中 - loadings.push(id) - } - checkDeps() - } - -//核心API之二 require - innerRequire.define = function (name, deps, factory) { //模块名,依赖列表,模块本身 - if (typeof name !== "string") { - factory = deps - deps = name - name = "anonymous" - } - if (!Array.isArray(deps)) { - factory = deps - deps = [] - } - var config = { - built: !isUserFirstRequire, //用r.js打包后,所有define会放到requirejs之前 - defineName: name - } - var args = [deps, factory, config] - factory.require = function (url) { - args.splice(2, 0, url) - if (modules[url]) { - modules[url].state = 3 //loaded - var isCycle = false - try { - isCycle = checkCycle(modules[url].deps, url) - } catch (e) { - } - if (isCycle) { - avalon.error(url + "模块与之前的模块存在循环依赖,请不要直接用script标签引入" + url + "模块") - } - } - delete factory.require //释放内存 - innerRequire.apply(null, args) //0,1,2 --> 1,2,0 - } -//根据标准,所有遵循W3C标准的浏览器,script标签会按标签的出现顺序执行。 -//老的浏览器中,加载也是按顺序的:一个文件下载完成后,才开始下载下一个文件。 -//较新的浏览器中(IE8+ 、FireFox3.5+ 、Chrome4+ 、Safari4+),为了减小请求时间以优化体验, -//下载可以是并行的,但是执行顺序还是按照标签出现的顺序。 -//但如果script标签是动态插入的, 就未必按照先请求先执行的原则了,目测只有firefox遵守 -//唯一比较一致的是,IE10+及其他标准浏览器,一旦开始解析脚本, 就会一直堵在那里,直接脚本解析完毕 -//亦即,先进入loading阶段的script标签(模块)必然会先进入loaded阶段 - var url = config.built ? "unknown" : getCurrentScript() - if (url) { - var module = modules[url] - if (module) { - module.state = 2 - } - factory.require(url) - } else {//合并前后的safari,合并后的IE6-9走此分支 - factorys.push(factory) - } - } -//核心API之三 require.config(settings) - innerRequire.config = kernel - //核心API之四 define.amd 标识其符合AMD规范 - innerRequire.define.amd = modules - - //==========================对用户配置项进行再加工========================== - var allpaths = kernel["orig.paths"] = createMap() - var allmaps = kernel["orig.map"] = createMap() - var allpackages = kernel["packages"] = [] - var allargs = kernel["orig.args"] = createMap() - avalon.mix(plugins, { - paths: function (hash) { - avalon.mix(allpaths, hash) - kernel.paths = makeIndexArray(allpaths) - }, - map: function (hash) { - avalon.mix(allmaps, hash) - var list = makeIndexArray(allmaps, 1, 1) - avalon.each(list, function (_, item) { - item.val = makeIndexArray(item.val) - }) - kernel.map = list - }, - packages: function (array) { - array = array.concat(allpackages) - var uniq = createMap() - var ret = [] - for (var i = 0, pkg; pkg = array[i++];) { - pkg = typeof pkg === "string" ? {name: pkg} : pkg - var name = pkg.name - if (!uniq[name]) { - var url = joinPath(pkg.location || name, pkg.main || "main") - url = url.replace(rjsext, "") - ret.push(pkg) - uniq[name] = pkg.location = url - pkg.reg = makeMatcher(name) - } - } - kernel.packages = ret.sort() - }, - urlArgs: function (hash) { - if (typeof hash === "string") { - hash = {"*": hash} - } - avalon.mix(allargs, hash) - kernel.urlArgs = makeIndexArray(allargs, 1) - }, - baseUrl: function (url) { - if (!isAbsUrl(url)) { - var baseElement = head.getElementsByTagName("base")[0] - if (baseElement) { - head.removeChild(baseElement) - } - var node = DOC.createElement("a") - node.href = url - url = node.href - if (baseElement) { - head.insertBefore(baseElement, head.firstChild) - } - } - if (url.length > 3) - kernel.baseUrl = url - }, - shim: function (obj) { - for (var i in obj) { - var value = obj[i] - if (Array.isArray(value)) { - value = obj[i] = { - deps: value - } - } - if (!value.exportsFn && (value.exports || value.init)) { - value.exportsFn = makeExports(value) - } - } - kernel.shim = obj - } - - }) - - - //==============================内部方法================================= - function checkCycle(deps, nick) { - //检测是否存在循环依赖 - for (var i = 0, id; id = deps[i++];) { - if (modules[id].state !== 4 && - (id === nick || checkCycle(modules[id].deps, nick))) { - return true - } - } - } - - function checkFail(node, onError) { - var id = trimQuery(node.src) //检测是否死链 - node.onload = node.onerror = null - if (onError) { - setTimeout(function () { - head.removeChild(node) - node = null // 处理旧式IE下的循环引用问题 - }) - log("debug: 加载 " + id + " 失败" + onError + " " + (!modules[id].state)) - } else { - return true - } - } - - function checkDeps() { - //检测此JS模块的依赖是否都已安装完毕,是则安装自身 - loop: for (var i = loadings.length, id; id = loadings[--i];) { - var obj = modules[id], - deps = obj.deps - if (!deps) - continue - for (var j = 0, key; key = deps[j]; j++) { - if (Object(modules[key]).state !== 4) { - continue loop - } - } - //如果deps是空对象或者其依赖的模块的状态都是2 - if (obj.state !== 4) { - loadings.splice(i, 1) //必须先移除再安装,防止在IE下DOM树建完后手动刷新页面,会多次执行它 - fireFactory(obj.id, obj.deps, obj.factory) - checkDeps() //如果成功,则再执行一次,以防有些模块就差本模块没有安装好 - } - } - } - - function loadJS(url, id, callback) { - //通过script节点加载目标模块 - var node = DOC.createElement("script") - node.className = subscribers //让getCurrentScript只处理类名为subscribers的script节点 - node.onload = function () { - var factory = factorys.pop() - factory && factory.require(id) - if (callback) { - callback() - } - log("debug: 已成功加载 " + url) - id && loadings.push(id) - checkDeps() - } - node.onerror = function () { - checkFail(node, true) - } - - head.insertBefore(node, head.firstChild) //chrome下第二个参数不能为null - node.src = url //插入到head的第一个节点前,防止IE6下head标签没闭合前使用appendChild抛错 - log("debug: 正准备加载 " + url) //更重要的是IE6下可以收窄getCurrentScript的寻找范围 - } - - var resources = innerRequire.plugins = { - //三大常用资源插件 js!, css!, text!, ready! - ready: { - load: noop - }, - js: { - load: function (name, req, onLoad) { - var url = req.url - var id = req.urlNoQuery - var shim = kernel.shim[name.replace(rjsext, "")] - if (shim) { //shim机制 - innerRequire(shim.deps || [], function () { - var args = avalon.slice(arguments) - loadJS(url, id, function () { - onLoad(shim.exportsFn ? shim.exportsFn.apply(0, args) : void 0) - }) - }) - } else { - loadJS(url, id) - } - } - }, - css: { - load: function (name, req, onLoad) { - var url = req.url - head.insertAdjacentHTML("afterBegin", '') - log("debug: 已成功加载 " + url) - onLoad() - } - }, - text: { - load: function (name, req, onLoad) { - var url = req.url - var xhr = getXHR() - xhr.onload = function () { - var status = xhr.status; - if (status > 399 && status < 600) { - avalon.error(url + " 对应资源不存在或没有开启 CORS") - } else { - log("debug: 已成功加载 " + url) - onLoad(xhr.responseText) - } - } - xhr.open("GET", url, true) - if ("withCredentials" in xhr) {//这是处理跨域 - xhr.withCredentials = true - } - xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest")//告诉后端这是AJAX请求 - xhr.send() - log("debug: 正准备加载 " + url) - } - } - } - innerRequire.checkDeps = checkDeps - - var rquery = /(\?[^#]*)$/ - - function trimQuery(url) { - return (url || "").replace(rquery, "") - } - - function isAbsUrl(path) { - //http://stackoverflow.com/questions/10687099/how-to-test-if-a-url-string-is-absolute-or-relative - return /^(?:[a-z]+:)?\/\//i.test(String(path)) - } - - - function getCurrentScript() { - // inspireb by https://github.com/samyk/jiagra/blob/master/jiagra.js - var stack - try { - a.b.c() //强制报错,以便捕获e.stack - } catch (e) { //safari5的sourceURL,firefox的fileName,它们的效果与e.stack不一样 - stack = e.stack - } - if (stack) { - /**e.stack最后一行在所有支持的浏览器大致如下: - *chrome23: - * at http://113.93.50.63/data.js:4:1 - *firefox17: - *@http://113.93.50.63/query.js:4 - *opera12:http://www.oldapps.com/opera.php?system=Windows_XP - *@http://113.93.50.63/data.js:4 - *IE10: - * at Global code (http://113.93.50.63/data.js:4:1) - * //firefox4+ 可以用document.currentScript - */ - stack = stack.split(/[@ ]/g).pop() //取得最后一行,最后一个空格或@之后的部分 - stack = stack[0] === "(" ? stack.slice(1, -1) : stack.replace(/\s/, "") //去掉换行符 - return trimQuery(stack.replace(/(:\d+)?:\d+$/i, "")) //去掉行号与或许存在的出错字符起始位置 - } - var nodes = head.getElementsByTagName("script") //只在head标签中寻找 - for (var i = nodes.length, node; node = nodes[--i];) { - if (node.className === subscribers && node.readyState === "interactive") { - var url = node.src - return node.className = trimQuery(url) - } - } - } - - var rcallback = /^callback\d+$/ - - function fireFactory(id, deps, factory) { - var module = Object(modules[id]) - module.state = 4 - for (var i = 0, array = [], d; d = deps[i++];) { - if (d === "exports") { - var obj = module.exports || (module.exports = createMap()) - array.push(obj) - } else { - array.push(modules[d].exports) - } - } - try { - var ret = factory.apply(window, array) - } catch (e) { - log("执行[" + id + "]模块的factory抛错: " + e) - } - if (ret !== void 0) { - module.exports = ret - } - if (rcallback.test(id)) { - delete modules[id] - } - delete module.factory - return ret - } - - function toUrl(id) { - if (id.indexOf(this.res + "!") === 0) { - id = id.slice(this.res.length + 1) //处理define("css!style",[], function(){})的情况 - } - var url = id - //1. 是否命中paths配置项 - var usePath = 0 - var baseUrl = this.baseUrl - var rootUrl = this.parentUrl || baseUrl - eachIndexArray(id, kernel.paths, function (value, key) { - url = url.replace(key, value) - usePath = 1 - }) - //2. 是否命中packages配置项 - if (!usePath) { - eachIndexArray(id, kernel.packages, function (value, key, item) { - url = url.replace(item.name, item.location) - }) - } - //3. 是否命中map配置项 - if (this.mapUrl) { - eachIndexArray(this.mapUrl, kernel.map, function (array) { - eachIndexArray(url, array, function (mdValue, mdKey) { - url = url.replace(mdKey, mdValue) - rootUrl = baseUrl - }) - }) - } - var ext = this.ext - if (ext && usePath && url.slice(-ext.length) === ext) { - url = url.slice(0, -ext.length) - } - //4. 转换为绝对路径 - if (!isAbsUrl(url)) { - rootUrl = this.built || /^\w/.test(url) ? baseUrl : rootUrl - url = joinPath(rootUrl, url) - } - //5. 还原扩展名,query - var urlNoQuery = url + ext - url = urlNoQuery + this.query - //6. 处理urlArgs - eachIndexArray(id, kernel.urlArgs, function (value) { - url += (url.indexOf("?") === -1 ? "?" : "&") + value; - }) - this.url = url - return this.urlNoQuery = urlNoQuery - } - - function makeIndexArray(hash, useStar, part) { - //创建一个经过特殊算法排好序的数组 - var index = hash2array(hash, useStar, part) - index.sort(descSorterByName) - return index - } - - function makeMatcher(prefix) { - return new RegExp('^' + prefix + '(/|$)') - } - - function makeExports(value) { - return function () { - var ret - if (value.init) { - ret = value.init.apply(window, arguments) - } - return ret || (value.exports && getGlobal(value.exports)) - } - } - - - function hash2array(hash, useStar, part) { - var array = []; - for (var key in hash) { - // if (hash.hasOwnProperty(key)) {//hash是由createMap创建没有hasOwnProperty - var item = { - name: key, - val: hash[key] - } - array.push(item) - item.reg = key === "*" && useStar ? /^/ : makeMatcher(key) - if (part && key !== "*") { - item.reg = new RegExp('\/' + key.replace(/^\//, "") + '(/|$)') - } - // } - } - return array - } - - function eachIndexArray(moduleID, array, matcher) { - array = array || [] - for (var i = 0, el; el = array[i++];) { - if (el.reg.test(moduleID)) { - matcher(el.val, el.name, el) - return false - } - } - } - - // 根据元素的name项进行数组字符数逆序的排序函数 - function descSorterByName(a, b) { - var aaa = a.name - var bbb = b.name - if (bbb === "*") { - return -1 - } - if (aaa === "*") { - return 1 - } - return bbb.length - aaa.length - } - - var rdeuce = /\/\w+\/\.\./ - - function joinPath(a, b) { - if (a.charAt(a.length - 1) !== "/") { - a += "/" - } - if (b.slice(0, 2) === "./") { //相对于兄弟路径 - return a + b.slice(2) - } - if (b.slice(0, 2) === "..") { //相对于父路径 - a += b - while (rdeuce.test(a)) { - a = a.replace(rdeuce, "") - } - return a - } - if (b.slice(0, 1) === "/") { - return a + b.slice(1) - } - return a + b - } - - function getGlobal(value) { - if (!value) { - return value - } - var g = window - value.split(".").forEach(function (part) { - g = g[part] - }) - return g - } - - var mainNode = DOC.scripts[DOC.scripts.length - 1] - var dataMain = mainNode.getAttribute("data-main") - if (dataMain) { - plugins.baseUrl(dataMain) - var href = kernel.baseUrl - kernel.baseUrl = href.slice(0, href.lastIndexOf("/") + 1) - loadJS(href.replace(rjsext, "") + ".js") - } else { - var loaderUrl = trimQuery(mainNode.src) - kernel.baseUrl = loaderUrl.slice(0, loaderUrl.lastIndexOf("/") + 1) - } - }// jshint ignore:line - - /********************************************************************* - * DOMReady * - **********************************************************************/ - var readyList = [], isReady - var fireReady = function (fn) { - isReady = true - if (innerRequire) { - modules["domReady!"].state = 4 - innerRequire.checkDeps() - } - while (fn = readyList.shift()) { - fn(avalon) - } - } - - - if (DOC.readyState === "complete") { - setTimeout(fireReady) //如果在domReady之外加载 - } else { - DOC.addEventListener("DOMContentLoaded", fireReady) - } - window.addEventListener("load", fireReady) - avalon.ready = function (fn) { - if (!isReady) { - readyList.push(fn) - } else { - fn(avalon) - } - } - avalon.config({ - loader: true - }) - avalon.ready(function () { - avalon.scan(DOC.body) - }) - -// Register as a named AMD module, since avalon can be concatenated with other -// files that may use define, but not via a proper concatenation script that -// understands anonymous AMD modules. A named AMD is safest and most robust -// way to register. Lowercase avalon is used because AMD module names are -// derived from file names, and Avalon is normally delivered in a lowercase -// file name. Do this after creating the global so that if an AMD module wants -// to call noConflict to hide this version of avalon, it will work. - -// Note that for maximum portability, libraries that are not avalon should -// declare themselves as anonymous modules, and avoid setting a global if an -// AMD loader is present. avalon is a special case. For more information, see -// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon - if (typeof define === "function" && define.amd) { - define("avalon", [], function () { - return avalon - }) - } -// Map over avalon in case of overwrite - var _avalon = window.avalon - avalon.noConflict = function (deep) { - if (deep && window.avalon === avalon) { - window.avalon = _avalon - } - return avalon - } -// Expose avalon identifiers, even in AMD -// and CommonJS for browser emulators - if (noGlobal === void 0) { - window.avalon = avalon - } - - window._injectTer = function (code) { - return eval(code) - } - - return avalon - -})); \ No newline at end of file diff --git a/openo-portal/portal-common/src/main/webapp/common/thirdparty/backstretch/jquery.backstretch.min.js b/openo-portal/portal-common/src/main/webapp/common/thirdparty/backstretch/jquery.backstretch.min.js deleted file mode 100644 index 4b14f7ab..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/thirdparty/backstretch/jquery.backstretch.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/*! Backstretch - v2.0.3 - 2012-11-30 -* http://srobbin.com/jquery-plugins/backstretch/ -* Copyright (c) 2012 Scott Robbin; Licensed MIT */ -(function(e,t,n){"use strict";e.fn.backstretch=function(r,s){return(r===n||r.length===0)&&e.error("No images were supplied for Backstretch"),e(t).scrollTop()===0&&t.scrollTo(0,0),this.each(function(){var t=e(this),n=t.data("backstretch");n&&(s=e.extend(n.options,s),n.destroy(!0)),n=new i(this,r,s),t.data("backstretch",n)})},e.backstretch=function(t,n){return e("body").backstretch(t,n).data("backstretch")},e.expr[":"].backstretch=function(t){return e(t).data("backstretch")!==n},e.fn.backstretch.defaults={centeredX:!0,centeredY:!0,duration:5e3,fade:0};var r={wrap:{left:0,top:0,overflow:"hidden",margin:0,padding:0,height:"100%",width:"100%",zIndex:-999999},img:{position:"absolute",display:"none",margin:0,padding:0,border:"none",width:"auto",height:"auto",maxWidth:"none",zIndex:-999999}},i=function(n,i,o){this.options=e.extend({},e.fn.backstretch.defaults,o||{}),this.images=e.isArray(i)?i:[i],e.each(this.images,function(){e("")[0].src=this}),this.isBody=n===document.body,this.$container=e(n),this.$wrap=e('
    ').css(r.wrap).appendTo(this.$container),this.$root=this.isBody?s?e(t):e(document):this.$container;if(!this.isBody){var u=this.$container.css("position"),a=this.$container.css("zIndex");this.$container.css({position:u==="static"?"relative":u,zIndex:a==="auto"?0:a,background:"none"}),this.$wrap.css({zIndex:-999998})}this.$wrap.css({position:this.isBody&&s?"fixed":"absolute"}),this.index=0,this.show(this.index),e(t).on("resize.backstretch",e.proxy(this.resize,this)).on("orientationchange.backstretch",e.proxy(function(){this.isBody&&t.pageYOffset===0&&(t.scrollTo(0,1),this.resize())},this))};i.prototype={resize:function(){try{var e={left:0,top:0},n=this.isBody?this.$root.width():this.$root.innerWidth(),r=n,i=this.isBody?t.innerHeight?t.innerHeight:this.$root.height():this.$root.innerHeight(),s=r/this.$img.data("ratio"),o;s>=i?(o=(s-i)/2,this.options.centeredY&&(e.top="-"+o+"px")):(s=i,r=s*this.$img.data("ratio"),o=(r-n)/2,this.options.centeredX&&(e.left="-"+o+"px")),this.$wrap.css({width:n,height:i}).find("img:not(.deleteable)").css({width:r,height:s}).css(e)}catch(u){}return this},show:function(t){if(Math.abs(t)>this.images.length-1)return;this.index=t;var n=this,i=n.$wrap.find("img").addClass("deleteable"),s=e.Event("backstretch.show",{relatedTarget:n.$container[0]});return clearInterval(n.interval),n.$img=e("").css(r.img).bind("load",function(t){var r=this.width||e(t.target).width(),o=this.height||e(t.target).height();e(this).data("ratio",r/o),e(this).fadeIn(n.options.speed||n.options.fade,function(){i.remove(),n.paused||n.cycle(),n.$container.trigger(s,n)}),n.resize()}).appendTo(n.$wrap),n.$img.attr("src",n.images[t]),n},next:function(){return this.show(this.index1&&(clearInterval(this.interval),this.interval=setInterval(e.proxy(function(){this.paused||this.next()},this),this.options.duration)),this},destroy:function(n){e(t).off("resize.backstretch orientationchange.backstretch"),clearInterval(this.interval),n||this.$wrap.remove(),this.$container.removeData("backstretch")}};var s=function(){var e=navigator.userAgent,n=navigator.platform,r=e.match(/AppleWebKit\/([0-9]+)/),i=!!r&&r[1],s=e.match(/Fennec\/([0-9]+)/),o=!!s&&s[1],u=e.match(/Opera Mobi\/([0-9]+)/),a=!!u&&u[1],f=e.match(/MSIE ([0-9]+)/),l=!!f&&f[1];return!((n.indexOf("iPhone")>-1||n.indexOf("iPad")>-1||n.indexOf("iPod")>-1)&&i&&i<534||t.operamini&&{}.toString.call(t.operamini)==="[object OperaMini]"||u&&a<7458||e.indexOf("Android")>-1&&i&&i<533||o&&o<6||"palmGetResource"in t&&i&&i<534||e.indexOf("MeeGo")>-1&&e.indexOf("NokiaBrowser/8.5.0")>-1||l&&l<=6)}()})(jQuery,window); \ No newline at end of file diff --git a/openo-portal/portal-common/src/main/webapp/common/thirdparty/bootbox/LICENSE.md b/openo-portal/portal-common/src/main/webapp/common/thirdparty/bootbox/LICENSE.md deleted file mode 100644 index 4c723486..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/thirdparty/bootbox/LICENSE.md +++ /dev/null @@ -1,23 +0,0 @@ -# License - -(The MIT License) - -Copyright (C) 2011-2014 by Nick Payne - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE diff --git a/openo-portal/portal-common/src/main/webapp/common/thirdparty/bootbox/README.md b/openo-portal/portal-common/src/main/webapp/common/thirdparty/bootbox/README.md deleted file mode 100644 index 700fd6f7..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/thirdparty/bootbox/README.md +++ /dev/null @@ -1,91 +0,0 @@ -# Bootbox - Bootstrap powered alert, confirm and flexible dialog boxes - -Please see http://bootboxjs.com for full usage instructions, or head over to http://paynedigital.com/bootbox for -the original writeup about the project. - -## Contact - -The easiest thing is to [find me on twitter @makeusabrew](http://twitter.com/makeusabrew). - -## Contributing - -Please see the [CONTRIBUTING](https://github.com/makeusabrew/bootbox/blob/master/CONTRIBUTING.md) file for guidelines. - -## Running Tests [![Build Status](https://api.travis-ci.org/makeusabrew/bootbox.svg)](http://travis-ci.org/makeusabrew/bootbox) - -Tests are run using [Karma](http://karma-runner.github.io/0.8/index.html) using the Mocha test adapter. -To run the tests yourself, simply run ```npm install``` within the project followed by ```npm test```. -Please note that this will require [PhantomJS](http://phantomjs.org/) being installed and in your path - if -it is not, you may run the tests and capture browsers manually by running ```karma start``` from the root -of the project. - -The project is also hosted on [Travis CI](https://travis-ci.org/makeusabrew/bootbox) - when submitting -pull requests **please** ensure your tests pass as failing requests will be rejected. See the -[CONTRIBUTING](https://github.com/makeusabrew/bootbox/blob/master/CONTRIBUTING.md) file for more information. - -## Building a minified release - -The repository no longer contains a minified bootbox.min.js file - this is now only generated -[for releases](https://github.com/makeusabrew/bootbox/releases). To build your own minified copy -for use in development simply run ```npm install``` if you haven't already, followed by ```grunt uglify```. -This will generate a bootbox.min.js file in your working directory. - -## A note on Bootstrap dependencies - -Bootbox **4.0.0** is the first release to support Bootstrap 3.0.0. - -Bootbox **3.3.0** is the *last* release to support Bootstrap 2.2.x. - -Much more dependency information can be found [on the Bootbox website](http://bootboxjs.com/#dependencies). - -### Roadmap - -The latest major release of Bootbox - 4.0.0 - involved a total rewrite of the -internal code and introduced an entirely new public API. It has not re-implemented -some functionality from the 3.x series as of yet; this will be addressed in the -coming weeks in the form of new minor releases; -[a task list for 4.3.0 is available](https://github.com/makeusabrew/bootbox/issues/220) - -please feel free to add feedback and requests. - -There is no new major (e.g. 5.x) release on the roadmap at present. - -## Latest Release: 4.2.0 - -* Add Swedish locale -* Add Latvian locale -* Add Turkish locale -* Add Hebrew locale -* Add password input type -* Add textarea input type -* Add date input type -* Add time input type -* Add number input type -* Support DOM selectors for container argument -* UMD support -* Better support on mobile devices - -For a full list of releases and changes please see [the changelog](https://github.com/makeusabrew/bootbox/blob/master/CHANGELOG.md). - -## License - -(The MIT License) - -Copyright (C) 2011-2014 by Nick Payne - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE diff --git a/openo-portal/portal-common/src/main/webapp/common/thirdparty/bootbox/bootbox.min.js b/openo-portal/portal-common/src/main/webapp/common/thirdparty/bootbox/bootbox.min.js deleted file mode 100644 index a5d01a50..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/thirdparty/bootbox/bootbox.min.js +++ /dev/null @@ -1,6 +0,0 @@ -/** - * bootbox.js v4.3.0 - * - * http://bootboxjs.com/license.txt - */ -!function(a,b){"use strict";"function"==typeof define&&define.amd?define(["jquery"],b):"object"==typeof exports?module.exports=b(require("jquery")):a.bootbox=b(a.jQuery)}(this,function a(b,c){"use strict";function d(a){var b=q[o.locale];return b?b[a]:q.en[a]}function e(a,c,d){a.stopPropagation(),a.preventDefault();var e=b.isFunction(d)&&d(a)===!1;e||c.modal("hide")}function f(a){var b,c=0;for(b in a)c++;return c}function g(a,c){var d=0;b.each(a,function(a,b){c(a,b,d++)})}function h(a){var c,d;if("object"!=typeof a)throw new Error("Please supply an object of options");if(!a.message)throw new Error("Please specify a message");return a=b.extend({},o,a),a.buttons||(a.buttons={}),a.backdrop=a.backdrop?"static":!1,c=a.buttons,d=f(c),g(c,function(a,e,f){if(b.isFunction(e)&&(e=c[a]={callback:e}),"object"!==b.type(e))throw new Error("button with key "+a+" must be an object");e.label||(e.label=a),e.className||(e.className=2>=d&&f===d-1?"btn-primary":"btn-default")}),a}function i(a,b){var c=a.length,d={};if(1>c||c>2)throw new Error("Invalid argument length");return 2===c||"string"==typeof a[0]?(d[b[0]]=a[0],d[b[1]]=a[1]):d=a[0],d}function j(a,c,d){return b.extend(!0,{},a,i(c,d))}function k(a,b,c,d){var e={className:"bootbox-"+a,buttons:l.apply(null,b)};return m(j(e,d,c),b)}function l(){for(var a={},b=0,c=arguments.length;c>b;b++){var e=arguments[b],f=e.toLowerCase(),g=e.toUpperCase();a[f]={label:d(g)}}return a}function m(a,b){var d={};return g(b,function(a,b){d[b]=!0}),g(a.buttons,function(a){if(d[a]===c)throw new Error("button key "+a+" is not allowed (options are "+b.join("\n")+")")}),a}var n={dialog:"",header:"",footer:"",closeButton:"",form:"
    ",inputs:{text:"",textarea:"",email:"",select:"",checkbox:"
    ",date:"",time:"",number:"",password:""}},o={locale:"en",backdrop:!0,animate:!0,className:null,closeButton:!0,show:!0,container:"body"},p={};p.alert=function(){var a;if(a=k("alert",["ok"],["message","callback"],arguments),a.callback&&!b.isFunction(a.callback))throw new Error("alert requires callback property to be a function when provided");return a.buttons.ok.callback=a.onEscape=function(){return b.isFunction(a.callback)?a.callback():!0},p.dialog(a)},p.confirm=function(){var a;if(a=k("confirm",["cancel","confirm"],["message","callback"],arguments),a.buttons.cancel.callback=a.onEscape=function(){return a.callback(!1)},a.buttons.confirm.callback=function(){return a.callback(!0)},!b.isFunction(a.callback))throw new Error("confirm requires a callback");return p.dialog(a)},p.prompt=function(){var a,d,e,f,h,i,k;if(f=b(n.form),d={className:"bootbox-prompt",buttons:l("cancel","confirm"),value:"",inputType:"text"},a=m(j(d,arguments,["title","callback"]),["cancel","confirm"]),i=a.show===c?!0:a.show,a.message=f,a.buttons.cancel.callback=a.onEscape=function(){return a.callback(null)},a.buttons.confirm.callback=function(){var c;switch(a.inputType){case"text":case"textarea":case"email":case"select":case"date":case"time":case"number":case"password":c=h.val();break;case"checkbox":var d=h.find("input:checked");c=[],g(d,function(a,d){c.push(b(d).val())})}return a.callback(c)},a.show=!1,!a.title)throw new Error("prompt requires a title");if(!b.isFunction(a.callback))throw new Error("prompt requires a callback");if(!n.inputs[a.inputType])throw new Error("invalid prompt type");switch(h=b(n.inputs[a.inputType]),a.inputType){case"text":case"textarea":case"email":case"date":case"time":case"number":case"password":h.val(a.value);break;case"select":var o={};if(k=a.inputOptions||[],!k.length)throw new Error("prompt with select requires options");g(k,function(a,d){var e=h;if(d.value===c||d.text===c)throw new Error("given options in wrong format");d.group&&(o[d.group]||(o[d.group]=b("").attr("label",d.group)),e=o[d.group]),e.append("")}),g(o,function(a,b){h.append(b)}),h.val(a.value);break;case"checkbox":var q=b.isArray(a.value)?a.value:[a.value];if(k=a.inputOptions||[],!k.length)throw new Error("prompt with checkbox requires options");if(!k[0].value||!k[0].text)throw new Error("given options in wrong format");h=b("
    "),g(k,function(c,d){var e=b(n.inputs[a.inputType]);e.find("input").attr("value",d.value),e.find("label").append(d.text),g(q,function(a,b){b===d.value&&e.find("input").prop("checked",!0)}),h.append(e)})}return a.placeholder&&h.attr("placeholder",a.placeholder),a.pattern&&h.attr("pattern",a.pattern),f.append(h),f.on("submit",function(a){a.preventDefault(),a.stopPropagation(),e.find(".btn-primary").click()}),e=p.dialog(a),e.off("shown.bs.modal"),e.on("shown.bs.modal",function(){h.focus()}),i===!0&&e.modal("show"),e},p.dialog=function(a){a=h(a);var c=b(n.dialog),d=c.find(".modal-dialog"),f=c.find(".modal-body"),i=a.buttons,j="",k={onEscape:a.onEscape};if(g(i,function(a,b){j+="",k[a]=b.callback}),f.find(".bootbox-body").html(a.message),a.animate===!0&&c.addClass("fade"),a.className&&c.addClass(a.className),"large"===a.size&&d.addClass("modal-lg"),"small"===a.size&&d.addClass("modal-sm"),a.title&&f.before(n.header),a.closeButton){var l=b(n.closeButton);a.title?c.find(".modal-header").prepend(l):l.css("margin-top","-10px").prependTo(f)}return a.title&&c.find(".modal-title").html(a.title),j.length&&(f.after(n.footer),c.find(".modal-footer").html(j)),c.on("hidden.bs.modal",function(a){a.target===this&&c.remove()}),c.on("shown.bs.modal",function(){c.find(".btn-primary:first").focus()}),c.on("escape.close.bb",function(a){k.onEscape&&e(a,c,k.onEscape)}),c.on("click",".modal-footer button",function(a){var d=b(this).data("bb-handler");e(a,c,k[d])}),c.on("click",".bootbox-close-button",function(a){e(a,c,k.onEscape)}),c.on("keyup",function(a){27===a.which&&c.trigger("escape.close.bb")}),b(a.container).append(c),c.modal({backdrop:a.backdrop,keyboard:!1,show:!1}),a.show&&c.modal("show"),c},p.setDefaults=function(){var a={};2===arguments.length?a[arguments[0]]=arguments[1]:a=arguments[0],b.extend(o,a)},p.hideAll=function(){return b(".bootbox").modal("hide"),p};var q={br:{OK:"OK",CANCEL:"Cancelar",CONFIRM:"Sim"},cs:{OK:"OK",CANCEL:"Zrušit",CONFIRM:"Potvrdit"},da:{OK:"OK",CANCEL:"Annuller",CONFIRM:"Accepter"},de:{OK:"OK",CANCEL:"Abbrechen",CONFIRM:"Akzeptieren"},el:{OK:"Εντάξει",CANCEL:"Ακύρωση",CONFIRM:"Επιβεβαίωση"},en:{OK:"OK",CANCEL:"Cancel",CONFIRM:"OK"},es:{OK:"OK",CANCEL:"Cancelar",CONFIRM:"Aceptar"},et:{OK:"OK",CANCEL:"Katkesta",CONFIRM:"OK"},fi:{OK:"OK",CANCEL:"Peruuta",CONFIRM:"OK"},fr:{OK:"OK",CANCEL:"Annuler",CONFIRM:"D'accord"},he:{OK:"אישור",CANCEL:"ביטול",CONFIRM:"אישור"},id:{OK:"OK",CANCEL:"Batal",CONFIRM:"OK"},it:{OK:"OK",CANCEL:"Annulla",CONFIRM:"Conferma"},ja:{OK:"OK",CANCEL:"キャンセル",CONFIRM:"確認"},lt:{OK:"Gerai",CANCEL:"Atšaukti",CONFIRM:"Patvirtinti"},lv:{OK:"Labi",CANCEL:"Atcelt",CONFIRM:"Apstiprināt"},nl:{OK:"OK",CANCEL:"Annuleren",CONFIRM:"Accepteren"},no:{OK:"OK",CANCEL:"Avbryt",CONFIRM:"OK"},pl:{OK:"OK",CANCEL:"Anuluj",CONFIRM:"Potwierdź"},pt:{OK:"OK",CANCEL:"Cancelar",CONFIRM:"Confirmar"},ru:{OK:"OK",CANCEL:"Отмена",CONFIRM:"Применить"},sv:{OK:"OK",CANCEL:"Avbryt",CONFIRM:"OK"},tr:{OK:"Tamam",CANCEL:"İptal",CONFIRM:"Onayla"},zh_CN:{OK:"OK",CANCEL:"取消",CONFIRM:"确认"},zh_TW:{OK:"OK",CANCEL:"取消",CONFIRM:"確認"}};return p.init=function(c){return a(c||b)},p}); \ No newline at end of file diff --git a/openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-daterangepicker/daterangepicker-bs3.css b/openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-daterangepicker/daterangepicker-bs3.css deleted file mode 100644 index 8df7b075..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-daterangepicker/daterangepicker-bs3.css +++ /dev/null @@ -1,319 +0,0 @@ -/*! - * Stylesheet for the Date Range Picker, for use with Bootstrap 3.x - * - * Copyright 2013-2015 Dan Grossman ( http://www.dangrossman.info ) - * Licensed under the MIT license. See http://www.opensource.org/licenses/mit-license.php - * - * Built for http://www.improvely.com - */ - - .daterangepicker.dropdown-menu { - max-width: none; - z-index: 3000; -} - -.daterangepicker.opensleft .ranges, .daterangepicker.opensleft .calendar { - float: left; - margin: 4px; -} - -.daterangepicker.opensright .ranges, .daterangepicker.opensright .calendar, -.daterangepicker.openscenter .ranges, .daterangepicker.openscenter .calendar { - float: right; - margin: 4px; -} - -.daterangepicker.single .ranges, .daterangepicker.single .calendar { - float: none; -} - -.daterangepicker .ranges { - width: 165px; - text-align: left; -} - -.daterangepicker .ranges .range_inputs>div { - float: left; -} - -.daterangepicker .ranges .range_inputs>div:nth-child(2) { - padding-left: 11px; -} - -.daterangepicker .calendar { - display: none; - max-width: 270px; -} - -.daterangepicker.show-calendar .calendar { - display: block; -} - -.daterangepicker .calendar.single .calendar-date { - border: none; -} - -.daterangepicker .calendar th, .daterangepicker .calendar td { - font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; - white-space: nowrap; - text-align: center; - min-width: 32px; -} - -.daterangepicker .daterangepicker_start_input label, -.daterangepicker .daterangepicker_end_input label { - color: #333; - display: block; - font-size: 11px; - font-weight: normal; - height: 20px; - line-height: 20px; - margin-bottom: 2px; - text-shadow: #fff 1px 1px 0px; - text-transform: uppercase; - width: 74px; -} - -.daterangepicker .ranges input { - font-size: 11px; -} - -.daterangepicker .ranges .input-mini { - border: 1px solid #ccc; - border-radius: 4px; - color: #555; - display: block; - font-size: 11px; - height: 30px; - line-height: 30px; - vertical-align: middle; - margin: 0 0 10px 0; - padding: 0 6px; - width: 77px; -} - -.daterangepicker .ranges ul { - list-style: none; - margin: 0; - padding: 0; -} - -.daterangepicker .ranges li { - font-size: 13px; - background: #f5f5f5; - border: 1px solid #f5f5f5; - color: #08c; - padding: 3px 12px; - margin-bottom: 8px; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - border-radius: 5px; - cursor: pointer; -} - -.daterangepicker .ranges li.active, .daterangepicker .ranges li:hover { - background: #08c; - border: 1px solid #08c; - color: #fff; -} - -.daterangepicker .calendar-date { - border: 1px solid #ddd; - padding: 4px; - border-radius: 4px; - background: #fff; -} - -.daterangepicker .calendar-time { - text-align: center; - margin: 8px auto 0 auto; - line-height: 30px; -} - -.daterangepicker { - position: absolute; - background: #fff; - top: 100px; - left: 20px; - padding: 4px; - margin-top: 1px; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} - -.daterangepicker.opensleft:before { - position: absolute; - top: -7px; - right: 9px; - display: inline-block; - border-right: 7px solid transparent; - border-bottom: 7px solid #ccc; - border-left: 7px solid transparent; - border-bottom-color: rgba(0, 0, 0, 0.2); - content: ''; -} - -.daterangepicker.opensleft:after { - position: absolute; - top: -6px; - right: 10px; - display: inline-block; - border-right: 6px solid transparent; - border-bottom: 6px solid #fff; - border-left: 6px solid transparent; - content: ''; -} - -.daterangepicker.openscenter:before { - position: absolute; - top: -7px; - left: 0; - right: 0; - width: 0; - margin-left: auto; - margin-right: auto; - display: inline-block; - border-right: 7px solid transparent; - border-bottom: 7px solid #ccc; - border-left: 7px solid transparent; - border-bottom-color: rgba(0, 0, 0, 0.2); - content: ''; -} - -.daterangepicker.openscenter:after { - position: absolute; - top: -6px; - left: 0; - right: 0; - width: 0; - margin-left: auto; - margin-right: auto; - display: inline-block; - border-right: 6px solid transparent; - border-bottom: 6px solid #fff; - border-left: 6px solid transparent; - content: ''; -} - -.daterangepicker.opensright:before { - position: absolute; - top: -7px; - left: 9px; - display: inline-block; - border-right: 7px solid transparent; - border-bottom: 7px solid #ccc; - border-left: 7px solid transparent; - border-bottom-color: rgba(0, 0, 0, 0.2); - content: ''; -} - -.daterangepicker.opensright:after { - position: absolute; - top: -6px; - left: 10px; - display: inline-block; - border-right: 6px solid transparent; - border-bottom: 6px solid #fff; - border-left: 6px solid transparent; - content: ''; -} - -.daterangepicker table { - width: 100%; - margin: 0; -} - -.daterangepicker td, .daterangepicker th { - text-align: center; - width: 20px; - height: 20px; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - cursor: pointer; - white-space: nowrap; -} - -.daterangepicker td.off { - color: #999; -} - -.daterangepicker td.disabled, .daterangepicker option.disabled { - color: #999; -} - -.daterangepicker td.available:hover, .daterangepicker th.available:hover { - background: #eee; -} - -.daterangepicker td.in-range { - background: #ebf4f8; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} - -.daterangepicker td.start-date { - -webkit-border-radius: 4px 0 0 4px; - -moz-border-radius: 4px 0 0 4px; - border-radius: 4px 0 0 4px; -} - -.daterangepicker td.end-date { - -webkit-border-radius: 0 4px 4px 0; - -moz-border-radius: 0 4px 4px 0; - border-radius: 0 4px 4px 0; -} - -.daterangepicker td.start-date.end-date { - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} - -.daterangepicker td.active, .daterangepicker td.active:hover { - background-color: #357ebd; - border-color: #3071a9; - color: #fff; -} - -.daterangepicker td.week, .daterangepicker th.week { - font-size: 80%; - color: #ccc; -} - -.daterangepicker select.monthselect, .daterangepicker select.yearselect { - font-size: 12px; - padding: 1px; - height: auto; - margin: 0; - cursor: default; -} - -.daterangepicker select.monthselect { - margin-right: 2%; - width: 56%; -} - -.daterangepicker select.yearselect { - width: 40%; -} - -.daterangepicker select.hourselect, .daterangepicker select.minuteselect, .daterangepicker select.secondselect, .daterangepicker select.ampmselect { - width: 50px; - margin-bottom: 0; -} - -.daterangepicker_start_input { - float: left; -} - -.daterangepicker_end_input { - float: left; - padding-left: 11px -} - -.daterangepicker th.month { - width: auto; -} diff --git a/openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-daterangepicker/daterangepicker.js b/openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-daterangepicker/daterangepicker.js deleted file mode 100644 index e2bc86d7..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-daterangepicker/daterangepicker.js +++ /dev/null @@ -1,1257 +0,0 @@ -/** -* @version: 1.3.17 -* @author: Dan Grossman http://www.dangrossman.info/ -* @date: 2014-11-25 -* @copyright: Copyright (c) 2012-2014 Dan Grossman. All rights reserved. -* @license: Licensed under the MIT license. See http://www.opensource.org/licenses/mit-license.php -* @website: http://www.improvely.com/ -*/ - -(function(root, factory) { - - if (typeof define === 'function' && define.amd) { - define(['moment', 'jquery', 'exports'], function(momentjs, $, exports) { - root.daterangepicker = factory(root, exports, momentjs, $); - }); - - } else if (typeof exports !== 'undefined') { - var momentjs = require('moment'); - var jQuery; - try { - jQuery = require('jquery'); - } catch (err) { - jQuery = window.jQuery; - if (!jQuery) throw new Error('jQuery dependency not found'); - } - - factory(root, exports, momentjs, jQuery); - - // Finally, as a browser global. - } else { - root.daterangepicker = factory(root, {}, root.moment, (root.jQuery || root.Zepto || root.ender || root.$)); - } - -}(this, function(root, daterangepicker, moment, $) { - - var DateRangePicker = function (element, options, cb) { - - // by default, the daterangepicker element is placed at the bottom of HTML body - this.parentEl = 'body'; - - //element that triggered the date range picker - this.element = $(element); - - //tracks visible state - this.isShowing = false; - - //create the picker HTML object - var DRPTemplate = ''; - - //custom options - if (typeof options !== 'object' || options === null) - options = {}; - - this.parentEl = (typeof options === 'object' && options.parentEl && $(options.parentEl).length) ? $(options.parentEl) : $(this.parentEl); - this.container = $(DRPTemplate).appendTo(this.parentEl); - - this.setOptions(options, cb); - - //apply CSS classes and labels to buttons - var c = this.container; - $.each(this.buttonClasses, function (idx, val) { - c.find('button').addClass(val); - }); - this.container.find('.daterangepicker_start_input label').html(this.locale.fromLabel); - this.container.find('.daterangepicker_end_input label').html(this.locale.toLabel); - if (this.applyClass.length) - this.container.find('.applyBtn').addClass(this.applyClass); - if (this.cancelClass.length) - this.container.find('.cancelBtn').addClass(this.cancelClass); - this.container.find('.applyBtn').html(this.locale.applyLabel); - this.container.find('.cancelBtn').html(this.locale.cancelLabel); - - //event listeners - - this.container.find('.calendar') - .on('click.daterangepicker', '.prev', $.proxy(this.clickPrev, this)) - .on('click.daterangepicker', '.next', $.proxy(this.clickNext, this)) - .on('click.daterangepicker', 'td.available', $.proxy(this.clickDate, this)) - .on('mouseenter.daterangepicker', 'td.available', $.proxy(this.hoverDate, this)) - .on('mouseleave.daterangepicker', 'td.available', $.proxy(this.updateFormInputs, this)) - .on('change.daterangepicker', 'select.yearselect', $.proxy(this.updateMonthYear, this)) - .on('change.daterangepicker', 'select.monthselect', $.proxy(this.updateMonthYear, this)) - .on('change.daterangepicker', 'select.hourselect,select.minuteselect,select.secondselect,select.ampmselect', $.proxy(this.updateTime, this)); - - this.container.find('.ranges') - .on('click.daterangepicker', 'button.applyBtn', $.proxy(this.clickApply, this)) - .on('click.daterangepicker', 'button.cancelBtn', $.proxy(this.clickCancel, this)) - .on('click.daterangepicker', '.daterangepicker_start_input,.daterangepicker_end_input', $.proxy(this.showCalendars, this)) - .on('change.daterangepicker', '.daterangepicker_start_input,.daterangepicker_end_input', $.proxy(this.inputsChanged, this)) - .on('keydown.daterangepicker', '.daterangepicker_start_input,.daterangepicker_end_input', $.proxy(this.inputsKeydown, this)) - .on('click.daterangepicker', 'li', $.proxy(this.clickRange, this)) - .on('mouseenter.daterangepicker', 'li', $.proxy(this.enterRange, this)) - .on('mouseleave.daterangepicker', 'li', $.proxy(this.updateFormInputs, this)); - - if (this.element.is('input')) { - this.element.on({ - 'click.daterangepicker': $.proxy(this.show, this), - 'focus.daterangepicker': $.proxy(this.show, this), - 'keyup.daterangepicker': $.proxy(this.updateFromControl, this) - }); - } else { - this.element.on('click.daterangepicker', $.proxy(this.toggle, this)); - } - - }; - - DateRangePicker.prototype = { - - constructor: DateRangePicker, - - setOptions: function(options, callback) { - - this.startDate = moment().startOf('day'); - this.endDate = moment().endOf('day'); - this.timeZone = moment().zone(); - this.minDate = false; - this.maxDate = false; - this.dateLimit = false; - - this.showDropdowns = false; - this.showWeekNumbers = false; - this.timePicker = false; - this.timePickerSeconds = false; - this.timePickerIncrement = 30; - this.timePicker12Hour = true; - this.singleDatePicker = false; - this.ranges = {}; - - this.opens = 'right'; - if (this.element.hasClass('pull-right')) - this.opens = 'left'; - - this.buttonClasses = ['btn', 'btn-small btn-sm']; - this.applyClass = 'btn-success'; - this.cancelClass = 'btn-default'; - - this.format = 'MM/DD/YYYY'; - this.separator = ' - '; - - this.locale = { - applyLabel: 'Apply', - cancelLabel: 'Cancel', - fromLabel: 'From', - toLabel: 'To', - weekLabel: 'W', - customRangeLabel: 'Custom Range', - daysOfWeek: moment.weekdaysMin(), - monthNames: moment.monthsShort(), - firstDay: moment.localeData()._week.dow - }; - - this.cb = function () { }; - - if (typeof options.format === 'string') - this.format = options.format; - - if (typeof options.separator === 'string') - this.separator = options.separator; - - if (typeof options.startDate === 'string') - this.startDate = moment(options.startDate, this.format); - - if (typeof options.endDate === 'string') - this.endDate = moment(options.endDate, this.format); - - if (typeof options.minDate === 'string') - this.minDate = moment(options.minDate, this.format); - - if (typeof options.maxDate === 'string') - this.maxDate = moment(options.maxDate, this.format); - - if (typeof options.startDate === 'object') - this.startDate = moment(options.startDate); - - if (typeof options.endDate === 'object') - this.endDate = moment(options.endDate); - - if (typeof options.minDate === 'object') - this.minDate = moment(options.minDate); - - if (typeof options.maxDate === 'object') - this.maxDate = moment(options.maxDate); - - if (typeof options.applyClass === 'string') - this.applyClass = options.applyClass; - - if (typeof options.cancelClass === 'string') - this.cancelClass = options.cancelClass; - - if (typeof options.dateLimit === 'object') - this.dateLimit = options.dateLimit; - - if (typeof options.locale === 'object') { - - if (typeof options.locale.daysOfWeek === 'object') { - // Create a copy of daysOfWeek to avoid modification of original - // options object for reusability in multiple daterangepicker instances - this.locale.daysOfWeek = options.locale.daysOfWeek.slice(); - } - - if (typeof options.locale.monthNames === 'object') { - this.locale.monthNames = options.locale.monthNames.slice(); - } - - if (typeof options.locale.firstDay === 'number') { - this.locale.firstDay = options.locale.firstDay; - } - - if (typeof options.locale.applyLabel === 'string') { - this.locale.applyLabel = options.locale.applyLabel; - } - - if (typeof options.locale.cancelLabel === 'string') { - this.locale.cancelLabel = options.locale.cancelLabel; - } - - if (typeof options.locale.fromLabel === 'string') { - this.locale.fromLabel = options.locale.fromLabel; - } - - if (typeof options.locale.toLabel === 'string') { - this.locale.toLabel = options.locale.toLabel; - } - - if (typeof options.locale.weekLabel === 'string') { - this.locale.weekLabel = options.locale.weekLabel; - } - - if (typeof options.locale.customRangeLabel === 'string') { - this.locale.customRangeLabel = options.locale.customRangeLabel; - } - } - - if (typeof options.opens === 'string') - this.opens = options.opens; - - if (typeof options.showWeekNumbers === 'boolean') { - this.showWeekNumbers = options.showWeekNumbers; - } - - if (typeof options.buttonClasses === 'string') { - this.buttonClasses = [options.buttonClasses]; - } - - if (typeof options.buttonClasses === 'object') { - this.buttonClasses = options.buttonClasses; - } - - if (typeof options.showDropdowns === 'boolean') { - this.showDropdowns = options.showDropdowns; - } - - if (typeof options.singleDatePicker === 'boolean') { - this.singleDatePicker = options.singleDatePicker; - if (this.singleDatePicker) { - this.endDate = this.startDate.clone(); - } - } - - if (typeof options.timePicker === 'boolean') { - this.timePicker = options.timePicker; - } - - if (typeof options.timePickerSeconds === 'boolean') { - this.timePickerSeconds = options.timePickerSeconds; - } - - if (typeof options.timePickerIncrement === 'number') { - this.timePickerIncrement = options.timePickerIncrement; - } - - if (typeof options.timePicker12Hour === 'boolean') { - this.timePicker12Hour = options.timePicker12Hour; - } - - // update day names order to firstDay - if (this.locale.firstDay != 0) { - var iterator = this.locale.firstDay; - while (iterator > 0) { - this.locale.daysOfWeek.push(this.locale.daysOfWeek.shift()); - iterator--; - } - } - - var start, end, range; - - //if no start/end dates set, check if an input element contains initial values - if (typeof options.startDate === 'undefined' && typeof options.endDate === 'undefined') { - if ($(this.element).is('input[type=text]')) { - var val = $(this.element).val(), - split = val.split(this.separator); - - start = end = null; - - if (split.length == 2) { - start = moment(split[0], this.format); - end = moment(split[1], this.format); - } else if (this.singleDatePicker && val !== "") { - start = moment(val, this.format); - end = moment(val, this.format); - } - if (start !== null && end !== null) { - this.startDate = start; - this.endDate = end; - } - } - } - - // bind the time zone used to build the calendar to either the timeZone passed in through the options or the zone of the startDate (which will be the local time zone by default) - if (typeof options.timeZone === 'string' || typeof options.timeZone === 'number') { - this.timeZone = options.timeZone; - this.startDate.zone(this.timeZone); - this.endDate.zone(this.timeZone); - } else { - this.timeZone = moment(this.startDate).zone(); - } - - if (typeof options.ranges === 'object') { - for (range in options.ranges) { - - if (typeof options.ranges[range][0] === 'string') - start = moment(options.ranges[range][0], this.format); - else - start = moment(options.ranges[range][0]); - - if (typeof options.ranges[range][1] === 'string') - end = moment(options.ranges[range][1], this.format); - else - end = moment(options.ranges[range][1]); - - // If we have a min/max date set, bound this range - // to it, but only if it would otherwise fall - // outside of the min/max. - if (this.minDate && start.isBefore(this.minDate)) - start = moment(this.minDate); - - if (this.maxDate && end.isAfter(this.maxDate)) - end = moment(this.maxDate); - - // If the end of the range is before the minimum (if min is set) OR - // the start of the range is after the max (also if set) don't display this - // range option. - if ((this.minDate && end.isBefore(this.minDate)) || (this.maxDate && start.isAfter(this.maxDate))) { - continue; - } - - this.ranges[range] = [start, end]; - } - - var list = '
      '; - for (range in this.ranges) { - list += '
    • ' + range + '
    • '; - } - list += '
    • ' + this.locale.customRangeLabel + '
    • '; - list += '
    '; - this.container.find('.ranges ul').remove(); - this.container.find('.ranges').prepend(list); - } - - if (typeof callback === 'function') { - this.cb = callback; - } - - if (!this.timePicker) { - this.startDate = this.startDate.startOf('day'); - this.endDate = this.endDate.endOf('day'); - } - - if (this.singleDatePicker) { - this.opens = 'right'; - this.container.addClass('single'); - this.container.find('.calendar.right').show(); - this.container.find('.calendar.left').hide(); - if (!this.timePicker) { - this.container.find('.ranges').hide(); - } else { - this.container.find('.ranges .daterangepicker_start_input, .ranges .daterangepicker_end_input').hide(); - } - if (!this.container.find('.calendar.right').hasClass('single')) - this.container.find('.calendar.right').addClass('single'); - } else { - this.container.removeClass('single'); - this.container.find('.calendar.right').removeClass('single'); - this.container.find('.ranges').show(); - } - - this.oldStartDate = this.startDate.clone(); - this.oldEndDate = this.endDate.clone(); - this.oldChosenLabel = this.chosenLabel; - - this.leftCalendar = { - month: moment([this.startDate.year(), this.startDate.month(), 1, this.startDate.hour(), this.startDate.minute(), this.startDate.second()]), - calendar: [] - }; - - this.rightCalendar = { - month: moment([this.endDate.year(), this.endDate.month(), 1, this.endDate.hour(), this.endDate.minute(), this.endDate.second()]), - calendar: [] - }; - - if (this.opens == 'right' || this.opens == 'center') { - //swap calendar positions - var first = this.container.find('.calendar.first'); - var second = this.container.find('.calendar.second'); - - if (second.hasClass('single')) { - second.removeClass('single'); - first.addClass('single'); - } - - first.removeClass('left').addClass('right'); - second.removeClass('right').addClass('left'); - - if (this.singleDatePicker) { - first.show(); - second.hide(); - } - } - - if (typeof options.ranges === 'undefined' && !this.singleDatePicker) { - this.container.addClass('show-calendar'); - } - - this.container.addClass('opens' + this.opens); - - this.updateView(); - this.updateCalendars(); - - }, - - setStartDate: function(startDate) { - if (typeof startDate === 'string') - this.startDate = moment(startDate, this.format).zone(this.timeZone); - - if (typeof startDate === 'object') - this.startDate = moment(startDate); - - if (!this.timePicker) - this.startDate = this.startDate.startOf('day'); - - this.oldStartDate = this.startDate.clone(); - - this.updateView(); - this.updateCalendars(); - this.updateInputText(); - }, - - setEndDate: function(endDate) { - if (typeof endDate === 'string') - this.endDate = moment(endDate, this.format).zone(this.timeZone); - - if (typeof endDate === 'object') - this.endDate = moment(endDate); - - if (!this.timePicker) - this.endDate = this.endDate.endOf('day'); - - this.oldEndDate = this.endDate.clone(); - - this.updateView(); - this.updateCalendars(); - this.updateInputText(); - }, - - updateView: function () { - this.leftCalendar.month.month(this.startDate.month()).year(this.startDate.year()).hour(this.startDate.hour()).minute(this.startDate.minute()); - this.rightCalendar.month.month(this.endDate.month()).year(this.endDate.year()).hour(this.endDate.hour()).minute(this.endDate.minute()); - this.updateFormInputs(); - }, - - updateFormInputs: function () { - this.container.find('input[name=daterangepicker_start]').val(this.startDate.format(this.format)); - this.container.find('input[name=daterangepicker_end]').val(this.endDate.format(this.format)); - - if (this.startDate.isSame(this.endDate) || this.startDate.isBefore(this.endDate)) { - this.container.find('button.applyBtn').removeAttr('disabled'); - } else { - this.container.find('button.applyBtn').attr('disabled', 'disabled'); - } - }, - - updateFromControl: function () { - if (!this.element.is('input')) return; - if (!this.element.val().length) return; - - var dateString = this.element.val().split(this.separator), - start = null, - end = null; - - if(dateString.length === 2) { - start = moment(dateString[0], this.format).zone(this.timeZone); - end = moment(dateString[1], this.format).zone(this.timeZone); - } - - if (this.singleDatePicker || start === null || end === null) { - start = moment(this.element.val(), this.format).zone(this.timeZone); - end = start; - } - - if (end.isBefore(start)) return; - - this.oldStartDate = this.startDate.clone(); - this.oldEndDate = this.endDate.clone(); - - this.startDate = start; - this.endDate = end; - - if (!this.startDate.isSame(this.oldStartDate) || !this.endDate.isSame(this.oldEndDate)) - this.notify(); - - this.updateCalendars(); - }, - - notify: function () { - this.updateView(); - this.cb(this.startDate, this.endDate, this.chosenLabel); - }, - - move: function () { - var parentOffset = { top: 0, left: 0 }; - var parentRightEdge = $(window).width(); - if (!this.parentEl.is('body')) { - parentOffset = { - top: this.parentEl.offset().top - this.parentEl.scrollTop(), - left: this.parentEl.offset().left - this.parentEl.scrollLeft() - }; - parentRightEdge = this.parentEl[0].clientWidth + this.parentEl.offset().left; - } - - if (this.opens == 'left') { - this.container.css({ - top: this.element.offset().top + this.element.outerHeight() - parentOffset.top, - right: parentRightEdge - this.element.offset().left - this.element.outerWidth(), - left: 'auto' - }); - if (this.container.offset().left < 0) { - this.container.css({ - right: 'auto', - left: 9 - }); - } - } else if (this.opens == 'center') { - this.container.css({ - top: this.element.offset().top + this.element.outerHeight() - parentOffset.top, - left: this.element.offset().left - parentOffset.left + this.element.outerWidth() / 2 - - this.container.outerWidth() / 2, - right: 'auto' - }); - if (this.container.offset().left < 0) { - this.container.css({ - right: 'auto', - left: 9 - }); - } - } else { - this.container.css({ - top: this.element.offset().top + this.element.outerHeight() - parentOffset.top, - left: this.element.offset().left - parentOffset.left, - right: 'auto' - }); - if (this.container.offset().left + this.container.outerWidth() > $(window).width()) { - this.container.css({ - left: 'auto', - right: 0 - }); - } - } - }, - - toggle: function (e) { - if (this.element.hasClass('active')) { - this.hide(); - } else { - this.show(); - } - }, - - show: function (e) { - if (this.isShowing) return; - - this.element.addClass('active'); - this.container.show(); - this.move(); - - // Create a click proxy that is private to this instance of datepicker, for unbinding - this._outsideClickProxy = $.proxy(function (e) { this.outsideClick(e); }, this); - // Bind global datepicker mousedown for hiding and - $(document) - .on('mousedown.daterangepicker', this._outsideClickProxy) - // also support mobile devices - .on('touchend.daterangepicker', this._outsideClickProxy) - // also explicitly play nice with Bootstrap dropdowns, which stopPropagation when clicking them - .on('click.daterangepicker', '[data-toggle=dropdown]', this._outsideClickProxy) - // and also close when focus changes to outside the picker (eg. tabbing between controls) - .on('focusin.daterangepicker', this._outsideClickProxy); - - this.isShowing = true; - this.element.trigger('show.daterangepicker', this); - }, - - outsideClick: function (e) { - var target = $(e.target); - // if the page is clicked anywhere except within the daterangerpicker/button - // itself then call this.hide() - if ( - // ie modal dialog fix - e.type == "focusin" || - target.closest(this.element).length || - target.closest(this.container).length || - target.closest('.calendar-date').length - ) return; - this.hide(); - }, - - hide: function (e) { - if (!this.isShowing) return; - - $(document) - .off('.daterangepicker'); - - this.element.removeClass('active'); - this.container.hide(); - - if (!this.startDate.isSame(this.oldStartDate) || !this.endDate.isSame(this.oldEndDate)) - this.notify(); - - this.oldStartDate = this.startDate.clone(); - this.oldEndDate = this.endDate.clone(); - - this.isShowing = false; - this.element.trigger('hide.daterangepicker', this); - }, - - enterRange: function (e) { - // mouse pointer has entered a range label - var label = e.target.innerHTML; - if (label == this.locale.customRangeLabel) { - this.updateView(); - } else { - var dates = this.ranges[label]; - this.container.find('input[name=daterangepicker_start]').val(dates[0].format(this.format)); - this.container.find('input[name=daterangepicker_end]').val(dates[1].format(this.format)); - } - }, - - showCalendars: function() { - this.container.addClass('show-calendar'); - this.move(); - this.element.trigger('showCalendar.daterangepicker', this); - }, - - hideCalendars: function() { - this.container.removeClass('show-calendar'); - this.element.trigger('hideCalendar.daterangepicker', this); - }, - - // when a date is typed into the start to end date textboxes - inputsChanged: function (e) { - var el = $(e.target); - var date = moment(el.val(), this.format); - if (!date.isValid()) return; - - var startDate, endDate; - if (el.attr('name') === 'daterangepicker_start') { - startDate = date; - endDate = this.endDate; - } else { - startDate = this.startDate; - endDate = date; - } - this.setCustomDates(startDate, endDate); - }, - - inputsKeydown: function(e) { - if (e.keyCode === 13) { - this.inputsChanged(e); - this.notify(); - } - }, - - updateInputText: function() { - if (this.element.is('input') && !this.singleDatePicker) { - this.element.val(this.startDate.format(this.format) + this.separator + this.endDate.format(this.format)); - } else if (this.element.is('input')) { - this.element.val(this.endDate.format(this.format)); - } - }, - - clickRange: function (e) { - var label = e.target.innerHTML; - this.chosenLabel = label; - if (label == this.locale.customRangeLabel) { - this.showCalendars(); - } else { - var dates = this.ranges[label]; - - this.startDate = dates[0]; - this.endDate = dates[1]; - - if (!this.timePicker) { - this.startDate.startOf('day'); - this.endDate.endOf('day'); - } - - this.leftCalendar.month.month(this.startDate.month()).year(this.startDate.year()).hour(this.startDate.hour()).minute(this.startDate.minute()); - this.rightCalendar.month.month(this.endDate.month()).year(this.endDate.year()).hour(this.endDate.hour()).minute(this.endDate.minute()); - this.updateCalendars(); - - this.updateInputText(); - - this.hideCalendars(); - this.hide(); - this.element.trigger('apply.daterangepicker', this); - } - }, - - clickPrev: function (e) { - var cal = $(e.target).parents('.calendar'); - if (cal.hasClass('left')) { - this.leftCalendar.month.subtract(1, 'month'); - } else { - this.rightCalendar.month.subtract(1, 'month'); - } - this.updateCalendars(); - }, - - clickNext: function (e) { - var cal = $(e.target).parents('.calendar'); - if (cal.hasClass('left')) { - this.leftCalendar.month.add(1, 'month'); - } else { - this.rightCalendar.month.add(1, 'month'); - } - this.updateCalendars(); - }, - - hoverDate: function (e) { - var title = $(e.target).attr('data-title'); - var row = title.substr(1, 1); - var col = title.substr(3, 1); - var cal = $(e.target).parents('.calendar'); - - if (cal.hasClass('left')) { - this.container.find('input[name=daterangepicker_start]').val(this.leftCalendar.calendar[row][col].format(this.format)); - } else { - this.container.find('input[name=daterangepicker_end]').val(this.rightCalendar.calendar[row][col].format(this.format)); - } - }, - - setCustomDates: function(startDate, endDate) { - this.chosenLabel = this.locale.customRangeLabel; - if (startDate.isAfter(endDate)) { - var difference = this.endDate.diff(this.startDate); - endDate = moment(startDate).add(difference, 'ms'); - if (this.maxDate && endDate.isAfter(this.maxDate)) { - endDate = this.maxDate; - } - } - this.startDate = startDate; - this.endDate = endDate; - - this.updateView(); - this.updateCalendars(); - }, - - clickDate: function (e) { - var title = $(e.target).attr('data-title'); - var row = title.substr(1, 1); - var col = title.substr(3, 1); - var cal = $(e.target).parents('.calendar'); - - var startDate, endDate; - if (cal.hasClass('left')) { - startDate = this.leftCalendar.calendar[row][col]; - endDate = this.endDate; - if (typeof this.dateLimit === 'object') { - var maxDate = moment(startDate).add(this.dateLimit).startOf('day'); - if (endDate.isAfter(maxDate)) { - endDate = maxDate; - } - } - } else { - startDate = this.startDate; - endDate = this.rightCalendar.calendar[row][col]; - if (typeof this.dateLimit === 'object') { - var minDate = moment(endDate).subtract(this.dateLimit).startOf('day'); - if (startDate.isBefore(minDate)) { - startDate = minDate; - } - } - } - - if (this.singleDatePicker && cal.hasClass('left')) { - endDate = startDate.clone(); - } else if (this.singleDatePicker && cal.hasClass('right')) { - startDate = endDate.clone(); - } - - cal.find('td').removeClass('active'); - - $(e.target).addClass('active'); - - this.setCustomDates(startDate, endDate); - - if (!this.timePicker) - endDate.endOf('day'); - - if (this.singleDatePicker && !this.timePicker) - this.clickApply(); - }, - - clickApply: function (e) { - this.updateInputText(); - this.hide(); - this.element.trigger('apply.daterangepicker', this); - }, - - clickCancel: function (e) { - this.startDate = this.oldStartDate; - this.endDate = this.oldEndDate; - this.chosenLabel = this.oldChosenLabel; - this.updateView(); - this.updateCalendars(); - this.hide(); - this.element.trigger('cancel.daterangepicker', this); - }, - - updateMonthYear: function (e) { - var isLeft = $(e.target).closest('.calendar').hasClass('left'), - leftOrRight = isLeft ? 'left' : 'right', - cal = this.container.find('.calendar.'+leftOrRight); - - // Month must be Number for new moment versions - var month = parseInt(cal.find('.monthselect').val(), 10); - var year = cal.find('.yearselect').val(); - - this[leftOrRight+'Calendar'].month.month(month).year(year); - this.updateCalendars(); - }, - - updateTime: function(e) { - - var cal = $(e.target).closest('.calendar'), - isLeft = cal.hasClass('left'); - - var hour = parseInt(cal.find('.hourselect').val(), 10); - var minute = parseInt(cal.find('.minuteselect').val(), 10); - var second = 0; - - if (this.timePickerSeconds) { - second = parseInt(cal.find('.secondselect').val(), 10); - } - - if (this.timePicker12Hour) { - var ampm = cal.find('.ampmselect').val(); - if (ampm === 'PM' && hour < 12) - hour += 12; - if (ampm === 'AM' && hour === 12) - hour = 0; - } - - if (isLeft) { - var start = this.startDate.clone(); - start.hour(hour); - start.minute(minute); - start.second(second); - this.startDate = start; - this.leftCalendar.month.hour(hour).minute(minute).second(second); - if (this.singleDatePicker) - this.endDate = start.clone(); - } else { - var end = this.endDate.clone(); - end.hour(hour); - end.minute(minute); - end.second(second); - this.endDate = end; - if (this.singleDatePicker) - this.startDate = end.clone(); - this.rightCalendar.month.hour(hour).minute(minute).second(second); - } - - this.updateView(); - this.updateCalendars(); - }, - - updateCalendars: function () { - this.leftCalendar.calendar = this.buildCalendar(this.leftCalendar.month.month(), this.leftCalendar.month.year(), this.leftCalendar.month.hour(), this.leftCalendar.month.minute(), this.leftCalendar.month.second(), 'left'); - this.rightCalendar.calendar = this.buildCalendar(this.rightCalendar.month.month(), this.rightCalendar.month.year(), this.rightCalendar.month.hour(), this.rightCalendar.month.minute(), this.rightCalendar.month.second(), 'right'); - this.container.find('.calendar.left').empty().html(this.renderCalendar(this.leftCalendar.calendar, this.startDate, this.minDate, this.maxDate, 'left')); - this.container.find('.calendar.right').empty().html(this.renderCalendar(this.rightCalendar.calendar, this.endDate, this.singleDatePicker ? this.minDate : this.startDate, this.maxDate, 'right')); - - this.container.find('.ranges li').removeClass('active'); - var customRange = true; - var i = 0; - for (var range in this.ranges) { - if (this.timePicker) { - if (this.startDate.isSame(this.ranges[range][0]) && this.endDate.isSame(this.ranges[range][1])) { - customRange = false; - this.chosenLabel = this.container.find('.ranges li:eq(' + i + ')') - .addClass('active').html(); - } - } else { - //ignore times when comparing dates if time picker is not enabled - if (this.startDate.format('YYYY-MM-DD') == this.ranges[range][0].format('YYYY-MM-DD') && this.endDate.format('YYYY-MM-DD') == this.ranges[range][1].format('YYYY-MM-DD')) { - customRange = false; - this.chosenLabel = this.container.find('.ranges li:eq(' + i + ')') - .addClass('active').html(); - } - } - i++; - } - if (customRange) { - this.chosenLabel = this.container.find('.ranges li:last').addClass('active').html(); - this.showCalendars(); - } - }, - - buildCalendar: function (month, year, hour, minute, second, side) { - var daysInMonth = moment([year, month]).daysInMonth(); - var firstDay = moment([year, month, 1]); - var lastDay = moment([year, month, daysInMonth]); - var lastMonth = moment(firstDay).subtract(1, 'month').month(); - var lastYear = moment(firstDay).subtract(1, 'month').year(); - - var daysInLastMonth = moment([lastYear, lastMonth]).daysInMonth(); - - var dayOfWeek = firstDay.day(); - - var i; - - //initialize a 6 rows x 7 columns array for the calendar - var calendar = []; - calendar.firstDay = firstDay; - calendar.lastDay = lastDay; - - for (i = 0; i < 6; i++) { - calendar[i] = []; - } - - //populate the calendar with date objects - var startDay = daysInLastMonth - dayOfWeek + this.locale.firstDay + 1; - if (startDay > daysInLastMonth) - startDay -= 7; - - if (dayOfWeek == this.locale.firstDay) - startDay = daysInLastMonth - 6; - - var curDate = moment([lastYear, lastMonth, startDay, 12, minute, second]).zone(this.timeZone); - - var col, row; - for (i = 0, col = 0, row = 0; i < 42; i++, col++, curDate = moment(curDate).add(24, 'hour')) { - if (i > 0 && col % 7 === 0) { - col = 0; - row++; - } - calendar[row][col] = curDate.clone().hour(hour); - curDate.hour(12); - - if (this.minDate && calendar[row][col].format('YYYY-MM-DD') == this.minDate.format('YYYY-MM-DD') && calendar[row][col].isBefore(this.minDate) && side == 'left') { - calendar[row][col] = this.minDate.clone(); - } - - if (this.maxDate && calendar[row][col].format('YYYY-MM-DD') == this.maxDate.format('YYYY-MM-DD') && calendar[row][col].isAfter(this.maxDate) && side == 'right') { - calendar[row][col] = this.maxDate.clone(); - } - - } - - return calendar; - }, - - renderDropdowns: function (selected, minDate, maxDate) { - var currentMonth = selected.month(); - var currentYear = selected.year(); - var maxYear = (maxDate && maxDate.year()) || (currentYear + 5); - var minYear = (minDate && minDate.year()) || (currentYear - 50); - - var monthHtml = '"; - - var yearHtml = ''; - - return monthHtml + yearHtml; - }, - - renderCalendar: function (calendar, selected, minDate, maxDate, side) { - - var html = '
    '; - html += ''; - html += ''; - html += ''; - - // add empty cell for week number - if (this.showWeekNumbers) - html += ''; - - if (!minDate || minDate.isBefore(calendar.firstDay)) { - html += ''; - } else { - html += ''; - } - - var dateHtml = this.locale.monthNames[calendar[1][1].month()] + calendar[1][1].format(" YYYY"); - - if (this.showDropdowns) { - dateHtml = this.renderDropdowns(calendar[1][1], minDate, maxDate); - } - - html += ''; - if (!maxDate || maxDate.isAfter(calendar.lastDay)) { - html += ''; - } else { - html += ''; - } - - html += ''; - html += ''; - - // add week number label - if (this.showWeekNumbers) - html += ''; - - $.each(this.locale.daysOfWeek, function (index, dayOfWeek) { - html += ''; - }); - - html += ''; - html += ''; - html += ''; - - for (var row = 0; row < 6; row++) { - html += ''; - - // add week number - if (this.showWeekNumbers) - html += ''; - - for (var col = 0; col < 7; col++) { - var cname = 'available '; - cname += (calendar[row][col].month() == calendar[1][1].month()) ? '' : 'off'; - - if ((minDate && calendar[row][col].isBefore(minDate, 'day')) || (maxDate && calendar[row][col].isAfter(maxDate, 'day'))) { - cname = ' off disabled '; - } else if (calendar[row][col].format('YYYY-MM-DD') == selected.format('YYYY-MM-DD')) { - cname += ' active '; - if (calendar[row][col].format('YYYY-MM-DD') == this.startDate.format('YYYY-MM-DD')) { - cname += ' start-date '; - } - if (calendar[row][col].format('YYYY-MM-DD') == this.endDate.format('YYYY-MM-DD')) { - cname += ' end-date '; - } - } else if (calendar[row][col] >= this.startDate && calendar[row][col] <= this.endDate) { - cname += ' in-range '; - if (calendar[row][col].isSame(this.startDate)) { cname += ' start-date '; } - if (calendar[row][col].isSame(this.endDate)) { cname += ' end-date '; } - } - - var title = 'r' + row + 'c' + col; - html += ''; - } - html += ''; - } - - html += ''; - html += '
    ' + dateHtml + '
    ' + this.locale.weekLabel + '' + dayOfWeek + '
    ' + calendar[row][0].week() + '' + calendar[row][col].date() + '
    '; - html += '
    '; - - var i; - if (this.timePicker) { - - html += '
    '; - html += ' : '; - - html += ' '; - - if (this.timePickerSeconds) { - html += ': '; - } - - if (this.timePicker12Hour) { - html += ''; - } - - html += '
    '; - - } - - return html; - - }, - - remove: function() { - - this.container.remove(); - this.element.off('.daterangepicker'); - this.element.removeData('daterangepicker'); - - } - - }; - - $.fn.daterangepicker = function (options, cb) { - this.each(function () { - var el = $(this); - if (el.data('daterangepicker')) - el.data('daterangepicker').remove(); - el.data('daterangepicker', new DateRangePicker(el, options, cb)); - }); - return this; - }; - -})); diff --git a/openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-daterangepicker/moment.js b/openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-daterangepicker/moment.js deleted file mode 100644 index 6d94b173..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-daterangepicker/moment.js +++ /dev/null @@ -1,2808 +0,0 @@ -//! moment.js -//! version : 2.8.1 -//! authors : Tim Wood, Iskren Chernev, Moment.js contributors -//! license : MIT -//! momentjs.com - -(function (undefined) { - /************************************ - Constants - ************************************/ - - var moment, - VERSION = '2.8.1', - // the global-scope this is NOT the global object in Node.js - globalScope = typeof global !== 'undefined' ? global : this, - oldGlobalMoment, - round = Math.round, - i, - - YEAR = 0, - MONTH = 1, - DATE = 2, - HOUR = 3, - MINUTE = 4, - SECOND = 5, - MILLISECOND = 6, - - // internal storage for locale config files - locales = {}, - - // extra moment internal properties (plugins register props here) - momentProperties = [], - - // check for nodeJS - hasModule = (typeof module !== 'undefined' && module.exports), - - // ASP.NET json date format regex - aspNetJsonRegex = /^\/?Date\((\-?\d+)/i, - aspNetTimeSpanJsonRegex = /(\-)?(?:(\d*)\.)?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/, - - // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html - // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere - isoDurationRegex = /^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/, - - // format tokens - formattingTokens = /(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Q|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,4}|X|zz?|ZZ?|.)/g, - localFormattingTokens = /(\[[^\[]*\])|(\\)?(LT|LL?L?L?|l{1,4})/g, - - // parsing token regexes - parseTokenOneOrTwoDigits = /\d\d?/, // 0 - 99 - parseTokenOneToThreeDigits = /\d{1,3}/, // 0 - 999 - parseTokenOneToFourDigits = /\d{1,4}/, // 0 - 9999 - parseTokenOneToSixDigits = /[+\-]?\d{1,6}/, // -999,999 - 999,999 - parseTokenDigits = /\d+/, // nonzero number of digits - parseTokenWord = /[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i, // any word (or two) characters or numbers including two/three word month in arabic. - parseTokenTimezone = /Z|[\+\-]\d\d:?\d\d/gi, // +00:00 -00:00 +0000 -0000 or Z - parseTokenT = /T/i, // T (ISO separator) - parseTokenTimestampMs = /[\+\-]?\d+(\.\d{1,3})?/, // 123456789 123456789.123 - parseTokenOrdinal = /\d{1,2}/, - - //strict parsing regexes - parseTokenOneDigit = /\d/, // 0 - 9 - parseTokenTwoDigits = /\d\d/, // 00 - 99 - parseTokenThreeDigits = /\d{3}/, // 000 - 999 - parseTokenFourDigits = /\d{4}/, // 0000 - 9999 - parseTokenSixDigits = /[+-]?\d{6}/, // -999,999 - 999,999 - parseTokenSignedNumber = /[+-]?\d+/, // -inf - inf - - // iso 8601 regex - // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00) - isoRegex = /^\s*(?:[+-]\d{6}|\d{4})-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/, - - isoFormat = 'YYYY-MM-DDTHH:mm:ssZ', - - isoDates = [ - ['YYYYYY-MM-DD', /[+-]\d{6}-\d{2}-\d{2}/], - ['YYYY-MM-DD', /\d{4}-\d{2}-\d{2}/], - ['GGGG-[W]WW-E', /\d{4}-W\d{2}-\d/], - ['GGGG-[W]WW', /\d{4}-W\d{2}/], - ['YYYY-DDD', /\d{4}-\d{3}/] - ], - - // iso time formats and regexes - isoTimes = [ - ['HH:mm:ss.SSSS', /(T| )\d\d:\d\d:\d\d\.\d+/], - ['HH:mm:ss', /(T| )\d\d:\d\d:\d\d/], - ['HH:mm', /(T| )\d\d:\d\d/], - ['HH', /(T| )\d\d/] - ], - - // timezone chunker "+10:00" > ["10", "00"] or "-1530" > ["-15", "30"] - parseTimezoneChunker = /([\+\-]|\d\d)/gi, - - // getter and setter names - proxyGettersAndSetters = 'Date|Hours|Minutes|Seconds|Milliseconds'.split('|'), - unitMillisecondFactors = { - 'Milliseconds' : 1, - 'Seconds' : 1e3, - 'Minutes' : 6e4, - 'Hours' : 36e5, - 'Days' : 864e5, - 'Months' : 2592e6, - 'Years' : 31536e6 - }, - - unitAliases = { - ms : 'millisecond', - s : 'second', - m : 'minute', - h : 'hour', - d : 'day', - D : 'date', - w : 'week', - W : 'isoWeek', - M : 'month', - Q : 'quarter', - y : 'year', - DDD : 'dayOfYear', - e : 'weekday', - E : 'isoWeekday', - gg: 'weekYear', - GG: 'isoWeekYear' - }, - - camelFunctions = { - dayofyear : 'dayOfYear', - isoweekday : 'isoWeekday', - isoweek : 'isoWeek', - weekyear : 'weekYear', - isoweekyear : 'isoWeekYear' - }, - - // format function strings - formatFunctions = {}, - - // default relative time thresholds - relativeTimeThresholds = { - s: 45, // seconds to minute - m: 45, // minutes to hour - h: 22, // hours to day - d: 26, // days to month - M: 11 // months to year - }, - - // tokens to ordinalize and pad - ordinalizeTokens = 'DDD w W M D d'.split(' '), - paddedTokens = 'M D H h m s w W'.split(' '), - - formatTokenFunctions = { - M : function () { - return this.month() + 1; - }, - MMM : function (format) { - return this.localeData().monthsShort(this, format); - }, - MMMM : function (format) { - return this.localeData().months(this, format); - }, - D : function () { - return this.date(); - }, - DDD : function () { - return this.dayOfYear(); - }, - d : function () { - return this.day(); - }, - dd : function (format) { - return this.localeData().weekdaysMin(this, format); - }, - ddd : function (format) { - return this.localeData().weekdaysShort(this, format); - }, - dddd : function (format) { - return this.localeData().weekdays(this, format); - }, - w : function () { - return this.week(); - }, - W : function () { - return this.isoWeek(); - }, - YY : function () { - return leftZeroFill(this.year() % 100, 2); - }, - YYYY : function () { - return leftZeroFill(this.year(), 4); - }, - YYYYY : function () { - return leftZeroFill(this.year(), 5); - }, - YYYYYY : function () { - var y = this.year(), sign = y >= 0 ? '+' : '-'; - return sign + leftZeroFill(Math.abs(y), 6); - }, - gg : function () { - return leftZeroFill(this.weekYear() % 100, 2); - }, - gggg : function () { - return leftZeroFill(this.weekYear(), 4); - }, - ggggg : function () { - return leftZeroFill(this.weekYear(), 5); - }, - GG : function () { - return leftZeroFill(this.isoWeekYear() % 100, 2); - }, - GGGG : function () { - return leftZeroFill(this.isoWeekYear(), 4); - }, - GGGGG : function () { - return leftZeroFill(this.isoWeekYear(), 5); - }, - e : function () { - return this.weekday(); - }, - E : function () { - return this.isoWeekday(); - }, - a : function () { - return this.localeData().meridiem(this.hours(), this.minutes(), true); - }, - A : function () { - return this.localeData().meridiem(this.hours(), this.minutes(), false); - }, - H : function () { - return this.hours(); - }, - h : function () { - return this.hours() % 12 || 12; - }, - m : function () { - return this.minutes(); - }, - s : function () { - return this.seconds(); - }, - S : function () { - return toInt(this.milliseconds() / 100); - }, - SS : function () { - return leftZeroFill(toInt(this.milliseconds() / 10), 2); - }, - SSS : function () { - return leftZeroFill(this.milliseconds(), 3); - }, - SSSS : function () { - return leftZeroFill(this.milliseconds(), 3); - }, - Z : function () { - var a = -this.zone(), - b = '+'; - if (a < 0) { - a = -a; - b = '-'; - } - return b + leftZeroFill(toInt(a / 60), 2) + ':' + leftZeroFill(toInt(a) % 60, 2); - }, - ZZ : function () { - var a = -this.zone(), - b = '+'; - if (a < 0) { - a = -a; - b = '-'; - } - return b + leftZeroFill(toInt(a / 60), 2) + leftZeroFill(toInt(a) % 60, 2); - }, - z : function () { - return this.zoneAbbr(); - }, - zz : function () { - return this.zoneName(); - }, - X : function () { - return this.unix(); - }, - Q : function () { - return this.quarter(); - } - }, - - deprecations = {}, - - lists = ['months', 'monthsShort', 'weekdays', 'weekdaysShort', 'weekdaysMin']; - - // Pick the first defined of two or three arguments. dfl comes from - // default. - function dfl(a, b, c) { - switch (arguments.length) { - case 2: return a != null ? a : b; - case 3: return a != null ? a : b != null ? b : c; - default: throw new Error('Implement me'); - } - } - - function defaultParsingFlags() { - // We need to deep clone this object, and es5 standard is not very - // helpful. - return { - empty : false, - unusedTokens : [], - unusedInput : [], - overflow : -2, - charsLeftOver : 0, - nullInput : false, - invalidMonth : null, - invalidFormat : false, - userInvalidated : false, - iso: false - }; - } - - function printMsg(msg) { - if (moment.suppressDeprecationWarnings === false && - typeof console !== 'undefined' && console.warn) { - console.warn("Deprecation warning: " + msg); - } - } - - function deprecate(msg, fn) { - var firstTime = true; - return extend(function () { - if (firstTime) { - printMsg(msg); - firstTime = false; - } - return fn.apply(this, arguments); - }, fn); - } - - function deprecateSimple(name, msg) { - if (!deprecations[name]) { - printMsg(msg); - deprecations[name] = true; - } - } - - function padToken(func, count) { - return function (a) { - return leftZeroFill(func.call(this, a), count); - }; - } - function ordinalizeToken(func, period) { - return function (a) { - return this.localeData().ordinal(func.call(this, a), period); - }; - } - - while (ordinalizeTokens.length) { - i = ordinalizeTokens.pop(); - formatTokenFunctions[i + 'o'] = ordinalizeToken(formatTokenFunctions[i], i); - } - while (paddedTokens.length) { - i = paddedTokens.pop(); - formatTokenFunctions[i + i] = padToken(formatTokenFunctions[i], 2); - } - formatTokenFunctions.DDDD = padToken(formatTokenFunctions.DDD, 3); - - - /************************************ - Constructors - ************************************/ - - function Locale() { - } - - // Moment prototype object - function Moment(config, skipOverflow) { - if (skipOverflow !== false) { - checkOverflow(config); - } - copyConfig(this, config); - this._d = new Date(+config._d); - } - - // Duration Constructor - function Duration(duration) { - var normalizedInput = normalizeObjectUnits(duration), - years = normalizedInput.year || 0, - quarters = normalizedInput.quarter || 0, - months = normalizedInput.month || 0, - weeks = normalizedInput.week || 0, - days = normalizedInput.day || 0, - hours = normalizedInput.hour || 0, - minutes = normalizedInput.minute || 0, - seconds = normalizedInput.second || 0, - milliseconds = normalizedInput.millisecond || 0; - - // representation for dateAddRemove - this._milliseconds = +milliseconds + - seconds * 1e3 + // 1000 - minutes * 6e4 + // 1000 * 60 - hours * 36e5; // 1000 * 60 * 60 - // Because of dateAddRemove treats 24 hours as different from a - // day when working around DST, we need to store them separately - this._days = +days + - weeks * 7; - // It is impossible translate months into days without knowing - // which months you are are talking about, so we have to store - // it separately. - this._months = +months + - quarters * 3 + - years * 12; - - this._data = {}; - - this._locale = moment.localeData(); - - this._bubble(); - } - - /************************************ - Helpers - ************************************/ - - - function extend(a, b) { - for (var i in b) { - if (b.hasOwnProperty(i)) { - a[i] = b[i]; - } - } - - if (b.hasOwnProperty('toString')) { - a.toString = b.toString; - } - - if (b.hasOwnProperty('valueOf')) { - a.valueOf = b.valueOf; - } - - return a; - } - - function copyConfig(to, from) { - var i, prop, val; - - if (typeof from._isAMomentObject !== 'undefined') { - to._isAMomentObject = from._isAMomentObject; - } - if (typeof from._i !== 'undefined') { - to._i = from._i; - } - if (typeof from._f !== 'undefined') { - to._f = from._f; - } - if (typeof from._l !== 'undefined') { - to._l = from._l; - } - if (typeof from._strict !== 'undefined') { - to._strict = from._strict; - } - if (typeof from._tzm !== 'undefined') { - to._tzm = from._tzm; - } - if (typeof from._isUTC !== 'undefined') { - to._isUTC = from._isUTC; - } - if (typeof from._offset !== 'undefined') { - to._offset = from._offset; - } - if (typeof from._pf !== 'undefined') { - to._pf = from._pf; - } - if (typeof from._locale !== 'undefined') { - to._locale = from._locale; - } - - if (momentProperties.length > 0) { - for (i in momentProperties) { - prop = momentProperties[i]; - val = from[prop]; - if (typeof val !== 'undefined') { - to[prop] = val; - } - } - } - - return to; - } - - function absRound(number) { - if (number < 0) { - return Math.ceil(number); - } else { - return Math.floor(number); - } - } - - // left zero fill a number - // see http://jsperf.com/left-zero-filling for performance comparison - function leftZeroFill(number, targetLength, forceSign) { - var output = '' + Math.abs(number), - sign = number >= 0; - - while (output.length < targetLength) { - output = '0' + output; - } - return (sign ? (forceSign ? '+' : '') : '-') + output; - } - - function positiveMomentsDifference(base, other) { - var res = {milliseconds: 0, months: 0}; - - res.months = other.month() - base.month() + - (other.year() - base.year()) * 12; - if (base.clone().add(res.months, 'M').isAfter(other)) { - --res.months; - } - - res.milliseconds = +other - +(base.clone().add(res.months, 'M')); - - return res; - } - - function momentsDifference(base, other) { - var res; - other = makeAs(other, base); - if (base.isBefore(other)) { - res = positiveMomentsDifference(base, other); - } else { - res = positiveMomentsDifference(other, base); - res.milliseconds = -res.milliseconds; - res.months = -res.months; - } - - return res; - } - - // TODO: remove 'name' arg after deprecation is removed - function createAdder(direction, name) { - return function (val, period) { - var dur, tmp; - //invert the arguments, but complain about it - if (period !== null && !isNaN(+period)) { - deprecateSimple(name, "moment()." + name + "(period, number) is deprecated. Please use moment()." + name + "(number, period)."); - tmp = val; val = period; period = tmp; - } - - val = typeof val === 'string' ? +val : val; - dur = moment.duration(val, period); - addOrSubtractDurationFromMoment(this, dur, direction); - return this; - }; - } - - function addOrSubtractDurationFromMoment(mom, duration, isAdding, updateOffset) { - var milliseconds = duration._milliseconds, - days = duration._days, - months = duration._months; - updateOffset = updateOffset == null ? true : updateOffset; - - if (milliseconds) { - mom._d.setTime(+mom._d + milliseconds * isAdding); - } - if (days) { - rawSetter(mom, 'Date', rawGetter(mom, 'Date') + days * isAdding); - } - if (months) { - rawMonthSetter(mom, rawGetter(mom, 'Month') + months * isAdding); - } - if (updateOffset) { - moment.updateOffset(mom, days || months); - } - } - - // check if is an array - function isArray(input) { - return Object.prototype.toString.call(input) === '[object Array]'; - } - - function isDate(input) { - return Object.prototype.toString.call(input) === '[object Date]' || - input instanceof Date; - } - - // compare two arrays, return the number of differences - function compareArrays(array1, array2, dontConvert) { - var len = Math.min(array1.length, array2.length), - lengthDiff = Math.abs(array1.length - array2.length), - diffs = 0, - i; - for (i = 0; i < len; i++) { - if ((dontConvert && array1[i] !== array2[i]) || - (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) { - diffs++; - } - } - return diffs + lengthDiff; - } - - function normalizeUnits(units) { - if (units) { - var lowered = units.toLowerCase().replace(/(.)s$/, '$1'); - units = unitAliases[units] || camelFunctions[lowered] || lowered; - } - return units; - } - - function normalizeObjectUnits(inputObject) { - var normalizedInput = {}, - normalizedProp, - prop; - - for (prop in inputObject) { - if (inputObject.hasOwnProperty(prop)) { - normalizedProp = normalizeUnits(prop); - if (normalizedProp) { - normalizedInput[normalizedProp] = inputObject[prop]; - } - } - } - - return normalizedInput; - } - - function makeList(field) { - var count, setter; - - if (field.indexOf('week') === 0) { - count = 7; - setter = 'day'; - } - else if (field.indexOf('month') === 0) { - count = 12; - setter = 'month'; - } - else { - return; - } - - moment[field] = function (format, index) { - var i, getter, - method = moment._locale[field], - results = []; - - if (typeof format === 'number') { - index = format; - format = undefined; - } - - getter = function (i) { - var m = moment().utc().set(setter, i); - return method.call(moment._locale, m, format || ''); - }; - - if (index != null) { - return getter(index); - } - else { - for (i = 0; i < count; i++) { - results.push(getter(i)); - } - return results; - } - }; - } - - function toInt(argumentForCoercion) { - var coercedNumber = +argumentForCoercion, - value = 0; - - if (coercedNumber !== 0 && isFinite(coercedNumber)) { - if (coercedNumber >= 0) { - value = Math.floor(coercedNumber); - } else { - value = Math.ceil(coercedNumber); - } - } - - return value; - } - - function daysInMonth(year, month) { - return new Date(Date.UTC(year, month + 1, 0)).getUTCDate(); - } - - function weeksInYear(year, dow, doy) { - return weekOfYear(moment([year, 11, 31 + dow - doy]), dow, doy).week; - } - - function daysInYear(year) { - return isLeapYear(year) ? 366 : 365; - } - - function isLeapYear(year) { - return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; - } - - function checkOverflow(m) { - var overflow; - if (m._a && m._pf.overflow === -2) { - overflow = - m._a[MONTH] < 0 || m._a[MONTH] > 11 ? MONTH : - m._a[DATE] < 1 || m._a[DATE] > daysInMonth(m._a[YEAR], m._a[MONTH]) ? DATE : - m._a[HOUR] < 0 || m._a[HOUR] > 23 ? HOUR : - m._a[MINUTE] < 0 || m._a[MINUTE] > 59 ? MINUTE : - m._a[SECOND] < 0 || m._a[SECOND] > 59 ? SECOND : - m._a[MILLISECOND] < 0 || m._a[MILLISECOND] > 999 ? MILLISECOND : - -1; - - if (m._pf._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) { - overflow = DATE; - } - - m._pf.overflow = overflow; - } - } - - function isValid(m) { - if (m._isValid == null) { - m._isValid = !isNaN(m._d.getTime()) && - m._pf.overflow < 0 && - !m._pf.empty && - !m._pf.invalidMonth && - !m._pf.nullInput && - !m._pf.invalidFormat && - !m._pf.userInvalidated; - - if (m._strict) { - m._isValid = m._isValid && - m._pf.charsLeftOver === 0 && - m._pf.unusedTokens.length === 0; - } - } - return m._isValid; - } - - function normalizeLocale(key) { - return key ? key.toLowerCase().replace('_', '-') : key; - } - - // pick the locale from the array - // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each - // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root - function chooseLocale(names) { - var i = 0, j, next, locale, split; - - while (i < names.length) { - split = normalizeLocale(names[i]).split('-'); - j = split.length; - next = normalizeLocale(names[i + 1]); - next = next ? next.split('-') : null; - while (j > 0) { - locale = loadLocale(split.slice(0, j).join('-')); - if (locale) { - return locale; - } - if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) { - //the next array item is better than a shallower substring of this one - break; - } - j--; - } - i++; - } - return null; - } - - function loadLocale(name) { - var oldLocale = null; - if (!locales[name] && hasModule) { - try { - oldLocale = moment.locale(); - require('./locale/' + name); - // because defineLocale currently also sets the global locale, we want to undo that for lazy loaded locales - moment.locale(oldLocale); - } catch (e) { } - } - return locales[name]; - } - - // Return a moment from input, that is local/utc/zone equivalent to model. - function makeAs(input, model) { - return model._isUTC ? moment(input).zone(model._offset || 0) : - moment(input).local(); - } - - /************************************ - Locale - ************************************/ - - - extend(Locale.prototype, { - - set : function (config) { - var prop, i; - for (i in config) { - prop = config[i]; - if (typeof prop === 'function') { - this[i] = prop; - } else { - this['_' + i] = prop; - } - } - }, - - _months : '1_2_3_4_May_June_July_August_September_October_November_December'.split('_'), - months : function (m) { - return this._months[m.month()]; - }, - - _monthsShort : '1_2_3_4_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), - monthsShort : function (m) { - return this._monthsShort[m.month()]; - }, - - monthsParse : function (monthName) { - var i, mom, regex; - - if (!this._monthsParse) { - this._monthsParse = []; - } - - for (i = 0; i < 12; i++) { - // make the regex if we don't have it already - if (!this._monthsParse[i]) { - mom = moment.utc([2000, i]); - regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, ''); - this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i'); - } - // test the regex - if (this._monthsParse[i].test(monthName)) { - return i; - } - } - }, - - _weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), - weekdays : function (m) { - return this._weekdays[m.day()]; - }, - - _weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), - weekdaysShort : function (m) { - return this._weekdaysShort[m.day()]; - }, - - _weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), - weekdaysMin : function (m) { - return this._weekdaysMin[m.day()]; - }, - - weekdaysParse : function (weekdayName) { - var i, mom, regex; - - if (!this._weekdaysParse) { - this._weekdaysParse = []; - } - - for (i = 0; i < 7; i++) { - // make the regex if we don't have it already - if (!this._weekdaysParse[i]) { - mom = moment([2000, 1]).day(i); - regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, ''); - this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i'); - } - // test the regex - if (this._weekdaysParse[i].test(weekdayName)) { - return i; - } - } - }, - - _longDateFormat : { - LT : 'h:mm A', - L : 'MM/DD/YYYY', - LL : 'MMMM D, YYYY', - LLL : 'MMMM D, YYYY LT', - LLLL : 'dddd, MMMM D, YYYY LT' - }, - longDateFormat : function (key) { - var output = this._longDateFormat[key]; - if (!output && this._longDateFormat[key.toUpperCase()]) { - output = this._longDateFormat[key.toUpperCase()].replace(/MMMM|MM|DD|dddd/g, function (val) { - return val.slice(1); - }); - this._longDateFormat[key] = output; - } - return output; - }, - - isPM : function (input) { - // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays - // Using charAt should be more compatible. - return ((input + '').toLowerCase().charAt(0) === 'p'); - }, - - _meridiemParse : /[ap]\.?m?\.?/i, - meridiem : function (hours, minutes, isLower) { - if (hours > 11) { - return isLower ? 'pm' : 'PM'; - } else { - return isLower ? 'am' : 'AM'; - } - }, - - _calendar : { - sameDay : '[Today at] LT', - nextDay : '[Tomorrow at] LT', - nextWeek : 'dddd [at] LT', - lastDay : '[Yesterday at] LT', - lastWeek : '[Last] dddd [at] LT', - sameElse : 'L' - }, - calendar : function (key, mom) { - var output = this._calendar[key]; - return typeof output === 'function' ? output.apply(mom) : output; - }, - - _relativeTime : { - future : 'in %s', - past : '%s ago', - s : 'a few seconds', - m : 'a minute', - mm : '%d minutes', - h : 'an hour', - hh : '%d hours', - d : 'a day', - dd : '%d days', - M : 'a month', - MM : '%d months', - y : 'a year', - yy : '%d years' - }, - - relativeTime : function (number, withoutSuffix, string, isFuture) { - var output = this._relativeTime[string]; - return (typeof output === 'function') ? - output(number, withoutSuffix, string, isFuture) : - output.replace(/%d/i, number); - }, - - pastFuture : function (diff, output) { - var format = this._relativeTime[diff > 0 ? 'future' : 'past']; - return typeof format === 'function' ? format(output) : format.replace(/%s/i, output); - }, - - ordinal : function (number) { - return this._ordinal.replace('%d', number); - }, - _ordinal : '%d', - - preparse : function (string) { - return string; - }, - - postformat : function (string) { - return string; - }, - - week : function (mom) { - return weekOfYear(mom, this._week.dow, this._week.doy).week; - }, - - _week : { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 1st is the first week of the year. - }, - - _invalidDate: 'Invalid date', - invalidDate: function () { - return this._invalidDate; - } - }); - - /************************************ - Formatting - ************************************/ - - - function removeFormattingTokens(input) { - if (input.match(/\[[\s\S]/)) { - return input.replace(/^\[|\]$/g, ''); - } - return input.replace(/\\/g, ''); - } - - function makeFormatFunction(format) { - var array = format.match(formattingTokens), i, length; - - for (i = 0, length = array.length; i < length; i++) { - if (formatTokenFunctions[array[i]]) { - array[i] = formatTokenFunctions[array[i]]; - } else { - array[i] = removeFormattingTokens(array[i]); - } - } - - return function (mom) { - var output = ''; - for (i = 0; i < length; i++) { - output += array[i] instanceof Function ? array[i].call(mom, format) : array[i]; - } - return output; - }; - } - - // format date using native date object - function formatMoment(m, format) { - if (!m.isValid()) { - return m.localeData().invalidDate(); - } - - format = expandFormat(format, m.localeData()); - - if (!formatFunctions[format]) { - formatFunctions[format] = makeFormatFunction(format); - } - - return formatFunctions[format](m); - } - - function expandFormat(format, locale) { - var i = 5; - - function replaceLongDateFormatTokens(input) { - return locale.longDateFormat(input) || input; - } - - localFormattingTokens.lastIndex = 0; - while (i >= 0 && localFormattingTokens.test(format)) { - format = format.replace(localFormattingTokens, replaceLongDateFormatTokens); - localFormattingTokens.lastIndex = 0; - i -= 1; - } - - return format; - } - - - /************************************ - Parsing - ************************************/ - - - // get the regex to find the next token - function getParseRegexForToken(token, config) { - var a, strict = config._strict; - switch (token) { - case 'Q': - return parseTokenOneDigit; - case 'DDDD': - return parseTokenThreeDigits; - case 'YYYY': - case 'GGGG': - case 'gggg': - return strict ? parseTokenFourDigits : parseTokenOneToFourDigits; - case 'Y': - case 'G': - case 'g': - return parseTokenSignedNumber; - case 'YYYYYY': - case 'YYYYY': - case 'GGGGG': - case 'ggggg': - return strict ? parseTokenSixDigits : parseTokenOneToSixDigits; - case 'S': - if (strict) { - return parseTokenOneDigit; - } - /* falls through */ - case 'SS': - if (strict) { - return parseTokenTwoDigits; - } - /* falls through */ - case 'SSS': - if (strict) { - return parseTokenThreeDigits; - } - /* falls through */ - case 'DDD': - return parseTokenOneToThreeDigits; - case 'MMM': - case 'MMMM': - case 'dd': - case 'ddd': - case 'dddd': - return parseTokenWord; - case 'a': - case 'A': - return config._locale._meridiemParse; - case 'X': - return parseTokenTimestampMs; - case 'Z': - case 'ZZ': - return parseTokenTimezone; - case 'T': - return parseTokenT; - case 'SSSS': - return parseTokenDigits; - case 'MM': - case 'DD': - case 'YY': - case 'GG': - case 'gg': - case 'HH': - case 'hh': - case 'mm': - case 'ss': - case 'ww': - case 'WW': - return strict ? parseTokenTwoDigits : parseTokenOneOrTwoDigits; - case 'M': - case 'D': - case 'd': - case 'H': - case 'h': - case 'm': - case 's': - case 'w': - case 'W': - case 'e': - case 'E': - return parseTokenOneOrTwoDigits; - case 'Do': - return parseTokenOrdinal; - default : - a = new RegExp(regexpEscape(unescapeFormat(token.replace('\\', '')), 'i')); - return a; - } - } - - function timezoneMinutesFromString(string) { - string = string || ''; - var possibleTzMatches = (string.match(parseTokenTimezone) || []), - tzChunk = possibleTzMatches[possibleTzMatches.length - 1] || [], - parts = (tzChunk + '').match(parseTimezoneChunker) || ['-', 0, 0], - minutes = +(parts[1] * 60) + toInt(parts[2]); - - return parts[0] === '+' ? -minutes : minutes; - } - - // function to convert string input to date - function addTimeToArrayFromToken(token, input, config) { - var a, datePartArray = config._a; - - switch (token) { - // QUARTER - case 'Q': - if (input != null) { - datePartArray[MONTH] = (toInt(input) - 1) * 3; - } - break; - // MONTH - case 'M' : // fall through to MM - case 'MM' : - if (input != null) { - datePartArray[MONTH] = toInt(input) - 1; - } - break; - case 'MMM' : // fall through to MMMM - case 'MMMM' : - a = config._locale.monthsParse(input); - // if we didn't find a month name, mark the date as invalid. - if (a != null) { - datePartArray[MONTH] = a; - } else { - config._pf.invalidMonth = input; - } - break; - // DAY OF MONTH - case 'D' : // fall through to DD - case 'DD' : - if (input != null) { - datePartArray[DATE] = toInt(input); - } - break; - case 'Do' : - if (input != null) { - datePartArray[DATE] = toInt(parseInt(input, 10)); - } - break; - // DAY OF YEAR - case 'DDD' : // fall through to DDDD - case 'DDDD' : - if (input != null) { - config._dayOfYear = toInt(input); - } - - break; - // YEAR - case 'YY' : - datePartArray[YEAR] = moment.parseTwoDigitYear(input); - break; - case 'YYYY' : - case 'YYYYY' : - case 'YYYYYY' : - datePartArray[YEAR] = toInt(input); - break; - // AM / PM - case 'a' : // fall through to A - case 'A' : - config._isPm = config._locale.isPM(input); - break; - // 24 HOUR - case 'H' : // fall through to hh - case 'HH' : // fall through to hh - case 'h' : // fall through to hh - case 'hh' : - datePartArray[HOUR] = toInt(input); - break; - // MINUTE - case 'm' : // fall through to mm - case 'mm' : - datePartArray[MINUTE] = toInt(input); - break; - // SECOND - case 's' : // fall through to ss - case 'ss' : - datePartArray[SECOND] = toInt(input); - break; - // MILLISECOND - case 'S' : - case 'SS' : - case 'SSS' : - case 'SSSS' : - datePartArray[MILLISECOND] = toInt(('0.' + input) * 1000); - break; - // UNIX TIMESTAMP WITH MS - case 'X': - config._d = new Date(parseFloat(input) * 1000); - break; - // TIMEZONE - case 'Z' : // fall through to ZZ - case 'ZZ' : - config._useUTC = true; - config._tzm = timezoneMinutesFromString(input); - break; - // WEEKDAY - human - case 'dd': - case 'ddd': - case 'dddd': - a = config._locale.weekdaysParse(input); - // if we didn't get a weekday name, mark the date as invalid - if (a != null) { - config._w = config._w || {}; - config._w['d'] = a; - } else { - config._pf.invalidWeekday = input; - } - break; - // WEEK, WEEK DAY - numeric - case 'w': - case 'ww': - case 'W': - case 'WW': - case 'd': - case 'e': - case 'E': - token = token.substr(0, 1); - /* falls through */ - case 'gggg': - case 'GGGG': - case 'GGGGG': - token = token.substr(0, 2); - if (input) { - config._w = config._w || {}; - config._w[token] = toInt(input); - } - break; - case 'gg': - case 'GG': - config._w = config._w || {}; - config._w[token] = moment.parseTwoDigitYear(input); - } - } - - function dayOfYearFromWeekInfo(config) { - var w, weekYear, week, weekday, dow, doy, temp; - - w = config._w; - if (w.GG != null || w.W != null || w.E != null) { - dow = 1; - doy = 4; - - // TODO: We need to take the current isoWeekYear, but that depends on - // how we interpret now (local, utc, fixed offset). So create - // a now version of current config (take local/utc/offset flags, and - // create now). - weekYear = dfl(w.GG, config._a[YEAR], weekOfYear(moment(), 1, 4).year); - week = dfl(w.W, 1); - weekday = dfl(w.E, 1); - } else { - dow = config._locale._week.dow; - doy = config._locale._week.doy; - - weekYear = dfl(w.gg, config._a[YEAR], weekOfYear(moment(), dow, doy).year); - week = dfl(w.w, 1); - - if (w.d != null) { - // weekday -- low day numbers are considered next week - weekday = w.d; - if (weekday < dow) { - ++week; - } - } else if (w.e != null) { - // local weekday -- counting starts from begining of week - weekday = w.e + dow; - } else { - // default to begining of week - weekday = dow; - } - } - temp = dayOfYearFromWeeks(weekYear, week, weekday, doy, dow); - - config._a[YEAR] = temp.year; - config._dayOfYear = temp.dayOfYear; - } - - // convert an array to a date. - // the array should mirror the parameters below - // note: all values past the year are optional and will default to the lowest possible value. - // [year, month, day , hour, minute, second, millisecond] - function dateFromConfig(config) { - var i, date, input = [], currentDate, yearToUse; - - if (config._d) { - return; - } - - currentDate = currentDateArray(config); - - //compute day of the year from weeks and weekdays - if (config._w && config._a[DATE] == null && config._a[MONTH] == null) { - dayOfYearFromWeekInfo(config); - } - - //if the day of the year is set, figure out what it is - if (config._dayOfYear) { - yearToUse = dfl(config._a[YEAR], currentDate[YEAR]); - - if (config._dayOfYear > daysInYear(yearToUse)) { - config._pf._overflowDayOfYear = true; - } - - date = makeUTCDate(yearToUse, 0, config._dayOfYear); - config._a[MONTH] = date.getUTCMonth(); - config._a[DATE] = date.getUTCDate(); - } - - // Default to current date. - // * if no year, month, day of month are given, default to today - // * if day of month is given, default month and year - // * if month is given, default only year - // * if year is given, don't default anything - for (i = 0; i < 3 && config._a[i] == null; ++i) { - config._a[i] = input[i] = currentDate[i]; - } - - // Zero out whatever was not defaulted, including time - for (; i < 7; i++) { - config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i]; - } - - config._d = (config._useUTC ? makeUTCDate : makeDate).apply(null, input); - // Apply timezone offset from input. The actual zone can be changed - // with parseZone. - if (config._tzm != null) { - config._d.setUTCMinutes(config._d.getUTCMinutes() + config._tzm); - } - } - - function dateFromObject(config) { - var normalizedInput; - - if (config._d) { - return; - } - - normalizedInput = normalizeObjectUnits(config._i); - config._a = [ - normalizedInput.year, - normalizedInput.month, - normalizedInput.day, - normalizedInput.hour, - normalizedInput.minute, - normalizedInput.second, - normalizedInput.millisecond - ]; - - dateFromConfig(config); - } - - function currentDateArray(config) { - var now = new Date(); - if (config._useUTC) { - return [ - now.getUTCFullYear(), - now.getUTCMonth(), - now.getUTCDate() - ]; - } else { - return [now.getFullYear(), now.getMonth(), now.getDate()]; - } - } - - // date from string and format string - function makeDateFromStringAndFormat(config) { - if (config._f === moment.ISO_8601) { - parseISO(config); - return; - } - - config._a = []; - config._pf.empty = true; - - // This array is used to make a Date, either with `new Date` or `Date.UTC` - var string = '' + config._i, - i, parsedInput, tokens, token, skipped, - stringLength = string.length, - totalParsedInputLength = 0; - - tokens = expandFormat(config._f, config._locale).match(formattingTokens) || []; - - for (i = 0; i < tokens.length; i++) { - token = tokens[i]; - parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0]; - if (parsedInput) { - skipped = string.substr(0, string.indexOf(parsedInput)); - if (skipped.length > 0) { - config._pf.unusedInput.push(skipped); - } - string = string.slice(string.indexOf(parsedInput) + parsedInput.length); - totalParsedInputLength += parsedInput.length; - } - // don't parse if it's not a known token - if (formatTokenFunctions[token]) { - if (parsedInput) { - config._pf.empty = false; - } - else { - config._pf.unusedTokens.push(token); - } - addTimeToArrayFromToken(token, parsedInput, config); - } - else if (config._strict && !parsedInput) { - config._pf.unusedTokens.push(token); - } - } - - // add remaining unparsed input length to the string - config._pf.charsLeftOver = stringLength - totalParsedInputLength; - if (string.length > 0) { - config._pf.unusedInput.push(string); - } - - // handle am pm - if (config._isPm && config._a[HOUR] < 12) { - config._a[HOUR] += 12; - } - // if is 12 am, change hours to 0 - if (config._isPm === false && config._a[HOUR] === 12) { - config._a[HOUR] = 0; - } - - dateFromConfig(config); - checkOverflow(config); - } - - function unescapeFormat(s) { - return s.replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (matched, p1, p2, p3, p4) { - return p1 || p2 || p3 || p4; - }); - } - - // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript - function regexpEscape(s) { - return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); - } - - // date from string and array of format strings - function makeDateFromStringAndArray(config) { - var tempConfig, - bestMoment, - - scoreToBeat, - i, - currentScore; - - if (config._f.length === 0) { - config._pf.invalidFormat = true; - config._d = new Date(NaN); - return; - } - - for (i = 0; i < config._f.length; i++) { - currentScore = 0; - tempConfig = copyConfig({}, config); - tempConfig._pf = defaultParsingFlags(); - tempConfig._f = config._f[i]; - makeDateFromStringAndFormat(tempConfig); - - if (!isValid(tempConfig)) { - continue; - } - - // if there is any input that was not parsed add a penalty for that format - currentScore += tempConfig._pf.charsLeftOver; - - //or tokens - currentScore += tempConfig._pf.unusedTokens.length * 10; - - tempConfig._pf.score = currentScore; - - if (scoreToBeat == null || currentScore < scoreToBeat) { - scoreToBeat = currentScore; - bestMoment = tempConfig; - } - } - - extend(config, bestMoment || tempConfig); - } - - // date from iso format - function parseISO(config) { - var i, l, - string = config._i, - match = isoRegex.exec(string); - - if (match) { - config._pf.iso = true; - for (i = 0, l = isoDates.length; i < l; i++) { - if (isoDates[i][1].exec(string)) { - // match[5] should be "T" or undefined - config._f = isoDates[i][0] + (match[6] || ' '); - break; - } - } - for (i = 0, l = isoTimes.length; i < l; i++) { - if (isoTimes[i][1].exec(string)) { - config._f += isoTimes[i][0]; - break; - } - } - if (string.match(parseTokenTimezone)) { - config._f += 'Z'; - } - makeDateFromStringAndFormat(config); - } else { - config._isValid = false; - } - } - - // date from iso format or fallback - function makeDateFromString(config) { - parseISO(config); - if (config._isValid === false) { - delete config._isValid; - moment.createFromInputFallback(config); - } - } - - function makeDateFromInput(config) { - var input = config._i, matched; - if (input === undefined) { - config._d = new Date(); - } else if (isDate(input)) { - config._d = new Date(+input); - } else if ((matched = aspNetJsonRegex.exec(input)) !== null) { - config._d = new Date(+matched[1]); - } else if (typeof input === 'string') { - makeDateFromString(config); - } else if (isArray(input)) { - config._a = input.slice(0); - dateFromConfig(config); - } else if (typeof(input) === 'object') { - dateFromObject(config); - } else if (typeof(input) === 'number') { - // from milliseconds - config._d = new Date(input); - } else { - moment.createFromInputFallback(config); - } - } - - function makeDate(y, m, d, h, M, s, ms) { - //can't just apply() to create a date: - //http://stackoverflow.com/questions/181348/instantiating-a-javascript-object-by-calling-prototype-constructor-apply - var date = new Date(y, m, d, h, M, s, ms); - - //the date constructor doesn't accept years < 1970 - if (y < 1970) { - date.setFullYear(y); - } - return date; - } - - function makeUTCDate(y) { - var date = new Date(Date.UTC.apply(null, arguments)); - if (y < 1970) { - date.setUTCFullYear(y); - } - return date; - } - - function parseWeekday(input, locale) { - if (typeof input === 'string') { - if (!isNaN(input)) { - input = parseInt(input, 10); - } - else { - input = locale.weekdaysParse(input); - if (typeof input !== 'number') { - return null; - } - } - } - return input; - } - - /************************************ - Relative Time - ************************************/ - - - // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize - function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) { - return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture); - } - - function relativeTime(posNegDuration, withoutSuffix, locale) { - var duration = moment.duration(posNegDuration).abs(), - seconds = round(duration.as('s')), - minutes = round(duration.as('m')), - hours = round(duration.as('h')), - days = round(duration.as('d')), - months = round(duration.as('M')), - years = round(duration.as('y')), - - args = seconds < relativeTimeThresholds.s && ['s', seconds] || - minutes === 1 && ['m'] || - minutes < relativeTimeThresholds.m && ['mm', minutes] || - hours === 1 && ['h'] || - hours < relativeTimeThresholds.h && ['hh', hours] || - days === 1 && ['d'] || - days < relativeTimeThresholds.d && ['dd', days] || - months === 1 && ['M'] || - months < relativeTimeThresholds.M && ['MM', months] || - years === 1 && ['y'] || ['yy', years]; - - args[2] = withoutSuffix; - args[3] = +posNegDuration > 0; - args[4] = locale; - return substituteTimeAgo.apply({}, args); - } - - - /************************************ - Week of Year - ************************************/ - - - // firstDayOfWeek 0 = sun, 6 = sat - // the day of the week that starts the week - // (usually sunday or monday) - // firstDayOfWeekOfYear 0 = sun, 6 = sat - // the first week is the week that contains the first - // of this day of the week - // (eg. ISO weeks use thursday (4)) - function weekOfYear(mom, firstDayOfWeek, firstDayOfWeekOfYear) { - var end = firstDayOfWeekOfYear - firstDayOfWeek, - daysToDayOfWeek = firstDayOfWeekOfYear - mom.day(), - adjustedMoment; - - - if (daysToDayOfWeek > end) { - daysToDayOfWeek -= 7; - } - - if (daysToDayOfWeek < end - 7) { - daysToDayOfWeek += 7; - } - - adjustedMoment = moment(mom).add(daysToDayOfWeek, 'd'); - return { - week: Math.ceil(adjustedMoment.dayOfYear() / 7), - year: adjustedMoment.year() - }; - } - - //http://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday - function dayOfYearFromWeeks(year, week, weekday, firstDayOfWeekOfYear, firstDayOfWeek) { - var d = makeUTCDate(year, 0, 1).getUTCDay(), daysToAdd, dayOfYear; - - d = d === 0 ? 7 : d; - weekday = weekday != null ? weekday : firstDayOfWeek; - daysToAdd = firstDayOfWeek - d + (d > firstDayOfWeekOfYear ? 7 : 0) - (d < firstDayOfWeek ? 7 : 0); - dayOfYear = 7 * (week - 1) + (weekday - firstDayOfWeek) + daysToAdd + 1; - - return { - year: dayOfYear > 0 ? year : year - 1, - dayOfYear: dayOfYear > 0 ? dayOfYear : daysInYear(year - 1) + dayOfYear - }; - } - - /************************************ - Top Level Functions - ************************************/ - - function makeMoment(config) { - var input = config._i, - format = config._f; - - config._locale = config._locale || moment.localeData(config._l); - - if (input === null || (format === undefined && input === '')) { - return moment.invalid({nullInput: true}); - } - - if (typeof input === 'string') { - config._i = input = config._locale.preparse(input); - } - - if (moment.isMoment(input)) { - return new Moment(input, true); - } else if (format) { - if (isArray(format)) { - makeDateFromStringAndArray(config); - } else { - makeDateFromStringAndFormat(config); - } - } else { - makeDateFromInput(config); - } - - return new Moment(config); - } - - moment = function (input, format, locale, strict) { - var c; - - if (typeof(locale) === "boolean") { - strict = locale; - locale = undefined; - } - // object construction must be done this way. - // https://github.com/moment/moment/issues/1423 - c = {}; - c._isAMomentObject = true; - c._i = input; - c._f = format; - c._l = locale; - c._strict = strict; - c._isUTC = false; - c._pf = defaultParsingFlags(); - - return makeMoment(c); - }; - - moment.suppressDeprecationWarnings = false; - - moment.createFromInputFallback = deprecate( - 'moment construction falls back to js Date. This is ' + - 'discouraged and will be removed in upcoming major ' + - 'release. Please refer to ' + - 'https://github.com/moment/moment/issues/1407 for more info.', - function (config) { - config._d = new Date(config._i); - } - ); - - // Pick a moment m from moments so that m[fn](other) is true for all - // other. This relies on the function fn to be transitive. - // - // moments should either be an array of moment objects or an array, whose - // first element is an array of moment objects. - function pickBy(fn, moments) { - var res, i; - if (moments.length === 1 && isArray(moments[0])) { - moments = moments[0]; - } - if (!moments.length) { - return moment(); - } - res = moments[0]; - for (i = 1; i < moments.length; ++i) { - if (moments[i][fn](res)) { - res = moments[i]; - } - } - return res; - } - - moment.min = function () { - var args = [].slice.call(arguments, 0); - - return pickBy('isBefore', args); - }; - - moment.max = function () { - var args = [].slice.call(arguments, 0); - - return pickBy('isAfter', args); - }; - - // creating with utc - moment.utc = function (input, format, locale, strict) { - var c; - - if (typeof(locale) === "boolean") { - strict = locale; - locale = undefined; - } - // object construction must be done this way. - // https://github.com/moment/moment/issues/1423 - c = {}; - c._isAMomentObject = true; - c._useUTC = true; - c._isUTC = true; - c._l = locale; - c._i = input; - c._f = format; - c._strict = strict; - c._pf = defaultParsingFlags(); - - return makeMoment(c).utc(); - }; - - // creating with unix timestamp (in seconds) - moment.unix = function (input) { - return moment(input * 1000); - }; - - // duration - moment.duration = function (input, key) { - var duration = input, - // matching against regexp is expensive, do it on demand - match = null, - sign, - ret, - parseIso, - diffRes; - - if (moment.isDuration(input)) { - duration = { - ms: input._milliseconds, - d: input._days, - M: input._months - }; - } else if (typeof input === 'number') { - duration = {}; - if (key) { - duration[key] = input; - } else { - duration.milliseconds = input; - } - } else if (!!(match = aspNetTimeSpanJsonRegex.exec(input))) { - sign = (match[1] === '-') ? -1 : 1; - duration = { - y: 0, - d: toInt(match[DATE]) * sign, - h: toInt(match[HOUR]) * sign, - m: toInt(match[MINUTE]) * sign, - s: toInt(match[SECOND]) * sign, - ms: toInt(match[MILLISECOND]) * sign - }; - } else if (!!(match = isoDurationRegex.exec(input))) { - sign = (match[1] === '-') ? -1 : 1; - parseIso = function (inp) { - // We'd normally use ~~inp for this, but unfortunately it also - // converts floats to ints. - // inp may be undefined, so careful calling replace on it. - var res = inp && parseFloat(inp.replace(',', '.')); - // apply sign while we're at it - return (isNaN(res) ? 0 : res) * sign; - }; - duration = { - y: parseIso(match[2]), - M: parseIso(match[3]), - d: parseIso(match[4]), - h: parseIso(match[5]), - m: parseIso(match[6]), - s: parseIso(match[7]), - w: parseIso(match[8]) - }; - } else if (typeof duration === 'object' && - ('from' in duration || 'to' in duration)) { - diffRes = momentsDifference(moment(duration.from), moment(duration.to)); - - duration = {}; - duration.ms = diffRes.milliseconds; - duration.M = diffRes.months; - } - - ret = new Duration(duration); - - if (moment.isDuration(input) && input.hasOwnProperty('_locale')) { - ret._locale = input._locale; - } - - return ret; - }; - - // version number - moment.version = VERSION; - - // default format - moment.defaultFormat = isoFormat; - - // constant that refers to the ISO standard - moment.ISO_8601 = function () {}; - - // Plugins that add properties should also add the key here (null value), - // so we can properly clone ourselves. - moment.momentProperties = momentProperties; - - // This function will be called whenever a moment is mutated. - // It is intended to keep the offset in sync with the timezone. - moment.updateOffset = function () {}; - - // This function allows you to set a threshold for relative time strings - moment.relativeTimeThreshold = function (threshold, limit) { - if (relativeTimeThresholds[threshold] === undefined) { - return false; - } - if (limit === undefined) { - return relativeTimeThresholds[threshold]; - } - relativeTimeThresholds[threshold] = limit; - return true; - }; - - moment.lang = deprecate( - "moment.lang is deprecated. Use moment.locale instead.", - function (key, value) { - return moment.locale(key, value); - } - ); - - // This function will load locale and then set the global locale. If - // no arguments are passed in, it will simply return the current global - // locale key. - moment.locale = function (key, values) { - var data; - if (key) { - if (typeof(values) !== "undefined") { - data = moment.defineLocale(key, values); - } - else { - data = moment.localeData(key); - } - - if (data) { - moment.duration._locale = moment._locale = data; - } - } - - return moment._locale._abbr; - }; - - moment.defineLocale = function (name, values) { - if (values !== null) { - values.abbr = name; - if (!locales[name]) { - locales[name] = new Locale(); - } - locales[name].set(values); - - // backwards compat for now: also set the locale - moment.locale(name); - - return locales[name]; - } else { - // useful for testing - delete locales[name]; - return null; - } - }; - - moment.langData = deprecate( - "moment.langData is deprecated. Use moment.localeData instead.", - function (key) { - return moment.localeData(key); - } - ); - - // returns locale data - moment.localeData = function (key) { - var locale; - - if (key && key._locale && key._locale._abbr) { - key = key._locale._abbr; - } - - if (!key) { - return moment._locale; - } - - if (!isArray(key)) { - //short-circuit everything else - locale = loadLocale(key); - if (locale) { - return locale; - } - key = [key]; - } - - return chooseLocale(key); - }; - - // compare moment object - moment.isMoment = function (obj) { - return obj instanceof Moment || - (obj != null && obj.hasOwnProperty('_isAMomentObject')); - }; - - // for typechecking Duration objects - moment.isDuration = function (obj) { - return obj instanceof Duration; - }; - - for (i = lists.length - 1; i >= 0; --i) { - makeList(lists[i]); - } - - moment.normalizeUnits = function (units) { - return normalizeUnits(units); - }; - - moment.invalid = function (flags) { - var m = moment.utc(NaN); - if (flags != null) { - extend(m._pf, flags); - } - else { - m._pf.userInvalidated = true; - } - - return m; - }; - - moment.parseZone = function () { - return moment.apply(null, arguments).parseZone(); - }; - - moment.parseTwoDigitYear = function (input) { - return toInt(input) + (toInt(input) > 68 ? 1900 : 2000); - }; - - /************************************ - Moment Prototype - ************************************/ - - - extend(moment.fn = Moment.prototype, { - - clone : function () { - return moment(this); - }, - - valueOf : function () { - return +this._d + ((this._offset || 0) * 60000); - }, - - unix : function () { - return Math.floor(+this / 1000); - }, - - toString : function () { - return this.clone().locale('en').format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ"); - }, - - toDate : function () { - return this._offset ? new Date(+this) : this._d; - }, - - toISOString : function () { - var m = moment(this).utc(); - if (0 < m.year() && m.year() <= 9999) { - return formatMoment(m, 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]'); - } else { - return formatMoment(m, 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'); - } - }, - - toArray : function () { - var m = this; - return [ - m.year(), - m.month(), - m.date(), - m.hours(), - m.minutes(), - m.seconds(), - m.milliseconds() - ]; - }, - - isValid : function () { - return isValid(this); - }, - - isDSTShifted : function () { - if (this._a) { - return this.isValid() && compareArrays(this._a, (this._isUTC ? moment.utc(this._a) : moment(this._a)).toArray()) > 0; - } - - return false; - }, - - parsingFlags : function () { - return extend({}, this._pf); - }, - - invalidAt: function () { - return this._pf.overflow; - }, - - utc : function (keepLocalTime) { - return this.zone(0, keepLocalTime); - }, - - local : function (keepLocalTime) { - if (this._isUTC) { - this.zone(0, keepLocalTime); - this._isUTC = false; - - if (keepLocalTime) { - this.add(this._d.getTimezoneOffset(), 'm'); - } - } - return this; - }, - - format : function (inputString) { - var output = formatMoment(this, inputString || moment.defaultFormat); - return this.localeData().postformat(output); - }, - - add : createAdder(1, 'add'), - - subtract : createAdder(-1, 'subtract'), - - diff : function (input, units, asFloat) { - var that = makeAs(input, this), - zoneDiff = (this.zone() - that.zone()) * 6e4, - diff, output; - - units = normalizeUnits(units); - - if (units === 'year' || units === 'month') { - // average number of days in the months in the given dates - diff = (this.daysInMonth() + that.daysInMonth()) * 432e5; // 24 * 60 * 60 * 1000 / 2 - // difference in months - output = ((this.year() - that.year()) * 12) + (this.month() - that.month()); - // adjust by taking difference in days, average number of days - // and dst in the given months. - output += ((this - moment(this).startOf('month')) - - (that - moment(that).startOf('month'))) / diff; - // same as above but with zones, to negate all dst - output -= ((this.zone() - moment(this).startOf('month').zone()) - - (that.zone() - moment(that).startOf('month').zone())) * 6e4 / diff; - if (units === 'year') { - output = output / 12; - } - } else { - diff = (this - that); - output = units === 'second' ? diff / 1e3 : // 1000 - units === 'minute' ? diff / 6e4 : // 1000 * 60 - units === 'hour' ? diff / 36e5 : // 1000 * 60 * 60 - units === 'day' ? (diff - zoneDiff) / 864e5 : // 1000 * 60 * 60 * 24, negate dst - units === 'week' ? (diff - zoneDiff) / 6048e5 : // 1000 * 60 * 60 * 24 * 7, negate dst - diff; - } - return asFloat ? output : absRound(output); - }, - - from : function (time, withoutSuffix) { - return moment.duration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix); - }, - - fromNow : function (withoutSuffix) { - return this.from(moment(), withoutSuffix); - }, - - calendar : function (time) { - // We want to compare the start of today, vs this. - // Getting start-of-today depends on whether we're zone'd or not. - var now = time || moment(), - sod = makeAs(now, this).startOf('day'), - diff = this.diff(sod, 'days', true), - format = diff < -6 ? 'sameElse' : - diff < -1 ? 'lastWeek' : - diff < 0 ? 'lastDay' : - diff < 1 ? 'sameDay' : - diff < 2 ? 'nextDay' : - diff < 7 ? 'nextWeek' : 'sameElse'; - return this.format(this.localeData().calendar(format, this)); - }, - - isLeapYear : function () { - return isLeapYear(this.year()); - }, - - isDST : function () { - return (this.zone() < this.clone().month(0).zone() || - this.zone() < this.clone().month(5).zone()); - }, - - day : function (input) { - var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); - if (input != null) { - input = parseWeekday(input, this.localeData()); - return this.add(input - day, 'd'); - } else { - return day; - } - }, - - month : makeAccessor('Month', true), - - startOf : function (units) { - units = normalizeUnits(units); - // the following switch intentionally omits break keywords - // to utilize falling through the cases. - switch (units) { - case 'year': - this.month(0); - /* falls through */ - case 'quarter': - case 'month': - this.date(1); - /* falls through */ - case 'week': - case 'isoWeek': - case 'day': - this.hours(0); - /* falls through */ - case 'hour': - this.minutes(0); - /* falls through */ - case 'minute': - this.seconds(0); - /* falls through */ - case 'second': - this.milliseconds(0); - /* falls through */ - } - - // weeks are a special case - if (units === 'week') { - this.weekday(0); - } else if (units === 'isoWeek') { - this.isoWeekday(1); - } - - // quarters are also special - if (units === 'quarter') { - this.month(Math.floor(this.month() / 3) * 3); - } - - return this; - }, - - endOf: function (units) { - units = normalizeUnits(units); - return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms'); - }, - - isAfter: function (input, units) { - units = typeof units !== 'undefined' ? units : 'millisecond'; - return +this.clone().startOf(units) > +moment(input).startOf(units); - }, - - isBefore: function (input, units) { - units = typeof units !== 'undefined' ? units : 'millisecond'; - return +this.clone().startOf(units) < +moment(input).startOf(units); - }, - - isSame: function (input, units) { - units = units || 'ms'; - return +this.clone().startOf(units) === +makeAs(input, this).startOf(units); - }, - - min: deprecate( - 'moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548', - function (other) { - other = moment.apply(null, arguments); - return other < this ? this : other; - } - ), - - max: deprecate( - 'moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548', - function (other) { - other = moment.apply(null, arguments); - return other > this ? this : other; - } - ), - - // keepLocalTime = true means only change the timezone, without - // affecting the local hour. So 5:31:26 +0300 --[zone(2, true)]--> - // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist int zone - // +0200, so we adjust the time as needed, to be valid. - // - // Keeping the time actually adds/subtracts (one hour) - // from the actual represented time. That is why we call updateOffset - // a second time. In case it wants us to change the offset again - // _changeInProgress == true case, then we have to adjust, because - // there is no such time in the given timezone. - zone : function (input, keepLocalTime) { - var offset = this._offset || 0, - localAdjust; - if (input != null) { - if (typeof input === 'string') { - input = timezoneMinutesFromString(input); - } - if (Math.abs(input) < 16) { - input = input * 60; - } - if (!this._isUTC && keepLocalTime) { - localAdjust = this._d.getTimezoneOffset(); - } - this._offset = input; - this._isUTC = true; - if (localAdjust != null) { - this.subtract(localAdjust, 'm'); - } - if (offset !== input) { - if (!keepLocalTime || this._changeInProgress) { - addOrSubtractDurationFromMoment(this, - moment.duration(offset - input, 'm'), 1, false); - } else if (!this._changeInProgress) { - this._changeInProgress = true; - moment.updateOffset(this, true); - this._changeInProgress = null; - } - } - } else { - return this._isUTC ? offset : this._d.getTimezoneOffset(); - } - return this; - }, - - zoneAbbr : function () { - return this._isUTC ? 'UTC' : ''; - }, - - zoneName : function () { - return this._isUTC ? 'Coordinated Universal Time' : ''; - }, - - parseZone : function () { - if (this._tzm) { - this.zone(this._tzm); - } else if (typeof this._i === 'string') { - this.zone(this._i); - } - return this; - }, - - hasAlignedHourOffset : function (input) { - if (!input) { - input = 0; - } - else { - input = moment(input).zone(); - } - - return (this.zone() - input) % 60 === 0; - }, - - daysInMonth : function () { - return daysInMonth(this.year(), this.month()); - }, - - dayOfYear : function (input) { - var dayOfYear = round((moment(this).startOf('day') - moment(this).startOf('year')) / 864e5) + 1; - return input == null ? dayOfYear : this.add((input - dayOfYear), 'd'); - }, - - quarter : function (input) { - return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3); - }, - - weekYear : function (input) { - var year = weekOfYear(this, this.localeData()._week.dow, this.localeData()._week.doy).year; - return input == null ? year : this.add((input - year), 'y'); - }, - - isoWeekYear : function (input) { - var year = weekOfYear(this, 1, 4).year; - return input == null ? year : this.add((input - year), 'y'); - }, - - week : function (input) { - var week = this.localeData().week(this); - return input == null ? week : this.add((input - week) * 7, 'd'); - }, - - isoWeek : function (input) { - var week = weekOfYear(this, 1, 4).week; - return input == null ? week : this.add((input - week) * 7, 'd'); - }, - - weekday : function (input) { - var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; - return input == null ? weekday : this.add(input - weekday, 'd'); - }, - - isoWeekday : function (input) { - // behaves the same as moment#day except - // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6) - // as a setter, sunday should belong to the previous week. - return input == null ? this.day() || 7 : this.day(this.day() % 7 ? input : input - 7); - }, - - isoWeeksInYear : function () { - return weeksInYear(this.year(), 1, 4); - }, - - weeksInYear : function () { - var weekInfo = this.localeData()._week; - return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); - }, - - get : function (units) { - units = normalizeUnits(units); - return this[units](); - }, - - set : function (units, value) { - units = normalizeUnits(units); - if (typeof this[units] === 'function') { - this[units](value); - } - return this; - }, - - // If passed a locale key, it will set the locale for this - // instance. Otherwise, it will return the locale configuration - // variables for this instance. - locale : function (key) { - if (key === undefined) { - return this._locale._abbr; - } else { - this._locale = moment.localeData(key); - return this; - } - }, - - lang : deprecate( - "moment().lang() is deprecated. Use moment().localeData() instead.", - function (key) { - if (key === undefined) { - return this.localeData(); - } else { - this._locale = moment.localeData(key); - return this; - } - } - ), - - localeData : function () { - return this._locale; - } - }); - - function rawMonthSetter(mom, value) { - var dayOfMonth; - - // TODO: Move this out of here! - if (typeof value === 'string') { - value = mom.localeData().monthsParse(value); - // TODO: Another silent failure? - if (typeof value !== 'number') { - return mom; - } - } - - dayOfMonth = Math.min(mom.date(), - daysInMonth(mom.year(), value)); - mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth); - return mom; - } - - function rawGetter(mom, unit) { - return mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit](); - } - - function rawSetter(mom, unit, value) { - if (unit === 'Month') { - return rawMonthSetter(mom, value); - } else { - return mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value); - } - } - - function makeAccessor(unit, keepTime) { - return function (value) { - if (value != null) { - rawSetter(this, unit, value); - moment.updateOffset(this, keepTime); - return this; - } else { - return rawGetter(this, unit); - } - }; - } - - moment.fn.millisecond = moment.fn.milliseconds = makeAccessor('Milliseconds', false); - moment.fn.second = moment.fn.seconds = makeAccessor('Seconds', false); - moment.fn.minute = moment.fn.minutes = makeAccessor('Minutes', false); - // Setting the hour should keep the time, because the user explicitly - // specified which hour he wants. So trying to maintain the same hour (in - // a new timezone) makes sense. Adding/subtracting hours does not follow - // this rule. - moment.fn.hour = moment.fn.hours = makeAccessor('Hours', true); - // moment.fn.month is defined separately - moment.fn.date = makeAccessor('Date', true); - moment.fn.dates = deprecate('dates accessor is deprecated. Use date instead.', makeAccessor('Date', true)); - moment.fn.year = makeAccessor('FullYear', true); - moment.fn.years = deprecate('years accessor is deprecated. Use year instead.', makeAccessor('FullYear', true)); - - // add plural methods - moment.fn.days = moment.fn.day; - moment.fn.months = moment.fn.month; - moment.fn.weeks = moment.fn.week; - moment.fn.isoWeeks = moment.fn.isoWeek; - moment.fn.quarters = moment.fn.quarter; - - // add aliased format methods - moment.fn.toJSON = moment.fn.toISOString; - - /************************************ - Duration Prototype - ************************************/ - - - function daysToYears (days) { - // 400 years have 146097 days (taking into account leap year rules) - return days * 400 / 146097; - } - - function yearsToDays (years) { - // years * 365 + absRound(years / 4) - - // absRound(years / 100) + absRound(years / 400); - return years * 146097 / 400; - } - - extend(moment.duration.fn = Duration.prototype, { - - _bubble : function () { - var milliseconds = this._milliseconds, - days = this._days, - months = this._months, - data = this._data, - seconds, minutes, hours, years = 0; - - // The following code bubbles up values, see the tests for - // examples of what that means. - data.milliseconds = milliseconds % 1000; - - seconds = absRound(milliseconds / 1000); - data.seconds = seconds % 60; - - minutes = absRound(seconds / 60); - data.minutes = minutes % 60; - - hours = absRound(minutes / 60); - data.hours = hours % 24; - - days += absRound(hours / 24); - - // Accurately convert days to years, assume start from year 0. - years = absRound(daysToYears(days)); - days -= absRound(yearsToDays(years)); - - // 30 days to a month - // TODO (iskren): Use anchor date (like 1st Jan) to compute this. - months += absRound(days / 30); - days %= 30; - - // 12 months -> 1 year - years += absRound(months / 12); - months %= 12; - - data.days = days; - data.months = months; - data.years = years; - }, - - abs : function () { - this._milliseconds = Math.abs(this._milliseconds); - this._days = Math.abs(this._days); - this._months = Math.abs(this._months); - - this._data.milliseconds = Math.abs(this._data.milliseconds); - this._data.seconds = Math.abs(this._data.seconds); - this._data.minutes = Math.abs(this._data.minutes); - this._data.hours = Math.abs(this._data.hours); - this._data.months = Math.abs(this._data.months); - this._data.years = Math.abs(this._data.years); - - return this; - }, - - weeks : function () { - return absRound(this.days() / 7); - }, - - valueOf : function () { - return this._milliseconds + - this._days * 864e5 + - (this._months % 12) * 2592e6 + - toInt(this._months / 12) * 31536e6; - }, - - humanize : function (withSuffix) { - var output = relativeTime(this, !withSuffix, this.localeData()); - - if (withSuffix) { - output = this.localeData().pastFuture(+this, output); - } - - return this.localeData().postformat(output); - }, - - add : function (input, val) { - // supports only 2.0-style add(1, 's') or add(moment) - var dur = moment.duration(input, val); - - this._milliseconds += dur._milliseconds; - this._days += dur._days; - this._months += dur._months; - - this._bubble(); - - return this; - }, - - subtract : function (input, val) { - var dur = moment.duration(input, val); - - this._milliseconds -= dur._milliseconds; - this._days -= dur._days; - this._months -= dur._months; - - this._bubble(); - - return this; - }, - - get : function (units) { - units = normalizeUnits(units); - return this[units.toLowerCase() + 's'](); - }, - - as : function (units) { - var days, months; - units = normalizeUnits(units); - - days = this._days + this._milliseconds / 864e5; - if (units === 'month' || units === 'year') { - months = this._months + daysToYears(days) * 12; - return units === 'month' ? months : months / 12; - } else { - days += yearsToDays(this._months / 12); - switch (units) { - case 'week': return days / 7; - case 'day': return days; - case 'hour': return days * 24; - case 'minute': return days * 24 * 60; - case 'second': return days * 24 * 60 * 60; - case 'millisecond': return days * 24 * 60 * 60 * 1000; - default: throw new Error('Unknown unit ' + units); - } - } - }, - - lang : moment.fn.lang, - locale : moment.fn.locale, - - toIsoString : deprecate( - "toIsoString() is deprecated. Please use toISOString() instead " + - "(notice the capitals)", - function () { - return this.toISOString(); - } - ), - - toISOString : function () { - // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js - var years = Math.abs(this.years()), - months = Math.abs(this.months()), - days = Math.abs(this.days()), - hours = Math.abs(this.hours()), - minutes = Math.abs(this.minutes()), - seconds = Math.abs(this.seconds() + this.milliseconds() / 1000); - - if (!this.asSeconds()) { - // this is the same as C#'s (Noda) and python (isodate)... - // but not other JS (goog.date) - return 'P0D'; - } - - return (this.asSeconds() < 0 ? '-' : '') + - 'P' + - (years ? years + 'Y' : '') + - (months ? months + 'M' : '') + - (days ? days + 'D' : '') + - ((hours || minutes || seconds) ? 'T' : '') + - (hours ? hours + 'H' : '') + - (minutes ? minutes + 'M' : '') + - (seconds ? seconds + 'S' : ''); - }, - - localeData : function () { - return this._locale; - } - }); - - function makeDurationGetter(name) { - moment.duration.fn[name] = function () { - return this._data[name]; - }; - } - - for (i in unitMillisecondFactors) { - if (unitMillisecondFactors.hasOwnProperty(i)) { - makeDurationGetter(i.toLowerCase()); - } - } - - moment.duration.fn.asMilliseconds = function () { - return this.as('ms'); - }; - moment.duration.fn.asSeconds = function () { - return this.as('s'); - }; - moment.duration.fn.asMinutes = function () { - return this.as('m'); - }; - moment.duration.fn.asHours = function () { - return this.as('h'); - }; - moment.duration.fn.asDays = function () { - return this.as('d'); - }; - moment.duration.fn.asWeeks = function () { - return this.as('weeks'); - }; - moment.duration.fn.asMonths = function () { - return this.as('M'); - }; - moment.duration.fn.asYears = function () { - return this.as('y'); - }; - - /************************************ - Default Locale - ************************************/ - - - // Set default locale, other locale will inherit from English. - moment.locale('en', { - ordinal : function (number) { - var b = number % 10, - output = (toInt(number % 100 / 10) === 1) ? 'th' : - (b === 1) ? 'st' : - (b === 2) ? 'nd' : - (b === 3) ? 'rd' : 'th'; - return number + output; - } - }); - - /* EMBED_LOCALES */ - - /************************************ - Exposing Moment - ************************************/ - - function makeGlobal(shouldDeprecate) { - /*global ender:false */ - if (typeof ender !== 'undefined') { - return; - } - oldGlobalMoment = globalScope.moment; - if (shouldDeprecate) { - globalScope.moment = deprecate( - 'Accessing Moment through the global scope is ' + - 'deprecated, and will be removed in an upcoming ' + - 'release.', - moment); - } else { - globalScope.moment = moment; - } - } - - // CommonJS module is defined - if (hasModule) { - module.exports = moment; - } else if (typeof define === 'function' && define.amd) { - define('moment', function (require, exports, module) { - if (module.config && module.config() && module.config().noGlobal === true) { - // release the global variable - globalScope.moment = oldGlobalMoment; - } - - return moment; - }); - makeGlobal(true); - } else { - makeGlobal(); - } -}).call(this); \ No newline at end of file diff --git a/openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-daterangepicker/moment.min.js b/openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-daterangepicker/moment.min.js deleted file mode 100644 index 197b5488..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-daterangepicker/moment.min.js +++ /dev/null @@ -1,6 +0,0 @@ -//! moment.js -//! version : 2.8.1 -//! authors : Tim Wood, Iskren Chernev, Moment.js contributors -//! license : MIT -//! momentjs.com -(function(a){function b(a,b,c){switch(arguments.length){case 2:return null!=a?a:b;case 3:return null!=a?a:null!=b?b:c;default:throw new Error("Implement me")}}function c(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1}}function d(a){rb.suppressDeprecationWarnings===!1&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+a)}function e(a,b){var c=!0;return l(function(){return c&&(d(a),c=!1),b.apply(this,arguments)},b)}function f(a,b){nc[a]||(d(b),nc[a]=!0)}function g(a,b){return function(c){return o(a.call(this,c),b)}}function h(a,b){return function(c){return this.localeData().ordinal(a.call(this,c),b)}}function i(){}function j(a,b){b!==!1&&E(a),m(this,a),this._d=new Date(+a._d)}function k(a){var b=x(a),c=b.year||0,d=b.quarter||0,e=b.month||0,f=b.week||0,g=b.day||0,h=b.hour||0,i=b.minute||0,j=b.second||0,k=b.millisecond||0;this._milliseconds=+k+1e3*j+6e4*i+36e5*h,this._days=+g+7*f,this._months=+e+3*d+12*c,this._data={},this._locale=rb.localeData(),this._bubble()}function l(a,b){for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c]);return b.hasOwnProperty("toString")&&(a.toString=b.toString),b.hasOwnProperty("valueOf")&&(a.valueOf=b.valueOf),a}function m(a,b){var c,d,e;if("undefined"!=typeof b._isAMomentObject&&(a._isAMomentObject=b._isAMomentObject),"undefined"!=typeof b._i&&(a._i=b._i),"undefined"!=typeof b._f&&(a._f=b._f),"undefined"!=typeof b._l&&(a._l=b._l),"undefined"!=typeof b._strict&&(a._strict=b._strict),"undefined"!=typeof b._tzm&&(a._tzm=b._tzm),"undefined"!=typeof b._isUTC&&(a._isUTC=b._isUTC),"undefined"!=typeof b._offset&&(a._offset=b._offset),"undefined"!=typeof b._pf&&(a._pf=b._pf),"undefined"!=typeof b._locale&&(a._locale=b._locale),Fb.length>0)for(c in Fb)d=Fb[c],e=b[d],"undefined"!=typeof e&&(a[d]=e);return a}function n(a){return 0>a?Math.ceil(a):Math.floor(a)}function o(a,b,c){for(var d=""+Math.abs(a),e=a>=0;d.lengthd;d++)(c&&a[d]!==b[d]||!c&&z(a[d])!==z(b[d]))&&g++;return g+f}function w(a){if(a){var b=a.toLowerCase().replace(/(.)s$/,"$1");a=gc[a]||hc[b]||b}return a}function x(a){var b,c,d={};for(c in a)a.hasOwnProperty(c)&&(b=w(c),b&&(d[b]=a[c]));return d}function y(b){var c,d;if(0===b.indexOf("week"))c=7,d="day";else{if(0!==b.indexOf("month"))return;c=12,d="month"}rb[b]=function(e,f){var g,h,i=rb._locale[b],j=[];if("number"==typeof e&&(f=e,e=a),h=function(a){var b=rb().utc().set(d,a);return i.call(rb._locale,b,e||"")},null!=f)return h(f);for(g=0;c>g;g++)j.push(h(g));return j}}function z(a){var b=+a,c=0;return 0!==b&&isFinite(b)&&(c=b>=0?Math.floor(b):Math.ceil(b)),c}function A(a,b){return new Date(Date.UTC(a,b+1,0)).getUTCDate()}function B(a,b,c){return fb(rb([a,11,31+b-c]),b,c).week}function C(a){return D(a)?366:365}function D(a){return a%4===0&&a%100!==0||a%400===0}function E(a){var b;a._a&&-2===a._pf.overflow&&(b=a._a[yb]<0||a._a[yb]>11?yb:a._a[zb]<1||a._a[zb]>A(a._a[xb],a._a[yb])?zb:a._a[Ab]<0||a._a[Ab]>23?Ab:a._a[Bb]<0||a._a[Bb]>59?Bb:a._a[Cb]<0||a._a[Cb]>59?Cb:a._a[Db]<0||a._a[Db]>999?Db:-1,a._pf._overflowDayOfYear&&(xb>b||b>zb)&&(b=zb),a._pf.overflow=b)}function F(a){return null==a._isValid&&(a._isValid=!isNaN(a._d.getTime())&&a._pf.overflow<0&&!a._pf.empty&&!a._pf.invalidMonth&&!a._pf.nullInput&&!a._pf.invalidFormat&&!a._pf.userInvalidated,a._strict&&(a._isValid=a._isValid&&0===a._pf.charsLeftOver&&0===a._pf.unusedTokens.length)),a._isValid}function G(a){return a?a.toLowerCase().replace("_","-"):a}function H(a){for(var b,c,d,e,f=0;f0;){if(d=I(e.slice(0,b).join("-")))return d;if(c&&c.length>=b&&v(e,c,!0)>=b-1)break;b--}f++}return null}function I(a){var b=null;if(!Eb[a]&&Gb)try{b=rb.locale(),require("./locale/"+a),rb.locale(b)}catch(c){}return Eb[a]}function J(a,b){return b._isUTC?rb(a).zone(b._offset||0):rb(a).local()}function K(a){return a.match(/\[[\s\S]/)?a.replace(/^\[|\]$/g,""):a.replace(/\\/g,"")}function L(a){var b,c,d=a.match(Kb);for(b=0,c=d.length;c>b;b++)d[b]=mc[d[b]]?mc[d[b]]:K(d[b]);return function(e){var f="";for(b=0;c>b;b++)f+=d[b]instanceof Function?d[b].call(e,a):d[b];return f}}function M(a,b){return a.isValid()?(b=N(b,a.localeData()),ic[b]||(ic[b]=L(b)),ic[b](a)):a.localeData().invalidDate()}function N(a,b){function c(a){return b.longDateFormat(a)||a}var d=5;for(Lb.lastIndex=0;d>=0&&Lb.test(a);)a=a.replace(Lb,c),Lb.lastIndex=0,d-=1;return a}function O(a,b){var c,d=b._strict;switch(a){case"Q":return Wb;case"DDDD":return Yb;case"YYYY":case"GGGG":case"gggg":return d?Zb:Ob;case"Y":case"G":case"g":return _b;case"YYYYYY":case"YYYYY":case"GGGGG":case"ggggg":return d?$b:Pb;case"S":if(d)return Wb;case"SS":if(d)return Xb;case"SSS":if(d)return Yb;case"DDD":return Nb;case"MMM":case"MMMM":case"dd":case"ddd":case"dddd":return Rb;case"a":case"A":return b._locale._meridiemParse;case"X":return Ub;case"Z":case"ZZ":return Sb;case"T":return Tb;case"SSSS":return Qb;case"MM":case"DD":case"YY":case"GG":case"gg":case"HH":case"hh":case"mm":case"ss":case"ww":case"WW":return d?Xb:Mb;case"M":case"D":case"d":case"H":case"h":case"m":case"s":case"w":case"W":case"e":case"E":return Mb;case"Do":return Vb;default:return c=new RegExp(X(W(a.replace("\\","")),"i"))}}function P(a){a=a||"";var b=a.match(Sb)||[],c=b[b.length-1]||[],d=(c+"").match(ec)||["-",0,0],e=+(60*d[1])+z(d[2]);return"+"===d[0]?-e:e}function Q(a,b,c){var d,e=c._a;switch(a){case"Q":null!=b&&(e[yb]=3*(z(b)-1));break;case"M":case"MM":null!=b&&(e[yb]=z(b)-1);break;case"MMM":case"MMMM":d=c._locale.monthsParse(b),null!=d?e[yb]=d:c._pf.invalidMonth=b;break;case"D":case"DD":null!=b&&(e[zb]=z(b));break;case"Do":null!=b&&(e[zb]=z(parseInt(b,10)));break;case"DDD":case"DDDD":null!=b&&(c._dayOfYear=z(b));break;case"YY":e[xb]=rb.parseTwoDigitYear(b);break;case"YYYY":case"YYYYY":case"YYYYYY":e[xb]=z(b);break;case"a":case"A":c._isPm=c._locale.isPM(b);break;case"H":case"HH":case"h":case"hh":e[Ab]=z(b);break;case"m":case"mm":e[Bb]=z(b);break;case"s":case"ss":e[Cb]=z(b);break;case"S":case"SS":case"SSS":case"SSSS":e[Db]=z(1e3*("0."+b));break;case"X":c._d=new Date(1e3*parseFloat(b));break;case"Z":case"ZZ":c._useUTC=!0,c._tzm=P(b);break;case"dd":case"ddd":case"dddd":d=c._locale.weekdaysParse(b),null!=d?(c._w=c._w||{},c._w.d=d):c._pf.invalidWeekday=b;break;case"w":case"ww":case"W":case"WW":case"d":case"e":case"E":a=a.substr(0,1);case"gggg":case"GGGG":case"GGGGG":a=a.substr(0,2),b&&(c._w=c._w||{},c._w[a]=z(b));break;case"gg":case"GG":c._w=c._w||{},c._w[a]=rb.parseTwoDigitYear(b)}}function R(a){var c,d,e,f,g,h,i;c=a._w,null!=c.GG||null!=c.W||null!=c.E?(g=1,h=4,d=b(c.GG,a._a[xb],fb(rb(),1,4).year),e=b(c.W,1),f=b(c.E,1)):(g=a._locale._week.dow,h=a._locale._week.doy,d=b(c.gg,a._a[xb],fb(rb(),g,h).year),e=b(c.w,1),null!=c.d?(f=c.d,g>f&&++e):f=null!=c.e?c.e+g:g),i=gb(d,e,f,h,g),a._a[xb]=i.year,a._dayOfYear=i.dayOfYear}function S(a){var c,d,e,f,g=[];if(!a._d){for(e=U(a),a._w&&null==a._a[zb]&&null==a._a[yb]&&R(a),a._dayOfYear&&(f=b(a._a[xb],e[xb]),a._dayOfYear>C(f)&&(a._pf._overflowDayOfYear=!0),d=bb(f,0,a._dayOfYear),a._a[yb]=d.getUTCMonth(),a._a[zb]=d.getUTCDate()),c=0;3>c&&null==a._a[c];++c)a._a[c]=g[c]=e[c];for(;7>c;c++)a._a[c]=g[c]=null==a._a[c]?2===c?1:0:a._a[c];a._d=(a._useUTC?bb:ab).apply(null,g),null!=a._tzm&&a._d.setUTCMinutes(a._d.getUTCMinutes()+a._tzm)}}function T(a){var b;a._d||(b=x(a._i),a._a=[b.year,b.month,b.day,b.hour,b.minute,b.second,b.millisecond],S(a))}function U(a){var b=new Date;return a._useUTC?[b.getUTCFullYear(),b.getUTCMonth(),b.getUTCDate()]:[b.getFullYear(),b.getMonth(),b.getDate()]}function V(a){if(a._f===rb.ISO_8601)return void Z(a);a._a=[],a._pf.empty=!0;var b,c,d,e,f,g=""+a._i,h=g.length,i=0;for(d=N(a._f,a._locale).match(Kb)||[],b=0;b0&&a._pf.unusedInput.push(f),g=g.slice(g.indexOf(c)+c.length),i+=c.length),mc[e]?(c?a._pf.empty=!1:a._pf.unusedTokens.push(e),Q(e,c,a)):a._strict&&!c&&a._pf.unusedTokens.push(e);a._pf.charsLeftOver=h-i,g.length>0&&a._pf.unusedInput.push(g),a._isPm&&a._a[Ab]<12&&(a._a[Ab]+=12),a._isPm===!1&&12===a._a[Ab]&&(a._a[Ab]=0),S(a),E(a)}function W(a){return a.replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(a,b,c,d,e){return b||c||d||e})}function X(a){return a.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function Y(a){var b,d,e,f,g;if(0===a._f.length)return a._pf.invalidFormat=!0,void(a._d=new Date(0/0));for(f=0;fg)&&(e=g,d=b));l(a,d||b)}function Z(a){var b,c,d=a._i,e=ac.exec(d);if(e){for(a._pf.iso=!0,b=0,c=cc.length;c>b;b++)if(cc[b][1].exec(d)){a._f=cc[b][0]+(e[6]||" ");break}for(b=0,c=dc.length;c>b;b++)if(dc[b][1].exec(d)){a._f+=dc[b][0];break}d.match(Sb)&&(a._f+="Z"),V(a)}else a._isValid=!1}function $(a){Z(a),a._isValid===!1&&(delete a._isValid,rb.createFromInputFallback(a))}function _(b){var c,d=b._i;d===a?b._d=new Date:u(d)?b._d=new Date(+d):null!==(c=Hb.exec(d))?b._d=new Date(+c[1]):"string"==typeof d?$(b):t(d)?(b._a=d.slice(0),S(b)):"object"==typeof d?T(b):"number"==typeof d?b._d=new Date(d):rb.createFromInputFallback(b)}function ab(a,b,c,d,e,f,g){var h=new Date(a,b,c,d,e,f,g);return 1970>a&&h.setFullYear(a),h}function bb(a){var b=new Date(Date.UTC.apply(null,arguments));return 1970>a&&b.setUTCFullYear(a),b}function cb(a,b){if("string"==typeof a)if(isNaN(a)){if(a=b.weekdaysParse(a),"number"!=typeof a)return null}else a=parseInt(a,10);return a}function db(a,b,c,d,e){return e.relativeTime(b||1,!!c,a,d)}function eb(a,b,c){var d=rb.duration(a).abs(),e=wb(d.as("s")),f=wb(d.as("m")),g=wb(d.as("h")),h=wb(d.as("d")),i=wb(d.as("M")),j=wb(d.as("y")),k=e0,k[4]=c,db.apply({},k)}function fb(a,b,c){var d,e=c-b,f=c-a.day();return f>e&&(f-=7),e-7>f&&(f+=7),d=rb(a).add(f,"d"),{week:Math.ceil(d.dayOfYear()/7),year:d.year()}}function gb(a,b,c,d,e){var f,g,h=bb(a,0,1).getUTCDay();return h=0===h?7:h,c=null!=c?c:e,f=e-h+(h>d?7:0)-(e>h?7:0),g=7*(b-1)+(c-e)+f+1,{year:g>0?a:a-1,dayOfYear:g>0?g:C(a-1)+g}}function hb(b){var c=b._i,d=b._f;return b._locale=b._locale||rb.localeData(b._l),null===c||d===a&&""===c?rb.invalid({nullInput:!0}):("string"==typeof c&&(b._i=c=b._locale.preparse(c)),rb.isMoment(c)?new j(c,!0):(d?t(d)?Y(b):V(b):_(b),new j(b)))}function ib(a,b){var c,d;if(1===b.length&&t(b[0])&&(b=b[0]),!b.length)return rb();for(c=b[0],d=1;d=0?"+":"-";return b+o(Math.abs(a),6)},gg:function(){return o(this.weekYear()%100,2)},gggg:function(){return o(this.weekYear(),4)},ggggg:function(){return o(this.weekYear(),5)},GG:function(){return o(this.isoWeekYear()%100,2)},GGGG:function(){return o(this.isoWeekYear(),4)},GGGGG:function(){return o(this.isoWeekYear(),5)},e:function(){return this.weekday()},E:function(){return this.isoWeekday()},a:function(){return this.localeData().meridiem(this.hours(),this.minutes(),!0)},A:function(){return this.localeData().meridiem(this.hours(),this.minutes(),!1)},H:function(){return this.hours()},h:function(){return this.hours()%12||12},m:function(){return this.minutes()},s:function(){return this.seconds()},S:function(){return z(this.milliseconds()/100)},SS:function(){return o(z(this.milliseconds()/10),2)},SSS:function(){return o(this.milliseconds(),3)},SSSS:function(){return o(this.milliseconds(),3)},Z:function(){var a=-this.zone(),b="+";return 0>a&&(a=-a,b="-"),b+o(z(a/60),2)+":"+o(z(a)%60,2)},ZZ:function(){var a=-this.zone(),b="+";return 0>a&&(a=-a,b="-"),b+o(z(a/60),2)+o(z(a)%60,2)},z:function(){return this.zoneAbbr()},zz:function(){return this.zoneName()},X:function(){return this.unix()},Q:function(){return this.quarter()}},nc={},oc=["months","monthsShort","weekdays","weekdaysShort","weekdaysMin"];kc.length;)tb=kc.pop(),mc[tb+"o"]=h(mc[tb],tb);for(;lc.length;)tb=lc.pop(),mc[tb+tb]=g(mc[tb],2);mc.DDDD=g(mc.DDD,3),l(i.prototype,{set:function(a){var b,c;for(c in a)b=a[c],"function"==typeof b?this[c]=b:this["_"+c]=b},_months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),months:function(a){return this._months[a.month()]},_monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),monthsShort:function(a){return this._monthsShort[a.month()]},monthsParse:function(a){var b,c,d;for(this._monthsParse||(this._monthsParse=[]),b=0;12>b;b++)if(this._monthsParse[b]||(c=rb.utc([2e3,b]),d="^"+this.months(c,"")+"|^"+this.monthsShort(c,""),this._monthsParse[b]=new RegExp(d.replace(".",""),"i")),this._monthsParse[b].test(a))return b},_weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdays:function(a){return this._weekdays[a.day()]},_weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysShort:function(a){return this._weekdaysShort[a.day()]},_weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),weekdaysMin:function(a){return this._weekdaysMin[a.day()]},weekdaysParse:function(a){var b,c,d;for(this._weekdaysParse||(this._weekdaysParse=[]),b=0;7>b;b++)if(this._weekdaysParse[b]||(c=rb([2e3,1]).day(b),d="^"+this.weekdays(c,"")+"|^"+this.weekdaysShort(c,"")+"|^"+this.weekdaysMin(c,""),this._weekdaysParse[b]=new RegExp(d.replace(".",""),"i")),this._weekdaysParse[b].test(a))return b},_longDateFormat:{LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY LT",LLLL:"dddd, MMMM D, YYYY LT"},longDateFormat:function(a){var b=this._longDateFormat[a];return!b&&this._longDateFormat[a.toUpperCase()]&&(b=this._longDateFormat[a.toUpperCase()].replace(/MMMM|MM|DD|dddd/g,function(a){return a.slice(1)}),this._longDateFormat[a]=b),b},isPM:function(a){return"p"===(a+"").toLowerCase().charAt(0)},_meridiemParse:/[ap]\.?m?\.?/i,meridiem:function(a,b,c){return a>11?c?"pm":"PM":c?"am":"AM"},_calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},calendar:function(a,b){var c=this._calendar[a];return"function"==typeof c?c.apply(b):c},_relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},relativeTime:function(a,b,c,d){var e=this._relativeTime[c];return"function"==typeof e?e(a,b,c,d):e.replace(/%d/i,a)},pastFuture:function(a,b){var c=this._relativeTime[a>0?"future":"past"];return"function"==typeof c?c(b):c.replace(/%s/i,b)},ordinal:function(a){return this._ordinal.replace("%d",a)},_ordinal:"%d",preparse:function(a){return a},postformat:function(a){return a},week:function(a){return fb(a,this._week.dow,this._week.doy).week},_week:{dow:0,doy:6},_invalidDate:"Invalid date",invalidDate:function(){return this._invalidDate}}),rb=function(b,d,e,f){var g;return"boolean"==typeof e&&(f=e,e=a),g={},g._isAMomentObject=!0,g._i=b,g._f=d,g._l=e,g._strict=f,g._isUTC=!1,g._pf=c(),hb(g)},rb.suppressDeprecationWarnings=!1,rb.createFromInputFallback=e("moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to https://github.com/moment/moment/issues/1407 for more info.",function(a){a._d=new Date(a._i)}),rb.min=function(){var a=[].slice.call(arguments,0);return ib("isBefore",a)},rb.max=function(){var a=[].slice.call(arguments,0);return ib("isAfter",a)},rb.utc=function(b,d,e,f){var g;return"boolean"==typeof e&&(f=e,e=a),g={},g._isAMomentObject=!0,g._useUTC=!0,g._isUTC=!0,g._l=e,g._i=b,g._f=d,g._strict=f,g._pf=c(),hb(g).utc()},rb.unix=function(a){return rb(1e3*a)},rb.duration=function(a,b){var c,d,e,f,g=a,h=null;return rb.isDuration(a)?g={ms:a._milliseconds,d:a._days,M:a._months}:"number"==typeof a?(g={},b?g[b]=a:g.milliseconds=a):(h=Ib.exec(a))?(c="-"===h[1]?-1:1,g={y:0,d:z(h[zb])*c,h:z(h[Ab])*c,m:z(h[Bb])*c,s:z(h[Cb])*c,ms:z(h[Db])*c}):(h=Jb.exec(a))?(c="-"===h[1]?-1:1,e=function(a){var b=a&&parseFloat(a.replace(",","."));return(isNaN(b)?0:b)*c},g={y:e(h[2]),M:e(h[3]),d:e(h[4]),h:e(h[5]),m:e(h[6]),s:e(h[7]),w:e(h[8])}):"object"==typeof g&&("from"in g||"to"in g)&&(f=q(rb(g.from),rb(g.to)),g={},g.ms=f.milliseconds,g.M=f.months),d=new k(g),rb.isDuration(a)&&a.hasOwnProperty("_locale")&&(d._locale=a._locale),d},rb.version=ub,rb.defaultFormat=bc,rb.ISO_8601=function(){},rb.momentProperties=Fb,rb.updateOffset=function(){},rb.relativeTimeThreshold=function(b,c){return jc[b]===a?!1:c===a?jc[b]:(jc[b]=c,!0)},rb.lang=e("moment.lang is deprecated. Use moment.locale instead.",function(a,b){return rb.locale(a,b)}),rb.locale=function(a,b){var c;return a&&(c="undefined"!=typeof b?rb.defineLocale(a,b):rb.localeData(a),c&&(rb.duration._locale=rb._locale=c)),rb._locale._abbr},rb.defineLocale=function(a,b){return null!==b?(b.abbr=a,Eb[a]||(Eb[a]=new i),Eb[a].set(b),rb.locale(a),Eb[a]):(delete Eb[a],null)},rb.langData=e("moment.langData is deprecated. Use moment.localeData instead.",function(a){return rb.localeData(a)}),rb.localeData=function(a){var b;if(a&&a._locale&&a._locale._abbr&&(a=a._locale._abbr),!a)return rb._locale;if(!t(a)){if(b=I(a))return b;a=[a]}return H(a)},rb.isMoment=function(a){return a instanceof j||null!=a&&a.hasOwnProperty("_isAMomentObject")},rb.isDuration=function(a){return a instanceof k};for(tb=oc.length-1;tb>=0;--tb)y(oc[tb]);rb.normalizeUnits=function(a){return w(a)},rb.invalid=function(a){var b=rb.utc(0/0);return null!=a?l(b._pf,a):b._pf.userInvalidated=!0,b},rb.parseZone=function(){return rb.apply(null,arguments).parseZone()},rb.parseTwoDigitYear=function(a){return z(a)+(z(a)>68?1900:2e3)},l(rb.fn=j.prototype,{clone:function(){return rb(this)},valueOf:function(){return+this._d+6e4*(this._offset||0)},unix:function(){return Math.floor(+this/1e3)},toString:function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},toDate:function(){return this._offset?new Date(+this):this._d},toISOString:function(){var a=rb(this).utc();return 00:!1},parsingFlags:function(){return l({},this._pf)},invalidAt:function(){return this._pf.overflow},utc:function(a){return this.zone(0,a)},local:function(a){return this._isUTC&&(this.zone(0,a),this._isUTC=!1,a&&this.add(this._d.getTimezoneOffset(),"m")),this},format:function(a){var b=M(this,a||rb.defaultFormat);return this.localeData().postformat(b)},add:r(1,"add"),subtract:r(-1,"subtract"),diff:function(a,b,c){var d,e,f=J(a,this),g=6e4*(this.zone()-f.zone());return b=w(b),"year"===b||"month"===b?(d=432e5*(this.daysInMonth()+f.daysInMonth()),e=12*(this.year()-f.year())+(this.month()-f.month()),e+=(this-rb(this).startOf("month")-(f-rb(f).startOf("month")))/d,e-=6e4*(this.zone()-rb(this).startOf("month").zone()-(f.zone()-rb(f).startOf("month").zone()))/d,"year"===b&&(e/=12)):(d=this-f,e="second"===b?d/1e3:"minute"===b?d/6e4:"hour"===b?d/36e5:"day"===b?(d-g)/864e5:"week"===b?(d-g)/6048e5:d),c?e:n(e)},from:function(a,b){return rb.duration({to:this,from:a}).locale(this.locale()).humanize(!b)},fromNow:function(a){return this.from(rb(),a)},calendar:function(a){var b=a||rb(),c=J(b,this).startOf("day"),d=this.diff(c,"days",!0),e=-6>d?"sameElse":-1>d?"lastWeek":0>d?"lastDay":1>d?"sameDay":2>d?"nextDay":7>d?"nextWeek":"sameElse";return this.format(this.localeData().calendar(e,this))},isLeapYear:function(){return D(this.year())},isDST:function(){return this.zone()+rb(a).startOf(b)},isBefore:function(a,b){return b="undefined"!=typeof b?b:"millisecond",+this.clone().startOf(b)<+rb(a).startOf(b)},isSame:function(a,b){return b=b||"ms",+this.clone().startOf(b)===+J(a,this).startOf(b)},min:e("moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548",function(a){return a=rb.apply(null,arguments),this>a?this:a}),max:e("moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548",function(a){return a=rb.apply(null,arguments),a>this?this:a}),zone:function(a,b){var c,d=this._offset||0;return null==a?this._isUTC?d:this._d.getTimezoneOffset():("string"==typeof a&&(a=P(a)),Math.abs(a)<16&&(a=60*a),!this._isUTC&&b&&(c=this._d.getTimezoneOffset()),this._offset=a,this._isUTC=!0,null!=c&&this.subtract(c,"m"),d!==a&&(!b||this._changeInProgress?s(this,rb.duration(d-a,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,rb.updateOffset(this,!0),this._changeInProgress=null)),this)},zoneAbbr:function(){return this._isUTC?"UTC":""},zoneName:function(){return this._isUTC?"Coordinated Universal Time":""},parseZone:function(){return this._tzm?this.zone(this._tzm):"string"==typeof this._i&&this.zone(this._i),this},hasAlignedHourOffset:function(a){return a=a?rb(a).zone():0,(this.zone()-a)%60===0},daysInMonth:function(){return A(this.year(),this.month())},dayOfYear:function(a){var b=wb((rb(this).startOf("day")-rb(this).startOf("year"))/864e5)+1;return null==a?b:this.add(a-b,"d")},quarter:function(a){return null==a?Math.ceil((this.month()+1)/3):this.month(3*(a-1)+this.month()%3)},weekYear:function(a){var b=fb(this,this.localeData()._week.dow,this.localeData()._week.doy).year;return null==a?b:this.add(a-b,"y")},isoWeekYear:function(a){var b=fb(this,1,4).year;return null==a?b:this.add(a-b,"y")},week:function(a){var b=this.localeData().week(this);return null==a?b:this.add(7*(a-b),"d")},isoWeek:function(a){var b=fb(this,1,4).week;return null==a?b:this.add(7*(a-b),"d")},weekday:function(a){var b=(this.day()+7-this.localeData()._week.dow)%7;return null==a?b:this.add(a-b,"d")},isoWeekday:function(a){return null==a?this.day()||7:this.day(this.day()%7?a:a-7)},isoWeeksInYear:function(){return B(this.year(),1,4)},weeksInYear:function(){var a=this.localeData()._week;return B(this.year(),a.dow,a.doy)},get:function(a){return a=w(a),this[a]()},set:function(a,b){return a=w(a),"function"==typeof this[a]&&this[a](b),this},locale:function(b){return b===a?this._locale._abbr:(this._locale=rb.localeData(b),this)},lang:e("moment().lang() is deprecated. Use moment().localeData() instead.",function(b){return b===a?this.localeData():(this._locale=rb.localeData(b),this)}),localeData:function(){return this._locale}}),rb.fn.millisecond=rb.fn.milliseconds=mb("Milliseconds",!1),rb.fn.second=rb.fn.seconds=mb("Seconds",!1),rb.fn.minute=rb.fn.minutes=mb("Minutes",!1),rb.fn.hour=rb.fn.hours=mb("Hours",!0),rb.fn.date=mb("Date",!0),rb.fn.dates=e("dates accessor is deprecated. Use date instead.",mb("Date",!0)),rb.fn.year=mb("FullYear",!0),rb.fn.years=e("years accessor is deprecated. Use year instead.",mb("FullYear",!0)),rb.fn.days=rb.fn.day,rb.fn.months=rb.fn.month,rb.fn.weeks=rb.fn.week,rb.fn.isoWeeks=rb.fn.isoWeek,rb.fn.quarters=rb.fn.quarter,rb.fn.toJSON=rb.fn.toISOString,l(rb.duration.fn=k.prototype,{_bubble:function(){var a,b,c,d=this._milliseconds,e=this._days,f=this._months,g=this._data,h=0;g.milliseconds=d%1e3,a=n(d/1e3),g.seconds=a%60,b=n(a/60),g.minutes=b%60,c=n(b/60),g.hours=c%24,e+=n(c/24),h=n(nb(e)),e-=n(ob(h)),f+=n(e/30),e%=30,h+=n(f/12),f%=12,g.days=e,g.months=f,g.years=h},abs:function(){return this._milliseconds=Math.abs(this._milliseconds),this._days=Math.abs(this._days),this._months=Math.abs(this._months),this._data.milliseconds=Math.abs(this._data.milliseconds),this._data.seconds=Math.abs(this._data.seconds),this._data.minutes=Math.abs(this._data.minutes),this._data.hours=Math.abs(this._data.hours),this._data.months=Math.abs(this._data.months),this._data.years=Math.abs(this._data.years),this},weeks:function(){return n(this.days()/7)},valueOf:function(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*z(this._months/12)},humanize:function(a){var b=eb(this,!a,this.localeData());return a&&(b=this.localeData().pastFuture(+this,b)),this.localeData().postformat(b)},add:function(a,b){var c=rb.duration(a,b);return this._milliseconds+=c._milliseconds,this._days+=c._days,this._months+=c._months,this._bubble(),this},subtract:function(a,b){var c=rb.duration(a,b);return this._milliseconds-=c._milliseconds,this._days-=c._days,this._months-=c._months,this._bubble(),this},get:function(a){return a=w(a),this[a.toLowerCase()+"s"]()},as:function(a){var b,c;if(a=w(a),b=this._days+this._milliseconds/864e5,"month"===a||"year"===a)return c=this._months+12*nb(b),"month"===a?c:c/12;switch(b+=ob(this._months/12),a){case"week":return b/7;case"day":return b;case"hour":return 24*b;case"minute":return 24*b*60;case"second":return 24*b*60*60;case"millisecond":return 24*b*60*60*1e3;default:throw new Error("Unknown unit "+a)}},lang:rb.fn.lang,locale:rb.fn.locale,toIsoString:e("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",function(){return this.toISOString()}),toISOString:function(){var a=Math.abs(this.years()),b=Math.abs(this.months()),c=Math.abs(this.days()),d=Math.abs(this.hours()),e=Math.abs(this.minutes()),f=Math.abs(this.seconds()+this.milliseconds()/1e3);return this.asSeconds()?(this.asSeconds()<0?"-":"")+"P"+(a?a+"Y":"")+(b?b+"M":"")+(c?c+"D":"")+(d||e||f?"T":"")+(d?d+"H":"")+(e?e+"M":"")+(f?f+"S":""):"P0D"},localeData:function(){return this._locale}});for(tb in fc)fc.hasOwnProperty(tb)&&pb(tb.toLowerCase());rb.duration.fn.asMilliseconds=function(){return this.as("ms")},rb.duration.fn.asSeconds=function(){return this.as("s")},rb.duration.fn.asMinutes=function(){return this.as("m")},rb.duration.fn.asHours=function(){return this.as("h")},rb.duration.fn.asDays=function(){return this.as("d")},rb.duration.fn.asWeeks=function(){return this.as("weeks")},rb.duration.fn.asMonths=function(){return this.as("M")},rb.duration.fn.asYears=function(){return this.as("y")},rb.locale("en",{ordinal:function(a){var b=a%10,c=1===z(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c}}),Gb?module.exports=rb:"function"==typeof define&&define.amd?(define("moment",function(a,b,c){return c.config&&c.config()&&c.config().noGlobal===!0&&(vb.moment=sb),rb}),qb(!0)):qb()}).call(this); \ No newline at end of file diff --git a/openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-fileinput/css/fileinput.min.css b/openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-fileinput/css/fileinput.min.css deleted file mode 100644 index 924a7fe9..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-fileinput/css/fileinput.min.css +++ /dev/null @@ -1,11 +0,0 @@ -/*! - * @copyright Copyright © Kartik Visweswaran, Krajee.com, 2014 - 2015 - * @package bootstrap-fileinput - * @version 4.2.3 - * - * File input styling for Bootstrap 3.0 - * Built for Yii Framework 2.0 - * Author: Kartik Visweswaran - * Year: 2015 - * For more Yii related demos visit http://demos.krajee.com - */.file-input{overflow-x:auto}.file-loading{top:0;right:0;width:25px;height:25px;font-size:999px;text-align:right;color:#fff;background:transparent url(../image/loading.gif) top left no-repeat;border:none}.btn-file{position:relative;overflow:hidden}.btn-file input[type=file]{position:absolute;top:0;right:0;min-width:100%;min-height:100%;text-align:right;filter:alpha(opacity=0);opacity:0;background:none repeat scroll 0 0 transparent;cursor:inherit;display:block}.file-caption .glyphicon{display:inline-block;min-width:18px;margin-top:2px}.file-caption-name{display:inline-block;overflow:hidden;max-height:20px;padding-right:10px;word-break:break-all}.file-caption-ellipsis{position:absolute;right:10px;margin-top:-6px;font-size:1.2em;display:none;font-weight:700;cursor:default}.kv-has-ellipsis .file-caption-ellipsis{display:inline}.kv-has-ellipsis{padding-right:17px}.kv-search-container .kv-search-clear{position:absolute;padding:10px;right:0}.file-error-message{background-color:#f2dede;color:#a94442;text-align:center;border-radius:5px;padding:5px}.file-error-message pre,.file-error-message ul{margin:5px 0;text-align:left}.file-caption-disabled{background-color:#EEE;cursor:not-allowed;opacity:1}.file-input .btn .disabled,.file-input .btn[disabled]{cursor:not-allowed}.file-preview{border-radius:5px;border:1px solid #ddd;padding:5px;width:100%;margin-bottom:5px}.file-preview-frame{display:table;margin:8px;height:100px;border:1px solid #ddd;box-shadow:1px 1px 5px 0 #a2958a;padding:6px;float:left;text-align:center;vertical-align:middle}.file-preview-frame:hover{box-shadow:3px 3px 5px 0 #333}.file-preview-image{height:160px;vertical-align:text-center}.file-preview-text{width:160px;color:#428bca;font-size:11px;text-align:center}.file-preview-other{padding-top:20px;text-align:center}.file-preview-other i{font-size:2.4em}.file-other-error{width:100%;padding-top:30px;text-align:right}.file-input-ajax-new .fileinput-remove-button,.file-input-ajax-new .fileinput-upload-button,.file-input-new .close,.file-input-new .file-preview,.file-input-new .fileinput-remove-button,.file-input-new .fileinput-upload-button,.file-input-new .glyphicon-file{display:none}.loading{background:transparent url(../image/loading.gif) no-repeat scroll center center content-box!important}.wrap-indicator{font-weight:700;color:#245269;cursor:pointer}.file-actions{text-align:left}.file-footer-buttons{float:right}.file-thumbnail-footer .file-caption-name{padding-top:4px;font-size:11px;color:#777}.file-upload-indicator{padding-top:2px;cursor:default}.file-upload-indicator:hover{font-size:1.2em;font-weight:700;padding-top:0}.file-drop-zone{border:1px dashed #aaa;border-radius:4px;height:100%;text-align:center;vertical-align:middle;margin:12px 15px 12px 12px;padding:5px}.file-drop-zone-title{color:#aaa;font-size:30px;padding:20px 10px}.highlighted{border:2px dashed #999!important;background-color:#f0f0f0}.file-uploading{background-image:url(../image/loading-sm.gif);background-position:center bottom 10px;background-repeat:no-repeat;opacity:.6}.file-icon-large{font-size:1.2em} \ No newline at end of file diff --git a/openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-fileinput/img/loading-sm.gif b/openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-fileinput/img/loading-sm.gif deleted file mode 100644 index 44e3b7a0f702aa1d301468b1d6c1d74d45dfdfa4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2670 zcmb`Je@v5i9>LSr1(@@0hFth{;0&ijQR3npb})ArbBQ}PvxUrk9==i>-je&{`bYn0 zn)LJfykDR9({*{d^3^65#=>kEmYR~<(cUp}W8&ez9`;@Cv+TEYecW~T-rd+qu-ktq^cI?{N#Y-2bznz}@Wlou^?0COp;`YSDe?RQ|Tc54YcCq*3v~POu z=Q)qt<8AOhdGZ9Ce@UMNZ%`E#<|wqPl%!-T1wNGi6v$*^VoXMUfgA&)8H|&=avY{@ zJeN-^xjCUe&M)59EweXtoViM;a-1?pz|8ANLRhI=H=wp@r|+lJt@60`I1L>ikf9d z0~~r>SYAh`8ncKP#Y`em&991Ki+9$D<+Ah`h8ABLvp^+Tq&fmry95!A4*~{!r(W{r|twO<9E6hwX}% z)F~4zBCfrDD2L!G=moq=Ocm!kf(>!j#MWki`kE{G-BYoHbydNkr`YYfzkHJ}sdz&Z z8KyFYGObizP&mFNfL9$Pkl^BMW@H7Mj~&{~Y}&^@Em8az7i38?{{@hom-`@R{}EIl zuKr(+p!%I^SP+EozXRAQx&zv)Q;+jLkH^n1bF~-lxqi~zs6M>$2b`E?bDR1(oHROR zaB7GXUJ{zi)G5043^#qed;40J-ClCQog6(Hud5xphOP%&4#R>m7Bck%Y7iX-)s;GnT=AX8I6;x z*Ol?b-#BAm+c8m@;Zg6;uE=_2%jzUWr*x2ox8%paAn8qLY^bd(b;)ctlkU^fu=Vc3 zz;SN~k7AeP8RH2m;z z2CX1gkPsDhP~gugYVl&ptMm6Li~=Mu93%mmkyQ%qyHLgm8|ug3#{dSLkO}}pC4+2m z`Abd|+`DA@$4K%kR+rDRtj=pVseWU_SosF`XJ_(Mv(56PPTS5aAL87zteO7ON2zXW zXJVy1^(Mx0!G&0`_T@yc7N3_Iz0+VN*C^fuY4rdK8WyJhb56^W6%| zhv|@e@GJq}V9C%h00$|+q%bv<3=9s$WESlms9VW!FOl?MEbIgN3J@Vy2p1xL+O3%* z4%2yvY0~i3-n5pgHjU@SvC&L^4Rsa4mb2FHx-acsLminpiEGcb4^avWjB6bs?yxHv zFP>OoZm&@)|E$XG{cHFN;rjRP&k2G>fr0d>;EjE|0c(GfTT-1_oMa2pu0v=?C ziWR6(s{%i;LARh*1pqiF)TclTcn}}b?&(F5kHB?rd-LMljI3nO?V@)3zQ#dO-513t ztjcsEGqLW@n}vqVK-aY$rTULTyjJV(hyiVw^9O}%O%TO%-BuBoT7PVy_KKNUTkL36 z?~x1XsVjwnVnJz^Up>+9s|T|{G?2yf>OloQZy$sL`TErZnkDwpwn;{pv6^-mtgcw9 z_E@9A+pHJ039kOw(VR1!{Fzhc9qk-wO9+x3Qyrg@1UN60rpBE1jKy*kvzjY8GMB%rN zWSO@Pl7v*3SO+Q5wzobgsdpIf?Qr=duPeH-rgHWhu znosfxTsJ3QpXcCF1>~qGXs@ZJ zyw~IM73y!A^G>VZ8R)gNG&BU|KuYo)y+(NV^DdAFW5LeVJBBCMNfRtuR+y^ER&<(X zE7%B&e5#Z^`o7-@nEg_P~LI*N!rA^h{|;%@7gdIe0+9 zL6FPmK*NXRK=)=Qr!7yn1(?oIuvujqni9B8`-RfJ#pzQFR*0=zw6NbXTj0F1BLlZh zfVly?4JS*30beAWg%&SoyRsrS%M*Y;RQ^0c<0TpwHaFY zz6r{%O%_#7fe{VKyK@(naSJIeRCsx4aYAE48*ixFGRdMll6*@GUTc0%``>`o8j#V4 zg9*c-O~)LSJSTE&n6)s0!!ECt)zd(wL!wvC+k6wRhYtI}PTi7bt)^yIDG`AshjlL| qtmsHM!1PnVu#-b#!*qv!K4",i=1===t.getElementsByTagName("i").length,document.body.appendChild(t),t.parentNode.removeChild(t),i},t={data:{},init:function(e){var i=e.initialPreview,a=e.id;i.length>0&&!z(i)&&(i=i.split(e.initialPreviewDelimiter)),t.data[a]={content:i,config:e.initialPreviewConfig,tags:e.initialPreviewThumbTags,delimiter:e.initialPreviewDelimiter,template:e.previewGenericTemplate,msg:function(i){return e.getMsgSelected(i)},initId:e.previewInitId,footer:e.getLayoutTemplate("footer"),isDelete:e.initialPreviewShowDelete,caption:e.initialCaption,actions:function(i,t,a,n,r){return e.renderFileActions(i,t,a,n,r)}}},fetch:function(e){return t.data[e].content.filter(function(e){return null!==e})},count:function(e,i){return t.data[e]&&t.data[e].content?i?t.data[e].content.length:t.fetch(e).length:0},get:function(i,a,n){var r,l,o="init_"+a,s=t.data[i],d=s.config[a],c=s.initId+"-"+o,p=" file-preview-initial";return n=void 0===n?!0:n,null===s.content[a]?"":(R(d)||R(d.frameClass)||(p+=" "+d.frameClass),r=s.template.repl("{previewId}",c).repl("{frameClass}",p).repl("{fileindex}",o).repl("{content}",s.content[a]).repl("{footer}",t.footer(i,a,n)),s.tags.length&&s.tags[a]&&(r=H(r,s.tags[a])),R(d)||R(d.frameAttr)||(l=e(document.createElement("div")).html(r),l.find(".file-preview-initial").attr(d.frameAttr),r=l.html(),l.remove()),r)},add:function(i,a,n,r,l){var o,s=e.extend(!0,{},t.data[i]);return z(a)||(a=a.split(s.delimiter)),l?(o=s.content.push(a)-1,s.config[o]=n,s.tags[o]=r):(o=a.length,s.content=a,s.config=n,s.tags=r),t.data[i]=s,o},set:function(i,a,n,r,l){var o,s=e.extend(!0,{},t.data[i]);if(z(a)||(a=a.split(s.delimiter)),l){for(o=0;ol;l++)a+=t.get(e,l);return i=n.msg(t.count(e)),{content:a,caption:i}},footer:function(e,i,a){var n=t.data[e];if(a=void 0===a?!0:a,0===n.config.length||R(n.config[i]))return"";var r=n.config[i],l=M("caption",r)?r.caption:"",o=M("width",r)?r.width:"auto",s=M("url",r)?r.url:!1,d=M("key",r)?r.key:null,c=s===!1&&a,p=n.isDelete?n.actions(!1,!0,c,s,d):"",u=n.footer.repl("{actions}",p);return u.repl("{caption}",l).repl("{width}",o).repl("{indicator}","").repl("{indicatorTitle}","")}},a=function(e,i){return i=i||0,"number"==typeof e?e:("string"==typeof e&&(e=parseFloat(e)),isNaN(e)?i:e)},n=function(){return window.File&&window.FileReader},r=function(){var e=document.createElement("div");return!i(9)&&(void 0!==e.draggable||void 0!==e.ondragstart&&void 0!==e.ondrop)},l=function(){return n()&&window.FormData},o=function(e,i){e.removeClass(i).addClass(i)},s='style="width:{width};height:{height};"',d=' \n \n \n \n \n \n',c='
    \n {previewFileIcon}\n
    ',p={removeIcon:'',removeClass:"btn btn-xs btn-default",removeTitle:"Remove file",uploadIcon:'',uploadClass:"btn btn-xs btn-default",uploadTitle:"Upload file",indicatorNew:'',indicatorSuccess:'',indicatorError:'',indicatorLoading:'',indicatorNewTitle:"Not uploaded yet",indicatorSuccessTitle:"Uploaded",indicatorErrorTitle:"Upload Error",indicatorLoadingTitle:"Uploading ..."},u='{preview}\n
    \n
    \n {caption}\n
    \n {remove}\n {cancel}\n {upload}\n {browse}\n
    \n
    ',f='{preview}\n
    \n{remove}\n{cancel}\n{upload}\n{browse}\n',v='
    \n
    ×
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    ',h='',m='
    \n \n
    \n
    ',g='',w='
    \n
    \n {percent}%\n
    \n
    ',b='',x='
    \n \n
    {indicator}
    \n
    \n
    ',C='\n',y='\n',T='
    \n {content}\n {footer}\n
    \n',E='
    \n \n '+c+"\n \n {footer}\n
    ",k='
    \n {caption}\n {footer}\n
    \n",F='
    \n
    \n {data}\n
    \n {footer}\n
    ",$='
    \n \n {footer}\n
    \n",I='
    \n \n {footer}\n
    ",D='
    \n \n'+d+" "+c+"\n \n {footer}\n
    \n",P='
    \n \n \n'+d+" "+c+"\n \n {footer}\n
    ",S='
    \n "+c+"\n {footer}\n
    ",U={main1:u,main2:f,preview:v,icon:h,caption:m,modal:g,progress:w,footer:b,actions:x,actionDelete:C,actionUpload:y},j={generic:T,html:E,image:k,text:F,video:$,audio:I,flash:D,object:P,other:S},A=["image","html","text","video","audio","flash","object"],L={image:{width:"auto",height:"160px"},html:{width:"213px",height:"160px"},text:{width:"160px",height:"160px"},video:{width:"213px",height:"160px"},audio:{width:"213px",height:"80px"},flash:{width:"213px",height:"160px"},object:{width:"160px",height:"160px"},other:{width:"160px",height:"160px"}},O={image:function(e,i){return void 0!==e?e.match("image.*"):i.match(/\.(gif|png|jpe?g)$/i)},html:function(e,i){return void 0!==e?"text/html"===e:i.match(/\.(htm|html)$/i)},text:function(e,i){return void 0!==e&&e.match("text.*")||i.match(/\.(txt|md|csv|nfo|php|ini)$/i)},video:function(e,i){return void 0!==e&&e.match(/\.video\/(ogg|mp4|webm)$/i)||i.match(/\.(og?|mp4|webm)$/i)},audio:function(e,i){return void 0!==e&&e.match(/\.audio\/(ogg|mp3|wav)$/i)||i.match(/\.(ogg|mp3|wav)$/i)},flash:function(e,i){return void 0!==e&&"application/x-shockwave-flash"===e||i.match(/\.(swf)$/i)},object:function(){return!0},other:function(){return!0}},R=function(i,t){return null===i||void 0===i||0===i.length||t&&""===e.trim(i)},z=function(e){return Array.isArray(e)||"[object Array]"===Object.prototype.toString.call(e)},M=function(e,i){return"object"==typeof i&&e in i},N=function(i,t,a){return R(i)||R(i[t])?a:e(i[t])},B=function(){return Math.round((new Date).getTime()+100*Math.random())},Z=function(e){return String(e).repl("&","&").repl('"',""").repl("'","'").repl("<","<").repl(">",">")},H=function(i,t){var a=i;return t=t||{},e.each(t,function(e,i){"function"==typeof i&&(i=i()),a=a.repl(e,i)}),a},W=window.URL||window.webkitURL,_=function(t,a){var r=this;r.$element=e(t),r.validate()&&(r.isPreviewable=n(),r.isIE9=i(9),r.isIE10=i(10),r.isPreviewable||r.isIE9?(r.init(a),r.listen()):r.$element.removeClass("file-loading"))};_.prototype={constructor:_,validate:function(){var e,i=this;return"file"===i.$element.attr("type")?!0:(e='

    Invalid Input Type

    You must set an input type = file for bootstrap-fileinput plugin to initialize.
    ',i.$element.after(e),!1)},init:function(i){var n,s=this,d=s.$element;e.each(i,function(e,i){s[e]="maxFileCount"===e||"maxFileSize"===e?a(i):i}),s.fileInputCleared=!1,s.fileBatchCompleted=!0,R(s.allowedPreviewTypes)&&(s.allowedPreviewTypes=A),s.isPreviewable||(s.showPreview=!1),s.uploadFileAttr=R(d.attr("name"))?"file_data":d.attr("name"),s.reader=null,s.formdata={},s.filestack=[],s.ajaxRequests=[],s.isError=!1,s.ajaxAborted=!1,s.dropZoneEnabled=r()&&s.dropZoneEnabled,s.isDisabled=s.$element.attr("disabled")||s.$element.attr("readonly"),s.isUploadable=l()&&!R(s.uploadUrl),s.slug="function"==typeof i.slugCallback?i.slugCallback:s.slugDefault,s.mainTemplate=s.getLayoutTemplate(s.showCaption?"main1":"main2"),s.captionTemplate=s.getLayoutTemplate("caption"),s.previewGenericTemplate=s.getPreviewTemplate("generic"),R(s.$element.attr("id"))&&s.$element.attr("id",B()),void 0===s.$container?s.$container=s.createContainer():s.refreshContainer(),s.$progress=s.$container.find(".kv-upload-progress"),s.$btnUpload=s.$container.find(".kv-fileinput-upload"),s.$captionContainer=N(i,"elCaptionContainer",s.$container.find(".file-caption")),s.$caption=N(i,"elCaptionText",s.$container.find(".file-caption-name")),s.$previewContainer=N(i,"elPreviewContainer",s.$container.find(".file-preview")),s.$preview=N(i,"elPreviewImage",s.$container.find(".file-preview-thumbnails")),s.$previewStatus=N(i,"elPreviewStatus",s.$container.find(".file-preview-status")),s.$errorContainer=N(i,"elErrorContainer",s.$previewContainer.find(".kv-fileinput-error")),R(s.msgErrorClass)||o(s.$errorContainer,s.msgErrorClass),s.$errorContainer.hide(),s.fileActionSettings=e.extend(p,i.fileActionSettings),s.previewInitId="preview-"+B(),s.id=s.$element.attr("id"),t.init(s),s.initPreview(!0),s.initPreviewDeletes(),s.options=i,s.setFileDropZoneTitle(),s.uploadCount=0,s.uploadPercent=0,s.$element.removeClass("file-loading"),n=s.getLayoutTemplate("progress"),s.progressTemplate=n.replace("{class}",s.progressClass),s.progressCompleteTemplate=n.replace("{class}",s.progressCompleteClass),s.setEllipsis()},parseError:function(i,t,a){var n=this,r=e.trim(t+""),l="."===r.slice(-1)?"":".",o=void 0!==i.responseJSON&&void 0!==i.responseJSON.error?i.responseJSON.error:i.responseText;return n.showAjaxErrorDetails?(o=e.trim(o.replace(/\n\s*\n/g,"\n")),o=o.length>0?"
    "+o+"
    ":"",r+=l+o):r+=l,a?""+a+": "+i:r},raise:function(i,t){var a=this,n=e.Event(i);if(void 0!==t?a.$element.trigger(n,t):a.$element.trigger(n),!n.result)return n.result;switch(i){case"filebatchuploadcomplete":case"filebatchuploadsuccess":case"fileuploaded":case"fileclear":case"filecleared":case"filereset":case"fileerror":case"filefoldererror":case"fileuploaderror":case"filebatchuploaderror":case"filedeleteerror":case"filecustomerror":case"filesuccessremove":break;default:a.ajaxAborted=n.result}return!0},getLayoutTemplate:function(e){var i=this,t=M(e,i.layoutTemplates)?i.layoutTemplates[e]:U[e];return R(i.customLayoutTags)?t:H(t,i.customLayoutTags)},getPreviewTemplate:function(e){var i=this,t=M(e,i.previewTemplates)?i.previewTemplates[e]:j[e];return t=t.repl("{previewFileIcon}",i.previewFileIcon),R(i.customPreviewTags)?t:H(t,i.customPreviewTags)},getOutData:function(e,i,t){var a=this;return e=e||{},i=i||{},t=t||a.filestack.slice(0)||{},{form:a.formdata,files:t,extra:a.getExtraData(),response:i,reader:a.reader,jqXHR:e}},setEllipsis:function(){var e=this,i=e.$captionContainer,t=e.$caption,a=t.clone().css("height","auto").hide();i.parent().before(a),i.removeClass("kv-has-ellipsis"),a.outerWidth()>t.outerWidth()&&i.addClass("kv-has-ellipsis"),a.remove()},listen:function(){var i=this,t=i.$element,a=i.$captionContainer,n=i.$btnFile,r=t.closest("form");t.on("change",e.proxy(i.change,i)),e(window).on("resize",function(){i.setEllipsis()}),n.off("click").on("click",function(){i.raise("filebrowse"),i.isError&&!i.isUploadable&&i.clear(),a.focus()}),r.off("reset").on("reset",e.proxy(i.reset,i)),i.$container.off("click").on("click",".fileinput-remove:not([disabled])",e.proxy(i.clear,i)).on("click",".fileinput-cancel",e.proxy(i.cancel,i)),i.isUploadable&&i.dropZoneEnabled&&i.showPreview&&i.initDragDrop(),i.isUploadable||r.on("submit",e.proxy(i.submitForm,i)),i.$container.find(".kv-fileinput-upload").off("click").on("click",function(t){var a,n=e(this),r=!n.hasClass("disabled")&&R(n.attr("disabled"));return i.isUploadable?(t.preventDefault(),void(r&&i.upload())):void(r&&"submit"!==n.attr("type")&&(a=n.closest("form"),a.length&&a.trigger("submit"),t.preventDefault()))})},submitForm:function(){var e=this,i=e.$element,t=i.get(0).files;return t&&t.length0?(e.noFilesError({}),!1):!e.abort({})},abort:function(i){var t,a=this;return a.ajaxAborted&&"object"==typeof a.ajaxAborted&&void 0!==a.ajaxAborted.message?(t=e.extend(a.getOutData(),i),t.abortData=a.ajaxAborted.data||{},t.abortMessage=a.ajaxAborted.message,a.showUploadError(a.ajaxAborted.message,t,"filecustomerror"),!0):!1},noFilesError:function(e){var i=this,t=i.minFileCount>1?i.filePlural:i.fileSingle,a=i.msgFilesTooLess.replace("{n}",i.minFileCount).replace("{files}",t),n=i.$errorContainer;n.html(a),i.isError=!0,i.updateFileDetails(0),n.fadeIn(800),i.raise("fileerror",[e]),i.clearFileInput(),o(i.$container,"has-error")},setProgress:function(e){var i=this,t=Math.min(e,100),a=100>t?i.progressTemplate:i.progressCompleteTemplate;R(a)||i.$progress.html(a.repl("{percent}",t))},upload:function(){var i,t,a,n=this,r=n.getFileStack().length,l={},o=!e.isEmptyObject(n.getExtraData());if(r0)return void n.noFilesError(l);if(n.isUploadable&&!n.isDisabled&&(0!==r||o)){if(n.resetUpload(),n.$progress.removeClass("hide"),n.uploadCount=0,n.uploadPercent=0,n.lock(),n.setProgress(0),0===r&&o)return void n.uploadExtraOnly();if(a=n.filestack.length,n.hasInitData=!1,n.uploadAsync&&n.showPreview)for(t=n.getOutData(),n.raise("filebatchpreupload",[t]),n.fileBatchCompleted=!1,n.uploadCache={content:[],config:[],tags:[],append:!0},i=0;a>i;i+=1)void 0!==n.filestack[i]&&n.uploadSingle(i,n.filestack,!0);else n.uploadBatch()}},lock:function(){var e=this;e.resetErrors(),e.disable(),e.showRemove&&o(e.$container.find(".fileinput-remove"),"hide"),e.showCancel&&e.$container.find(".fileinput-cancel").removeClass("hide"),e.raise("filelock",[e.filestack,e.getExtraData()])},unlock:function(e){var i=this;void 0===e&&(e=!0),i.enable(),i.showCancel&&o(i.$container.find(".fileinput-cancel"),"hide"),i.showRemove&&i.$container.find(".fileinput-remove").removeClass("hide"),e&&i.resetFileStack(),i.raise("fileunlock",[i.filestack,i.getExtraData()])},resetFileStack:function(){var i=this,t=0,a=[];i.getThumbs().each(function(){var n=e(this),r=n.attr("data-fileindex"),l=i.filestack[r];-1!==r&&(void 0!==l?(a[t]=l,n.attr({id:i.previewInitId+"-"+t,"data-fileindex":t}),t+=1):n.attr({id:"uploaded-"+B(),"data-fileindex":"-1"}))}),i.filestack=a},refresh:function(i){var t,a=this,n=a.$element,r=arguments.length?e.extend(a.options,i):a.options;n.off(),a.init(r),t=a.$container.find(".file-drop-zone"),t.off("dragenter dragover dragleave drop"),e(document).off("dragenter dragover drop"),a.listen(),a.setFileDropZoneTitle()},initDragDrop:function(){var i=this,t=i.$container.find(".file-drop-zone");t.off("dragenter dragover dragleave drop"),e(document).off("dragenter dragover drop"),t.on("dragenter dragover",function(t){var a=e.inArray("Files",t.originalEvent.dataTransfer.types)>-1;return t.stopPropagation(),t.preventDefault(),i.isDisabled||!a?(t.originalEvent.dataTransfer.effectAllowed="none",void(t.originalEvent.dataTransfer.dropEffect="none")):void o(e(this),"highlighted")}),t.on("dragleave",function(t){t.stopPropagation(),t.preventDefault(),i.isDisabled||e(this).removeClass("highlighted")}),t.on("drop",function(t){t.preventDefault(),i.isDisabled||R(t.originalEvent.dataTransfer.files)||(i.change(t,"dragdrop"),e(this).removeClass("highlighted"))}),e(document).on("dragenter dragover drop",function(e){e.stopPropagation(),e.preventDefault()})},setFileDropZoneTitle:function(){var e=this,i=e.$container.find(".file-drop-zone");i.find("."+e.dropZoneTitleClass).remove(),e.isUploadable&&e.showPreview&&0!==i.length&&!(e.getFileStack().length>0)&&e.dropZoneEnabled&&(0===i.find(".file-preview-frame").length&&i.prepend('
    '+e.dropZoneTitle+"
    "),e.$container.removeClass("file-input-new"),o(e.$container,"file-input-ajax-new"))},initFileActions:function(){var i=this;i.$preview.find(".kv-file-remove").each(function(){var a,n,r=e(this),l=r.closest(".file-preview-frame"),o=l.attr("data-fileindex");r.off("click").on("click",function(){i.cleanMemory(l),l.fadeOut("slow",function(){i.filestack[o]=void 0,i.clearObjects(l),l.remove();var e=i.getFileStack(!0),r=e.length,s=t.count(i.id);i.clearFileInput(),0===r&&0===s?i.reset():(a=s+r,n=a>1?i.getMsgSelected(a):e[0]?e[0].name:"",i.setCaption(n))})})}),i.$preview.find(".kv-file-upload").each(function(){var t=e(this);t.off("click").on("click",function(){var e=t.closest(".file-preview-frame"),a=e.attr("data-fileindex");i.uploadSingle(a,i.filestack,!1)})})},getMsgSelected:function(e){var i=this,t=1===e?i.fileSingle:i.filePlural;return i.msgSelected.replace("{n}",e).replace("{files}",t)},renderFileFooter:function(e,i){var t,a,n=this,r=n.fileActionSettings,l=n.getLayoutTemplate("footer");return n.isUploadable?(t=l.repl("{actions}",n.renderFileActions(!0,!0,!1,!1,!1)),a=t.repl("{caption}",e).repl("{width}",i).repl("{indicator}",r.indicatorNew).repl("{indicatorTitle}",r.indicatorNewTitle)):a=l.repl("{actions}","").repl("{caption}",e).repl("{width}",i).repl("{indicator}","").repl("{indicatorTitle}",""),a=H(a,n.previewThumbTags)},renderFileActions:function(e,i,t,a,n){if(!e&&!i)return"";var r=this,l=a===!1?"":' data-url="'+a+'"',o=n===!1?"":' data-key="'+n+'"',s=r.getLayoutTemplate("actionDelete"),d="",c=r.getLayoutTemplate("actions"),p=r.otherActionButtons.repl("{dataKey}",o),u=r.fileActionSettings,f=t?u.removeClass+" disabled":u.removeClass;return s=s.repl("{removeClass}",f).repl("{removeIcon}",u.removeIcon).repl("{removeTitle}",u.removeTitle).repl("{dataUrl}",l).repl("{dataKey}",o),e&&(d=r.getLayoutTemplate("actionUpload").repl("{uploadClass}",u.uploadClass).repl("{uploadIcon}",u.uploadIcon).repl("{uploadTitle}",u.uploadTitle)),c.repl("{delete}",s).repl("{upload}",d).repl("{other}",p)},setThumbStatus:function(e,i){var t=this,a="indicator"+i,n=a+"Title",r="file-preview-"+i.toLowerCase(),l=e.find(".file-upload-indicator"),o=t.fileActionSettings;e.removeClass("file-preview-success file-preview-error file-preview-loading"),l.html(o[a]),l.attr("title",o[n]),e.addClass(r)},clearPreview:function(){var e=this,i=e.$preview.find(e.showUploadedThumbs?".file-preview-frame:not(.file-preview-success)":".file-preview-frame");i.remove(),e.$preview.find(".file-preview-frame").length&&e.showPreview||e.resetUpload()},initPreview:function(e){var i,a=this,n=a.initialCaption||"";return t.count(a.id)?(i=t.out(a.id),n=e&&a.initialCaption?a.initialCaption:i.caption,a.$preview.html(i.content),a.setCaption(n),void(R(i.content)||a.$container.removeClass("file-input-new"))):(a.clearPreview(),void(e?a.setCaption(n):a.initCaption()))},initPreviewDeletes:function(){var i=this,a=i.deleteExtraData||{},n=function(){0===i.$preview.find(".kv-file-remove").length&&(i.reset(),i.initialCaption="")};i.$preview.find(".kv-file-remove").each(function(){var r=e(this),l=r.data("url")||i.deleteUrl,s=r.data("key");if(!R(l)&&void 0!==s){var d,c,p,u,f=r.closest(".file-preview-frame"),v=t.data[i.id],h=f.data("fileindex");h=parseInt(h.replace("init_","")),p=R(v.config)&&R(v.config[h])?null:v.config[h],u=R(p)||R(p.extra)?a:p.extra,"function"==typeof u&&(u=u()),c={id:r.attr("id"),key:s,extra:u},d=e.extend({url:l,type:"DELETE",dataType:"json",data:e.extend({key:s},u),beforeSend:function(e){i.ajaxAborted=!1,i.raise("filepredelete",[s,e,u]),i.ajaxAborted?e.abort():(o(f,"file-uploading"),o(r,"disabled"))},success:function(e,a,l){var o,d;return R(e)||R(e.error)?(t.unset(i.id,h),o=t.count(i.id),d=o>0?i.getMsgSelected(o):"",i.raise("filedeleted",[s,l,u]),i.setCaption(d),f.removeClass("file-uploading").addClass("file-deleted"),void f.fadeOut("slow",function(){i.clearObjects(f),f.remove(),n(),o||0!==i.getFileStack().length||(i.setCaption(""),i.reset())})):(c.jqXHR=l,c.response=e,i.showError(e.error,c,"filedeleteerror"),f.removeClass("file-uploading"),r.removeClass("disabled"),void n())},error:function(e,t,a){var r=i.parseError(e,a);c.jqXHR=e,c.response={},i.showError(r,c,"filedeleteerror"),f.removeClass("file-uploading"),n()}},i.ajaxDeleteSettings),r.off("click").on("click",function(){e.ajax(d)})}})},clearObjects:function(i){i.find("video audio").each(function(){this.pause(),e(this).remove()}),i.find("img object div").each(function(){e(this).remove()})},clearFileInput:function(){var i,t,a,n=this,r=n.$element;R(r.val())||(n.isIE9||n.isIE10?(i=r.closest("form"),t=e(document.createElement("form")),a=e(document.createElement("div")),r.before(a),i.length?i.after(t):a.after(t),t.append(r).trigger("reset"),a.before(r).remove(),t.remove()):r.val(""),n.fileInputCleared=!0)},resetUpload:function(){var e=this;e.uploadCache={content:[],config:[],tags:[],append:!0},e.uploadCount=0,e.uploadPercent=0,e.$btnUpload.removeAttr("disabled"),e.setProgress(0),o(e.$progress,"hide"),e.resetErrors(!1),e.ajaxAborted=!1,e.ajaxRequests=[]},cancel:function(){var i,t=this,a=t.ajaxRequests,n=a.length;if(n>0)for(i=0;n>i;i+=1)a[i].abort();t.getThumbs().each(function(){var i=e(this),a=i.attr("data-fileindex");i.removeClass("file-uploading"),void 0!==t.filestack[a]&&(i.find(".kv-file-upload").removeClass("disabled").removeAttr("disabled"),i.find(".kv-file-remove").removeClass("disabled").removeAttr("disabled")),t.unlock()})},cleanMemory:function(e){var i=e.is("img")?e.attr("src"):e.find("source").attr("src");W.revokeObjectURL(i)},hasInitialPreview:function(){var e=this;return!e.overwriteInitial&&t.count(e.id)},clear:function(){var i,t=this;t.$btnUpload.removeAttr("disabled"),t.getThumbs().find("video,audio,img").each(function(){t.cleanMemory(e(this))}),t.resetUpload(),t.filestack=[],t.clearFileInput(),t.resetErrors(!0),t.raise("fileclear"),t.hasInitialPreview()?(t.showFileIcon(),t.resetPreview(),t.setEllipsis(),t.initPreviewDeletes(),t.$container.removeClass("file-input-new")):(t.getThumbs().each(function(){t.clearObjects(e(this))}),t.$preview.html(""),i=!t.overwriteInitial&&t.initialCaption.length>0?t.initialCaption:"",t.setCaption(i),t.setEllipsis(),t.$caption.attr("title",""),o(t.$container,"file-input-new")),0===t.$container.find(".file-preview-frame").length&&(t.initCaption()||t.$captionContainer.find(".kv-caption-icon").hide(),t.setEllipsis()),t.hideFileIcon(),t.raise("filecleared"),t.$captionContainer.focus(),t.setFileDropZoneTitle()},resetPreview:function(){var e,i=this;t.count(i.id)?(e=t.out(i.id),i.$preview.html(e.content),i.setCaption(e.caption)):(i.clearPreview(),i.initCaption())},reset:function(){var e=this;e.resetPreview(),e.setEllipsis(),e.$container.find(".fileinput-filename").text(""),e.raise("filereset"),e.initialPreview.length>0&&e.$container.removeClass("file-input-new"),e.setFileDropZoneTitle(),e.filestack=[],e.formdata={}},disable:function(){var e=this;e.isDisabled=!0,e.raise("filedisabled"),e.$element.attr("disabled","disabled"),e.$container.find(".kv-fileinput-caption").addClass("file-caption-disabled"),e.$container.find(".btn-file, .fileinput-remove, .kv-fileinput-upload").attr("disabled",!0),e.initDragDrop()},enable:function(){var e=this;e.isDisabled=!1,e.raise("fileenabled"),e.$element.removeAttr("disabled"),e.$container.find(".kv-fileinput-caption").removeClass("file-caption-disabled"),e.$container.find(".btn-file, .fileinput-remove, .kv-fileinput-upload").removeAttr("disabled"),e.initDragDrop()},getThumbs:function(e){return e=e||"",this.$preview.find(".file-preview-frame:not(.file-preview-initial)"+e)},getExtraData:function(){var e=this,i=e.uploadExtraData;return"function"==typeof e.uploadExtraData&&(i=e.uploadExtraData()),i},uploadExtra:function(){var i=this,t=i.getExtraData();0!==t.length&&e.each(t,function(e,t){i.formdata.append(e,t)})},initXhr:function(e,i){var t=this;return e.upload&&e.upload.addEventListener("progress",function(e){var a=0,n=e.loaded||e.position,r=e.total;e.lengthComputable&&(a=Math.ceil(n/r*i)),t.uploadPercent=Math.max(a,t.uploadPercent),t.setProgress(t.uploadPercent)},!1),e},ajaxSubmit:function(i,t,a,n){var r,l=this;l.uploadExtra(),r=e.extend({xhr:function(){var i=e.ajaxSettings.xhr();return l.initXhr(i,98)},url:l.uploadUrl,type:"POST",dataType:"json",data:l.formdata,cache:!1,processData:!1,contentType:!1,beforeSend:i,success:t,complete:a,error:n},l.ajaxSettings),l.ajaxRequests.push(e.ajax(r))},initUploadSuccess:function(i,a,n){var r,l,o,s,d,c,p,u=this;"object"!=typeof i||e.isEmptyObject(i)||void 0!==i.initialPreview&&i.initialPreview.length>0&&(u.hasInitData=!0,d=i.initialPreview||[],c=i.initialPreviewConfig||[],p=i.initialPreviewThumbTags||[],r=void 0===i.append||i.append?!0:!1,u.overwriteInitial=!1,void 0===a||n?n?(u.uploadCache.content.push(d[0]),u.uploadCache.config.push(c[0]),u.uploadCache.tags.push(p[0]),u.uploadCache.append=r):(t.set(u.id,d,c,p,r),u.initPreview(),u.initPreviewDeletes()):(o=t.add(u.id,d,c[0],p[0],r),l=t.get(u.id,o,!1),s=e(l).hide(),a.after(s).fadeOut("slow",function(){s.fadeIn("slow").css("display:inline-block"),u.initPreviewDeletes(),u.clearFileInput(),a.remove()})))},initSuccessThumbs:function(){var i=this;i.getThumbs(".file-preview-success").each(function(){var t=e(this),a=t.find(".kv-file-remove");a.removeAttr("disabled").off("click").on("click",function(){var e=i.raise("filesuccessremove",[t.attr("id"),t.data("fileindex")]);i.cleanMemory(t),e!==!1&&t.fadeOut("slow",function(){t.remove(),i.$preview.find(".file-preview-frame").length||i.reset()})})})},uploadSingle:function(i,a,n){var r,l,s,d,c,p,u,f,v,h=this,m=h.getFileStack().length,g=new FormData,w=h.previewInitId+"-"+i,b=e("#"+w+":not(.file-preview-initial)"),x=b.find(".kv-file-upload"),C=b.find(".kv-file-remove"),y=h.filestack.length>0||!e.isEmptyObject(h.uploadExtraData),T={id:w,index:i};h.formdata=g,0===m||!y||x.hasClass("disabled")||h.abort(T)||(s=function(){var e=h.getThumbs(".file-uploading");e.length>0||h.fileBatchCompleted||(h.fileBatchCompleted=!0,setTimeout(function(){t.set(h.id,h.uploadCache.content,h.uploadCache.config,h.uploadCache.tags,h.uploadCache.append),h.hasInitData&&(h.initPreview(),h.initPreviewDeletes()),h.setProgress(100),h.unlock(),h.clearFileInput(),h.raise("filebatchuploadcomplete",[h.filestack,h.getExtraData()])},100))},d=function(){!n||0===m||h.uploadPercent>=100||(h.uploadCount+=1,l=80+Math.ceil(20*h.uploadCount/m),h.uploadPercent=Math.max(l,h.uploadPercent),h.setProgress(h.uploadPercent),h.initPreviewDeletes())},c=function(){x.removeAttr("disabled"),C.removeAttr("disabled"),b.removeClass("file-uploading")},p=function(t){r=h.getOutData(t),b.hasClass("file-preview-success")||(h.setThumbStatus(b,"Loading"),o(b,"file-uploading")),x.attr("disabled",!0),C.attr("disabled",!0),n||h.lock(),h.raise("filepreupload",[r,w,i]),T=e.extend(T,r),h.abort(T)&&(t.abort(),h.setProgress(100))},u=function(t,a,l){r=h.getOutData(l,t),T=e.extend(T,r),setTimeout(function(){R(t)||R(t.error)?(h.setThumbStatus(b,"Success"),x.hide(),h.filestack[i]=void 0,h.raise("fileuploaded",[r,w,i]),h.initUploadSuccess(t,b,n),n||h.resetFileStack()):(h.setThumbStatus(b,"Error"),h.showUploadError(t.error,T))},100)},f=function(){setTimeout(function(){d(),c(),n?s():h.unlock(!1),h.initSuccessThumbs()},100)},v=function(t,r,l){var o=h.parseError(t,l,n?a[i].name:null);h.setThumbStatus(b,"Error"),T=e.extend(T,h.getOutData(t)),h.showUploadError(o,T)},g.append(h.uploadFileAttr,a[i]),g.append("file_id",i),h.ajaxSubmit(p,u,f,v))},uploadBatch:function(){var i,t,a,n,r,l=this,s=l.filestack,d=s.length,c=l.filestack.length>0||!e.isEmptyObject(l.uploadExtraData),p={};l.formdata=new FormData,0!==d&&c&&!l.abort(p)&&(i=function(){e.each(s,function(e){l.filestack[e]=void 0}),l.clearFileInput()},t=function(i){l.lock();var t=l.getOutData(i);l.showPreview&&l.getThumbs().each(function(){var i=e(this),t=i.find(".kv-file-upload"),a=i.find(".kv-file-remove");i.hasClass("file-preview-success")||(l.setThumbStatus(i,"Loading"),o(i,"file-uploading")),t.attr("disabled",!0),a.attr("disabled",!0)}),l.raise("filebatchpreupload",[t]),l.abort(t)&&i.abort()},a=function(t,a,n){var r=l.getOutData(n,t),o=l.getThumbs(),s=R(t.errorkeys)?[]:t.errorkeys;R(t)||R(t.error)?(l.raise("filebatchuploadsuccess",[r]),i(),l.showPreview?(o.each(function(){var i=e(this),t=i.find(".kv-file-upload");i.find(".kv-file-upload").hide(),l.setThumbStatus(i,"Success"),i.removeClass("file-uploading"),t.removeAttr("disabled")}),l.initUploadSuccess(t)):l.reset()):(l.showPreview&&(o.each(function(){var i=e(this),t=i.find(".kv-file-remove"),a=i.find(".kv-file-upload");return i.removeClass("file-uploading"),a.removeAttr("disabled"),t.removeAttr("disabled"),0===s.length?void l.setThumbStatus(i,"Error"):void(-1!==e.inArray(key,s)?l.setThumbStatus(i,"Error"):(i.find(".kv-file-upload").hide(),l.setThumbStatus(i,"Success"),l.filestack[key]=void 0)); - -}),l.initUploadSuccess(t)),l.showUploadError(t.error,r,"filebatchuploaderror"))},n=function(){l.setProgress(100),l.unlock(),l.initSuccessThumbs(),l.raise("filebatchuploadcomplete",[l.filestack,l.getExtraData()]),l.clearFileInput()},r=function(i,t,a){var n=l.getOutData(i),r=l.parseError(i,a);l.showUploadError(r,n,"filebatchuploaderror"),l.uploadFileCount=d-1,l.showPreview&&(l.getThumbs().each(function(){var i=e(this),t=i.attr("data-fileindex");i.removeClass("file-uploading"),void 0!==l.filestack[t]&&l.setThumbStatus(i,"Error")}),l.getThumbs().removeClass("file-uploading"),l.getThumbs(" .kv-file-upload").removeAttr("disabled"),l.getThumbs(" .kv-file-delete").removeAttr("disabled"))},e.each(s,function(e,i){R(s[e])||l.formdata.append(l.uploadFileAttr,i)}),l.ajaxSubmit(t,a,n,r))},uploadExtraOnly:function(){var e,i,t,a,n=this,r={};n.formdata=new FormData,n.abort(r)||(e=function(e){n.lock();var i=n.getOutData(e);n.raise("filebatchpreupload",[i]),n.setProgress(50),r.data=i,r.xhr=e,n.abort(r)&&(e.abort(),n.setProgress(100))},i=function(e,i,t){var a=n.getOutData(t,e);R(e)||R(e.error)?(n.raise("filebatchuploadsuccess",[a]),n.clearFileInput(),n.initUploadSuccess(e)):n.showUploadError(e.error,a,"filebatchuploaderror")},t=function(){n.setProgress(100),n.unlock(),n.raise("filebatchuploadcomplete",[n.filestack,n.getExtraData()]),n.clearFileInput()},a=function(e,i,t){var a=n.getOutData(e),l=n.parseError(e,t);r.data=a,n.showUploadError(l,a,"filebatchuploaderror")},n.ajaxSubmit(e,i,t,a))},hideFileIcon:function(){this.overwriteInitial&&this.$captionContainer.find(".kv-caption-icon").hide()},showFileIcon:function(){this.$captionContainer.find(".kv-caption-icon").show()},resetErrors:function(e){var i=this,t=i.$errorContainer;i.isError=!1,i.$container.removeClass("has-error"),t.html(""),e?t.fadeOut("slow"):t.hide()},showFolderError:function(e){var i=this,t=i.$errorContainer;e&&(t.html(i.msgFoldersNotAllowed.repl("{n}",e)),t.fadeIn(800),o(i.$container,"has-error"),i.raise("filefoldererror",[e]))},showUploadError:function(e,i,t){var a=this,n=a.$errorContainer,r=t||"fileuploaderror";return 0===n.find("ul").length?n.html("
    • "+e+"
    "):n.find("ul").append("
  • "+e+"
  • "),n.fadeIn(800),a.raise(r,[i]),o(a.$container,"has-error"),!0},showError:function(e,i,t){var a=this,n=a.$errorContainer,r=t||"fileerror";return i=i||{},i.reader=a.reader,n.html(e),n.fadeIn(800),a.raise(r,[i]),a.isUploadable||a.clearFileInput(),o(a.$container,"has-error"),a.$btnUpload.attr("disabled",!0),!0},errorHandler:function(e,i){var t=this,a=e.target.error;switch(a.code){case a.NOT_FOUND_ERR:t.showError(t.msgFileNotFound.replace("{name}",i));break;case a.SECURITY_ERR:t.showError(t.msgFileSecured.replace("{name}",i));break;case a.NOT_READABLE_ERR:t.showError(t.msgFileNotReadable.replace("{name}",i));break;case a.ABORT_ERR:t.showError(t.msgFilePreviewAborted.replace("{name}",i));break;default:t.showError(t.msgFilePreviewError.replace("{name}",i))}},parseFileType:function(e){var i,t,a,n,r=this;for(n=0;n=0,b=R(f)||!R(f)&&-1!==f.indexOf(i.type),x=d.renderFileFooter(p,h.width),C="",y=a.slice(a.lastIndexOf("-")+1);w&&b?("text"===c?(l=Z(t.target.result),l.length>m&&(o="text-"+B(),s=.75*window.innerHeight,C=d.getLayoutTemplate("modal").repl("{id}",o).repl("{title}",p).repl("{height}",s).repl("{body}",l),g=g.repl("{title}",p).repl("{dialog}","$('#"+o+"').modal('show')"),l=l.substring(0,m-1)+g),r=v.repl("{previewId}",a).repl("{caption}",p).repl("{frameClass}","").repl("{type}",i.type).repl("{width}",h.width).repl("{height}",h.height).repl("{data}",l).repl("{footer}",x).repl("{fileindex}",y)+C):r=v.repl("{previewId}",a).repl("{caption}",p).repl("{frameClass}","").repl("{type}",i.type).repl("{data}",n).repl("{width}",h.width).repl("{height}",h.height).repl("{footer}",x).repl("{fileindex}",y),d.$preview.append("\n"+r),d.validateImage(e,a)):d.previewDefault(i,a)}},slugDefault:function(e){return R(e)?"":e.split(/(\\|\/)/g).pop().replace(/[^\w\u00C0-\u017F\-.\\\/ ]+/g,"")},getFileStack:function(e){var i=this;return i.filestack.filter(function(i){return e?void 0!==i:void 0!==i&&null!==i})},readFiles:function(i){function t(e){if(R(n.attr("multiple"))&&(u=1),e>=u)return a.isUploadable&&a.filestack.length>0?a.raise("filebatchselected",[a.getFileStack()]):a.raise("filebatchselected",[i]),o.removeClass("loading"),void s.html("");var m,g,w,b,x,C,y=v+e,T=p+"-"+y,E=i[e],k=a.slug(E.name),F=(E.size||0)/1e3,$="",I=W.createObjectURL(E),D=0,P=a.allowedFileTypes,S=R(P)?"":P.join(", "),U=a.allowedFileExtensions,j=R(U)?"":U.join(", ");if(R(U)||($=new RegExp("\\.("+U.join("|")+")$","i")),F=F.toFixed(2),a.maxFileSize>0&&F>a.maxFileSize)return b=a.msgSizeTooLarge.replace("{name}",k).replace("{size}",F).replace("{maxSize}",a.maxFileSize),void(a.isError=h(b,E,T,e));if(!R(P)&&z(P)){for(w=0;w0&&void 0!==FileReader?(s.html(d.replace("{index}",e+1).replace("{files}",u)),o.addClass("loading"),l.onerror=function(e){a.errorHandler(e,k)},l.onload=function(i){a.previewFile(e,E,i,T,I),a.initFileActions()},l.onloadend=function(){b=c.replace("{index}",e+1).replace("{files}",u).replace("{percent}",50).replace("{name}",k),setTimeout(function(){s.html(b),t(e+1),a.updateFileDetails(u)},100),a.raise("fileloaded",[E,T,e,l])},l.onprogress=function(i){if(i.lengthComputable){var t=i.loaded/i.total*100,a=Math.ceil(t);b=c.replace("{index}",e+1).replace("{files}",u).replace("{percent}",a).replace("{name}",k),setTimeout(function(){s.html(b)},100)}},m=M("text",f)?f.text:O.text,m(E.type,k)?l.readAsText(E,a.textEncoding):l.readAsArrayBuffer(E)):(a.previewDefault(E,T),setTimeout(function(){t(e+1),a.updateFileDetails(u)},100),a.raise("fileloaded",[E,T,e,l])),void a.filestack.push(E)):(a.filestack.push(E),setTimeout(t(e+1),100),void a.raise("fileloaded",[E,T,e,l])):(b=a.msgInvalidFileExtension.replace("{name}",k).replace("{extensions}",j),void(a.isError=h(b,E,T,e)))}this.reader=new FileReader;var a=this,n=a.$element,r=a.$preview,l=a.reader,o=a.$previewContainer,s=a.$previewStatus,d=a.msgLoading,c=a.msgProgress,p=a.previewInitId,u=i.length,f=a.fileTypeSettings,v=a.filestack.length,h=function(t,n,r,l){var o=e.extend(a.getOutData({},{},i),{id:r,index:l}),s={id:r,index:l,file:n,files:i};return a.previewDefault(n,r,!0),a.isUploadable?a.showUploadError(t,o):a.showError(t,s)};t(0),a.updateFileDetails(u,!1)},updateFileDetails:function(e){var i=this,a=i.$element,n=i.getFileStack(),r=a.val()||n.length&&n[0].name||"",l=i.slug(r),o=i.isUploadable?n.length:e,s=t.count(i.id)+o,d=o>1?i.getMsgSelected(s):l;i.isError?(i.$previewContainer.removeClass("loading"),i.$previewStatus.html(""),i.$captionContainer.find(".kv-caption-icon").hide()):i.showFileIcon(),i.setCaption(d,i.isError),i.$container.removeClass("file-input-new file-input-ajax-new"),1===arguments.length&&i.raise("fileselect",[e,l]),t.count(i.id)&&i.initPreviewDeletes()},change:function(i){var a=this,n=a.$element;if(!a.isUploadable&&R(n.val())&&a.fileInputCleared)return void(a.fileInputCleared=!1);a.fileInputCleared=!1;var r,l,o,s,d=a.$preview,c=arguments.length>1,p=c?i.originalEvent.dataTransfer.files:n.get(0).files,u=R(n.attr("multiple")),f=0,v=0,h=a.filestack.length,m=a.isUploadable,g=function(i,t,n,r){var l=e.extend(a.getOutData({},{},p),{id:n,index:r}),o={id:n,index:r,file:t,files:p};return a.isUploadable?a.showUploadError(i,l):a.showError(i,o)};if(a.reader=null,a.resetUpload(),a.hideFileIcon(),a.isUploadable&&a.$container.find(".file-drop-zone ."+a.dropZoneTitleClass).remove(),c)for(r=[];p[f];)s=p[f],s.type||s.size%4096!==0?r.push(s):v++,f++;else r=void 0===i.target.files?i.target&&i.target.value?[{name:i.target.value.replace(/^.+\\/,"")}]:[]:i.target.files;if(R(r)||0===r.length)return m||a.clear(),a.showFolderError(v),void a.raise("fileselectnone");if(a.resetErrors(),o=a.isUploadable?a.getFileStack().length+r.length:r.length,a.maxFileCount>0&&o>a.maxFileCount)return l=a.msgFilesTooMany.replace("{m}",a.maxFileCount).replace("{n}",o),a.isError=g(l,null,null,null),a.$captionContainer.find(".kv-caption-icon").hide(),a.setCaption("",!0),a.setEllipsis(),void a.$container.removeClass("file-input-new file-input-ajax-new");if(!m||u&&h>0){if(a.hasInitialPreview()){var w=t.out(a.id);d.html(w.content),a.setCaption(w.caption),a.initPreviewDeletes()}else a.clearPreview();u&&h>0&&(a.filestack=[])}else!m||0!==h||t.count(a.id)&&!a.overwriteInitial||(a.clearPreview(),a.filestack=[]);a.isPreviewable?a.readFiles(r):a.updateFileDetails(1),a.showFolderError(v)},validateImage:function(e,i){var t,a,n,r,l=this,o=l.$preview,s=o.find("#"+i),d="Untitled",c=s.find("img");c.length&&c.on("load",function(){a=s.width(),n=o.width(),a>n&&(c.css("width","100%"),s.css("width","97%")),r=c.closest(".file-preview-frame").find(".file-caption-name"),r.length&&(r.width(c.width()),d=r.text(),r.attr("title",d)),t={ind:e,id:i},l.checkDimensions(e,"Small",c,s,d,"Width",t),l.checkDimensions(e,"Small",c,s,d,"Height",t),l.checkDimensions(e,"Large",c,s,d,"Width",t),l.checkDimensions(e,"Large",c,s,d,"Height",t),l.raise("fileimageloaded",[i]),W.revokeObjectURL(c.attr("src"))})},checkDimensions:function(e,i,t,a,n,r,l){var o,s,d,c,p=this,u="Small"===i?"min":"max",f=p[u+"Image"+r];!R(f)&&t.length&&(d=t[0],s="Width"===r?d.naturalWidth||d.width:d.naturalHeight||d.height,c="Small"===i?s>=f:f>=s,c||(o=p["msgImage"+r+i].replace("{name}",n).replace("{size}",f),p.showUploadError(o,l),p.setThumbStatus(a,"Error"),p.filestack[e]=null))},initCaption:function(){var e=this,i=e.initialCaption||"";return e.overwriteInitial||R(i)?(e.$caption.html(""),!1):(e.setCaption(i),!0)},setCaption:function(i,t){var a,n,r=this;if(t)a=e("
    "+r.msgValidationError+"
    ").text(),n=''+r.msgValidationErrorIcon+a+"";else{if(R(i)||0===r.$caption.length)return;a=e("
    "+i+"
    ").text(),n=r.getLayoutTemplate("icon")+a}r.$caption.html(n),r.$caption.attr("title",a),r.$captionContainer.find(".file-caption-ellipsis").attr("title",a),r.setEllipsis()},initBrowse:function(e){var i=this;i.$btnFile=e.find(".btn-file"),i.$btnFile.append(i.$element)},createContainer:function(){var i=this,t=e(document.createElement("span")).attr({"class":"file-input file-input-new"}).html(i.renderMain());return i.$element.before(t),i.initBrowse(t),t},refreshContainer:function(){var e=this,i=e.$container;i.before(e.$element),i.html(e.renderMain()),e.initBrowse(i)},renderMain:function(){var e=this,i=e.isUploadable&&e.dropZoneEnabled?" file-drop-zone":"",t=e.showPreview?e.getLayoutTemplate("preview").repl("{class}",e.previewClass).repl("{dropClass}",i):"",a=e.isDisabled?e.captionClass+" file-caption-disabled":e.captionClass,n=e.captionTemplate.repl("{class}",a+" kv-fileinput-caption");return e.mainTemplate.repl("{class}",e.mainClass).repl("{preview}",t).repl("{caption}",n).repl("{upload}",e.renderUpload()).repl("{remove}",e.renderRemove()).repl("{cancel}",e.renderCancel()).repl("{browse}",e.renderBrowse())},renderBrowse:function(){var e=this,i=e.browseClass+" btn-file",t="";return e.isDisabled&&(t=" disabled "),'
    "+e.browseIcon+e.browseLabel+"
    "},renderRemove:function(){var e=this,i=e.removeClass+" fileinput-remove fileinput-remove-button",t="";return e.showRemove?(e.isDisabled&&(t=" disabled "),'"):""},renderCancel:function(){var e=this,i=e.cancelClass+" fileinput-cancel fileinput-cancel-button";return e.showCancel?'":""},renderUpload:function(){var e=this,i=e.uploadClass+" kv-fileinput-upload fileinput-upload-button",t="",a="";return e.showUpload?(e.isDisabled&&(a=" disabled "),t=!e.isUploadable||e.isDisabled?'":'"+e.uploadIcon+e.uploadLabel+""):""}},e.fn.fileinput=function(t){if(n()||i(9)){var a=Array.apply(null,arguments);return a.shift(),this.each(function(){var i,n=e(this),r=n.data("fileinput"),l="object"==typeof t&&t,o=l.language||n.data("language")||"en";r||(i=e.extend({},e.fn.fileinput.defaults),"en"===o||R(e.fn.fileinputLocales[o])||(i=e.extend(i,e.fn.fileinputLocales[o])),r=new _(this,e.extend(i,l,n.data())),n.data("fileinput",r)),"string"==typeof t&&r[t].apply(r,a)})}},e.fn.fileinput.defaults={language:"en",showCaption:!0,showPreview:!0,showRemove:!0,showUpload:!0,showCancel:!0,showUploadedThumbs:!0,mainClass:"",previewClass:"",captionClass:"",mainTemplate:null,initialCaption:"",initialPreview:[],initialPreviewDelimiter:"*$$*",initialPreviewConfig:[],initialPreviewThumbTags:[],previewThumbTags:{},initialPreviewShowDelete:!0,deleteUrl:"",deleteExtraData:{},overwriteInitial:!0,layoutTemplates:U,previewTemplates:j,allowedPreviewTypes:A,allowedPreviewMimeTypes:null,allowedFileTypes:null,allowedFileExtensions:null,customLayoutTags:{},customPreviewTags:{},previewSettings:L,fileTypeSettings:O,previewFileIcon:'',browseIcon:'  ',browseClass:"btn btn-primary",removeIcon:' ',removeClass:"btn btn-default",cancelIcon:' ',cancelClass:"btn btn-default",uploadIcon:' ',uploadClass:"btn btn-default",uploadUrl:null,uploadAsync:!0,uploadExtraData:{},minImageWidth:null,minImageHeight:null,maxImageWidth:null,maxImageHeight:null,maxFileSize:0,minFileCount:0,maxFileCount:0,msgValidationErrorClass:"text-danger",msgValidationErrorIcon:' ',msgErrorClass:"file-error-message",progressClass:"progress-bar progress-bar-success progress-bar-striped active",progressCompleteClass:"progress-bar progress-bar-success",previewFileType:"image",wrapTextLength:250,wrapIndicator:' […]',elCaptionContainer:null,elCaptionText:null,elPreviewContainer:null,elPreviewImage:null,elPreviewStatus:null,elErrorContainer:null,slugCallback:null,dropZoneEnabled:!0,dropZoneTitleClass:"file-drop-zone-title",fileActionSettings:{},otherActionButtons:"",textEncoding:"UTF-8",ajaxSettings:{},ajaxDeleteSettings:{},showAjaxErrorDetails:!0},e.fn.fileinputLocales.en={fileSingle:"file",filePlural:"files",browseLabel:"Browse …",removeLabel:"Remove",removeTitle:"Clear selected files",cancelLabel:"Cancel",cancelTitle:"Abort ongoing upload",uploadLabel:"Upload",uploadTitle:"Upload selected files",msgSizeTooLarge:'File "{name}" ({size} KB) exceeds maximum allowed upload size of {maxSize} KB. Please retry your upload!',msgFilesTooLess:"You must select at least {n} {files} to upload. Please retry your upload!",msgFilesTooMany:"Number of files selected for upload ({n}) exceeds maximum allowed limit of {m}. Please retry your upload!",msgFileNotFound:'File "{name}" not found!',msgFileSecured:'Security restrictions prevent reading the file "{name}".',msgFileNotReadable:'File "{name}" is not readable.',msgFilePreviewAborted:'File preview aborted for "{name}".',msgFilePreviewError:'An error occurred while reading the file "{name}".',msgInvalidFileType:'Invalid type for file "{name}". Only "{types}" files are supported.',msgInvalidFileExtension:'Invalid extension for file "{name}". Only "{extensions}" files are supported.',msgValidationError:"File Upload Error",msgLoading:"Loading file {index} of {files} …",msgProgress:"Loading file {index} of {files} - {name} - {percent}% completed.",msgSelected:"{n} {files} selected",msgFoldersNotAllowed:"Drag & drop files only! {n} folder(s) dropped were skipped.",msgImageWidthSmall:'Width of image file "{name}" must be at least {size} px.',msgImageHeightSmall:'Height of image file "{name}" must be at least {size} px.',msgImageWidthLarge:'Width of image file "{name}" cannot exceed {size} px.',msgImageHeightLarge:'Height of image file "{name}" cannot exceed {size} px.',dropZoneTitle:"Drag & drop files here …"},e.extend(e.fn.fileinput.defaults,e.fn.fileinputLocales.en),e.fn.fileinput.Constructor=_,e(document).ready(function(){var i=e("input.file[type=file]");i.length&&i.fileinput()})}(window.jQuery); \ No newline at end of file diff --git a/openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-fileinput/js/fileinput_locale_LANG.js b/openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-fileinput/js/fileinput_locale_LANG.js deleted file mode 100644 index 492d8c4d..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-fileinput/js/fileinput_locale_LANG.js +++ /dev/null @@ -1,45 +0,0 @@ -/*! - * FileInput <_LANG_> Translations - * - * This file must be loaded after 'fileinput.js'. Patterns in braces '{}', or - * any HTML markup tags in the messages must not be converted or translated. - * - * @see http://github.com/kartik-v/bootstrap-fileinput - * - * NOTE: this file must be saved in UTF-8 encoding. - */ -(function ($) { - "use strict"; - - $.fn.fileinputLocales['_LANG_'] = { - fileSingle: 'file', - filePlural: 'files', - browseLabel: 'Browse …', - removeLabel: 'Remove', - removeTitle: 'Clear selected files', - cancelLabel: 'Cancel', - cancelTitle: 'Abort ongoing upload', - uploadLabel: 'Upload', - uploadTitle: 'Upload selected files', - msgSizeTooLarge: 'File "{name}" ({size} KB) exceeds maximum allowed upload size of {maxSize} KB. Please retry your upload!', - msgFilesTooLess: 'You must select at least {n} {files} to upload. Please retry your upload!', - msgFilesTooMany: 'Number of files selected for upload ({n}) exceeds maximum allowed limit of {m}. Please retry your upload!', - msgFileNotFound: 'File "{name}" not found!', - msgFileSecured: 'Security restrictions prevent reading the file "{name}".', - msgFileNotReadable: 'File "{name}" is not readable.', - msgFilePreviewAborted: 'File preview aborted for "{name}".', - msgFilePreviewError: 'An error occurred while reading the file "{name}".', - msgInvalidFileType: 'Invalid type for file "{name}". Only "{types}" files are supported.', - msgInvalidFileExtension: 'Invalid extension for file "{name}". Only "{extensions}" files are supported.', - msgValidationError: 'File Upload Error', - msgLoading: 'Loading file {index} of {files} …', - msgProgress: 'Loading file {index} of {files} - {name} - {percent}% completed.', - msgSelected: '{n} {files} selected', - msgFoldersNotAllowed: 'Drag & drop files only! Skipped {n} dropped folder(s).', - msgImageWidthSmall: 'Width of image file "{name}" must be at least {size} px.', - msgImageHeightSmall: 'Height of image file "{name}" must be at least {size} px.', - msgImageWidthLarge: 'Width of image file "{name}" cannot exceed {size} px.', - msgImageHeightLarge: 'Height of image file "{name}" cannot exceed {size} px.', - dropZoneTitle: 'Drag & drop files here …' - }; -})(window.jQuery); \ No newline at end of file diff --git a/openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-fileinput/js/fileinput_locale_zh.js b/openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-fileinput/js/fileinput_locale_zh.js deleted file mode 100644 index 12d83710..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-fileinput/js/fileinput_locale_zh.js +++ /dev/null @@ -1,49 +0,0 @@ -/*! - * FileInput Chinese Translations - * - * This file must be loaded after 'fileinput.js'. Patterns in braces '{}', or - * any HTML markup tags in the messages must not be converted or translated. - * - * @see http://github.com/kartik-v/bootstrap-fileinput - * @author kangqf - * - * NOTE: this file must be saved in UTF-8 encoding. - */ -(function ($) { - "use strict"; - - $.fn.fileinputLocales['zh'] = { - fileSingle: '文件', - filePlural: '多个文件', - browseLabel: '选择 …', - removeLabel: '移除', - removeTitle: '清除选中文件', - cancelLabel: '取消', - cancelTitle: '取消进行中的上传', - uploadLabel: '上传', - uploadTitle: '上传选中文件', - msgSizeTooLarge: '文件 "{name}" ({size} KB) 超过了允许大小 {maxSize} KB. 请重新上传!', - msgFilesTooLess: '你必须选择最少 {n} {files} 来上传. 请重新上传!', - msgFilesTooMany: '选择的上传文件个数 ({n}) 超出最大文件的限制个数 {m}. 请重新上传!', - msgFileNotFound: '文件 "{name}" 未找到!', - msgFileSecured: '安全限制,为了防止读取文件 "{name}".', - msgFileNotReadable: '文件 "{name}" 不可读.', - msgFilePreviewAborted: '取消 "{name}" 的预览.', - msgFilePreviewError: '读取 "{name}" 时出现了一个错误.', - msgInvalidFileType: '不正确的类型 "{name}". 只支持 "{types}" 类型的文件.', - msgInvalidFileExtension: '不正确的文件扩展名 "{name}". 只支持 "{extensions}" 的文件扩展名.', - msgValidationError: '文件上传错误', - msgLoading: '加载第 {index} 文件 共 {files} …', - msgProgress: '加载第 {index} 文件 共 {files} - {name} - {percent}% 完成.', - msgSelected: '{n} {files} 选中', - msgFoldersNotAllowed: '只支持拖拽文件! 跳过 {n} 拖拽的文件夹.', - msgImageWidthSmall: '宽度的图像文件的"{name}"的必须是至少{size}像素.', - msgImageHeightSmall: '图像文件的"{name}"的高度必须至少为{size}像素.', - msgImageWidthLarge: '宽度的图像文件"{name}"不能超过{size}像素.', - msgImageHeightLarge: '图像文件"{name}"的高度不能超过{size}像素.', - dropZoneTitle: '拖拽文件到这里 …', - slugCallback: function(text) { - return text ? text.split(/(\\|\/)/g).pop().replace(/[^\w\u4e00-\u9fa5\-.\\\/ ]+/g, '') : ''; - } - }; -})(window.jQuery); \ No newline at end of file diff --git a/openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-growl/bootstrap-growl.min.js b/openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-growl/bootstrap-growl.min.js deleted file mode 100644 index 40642941..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-growl/bootstrap-growl.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/* Project: Bootstrap Growl - v2.0.0 | Author: Mouse0270 aka Robert McIntosh | License: MIT License | Website: https://github.com/mouse0270/bootstrap-growl */ -(function(e,t,n,r){var i="growl",s="plugin_"+i,o={element:"body",type:"info",allow_dismiss:true,placement:{from:"top",align:"right"},offset:20,spacing:10,z_index:1031,delay:5e3,timer:1e3,url_target:"_blank",mouse_over:false,animate:{enter:"animated fadeInDown",exit:"animated fadeOutUp"},icon_type:"class",template:''};var u=function(t,n){o=e.extend(true,{},o,n)},a=function(t,n,r){var n={content:{message:typeof n=="object"?n.message:n,title:n.title?n.title:null,icon:n.icon?n.icon:null,url:n.url?n.url:null}};r=e.extend(true,{},n,r);this.settings=e.extend(true,{},o,r);plugin=this;f(r,this.settings,plugin);this.$template=$template},f=function(t,n,r){var i={settings:n,$element:e(n.element),template:n.template};$template=l(i);c($template,i.settings);h($template,i.settings);p($template,i.settings,r)},l=function(t){var n=e(t.settings.template);n.addClass("alert-"+t.settings.type);n.attr("data-growl-position",t.settings.placement.from+"-"+t.settings.placement.align);n.find('[data-growl="dismiss"]').css("display","none");if(t.settings.allow_dismiss){n.find('[data-growl="dismiss"]').css("display","inline-block")}return n},c=function(e,t){e.find('[data-growl="dismiss"]').css({position:"absolute",top:"5px",right:"10px","z-index":t.z_index-1>=1?t.z_index-1:1});if(t.content.icon){if(t.icon_type.toLowerCase()=="class"){e.find('[data-growl="icon"]').addClass(t.content.icon)}else{if(e.find('[data-growl="icon"]').is("img")){e.find('[data-growl="icon"]').attr("src",t.content.icon)}else{e.find('[data-growl="icon"]').append('')}}}if(t.content.title){e.find('[data-growl="title"]').html(t.content.title)}if(t.content.message){e.find('[data-growl="message"]').html(t.content.message)}if(t.content.url){e.find('[data-growl="url"]').attr("href",t.content.url).attr("target",t.url_target);e.find('[data-growl="url"]').css({position:"absolute",top:"0px",left:"0px",width:"100%",height:"100%","z-index":t.z_index-2>=1?t.z_index-2:1})}},h=function(t,n){var r=n.offset,i={position:n.element==="body"?"fixed":"absolute",margin:0,"z-index":n.z_index,display:"inline-block"};e('[data-growl-position="'+n.placement.from+"-"+n.placement.align+'"]').each(function(){return r=Math.max(r,parseInt(e(this).css(n.placement.from))+e(this).outerHeight()+n.spacing)});i[n.placement.from]=r+"px";t.css(i);e(n.element).append(t);switch(n.placement.align){case"center":t.css({left:"50%",marginLeft:-(t.outerWidth()/2)+"px"});break;case"left":t.css("left",n.offset+"px");break;case"right":t.css("right",n.offset+"px");break}t.addClass("growl-animated")},p=function(e,t,n){e.addClass(t.animate.enter);e.find('[data-growl="dismiss"]').on("click",function(){n.close()});e.on("mouseover",function(t){e.addClass("hovering")}).on("mouseout",function(){e.removeClass("hovering")});if(t.delay>=1){e.data("growl-delay",t.delay);var r=setInterval(function(){var i=parseInt(e.data("growl-delay"))-t.timer;console.log();if(!e.hasClass("hovering")&&t.mouse_over=="pause"||t.mouse_over!="pause"){e.data("growl-delay",i)}if(i<=0){clearInterval(r);n.close()}},t.timer)}};a.prototype={update:function(e,t){switch(e){case"icon":if(this.settings.icon_type.toLowerCase()=="class"){this.$template.find('[data-growl="icon"]').removeClass(this.settings.content.icon);this.$template.find('[data-growl="icon"]').addClass(t)}else{if(this.$template.find('[data-growl="icon"]').is("img")){this.$template.find('[data-growl="icon"]')}else{this.$template.find('[data-growl="icon"]').find("img").attr().attr("src",t)}}break;case"url":this.$template.find('[data-growl="url"]').attr("href",t);break;case"type":this.$template.removeClass("alert-"+this.settings.type);this.$template.addClass("alert-"+t);break;default:this.$template.find('[data-growl="'+e+'"]').html(t)}return this},close:function(){var t=this.$template,n=this.settings,r=t.css(n.placement.from),i=false;t.addClass(this.settings.animate.exit);t.nextAll('[data-growl-position="'+this.settings.placement.from+"-"+this.settings.placement.align+'"]').each(function(){e(this).css(n.placement.from,r);r=parseInt(r)+n.spacing+e(this).outerHeight()});t.one("webkitAnimationStart oanimationstart MSAnimationStart animationstart",function(e){i=true});t.one("webkitAnimationEnd oanimationend MSAnimationEnd animationend",function(t){e(this).remove()});setTimeout(function(){console.log(i);if(!i){t.remove()}},100);return this}};e.growl=function(e,t){if(e==false){u(this,t);return false}var n=new a(this,e,t);return n}})(jQuery,window,document) \ No newline at end of file diff --git a/openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-growl/jquery.bootstrap-growl.min.js b/openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-growl/jquery.bootstrap-growl.min.js deleted file mode 100644 index 0936670e..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-growl/jquery.bootstrap-growl.min.js +++ /dev/null @@ -1 +0,0 @@ -(function(){var c;c=jQuery;c.bootstrapGrowl=function(f,a){var b,e,d;a=c.extend({},c.bootstrapGrowl.default_options,a);b=c("
    ");b.attr("class","bootstrap-growl alert");a.type&&b.addClass("alert-"+a.type);a.allow_dismiss&&(b.addClass("alert-dismissible"),b.append(''));b.append(f);a.top_offset&&(a.offset={from:"top",amount:a.top_offset});d=a.offset.amount;c(".bootstrap-growl").each(function(){return d= Math.max(d,parseInt(c(this).css(a.offset.from))+c(this).outerHeight()+a.stackup_spacing)});e={position:"body"===a.ele?"fixed":"absolute",margin:0,"z-index":"9999",display:"none"};e[a.offset.from]=d+"px";b.css(e);"auto"!==a.width&&b.css("width",a.width+"px");c(a.ele).append(b);switch(a.align){case "center":b.css({left:"50%","margin-left":"-"+b.outerWidth()/2+"px"});break;case "left":b.css("left","20px");break;default:b.css("right","20px")}b.fadeIn();0 - - - -``` - -## Usage - -Just like in Bootstrap you can activate it without any JavaScript, just by adding a data-attribute, you can make it automatically work. - -Add `data-hover="dropdown"` in addition (or in place of) Bootstrap's `data-toggle="dropdown"`. - -You can set options via data-attributes, too, via `data-delay` and `data-close-others`. Here's an example of markup: - -```html - -``` - -Alternatively, you can initialize via JavaScript: - -```javascript -$('.dropdown-toggle').dropdownHover(options); -``` - -This also works with submenus without any other configuring since Bootstrap already supports this feature. Just use the markup like you were using before. Only the top level anchor tag needs any special markup for my plugin to work (see demo for proper markup). - -## Options - -* **delay**: *(optional)* The delay in miliseconds. This is the time to wait before closing a dropdown when the mouse is no longer over the dropdown or the button/nav item that activated it. Defaults to `500`. -* **instantlyCloseOthers**: *(optional)* A boolean value that when true, will instantly close all other dropdowns matched by the selector used when you activate a new navigation. This is nice for when you have dropdowns close together that may overlap. Default is `true`. - -## Demo - -You can view a demo for this plugin on my site: http://cameronspear.com/demos/bootstrap-hover-dropdown/ - -### A Note on Choosing a Selector - -This plugin purposedly lets you choose a selector (as opposed to apply this to everything with the class of `.dropdown-toggle`). This is so that you can selectively apply it where you want. Maybe you only want to use it for the main nav, and not have it activate for dropdown buttons in the main content. You can add a class to the item that normally gets `.dropdown-toggle` and use that class with this plugin to easily achieve that, or use a selector such as `.main-nav .dropdown-toggle`. - -**Important:** Bootstrap relies on styles associated with the class `.dropdown-toggle` (for stuff like the caret color), and it is recommended you leave that class alone. - -## Changes/Bug Fixes - -I'm a slacker and only started keeping track of changes/bug fixes starting in March of 2013. - -* **2014-01-27** Fixed an issue where chaining could break on mobile and cleaned up the the way the plugin triggered events. Also cleaned up the demo (fixed navbar appearance). -* **2013-12-05** Change all references of *Twitter Bootstrap* to *Bootstrap* to reflect Bootstrap's name change. -* **2013-11-09** Disable this plugin for devices that support touch. The plugin was causing issues with some mobile devices, and it's not necessary for them. -* **2013-08-02** Add support for Bootstrap 3. For Bootstrap 2.x.x, use the `bootstrap-2.x.x` branch. -* **2013-06-10** Always instantly close submenu siblings when opening a new one. Issue #19. -* **2013-06-10** A fix for my last fix that would sometimes cause the correct item to not trigger when it should. Issue #18. -* **2013-05-08** Fix issue where a sibling could open a drop down that wasn't theirs. Issue #18. -* **2013-04-29** Added support for submenus: Submenus should now honor the delay option and way before closing. They do not abide by the `instantlyCloseOthers` option, as it's not really relevant. -* **2013-04-19** Fixed an issue where the conditional rule to disable hover on mobile wasn't working if you included the script in the header. -* **2013-04-03** Made it so if you're using the responsive CSS and in tablet/mobile view, disable the hover. -* **2013-03-16** Fixed an issue where the options you passed in via the method call were completely ignored. - -## Contributions - -[Mattia Larentis](https://github.com/nostalgiaz) helped me with the idea for the data-attributes and doing the options via an object. - -## Roadmap - -As this plugin, in its simplicity, is pretty much exactly what I intend it to be, I don't plan to implement any new features. ~~**One exception:** I would like to tweak it so that when you're in a submenu, it doesn't instantly close when you hover outside of it.~~ **Update:** I added this in late April 2013. - -If you have ideas for a new feature or something along those lines, you're welcome to share them with me, but I am not likely to implement it/merge your pull without a very compelling reason. You are absolutely free to create a fork and implement the feature yourself for your and others' use. - -This, of course, does not speak for bugs. If you have a bug, please bring it to my attention, and I will try and fix it. Note that 93.7% of people's issues are caused by incorrect markup, so please double check that first. - -## Me - -Follow me on Twitter: [@CWSpear](https://twitter.com/CWSpear) or check out my [blog](http://cameronspear.com/blog/). diff --git a/openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-hover-dropdown/bootstrap-hover-dropdown.js b/openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-hover-dropdown/bootstrap-hover-dropdown.js deleted file mode 100644 index 55c5aa21..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-hover-dropdown/bootstrap-hover-dropdown.js +++ /dev/null @@ -1,14 +0,0 @@ -/** - * Project: Bootstrap Hover Dropdown - * Author: Cameron Spear - * Contributors: Mattia Larentis - * - * Dependencies: Bootstrap's Dropdown plugin, jQuery - * - * A simple plugin to enable Bootstrap dropdowns to active on hover and provide a nice user experience. - * - * License: MIT - * - * http://cameronspear.com/blog/bootstrap-dropdown-on-hover-plugin/ - */ -!function(e,n){var o=e();e.fn.dropdownHover=function(t){return"ontouchstart"in document?this:(o=o.add(this.parent()),this.each(function(){var i,r=e(this),s=r.parent(),d={delay:500,instantlyCloseOthers:!0},a={delay:e(this).data("delay"),instantlyCloseOthers:e(this).data("close-others")},h="show.bs.dropdown",u="hide.bs.dropdown",l=e.extend(!0,{},d,t,a);s.hover(function(e){return s.hasClass("open")||r.is(e.target)?(o.find(":focus").blur(),l.instantlyCloseOthers===!0&&o.removeClass("open"),n.clearTimeout(i),s.addClass("open"),void r.trigger(h)):!0},function(){i=n.setTimeout(function(){s.removeClass("open"),r.trigger(u)},l.delay)}),r.hover(function(){o.find(":focus").blur(),l.instantlyCloseOthers===!0&&o.removeClass("open"),n.clearTimeout(i),s.addClass("open"),r.trigger(h)}),s.find(".dropdown-submenu").each(function(){var o,t=e(this);t.hover(function(){n.clearTimeout(o),t.children(".dropdown-menu").show(),t.siblings().children(".dropdown-menu").hide()},function(){var e=t.children(".dropdown-menu");o=n.setTimeout(function(){e.hide()},l.delay)})})}))},e(document).ready(function(){e('[data-hover="dropdown"]').not(".hover-initialized").each(function(){e(this).dropdownHover(),e(this).addClass("hover-initialized")})})}(jQuery,this); diff --git a/openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-hover-dropdown/bootstrap-hover-dropdown.min.js b/openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-hover-dropdown/bootstrap-hover-dropdown.min.js deleted file mode 100644 index 25757af5..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-hover-dropdown/bootstrap-hover-dropdown.min.js +++ /dev/null @@ -1,13 +0,0 @@ -/** - * Project: Bootstrap Hover Dropdown - * Author: Cameron Spear - * Contributors: Mattia Larentis - * - * Dependencies: Bootstrap's Dropdown plugin, jQuery - * - * A simple plugin to enable Bootstrap dropdowns to active on hover and provide a nice user experience. - * - * License: MIT - * - * http://cameronspear.com/blog/bootstrap-dropdown-on-hover-plugin/ - */(function(b,a,c){var d=b();b.fn.dropdownHover=function(e){if("ontouchstart" in document){return this}d=d.add(this.parent());return this.each(function(){var m=b(this),l=m.parent(),k={delay:500,instantlyCloseOthers:true},i={delay:b(this).data("delay"),instantlyCloseOthers:b(this).data("close-others")},f="show.bs.dropdown",j="hide.bs.dropdown",g=b.extend(true,{},k,e,i),h;l.hover(function(n){if(!l.hasClass("open")&&!m.is(n.target)){return true}d.find(":focus").blur();if(g.instantlyCloseOthers===true){d.removeClass("open")}a.clearTimeout(h);l.addClass("open");m.trigger(f)},function(){h=a.setTimeout(function(){l.removeClass("open");m.trigger(j)},g.delay)});m.hover(function(){d.find(":focus").blur();if(g.instantlyCloseOthers===true){d.removeClass("open")}a.clearTimeout(h);l.addClass("open");m.trigger(f)});l.find(".dropdown-submenu").each(function(){var o=b(this);var n;o.hover(function(){a.clearTimeout(n);o.children(".dropdown-menu").show();o.siblings().children(".dropdown-menu").hide()},function(){var p=o.children(".dropdown-menu");n=a.setTimeout(function(){p.hide()},g.delay)})})})};b(document).ready(function(){b('[data-hover="dropdown"]').dropdownHover()})})(jQuery,this); \ No newline at end of file diff --git a/openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-modal/css/bootstrap-modal-bs3patch.css b/openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-modal/css/bootstrap-modal-bs3patch.css deleted file mode 100644 index 9939f3ce..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-modal/css/bootstrap-modal-bs3patch.css +++ /dev/null @@ -1,51 +0,0 @@ -/*! - * Bootstrap Modal - * - * Copyright Jordan Schroter - * Licensed under the Apache License v2.0 - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Boostrap 3 patch for for bootstrap-modal. Include BEFORE bootstrap-modal.css! - */ - -body.modal-open, -.modal-open .navbar-fixed-top, -.modal-open .navbar-fixed-bottom { - margin-right: 0; -} - -.modal { - left: 50%; - bottom: auto; - right: auto; - z-index: 1050; - padding: 0; - width: 600px; - margin-left: -300px; - background-color: #ffffff; - border: 1px solid #999999; - border: 1px solid rgba(0, 0, 0, 0.2); - border-radius: 6px; - -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); - box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); - background-clip: padding-box; -} - -.modal.container { - max-width: none; -} - -.modal-backdrop { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1040; -} - -.modal.bootbox { - border: none; - background: none; - box-shadow: none; -} \ No newline at end of file diff --git a/openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-modal/css/bootstrap-modal.css b/openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-modal/css/bootstrap-modal.css deleted file mode 100644 index bc62761a..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-modal/css/bootstrap-modal.css +++ /dev/null @@ -1,214 +0,0 @@ -/*! - * Bootstrap Modal - * - * Copyright Jordan Schroter - * Licensed under the Apache License v2.0 - * http://www.apache.org/licenses/LICENSE-2.0 - * - */ - -.modal-open { - overflow: hidden; -} - - -/* add a scroll bar to stop page from jerking around */ -.modal-open.page-overflow .page-container, -.modal-open.page-overflow .page-container .navbar-fixed-top, -.modal-open.page-overflow .page-container .navbar-fixed-bottom, -.modal-open.page-overflow .modal-scrollable { - overflow-y: scroll; -} - -@media (max-width: 979px) { - .modal-open.page-overflow .page-container .navbar-fixed-top, - .modal-open.page-overflow .page-container .navbar-fixed-bottom { - overflow-y: visible; - } -} - - -.modal-scrollable { - position: fixed; - top: 0; - bottom: 0; - left: 0; - right: 0; - overflow: auto; -} - -.modal { - outline: none; - position: absolute; - margin-top: 0; - top: 50%; - overflow: visible; /* allow content to popup out (i.e tooltips) */ -} - -.modal.fade { - top: -100%; - -webkit-transition: opacity 0.3s linear, top 0.3s ease-out, bottom 0.3s ease-out, margin-top 0.3s ease-out; - -moz-transition: opacity 0.3s linear, top 0.3s ease-out, bottom 0.3s ease-out, margin-top 0.3s ease-out; - -o-transition: opacity 0.3s linear, top 0.3s ease-out, bottom 0.3s ease-out, margin-top 0.3s ease-out; - transition: opacity 0.3s linear, top 0.3s ease-out, bottom 0.3s ease-out, margin-top 0.3s ease-out; -} - -.modal.fade.in { - top: 50%; -} - -.modal-body { - max-height: none; - overflow: visible; -} - -.modal.modal-absolute { - position: absolute; - z-index: 950; -} - -.modal .loading-mask { - position: absolute; - top: 0; - bottom: 0; - left: 0; - right: 0; - background: #fff; - border-radius: 6px; -} - -.modal-backdrop.modal-absolute{ - position: absolute; - z-index: 940; -} - -.modal-backdrop, -.modal-backdrop.fade.in{ - opacity: 0.7; - filter: alpha(opacity=70); - background: #fff; -} - -.modal.container { - width: 940px; - margin-left: -470px; -} - -/* Modal Overflow */ - -.modal-overflow.modal { - top: 5%; -} - -.modal-overflow.modal.fade { - top: -100%; -} - -.modal-overflow.modal.fade.in { - top: 5%; -} - -.modal-overflow .modal-body { - overflow: auto; - -webkit-overflow-scrolling: touch; -} - -/* Responsive */ - -@media (min-width: 1200px) { - .modal.container { - width: 1170px; - margin-left: -585px; - } -} - -@media (max-width: 979px) { - .modal, - .modal.container, - .modal.modal-overflow { - top: 1%; - right: 1%; - left: 1%; - bottom: auto; - width: auto !important; - height: auto !important; - margin: 0 !important; - padding: 0 !important; - } - - .modal.fade.in, - .modal.container.fade.in, - .modal.modal-overflow.fade.in { - top: 1%; - bottom: auto; - } - - .modal-body, - .modal-overflow .modal-body { - position: static; - margin: 0; - height: auto !important; - max-height: none !important; - overflow: visible !important; - } - - .modal-footer, - .modal-overflow .modal-footer { - position: static; - } -} - -.loading-spinner { - position: absolute; - top: 50%; - left: 50%; - margin: -12px 0 0 -12px; -} - -/* -Animate.css - http://daneden.me/animate -Licensed under the ☺ license (http://licence.visualidiot.com/) - -Copyright (c) 2012 Dan Eden*/ - -.animated { - -webkit-animation-duration: 1s; - -moz-animation-duration: 1s; - -o-animation-duration: 1s; - animation-duration: 1s; - -webkit-animation-fill-mode: both; - -moz-animation-fill-mode: both; - -o-animation-fill-mode: both; - animation-fill-mode: both; -} - -@-webkit-keyframes shake { - 0%, 100% {-webkit-transform: translateX(0);} - 10%, 30%, 50%, 70%, 90% {-webkit-transform: translateX(-10px);} - 20%, 40%, 60%, 80% {-webkit-transform: translateX(10px);} -} - -@-moz-keyframes shake { - 0%, 100% {-moz-transform: translateX(0);} - 10%, 30%, 50%, 70%, 90% {-moz-transform: translateX(-10px);} - 20%, 40%, 60%, 80% {-moz-transform: translateX(10px);} -} - -@-o-keyframes shake { - 0%, 100% {-o-transform: translateX(0);} - 10%, 30%, 50%, 70%, 90% {-o-transform: translateX(-10px);} - 20%, 40%, 60%, 80% {-o-transform: translateX(10px);} -} - -@keyframes shake { - 0%, 100% {transform: translateX(0);} - 10%, 30%, 50%, 70%, 90% {transform: translateX(-10px);} - 20%, 40%, 60%, 80% {transform: translateX(10px);} -} - -.shake { - -webkit-animation-name: shake; - -moz-animation-name: shake; - -o-animation-name: shake; - animation-name: shake; -} diff --git a/openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-modal/img/ajax-loader.gif b/openo-portal/portal-common/src/main/webapp/common/thirdparty/bootstrap-modal/img/ajax-loader.gif deleted file mode 100644 index 4e651edc478b3db7ad5758bdb912e890e884aaf7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1737 zcmaLXeN0pL8o=>mVSNFFR?eYHw^G0X@>)6Uoc8qfwB-~EmKV=JuoeomNbTCui!i-L z=kN3!r(^bLoJMDK8l%x|IKbKHm<(nhIwM!-)#&x=G)AK_8jR7aG1oiqb^nq3{Q1k1 zUp~nzkUI+-`SAN5_T@8zv_wD=RBEZ{Ga)@#E>~>GS8$@7uR891gEtyY}qavsbTP z^>{osn{EI8{U=YJT(f4)_U+s6-MhDE&mN=E$Z_1!qeml=$m!Fk{eC||5Tm1`M~)n! zC<@2%hYuek@#4kHmoGnf@L*zMV#kghhYlSY931TH>pOVxU@#aA1OiT{GZu@POeVcvKQc0c zVc5XHKwVv(#bRk`X^BRojg5_3t+v0vzq-1*x3_oW#*I67?u7oF%-4y|a(c0qtSv7s zR>#fy<301=>DI8<)8p+>^>y_uS9$!NPXZxNM{!rs7lJZh#7h$X*eZPU!<&eZ=!;Jw zz(iP9k-eaZW5w^z&o2fTfwKvT@4a780&ukfV+6uEN)ChJ?ND4|YCmK!89;oJY!Ee@ zz&o?yK}c5)gvrPtP8xwIC2bJ4=zv%#A2eERKq8%+!RZRpC`L9aDHH#}` zFzs;XyCU}Z+OODBHbI!p1DvU-svCv~48&I(PEr)eU37XFMu6N&4ijy^LX}eSFl`=# zO!E44u0&w_31~~pDkTI_Qr@cgjUjUy3Y#+=Ru9e7+DiYo(yb6Tz(9goGXXcg1xgZ9 zyM*pS0S8${Rl=0y*-8EYt8sTOuR{=P{fZY{Kaku17HRcbV;I4}8NN}LFibJ_4>Cv^$JKBNg0W_6p4CF?%q7=3 zN}>q=OEu?c^AF~kbkVmuQ=U@l%naB$NGliR&g)$2cRE-yyCR^V43=dnHF}25Db;Yk zmTDc)HstY8MN%Aa6iQ;U6^$U^BVzEJ4?!p}$yMl+jO9Q~Dp<@>RO5m~JF(jpGgq-A& zWZ|$t9kcej0U{aYSBB#N)@J%Ut87{zU{D%HnS$KEBqp#Jr6xdeutyvVYEbp~01W+&U*-=m_&?a36sMhwFQDo6g^Oz(TyI~{Rn!!o ztLMq=uEeDC+pbQ3^ZVB`CjRVgV%%WT8Fg7|4kBoqL_k_Jby+NilprXCBf7jwb3|<* zID3Wz0XX_CU*{u-Fdo2*^o~W)G9?fe|I7;(=77?C_eiry1{BFIIj487`3f|z zDEg!wM$#HqyEUx1W>vU1ImQ21>y&q1iZEGK(Ryx)YNocI{}0FE1ce|J#xWR5!EH91 zfz9CvxLgM_') - .append(this.options.spinner) - .appendTo(this.$element); - - if (doAnimate) this.$loading[0].offsetWidth; // force reflow - - this.$loading.addClass('in'); - - this.isLoading = true; - - doAnimate ? - this.$loading.one($.support.transition.end, callback) : - callback(); - - } else if (this.isLoading && this.$loading) { - this.$loading.removeClass('in'); - - var that = this; - $.support.transition && this.$element.hasClass('fade')? - this.$loading.one($.support.transition.end, function () { that.removeLoading() }) : - that.removeLoading(); - - } else if (callback) { - callback(this.isLoading); - } - }, - - focus: function () { - var $focusElem = this.$element.find(this.options.focusOn); - - $focusElem = $focusElem.length ? $focusElem : this.$element; - - $focusElem.focus(); - }, - - attention: function (){ - // NOTE: transitionEnd with keyframes causes odd behaviour - - if (this.options.attentionAnimation){ - this.$element - .removeClass('animated') - .removeClass(this.options.attentionAnimation); - - var that = this; - - setTimeout(function () { - that.$element - .addClass('animated') - .addClass(that.options.attentionAnimation); - }, 0); - } - - - this.focus(); - }, - - - destroy: function () { - var e = $.Event('destroy'); - - this.$element.trigger(e); - - if (e.isDefaultPrevented()) return; - - this.$element - .off('.modal') - .removeData('modal') - .removeClass('in') - .attr('aria-hidden', true); - - if (this.$parent !== this.$element.parent()) { - this.$element.appendTo(this.$parent); - } else if (!this.$parent.length) { - // modal is not part of the DOM so remove it. - this.$element.remove(); - this.$element = null; - } - - this.$element.trigger('destroyed'); - } - }; - - - /* MODAL PLUGIN DEFINITION - * ======================= */ - - $.fn.modal = function (option, args) { - return this.each(function () { - var $this = $(this), - data = $this.data('modal'), - options = $.extend({}, $.fn.modal.defaults, $this.data(), typeof option == 'object' && option); - - if (!data) $this.data('modal', (data = new Modal(this, options))); - if (typeof option == 'string') data[option].apply(data, [].concat(args)); - else if (options.show) data.show() - }) - }; - - $.fn.modal.defaults = { - keyboard: true, - backdrop: true, - loading: false, - show: true, - width: null, - height: null, - maxHeight: null, - modalOverflow: false, - consumeTab: true, - focusOn: null, - replace: false, - resize: false, - attentionAnimation: 'shake', - manager: 'body', - spinner: '
    ', - backdropTemplate: '

    ZW5YPqv)#O%WoHXVT0DAt$-RVe8Hsd~5-B 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%0D)ru9!n*aB{iMY3oULApn{No z>U4mNzyzBP*D5%1ldOhRf`L)6P;6}CAT^%)qKSZ9P0-w4|A{l)Nz*4UwtnWpl?F8y z=31+{o3?3cOC?CsRMUK9lRtc-_lsZL`sTZ)N;jyef|l%qM?wWt@QtPy=Z6)b*0d~B z<)K0#QOb!7v>i-PPzcFzuG#xvui5p(2N%q(8~^OmrPVxODn+G~I2hH;noO+e8)HX4 zhCwM=F~*vTyrE!eJX`Bm;!V5+r+oc(;ZYN_9VjLgosn|ECHum(Qp#@aXB zQ2yKl^S4bj|Fndg?I$mL!=CD&e(db0kJB@kI?IRLYj1JAOrBaP8l9H0eqnC&dye2h zN8W$DxZDG`oRSJv00<^BwF#^waHc91qtVfc!7o2BbNf^qphL6G@3?v6;l)c54uKLf zWwf^?%Ta(+SF~+j-S}5ZObQ}mVn!fPU=D^juncH8s_xx4aYL(jd?Nq$yCyDdhM)Wc zSzhvQc?I5h4NmmJht5{qAXP;f5CjAS15uDi5R?i}(RWm31Oz04u7e0FFT=bq1TYLE zVYC=rVx%ZCSilNcl^A5<8UYz{@QAkB)Ke*|3RPes6SRuHd#W0hmGyK)buv$#z!zdX z0`SMUV_#jbzijRKWwkz@*IJu1(hE-khHis?_p^oGru2DA)R>DMU;=|APPmFrq){uty$#36# z=R)RF?)&!hi{amYeCuo>-+1GJYr5rUE^H14o?1br1emErkO4s*gHj{H7)A3k6``Pt zgvA3wWc+B9VEvW1CEs_)P5^JYec{Qa!Owqk6UC%~hKy~Rf{ci&Q6MX1kbQKi7Tz!HG{F-x?+R|JxU$gpKFd z?VaKdw1>!ZVFxXDcFUV4ZPz+z(7>vx52=P0sgg(t6(CHcrT1kSYBG_iip1a;CL!{% z5WxnrAvUsXz==sxGOntq3}$|!JkXHUDSKkQlEF}ugiM|AS$6^g(rAsXV+NZNi}-c8%u_x z{usflKm!1YVu>sK%s8@fWFT>L@DUy>NbUQ!*{GiugDh8A7 z&e1L(yUb4xXS|`zm$?YRD;ZUyN&&ABVHGuq!L{`_EhDwkQvs&UBc`6YRmx7X54B)9w&zT0G*5t z8w9`@kdGeesiSUc?F&pt=&L`O0))V_{aR*yj6^JR28j(a`z_G!Sn*CNUt>vmrP7UKEkmzj4 zs!#}%fK+1jA`({d-sFL78XCsP-fJhWolHOZe12?cM3b2kM>IzzQZ`tBlV#AQCui{A!v4tV9tr@L0RohbW zfM3rqOHxr^B4N37t0p+hIe-U zpZD&ZYHt4eS^>mJ5)~i-nH!?@(2~CQ{K!&5@YbO8YO8SlJk7O| z51uTZTytn7M1dqm6F5>+2DKxr4KLp-@i!DEoEnO z1RIctU1GaQ)=K?mQ9+G@!4_l{0UDGeE7<5TUzix&ySLNgMs$|}h}lf1=Jk6Tzuoq0 zZ0nR;IEYG}d&p|G#WghcFJVIbd>~kLY1#KE26yf%zUz8A+Vp!{$*HpOpFdZA@bU8I z!|7Y@7?q1_d#_J@YJU4^|MW_i5_@Q7^lgXiEuBVD+7iNujCkG#tR<#JZ0{`MZ|Dj_ zJ?71T8AhNAiAfwfj$W>_OO3KYPNTpRjdahEY$hB0+85W(%kg_l{v+d5xTTs^ws$r9cA`O-wTI?!(Vis8%6p zblgod(+9hrdz;^MDEpRu*@eyZ|B>lP8n)wT#4;MednHigxR@w)NPMUgahMcYhY$rMG${CoPEpTI8_@&B2)3dXC= zNP3O?CrX)2MXU-IB0+!!3lp&?B2esWJjf6!AXXs6f#TfiC=`_GAhbTbSbeFtnXn^> zwWb&pGj{k-?w`_u{O5-@Ppul7NP%k1z+(jmCHZ3#2EQU%(ttHi8PN%r;S)y<3ui_M zpF9r?9FQWdKm%%EzGclA)el4fGchO%0^?N?QllahF5l5ew%?~HkZdqrGufEzmTS3- zMH|Y>GLDGc_Ia(_AR<-}$2@p;P#cCO)#~Mk{C8c8JKN>uEne5ge}6W7==kXNy~z*V z+uA8Ble=ZbHh<|!^TFpW8m)}C?%nAQwVPX|T^aO>s$x zusv@J_>3^urt?gAp^N1UJ0vB<#BQ!Bl`j?Xua^@2m0zIxE~}1%3L@)(VlPE3Du54U zEF*z1s8V=| z$Icpb+LZb%jAmRnFP(aEtcI8XL-1gUl}i3lObCq=(yu0EZp#p_L>D7c9mkz>To(dt zBWkfR06X42-)S{R8zC;YjRMi_fTA~AP@oKygThGk!oYWvnu_|O0+JW0$}jQ{U&tv{ zC4w`oilEXfyqHjncB6i+K8Lu*d}7G9VMSmlkrgORU{$CMuq82b1GWuvFa#me0P(?O zpcM7W)+oh(-V>la4!;Aj_fm{BA8^`GsCobzSRz!TmhQWL^8RaFe{J*WMXn~MzVO7> zJ=caUHf@)z4;YmygRN6Cs)3ZCB2l*mrkJOSs0{{1mkf3c2Q9snL+>h1DHBZ^LaZp_ zf>{9rR+x%esW!f&bZBPugEusvyJUX$1Ux~S zPFYxjl1JA<9kaSbQKincKYO-1(et6@V7T7!Up4C!zIIK3LRCddz=Il0kr@}5IPqMB zDi1z^A)i56nHd}>NctGz0U$9-#;}0(;?V!@$^PXYqvgmtAm~-n7-1PHrzf<3GfZZq@>+ywT@?U>&#f$#C2f8nt9X@kzV~L$2M%vU1}I+4z=^g7y;*cHE4`=#2DtGzouH6MvEJh!8N=P5IDBDHPT|X zgNIo`q-0Q!7h^h?5)=Ut1CS!*Lmdtcg#_w@k_gzcOUWe)8#*1+a38uj_??G_pMN&R zyurrs?ag#14HK;A;&xP`N-M5rh=~-!9LFS%juN7(k*%&4Oh84UVuWTJE#I(P-fJ+d z0rtv681s^d!KQYTkBniu>LD51yP23mUWr=e6x%yb(wB<(Ul88SU-cnML^Y>iyg#vA z%{FO$Qy1Fd?)_2)`NWxmn+R3&K({(HjdRQS@_O-2H#Fx>`OGN$=zuP*an;A`c5v%e zCXi@QB9#QCFkk97e)qYg(F`ULRw$Io5QvzRVoJ}~4vdRWVo(HP zD`bHXI0RKKMhcaMt}R7-%K>T<>jTHcF9Ts{04VOOV02KrwO)dGfP_ei%t)#apY8wJ zlPbwBN(`}&O6&+ZMr~5B>3n z-IrB)y80ZX?W3MaNCN=F-~^Pw7-E8mio|dzfW(k!D!u9pEBO;y$%YUVA}{uHY>R$X zgQy7jsw1dY0y9L&D7kSlVljs9K9W2$$Tv4_g^p%P;zC8l8kC|8KN3|uky>M@taNJ` zo0l+Lp<;xrDU&-fxz}XVVgQsiClYZf8fsyhi6+KSjlPypj`LaV1IkPiyog8eu)&LX zW^FaeWYkClNGpL#;nl%48;q_;N8xoU^=eEJb#M$~OL?gwvRjRUm1=l1vd9!Qcq7J| zP?CnAR;VFaDJd#WyvfuVm=e*^ikL(Vu`vmZfhxen26Z+wlxvmVc=@YDEMSu)WL;of ziA4V^3Xa>a`x;))(_eukG`=aZz1dc=$37JhP1go?y{AdF`ucq>KdR0=xA>~t=00*N z>~6?DTkV|oZc=V;R+oD6lXtlreDUc^!;_WOO+0h1|E9a${?_mv4;QD`Q*=QrMpfB+ zb*xTVH%DOrwSa?EL4_C*2mq7P*XZOQ3$Y_05;Yv~fO=&u&F(D!{%c2f?D9(^ymR0` zbvCVyU=v=OGJOKfyV6d9o(;IP71`-9~nf2rRB zGhr*D5OqLh;fdq45K(Oep@@Q#ib4ZN99VdKr-lAVNbL$&L5WyIIU2J7qy`{i6%tXT z$~Hg+r8*@?Y>8AfaLrH^H4Ly0izzK`yP>&K@e}9z$O+EAn5ZOniymY!P$-ZRL&XND zl3E2pJcvLkMt~ApfK_i6GMlA52bK}G_`PCAGa>$7D<(>RI!DIZf_dn;)a!iLdZGe z1sdR>t!yZ1B?Jq#EU-izPZ}7g;b6I5V!?n+jW#Ou%6>R*cZt+%k&BXbU?50sJV94- z2VN@TUvIROFlZ`tv#39Wv^DFwDkywhA>Q;wz_y z$47{SxDOYl=sfhNJp8v4i|FcIP3_kukqpL=YG1nc9XF*-!lzH@{waCgp>TQ_&h{#8 zIVM%9Kv1$!0afHnwQge={@`M7<#s#6jX364(7q6YC1w*UAyrtgsmtNmpB9X9uN;&} zD^8`lePM9VVe^hB%iliHaV>jKA@}dhCSKlR9%abOr1_cC=DlAk&J7$UQaDjTfRWnn zNqB7D5$#$6U?B_yf`=-J0TG13N(d1Uk*|2x5s2$%3;__LptYvO07l8E5I`zm3QQ8A zRHm5FM^O@Ggh0$3)&qL|dk$6q;=Ub2lAr$M@ee;&d05KmYQ|A5XBET5VYGE{KKaH& zvxjGzWf?%aRrpb*HsN+cO@dgv+^ar%Y~}bs)HYx_OH4E23FoquMjXVDs)>M$D%dd_ zHVO>a{l-OEx`5FpWtq+$M0<)|DyQcg1K z8z^$ADivQFPJ$6|)v*$wBw%rtT9zB8;cV(kCKX9wol?|EF`$9LhAa^UR-$n>pAv}W ziZqIu3=#5@ic$nVo|;_e-@OE<{6#_H`jz2@tA5K@woT($@(6-@!<9?JQl371I=|)4 z#sjzSTw5!C;DCN~4gci{EHuoKo3iH?!z1U5_bh6@PWSHQJt-|Z^z!1;X6Pgnvn>xQ zqUV#dT8%IgO{k6awS|E&GN1C2<1In*()*>C^gbfF_f z%F1JI#8s}@I+j&2pc-HqLz%S2jkCp4aKH4Bps}+|st=zWgr1#CG#U09bIs2#+yDM} z|NIKDXO^YXAW)JRysUvlA_b>*(oz@&NwCf|62nSmC4&%3WZ2rU^O*MjmOp^6f_WX7V&?|>-5N?&_w;pNVb0E3Ym!3fy63?k?l!l~9E@9CyeBjzvrg-NQ<%NEVP9lJa zR>XCKthHbPhS@L!R1RcwS(i?Q;TixpF~d{4eA<<~X9kxjYhiW|btcT(dD&XZ`#nlh z5W%|WEwJsxLbC0#{pA~0)OtCBu}Cu_Cc_#+6zejRL>qcwRD`{0<2$c0`(`w4S2SwA zY(YM?D5IPZr9x_yj2N~qF*fzXVO8eDQoGo*)~f(jsDTKaMWcmA##*tA%d>H0ss52D zvcVP1#LO&O8-CUc6dD8ku~A1^XO`&guAl3c7}Cb&jjamF!t~_NfAH8(yYW;T|w@qpWQ+f5rjcSD;tue;y(p8agM`|I}bp4)9>Y}_8e1`9B@1xNy+0ZnME zD%CvXSUG3RamRD^-fO)-_Bl5qOA-i-s!ICEPby`qG9vCh_nfuY`mNva56qtaRKa43<6pqMSNE{`Pyq_ui8~vsb+5Ie%qLSjx#%g4a~2 zEy+DnW8I7xW)MYgh{P3JRZWY?PDDt(Nm`BM5e9@W!P#Vr(KwI*5K|Y`QE=oW8emS; zi^iB~(h-5Eq2@6q;Sw7$Vsxm<%(}I|^LYH8dwVPMonL)+XS*JM@~Q;qC~pS&mVDU? zj}T$H+UwoBw(z<2>HqJe*CS-1kT;%OIkuQx8w?)1FuJlES*L&H+ito2aPP!ixU{R7 z&xy4K-WoeLVg?C0cIvUa8Q0Io-K(gk++B35$E3GnA<*_E9jt3LwxWZ@BivtgYxnBj zNtL2ev;AVV^!&_mk7?@%JfEuNR)m~N@FS+`~Y4;Z{c9%Esp^b(A<7{{0ry`v*TlxR=Y4_*u$o}L5 zEIoSfx#H9?`^>fOT}z!eKU|y|>90IqpSjX?J!f7q9v#c^eXq?QzsmpNv(XPZ&N=2H zuqwCihYfL8?e`mbYdJWHJL@cWb*;~BcJ8}A`onk1)9ZUrPvZ`afL=40{E7dC(9*6si1{?(O&0ls&!_am<#{_w9|A5U%qcZrjCNE3U+ zrVW#UO~K59V9IiJT0XT^f7`wChwj|{ji=mTiU{kF;+X2M0?~3@tL@TA!x%*2_{!k#zvHF{mkvF?Y5()D zU%Py^*7?P&+r9^`h~Zl5eL}wzuq2Me35=#gY+j7l&cxvsioQE~mn|8`W zmb|asCBz!*7qPcx%SYVOam=mx;X3xNqppzkKsj3=i`Z`{tf`HS7{ zD47vVh@?PPP)00dMy6(&?{{5M2UGwRDKieKaJMWgZOGq^<#cnHCN&xnRdpN=EkqKE zX>f44l%fYZ_+6!BLAS^?Q~a;Q_?v5W=bv2tW(5Z3^tV$`8NT)M5vZc&IR zMejQ~Zw;eqc=#?FL|)$u+XFm&YyZW~Q5fQ`qwdyY)y8=EiS^D}&%#DH#F+2!>AlhU z=?-f3!4))l!)-KQy2-GTW1!*YHk&>NTDd1U%?&()vZon9WZs3c{il9&pNQ-r1d z{+#;OQVbbr)Yvg?<1?K`{PGL>m)_XDy*qsEk-W-_Pd;^dZ>95fCl@|(q28IQ%T>*^ zq3y(!s)>>--~am`z4E#>{zJzO0n`!x?h}WfdE?GM`qXe_%uA&hG%7N$5pn7e7@47C za70lNLnhG^KXax0;FI-VerW0I7bcgs@!FH!PEY>V_wRl5^YOlW%cVYDA1k0nF~GI< zS*^L0c_2nIfjK2d%vs#6>-Rpke(LlHsxMCKgs3Hs5&G4lDy4G87v8Q0TFS$ zMgEtbyZY2KyO8YZY5cSIFE3=0sUSe0N*0WwDVYhyFjWcqmeu$-URNv^#kEoO^Un|7 z{S5C7oprlFAWl-S#vQ9Qrf+xY#!wPJW(4jSN^z5TER(go0MO}m7Z*B+6LORl0;g&Y z=19_HLYfAFB6qo?=@8pjny~<7LT??r|O(hmNCOw6qpj5ax^1SMw|WI1_sXDJtYIG#u3!10I_nY zvECmz!Rlzu9Ipyx6~hIRhee0^N+itTR33)CE4gpfYh?DuMSuj(M27`6F8{2z-{UcWo{o&4QSLVrNN%((wV6mF+ z{KV%c)6EQP&N8(zI8=8W;zIP<&B|{%%Q^N)9GOP$#GR@A{4=~&)3@K;x$SWN=tlUJ z&+I*R!Pj&1R5DXV<{Ra6n|F{VdRR;vfJRShfDq-pwLRV1^*+lH{qD|WV{dxbVqwuN zWgLBJRJ=8FN%$^FhKapHZ~4$%tQfJ$~T|J66KC z9_awtKRC1Ti=WyXPJ1}H05!5PVuMF$!hp#3W&dfjCKMzmb{+B%@veVrZ~EzLlega1 zd+NG>`YIuxM_2+c2yHVPoHNH}zBX9irP7I?=7Sgg_SLwvZhp#h3-0jk)IAg@+q(WF zrhAc`W_jaSOdx|2fjRl;!Vhh8E9CRGa11Lar901iSL1YOs$u6k=iO}ih!z}bjJsW>#@r>EPnnvwu8&Ml&sT@EP^;M z$Yls2CcYs%xI{*W5m^YVUcky6#mI~;kJG}(O2tDmAOmTWUy&4=G*fpmC?P%`#rnNx>JMCrpS#|zGZHCCC>hL|5h$kc;{SpgPA^gTHI7~oYn3F82NhB5 z_dj!fc-ykx(}_LDCyp+E@Txw3nRkK!6r!h$Fm1>)DW;7~qc9ehKl#G&@AlUJ)?4k) zr3H{3F6Bobo+~i@iD!qq*9wSWH2U8A_|M-TmkK?%tH1H0{_4fy)_NX$;tF=q=xjam ze>_VsY}jHRPwmpVoea4mhe0iJE3_a$lBS)YW-&!Hh&AV(ktUZ9ACniMf=q}c#aXaH zNv+jue(6)b6?ww|UztWimI1KfV`#V-+FnylEikizk-2G*&u)ZYx@60kuFdnGcun!^ z=WuDe0y5J~I)pqZ6pgb}3oL7r;}}s4%$CV$JEFqs(d_=47vFO>zF1E#ZShTuhxOs< z6HjhbSWtqAKyn}ph@52^M;Wcx>zBjelKKgi^V#Yxw0M{`==C#kw5`#TITJVYciZ>C zCnJ!8n9RUB9Y{FMy+w4FZ1vV`vKvO*VedMRH)U{CmTu;9sp2egNg9$Nwc|t^c+yzG zu>*-shj$cvKk#txjzi0n%6y1U003b?p1X1M#ZD5)&HzF1k!fZ+V zuiDn*#zLTR(z5H>{}Q~DH(XkEu@44Cx$)G1U% zQx=99jJP>*zh-}Z^%QXfNU4+^FFO-z0Na?s2;u-mBrs#Ba1J3tBdVGy+;qIG70+z? zv3DqQ1VM)p16U9pltBVaK{<>;0R*T6fULwIfD0HS5)iRFy#LnT$AG{~>Ntx`2tM6C4zZ9gJcfR|8f5z-L!FTnQf+cy_oBP?1zD|0*$*-QSx5n=Ha{Xfu^uO__1N3bx?rn$ZEo;>;Jmo*MA;A}}bi|ey zaa!AFuS8TevW$AA%iyPDR#TkoB} z?I!%^$Los&8pDPu4J6B256sy{Rojm%!tpRzsQvwi`M-VZ+&yc(fAxvYpZM_Q2anDF z#W$?gaqxF{uax%j-u3U2YeB>+GyBID%L%V~{@q29HaAavi+Gxhm zgtls^L{4IcMa1dd3*pBeD&`#n1dCM^We3&_R7bhKtxs*%l~-{LRU#8ps)B`(%)Ho1 z3SvhZVz zoPnJ)BF-qPHss{Gwo zvT5y)qyCXM%J)p3f0$HjRxAg6Y@9llv(&&Hx{P^QntLvczXNVA~F`uma z>j?5u;HeInWL6tNMZGXb79ge^Fq&mOa$7XWzzVS>)Joo4n)+TC=y!S)Q%0w?vH@-w z?GdUF1(;g$DZ`i=Cm2M9MwZBcWm%2-2AHgvEO>pwyr^=7Cmx~%+I2y=!;Eml=2_U8#^r* zHAIYdFxj>4VVOJZj@)4j%YOZm`DoF*=AzI(!k?&moNQEB8);BPj9|*T9dVsT4NZCB z05psjC;38IWE3h5iaa@^a0oV?U|NA#GbSelc0~b}Xxcb*D!Qz_4gzdg*C;UbJXI)@ zi7*rvlb_{2JBt8QimFwm)s#f2=$HYSa5l%8L}Clt=vY^Z(~4S-XcCDXuq=I zqWdo+9jVF+s41**I%-I2ATUe=Ym6W;i_5f*86rqpKd5LR zQU;MCP!b95OF9h9=*~U90aTUiWZ7a_0h}3+2Vr|%t09*q_veGlIgB)S!=XFBF&Wl- z-E5v48-Cq~bnPWY-P-g{N;3DLG2@W@&(-A0D4yPqhzusMGmT_EwST6uRtNvIgtgd?d*+SHvv~ zF~pE@X3B&p5eQU6BBSAEG%C=BkWLZJCdc^W>DT%tjzQaZPoX9w#K_b^131D` zUOka1Tfv%UiejgpWTjp*? znADvGHHnIpph{8MNC_#>&zdmhc6kd1WE^!ja#t8LuqxS75i785>f0{F7!Xp0F~H2? zsB{tL@`AD=8dM{bkz_ioZeE&v)6IT+f?s%&CuP6W3FR;l2+9JA5+RgGk3uGDWFQ}+ zuR$jLKC;Y;tRkbrG04;qQefsemf6>6 z0Ak_*1JFtB)sWQ7Ahzh)YC{BTLTDPpi>4qdS~(k~-tAzS2my{b&vHi?@6l+$9oU62vR#-@}Bn1kA!8&|!5_1HM*-rs)n{8EupkI`h0-eB5HKB#lH zBy;!mc00T?whAH=9Y=||C=`_exNWt3c-0|7NN z@!2Z-XU|O^zBS~2a=G?3_aG%vWy!>&rMWeUm8K!H<)!lUrTP;WrsZPjK!4_Rcw#X3 zOBZ?hY@AN)=RY6j7P9+_yp$C9s%C(c+3M|_sjBnd%XCi|>dJOsD>><)a$!WTx zXvX5GC;^Fua9Jo(NU5O)P}+kiOwHo4xoV~KrcCH`mHR5WVTu@uVOe7Uqh?hdyyv9Q z%rnjlCNXABmhnws$g4EY{ww{e+;8)PU-3*MYsKfYguK}j9c>B;&3s8QLqt;#M~KA4 zD|6y~H9ZrC{G2Yc)?WG)tct!f@T z$IQHPE6RCU>Z}jqKmAPjk7us+ipGM68Xr4@kFlx^A$e=2+s`QmyW?9{{SSV_O@Hj3 z+sxd5y0G(epP#%q%+@vEvySU`Bl&$V6SZ{2vQifPBzKo=?#z}RTE@RP)ftPpYV;xggAodio>`S0*fZ7E$@l8DpLt>$bp3C?WofnSw*idWmW{@>By$Yl z=g)5aAhv{cZf73wUEXc(?*l7oq9W?y;Tbj-ErtQGyC+#K`-kc@8^H+ zEvuxRPhAXvKiQxE&ewI$@2n5%09hi=9M@toKq3SdO($YLYMYAjC7*x#g5T>)s|KlA zB4{WfkVXWx0EjwOGK#{nd9)I$zn`(u_(mj9%hbWL{h~cH0d8&yN5rNu)8ta@p%Z`{ zN<)C|0ZixsA=w+l7#JI>yte5MyOA;mw$-Keil^!g5yD_rhQLt!IGkWwQ!di!sB`Qb zfW#TsL~24JpeL8MSIZ7F6)$R{Tk(}+$G9(fbhITil~QJYMQS?D1TKbICVk_FaljC? ziLXyVE(WrcuoD8|`j{$3AP;0na9QK2nh_!zk0Cn{deCNpqJTI=r@)O=JcI_0I!?&r>I|LHepJhIDIB#sv| znJz6&zVTN3(2LtOBV%Ypn~EFEyrEHFP)>VR{OnWXD(wB}>*V2;PNUSe2$EJC5&-}2 zPuG9%)6>Vca`XxYk%>w)tFSx0^9X<61Nl4+w@fxB`H6)tRn^{bZ=pY#H}_q4GR4sc zpTlrcQ0dx_tUY;CWTdp=WiT@jjk9pFCS~Z0-H7QcA~mp^GXkuR!OSOW4>LIs6CzPl z!kbdxhGwMnnS`S%q6x8M=0Sx|oekg)3K8dwQ^u;1If4->5TRrcIE)5(&w2ZfJImLd zluLuLQFYX1bGaLP+NmoRT3GIH*Wvva=tA8^w__&hepdAs)4~8|5|awQX_cFfsxJ?JJ1O_771Z0bmpopSLuTDvoX{}@N43Dx#RnsnO*y$nGkZu1pjGtx`9!ej6}4 z?cTK=`^+qPF3i^Vs%9n{5jkXYSnfF@f914R6N4utEz33l^!Rr8(1qQ9_M|PVVo;bZsjQ9o z#l9By2IB>4FEhuq9YvsMq+kLw(D2`|A25^f_1Piah)BR@#$bT~swA)?151+>Ml+wa zMD;Tgn3`H}8KJlIk!yBsT-`n|wMK7aQ70f{QznoTr|X0I$zj(^j*Jk4ru;Rlp@!gC z#57$7{o=r;nW+LqQh=GvOsmFi81e;28v)k*bihoBRFNYIWWN+RV`+mBm<%HD^5nJn zQ_qi%mmM_<(Tiv|v%|SQaH#Xd#`KZv(Q{6PF=CkN9ZRD>caLoD`tzIm=G%K~rCph7 zH&nOx>W2eZrVlHTQ zGs!fE7%*o#pKA;dI1n*~w9q3EC2CvKe$WA3GR-iW{dAqy?NXTua2id$stLh@k~n6e z=;1x0H#ky6Vk3h^VuSFFC{1DlWP~0Npq_*%a@-lc<`(xqe)HXb^8VxNuQdcE^nR5YZ-_KmavP zMB&tv22-L?V?MLt{QFLiKfXD7=L!A#HQck}N~b~n^Sk!$)Aq|Rx)>eiN)fdf+K)xx z`RniQJhbYbyKdKff1YSs+cYX1c`9~%cX@vJ=`)k>eeJ>1bP zjHobnV1bcH@_=gG_Dro2g?}-2AsqlxS`?1KSrg@!hBdY1{?ho+D5tpLmeryuZ8a6k zwCe^lT!JPt10y7}EF`kBfmw-AcXC}UOP-tC+ZjK5Y4q$lLf+WvfEbeUyA@P}7;`!2 zV##qu)B7@LNUKJ&*t8P(A`y~g06WTily{9Bpd80mkKw)DhzIUd5YY~^soF`hYEv=- ziG5*-Atr-bh+x3FxeV*#Z+&*!$EcHciDWpMEX(+h+?~0;{oT)O{o2KzFT0Wh!3f;V zbUE|aM?qB97V5`d*sCZ0#~wPmu8%3l{kliHgQ zlP~hZnmO4(2FDhSyaHR(Ea=FKg1cm7R1tMy+?thAyBD4H8>OVWKGGp#H|2`rmW+ zN|DKXp1b2#mbJs9_s(6CVyUA|oOMs#MC3<^926`qPiqKi#cY7t6WK4eM}y zP@{6_EXYDcsNf5rOIDi&P~<$`yo5Lomp8K8j~|kFy_@kIl|_*)mO2W2a=y5BW_NuX zi}U%dN8A(7O&w)jK}Qe`WK;-cY>rwq9zsl6M#7W{RE;h1->Ch(_7{EDMgl3BGMpfH za6|-Y5^)%LPL7d~gj@)0l=6g{rj8pUE<4aVQR`)&JP(p>2god#7_nG%7W{l}t8>uW zi}|Ic>1GzL4Fp*R6CyQ%GGIm)S;Ryvt#XxM$`o7iJ3vtZXrM2m6Eh-)8iA$gQFlpQ zX~wF`c}HAVN4x5WL|?ca02@f#bIw3b_dyLW5&K!fvx6f>G811%r;~fu_|C=ti<{#s zd$n^}Z@%2RwzIjreeJfR@4m>tat;jM3?;VW&P=)N3!ABar#m96G2gqc!^X9<)vo2}XfWC~wrB2jfFy4H8Tk{k+1 zWCx8=h0JlgLu*0|8z<_vR?`<*AQ_B9O!+uKW)WKUvg32qJ6ur_vJplbAu=jrVz8Mx zs1l-pTHq0C1~nm2jHrSc!xb9TEMj@?-+zAVJMLTm?gx73_x$tc_Hf4vmkd*w`J8=zqoi~A=9}fxp8pRo1hti-@VQEeE@DhF1{csSP@6?F zO@vKlGK*FZ1me1+J@}f}H~o4FG$!2Pl&PC~!7pr)AI%Sk` zny*j7I8@&3>Qr~NzP+ZcP+cC&%?q8iZvKQ;RFfE3VXBgf6i_fZt&{1sDa3JEKmr&h zOwO7^7p-ElMUBz6*hGr1gDWl1lCO9MLN2z_&z5>L7#f(CI+&1^5-s6uES%yTEx;(P zJgtemR*2Y$;C?B%<4s{MN7hlI=%vH1KPJ_Wz5T>*Ja=h8gPZU0 z>znezmOmRTX3KD(tfH7}Buv8XM|!WB8)mva3gcVk(7mradUdk%Z(rP5?GRXw#&&gD*j;69dr!Wwz9Rg0zW0_#o*(>&i#jpKCA+x}@=U=Bu&S7nLu7yyQNCI% zWe*UwU!hKXR>|z;@5fW$Z7=C48l5ojcMz5ga|x zA(6GAnXDT@7`3zOjP;Vn@*6T6$<&l1F+>efXnxLXrn?bYb!6GC9a|0)e|EDTj{-8} z8LP{c1!PV|RY95@$Vp+-+M@^Jn%}REKH8b5?Pt$mYP(U zL8B3o3Sf!=c#Z-Sftr{(HgUv^h`^fi(T$9$l|e--oh^|$L*HSpv{1q4uE<11dzs6k z>*ap2w@}DR-{OL7Agiv$xu1P<+{4hKH!;aFIJY;^0s7L3YGF^qe|qA|M><{gVj5YZ zIGOQEUGoRCqz)lf2*KsTg^)?Ov^$&xLRKQPVHo_zvzLx7c00xVa1cD;3-`iK3?fWM z9E_k-!KAdVAfGyoh^*w)*miWWGyRc=%eUO*Gx3@7x_9q-Vf3F)MbBl`waxLkL)8Pv zI>BUn9M`w2FfnvGYJr$copWq#wJOG@KA-^lF%GrM;A-^@WsWCKRdePCU?)V&IbFx{wbVTSlF0^p@kAFJXtb?`^J)6Z&FN< zv*x8*f!e^JOj!bgSrh?7#b8EyAnyKESF(ZR0{Jria$jCWZA#g}ed|~FdVI-qWris? z=x0MnAWapy4WCkGkd>(KTeeYMokACZKprB-LXx&2+*lViUKC9cZ@697C?2#;wlXy) zFtHe*!Hf`{?$t;7ldnIPom|KRk#hd#Bk_@o;mND!J-O11Q~p718ki!P0!%7qq)Zg2 zsxZk6iWqER=@ZXy{GT7V{KMbb{c{iX|G~$CchGJXm^tfch#;WK5E;c3xkt=UiH@gR zx$EXR{M5X!SRv{y-?bc?Lrt{;k&Y%yxxV$Dd^s=QcWQ8L5==6{L4CU@ZipMPu^x?W zfIyNQwQFYPWZV*4GCowU@5*-NyM}G=mV!kaSGwpei*dT=>#<4gX*|GWEpDsdngYJu zi}Lw1dkET^V+5om7gvH56bH3`Tsx#RY<`@~bb?NPQ;P{$-^m6sYHTu;Tv%RhSEjP{GddPq7!p`T;XM@hd zvs0XZF_^mH#2y;~2tCz2(kPZSxyyd=mJ@dTNSqWBnF|?b9ERXM&jA_4k-`NcC6o9n zZ@^#Xme+mxFY9IAZ8r5<5Aq1n&=U-xq-Bf;_8XL<%Y+zAY|6|P=Z{{qIu;Y>xJ({* zOwBiEWp@xY(Sr-!q?BxSWKE`*T4W-I<7kQysiujnmD6|J5pM5!s>VS&(aj&9s}9{} zX7=QT9b4b%1g)}8Z~|3M&d$b08JW2-;^~FYvKNSC0K+Q9MuPech3IHPS)%?Xs!j?; zG?mECya&`spwig&HCB<~09ZgO%tAmw<5x?R=UG`0JVFdL`^psr3S(w(nQ#^sa?85B zQ5E&Jhns%?-TIv;@nav~J$HQ-MR#$*NKvj+~jPAR8%>*udex2L$eGu<|)=5Jr-Hy+QIosL-_a&loS zK7M6ntkgN+4Hs*Q(JYjn-D z&*m}(!~K# z`iHu`kDTB8wROu%Vv>lMYxw3P_?xfKZ|dcLd$>D4rDv<^@M>}I;f!nRK<{6fj2Frf zrZO6Js2F9uoo5R)JRISft~(#mU#_O5r`tQoglei*+^FZ`nIS#B+41BkXTV~!0&ZUU ztG0H(YKu5tW_}8N;g6i9VNtvJ<;E(?*bWfK$XGZ=WEi6S#ES-(Nl{52)f_34fs~CL zkyy(yzu_Gw7vqCF{d8`mrF~?D7@L~sYWmRa_Tb_2+K#`nTP^pZ_qJ2T+mCi%e`|Gp zV|?}eR)I;D^R$y!uCH3c0GhH^-8f;bYVNSOm5#11^fHsp@gO_Ymztlx;{D=y;gIVa zmgb9{+C94-f@(j<-G_ZAv(uYeZ{wZ?{|z_cP|?X<^~lEfV;8e3_VOZA6Cv)3mbo`$ zQqo+uG92#e(T?vk&p9l1GoMRG#56Mn%t)28WKd-hk*pz!%v z)g`?GkOOHG;|4RJUr=B(YwYYyt&x2tBhuOMD%PYd5!fJ1BnFphAdAs7D42M@!%Kx` z3*75FE=h3F9zjVBhevY^Gx?p@@aTHp8d#P8znHT~w} zelerVW9>_RQ>T9Lw#lJl`soXDa%K7GTJ>e92=)2x>4iNHO$zt}#fo7*X6hFT zD|;@~A+c&iK%iluVY?rC31Und`;PkE+;Wa}2!IkNqLY#`#oVP8zrkW~kxX+|N1SI` z`3RGxxuQdPpRLQZ)~CZ=6zn7~`z3j1ieY_hAGu;j7O~^Gu5}?}TcGom{_K;?*}UtI z%uh1)a~X-EBAO>EO_WR>XKXG^yP{^rPF3tyE@mW_P1Fr4R?3N!SppHkSflZ)xdDIq ziG05o1FV-vh~MZy4&(tgW_)J*``?!D4YUt^(rQAYm_iYwbewQBgDM*_NI+>dNi&+B z?XO9j1*Xyd1}%BzlY!Z(d21|C1nM}B*ZKu&seKW-s5P4ER@I%43oCP*M>~Ak7VBO) z7q&Xp_5f75KFkTGUB6w1$)xC2n)ku?u4S*ktvlG}NSzFmGK<%|`}I@XuAG1Pze0o>cra*yX|p! zZZp)Jb+Tx+o5s%bV|w@X$@RVJr=GN`?22)y36?2@d~Jhp%L%&wSm(tn(?`#Yr7W_{ z8N-D-5>H5?!m$-9S=xz7P>#^dL3Shk%9+^DNsCla@*0R zbK}ALpWAu<3a=h1f)}Gmh^(68x0Fbj6cSY%fDFVjL)1tSH?FkofG-9SIE8nzQ^{3W z2~2S6q0y5wporcJ@}jd>)q`oINNS?f@gKQk>rX$}dF^VyV1bqY&HcrHeSh`-%RB$@ z)8q5oIC67wSHG7XiyMCQ`RhCy&4cZ>eB&?PJOB0boeyvMYCPT^Xnr(bUY5!A(fW{R zl2;L#)3W1s1Nndl4p~nIzx?#h;UmZI?&lZR2izMT?N7h$c$W1KtrU8^kMRI=Sr(ku z)A70S)LI1mC1JAOXb`BXoCf0*fF?|&wYI<~(G3aR2BmzeIaeIaCPBT5LI@EQjg2k# z*f9%{hiUL&P}dPhHwse6{K6#rzy+%JYFWDZ{TDE|<*$xqPvKo&6F?S8e)+uo@&!72 zqRy>*e#5{8gb+O{0}JvVLJcax8A!o^S6~6jW>$ev&G+5h;quwt?D=a1$KY;ix2XWL zCQouPhPf}D3-T($#9xg?+!{~Fm-nb?osL_PR&s-Htk>GxwCTrY4#lb|=bivb3QIFK zWR|>f+NJ1BJ8Z2l^Z`an67r>PrI}AtWrqqQl0^fjR}%tR)WR$?F@Q+(#3L{>4d5`& zd!eL5qbog(RsYL(Jn+Q%`aeB=jZ|QBE%N|M2GGo%hl- zRJHeSKPhj&AHVp_^wBdmw(jl{ArOY{XcvzStAF`K9;$g1j5;DlB%>K`v|ArOBE5O? z*Q)K^8oZ=2fIYl}%G?62Eo4)TR|gt=a{XpdL>Pl=XtA@a@5|#-zdpJ)e13h>FBe9^ zc88O_N$q3j5bqsYnfuwt>yKWW3wb#jR8T-8lt6it+u2G6VFaB;X*GJ7rbwAK3etTh zKL7;_NWg+*huH8$Gnh1PSkabMmwV;qDP7+6s1;qoQlFTG*mh`EJ^ck1DH}xO|XPD0s z`O3urmm%}8X=CzS8f**@Tmmeo4WBXt6cUNyLdH}`CwILVm!su?cLK>%LfcH+6w@Yz z82h2ee*lR8UOVxZf5S;FS47*=z5g+`{6ZKf4Y4%_0ckgBL`032q&XFmCkGPSuf=B= z`%X{Rl54Gzi>5SoQZpuDkiZi{AdBb?Cp8HorZM=A%b2<8OwFQh|bt(T1j!O zd+RDL9~nQFjm8`K$@RIr$I^>YVU^{)lV?v|u5E98a)r)aE1uoJ-a@#kJJ;{eqcC&k z>bz%RwX1u3wv+Y8Rd`^@j;^>5y%3(el3}5LVKVsHXLkSM8#@2A{Fs{*Pau zguMC_UzeR)uRnI#VLDh`)&2@^4_w$SWV!2rYE+?`B8L>xEBT(2-OVlc&p#Lrcj%A3 zZBBdHFMVQ&V92|-9MU(ej*l*ud6_+Vas5-*7qm0im27)krd}Z-FT2I+!t)!$|MNEo zZ@fKQ(bAjFbvIW!7*DcGRehE0r#}%dY;{7Rl2;ncsDQ*K{T4Ix5~7)pf+jOs#mv~> z=!TEI{X-+SB?hw*gQ?x(H0i^LAd)g8VRH`1g&Z*fo&1^grT_6mgTM2Q`aQQU=8gdV zhmT(Wg(q_#dn+qDbNM)}b9*eA1fK;^D1#e%2hf{Vr%oYaHc^fpZ{&6&$Kqv+1|qwQyT!@l!8c?_|Ya`<7dt-W@(Oh&#p{>pt7%nl7&E zk!pNyD?4$r+a1@ruK~9g#7`BAqN9B5{g~*p+y18>si%J9@JjaI-@W+OW5wCs@b`4{ zx6bYTsry#vvhw|>Dr_PaK30BViRVhXKG1p;$L5zxdEn;W-Y_oDcgXoqo!h!?%`J7h zo4b1_583K!9tK-QRlngVFD=>St!al)F5}V!85Jd2W!0!(Z|?DjpXa4{x_hbUls5A5 z@f}*9xb4ceh7N*^Bh`Tj%E8D1Gkc&GK4=W-vZRwrYFbOIt^Lru1FJ0}GX{Z~i8aKJJ<#*(9`HbM>!K@a z@2^kLt9wV>*Doz>`{Adr?{J>qJKyd4s#^%>Qq@2(C&&uv<+kWBpiCU5^*~gA;0^P~ z7UL?@<(_+fCv5NPTaM6ui}Szn;-;AY%dcB~ZlG7zHw_N^R@&It9i`__M4ba->z6`g z%*0BhP4{wx%)w$Vnklr%!X0zP>sRWn^OyEE>k_zab?(U0;r_WQ`stB=Z>i5O4rsI) zFOCP;(c8bSx7O(lIzzH5GLg%Zsj_9HP8fpNT27f~Go=EmElL?$NHo0-Zrd$WGo-Bw zSivxbdWxZ+Nls+ylmr%`(tOCR<)rSP+pjtxh4~e8E_c6&&X`{Qe*BBfDYOstG8cCIHCewNddKXR7NfaOoYf9$O41aSUna{z2mm|*DUw{?+={0>)6sCfB4X^ zJvVv!+D<)imj`p}!CfAz%UGbNw<{AGG_GFe%O-+ym$g2O-h z^!T~$In;6G(DdQu@|I5jsMKA5XiUf1=EJp1L~u?z@WRUjE^8d+$D7 zoj9^2o-fs=PS=NSGQd%n|JgV6Kl5T0ha1P{ihl3#i~rxJhVMAh9|yj3k?M{}NA6k8&J6ASr*~eQRIw}9Mw7{9 z_u3=Hs@6w3R5+e^y*{nZji;a8(&w)ndh5yR(A@Ba^(@YRs zYoKhnB*|~s?qBRy_(F|aa|*P6oCHpm_l9KBX-QaN9d~IbULVM@g?zq;DpXg8`EEUj zOp9#KypLw7?IVjurmCzF5Hn#*xq}weYRgY;iFKAXr}D!3WC}%y9OA|6<6@bYdhX-` zul2LhO4uF8jUd;jvUJJcyNn-tt$XxRJh?^>9-&X3;YVI9Xti$>oksoemGO?s=^cM+ zFaO3{=T=-%#PMw_vFcDS$CB#z9LGYI*|vU|>zfzLGScP2WDF(M;|uP=wPhdu^H=LD z0lqYVUgZ9icK%2pf1t|%_jQ0H|(N^dKr*87DR z{`E7%r>^nw)!t6@pSc>D>Ef`uWkDZ0lCSj2i@WyN<#?`&FYNMQr?=dbutq%trjor@#>;H zw&j2Eslj_r*L$?!IvprS@n)RNRSagy=sZ!mBDTqER}`xGdTlVbg(1PcsySez#{u z>z7J4v%^;y8z7=qh_7&NbBeu$xdaqt#$+xJ-Fc-hbC%4@lQKLSvl%0YMJlVhn>|0A zqjSZm!d!m%>fZE`$3{b!t@9!D%DB6=Tvqok&o4VdRXli8@9Z|FgD~Xcx31^mG5Yfl zX5V?U<_rAG7ptFnCZFWJyc0dy2Il|i^HVu9+6iTq-Tc#MgSv*JlKoQ7;|`CaLq-Nf5}WNGEEO2O0Wq63 zGZs@np7_pbh_`)9CqBS8rPjNalY4L@!*9IeE%l^{gboOp_e;M-uovmPxSe5ABl9?t zV{B)xFnXMm64g}5=D7IfvxC(m{!iYA+ZW&?T^bkfJ3X17>&Y0Wx2vrQ!}w#n`55(xqLT-pmjMrBM%$Y?hN3`rmS*IFW~27mD{^8IGgnnY%c|2e)$3Kk#=q`YV*HcLK=SvO{7q*+>2(^8o$th+?Ek2@1F5raqolR1)N#P*5J zSe}b{6xY4UhOn#COTN0|Ne(Uk?0G*W{jcx9(S_b_=HB(x@ZUT!*xB&t_GGS*5S6_; zH3%sikud;ilGY?ZvEL}&Ag62$4Gyq_TRZ4v*#o2%XQ3wQOqHDp#R$R7hByWKy()`% z0#aTAtcSXd$BCDYbZCt4Wr8 zD->#GnxoRAx6-+?3G8#j6=9Ku16z=NZyNHy+wDZ*E`as3%jGes73^z zp<*DQ6A&0R5O$#i*XK^q>EO;~H(%rzcJ%s4(aD&(@dau;e;X@>eMoE;&t@}6GJ_cr zQ=*5X4UK3FvS)D~=^OJtUP`o|(w0(pVqn#ybMBtQ-P7yibGrdW!DIvh3>-vRO#(9; zT(roDPRXJRQIvvnP-Ui$FeyeF{a70x527p&Org>ad_-LX5qU;=$E8>yK``jl5Nv6l ztAL3zWkkwx>gRf+2T$}TgRr^d2bGShP)~y^SuLtXfEYQkKn&tY905>Gtu+j$0kI|x z1d7DuBglw}SstNV9C6AvRhUNx5s3puHK8t3nZZX^ z1*;0k7{{dg7aSRM%NtWdenVraHAAX7j76YYGIFHd|QZp!m z4O~!Zj%xK5iejKLm;$vS4u?Su0x}^6jOSD>Y)yErmoJyLg;5=bn)QMeT!Y1|Ul{^h zW<-%e9f78B<#MwU z>Wrfj0<&2`TI3vzXvCGZi}P}`MF zliQzRqM`6gQBQ_ce|dla`**g9GE2)Z_Dzl2RMFfC(*HcY#f&kYhL^qHvG|l=@ z2C+FNf<$GD!C}Hc(9$tyq5%?>xLuB6Mmsq$5H=-SU+ScNkZmW(VC)AWTpElAs&Ed> zifE+CF|o-4(WcPA2->jr6h`prak0o`N|wbeD59ukAs8Zzz^W9WC0h=Pk(-d9X5r4Q z%a2KDa-2QKNTl0?FrBJJHIPZ}$qQ;q(RHRu-bk3TW;kI*B1bhh6f{YEk}>&#qG<`0 zGP9WG76A!n(pMJPth7c|7^O6g494EG#TpchG_oTi)AX|_F}2aM{jBBx&R|P3Y8TaH zvz;|HI6crLUNgbiDcAz3xh>4S|AHITMRev&*(kWC=dxs$)G}ONNdVyBB5+?f^HpBN z8|;l=8GL-k1aF^KYte5y=;r(7gGFBo7QbPRYr4D!)dN#90<;^3rZidVep*37FNvFw z4FVHu3-L7Gj0xs!vdYMaNw`fYp!NYxTm@2V5`tg=!l()pvIvF=g0e+}HQ%!pj5G>Y zCBP_}5|d;gAhK5BP&W7r-zXbXeed&pb+1QrqBQ2{0QQr5KGW~G#s8^0#!6R?%{%63 zbr8)XiHbRIqMF8hWdbtEWn*GA)qotinOJ)74FOIFBy1@W0@HCs5ad!&^(XEh-gC&k z`?NlKHRDcBs5K*sZpP?8@HyLlDkj~C!`i-@pgH&;;QmgGlZ_D25l7Hu#E}w?n&y!9 zPjQ=ZLd;+Y>9b~IF*Vd7GLVr4vAT{Hr-DvKc@zp3$s!Py7)ETQv*Uq~(%l*i&=@t` zrR_?CMgoMuVj;$uJnb7U4spT*Imy{@U>BS?hv{GklSKnyB5l&KK?!Wks%f*{)WN1v zNq*|qaCQ}z{sNCCk)kPyIWvxJq6I^M1{P}%27?(lvN>xVfw3R8vX7I^4p^S0DN!y| z^e~DTZ)fL=3|(`=qE3@Cz^q+!v{8|-f+ZZi{3aw{(IS4ZXujfPl^guP)3%F$Khi#! zn?Q7==#;cm;wGm!v0YHnb9U_@6 zHJdbxXCnor&@n>Lc1<3PVGLD3)Av!Lc11W#GH<38OKFX;5FPn99d+xY`V-Ia)t!!s zzyNPqv$~&lC+*Op$N+@{^O=wwi8;ms~GXg^#3Wi1m zLLqQ$#^xCjmXj0`>T0g^y-c@8Ar6OkE!kU-m7lv*KN1nSYf}Q5WyFp&8bZT0Lo{T` z{HCFCAfem)Wg-dC2^?X{Dj*j~L##n8P*|{8a`o(>rpAruz!JahZj(z-0`pY~A{sTC zv0LnEf6kv@pV+8~eL}7XEWyYm?8|mijwLmra7|lHQN`B*lr)V7i$pNW4H0Hw1}7OR zfmn$TsEiXk-ZgQP4Va`L193B)3MaBo)B0sz+Si69 zAdpN=X51by!(wBLIO|~ckJlEpWVRUhq0JeKj2IDB6%Q>)X>tM!iV*qJ@DOofNfWg@w@_+JJ=>s;*vVPD2M3*_6T14eLVZ4_0 zb6NS^#$an?nCHBZQZa^xp~Z|@*n%?DIVd4kgv{lRd?XF*oPc9cHWd(e9c9A17DKIh zRloCIJajbv$_t~9zYzcP`Q?vo$#Z)IN9L_?t|aWns32x$wh%3I447{sLRwa0wAqK# z#IJF}7yz)PbBzs|AjarptK>A0%s$|mi`wk4+o!lCyFc~;jF3Sz*aXpGYD;tDcixSs zy7uV#>dHhw4n)cf^QI~Ka%L*PO@3zjNfCfTxNU{40bH4&ZS%|AROlHO1#GjV)drxI z=J(CGqm4NMiJ4KFIg){}HkJ~p3s6#!AjZ|wD28N;r7>oGs$*m}BDEAQ&H^%`Xh=s1 z1*M!Vn6kOXc9PRwOWfRGDQhl@Q3M1=NOVXuVuCSoJ@kj;@CS~WJJJ8S=jvy!+7*l2 zRwKBUzDNgy>gW~K`q&q8JiZn%@f-W!SA5Ue2Dl}ikKMTW`m&D%I`}EkjNRG@(2~@r zA(@CV5Ty~Jm^Q5PePvl{P7+-?`PwQG6QHW?jJ!WTplQ@n;ijZ+At+Rl;K(K`JzO(zHlFD1sE`tPVL(7W;H@=&tT%!lV07Vp$}NZE3~5IIf@B z+A4FJD|^Rt{nM}M|IFjlIN5paUH#kFy3bwqPn;f$<2#SfXYdp&5gS(0yJ=xE9u)HC~GeLpzz*y{8r4$>M3I=yq*>k=0}58KBP82D;b=^z$rhd!6rs+baD>S0 zCx7TQ-F&zKQk85nt`9Bd*S5!HFDEsPmgUaOEY>c|q7Ra@3hfT2M-~@%c6N%g1IoSk zMZq;ODs)ToHKKA}^4_ps=yeB^(8-ar45#W!)aKx)y+SsIbx~KHF!w#T_5Rp#`p8xN z$Ir!Iy)>GHj&*X5E&eytQ@;}Z@4+AXGUaBzteyBlg>O6h=qs4zMza?+^Wykj?U4_D zMKhsVYqs6~n-nCG5>td5eW1b=W@JoEq)KGmD%6^K+`KL#BI7246EJYY=Ot=*a;ZrH zOCvb60E$FxBy4KXR^61oUrHs?WdAKBL>w)Gl$zKJreuSJrvD-WK_UWK5J&|_iZ?EX zzxVe1(es->^_gqmbko`ozGms#g`M7L@WcI(Pnw?q!Rwdd~a)!+KM&YRc#O13*% zb-%tCK6YyR#~+;ghP85YuYUZRzp@km#GCROVL=soj!8kXKB7|X2~%btuT{WuoW&Qk9F>YI-LsfQ;2`tiZfKRX?O@=h0K#42h^PMM%}p%jsM z&XkljGDtPom;sTb1`M@}Y{}PAkSI?;Cdgc52P1|udvkJaEK$pO7djF&C@8BWAev|a z5R*EDDl4`ssY2{A3CqaBa#so+dy+sUK@7n;b!?jDtlmLIC~7WLGZT>mkufYr6;fdf zc~p)JV+$%qSs({;kx)g{1U9Rqcvt|3z*EbdX|1NwO(3;d>A9ldqtOJu&L?W8r;Rbu zp)M9P%ZZ^%2pdb<9TnW}l?8u2Qk%kaLBofn@J9bV&v=B|$r4(IZ zVZet7Vj>~+A}k^yGzbroxhw;y@(Ln~%1n7Crtl#WQ3N}%WDyI1#bkKVibt`{!r`_;q)5|9eM|?AD(cO~3V?!}E@Q?$M1~POiTBmh1!P#~-?4(b2aq z*&Dn0Be!>d`ti}3k=-2dk@NneXY231FT6(Rh#UQxoA9TOFa68MhaWn%^^@Ou$DhBY z^MMPOU);6hM^F6XW5d7n_TGJK*^x8VW7}RjIcmE$#a_)*B?p>R1aI?MXDr$7ga*FK zok}Pc@X+Ql0pC9v0hx7Tl#nW5WXnP8+=a+SDxi{FB>)Sg@ zfqDxTBBrCmi{(N=SEn=@6O5#TuFFR|m1SA4+mF+bBOX4~T_07`N;P92f<;fcJ51p% zt2Tc`o?pk)JLKUoo)%@fIOm4Z5B5BeqwLD&&fQ0B{*VkuVLp?a4;LRjHN8?V)V>B= zf5G)jy)xE!eJ*Io^G?6p7qM7h=I9DqS8~pB2P6213~2fQ7_&xo>#E!*G9xi!3T6ld zkcqJx8KN^{-l;4C$RMz&>`7g1(iiXI?(q2H?sC_CVz2slPmg}{oL#HBdf$n zz7WfJ1={deeDn8m6!8Nrh*t-H{P$YKU-CH}FyOVs`-VkJhy`17udyIWQjiD9gzg zrM>F9VHjjf&4^oUy%!r{`sk$fA!(frPw)q)53~XFKmsjt=Dnvzwzcd zLws~&@WS=!vF_YGD|7t?oZH^Z#NBmb_3~bQdS?hOA3W0Suw0%@B(rZkx%%nT8=He6 z7e%L_VbH8_VOser-rVoryj*UD@YJ*0y<_>>iu=^r+7Ij-9$Z|o{>NV&Ub{Mh*qtYO z_pJ1uzC1azGkwEh_ucp8k6#)+y>7=ky-OPv=E}F;+4CA6xi-Bz3?{W|H;$CC)cxa?NC5CkY#Pw*32I16|3L}E7+^Bnz^s^HNcILMX$nh>~}?H zOuw`J4GuRhTZ!pKYHA8LG-_OCiW-fiA<8Csp^+L9yOup>V5l)zU>cK8q&aQW;T(vR zIKo9vD=8DBNKVZHaZ0=d*s*|INYOTCZ0w8_7Lv6(r8punBafIEWf=w4ys8;-yfWwS z=+Nb&UhViJrQIxivco--HKuvSYN;o?@s3h%U3Q<_-90@S-LqofdAmEl5Ka&3OOyJ< z9N*J%3%Mez*UET^aJ&muI@#eJZ+9=~ZBDQI@dJzXAH6#}vJijmnL$SJ#2n4D78Y;G z@$g}Ow$Pi4>aNVPh|g`+-%wBAbcFVHi3Q^Q0xW7N@f6CUbqZ2 z3W|_68wDVxr)gA76_QMJ(JuFmAv)$-%L{KGF? zUs{{bJDtxxbMd=gd)wyLPDk~joAL*bbuaGuf4DKuGt%gecjB8Dd1oQs4W?uSeT47 zT3~TXZ~&WmGjj|ja6}%Z%(kq2_Ze*NOp%p5?}$UI?4gF*_40P%FR4^7$x(Qf(F?y) zMf@c$uk_VYroZrjp)cZoXhZ-BNHuNRnH%v5fs`6I^W+fP5LYDqoyM)7Kulx~&APua zu_O@08I;AC$wiaqd?rQCi`wnb>0MjQT-__jlMI3HJG^jpH}2{Dbe=EO zHraNUtGQ2Jiwkq*;+%VAdwTD#zk9VfcEWjI_z@#3-*a(PK0AJRwSOqjKedB@cQ$q~ zm*orN-T0cLi`x@gcd*POPb7hH_qc3c3FBEUP0}nX=z|lQlxXYXMH=XF#Q~#N>m%izN zrAwFmcijc6cZZYd*BxCbOZQvPU;Ty?`7w*-Qhhqer$_5=K6=L{`;&7f#c+2Rk30SI zuaOshRn+{)?{dfH-R@xW)cH|&x%}??J8!?O%hSnco*2LRq2+h>v-8(>pSU)+J}SFZ zEq5n>;bDI3o$lGEcUI@~KYFL!gzBv)V>PnDW_a5Xx9jEaf6{~IpwY+_Jfoe1S%I0V z%BWE=L%}4C$RVX)k^u}QMKCxcBGt$gAuXp0hyY0dZ%qhOpx0$dPPMMp_Oi`L3HFM$ zZuHVN^i@~5guef8e1-6P`syj)UuKEl|2W&#sWr55ZasYxZKVC^8$sOxsxA{)h{Y(` z_%SgHi;*aCvfF0@Q{&qo@-_q|V}F*NYFn$k(`Yw(fl3A|BnLGj;y{7wxHOvBz^yZ)YF4 zsuyFvxzqo|mP}-E%FFLM8{Yd|h2HXBB+*oPSqDC<>g?X+4i5g&g+x%s@R#~;%9crwyuzrFs8XX`uf$=-QV_NM%QJ-7Yu zKfk%Kviia6_?sWT@GW;QEHE$hI{*BU?SFfE5|`$;Yx$e+Idk)g{79+7?(Be`zTzLg zd#xJpb-VJPFT{WP*l1+*x|{o4P3M5u9nH6x{?=#x&wqwLyzTzj1N}RX$ zn7`-w+NhTrJZ3m1Gek@0y?`JLCd3qzO&}u2l<14vD3ny#gbYSTY^J8VugWq->p;P# zM2bB1JB@g`*+S7P*#sU0QeNey%zdTLv6k>>U!|4(rIXYF3L`<1;Ig@MiA^+_^dwPc z8bfGnBoP;v`No<~fi#7xZ4)axe^UQEA73dzxi zuV^jD5hO%x4T!JJM^8-fPG}DIUGa)z!v0>Hz!5%%Ylc!p;$LgO_LFO^bxI^83SVpIk+c?s1C2x~ z^=e9BfRh7XQ%0$AP(?DIGffCLwW>ifgPL(eYfK%Ar0tSXBfT~SK`8lcCp!RQ6N9wk zPfmgfhM9tmTc1Bo5p@m_h_|waTH%<8CLIX|5-}IMdCWMBoz(?cyjS0&Tr!(bUDs(9 z5PMxX&MME9dE$UP_De_6O+xet5Hd$)VWsf6gpnch6p6FY7=h&gX&#jv=1Usa(@{{6 zQK8+e=p!2i7y>#attTd&nw72UNR_C-Zx7svVI z+kNr&XCIJ1|E9I|vH$o^o`>vmEfetO#GTr}u%e-4pFKOddp`cvH}~IoxcA8o`X?W^ zbEE19A6j_p&Hby>_|Yrw@^E>PJDX$Mqaq9ze)*}5zue#Zk#FcuS^oX0$w!`be>S6y z3Oka2epkg)<~m*~vn2)KJ@+t(uUx6b2RgJ5>bcUGa2sIwH2fRqS1PCYq8YG_B|yN-d1Vf zcxDLgLq7y^Mg|K+NjezBRG4a~p?L};BNH;AWL?x?{<(29syWH3d;wwbRMnyp8JuOx z1gnXHiE#i&u|m{{0+7~^o?xmH%|IT60LzU^cAh;VfgPN(1ZSC<8WY5kX$D`2h!A3o zCg}jvxJFkE&uk}a-*7qug*Ve#}Cnk4ZSqHNpe&iz3T3cd~}^^ zWKm>eP@Edpmp@r|xH!EdawJc`a+X=m&cy_d5iSz`KpHz8A;4y!wHef4F@gkU#;ITv z8K+MrUGl^mG*iZY5?2$sl6)%C=)|;dhxBrRDqpzFe0750uSgNcY&r4O%TD>CCsSiD zo01E_Xr%6KO2NT1e`)bT+jsbEMEq@!!bu&Syz7h` zx3?6}H9K?~Lq}G^40c2ls0C738`P4Tf3*LMF^Y?=qe$D7DwGj{V3sK?B9fU}Gz2qA z9C}MWj${rLEqbF2ViY0*V4Q$fQf*E*i$-dRAQ+RNQ4OkM1_x3DL)jAkWC>_8Wg|1z zhThpY3pB;o_7~DKXOARaPiU@c)b>2vXF`1GTa=pQKW^%cDg?>5jF@wvpl3JZvl|6m z7rkm}jxS%=%Vz;E;BIHxP7OvnWt5%a5Ky>Id2X+o)DFRr8w|Tc&4}}2?%J*gJ6QhN zjriFSVI093JRt0H^A(TB26f;FS8kwu|Al~1BjnU8_iFvk%M~^wq9Eod94ZB(2su;9 z7tRgG=S~MekV(W&j#z zh9^kk?q;WNrcEeKV>8i|>HVKWB#k>><8hko>&zN^pj7|0U8c@lC%9>+UTVxdb803{ z({9SYuoQ)ppka%atUOGK5~QA>(WFxaStLlx2S~91W(JF-p*bL;!YtK#s5V$f>hm-@ zGXVmWEHZ%TP2()$ha#J)nIbk;0jcx@1_l@wRg+y56ztGsDbs#VFY&DNW*oc_(7glrY>jeS?CnH zLK#`DVBsPg)d3s{B&LN}CT=vDT9+)iEK2DDsPegEL{&rSvO* z5F7vHwr~?}D7pJ+_wNLVw0@LrcH4pemtMZb=Bp^D>{VFA_h;6xl{Wl~t*~k4(Y8N; z94x|gW4P2TMXbHmsh#1QKDf1PwgdY5)O4pB6>n6<9te7F(400sKDAM821{Z|?prk5 z{)5&eTdJi9QPp%RwT!Z8F(4YGd2cg>AzAS@rn}8!tT3aLKZDetw^G;ULPfB)yM^?f zVq!j!DOr=QHjC>~RgDHUNHWOY@6rzBcG!(=TXL5@P#jX52W~UpfJ9}swo5l{FoZAC zH6Hw~n(__^#EO*mL=+v7MMq%cDPS5=TW+2m15yXJ3Y4qkXhv#KvKp)rnI^kRI5dG& zj962oNK6(S`OLUhf-<3T(2Yc%BPg;dJTZA;61ZT{5P{%CGRk5Ag$OoQfDnzLTC3+^ z&X~m_*h0=>Yyu-piUt#qnM8zSXvbtQg$l!z zqJde7(*90T5Teq|NTxYkOdAh8W0(>(&I0KqP=)%ag(;aSD7GTrV3wskdvG*$Vi2TU z9fJ`mE5&G%tV2Lb)^K{95?L?=7^k2HgF%@i)KWBtB#)bf_7FvoXbSCB1(Ga_Ev-7! zFI9`&7HLg@tu_GH0ZNs%8Hy$ZD58=XlL>23v%m%dJX16><#feVnVk}cnliw|0!4wb zsgKDZ){KsOAxnmJTsA z7+nl%qKM9nqk|Dy)F>(vg)?F{M9z~(E-5KHWj3v;@zQKIJs?;^;!$EE2wQ9*C?*EC zE^9V(4{zLio7;M3uGDlU`v6VC^!8I(n*K#!_Bggb=)`~5mua@wqgOhw}^J+c%`j+yyZQ=GsI z6GLbKd={bTVNu(ZQDPE<5*w>VO2r=pQ%*0|m=uVLs4Qeg+(7JU=S4^!xGjFu{1a?5 zDh{PUHUq@kX1UF{r)F?TCkd0bj@)Vu83H!|BTZUc+pf1iq)FIGl>CM~ud@TT+4Pbn z!`S`w4~s^|)P`>-QHsD|ZFX2xm?>K%NQ3OgfZ$96flLE&WG7~18acUE21}Y;wFuJ)Fq>0BWK*+9Q4s)vv88^0W<(qU znUQnGY}zD3fW@d`JsA$dBW?OblV;zj>}dv0H5(giY2M9e)qF54)ZV>@11j!)S!UwS zT02AHg3c-4V=`vG8!kEHm3v|ZI+QK#fIDA#`Ym8V#RFcArLn(P~v4O?N3AvKHg;B zr`O%|f6UE+FcY?*VNMVeHMyV!lVn`q>U60Ma8C@y7S?I_^PHmhsgHhbS z1T&KE%fq~&uL3IJt8lTIc6|-vIdcg6YOm=tWz$Oo!@l&wpoIr*KgQ&x+cs<3$uH5M zqH)HWJL5OXs6fhtR4we**qA*6OAZ7@oaI)>P`_U(DV+O+nh2ZC9--34k=IVJ(5 zrU>s;$f?O3akn079b(D66Sj@;^(Bdh(OUe*9b; zJe5AU}NU}{k6t%B`Q}Lzv$Cv&)ZBw8x`TxxJ`Bjaq zEzwC1^hNs#ko%+*Y5dRAW450&)?`7D8CaWW-FBS>7)fd)TUsu&NfZADODdM6vLTot zf|w0VBE-^cvnT@_i6HH_nutds5ilqut0aKLgiXwp5Yt~~1=NwLAQ~WK1c`92O$a7Z z5DNq*FcUN|OKK$rY_mb7WxEhdY7rMO$Co%LUyzEg3n;znX)QXflR3R__R?nGPOL+7WPResL?*}!uWaVccwOlh^=!kXrr{-0&+hD9-}cU&dNvFLx1tnGdCOF*R}8nDMnp zM*LDe`%7*l+s_2G)?~}}LyBH%%4r9dGB(RMx0bP}YBLrHDSu)DS7`Tzelb;sEr_47fR*|mY=AOt9f zs#Gc_7<<;M(X{%7Q`+S2qm!GSqnB z!Q%9A34nC|KIiULWbOtqdZ}!S3si&#?IH$pGfdg4Z1u=2bk{_8Qnv-^FeZPoJrcg630us`e z${+(67U8XWN-8R%9YJf8HxUh|V>5#WH5yTJG;6I3Qauvr*hTLHgUTM}w5iGxRtDzV znsdwI&7((@^C(C~J7B56ptLJjqe?1rCkrjMCk0EQDn=O9g>&m-36e2VX$A05c&|bv z5dm*f45Z~t`vf*=GNg{yv|G3YK#{Oxqc%Gbk>PA-hoI8|N6k?mhz&-{mo1PQ63fmW zfQSG`U6g8t#gLHc05=wNU$*rWE9kzQIjuD`&w~QLbe&7ikY4e#Qv2N!WkeRva_>CR=9rxpVHP6CJIiZ1Eq?24? z3(jt)r91R$ae64(#U>R*1)SF%%fSI5*^|cHN?2obHJ}_c`#kNkhvFe=Iw4^^7%r$m z4vC4)vY0BKf}_aPMI57$3cxIf#oil40UTyB8AbV^1xsNyPN9T6&`6L-$mb-6NDQLw zz-W|@);ygU!%4XouEhO$9wZ=VcJgRm5^Hk|xn63rTpqc`aAAlTXtT2%7#DWgZ%Jr8 zSSKh^u3OV|9!@JKm%7kuQh@4PT^=j77-btJnVT~~AV(6H?ZJacnWU3~w+H9RPO5Y{ zOa;WIs94n23lg%ZQe{PrpnK?1vuG8zpdzT&bsn| z5a&dmcy=I)EyKU<(;1^+hH|)0(Ja4!UQGF~%jINT5DQlb+^vM1hg(1Z%1vadnk6_p&`{08NMqzyeD2a}+Pq}v6E(>= zQAs(af=rUuIei%rg-sRrd^RtIl?IbQ=#(i37?5m8It>w_1rK%H5qCu%WIsF(0-YcL z#MwX2XV)k-(?$#jPAq`O@ZfgIn%f1pDr!V(9%20`DrB0EU`;PZp2il;$8Q>+fUfaV@WQGo0|c4O3>t@$4G?u`Kq8e3O7 z6tgbUfYpi+REQ|YD!Z2?bJXpOImeBJNCK^zam^1kjb?U&;m$d%{iGNH!R0? zDP&_QO{HZ`S&kyC_bgDG3g@phv{5`FnKO`qT5455b|Nb~WR0@3;>@goi!IabJvrSO zG|zCwV3~x=vJK>XE0ce@K8S}?i8QNzI^O@(9phJe(qdl{o{FV^1U%N-2cp#bNZZ zp`J|0$+>k~znE;36PQ%fY!XYFEs52o*3YR$JI?4_G=f=j%2MGpe&6q{tY9n2C^=G0 z&op+_RuscQFVBu%L;*!Kv8h&}*DP3qp;6RwKWQOZL3}lx(5T34l(8e|C^aTwHtXGV ztE1}TFb!r4`uok+1f=Y=owaV(atZJur7RD!EbgFMkEw4Q*0@-MJ<~qS8+WxTNS4X( zB+83D4u00%$S)SkMcw-*75qs+&ko-Hxp2zu2<}4x>ucL690r@n393lK{eB&W5T4xm zms?u!57W#?(s?9Qvs%X-!d;-_Lw#eSo%LP7& zX^p8H>eY=|#&%~$n+e$($*h;-hc-Yg5fe}ci1xz9%mvZZ>Y&7#g?-J|o-{b1ET6J! z+z*0)c4wSI_I7(IhGAT(*9o`G9yVpg2xOB*goEwWjjdF|6vmNx>Hj)bd|DH}O$Fbv z*-r~N{wh_8-Ro*iT-GS@;XMG-{B@YG~ag%g5Q?MU&pdP zad)LxhQQ&$J1gbKH~4I^-9_6UUdLygq^FdKAN0hl<>u7xefVX&ER4xV-(z!S5}kG(6u)y;!H@@sqdRa@Z3=Zt;p z1aSAF{M%gSmn+O%{ttjWaz3kP4MCzb9ID8;TX)+xeC7OzC^KXSt4LA!SkM1K(um}R z9E6E*+c>@RWtVurD44||$vI>G#VyU90wY zu^jl$?ZWe?Ret1ctLJR`$}gJ--ZExZQt|d#D}k1hyMdV&Vp#o SrLP^_=F~RW|hd}Sj;Na8?T%5#@ z7I@22%^)Ur;2_h`AXQ*J&sFQCQeEb&6}eI^3qoB~6j7!=y{cClhNwt6*TBxyM*+#X z?lrf%mYa=&AJWJMioBP|ZA91yi;`7ueJ;{ky(QOOpNqVf%h6=Gtg(MJI(O0O$;{Q* z(!*--Q9!3XqGSE`{ez$MNgSBQNiY3A_Yr0H$yen)o^(zJu;YQK)Vcg)qDV z8sHv4yc(+bHa3OmcpX&nD?$oEcq3FXGeCeL3q}F)=l}S@ULcmnXE*~?!B40L5S@lY zaS=3NK;S&cHMk7C2UTDSr z1<%~X^wgl##FWaylc_d9MUy;T978H@J(=Xl)u15Yy7n?lP^`-<7TI;qTUVIHE?6Lz z$MuFgUSMNW*~AZGeeX~6%#uhxGJEPD1r32Yj_gbJK4J7M-zLp!X3+3RE#$(+bwx*| zWD=NCRYE?!S)l#rFjs~_)1B4N*JN5L@$A|res1E#KGUbWH%6}6&@^vN;tQ=8x9(X6 oix$7Tw~KSnl&J)*JORe4o+16{}9>FVdQ&MBb@05T|A9RL6T diff --git a/openo-portal/portal-common/src/main/webapp/common/image/portlet-collapse-icon.png b/openo-portal/portal-common/src/main/webapp/common/image/portlet-collapse-icon.png deleted file mode 100644 index 5f4901f1c38d7012f6492a95f9d908c48dd9de04..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 269 zcmeAS@N?(olHy`uVBq!ia0vp^d_XL~!3HGNrubO_DajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9Me99X978H@CH?vT-=5jBp|jD)pv7d^0j3IDKPvP_H&}>uOl_zT7I>X}aS8v_;HFh~ znLa;uQ{ZDtGE|6TKC;VWR>{JoqySUti_Gc5SLPpb*u&Iex}btJM2BY;n~+6@ACsju zU&r)AK5VQk0`AUFKe(}Pnm;wM?obDxj3P%-kkFL}zBfb+_~yFs2_!I_D^^M^_~XC{ PbUK5ltDnm{r-UW|{4`uQ diff --git a/openo-portal/portal-common/src/main/webapp/common/image/portlet-config-icon-white.png b/openo-portal/portal-common/src/main/webapp/common/image/portlet-config-icon-white.png deleted file mode 100644 index 2f3a27211307ce19690d9628ea217f4545508417..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 320 zcmV-G0l)rk7RCwBy(!Z-gVHm*ia}FhC!7ZDO zB#XhHpcG{_P>ixDb-QKokJ#kTkj-fDYrl6?*FvbH&iy{OM@g@v^VVlM=lS)%J+|k0 zR*>UZ0Z-WHUkn9Auz>q6;R7usaKzGYq!c=6BKT5AC95> ze?kTgtt?}FA!-V~CrIl9&gjB^6)fbHR#@wsPvN_bQcYH%jE#Dm5NKQf1Q-CmE9SV` SUg6;Y00008}+ diff --git a/openo-portal/portal-common/src/main/webapp/common/image/portlet-config-icon.png b/openo-portal/portal-common/src/main/webapp/common/image/portlet-config-icon.png deleted file mode 100644 index f0451215541c96a4b7103ce661fe4bfc696c1bbe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 330 zcmeAS@N?(olHy`uVBq!ia0vp^JU}eK!3HFi66di4DajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MQ=P^978H@CH?vT-=0~sp|jEDz^1adQ87g}4r`c?ym6@E z>8NiuePHOr(vjR4!O>yQ{L!+;Pl)}Ii$Wh`l4Xi`;$}yI4()|q<&1@r0{7>mM&99tQc))x_D&TB&V+EfXubhJnP}-!$;fvymm){$Hh*fQB7T95(sk=-j~E(cM_VCh*uNL4kLA!w(~Y_w0|B{s2nOX`fZas%cTkzopr0IV)|>i_@% diff --git a/openo-portal/portal-common/src/main/webapp/common/image/portlet-expand-icon-white.png b/openo-portal/portal-common/src/main/webapp/common/image/portlet-expand-icon-white.png deleted file mode 100644 index f2ecf78ab7450039c8f05f57acb094204abe1666..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 239 zcmeAS@N?(olHy`uVBq!ia0vp^d_XL~!3HGNrubO_DajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MH4+;978H@J(=Xl)u15Yy7e+kV4TYD~N#yfdI#R;K2@&Bh6A+7c(c-WtB( z<$mGlSCwTY`b9a?py|`1=~v#AzPXUI<2*}9O3l%Gj_Wxd=N@R#D%3eRZ((?K;xoCU m&Kdz1tWV4TxfDSr z1<%~X^wgl##FWaylc_d9MTZ<3l#+74+)n}Uy$XHC2rK$u!Tz?fuV7c)=%m9*hrvj89ZJ6T-G@yGywop C7+FvN diff --git a/openo-portal/portal-common/src/main/webapp/common/image/portlet-reload-icon-white.png b/openo-portal/portal-common/src/main/webapp/common/image/portlet-reload-icon-white.png deleted file mode 100644 index a14730b8b13ee598b89a0890f73485c5e45ecf6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 324 zcmV-K0lWT*P)0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUy=1D|BRCwCF(mx9UaU93--yIefgH39!O%*Gbe-K~}XTW*FiC3$f>$3g{z+9x~EX&D|?wf}EkJBu1#Y{rRZl>^xS- z)+g;S_Gux4HsZR^*y>^SrSBFtSmTDg74(;fgM?O?qKMF!XRCV73td#0OT#Dh>fH_P zRg5Bm!G}N%X&tiH&s7^+EKt%U7)?e+fsUra3mv^vHs+)=YknA`?la&n>u*zj7hnJ{ WI9NhaXm_9h0000 diff --git a/openo-portal/portal-common/src/main/webapp/common/image/portlet-reload-icon.png b/openo-portal/portal-common/src/main/webapp/common/image/portlet-reload-icon.png deleted file mode 100644 index bdb0f08e28e8c623471d3f7e272c1f13f1138788..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 345 zcmV-f0jB0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUy`$lVXQ7&mp@t{|aSsqz zfM^z|4ImBkfu?OlbIA@62C4zMU^5U40P$5OsFUtv(ExKcE0C&zY5)OkCaCp0@%Xy{ zh;IV%4Iusv#O91-1v$`q7E(1au359@1~k-~f%qiQZ+~(4%>zi~1LZwIe)0>rDZ*y0b3tF^Ec@f9j}8;JJ-u{BT;w#e-Sr3#p)7eH(R r#IK-nmX9SF^}#fN1A=a;93a2|-uPG|G^l7-00000NkvXXu0mjf1!jiB diff --git a/openo-portal/portal-common/src/main/webapp/common/image/portlet-remove-icon-white.png b/openo-portal/portal-common/src/main/webapp/common/image/portlet-remove-icon-white.png deleted file mode 100644 index ddc6d2c17d90ac8dbed6b84d68cff957fd5e8cd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 260 zcmeAS@N?(olHy`uVBq!ia0vp^+(0bA!3HD`>}{8U}fi7AzZCsS>Jik5l0IEGZ*O8WEvzdiHDhR#M7hfR-C6y~uU$+5Vy!SU&2 z$%Z^2r@mo_+><(;9dcUsoJStEaWy#T&N>ve!op*o^lTT=DeI`1sDJ*f>xvCgG&+s0000< KMNUMnLSTa6_ diff --git a/openo-portal/portal-common/src/main/webapp/common/image/remove-icon-small.png b/openo-portal/portal-common/src/main/webapp/common/image/remove-icon-small.png deleted file mode 100644 index 382bb24182eb101e306034de7db2455d91285cd6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 193 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/NS.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/NS.svg deleted file mode 100644 index 83c648bb..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/NS.svg +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/VDU.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/VDU.svg deleted file mode 100644 index c4de7eda..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/VDU.svg +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/VIM.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/VIM.svg deleted file mode 100644 index 32cda6f0..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/VIM.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/VNF.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/VNF.svg deleted file mode 100644 index 0651d649..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/VNF.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/VNFC.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/VNFC.svg deleted file mode 100644 index e20a53b6..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/VNFC.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/VNFM.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/VNFM.svg deleted file mode 100644 index 3c8d9788..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/VNFM.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/breakLink.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/breakLink.svg deleted file mode 100644 index 121bab33..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/breakLink.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/common_dc.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/common_dc.svg deleted file mode 100644 index e1e6041c..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/common_dc.svg +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/common_ncd.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/common_ncd.svg deleted file mode 100644 index 306d25ae..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/common_ncd.svg +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/common_sc.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/common_sc.svg deleted file mode 100644 index d44eca4f..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/common_sc.svg +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/host.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/host.svg deleted file mode 100644 index 67ddc915..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/host.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-Virtual network.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-Virtual network.svg deleted file mode 100644 index 769f80ba..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-Virtual network.svg +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-app-bind.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-app-bind.svg deleted file mode 100644 index 188e15c7..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-app-bind.svg +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-app-dns.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-app-dns.svg deleted file mode 100644 index 5983dcdd..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-app-dns.svg +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-app-ems.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-app-ems.svg deleted file mode 100644 index 2ffaf40c..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-app-ems.svg +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-app-mediator.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-app-mediator.svg deleted file mode 100644 index cf48e03b..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-app-mediator.svg +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - ME - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-app-netnumen.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-app-netnumen.svg deleted file mode 100644 index 34aeb5d8..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-app-netnumen.svg +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-app-ntp.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-app-ntp.svg deleted file mode 100644 index 379ce5a3..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-app-ntp.svg +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-app-ota.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-app-ota.svg deleted file mode 100644 index a2b18fc4..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-app-ota.svg +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-app-tomcat.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-app-tomcat.svg deleted file mode 100644 index ca672889..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-app-tomcat.svg +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - image/svg+xml - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-app-trend.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-app-trend.svg deleted file mode 100644 index e939b4a5..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-app-trend.svg +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-app-tsm.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-app-tsm.svg deleted file mode 100644 index 5a910ee6..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-app-tsm.svg +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-app-weblogic.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-app-weblogic.svg deleted file mode 100644 index 4bc81632..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-app-weblogic.svg +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-app.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-app.svg deleted file mode 100644 index b399b36f..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-app.svg +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-cluster-hacmp.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-cluster-hacmp.svg deleted file mode 100644 index 68a5ad63..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-cluster-hacmp.svg +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - - image/svg+xml - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-cluster-nec.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-cluster-nec.svg deleted file mode 100644 index 4236655e..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-cluster-nec.svg +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - - - - - - image/svg+xml - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-cluster-ns.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-cluster-ns.svg deleted file mode 100644 index f6d602b4..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-cluster-ns.svg +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-cluster-sg.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-cluster-sg.svg deleted file mode 100644 index 54400322..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-cluster-sg.svg +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-cluster-vcs.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-cluster-vcs.svg deleted file mode 100644 index dfec65ee..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-cluster-vcs.svg +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-cluster.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-cluster.svg deleted file mode 100644 index 29e8c256..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-cluster.svg +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-database-mssql.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-database-mssql.svg deleted file mode 100644 index aa9da92e..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-database-mssql.svg +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-database-oracle.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-database-oracle.svg deleted file mode 100644 index a41f39dc..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-database-oracle.svg +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-database-sybase.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-database-sybase.svg deleted file mode 100644 index 2fd9aacc..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-database-sybase.svg +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-database-sybaseiq.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-database-sybaseiq.svg deleted file mode 100644 index e9712b38..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-database-sybaseiq.svg +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-database.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-database.svg deleted file mode 100644 index 7329d5e0..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-database.svg +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-dellmd.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-dellmd.svg deleted file mode 100644 index 0db5029d..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-dellmd.svg +++ /dev/null @@ -1,199 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-emc.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-emc.svg deleted file mode 100644 index c57296df..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-emc.svg +++ /dev/null @@ -1,198 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-eternus.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-eternus.svg deleted file mode 100644 index 505fc65c..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-eternus.svg +++ /dev/null @@ -1,195 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-fujitsu.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-fujitsu.svg deleted file mode 100644 index 56a23abe..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-fujitsu.svg +++ /dev/null @@ -1,215 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-hds.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-hds.svg deleted file mode 100644 index 60c2e56a..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-hds.svg +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-hpaio.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-hpaio.svg deleted file mode 100644 index aa2c67b8..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-hpaio.svg +++ /dev/null @@ -1,203 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-hpeva.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-hpeva.svg deleted file mode 100644 index b9e6ae6e..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-hpeva.svg +++ /dev/null @@ -1,207 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-hpmsa.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-hpmsa.svg deleted file mode 100644 index 8b3a7bd9..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-hpmsa.svg +++ /dev/null @@ -1,203 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-ibm.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-ibm.svg deleted file mode 100644 index 12f6627c..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-ibm.svg +++ /dev/null @@ -1,203 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-ibmsm.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-ibmsm.svg deleted file mode 100644 index e8ff32b7..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-ibmsm.svg +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-macrosan.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-macrosan.svg deleted file mode 100644 index 3dbf3b02..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-macrosan.svg +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-netapp.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-netapp.svg deleted file mode 100644 index bfe8c830..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-netapp.svg +++ /dev/null @@ -1,146 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-sun.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-sun.svg deleted file mode 100644 index 71b49c78..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-sun.svg +++ /dev/null @@ -1,146 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-zte.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-zte.svg deleted file mode 100644 index fe382335..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-diskraid-zte.svg +++ /dev/null @@ -1,146 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-checkpoint.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-checkpoint.svg deleted file mode 100644 index fe5000e0..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-checkpoint.svg +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-cisco.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-cisco.svg deleted file mode 100644 index 601e923b..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-cisco.svg +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-cisco2.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-cisco2.svg deleted file mode 100644 index de7c0afd..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-cisco2.svg +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-h3c.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-h3c.svg deleted file mode 100644 index 5887e351..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-h3c.svg +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-juniper.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-juniper.svg deleted file mode 100644 index c223be01..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-juniper.svg +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-neteye.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-neteye.svg deleted file mode 100644 index 84186ec5..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-neteye.svg +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-zte.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-zte.svg deleted file mode 100644 index 4e11ceb7..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-zte.svg +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-ztemf.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-ztemf.svg deleted file mode 100644 index 6559b484..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-ztemf.svg +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-zteutm.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-zteutm.svg deleted file mode 100644 index 24f5288e..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-firewall-zteutm.svg +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-firewall.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-firewall.svg deleted file mode 100644 index daac742b..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-firewall.svg +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-gather.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-gather.svg deleted file mode 100644 index cbff7f40..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-gather.svg +++ /dev/null @@ -1,295 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-group-dev.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-group-dev.svg deleted file mode 100644 index 67a5784f..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-group-dev.svg +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-ibp-ibp2000.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-ibp-ibp2000.svg deleted file mode 100644 index 71f0dfeb..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-ibp-ibp2000.svg +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 2000 - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-ibp.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-ibp.svg deleted file mode 100644 index ce6cd3bc..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-ibp.svg +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-net.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-net.svg deleted file mode 100644 index 28c2e906..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-net.svg +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-alteon.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-alteon.svg deleted file mode 100644 index 14c35424..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-alteon.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-appdirector.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-appdirector.svg deleted file mode 100644 index e634b00d..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-appdirector.svg +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-atca-lb10.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-atca-lb10.svg deleted file mode 100644 index 61027b02..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-atca-lb10.svg +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-cisco-ucs.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-cisco-ucs.svg deleted file mode 100644 index c2659b8a..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-cisco-ucs.svg +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-dcs.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-dcs.svg deleted file mode 100644 index 1b855b01..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-dcs.svg +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-delta.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-delta.svg deleted file mode 100644 index 4be4ec00..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-delta.svg +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-dp.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-dp.svg deleted file mode 100644 index d95470c5..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-dp.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-f5bigip.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-f5bigip.svg deleted file mode 100644 index 70c371d1..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-f5bigip.svg +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-f5bigip2.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-f5bigip2.svg deleted file mode 100644 index 5713d8e7..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-f5bigip2.svg +++ /dev/null @@ -1,161 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-gbe2c.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-gbe2c.svg deleted file mode 100644 index 03dd3c58..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-gbe2c.svg +++ /dev/null @@ -1,166 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-hpblc.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-hpblc.svg deleted file mode 100644 index 66ff6674..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-hpblc.svg +++ /dev/null @@ -1,174 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-ibm-blade.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-ibm-blade.svg deleted file mode 100644 index 60d28fd2..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-ibm-blade.svg +++ /dev/null @@ -1,156 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-imm.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-imm.svg deleted file mode 100644 index 7b26f5b1..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-imm.svg +++ /dev/null @@ -1,160 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-secfox.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-secfox.svg deleted file mode 100644 index b0cbd540..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-secfox.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-secsis.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-secsis.svg deleted file mode 100644 index 00756e97..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-secsis.svg +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-segw.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-segw.svg deleted file mode 100644 index 0bc8c10e..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-segw.svg +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-vc.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-vc.svg deleted file mode 100644 index 7a42c2b5..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-vc.svg +++ /dev/null @@ -1,173 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-zteatca.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-zteatca.svg deleted file mode 100644 index b22a6976..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-zteatca.svg +++ /dev/null @@ -1,191 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-zteips.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-zteips.svg deleted file mode 100644 index 511411c5..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-zteips.svg +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-ztepower.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-ztepower.svg deleted file mode 100644 index 4c168e48..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-ztepower.svg +++ /dev/null @@ -1,223 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-ztesgs.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-ztesgs.svg deleted file mode 100644 index 9e0add21..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-ztesgs.svg +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-zxsdr-nt.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-zxsdr-nt.svg deleted file mode 100644 index 96ffa125..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other-zxsdr-nt.svg +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other.svg deleted file mode 100644 index ccdf1532..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-other.svg +++ /dev/null @@ -1,110 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-router-cisco.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-router-cisco.svg deleted file mode 100644 index 7b3ea331..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-router-cisco.svg +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-router-juniper.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-router-juniper.svg deleted file mode 100644 index 3094bafa..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-router-juniper.svg +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-router-zte.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-router-zte.svg deleted file mode 100644 index 8c23c762..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-router-zte.svg +++ /dev/null @@ -1,178 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-router.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-router.svg deleted file mode 100644 index 4a604382..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-router.svg +++ /dev/null @@ -1,175 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-sdn-controller.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-sdn-controller.svg deleted file mode 100644 index eeaf68ec..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-sdn-controller.svg +++ /dev/null @@ -1,176 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-sdn-host.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-sdn-host.svg deleted file mode 100644 index 5577c282..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-sdn-host.svg +++ /dev/null @@ -1,167 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-sdn-switch.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-sdn-switch.svg deleted file mode 100644 index da541ba3..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-sdn-switch.svg +++ /dev/null @@ -1,167 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-sdn-vnet.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-sdn-vnet.svg deleted file mode 100644 index ba73c4b6..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-sdn-vnet.svg +++ /dev/null @@ -1,167 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-server-aix.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-server-aix.svg deleted file mode 100644 index facb8b3d..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-server-aix.svg +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-server-hpux.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-server-hpux.svg deleted file mode 100644 index 5c669aaf..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-server-hpux.svg +++ /dev/null @@ -1,181 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-server-klinux.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-server-klinux.svg deleted file mode 100644 index 4e8098fe..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-server-klinux.svg +++ /dev/null @@ -1,191 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-server-redhat.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-server-redhat.svg deleted file mode 100644 index ed3eb1b4..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-server-redhat.svg +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-server-solaris.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-server-solaris.svg deleted file mode 100644 index ba66a1fa..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-server-solaris.svg +++ /dev/null @@ -1,173 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-server-suse.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-server-suse.svg deleted file mode 100644 index c8fcd18a..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-server-suse.svg +++ /dev/null @@ -1,185 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-server-windows.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-server-windows.svg deleted file mode 100644 index 967d48e2..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-server-windows.svg +++ /dev/null @@ -1,176 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-server-zxve.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-server-zxve.svg deleted file mode 100644 index be1011b3..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-server-zxve.svg +++ /dev/null @@ -1,179 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-server.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-server.svg deleted file mode 100644 index 314edb3b..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-server.svg +++ /dev/null @@ -1,195 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-storage-cisco-mds.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-storage-cisco-mds.svg deleted file mode 100644 index b7fee602..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-storage-cisco-mds.svg +++ /dev/null @@ -1,177 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-storage-md3000.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-storage-md3000.svg deleted file mode 100644 index 8b345f61..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-storage-md3000.svg +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-storage-netvault.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-storage-netvault.svg deleted file mode 100644 index 1c99075d..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-storage-netvault.svg +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-storage-ops.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-storage-ops.svg deleted file mode 100644 index 07f9642b..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-storage-ops.svg +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-storage-sanswitch-brocade.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-storage-sanswitch-brocade.svg deleted file mode 100644 index e3bb47d0..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-storage-sanswitch-brocade.svg +++ /dev/null @@ -1,187 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-storage-sanswitch-hp.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-storage-sanswitch-hp.svg deleted file mode 100644 index 8833e25d..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-storage-sanswitch-hp.svg +++ /dev/null @@ -1,187 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-storage-sanswitch-zte.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-storage-sanswitch-zte.svg deleted file mode 100644 index b5765c61..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-storage-sanswitch-zte.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-storage.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-storage.svg deleted file mode 100644 index 05cd4779..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-storage.svg +++ /dev/null @@ -1,183 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-switch-at.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-switch-at.svg deleted file mode 100644 index 6df9f224..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-switch-at.svg +++ /dev/null @@ -1,201 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-switch-cisco.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-switch-cisco.svg deleted file mode 100644 index aacd00cb..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-switch-cisco.svg +++ /dev/null @@ -1,176 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-switch-h3c.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-switch-h3c.svg deleted file mode 100644 index c0eb9459..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-switch-h3c.svg +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-switch-juniper.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-switch-juniper.svg deleted file mode 100644 index 87b950cd..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-switch-juniper.svg +++ /dev/null @@ -1,176 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-switch-zte.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-switch-zte.svg deleted file mode 100644 index e64ea626..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-switch-zte.svg +++ /dev/null @@ -1,177 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-switch.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-switch.svg deleted file mode 100644 index d24b524a..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-switch.svg +++ /dev/null @@ -1,182 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-tapelib-hpmsl.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-tapelib-hpmsl.svg deleted file mode 100644 index ef15e7d2..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-tapelib-hpmsl.svg +++ /dev/null @@ -1,176 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-tapelib-ibmts.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-tapelib-ibmts.svg deleted file mode 100644 index c771f701..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-tapelib-ibmts.svg +++ /dev/null @@ -1,183 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-tapelib-sunts.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-tapelib-sunts.svg deleted file mode 100644 index 7478e4a8..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it-tapelib-sunts.svg +++ /dev/null @@ -1,196 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it.svg deleted file mode 100644 index a1fa9f74..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/it.svg +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/networkTree.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/networkTree.svg deleted file mode 100644 index 44739fec..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/networkTree.svg +++ /dev/null @@ -1,349 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/new.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/new.svg deleted file mode 100644 index b02def09..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/new.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/popupmenufollower.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/popupmenufollower.svg deleted file mode 100644 index b285c884..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/popupmenufollower.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/resourceType.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/resourceType.svg deleted file mode 100644 index 4caf88a0..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/resourceType.svg +++ /dev/null @@ -1,211 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/stop.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/stop.svg deleted file mode 100644 index 4938127a..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/stop.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/tree-icon.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/tree-icon.svg deleted file mode 100644 index a6fcc03f..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/tree-icon.svg +++ /dev/null @@ -1,291 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/uep-moc-root.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/uep-moc-root.svg deleted file mode 100644 index 23a7a739..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/uep-moc-root.svg +++ /dev/null @@ -1,355 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/uep-moc-uca-public.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/uep-moc-uca-public.svg deleted file mode 100644 index ad51e7f8..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/uep-moc-uca-public.svg +++ /dev/null @@ -1,329 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/uep-topo-commongroup20x20.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/uep-topo-commongroup20x20.svg deleted file mode 100644 index 2b3b2f4a..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/uep-topo-commongroup20x20.svg +++ /dev/null @@ -1,278 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/uep-topo-group20x20.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/uep-topo-group20x20.svg deleted file mode 100644 index 5242752a..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/uep-topo-group20x20.svg +++ /dev/null @@ -1,277 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/uep-topo-root.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/uep-topo-root.svg deleted file mode 100644 index 899d4e11..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/uep-topo-root.svg +++ /dev/null @@ -1,259 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/uep-topo-undefinedgroup20x20.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/uep-topo-undefinedgroup20x20.svg deleted file mode 100644 index 4c0b3644..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/uep-topo-undefinedgroup20x20.svg +++ /dev/null @@ -1,342 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/uep-topo-virtual20x20.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/uep-topo-virtual20x20.svg deleted file mode 100644 index 3b25a6b8..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/uep-topo-virtual20x20.svg +++ /dev/null @@ -1,355 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/uep-topo-wsf-disconnected8x8.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/uep-topo-wsf-disconnected8x8.svg deleted file mode 100644 index 9c93fefd..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/uep-topo-wsf-disconnected8x8.svg +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/usf-amf-try-activate.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/usf-amf-try-activate.svg deleted file mode 100644 index 0feced33..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/usf-amf-try-activate.svg +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/usf-amf-try-active-wait.svg b/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/usf-amf-try-active-wait.svg deleted file mode 100644 index 28a38f6b..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/image/ressvgs/usf-amf-try-active-wait.svg +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - diff --git a/openo-portal/portal-common/src/main/webapp/common/image/search-icon-blue.png b/openo-portal/portal-common/src/main/webapp/common/image/search-icon-blue.png deleted file mode 100644 index 345c3db083d0240ba15c698ddd70d31389e6a013..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 318 zcmeAS@N?(olHy`uVBq!ia0vp@Ak4uAB#T}@sR2@wC9V-A!TD(=<%vb942~)JNvR5+ zxryniL8*x;m4zo$ZGeg%c)B=-RNPAX^Z&m+Ge^YvT{+B4ni_6!c9=H)uo8IB{HWCZ za!J2|0;AfBHVK8Rd`J2lE#x{X7n*e3=bPHj?6!L5^qd7!L5*tn5*(Nvc%>Y&%ml&@ z<)k!OWy+fIDlmw~vxl;m&lA4#_QwIc6;?acW-R~M_&T7pz*mFGf}!i6&x^3f3>t9> zO_f4YUOW~~`W&nHgq|!o(R$3;DkMpM(qu=o7N(EB2^wmPT=W7GI5p%NBE&kxnLeg# z@IJcEv{CZH0~3+i9E=OtbQMY^I%FHfV${5ZLzGV}Q&KQvVu)(60=h Lu6{1-oD!MSQ755&As8pLmh%A)|rj$|tvsHRk)$v4my z05xdop__=20Dyu^K=A~` zvOv5Lh(AMV5Wg0P&47ldVc19r05xd=sl!0*0JP*X+(tqGsQ4PxMXP~^@DQyLs(BWW zIt#?pKztSk(f}v`&j4+WWgY&%ml&@ z<)k!OWy+fIDlmw~vxl;m&lA4#_QwIc6;?acW-R~M_&T7pz*mFGf}!i6&x^3f3>t9> zO_f4YUOW~~`W&nHgq|!o(R$3;DkMpM(qu=o7N(EB2^wmPT=W7GI5p%NBE&kxnLeg# z@IJcEv{CZH0~3+i9E=OtbQMY^I%FHfV${5ZLzGV}Q&KQvRS2_si8!TX4z{aa!D&3)- zXlCR%cMIQaHi3q&_06lAtI!J2n1LGY}CDR1(+Nz#_u$pu>HHyYYwd z6t<7qjW>8Q3Z%MxTNnbG#U@zs9N}}|))QXJxk@l4SWsX#1B(R1gT4L@0x7+cK)*70 My85}Sb4q9e0H70U7ytkO diff --git a/openo-portal/portal-common/src/main/webapp/common/image/search-icon-white.png b/openo-portal/portal-common/src/main/webapp/common/image/search-icon-white.png deleted file mode 100644 index c7532f4529597172821f273dc3a550fbb6f89ca0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 317 zcmV-D0mA-?P)p21*uqCJp z(jzp%kq`vnaR_t|fg(Zo2sK5v3Q^D;fdiB`;q9i|u!Wa=ne5NonVkumrct7*sv?90 z#9$0+kb^7?!>ejZ)38KH!4s^&fKk>d&#i*8EF&5=c=4_}f?m!)q;jNSDmtdG66kv`7x4%p@N~S%Sz6BTnr-D*MV`wrc P00000NkvXXu0mjfz diff --git a/openo-portal/portal-common/src/main/webapp/common/image/search-icon.png b/openo-portal/portal-common/src/main/webapp/common/image/search-icon.png deleted file mode 100644 index bae1d7303464744b66480453a1b32410054787b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1132 zcmeAS@N?(olHy`uVBq!ia0vp@Ak4uAB#T}@sR2@wC9V-A!TD(=<%vb942~)JNvR5+ zxryniL8*x;m4zo$Z5SAsl`=yjN+NuHtdjF{^%6m9^eS=-fVvqNZ0suv5|gu2OB9k) z(=+pImEP~(ucVNfVyhHx>TBRz;GCL~=}}db8eHWUl3bOYY?-2DZ>L~WVFffGH?<^D zp&~aYuh^=>Rtapb6_5=Q)>l#hD=EpgRf0Gw!Z$#{Ilm}X!Bo#!H`&0@P{GVh&(Orw z%*;?n!N|bSNZ$a6%ybP+tW3?UjLa3FKnZADQA(Oskc%7CE+EfVDWjyMz)D}gyu4hm z+*mKaC|%#s($W%ShLMpjP=#)BWnM{Qg>GK4GRy>*)Z*l#%z~24{5%DaiHS-1r6smX zK$k+ikXryZHm?{OOuzusuShJ=H`Fr#c?qV_*B8Ii++4Wo;*y|LgnO|XTpUtakg6Y) zTAW{6lnjixG-Z%g1y;^Qsfi`|MIrh5Ij~R+$jC3rFV4s>P;d@5Q_u*{%uC5HFV+OB z_w}{%%quQQ%u7!7bg@+enxL1NnPTPa=H%vN;ACKCZs}rZ=xXHT>Sko&yn>bnwy$e0@Is<&})cOFDNPG765H_NiE7OOHFYr%Fk5*d)X=zr&}CdaheC! zn}X9Vj&3;h>H{644~kf%h=vIPQxAv@}APq36;vdWQiV9?sfw~Ftbjrxk) z9~)}}N(+1q{2w!4U-;_5tN@k*29f5O7uFtQ4A^sk<+F;(6p4bCIDrsZl@pE=xqI77 zRvfWYQE$%SV0|?EK!A@+XUu{FLIE}m8+8QqSstAakUFxSHOY9v!AuP^K_&;@D2G=D r0@e(=JA9_7t#F&*>*|ohB#^+cRXZS5;Opi8p#1OY>gTe~DWM4fL=bai diff --git a/openo-portal/portal-common/src/main/webapp/common/image/select-caret.png b/openo-portal/portal-common/src/main/webapp/common/image/select-caret.png deleted file mode 100644 index c24827e3258fd9dd5b16caf1061a387ee3512296..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1027 zcmaJ=&ui0A91knP7!Jf;bixeT#i31_w9RN(Hrl4!3TBM9u;Qs{^18+?d0Fyivif79 zCqco>U>CuYIM9M3+hK<>a0C4V22Mdwiiqy$VWah>Yda6tkmSAh<@5P`f4&FPQxm;C z{XGOh^rk1J3|`OTZ=kyi|EuPQn|L{oQhAhxCFCkLAmSP<0y1qVvmgT$ZE4{h7$JxN zrRVY}FJBc@XwZs}p*_RGY=RgW^DIT31BfhwS=|(=gUv09)HRWsiOM0_N`kUJS+PO3 zGL=&+b81YZ#zx5zPrw2OKnm#@^QI$sBGu3p@ZL8w6xo2FIgvUJDlboyNoWHyN{54L zh-FEhr`br9=h-VH7h*XkgkL_$MuaFYaKmKtp|CewD+w8Cyy**{M5>ICB`}QZy0jan zp*_p6u~^L4;J6@01f3-lDPGWY23raea8z5jkPc1KS5%5{5s4Iz^f(2>YRj5VvrM>P zjHg%(ONacFT0mL;Kh!YVXa{A$Nxc6Qc5+J=U^2jgi?)gzR~qzPSwhkV3W9bH!ueJe zr^^sQrwlDJndQk#GrFlk*BNTyWm!m@4pK}Nq$QEU3bd|k!f+%JNyfS4FqgnpPjRuR z#K!PB#)hMOSmIh-395?*Fj0%Eop7a&Tz?b{3wxG;t=|CJxD5@mk+Pt7jwRkvugTRq z$CBvCWpFTz-`Kwz-7?|n@we@<#fSFb0~1fXjmP?NO?!*4gqxP)Id8vsRIiT(zTaKQ zeSE&Y{o?2QmCHZ&ULO8FxcIuKRQkHQdM=ep-CBP#db@({7TwpEEfk(stF$ul>+@Fq z%l7><>l+&zYimQV?gXxNzuDW}-QC$awfU{42A1nJak+N1{HYLGd3gQ8{65ijnwWX? T>@YFVFZkCootl!WiNd`<6uDKE diff --git a/openo-portal/portal-common/src/main/webapp/common/image/sidebar-menu-arrow-right.png b/openo-portal/portal-common/src/main/webapp/common/image/sidebar-menu-arrow-right.png deleted file mode 100644 index c5a8914cf67bd3e37e0824445b68790038b81625..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 247 zcmeAS@N?(olHy`uVBq!ia0vp^96&6|!3HFGTJyJpI3=zTCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XW_r3fhE&{2`t$$)egS6Y!`5su3@Z}s1dJaXQea|X;?%6* z+r%}WNg%@4gOQ^}An1cwhw2AShQ`tskp>4QMOOKS2q~cS4c4FoKjhc&sC%d{d0?c- z%J<`r0pon-dc)1#k&j%4t3^>bP0l+XkKWUf;6 diff --git a/openo-portal/portal-common/src/main/webapp/common/image/sidebar-menu-arrow-rtl.png b/openo-portal/portal-common/src/main/webapp/common/image/sidebar-menu-arrow-rtl.png deleted file mode 100644 index c5a8914cf67bd3e37e0824445b68790038b81625..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 247 zcmeAS@N?(olHy`uVBq!ia0vp^96&6|!3HFGTJyJpI3=zTCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XW_r3fhE&{2`t$$)egS6Y!`5su3@Z}s1dJaXQea|X;?%6* z+r%}WNg%@4gOQ^}An1cwhw2AShQ`tskp>4QMOOKS2q~cS4c4FoKjhc&sC%d{d0?c- z%J<`r0pon-dc)1#k&j%4t3^>bP0l+XkKWUf;6 diff --git a/openo-portal/portal-common/src/main/webapp/common/image/sidebar-menu-arrow.png b/openo-portal/portal-common/src/main/webapp/common/image/sidebar-menu-arrow.png deleted file mode 100644 index a02299abff2f26b47415ede9706d20f91365c13b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3007 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 Ib4q9e0Qy-p{r~^~ diff --git a/openo-portal/portal-common/src/main/webapp/common/image/sidebar-search-close-purple.png b/openo-portal/portal-common/src/main/webapp/common/image/sidebar-search-close-purple.png deleted file mode 100644 index 72d593bf931018311fe32251f3104fc9ecdeb43d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 163 zcmeAS@N?(olHy`uVBq!ia0vp^+#t-s1|(OmDOUqhk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XTs>VJLn>}1Sp?R8KL7v!e@TwS304-(6PyHkbw0?qJMFOW zVJLn>}1S=9acG5`Pn|HcA`6iN%&6k8RfA|KfEwH6f4 z5xVi?hR?4)pU0s+=RKdy<}nuZFn&~Od~u;;iN$20W(Gz!hNi&$mxrC+-2ocN;OXk; Jvd$@?2>_jhIA{O> diff --git a/openo-portal/portal-common/src/main/webapp/common/image/sidebar-toggler-grey.jpg b/openo-portal/portal-common/src/main/webapp/common/image/sidebar-toggler-grey.jpg deleted file mode 100644 index 83855dd5534572b776e8d057a25416245c6d7ca1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14801 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 Fe*qJ%6a@eP diff --git a/openo-portal/portal-common/src/main/webapp/common/image/sidebar-toggler-light.jpg b/openo-portal/portal-common/src/main/webapp/common/image/sidebar-toggler-light.jpg deleted file mode 100644 index d2c3d97e3ad3829dbd34dea0e0754513848c0473..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 538 zcmex=C5UDGKfoZ!!63^Z%giXqz$D1XEXer(2tz8+ z+02ZLKxe`MD;qlpC#n!gPJn@dg@u)o6RwV#MTC`sNtlgMP)Jl<$w)EfJHoR@gvnJ`HOwQ_1 zcOxsUMy*9RyH$3C@^5b_5!bAn_*?TyyzPOob-#aCZI6kz+mjQqa|0KxHtng9R* diff --git a/openo-portal/portal-common/src/main/webapp/common/image/syncfusion-icons-white.png b/openo-portal/portal-common/src/main/webapp/common/image/syncfusion-icons-white.png deleted file mode 100644 index 625dcc098c4811f81277ada857d887029eb355bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5550 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 diff --git a/openo-portal/portal-common/src/main/webapp/common/image/user.png b/openo-portal/portal-common/src/main/webapp/common/image/user.png deleted file mode 100644 index f9d5ac4bf2979a871b6d8fcd3858b12d6a022a07..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3100 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 _.length(this._area)) { m--; i--; }// in case of removeItem - } - return and || this; - }, - keys: function() { - return this.each(function(k, list){ list.push(k); }, []); - }, - get: function(key, alt) { - var s = _.get(this._area, this._in(key)); - return s !== null ? _.parse(s) : alt || s;// support alt for easy default mgmt - }, - getAll: function() { - return this.each(function(k, all){ all[k] = this.get(k); }, {}); - }, - set: function(key, data, overwrite) { - var d = this.get(key); - if (d != null && overwrite === false) { - return data; - } - return _.set(this._area, this._in(key), _.stringify(data), overwrite) || d; - }, - setAll: function(data, overwrite) { - var changed, val; - for (var key in data) { - val = data[key]; - if (this.set(key, val, overwrite) !== val) { - changed = true; - } - } - return changed; - }, - remove: function(key) { - var d = this.get(key); - _.remove(this._area, this._in(key)); - return d; - }, - clear: function() { - if (!this._ns) { - _.clear(this._area); - } else { - this.each(function(k){ _.remove(this._area, this._in(k)); }, 1); - } - return this; - }, - clearAll: function() { - var area = this._area; - for (var id in _.areas) { - if (_.areas.hasOwnProperty(id)) { - this._area = _.areas[id]; - this.clear(); - } - } - this._area = area; - return this; - }, - - // internal use functions - _in: function(k) { - if (typeof k !== "string"){ k = _.stringify(k); } - return this._ns ? this._ns + k : k; - }, - _out: function(k) { - return this._ns ? - k && k.indexOf(this._ns) === 0 ? - k.substring(this._ns.length) : - undefined : // so each() knows to skip it - k; - } - },// end _.storeAPI - storageAPI: { - length: 0, - has: function(k){ return this.items.hasOwnProperty(k); }, - key: function(i) { - var c = 0; - for (var k in this.items){ - if (this.has(k) && i === c++) { - return k; - } - } - }, - setItem: function(k, v) { - if (!this.has(k)) { - this.length++; - } - this.items[k] = v; - }, - removeItem: function(k) { - if (this.has(k)) { - delete this.items[k]; - this.length--; - } - }, - getItem: function(k){ return this.has(k) ? this.items[k] : null; }, - clear: function(){ for (var k in this.list){ this.removeItem(k); } }, - toString: function(){ return this.length+' items in '+this.name+'Storage'; } - }// end _.storageAPI - }; - - // setup the primary store fn - if (window.store){ _.conflict = window.store; } - var store = - // safely set this up (throws error in IE10/32bit mode for local files) - _.Store("local", (function(){try{ return localStorage; }catch(e){}})()); - store.local = store;// for completeness - store._ = _;// for extenders and debuggers... - // safely setup store.session (throws exception in FF for file:/// urls) - store.area("session", (function(){try{ return sessionStorage; }catch(e){}})()); - - //Expose store to the global object - window.store = store; - - if (typeof define === 'function' && define.amd !== undefined) { - define(function () { - return store; - }); - } else if (typeof module !== 'undefined' && module.exports) { - module.exports = store; - } - -})(this, null); - -// XHook - v1.3.3 - https://github.com/jpillora/xhook -// Jaime Pillora - MIT Copyright 2015 -(function(window,undefined) { -var AFTER, BEFORE, COMMON_EVENTS, EventEmitter, FIRE, FormData, NativeFormData, NativeXMLHttp, OFF, ON, READY_STATE, UPLOAD_EVENTS, XHookFormData, XHookHttpRequest, XMLHTTP, convertHeaders, depricatedProp, document, fakeEvent, mergeObjects, msie, proxyEvents, slice, xhook, _base, - __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }; - -document = window.document; - -BEFORE = 'before'; - -AFTER = 'after'; - -READY_STATE = 'readyState'; - -ON = 'addEventListener'; - -OFF = 'removeEventListener'; - -FIRE = 'dispatchEvent'; - -XMLHTTP = 'XMLHttpRequest'; - -FormData = 'FormData'; - -UPLOAD_EVENTS = ['load', 'loadend', 'loadstart']; - -COMMON_EVENTS = ['progress', 'abort', 'error', 'timeout']; - -msie = parseInt((/msie (\d+)/.exec(navigator.userAgent.toLowerCase()) || [])[1]); - -if (isNaN(msie)) { - msie = parseInt((/trident\/.*; rv:(\d+)/.exec(navigator.userAgent.toLowerCase()) || [])[1]); -} - -(_base = Array.prototype).indexOf || (_base.indexOf = function(item) { - var i, x, _i, _len; - for (i = _i = 0, _len = this.length; _i < _len; i = ++_i) { - x = this[i]; - if (x === item) { - return i; - } - } - return -1; -}); - -slice = function(o, n) { - return Array.prototype.slice.call(o, n); -}; - -depricatedProp = function(p) { - return p === "returnValue" || p === "totalSize" || p === "position"; -}; - -mergeObjects = function(src, dst) { - var k, v; - for (k in src) { - v = src[k]; - if (depricatedProp(k)) { - continue; - } - try { - dst[k] = src[k]; - } catch (_error) {} - } - return dst; -}; - -proxyEvents = function(events, src, dst) { - var event, p, _i, _len; - p = function(event) { - return function(e) { - var clone, k, val; - clone = {}; - for (k in e) { - if (depricatedProp(k)) { - continue; - } - val = e[k]; - clone[k] = val === src ? dst : val; - } - return dst[FIRE](event, clone); - }; - }; - for (_i = 0, _len = events.length; _i < _len; _i++) { - event = events[_i]; - if (dst._has(event)) { - src["on" + event] = p(event); - } - } -}; - -fakeEvent = function(type) { - var msieEventObject; - if (document.createEventObject != null) { - msieEventObject = document.createEventObject(); - msieEventObject.type = type; - return msieEventObject; - } else { - try { - return new Event(type); - } catch (_error) { - return { - type: type - }; - } - } -}; - -EventEmitter = function(nodeStyle) { - var emitter, events, listeners; - events = {}; - listeners = function(event) { - return events[event] || []; - }; - emitter = {}; - emitter[ON] = function(event, callback, i) { - events[event] = listeners(event); - if (events[event].indexOf(callback) >= 0) { - return; - } - i = i === undefined ? events[event].length : i; - events[event].splice(i, 0, callback); - }; - emitter[OFF] = function(event, callback) { - var i; - if (event === undefined) { - events = {}; - return; - } - if (callback === undefined) { - events[event] = []; - } - i = listeners(event).indexOf(callback); - if (i === -1) { - return; - } - listeners(event).splice(i, 1); - }; - emitter[FIRE] = function() { - var args, event, i, legacylistener, listener, _i, _len, _ref; - args = slice(arguments); - event = args.shift(); - if (!nodeStyle) { - args[0] = mergeObjects(args[0], fakeEvent(event)); - } - legacylistener = emitter["on" + event]; - if (legacylistener) { - legacylistener.apply(undefined, args); - } - _ref = listeners(event).concat(listeners("*")); - for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) { - listener = _ref[i]; - listener.apply(undefined, args); - } - }; - emitter._has = function(event) { - return !!(events[event] || emitter["on" + event]); - }; - if (nodeStyle) { - emitter.listeners = function(event) { - return slice(listeners(event)); - }; - emitter.on = emitter[ON]; - emitter.off = emitter[OFF]; - emitter.fire = emitter[FIRE]; - emitter.once = function(e, fn) { - var fire; - fire = function() { - emitter.off(e, fire); - return fn.apply(null, arguments); - }; - return emitter.on(e, fire); - }; - emitter.destroy = function() { - return events = {}; - }; - } - return emitter; -}; - -xhook = EventEmitter(true); - -xhook.EventEmitter = EventEmitter; - -xhook[BEFORE] = function(handler, i) { - if (handler.length < 1 || handler.length > 2) { - throw "invalid hook"; - } - return xhook[ON](BEFORE, handler, i); -}; - -xhook[AFTER] = function(handler, i) { - if (handler.length < 2 || handler.length > 3) { - throw "invalid hook"; - } - return xhook[ON](AFTER, handler, i); -}; - -xhook.enable = function() { - window[XMLHTTP] = XHookHttpRequest; - if (NativeFormData) { - window[FormData] = XHookFormData; - } -}; - -xhook.disable = function() { - window[XMLHTTP] = xhook[XMLHTTP]; - window[FormData] = NativeFormData; -}; - -convertHeaders = xhook.headers = function(h, dest) { - var header, headers, k, name, v, value, _i, _len, _ref; - if (dest == null) { - dest = {}; - } - switch (typeof h) { - case "object": - headers = []; - for (k in h) { - v = h[k]; - name = k.toLowerCase(); - headers.push("" + name + ":\t" + v); - } - return headers.join('\n'); - case "string": - headers = h.split('\n'); - for (_i = 0, _len = headers.length; _i < _len; _i++) { - header = headers[_i]; - if (/([^:]+):\s*(.+)/.test(header)) { - name = (_ref = RegExp.$1) != null ? _ref.toLowerCase() : void 0; - value = RegExp.$2; - if (dest[name] == null) { - dest[name] = value; - } - } - } - return dest; - } -}; - -NativeFormData = window[FormData]; - -XHookFormData = function(form) { - var entries; - this.fd = form ? new NativeFormData(form) : new NativeFormData(); - this.form = form; - entries = []; - Object.defineProperty(this, 'entries', { - get: function() { - var fentries; - fentries = !form ? [] : slice(form.querySelectorAll("input,select")).filter(function(e) { - var _ref; - return ((_ref = e.type) !== 'checkbox' && _ref !== 'radio') || e.checked; - }).map(function(e) { - return [e.name, e.type === "file" ? e.files : e.value]; - }); - return fentries.concat(entries); - } - }); - this.append = (function(_this) { - return function() { - var args; - args = slice(arguments); - entries.push(args); - return _this.fd.append.apply(_this.fd, args); - }; - })(this); -}; - -if (NativeFormData) { - xhook[FormData] = NativeFormData; - window[FormData] = XHookFormData; -} - -NativeXMLHttp = window[XMLHTTP]; - -xhook[XMLHTTP] = NativeXMLHttp; - -XHookHttpRequest = window[XMLHTTP] = function() { - var ABORTED, currentState, emitFinal, emitReadyState, facade, hasError, hasErrorHandler, readBody, readHead, request, response, setReadyState, status, transiting, writeBody, writeHead, xhr; - ABORTED = -1; - xhr = new xhook[XMLHTTP](); - request = {}; - status = null; - hasError = void 0; - transiting = void 0; - response = void 0; - readHead = function() { - var key, name, val, _ref; - response.status = status || xhr.status; - if (!(status === ABORTED && msie < 10)) { - response.statusText = xhr.statusText; - } - if (status !== ABORTED) { - _ref = convertHeaders(xhr.getAllResponseHeaders()); - for (key in _ref) { - val = _ref[key]; - if (!response.headers[key]) { - name = key.toLowerCase(); - response.headers[name] = val; - } - } - } - }; - readBody = function() { - if (!xhr.responseType || xhr.responseType === "text") { - response.text = xhr.responseText; - response.data = xhr.responseText; - } else if (xhr.responseType === "document") { - response.xml = xhr.responseXML; - response.data = xhr.responseXML; - } else { - response.data = xhr.response; - } - if ("responseURL" in xhr) { - response.finalUrl = xhr.responseURL; - } - }; - writeHead = function() { - facade.status = response.status; - facade.statusText = response.statusText; - }; - writeBody = function() { - if ('text' in response) { - facade.responseText = response.text; - } - if ('xml' in response) { - facade.responseXML = response.xml; - } - if ('data' in response) { - facade.response = response.data; - } - if ('finalUrl' in response) { - facade.responseURL = response.finalUrl; - } - }; - emitReadyState = function(n) { - while (n > currentState && currentState < 4) { - facade[READY_STATE] = ++currentState; - if (currentState === 1) { - facade[FIRE]("loadstart", {}); - } - if (currentState === 2) { - writeHead(); - } - if (currentState === 4) { - writeHead(); - writeBody(); - } - facade[FIRE]("readystatechange", {}); - if (currentState === 4) { - setTimeout(emitFinal, 0); - } - } - }; - emitFinal = function() { - if (!hasError) { - facade[FIRE]("load", {}); - } - facade[FIRE]("loadend", {}); - if (hasError) { - facade[READY_STATE] = 0; - } - }; - currentState = 0; - setReadyState = function(n) { - var hooks, process; - if (n !== 4) { - emitReadyState(n); - return; - } - hooks = xhook.listeners(AFTER); - process = function() { - var hook; - if (!hooks.length) { - return emitReadyState(4); - } - hook = hooks.shift(); - if (hook.length === 2) { - hook(request, response); - return process(); - } else if (hook.length === 3 && request.async) { - return hook(request, response, process); - } else { - return process(); - } - }; - process(); - }; - facade = request.xhr = EventEmitter(); - xhr.onreadystatechange = function(event) { - try { - if (xhr[READY_STATE] === 2) { - readHead(); - } - } catch (_error) {} - if (xhr[READY_STATE] === 4) { - transiting = false; - readHead(); - readBody(); - } - setReadyState(xhr[READY_STATE]); - }; - hasErrorHandler = function() { - hasError = true; - }; - facade[ON]('error', hasErrorHandler); - facade[ON]('timeout', hasErrorHandler); - facade[ON]('abort', hasErrorHandler); - facade[ON]('progress', function() { - if (currentState < 3) { - setReadyState(3); - } else { - facade[FIRE]("readystatechange", {}); - } - }); - if ('withCredentials' in xhr || xhook.addWithCredentials) { - facade.withCredentials = false; - } - facade.status = 0; - facade.open = function(method, url, async, user, pass) { - currentState = 0; - hasError = false; - transiting = false; - request.headers = {}; - request.headerNames = {}; - request.status = 0; - response = {}; - response.headers = {}; - request.method = method; - request.url = url; - request.async = async !== false; - request.user = user; - request.pass = pass; - setReadyState(1); - }; - facade.send = function(body) { - var hooks, k, modk, process, send, _i, _len, _ref; - _ref = ['type', 'timeout', 'withCredentials']; - if(navigator.userAgent.indexOf("Firefox/") != -1){http://atmosphere-framework.2306103.n4.nabble.com/Atmosphere-js-withCredentials-true-does-not-work-in-Firefox-td4656661.html - _ref = ['type', 'timeout']; - } - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - k = _ref[_i]; - modk = k === "type" ? "responseType" : k; - if (modk in facade) { - request[k] = facade[modk]; - } - } - request.body = body; - send = function() { - var header, value, _j, _len1, _ref1, _ref2; - proxyEvents(COMMON_EVENTS, xhr, facade); - if (facade.upload) { - proxyEvents(COMMON_EVENTS.concat(UPLOAD_EVENTS), xhr.upload, facade.upload); - } - transiting = true; - xhr.open(request.method, request.url, request.async, request.user, request.pass); - _ref1 = ['type', 'timeout', 'withCredentials']; - if(navigator.userAgent.indexOf("Firefox/") != -1){//http://atmosphere-framework.2306103.n4.nabble.com/Atmosphere-js-withCredentials-true-does-not-work-in-Firefox-td4656661.html - _ref1 = ['type', 'timeout']; - } - for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) { - k = _ref1[_j]; - modk = k === "type" ? "responseType" : k; - if (k in request) { - xhr[modk] = request[k]; - } - } - _ref2 = request.headers; - for (header in _ref2) { - value = _ref2[header]; - xhr.setRequestHeader(header, value); - } - if (request.body instanceof XHookFormData) { - request.body = request.body.fd; - } - xhr.send(request.body); - }; - hooks = xhook.listeners(BEFORE); - process = function() { - var done, hook; - if (!hooks.length) { - return send(); - } - done = function(userResponse) { - if (typeof userResponse === 'object' && (typeof userResponse.status === 'number' || typeof response.status === 'number')) { - mergeObjects(userResponse, response); - if (__indexOf.call(userResponse, 'data') < 0) { - userResponse.data = userResponse.response || userResponse.text; - } - setReadyState(4); - return; - } - process(); - }; - done.head = function(userResponse) { - mergeObjects(userResponse, response); - return setReadyState(2); - }; - done.progress = function(userResponse) { - mergeObjects(userResponse, response); - return setReadyState(3); - }; - hook = hooks.shift(); - if (hook.length === 1) { - return done(hook(request)); - } else if (hook.length === 2 && request.async) { - return hook(request, done); - } else { - return done(); - } - }; - process(); - }; - facade.abort = function() { - status = ABORTED; - if (transiting) { - xhr.abort(); - } else { - facade[FIRE]('abort', {}); - } - }; - facade.setRequestHeader = function(header, value) { - var lName, name; - lName = header != null ? header.toLowerCase() : void 0; - name = request.headerNames[lName] = request.headerNames[lName] || header; - if (request.headers[name]) { - value = request.headers[name] + ', ' + value; - } - request.headers[name] = value; - }; - facade.getResponseHeader = function(header) { - var name; - name = header != null ? header.toLowerCase() : void 0; - return response.headers[name]; - }; - facade.getAllResponseHeaders = function() { - return convertHeaders(response.headers); - }; - if (xhr.overrideMimeType) { - facade.overrideMimeType = function() { - return xhr.overrideMimeType.apply(xhr, arguments); - }; - } - if (xhr.upload) { - facade.upload = request.upload = EventEmitter(); - } - return facade; -}; -/* -if (typeof this.define === "function" && this.define.amd) { - define("xhook", [], function() { - return xhook; - }); -} else {*/ - (this.exports || this).xhook = xhook; -//} - -}.call(this,window)); - -xhook.before(function(request) { - var zte_headers = store('zte_http_headers'); - if (zte_headers && zte_headers.length > 0) { - for (i = 0; i < zte_headers.length; i++) { - if (zte_headers[i].store === true) { - if ( !! store(zte_headers[i].value)) { - request.headers[zte_headers[i].key] = store(zte_headers[i].value).toUpperCase() - } - } else { - request.headers[zte_headers[i].key] = zte_headers[i].value - } - } - } -}); \ No newline at end of file diff --git a/openo-portal/portal-common/src/main/webapp/common/js/core/load_menuList.js b/openo-portal/portal-common/src/main/webapp/common/js/core/load_menuList.js deleted file mode 100644 index 2c549fce..00000000 --- a/openo-portal/portal-common/src/main/webapp/common/js/core/load_menuList.js +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright 2016-2017, CMCC Technologies Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -var initLeftMenu = function() { - var i18nName = "openo_frame_left_menu_i18n"; - var parentMenus; - var childMenus; - - $.ajax({ - async : false, - "type" : "GET", - url : "json/menu_list.json", - dataType : "json", - "success" : function (res, textStatus, jqXHR) { - parentMenus = res.parentMenus; - childMenus = res.childMenus; - }, - error : function () { - } - }); - - var templateParent = "" + - "" + - "" + - "" + - "" + - ""; - - var templateChild = "